diff mbox

flatten cfgloop.h

Message ID CAAgBjMnkJNFMT00Y8xP9R_6xxdFwfvOUAiu-Jf+e8cJGBGdU6A@mail.gmail.com
State New
Headers show

Commit Message

Prathamesh Kulkarni July 5, 2015, 1:25 p.m. UTC
Hi,
The attached patches flatten cfgloop.h.
patch-1.diff moves around prototypes and structures to respective header-files.
patch-2.diff (mostly auto-generated) replicates cfgloop.h includes in c files.
Bootstrapped and tested on x86_64-unknown-linux-gnu with all front-ends.
Built on all targets using config-list.mk.
I left includes in cfgloop.h commented with #if 0 ... #endif.
OK for trunk ?

Thank you,
Prathamesh
2015-07-05  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

	* loop-invariant.h: New header file.
	* loop-init.h: Likewise.
	* loop-doloop.h: Likewise.
	* cfgloopanal.h: Likewise.
	* loop-iv.h: Likewise.
	* cfgloop.h: Include loop-invariant.h, loop-init.h, loop-doloop.h,
	cfgloopanal.h, loop-iv.h.
	Move loop-invariant.c prototypes to loop-invariant.h.
	Move loop-init.c prototypes to loop-init.h.
	Move loop-doloop.c prototypes to loop-doloop.h.
	Move cfgloopanal.c prototypes to cfgloopanal.h.
	Move loop-iv.c prototypes to loop-iv.h.
	(iv_extend_code): Move to loop-iv.h.
	(rtx_iv): Likewise.
2015-07-05  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

	* asan.c: Adjust includes for flattening cfgloop.h.
	* auto-profile.c: Likewise.
	* bt-load.c: Likewise.
	* cfg.c: Likewise.
	* cfgcleanup.c: Likewise.
	* cfgexpand.c: Likewise.
	* cfghooks.c: Likewise.
	* cfgloop.c: Likewise.
	* cfgloopanal.c: Likewise.
	* cfgloopmanip.c: Likewise.
	* cfgrtl.c: Likewise.
	* cgraph.c: Likewise.
	* cgraphunit.c: Likewise.
	* config/aarch64/aarch64.c: Likewise.
	* config/i386/i386.c: Likewise.
	* config/mn10300/mn10300.c: Likewise.
	* config/rs6000/rs6000.c: Likewise.
	* config/s390/s390.c: Likewise.
	* config/sh/sh.c: Likewise.
	* config/spu/spu.c: Likewise.
	* config/tilegx/tilegx.c: Likewise.
	* config/tilepro/tilepro.c: Likewise.
	* cprop.c: Likewise.
	* ddg.c: Likewise.
	* df-core.c: Likewise.
	* except.c: Likewise.
	* final.c: Likewise.
	* fwprop.c: Likewise.
	* gengtype.c: Likewise.
	* ggc-page.c: Likewise.
	* gimple-ssa-isolate-paths.c: Likewise.
	* gimple-ssa-strength-reduction.c: Likewise.
	* graph.c: Likewise.
	* graphite-blocking.c: Likewise.
	* graphite-dependences.c: Likewise.
	* graphite-interchange.c: Likewise.
	* graphite-isl-ast-to-gimple.c: Likewise.
	* graphite-optimize-isl.c: Likewise.
	* graphite-poly.c: Likewise.
	* graphite-scop-detection.c: Likewise.
	* graphite-sese-to-poly.c: Likewise.
	* graphite.c: Likewise.
	* haifa-sched.c: Likewise.
	* hw-doloop.c: Likewise.
	* ifcvt.c: Likewise.
	* ipa-icf-gimple.c: Likewise.
	* ipa-icf.c: Likewise.
	* ipa-inline-analysis.c: Likewise.
	* ipa-pure-const.c: Likewise.
	* ipa-split.c: Likewise.
	* loop-doloop.c: Likewise.
	* loop-init.c: Likewise.
	* loop-invariant.c: Likewise.
	* loop-iv.c: Likewise.
	* loop-unroll.c: Likewise.
	* lto-streamer-in.c: Likewise.
	* lto-streamer-out.c: Likewise.
	* modulo-sched.c: Likewise.
	* omp-low.c: Likewise.
	* passes.c: Likewise.
	* predict.c: Likewise.
	* profile.c: Likewise.
	* sese.c: Likewise.
	* target-globals.c: Likewise.
	* toplev.c: Likewise.
	* tracer.c: Likewise.
	* trans-mem.c: Likewise.
	* tree-cfg.c: Likewise.
	* tree-cfgcleanup.c: Likewise.
	* tree-chkp-opt.c: Likewise.
	* tree-chkp.c: Likewise.
	* tree-chrec.c: Likewise.
	* tree-complex.c: Likewise.
	* tree-data-ref.c: Likewise.
	* tree-eh.c: Likewise.
	* tree-if-conv.c: Likewise.
	* tree-inline.c: Likewise.
	* tree-into-ssa.c: Likewise.
	* tree-loop-distribution.c: Likewise.
	* tree-parloops.c: Likewise.
	* tree-predcom.c: Likewise.
	* tree-scalar-evolution.c: Likewise.
	* tree-ssa-copy.c: Likewise.
	* tree-ssa-dce.c: Likewise.
	* tree-ssa-dom.c: Likewise.
	* tree-ssa-forwprop.c: Likewise.
	* tree-ssa-loop-ch.c: Likewise.
	* tree-ssa-loop-im.c: Likewise.
	* tree-ssa-loop-ivcanon.c: Likewise.
	* tree-ssa-loop-ivopts.c: Likewise.
	* tree-ssa-loop-manip.c: Likewise.
	* tree-ssa-loop-niter.c: Likewise.
	* tree-ssa-loop-prefetch.c: Likewise.
	* tree-ssa-loop-unswitch.c: Likewise.
	* tree-ssa-loop.c: Likewise.
	* tree-ssa-phiopt.c: Likewise.
	* tree-ssa-pre.c: Likewise.
	* tree-ssa-propagate.c: Likewise.
	* tree-ssa-reassoc.c: Likewise.
	* tree-ssa-sccvn.c: Likewise.
	* tree-ssa-sink.c: Likewise.
	* tree-ssa-tail-merge.c: Likewise.
	* tree-ssa-threadedge.c: Likewise.
	* tree-ssa-threadupdate.c: Likewise.
	* tree-ssa.c: Likewise.
	* tree-switch-conversion.c: Likewise.
	* tree-tailcall.c: Likewise.
	* tree-vect-data-refs.c: Likewise.
	* tree-vect-loop-manip.c: Likewise.
	* tree-vect-loop.c: Likewise.
	* tree-vect-patterns.c: Likewise.
	* tree-vect-slp.c: Likewise.
	* tree-vect-stmts.c: Likewise.
	* tree-vectorizer.c: Likewise.
	* tree-vrp.c: Likewise.
	* ubsan.c: Likewise.
	* vtable-verify.c: Likewise.
diff --git a/gcc/asan.c b/gcc/asan.c
index 5fac247..0e661ef 100644
--- a/gcc/asan.c
+++ b/gcc/asan.c
@@ -67,6 +67,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "tm_p.h"
 #include "langhooks.h"
 #include "alloc-pool.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "gimple-builder.h"
 #include "ubsan.h"
diff --git a/gcc/auto-profile.c b/gcc/auto-profile.c
index 5fdd33f..788a474 100644
--- a/gcc/auto-profile.c
+++ b/gcc/auto-profile.c
@@ -45,7 +45,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "profile.h"
 #include "langhooks.h"
 #include "opts.h"
-#include "tree-pass.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "tree-ssa-alias.h"
 #include "tree-cfg.h"
diff --git a/gcc/bt-load.c b/gcc/bt-load.c
index 9c1d04e..9ff750a 100644
--- a/gcc/bt-load.c
+++ b/gcc/bt-load.c
@@ -54,6 +54,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "predict.h"
 #include "basic-block.h"
 #include "df.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "rtl-iter.h"
 #include "fibonacci_heap.h"
diff --git a/gcc/cfg.c b/gcc/cfg.c
index fb13b7d..c99fdd0 100644
--- a/gcc/cfg.c
+++ b/gcc/cfg.c
@@ -64,6 +64,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "cfganal.h"
 #include "basic-block.h"
 #include "df.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h" /* FIXME: For struct loop.  */
 #include "dumpfile.h"
 
diff --git a/gcc/cfgcleanup.c b/gcc/cfgcleanup.c
index dfd1315..a7ef8d8 100644
--- a/gcc/cfgcleanup.c
+++ b/gcc/cfgcleanup.c
@@ -51,8 +51,15 @@ along with GCC; see the file COPYING3.  If not see
 #include "function.h" /* For inline functions in emit-rtl.h they need crtl.  */
 #include "emit-rtl.h"
 #include "tree-pass.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
-#include "function.h"
 #include "expmed.h"
 #include "dojump.h"
 #include "explow.h"
diff --git a/gcc/cfgexpand.c b/gcc/cfgexpand.c
index 05eb2ad..bee6baf 100644
--- a/gcc/cfgexpand.c
+++ b/gcc/cfgexpand.c
@@ -82,6 +82,12 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-ssa-live.h"
 #include "tree-outof-ssa.h"
 #include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "regs.h" /* For reg_renumber.  */
 #include "insn-attr.h" /* For INSN_SCHEDULING.  */
diff --git a/gcc/cfghooks.c b/gcc/cfghooks.c
index c649b7e..8acdeea 100644
--- a/gcc/cfghooks.c
+++ b/gcc/cfghooks.c
@@ -37,6 +37,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-ssa.h"
 #include "timevar.h"
 #include "diagnostic-core.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "pretty-print.h"
 
diff --git a/gcc/cfgloop.c b/gcc/cfgloop.c
index 0d9519d..5bca9e4 100644
--- a/gcc/cfgloop.c
+++ b/gcc/cfgloop.c
@@ -30,6 +30,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "cfg.h"
 #include "cfganal.h"
 #include "basic-block.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "diagnostic-core.h"
 #include "flags.h"
diff --git a/gcc/cfgloop.h b/gcc/cfgloop.h
index 942116a..82237b3 100644
--- a/gcc/cfgloop.h
+++ b/gcc/cfgloop.h
@@ -20,6 +20,7 @@ along with GCC; see the file COPYING3.  If not see
 #ifndef GCC_CFGLOOP_H
 #define GCC_CFGLOOP_H
 
+#if 0
 #include "bitmap.h"
 #include "sbitmap.h"
 #include "function.h"
@@ -29,7 +30,7 @@ along with GCC; see the file COPYING3.  If not see
 #include "loop-doloop.h"
 #include "loop-invariant.h"
 #include "loop-iv.h"
-
+#endif
 
 /* Structure to hold decision about unrolling/peeling.  */
 enum lpt_dec
diff --git a/gcc/cfgloopanal.c b/gcc/cfgloopanal.c
index ac9c9ae..edcf6ef 100644
--- a/gcc/cfgloopanal.c
+++ b/gcc/cfgloopanal.c
@@ -29,6 +29,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "dominance.h"
 #include "cfg.h"
 #include "basic-block.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "symtab.h"
 #include "flags.h"
diff --git a/gcc/cfgloopmanip.c b/gcc/cfgloopmanip.c
index b5c13a7..207daf7 100644
--- a/gcc/cfgloopmanip.c
+++ b/gcc/cfgloopmanip.c
@@ -30,6 +30,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "cfg.h"
 #include "cfganal.h"
 #include "basic-block.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "tree.h"
 #include "fold-const.h"
diff --git a/gcc/cfgrtl.c b/gcc/cfgrtl.c
index 4a711b3..1559074 100644
--- a/gcc/cfgrtl.c
+++ b/gcc/cfgrtl.c
@@ -74,6 +74,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "expr.h"
 #include "target.h"
 #include "common/common-target.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "tree-pass.h"
 #include "df.h"
diff --git a/gcc/cgraph.c b/gcc/cgraph.c
index 8314ecf..34bd8eb 100644
--- a/gcc/cgraph.c
+++ b/gcc/cgraph.c
@@ -69,6 +69,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "symbol-summary.h"
 #include "ipa-prop.h"
 #include "ipa-inline.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "gimple-pretty-print.h"
 #include "insn-config.h"
diff --git a/gcc/cgraphunit.c b/gcc/cgraphunit.c
index 7e78bf7..98a2fb6 100644
--- a/gcc/cgraphunit.c
+++ b/gcc/cgraphunit.c
@@ -206,19 +206,25 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-pass.h"
 #include "tree-dump.h"
 #include "gimple-pretty-print.h"
-#include "output.h"
 #include "coverage.h"
 #include "plugin.h"
 #include "ipa-inline.h"
 #include "ipa-utils.h"
 #include "lto-streamer.h"
 #include "except.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "regset.h"     /* FIXME: For reg_obstack.  */
 #include "context.h"
 #include "pass_manager.h"
 #include "tree-nested.h"
-#include "gimplify.h"
 #include "dbgcnt.h"
 #include "tree-chkp.h"
 #include "lto-section-names.h"
diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c
index 5d4dc83..469f847 100644
--- a/gcc/config/aarch64/aarch64.c
+++ b/gcc/config/aarch64/aarch64.c
@@ -72,6 +72,14 @@
 #include "gimplify.h"
 #include "optabs.h"
 #include "dwarf2.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "tree-vectorizer.h"
 #include "aarch64-cost-tables.h"
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index 7d26e8c..045e54e 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -73,6 +73,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "gimple-expr.h"
 #include "gimple.h"
 #include "gimplify.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "dwarf2.h"
 #include "df.h"
@@ -81,7 +89,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "cselib.h"
 #include "debug.h"
 #include "sched-int.h"
-#include "sbitmap.h"
 #include "fibheap.h"
 #include "opts.h"
 #include "diagnostic.h"
diff --git a/gcc/config/mn10300/mn10300.c b/gcc/config/mn10300/mn10300.c
index 49bf772..ee1f35c 100644
--- a/gcc/config/mn10300/mn10300.c
+++ b/gcc/config/mn10300/mn10300.c
@@ -63,6 +63,14 @@
 #include "basic-block.h"
 #include "df.h"
 #include "opts.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "dumpfile.h"
 #include "builtins.h"
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index 1308d0c..ccda71c 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -68,6 +68,14 @@
 #include "common/common-target.h"
 #include "langhooks.h"
 #include "reload.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "sched-int.h"
 #include "tree-ssa-alias.h"
diff --git a/gcc/config/s390/s390.c b/gcc/config/s390/s390.c
index 4ef8e42..6b44624 100644
--- a/gcc/config/s390/s390.c
+++ b/gcc/config/s390/s390.c
@@ -76,6 +76,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "gimplify.h"
 #include "df.h"
 #include "params.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "opts.h"
 #include "tree-pass.h"
diff --git a/gcc/config/sh/sh.c b/gcc/config/sh/sh.c
index 0139095..33b3ef3 100644
--- a/gcc/config/sh/sh.c
+++ b/gcc/config/sh/sh.c
@@ -77,6 +77,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "gimple-expr.h"
 #include "gimple.h"
 #include "gimplify.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "alloc-pool.h"
 #include "tm-constrs.h"
diff --git a/gcc/config/spu/spu.c b/gcc/config/spu/spu.c
index 97690e3..3240cf7 100644
--- a/gcc/config/spu/spu.c
+++ b/gcc/config/spu/spu.c
@@ -75,6 +75,13 @@
 #include "ddg.h"
 #include "timevar.h"
 #include "dumpfile.h"
+#include "bitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "builtins.h"
 #include "rtl-iter.h"
diff --git a/gcc/config/tilegx/tilegx.c b/gcc/config/tilegx/tilegx.c
index 1f285e0..3038f0a 100644
--- a/gcc/config/tilegx/tilegx.c
+++ b/gcc/config/tilegx/tilegx.c
@@ -70,6 +70,14 @@
 #include "stringpool.h"
 #include "stor-layout.h"
 #include "gimplify.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "tilegx-builtins.h"
 #include "tilegx-multiply.h"
diff --git a/gcc/config/tilepro/tilepro.c b/gcc/config/tilepro/tilepro.c
index 9244739..3294812 100644
--- a/gcc/config/tilepro/tilepro.c
+++ b/gcc/config/tilepro/tilepro.c
@@ -71,6 +71,14 @@
 #include "stringpool.h"
 #include "stor-layout.h"
 #include "gimplify.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "tilepro-builtins.h"
 #include "tilepro-multiply.h"
diff --git a/gcc/cprop.c b/gcc/cprop.c
index 2596868..5085e67 100644
--- a/gcc/cprop.c
+++ b/gcc/cprop.c
@@ -60,6 +60,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "df.h"
 #include "dbgcnt.h"
 #include "target.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 
 
diff --git a/gcc/ddg.c b/gcc/ddg.c
index ca7ebe2..ad61401 100644
--- a/gcc/ddg.c
+++ b/gcc/ddg.c
@@ -38,8 +38,15 @@ along with GCC; see the file COPYING3.  If not see
 #include "basic-block.h"
 #include "sched-int.h"
 #include "target.h"
-#include "cfgloop.h"
+#include "bitmap.h"
 #include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
+#include "cfgloop.h"
 #include "symtab.h"
 #include "alias.h"
 #include "tree.h"
@@ -51,7 +58,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "varasm.h"
 #include "stmt.h"
 #include "expr.h"
-#include "bitmap.h"
 #include "df.h"
 #include "ddg.h"
 #include "rtl-iter.h"
diff --git a/gcc/df-core.c b/gcc/df-core.c
index ea1f168..de74d5e 100644
--- a/gcc/df-core.c
+++ b/gcc/df-core.c
@@ -397,6 +397,12 @@ are write-only operations.
 #include "df.h"
 #include "tree-pass.h"
 #include "params.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "emit-rtl.h"
 
diff --git a/gcc/except.c b/gcc/except.c
index d5f886e..d44b723 100644
--- a/gcc/except.c
+++ b/gcc/except.c
@@ -155,6 +155,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "diagnostic.h"
 #include "tree-pretty-print.h"
 #include "tree-pass.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "builtins.h"
 #include "tree-hash-traits.h"
diff --git a/gcc/final.c b/gcc/final.c
index fe2d6ad..7c33732 100644
--- a/gcc/final.c
+++ b/gcc/final.c
@@ -86,6 +86,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-ssa.h"
 #include "coverage.h"
 #include "df.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "params.h"
 #include "tree-pretty-print.h" /* for dump_function_header */
diff --git a/gcc/fwprop.c b/gcc/fwprop.c
index b62ad3f..4305ffd 100644
--- a/gcc/fwprop.c
+++ b/gcc/fwprop.c
@@ -41,6 +41,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "basic-block.h"
 #include "df.h"
 #include "target.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "tree-pass.h"
 #include "domwalk.h"
diff --git a/gcc/gcc-plugin.h b/gcc/gcc-plugin.h
index 1eb0e5b..e428bc4 100644
--- a/gcc/gcc-plugin.h
+++ b/gcc/gcc-plugin.h
@@ -46,6 +46,15 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-core.h"
 #include "fold-const.h"
 #include "tree-check.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
+#include "cfgloop.h"
 #include "plugin.h"
 
 #endif /* GCC_PLUGIN_H */
diff --git a/gcc/gengtype.c b/gcc/gengtype.c
index 137e0ff..382c243 100644
--- a/gcc/gengtype.c
+++ b/gcc/gengtype.c
@@ -1729,7 +1729,8 @@ open_base_files (void)
       "tree-ssa-loop.h", "tree-ssa-loop-ivopts.h", "tree-ssa-loop-manip.h",
       "tree-ssa-loop-niter.h", "tree-into-ssa.h", "tree-dfa.h", 
       "tree-ssa.h", "reload.h", "cpp-id-data.h", "tree-chrec.h",
-      "except.h", "output.h",  "cfgloop.h", "target.h", "lto-streamer.h",
+      "except.h", "output.h",  "sbitmap.h", "cfgloopmanip.h", "loop-init.h", "cfgloopanal.h",
+      "loop-doloop.h", "loop-invariant.h", "loop-iv.h", "cfgloop.h", "target.h", "lto-streamer.h",
       "target-globals.h", "ipa-ref.h", "cgraph.h", "symbol-summary.h",
       "ipa-prop.h", "ipa-inline.h", "dwarf2out.h", "omp-low.h", NULL
     };
diff --git a/gcc/ggc-page.c b/gcc/ggc-page.c
index 0f07000..b8846c8 100644
--- a/gcc/ggc-page.c
+++ b/gcc/ggc-page.c
@@ -34,6 +34,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "hard-reg-set.h"
 #include "function.h"
 #include "cgraph.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "plugin.h"
 #include "predict.h"
diff --git a/gcc/gimple-ssa-isolate-paths.c b/gcc/gimple-ssa-isolate-paths.c
index 2633736..81b1573 100644
--- a/gcc/gimple-ssa-isolate-paths.c
+++ b/gcc/gimple-ssa-isolate-paths.c
@@ -48,6 +48,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-ssa-operands.h"
 #include "tree-phinodes.h"
 #include "ssa-iterators.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "tree-pass.h"
 #include "tree-cfg.h"
diff --git a/gcc/gimple-ssa-strength-reduction.c b/gcc/gimple-ssa-strength-reduction.c
index 1d66667..8f3be11 100644
--- a/gcc/gimple-ssa-strength-reduction.c
+++ b/gcc/gimple-ssa-strength-reduction.c
@@ -67,6 +67,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "stmt.h"
 #include "expr.h"
 #include "tree-pass.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "gimple-pretty-print.h"
 #include "gimple-ssa.h"
diff --git a/gcc/graph.c b/gcc/graph.c
index f6bdfa7..64ba065 100644
--- a/gcc/graph.c
+++ b/gcc/graph.c
@@ -32,6 +32,13 @@ along with GCC; see the file COPYING3.  If not see
 #include "cfg.h"
 #include "cfganal.h"
 #include "basic-block.h"
+#include "bitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "graph.h"
 #include "dumpfile.h"
diff --git a/gcc/graphite-blocking.c b/gcc/graphite-blocking.c
index aba4ee6..5b5f508 100644
--- a/gcc/graphite-blocking.c
+++ b/gcc/graphite-blocking.c
@@ -50,6 +50,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "gimple-iterator.h"
 #include "tree-ssa-loop.h"
 #include "dumpfile.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "tree-chrec.h"
 #include "tree-data-ref.h"
diff --git a/gcc/graphite-dependences.c b/gcc/graphite-dependences.c
index 7803acb..74f623f 100644
--- a/gcc/graphite-dependences.c
+++ b/gcc/graphite-dependences.c
@@ -50,6 +50,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "gimple-iterator.h"
 #include "tree-ssa-loop.h"
 #include "tree-pass.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "tree-chrec.h"
 #include "tree-data-ref.h"
diff --git a/gcc/graphite-interchange.c b/gcc/graphite-interchange.c
index 7a51ca4..7733da1 100644
--- a/gcc/graphite-interchange.c
+++ b/gcc/graphite-interchange.c
@@ -62,6 +62,14 @@ extern "C" {
 #include "gimple-iterator.h"
 #include "tree-ssa-loop.h"
 #include "dumpfile.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "tree-chrec.h"
 #include "tree-data-ref.h"
diff --git a/gcc/graphite-isl-ast-to-gimple.c b/gcc/graphite-isl-ast-to-gimple.c
index b6ef13d..14682c0 100644
--- a/gcc/graphite-isl-ast-to-gimple.c
+++ b/gcc/graphite-isl-ast-to-gimple.c
@@ -57,6 +57,14 @@ extern "C" {
 #include "gimple-iterator.h"
 #include "tree-ssa-loop.h"
 #include "tree-pass.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "tree-data-ref.h"
 #include "sese.h"
diff --git a/gcc/graphite-optimize-isl.c b/gcc/graphite-optimize-isl.c
index 624cc87..183fdda 100644
--- a/gcc/graphite-optimize-isl.c
+++ b/gcc/graphite-optimize-isl.c
@@ -51,6 +51,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "gimple-iterator.h"
 #include "tree-ssa-loop.h"
 #include "dumpfile.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "tree-chrec.h"
 #include "tree-data-ref.h"
diff --git a/gcc/graphite-poly.c b/gcc/graphite-poly.c
index 1d52be5..c9e7b1c 100644
--- a/gcc/graphite-poly.c
+++ b/gcc/graphite-poly.c
@@ -63,6 +63,14 @@ extern "C" {
 #include "tree-ssa-loop.h"
 #include "dumpfile.h"
 #include "gimple-pretty-print.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "tree-chrec.h"
 #include "tree-data-ref.h"
diff --git a/gcc/graphite-scop-detection.c b/gcc/graphite-scop-detection.c
index e8ddecd..16e78bb 100644
--- a/gcc/graphite-scop-detection.c
+++ b/gcc/graphite-scop-detection.c
@@ -54,6 +54,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-ssa-loop.h"
 #include "tree-into-ssa.h"
 #include "tree-ssa.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "tree-chrec.h"
 #include "tree-data-ref.h"
diff --git a/gcc/graphite-sese-to-poly.c b/gcc/graphite-sese-to-poly.c
index 271c499..7766bb7 100644
--- a/gcc/graphite-sese-to-poly.c
+++ b/gcc/graphite-sese-to-poly.c
@@ -70,6 +70,14 @@ extern "C" {
 #include "tree-ssa-loop.h"
 #include "tree-into-ssa.h"
 #include "tree-pass.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "tree-chrec.h"
 #include "tree-data-ref.h"
diff --git a/gcc/graphite.c b/gcc/graphite.c
index ba8029a..435e01a 100644
--- a/gcc/graphite.c
+++ b/gcc/graphite.c
@@ -64,6 +64,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-cfg.h"
 #include "tree-ssa-loop.h"
 #include "tree-dump.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "tree-chrec.h"
 #include "tree-data-ref.h"
diff --git a/gcc/haifa-sched.c b/gcc/haifa-sched.c
index e685cc8..a0729e8 100644
--- a/gcc/haifa-sched.c
+++ b/gcc/haifa-sched.c
@@ -148,6 +148,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "common/common-target.h"
 #include "params.h"
 #include "dbgcnt.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "ira.h"
 #include "emit-rtl.h"  /* FIXME: Can go away once crtl is moved to rtl.h.  */
diff --git a/gcc/hw-doloop.c b/gcc/hw-doloop.c
index e00c3d7..d7e0bcc 100644
--- a/gcc/hw-doloop.c
+++ b/gcc/hw-doloop.c
@@ -46,6 +46,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "basic-block.h"
 #include "tm_p.h"
 #include "df.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "recog.h"
 #include "target.h"
diff --git a/gcc/ifcvt.c b/gcc/ifcvt.c
index 6e20557..103b6b3 100644
--- a/gcc/ifcvt.c
+++ b/gcc/ifcvt.c
@@ -53,6 +53,14 @@
 #include "optabs.h"
 #include "diagnostic-core.h"
 #include "tm_p.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "target.h"
 #include "tree-pass.h"
diff --git a/gcc/ipa-icf-gimple.c b/gcc/ipa-icf-gimple.c
index 8317dc1..5d439fd 100644
--- a/gcc/ipa-icf-gimple.c
+++ b/gcc/ipa-icf-gimple.c
@@ -54,6 +54,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-dfa.h"
 #include "tree-pass.h"
 #include "gimple-pretty-print.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "except.h"
 #include "cgraph.h"
diff --git a/gcc/ipa-icf.c b/gcc/ipa-icf.c
index 691c90d..38e2cfe 100644
--- a/gcc/ipa-icf.c
+++ b/gcc/ipa-icf.c
@@ -96,6 +96,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "symbol-summary.h"
 #include "ipa-prop.h"
 #include "ipa-inline.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "except.h"
 #include "coverage.h"
diff --git a/gcc/ipa-inline-analysis.c b/gcc/ipa-inline-analysis.c
index 18bc68a..8806861 100644
--- a/gcc/ipa-inline-analysis.c
+++ b/gcc/ipa-inline-analysis.c
@@ -110,6 +110,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "data-streamer.h"
 #include "tree-streamer.h"
 #include "ipa-inline.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "tree-scalar-evolution.h"
 #include "ipa-utils.h"
diff --git a/gcc/ipa-pure-const.c b/gcc/ipa-pure-const.c
index dbceb04..3d08511 100644
--- a/gcc/ipa-pure-const.c
+++ b/gcc/ipa-pure-const.c
@@ -65,11 +65,18 @@ along with GCC; see the file COPYING3.  If not see
 #include "flags.h"
 #include "diagnostic.h"
 #include "gimple-pretty-print.h"
-#include "langhooks.h"
 #include "target.h"
 #include "lto-streamer.h"
 #include "data-streamer.h"
 #include "tree-streamer.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "tree-scalar-evolution.h"
 #include "intl.h"
diff --git a/gcc/ipa-split.c b/gcc/ipa-split.c
index 13d9a64..f5a320f 100644
--- a/gcc/ipa-split.c
+++ b/gcc/ipa-split.c
@@ -129,6 +129,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "params.h"
 #include "gimple-pretty-print.h"
 #include "ipa-inline.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "tree-chkp.h"
 
diff --git a/gcc/ira-build.c b/gcc/ira-build.c
index 9fcbcb0..3afdd7a 100644
--- a/gcc/ira-build.c
+++ b/gcc/ira-build.c
@@ -40,6 +40,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "df.h"
 #include "reload.h"
 #include "sparseset.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "ira-int.h"
 #include "emit-rtl.h"  /* FIXME: Can go away once crtl is moved to rtl.h.  */
 
diff --git a/gcc/ira-color.c b/gcc/ira-color.c
index 972a053..fcde412 100644
--- a/gcc/ira-color.c
+++ b/gcc/ira-color.c
@@ -51,6 +51,12 @@ along with GCC; see the file COPYING3.  If not see
 #include "reload.h"
 #include "params.h"
 #include "df.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "ira-int.h"
 
 typedef struct allocno_hard_regs *allocno_hard_regs_t;
diff --git a/gcc/ira-conflicts.c b/gcc/ira-conflicts.c
index b999c59..5eb70c5 100644
--- a/gcc/ira-conflicts.c
+++ b/gcc/ira-conflicts.c
@@ -37,6 +37,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "params.h"
 #include "df.h"
 #include "sparseset.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "ira-int.h"
 #include "addresses.h"
 
diff --git a/gcc/ira-costs.c b/gcc/ira-costs.c
index 0d39215..82ffd02 100644
--- a/gcc/ira-costs.c
+++ b/gcc/ira-costs.c
@@ -50,6 +50,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "diagnostic-core.h"
 #include "target.h"
 #include "params.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "ira-int.h"
 
 /* The flags is set up every time when we calculate pseudo register
diff --git a/gcc/ira-emit.c b/gcc/ira-emit.c
index d204ec1..55bc355 100644
--- a/gcc/ira-emit.c
+++ b/gcc/ira-emit.c
@@ -100,6 +100,13 @@ along with GCC; see the file COPYING3.  If not see
 #include "params.h"
 #include "reload.h"
 #include "df.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "ira-int.h"
 
 
diff --git a/gcc/ira-lives.c b/gcc/ira-lives.c
index 8bd62d2..c56ad64 100644
--- a/gcc/ira-lives.c
+++ b/gcc/ira-lives.c
@@ -39,6 +39,13 @@ along with GCC; see the file COPYING3.  If not see
 #include "df.h"
 #include "sbitmap.h"
 #include "sparseset.h"
+#include "bitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "ira-int.h"
 
 /* The code in this file is similar to one in global but the code
diff --git a/gcc/ira.c b/gcc/ira.c
index 92d5eb1..aa3000e 100644
--- a/gcc/ira.c
+++ b/gcc/ira.c
@@ -403,6 +403,13 @@ along with GCC; see the file COPYING3.  If not see
 #include "except.h"
 #include "reload.h"
 #include "diagnostic-core.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "ira-int.h"
 #include "lra.h"
 #include "dce.h"
diff --git a/gcc/loop-doloop.c b/gcc/loop-doloop.c
index 38303f5..220124d 100644
--- a/gcc/loop-doloop.c
+++ b/gcc/loop-doloop.c
@@ -43,6 +43,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "predict.h"
 #include "dominance.h"
 #include "cfg.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "cfgrtl.h"
 #include "basic-block.h"
diff --git a/gcc/loop-init.c b/gcc/loop-init.c
index 5959145..e3c923e 100644
--- a/gcc/loop-init.c
+++ b/gcc/loop-init.c
@@ -34,6 +34,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "cfg.h"
 #include "cfgcleanup.h"
 #include "basic-block.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "tree-pass.h"
 #include "flags.h"
diff --git a/gcc/loop-invariant.c b/gcc/loop-invariant.c
index d3a7439..c5314c6 100644
--- a/gcc/loop-invariant.c
+++ b/gcc/loop-invariant.c
@@ -48,6 +48,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "cfg.h"
 #include "cfgrtl.h"
 #include "basic-block.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "symtab.h"
 #include "flags.h"
diff --git a/gcc/loop-iv.c b/gcc/loop-iv.c
index d02d542..788e1b2 100644
--- a/gcc/loop-iv.c
+++ b/gcc/loop-iv.c
@@ -59,6 +59,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "dominance.h"
 #include "cfg.h"
 #include "basic-block.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "symtab.h"
 #include "flags.h"
diff --git a/gcc/loop-unroll.c b/gcc/loop-unroll.c
index 3fa7fc0..7bcabeb 100644
--- a/gcc/loop-unroll.c
+++ b/gcc/loop-unroll.c
@@ -34,6 +34,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "cfg.h"
 #include "cfgrtl.h"
 #include "basic-block.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "params.h"
 #include "insn-codes.h"
diff --git a/gcc/lto-streamer-in.c b/gcc/lto-streamer-in.c
index 66298ec..e8641de 100644
--- a/gcc/lto-streamer-in.c
+++ b/gcc/lto-streamer-in.c
@@ -70,6 +70,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "lto-streamer.h"
 #include "tree-streamer.h"
 #include "streamer-hooks.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 
 
diff --git a/gcc/lto-streamer-out.c b/gcc/lto-streamer-out.c
index 254d7ba..986bd22 100644
--- a/gcc/lto-streamer-out.c
+++ b/gcc/lto-streamer-out.c
@@ -65,6 +65,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "gimple-streamer.h"
 #include "tree-streamer.h"
 #include "streamer-hooks.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "builtins.h"
 #include "gomp-constants.h"
diff --git a/gcc/modulo-sched.c b/gcc/modulo-sched.c
index 60b39f8..369067e 100644
--- a/gcc/modulo-sched.c
+++ b/gcc/modulo-sched.c
@@ -42,6 +42,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "basic-block.h"
 #include "sched-int.h"
 #include "target.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "alias.h"
 #include "symtab.h"
@@ -58,7 +66,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "expr.h"
 #include "params.h"
 #include "gcov-io.h"
-#include "sbitmap.h"
 #include "df.h"
 #include "ddg.h"
 #include "tree-pass.h"
diff --git a/gcc/omp-low.c b/gcc/omp-low.c
index 2e2070a..5568b17 100644
--- a/gcc/omp-low.c
+++ b/gcc/omp-low.c
@@ -77,6 +77,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "splay-tree.h"
 #include "insn-codes.h"
 #include "optabs.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "target.h"
 #include "common/common-target.h"
diff --git a/gcc/passes.c b/gcc/passes.c
index 4966334..3c1ce5f 100644
--- a/gcc/passes.c
+++ b/gcc/passes.c
@@ -61,6 +61,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "debug.h"
 #include "target.h"
 #include "langhooks.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "hosthooks.h"
 #include "opts.h"
diff --git a/gcc/predict.c b/gcc/predict.c
index 9a69c6f..c95681f 100644
--- a/gcc/predict.c
+++ b/gcc/predict.c
@@ -63,6 +63,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "sreal.h"
 #include "params.h"
 #include "target.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "tree-ssa-alias.h"
 #include "internal-fn.h"
diff --git a/gcc/profile.c b/gcc/profile.c
index 754326b..6db2619 100644
--- a/gcc/profile.c
+++ b/gcc/profile.c
@@ -83,6 +83,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "gimple.h"
 #include "gimple-iterator.h"
 #include "tree-cfg.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "dumpfile.h"
 #include "cgraph.h"
diff --git a/gcc/sel-sched-dump.c b/gcc/sel-sched-dump.c
index 87d4dc5..5dabb8d 100644
--- a/gcc/sel-sched-dump.c
+++ b/gcc/sel-sched-dump.c
@@ -40,6 +40,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "target.h"
 
 #ifdef INSN_SCHEDULING
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "sel-sched-ir.h"
 #include "sel-sched-dump.h"
 
diff --git a/gcc/sel-sched-ir.c b/gcc/sel-sched-ir.c
index f9b7655..49e2b5b 100644
--- a/gcc/sel-sched-ir.c
+++ b/gcc/sel-sched-ir.c
@@ -49,6 +49,15 @@ along with GCC; see the file COPYING3.  If not see
 #include "emit-rtl.h"  /* FIXME: Can go away once crtl is moved to rtl.h.  */
 
 #ifdef INSN_SCHEDULING
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
+
 #include "sel-sched-ir.h"
 /* We don't have to use it except for sel_print_insn.  */
 #include "sel-sched-dump.h"
diff --git a/gcc/sel-sched.c b/gcc/sel-sched.c
index be5d1d1..f8bb14f 100644
--- a/gcc/sel-sched.c
+++ b/gcc/sel-sched.c
@@ -49,6 +49,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "rtl-iter.h"
 
 #ifdef INSN_SCHEDULING
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "sel-sched-ir.h"
 #include "sel-sched-dump.h"
 #include "sel-sched.h"
diff --git a/gcc/sese.c b/gcc/sese.c
index 2ba2f98..059945d 100644
--- a/gcc/sese.c
+++ b/gcc/sese.c
@@ -52,6 +52,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-ssanames.h"
 #include "tree-ssa-loop.h"
 #include "tree-into-ssa.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "tree-chrec.h"
 #include "tree-data-ref.h"
diff --git a/gcc/target-globals.c b/gcc/target-globals.c
index 608601e..0401b8b 100644
--- a/gcc/target-globals.c
+++ b/gcc/target-globals.c
@@ -44,6 +44,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "insn-codes.h"
 #include "optabs.h"
 #include "libfuncs.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "ira-int.h"
 #include "builtins.h"
diff --git a/gcc/toplev.c b/gcc/toplev.c
index d0a8f0d..0551905 100644
--- a/gcc/toplev.c
+++ b/gcc/toplev.c
@@ -68,6 +68,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "target.h"
 #include "common/common-target.h"
 #include "langhooks.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h" /* for init_set_costs */
 #include "hosthooks.h"
 #include "predict.h"
@@ -89,7 +97,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "pass_manager.h"
 #include "auto-profile.h"
 #include "dwarf2out.h"
-#include "bitmap.h"
 #include "ipa-reference.h"
 #include "symbol-summary.h"
 #include "ipa-prop.h"
diff --git a/gcc/tracer.c b/gcc/tracer.c
index 79cfd8d..04d3cdf 100644
--- a/gcc/tracer.c
+++ b/gcc/tracer.c
@@ -62,6 +62,14 @@
 #include "tree-cfg.h"
 #include "tree-ssa.h"
 #include "tree-inline.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "fibonacci_heap.h"
 
diff --git a/gcc/trans-mem.c b/gcc/trans-mem.c
index c809a2e..94d683b 100644
--- a/gcc/trans-mem.c
+++ b/gcc/trans-mem.c
@@ -60,6 +60,14 @@
 #include "target.h"
 #include "langhooks.h"
 #include "gimple-pretty-print.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "tree-ssa-address.h"
 
diff --git a/gcc/tree-cfg.c b/gcc/tree-cfg.c
index 94ed957..b31ce53 100644
--- a/gcc/tree-cfg.c
+++ b/gcc/tree-cfg.c
@@ -74,6 +74,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-pass.h"
 #include "diagnostic-core.h"
 #include "except.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "tree-ssa-propagate.h"
 #include "value-prof.h"
diff --git a/gcc/tree-cfgcleanup.c b/gcc/tree-cfgcleanup.c
index 07e2d74..27e446d 100644
--- a/gcc/tree-cfgcleanup.c
+++ b/gcc/tree-cfgcleanup.c
@@ -65,6 +65,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-ssa.h"
 #include "tree-pass.h"
 #include "except.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "tree-ssa-propagate.h"
 #include "tree-scalar-evolution.h"
diff --git a/gcc/tree-chkp-opt.c b/gcc/tree-chkp-opt.c
index 4f9d880..13730ef 100644
--- a/gcc/tree-chkp-opt.c
+++ b/gcc/tree-chkp-opt.c
@@ -29,6 +29,15 @@ along with GCC; see the file COPYING3.  If not see
 #include "target.h"
 #include "tree-cfg.h"
 #include "tree-pass.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "function.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "stringpool.h"
 #include "tree-ssa-alias.h"
@@ -52,7 +61,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "gimplify-me.h"
 #include "tm.h"
 #include "hard-reg-set.h"
-#include "function.h"
 #include "rtl.h"
 #include "flags.h"
 #include "insn-config.h"
diff --git a/gcc/tree-chkp.c b/gcc/tree-chkp.c
index 2d52495..e730a12 100644
--- a/gcc/tree-chkp.c
+++ b/gcc/tree-chkp.c
@@ -34,6 +34,15 @@ along with GCC; see the file COPYING3.  If not see
 #include "langhooks.h"
 #include "tree-pass.h"
 #include "diagnostic.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "function.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "stringpool.h"
 #include "tree-ssa-alias.h"
@@ -58,7 +67,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "print-tree.h"
 #include "tm.h"
 #include "hard-reg-set.h"
-#include "function.h"
 #include "rtl.h"
 #include "flags.h"
 #include "insn-config.h"
@@ -73,7 +81,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "gimple-fold.h"
 #include "tree-chkp.h"
 #include "gimple-walk.h"
-#include "rtl.h" /* For MEM_P, assign_temp.  */
 #include "tree-dfa.h"
 #include "lto-streamer.h"
 #include "cgraph.h"
diff --git a/gcc/tree-chrec.c b/gcc/tree-chrec.c
index b179e52..cdea7c7 100644
--- a/gcc/tree-chrec.c
+++ b/gcc/tree-chrec.c
@@ -32,11 +32,19 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree.h"
 #include "fold-const.h"
 #include "tree-pretty-print.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "function.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "predict.h"
 #include "tm.h"
 #include "hard-reg-set.h"
-#include "function.h"
 #include "dominance.h"
 #include "cfg.h"
 #include "basic-block.h"
diff --git a/gcc/tree-complex.c b/gcc/tree-complex.c
index a2bacc6..ca212be 100644
--- a/gcc/tree-complex.c
+++ b/gcc/tree-complex.c
@@ -63,6 +63,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-pass.h"
 #include "tree-ssa-propagate.h"
 #include "tree-hasher.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 
 
diff --git a/gcc/tree-data-ref.c b/gcc/tree-data-ref.c
index cc79a7f..bb3bb8d 100644
--- a/gcc/tree-data-ref.c
+++ b/gcc/tree-data-ref.c
@@ -108,6 +108,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-ssa-loop-niter.h"
 #include "tree-ssa-loop.h"
 #include "tree-ssa.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "tree-data-ref.h"
 #include "tree-scalar-evolution.h"
diff --git a/gcc/tree-eh.c b/gcc/tree-eh.c
index d3d46bc..411057e 100644
--- a/gcc/tree-eh.c
+++ b/gcc/tree-eh.c
@@ -65,6 +65,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "langhooks.h"
 #include "diagnostic-core.h"
 #include "target.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "gimple-low.h"
 
diff --git a/gcc/tree-if-conv.c b/gcc/tree-if-conv.c
index 003f1dd..f9cbc9c 100644
--- a/gcc/tree-if-conv.c
+++ b/gcc/tree-if-conv.c
@@ -113,6 +113,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-ssanames.h"
 #include "tree-into-ssa.h"
 #include "tree-ssa.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "tree-chrec.h"
 #include "tree-data-ref.h"
diff --git a/gcc/tree-inline.c b/gcc/tree-inline.c
index 6f138ed..8672666 100644
--- a/gcc/tree-inline.c
+++ b/gcc/tree-inline.c
@@ -80,11 +80,18 @@ along with GCC; see the file COPYING3.  If not see
 #include "value-prof.h"
 #include "tree-pass.h"
 #include "target.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "builtins.h"
 #include "tree-chkp.h"
 
-#include "rtl.h"	/* FIXME: For asm_str_count.  */
 
 /* I'm not real happy about this, but we need to handle gimple and
    non-gimple trees.  */
diff --git a/gcc/tree-into-ssa.c b/gcc/tree-into-ssa.c
index 24cca2c..5b219d1 100644
--- a/gcc/tree-into-ssa.c
+++ b/gcc/tree-into-ssa.c
@@ -63,6 +63,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-ssa.h"
 #include "tree-inline.h"
 #include "tree-pass.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "domwalk.h"
 #include "params.h"
diff --git a/gcc/tree-loop-distribution.c b/gcc/tree-loop-distribution.c
index 19523b9..33048fc 100644
--- a/gcc/tree-loop-distribution.c
+++ b/gcc/tree-loop-distribution.c
@@ -74,6 +74,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-ssa-loop.h"
 #include "tree-into-ssa.h"
 #include "tree-ssa.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "tree-chrec.h"
 #include "tree-data-ref.h"
diff --git a/gcc/tree-parloops.c b/gcc/tree-parloops.c
index 21ed17b..b8ecac9 100644
--- a/gcc/tree-parloops.c
+++ b/gcc/tree-parloops.c
@@ -55,6 +55,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-ssa-loop-niter.h"
 #include "tree-ssa-loop.h"
 #include "tree-into-ssa.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "tree-data-ref.h"
 #include "tree-scalar-evolution.h"
@@ -65,7 +73,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-hasher.h"
 #include "tree-parloops.h"
 #include "omp-low.h"
-#include "tree-nested.h"
 #include "cgraph.h"
 #include "tree-ssa.h"
 
diff --git a/gcc/tree-predcom.c b/gcc/tree-predcom.c
index eadad7e..fd40318 100644
--- a/gcc/tree-predcom.c
+++ b/gcc/tree-predcom.c
@@ -193,10 +193,18 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree.h"
 #include "fold-const.h"
 #include "tm_p.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "function.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "function.h"
 #include "dominance.h"
 #include "cfg.h"
 #include "basic-block.h"
diff --git a/gcc/tree-scalar-evolution.c b/gcc/tree-scalar-evolution.c
index 676fbe8..4364573 100644
--- a/gcc/tree-scalar-evolution.c
+++ b/gcc/tree-scalar-evolution.c
@@ -297,6 +297,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-ssa-loop-niter.h"
 #include "tree-ssa-loop.h"
 #include "tree-ssa.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "tree-chrec.h"
 #include "tree-affine.h"
diff --git a/gcc/tree-ssa-copy.c b/gcc/tree-ssa-copy.c
index 68fd5d6..9814dfb 100644
--- a/gcc/tree-ssa-copy.c
+++ b/gcc/tree-ssa-copy.c
@@ -48,6 +48,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-pass.h"
 #include "tree-ssa-propagate.h"
 #include "langhooks.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "tree-scalar-evolution.h"
 #include "tree-ssa-dom.h"
diff --git a/gcc/tree-ssa-dce.c b/gcc/tree-ssa-dce.c
index 181626c..8f23008 100644
--- a/gcc/tree-ssa-dce.c
+++ b/gcc/tree-ssa-dce.c
@@ -86,6 +86,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "expr.h"
 #include "tree-dfa.h"
 #include "tree-pass.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "tree-scalar-evolution.h"
 #include "tree-chkp.h"
diff --git a/gcc/tree-ssa-dom.c b/gcc/tree-ssa-dom.c
index 698f78a..031f843 100644
--- a/gcc/tree-ssa-dom.c
+++ b/gcc/tree-ssa-dom.c
@@ -36,6 +36,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "cfg.h"
 #include "cfganal.h"
 #include "basic-block.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "gimple-pretty-print.h"
 #include "tree-ssa-alias.h"
diff --git a/gcc/tree-ssa-forwprop.c b/gcc/tree-ssa-forwprop.c
index bd7c9fa..9e9a768 100644
--- a/gcc/tree-ssa-forwprop.c
+++ b/gcc/tree-ssa-forwprop.c
@@ -64,6 +64,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-pass.h"
 #include "langhooks.h"
 #include "diagnostic.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "insn-codes.h"
 #include "optabs.h"
diff --git a/gcc/tree-ssa-loop-ch.c b/gcc/tree-ssa-loop-ch.c
index 121e3d8..57f00a5 100644
--- a/gcc/tree-ssa-loop-ch.c
+++ b/gcc/tree-ssa-loop-ch.c
@@ -41,6 +41,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-cfg.h"
 #include "tree-into-ssa.h"
 #include "tree-pass.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "tree-inline.h"
 #include "flags.h"
diff --git a/gcc/tree-ssa-loop-im.c b/gcc/tree-ssa-loop-im.c
index 477f373..9503713 100644
--- a/gcc/tree-ssa-loop-im.c
+++ b/gcc/tree-ssa-loop-im.c
@@ -50,6 +50,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-ssa-loop-manip.h"
 #include "tree-ssa-loop.h"
 #include "tree-into-ssa.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "domwalk.h"
 #include "params.h"
diff --git a/gcc/tree-ssa-loop-ivcanon.c b/gcc/tree-ssa-loop-ivcanon.c
index 4b90196..69f22cb 100644
--- a/gcc/tree-ssa-loop-ivcanon.c
+++ b/gcc/tree-ssa-loop-ivcanon.c
@@ -70,6 +70,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-ssa-loop-niter.h"
 #include "tree-ssa-loop.h"
 #include "tree-into-ssa.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "tree-pass.h"
 #include "tree-chrec.h"
diff --git a/gcc/tree-ssa-loop-ivopts.c b/gcc/tree-ssa-loop-ivopts.c
index a35ddab..8f092d6 100644
--- a/gcc/tree-ssa-loop-ivopts.c
+++ b/gcc/tree-ssa-loop-ivopts.c
@@ -110,6 +110,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "expr.h"
 #include "tree-dfa.h"
 #include "tree-ssa.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "tree-pass.h"
 #include "tree-chrec.h"
diff --git a/gcc/tree-ssa-loop-manip.c b/gcc/tree-ssa-loop-manip.c
index a72b779..d6786fd 100644
--- a/gcc/tree-ssa-loop-manip.c
+++ b/gcc/tree-ssa-loop-manip.c
@@ -54,6 +54,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-ssa.h"
 #include "dumpfile.h"
 #include "gimple-pretty-print.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "tree-pass.h"	/* ??? for TODO_update_ssa but this isn't a pass.  */
 #include "tree-scalar-evolution.h"
diff --git a/gcc/tree-ssa-loop-niter.c b/gcc/tree-ssa-loop-niter.c
index c5adb1c..ce31dab 100644
--- a/gcc/tree-ssa-loop-niter.c
+++ b/gcc/tree-ssa-loop-niter.c
@@ -60,6 +60,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-ssa-loop-niter.h"
 #include "tree-ssa-loop.h"
 #include "dumpfile.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "tree-chrec.h"
 #include "tree-scalar-evolution.h"
diff --git a/gcc/tree-ssa-loop-prefetch.c b/gcc/tree-ssa-loop-prefetch.c
index 6996845..64c4c80 100644
--- a/gcc/tree-ssa-loop-prefetch.c
+++ b/gcc/tree-ssa-loop-prefetch.c
@@ -47,6 +47,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-ssa-loop-niter.h"
 #include "tree-ssa-loop.h"
 #include "tree-into-ssa.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "tree-pass.h"
 #include "insn-config.h"
diff --git a/gcc/tree-ssa-loop-unswitch.c b/gcc/tree-ssa-loop-unswitch.c
index 0be9142..0ec15ca 100644
--- a/gcc/tree-ssa-loop-unswitch.c
+++ b/gcc/tree-ssa-loop-unswitch.c
@@ -44,6 +44,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-ssa-loop-niter.h"
 #include "tree-ssa-loop.h"
 #include "tree-into-ssa.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "params.h"
 #include "tree-pass.h"
diff --git a/gcc/tree-ssa-loop.c b/gcc/tree-ssa-loop.c
index f2a3460..78433d1 100644
--- a/gcc/tree-ssa-loop.c
+++ b/gcc/tree-ssa-loop.c
@@ -42,6 +42,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-ssa-loop-niter.h"
 #include "tree-ssa-loop.h"
 #include "tree-pass.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "flags.h"
 #include "tree-inline.h"
diff --git a/gcc/tree-ssa-phiopt.c b/gcc/tree-ssa-phiopt.c
index 92b4ab0..e024863 100644
--- a/gcc/tree-ssa-phiopt.c
+++ b/gcc/tree-ssa-phiopt.c
@@ -62,6 +62,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-pass.h"
 #include "langhooks.h"
 #include "domwalk.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "tree-data-ref.h"
 #include "gimple-pretty-print.h"
diff --git a/gcc/tree-ssa-pre.c b/gcc/tree-ssa-pre.c
index b4e3477..e073ea1 100644
--- a/gcc/tree-ssa-pre.c
+++ b/gcc/tree-ssa-pre.c
@@ -71,6 +71,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "obstack.h"
 #include "tree-pass.h"
 #include "langhooks.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "tree-ssa-sccvn.h"
 #include "tree-scalar-evolution.h"
diff --git a/gcc/tree-ssa-propagate.c b/gcc/tree-ssa-propagate.c
index c38bb28..c3235d1 100644
--- a/gcc/tree-ssa-propagate.c
+++ b/gcc/tree-ssa-propagate.c
@@ -57,6 +57,12 @@
 #include "langhooks.h"
 #include "value-prof.h"
 #include "domwalk.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "tree-cfgcleanup.h"
 
diff --git a/gcc/tree-ssa-reassoc.c b/gcc/tree-ssa-reassoc.c
index f243df5..141ab86 100644
--- a/gcc/tree-ssa-reassoc.c
+++ b/gcc/tree-ssa-reassoc.c
@@ -70,6 +70,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-pass.h"
 #include "alloc-pool.h"
 #include "langhooks.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "target.h"
 #include "params.h"
diff --git a/gcc/tree-ssa-sccvn.c b/gcc/tree-ssa-sccvn.c
index e2b36a6..b0f0d5e 100644
--- a/gcc/tree-ssa-sccvn.c
+++ b/gcc/tree-ssa-sccvn.c
@@ -63,6 +63,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-ssa.h"
 #include "dumpfile.h"
 #include "alloc-pool.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "params.h"
 #include "tree-ssa-propagate.h"
diff --git a/gcc/tree-ssa-sink.c b/gcc/tree-ssa-sink.c
index 069fae4..733d0bc 100644
--- a/gcc/tree-ssa-sink.c
+++ b/gcc/tree-ssa-sink.c
@@ -49,6 +49,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "alloc-pool.h"
 #include "tree-pass.h"
 #include "flags.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "params.h"
 
diff --git a/gcc/tree-ssa-tail-merge.c b/gcc/tree-ssa-tail-merge.c
index 3c660f9..acaf714 100644
--- a/gcc/tree-ssa-tail-merge.c
+++ b/gcc/tree-ssa-tail-merge.c
@@ -220,9 +220,16 @@ along with GCC; see the file COPYING3.  If not see
 #include "gimple-pretty-print.h"
 #include "tree-ssa-sccvn.h"
 #include "tree-dump.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "tree-pass.h"
-#include "trans-mem.h"
 
 /* Describes a group of bbs with the same successors.  The successor bbs are
    cached in succs, and the successor edge flags are cached in succ_flags.
diff --git a/gcc/tree-ssa-threadedge.c b/gcc/tree-ssa-threadedge.c
index f2e70cf..fdd7a58 100644
--- a/gcc/tree-ssa-threadedge.c
+++ b/gcc/tree-ssa-threadedge.c
@@ -33,6 +33,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "function.h"
 #include "dominance.h"
 #include "basic-block.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "timevar.h"
 #include "dumpfile.h"
diff --git a/gcc/tree-ssa-threadupdate.c b/gcc/tree-ssa-threadupdate.c
index 4b19022..746d1c4 100644
--- a/gcc/tree-ssa-threadupdate.c
+++ b/gcc/tree-ssa-threadupdate.c
@@ -45,6 +45,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-ssa-threadupdate.h"
 #include "ssa-iterators.h"
 #include "dumpfile.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "dbgcnt.h"
 #include "tree-cfg.h"
diff --git a/gcc/tree-ssa.c b/gcc/tree-ssa.c
index cab627d..574bea1 100644
--- a/gcc/tree-ssa.c
+++ b/gcc/tree-ssa.c
@@ -56,6 +56,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-inline.h"
 #include "tree-pass.h"
 #include "diagnostic-core.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "cfgexpand.h"
 
diff --git a/gcc/tree-switch-conversion.c b/gcc/tree-switch-conversion.c
index 2f9ad27..34bc484 100644
--- a/gcc/tree-switch-conversion.c
+++ b/gcc/tree-switch-conversion.c
@@ -56,6 +56,14 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 #include "tree-ssanames.h"
 #include "tree-pass.h"
 #include "gimple-pretty-print.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 
 /* ??? For lang_hooks.types.type_for_mode, but is there a word_mode
diff --git a/gcc/tree-tailcall.c b/gcc/tree-tailcall.c
index 476917e..75ea01d 100644
--- a/gcc/tree-tailcall.c
+++ b/gcc/tree-tailcall.c
@@ -63,6 +63,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "langhooks.h"
 #include "dbgcnt.h"
 #include "target.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "common/common-target.h"
 #include "cgraph.h"
diff --git a/gcc/tree-vect-data-refs.c b/gcc/tree-vect-data-refs.c
index 4f4cf4e..0bc1e12 100644
--- a/gcc/tree-vect-data-refs.c
+++ b/gcc/tree-vect-data-refs.c
@@ -54,6 +54,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-ssa-loop-ivopts.h"
 #include "tree-ssa-loop-manip.h"
 #include "tree-ssa-loop.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "tree-chrec.h"
 #include "tree-scalar-evolution.h"
diff --git a/gcc/tree-vect-loop-manip.c b/gcc/tree-vect-loop-manip.c
index 58d2c7f..e6ccef8 100644
--- a/gcc/tree-vect-loop-manip.c
+++ b/gcc/tree-vect-loop-manip.c
@@ -53,6 +53,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-into-ssa.h"
 #include "tree-ssa.h"
 #include "tree-pass.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "diagnostic-core.h"
 #include "tree-scalar-evolution.h"
diff --git a/gcc/tree-vect-loop.c b/gcc/tree-vect-loop.c
index 1256fe2..c94dbc9 100644
--- a/gcc/tree-vect-loop.c
+++ b/gcc/tree-vect-loop.c
@@ -53,6 +53,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-ssa-loop-manip.h"
 #include "tree-ssa-loop-niter.h"
 #include "tree-pass.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "rtl.h"
 #include "flags.h"
diff --git a/gcc/tree-vect-patterns.c b/gcc/tree-vect-patterns.c
index 1b6043c..100a2f8 100644
--- a/gcc/tree-vect-patterns.c
+++ b/gcc/tree-vect-patterns.c
@@ -46,6 +46,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "ssa-iterators.h"
 #include "stringpool.h"
 #include "tree-ssanames.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "rtl.h"
 #include "flags.h"
diff --git a/gcc/tree-vect-slp.c b/gcc/tree-vect-slp.c
index e85e80d..845c4fd 100644
--- a/gcc/tree-vect-slp.c
+++ b/gcc/tree-vect-slp.c
@@ -46,6 +46,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "stringpool.h"
 #include "tree-ssanames.h"
 #include "tree-pass.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "rtl.h"
 #include "flags.h"
diff --git a/gcc/tree-vect-stmts.c b/gcc/tree-vect-stmts.c
index 6592be2..e22cc3f 100644
--- a/gcc/tree-vect-stmts.c
+++ b/gcc/tree-vect-stmts.c
@@ -52,6 +52,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "stringpool.h"
 #include "tree-ssanames.h"
 #include "tree-ssa-loop-manip.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "tree-ssa-loop.h"
 #include "tree-scalar-evolution.h"
diff --git a/gcc/tree-vectorizer.c b/gcc/tree-vectorizer.c
index e49929a..68b9b4f 100644
--- a/gcc/tree-vectorizer.c
+++ b/gcc/tree-vectorizer.c
@@ -83,6 +83,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "ssa-iterators.h"
 #include "tree-ssa-loop-manip.h"
 #include "tree-cfg.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "tree-vectorizer.h"
 #include "tree-pass.h"
diff --git a/gcc/tree-vrp.c b/gcc/tree-vrp.c
index db1df37..322e546 100644
--- a/gcc/tree-vrp.c
+++ b/gcc/tree-vrp.c
@@ -60,6 +60,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "gimple-pretty-print.h"
 #include "diagnostic-core.h"
 #include "intl.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "tree-scalar-evolution.h"
 #include "tree-ssa-propagate.h"
diff --git a/gcc/ubsan.c b/gcc/ubsan.c
index 19eafab..9fc5561 100644
--- a/gcc/ubsan.c
+++ b/gcc/ubsan.c
@@ -49,6 +49,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "output.h"
 #include "tm_p.h"
 #include "toplev.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 #include "ubsan.h"
 #include "c-family/c-common.h"
diff --git a/gcc/vtable-verify.c b/gcc/vtable-verify.c
index 8e24c92..d1ab403 100644
--- a/gcc/vtable-verify.c
+++ b/gcc/vtable-verify.c
@@ -158,6 +158,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "stringpool.h"
 #include "tree-ssanames.h"
 #include "tree-pass.h"
+#include "bitmap.h"
+#include "sbitmap.h"
+#include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
 #include "cfgloop.h"
 
 #include "vtable-verify.h"
diff mbox

Patch

diff --git a/gcc/cfgloop.h b/gcc/cfgloop.h
index fe3bb92..942116a 100644
--- a/gcc/cfgloop.h
+++ b/gcc/cfgloop.h
@@ -24,6 +24,12 @@  along with GCC; see the file COPYING3.  If not see
 #include "sbitmap.h"
 #include "function.h"
 #include "cfgloopmanip.h"
+#include "loop-init.h"
+#include "cfgloopanal.h"
+#include "loop-doloop.h"
+#include "loop-invariant.h"
+#include "loop-iv.h"
+
 
 /* Structure to hold decision about unrolling/peeling.  */
 enum lpt_dec
@@ -39,14 +45,6 @@  struct GTY (()) lpt_decision {
   unsigned times;
 };
 
-/* The type of extend applied to an IV.  */
-enum iv_extend_code
-{
-  IV_SIGN_EXTEND,
-  IV_ZERO_EXTEND,
-  IV_UNKNOWN_EXTEND
-};
-
 /* The structure describing a bound on number of iterations of a loop.  */
 
 struct GTY ((chain_next ("%h.next"))) nb_iter_bound {
@@ -265,8 +263,6 @@  extern void flow_loop_dump (const struct loop *, FILE *,
 struct loop *alloc_loop (void);
 extern void flow_loop_free (struct loop *);
 int flow_loop_nodes_find (basic_block, struct loop *);
-unsigned fix_loop_structure (bitmap changed_bbs);
-bool mark_irreducible_loops (void);
 void release_recorded_exits (void);
 void record_loop_exits (void);
 void rescan_loop_exit (edge, bool, bool);
@@ -278,14 +274,9 @@  extern bool flow_loop_nested_p	(const struct loop *, const struct loop *);
 extern bool flow_bb_inside_loop_p (const struct loop *, const_basic_block);
 extern struct loop * find_common_loop (struct loop *, struct loop *);
 struct loop *superloop_at_depth (struct loop *, unsigned);
-struct eni_weights_d;
-extern int num_loop_insns (const struct loop *);
-extern int average_num_loop_insns (const struct loop *);
-extern unsigned get_loop_level (const struct loop *);
 extern bool loop_exit_edge_p (const struct loop *, const_edge);
 extern bool loop_exits_to_bb_p (struct loop *, basic_block);
 extern bool loop_exits_from_bb_p (struct loop *, basic_block);
-extern void mark_loop_exit_edges (void);
 extern location_t get_loop_location (struct loop *loop);
 
 /* Loops & cfg manipulation.  */
@@ -299,7 +290,6 @@  extern basic_block *get_loop_body_in_custom_order (const struct loop *,
 
 extern vec<edge> get_loop_exit_edges (const struct loop *);
 extern edge single_exit (const struct loop *);
-extern edge single_likely_exit (struct loop *loop);
 extern unsigned num_loop_branches (const struct loop *);
 
 extern edge loop_preheader_edge (const struct loop *);
@@ -311,60 +301,8 @@  extern void remove_bb_from_loops (basic_block);
 extern void cancel_loop_tree (struct loop *);
 extern void delete_loop (struct loop *);
 
-
 extern void verify_loop_structure (void);
-
-/* Loop analysis.  */
-extern bool just_once_each_iteration_p (const struct loop *, const_basic_block);
-gcov_type expected_loop_iterations_unbounded (const struct loop *);
-extern unsigned expected_loop_iterations (const struct loop *);
-extern rtx doloop_condition_get (rtx);
-
-void mark_loop_for_removal (loop_p);
-
-/* Induction variable analysis.  */
-
-/* The description of induction variable.  The things are a bit complicated
-   due to need to handle subregs and extends.  The value of the object described
-   by it can be obtained as follows (all computations are done in extend_mode):
-
-   Value in i-th iteration is
-     delta + mult * extend_{extend_mode} (subreg_{mode} (base + i * step)).
-
-   If first_special is true, the value in the first iteration is
-     delta + mult * base
-
-   If extend = UNKNOWN, first_special must be false, delta 0, mult 1 and value is
-     subreg_{mode} (base + i * step)
-
-   The get_iv_value function can be used to obtain these expressions.
-
-   ??? Add a third mode field that would specify the mode in that inner
-   computation is done, which would enable it to be different from the
-   outer one?  */
-
-struct rtx_iv
-{
-  /* Its base and step (mode of base and step is supposed to be extend_mode,
-     see the description above).  */
-  rtx base, step;
-
-  /* The type of extend applied to it (IV_SIGN_EXTEND, IV_ZERO_EXTEND,
-     or IV_UNKNOWN_EXTEND).  */
-  enum iv_extend_code extend;
-
-  /* Operations applied in the extended mode.  */
-  rtx delta, mult;
-
-  /* The mode it is extended to.  */
-  machine_mode extend_mode;
-
-  /* The mode the variable iterates in.  */
-  machine_mode mode;
-
-  /* Whether the first iteration needs to be handled specially.  */
-  unsigned first_special : 1;
-};
+extern void mark_loop_for_removal (loop_p);
 
 /* The description of an exit from the loop and of the number of iterations
    till we take the exit.  */
@@ -407,19 +345,6 @@  struct GTY(()) niter_desc
   rtx niter_expr;
 };
 
-extern void iv_analysis_loop_init (struct loop *);
-extern bool iv_analyze (rtx_insn *, rtx, struct rtx_iv *);
-extern bool iv_analyze_result (rtx_insn *, rtx, struct rtx_iv *);
-extern bool iv_analyze_expr (rtx_insn *, rtx, machine_mode,
-			     struct rtx_iv *);
-extern rtx get_iv_value (struct rtx_iv *, rtx);
-extern bool biv_p (rtx_insn *, rtx);
-extern void find_simple_exit (struct loop *, struct niter_desc *);
-extern void iv_analysis_done (void);
-
-extern struct niter_desc *get_simple_loop_desc (struct loop *loop);
-extern void free_simple_loop_desc (struct loop *loop);
-
 static inline struct niter_desc *
 simple_loop_desc (struct loop *loop)
 {
@@ -687,15 +612,6 @@  extern struct target_cfgloop *this_target_cfgloop;
 #define target_spill_cost \
   (this_target_cfgloop->x_target_spill_cost)
 
-/* Register pressure estimation for induction variable optimizations & loop
-   invariant motion.  */
-extern unsigned estimate_reg_pressure_cost (unsigned, unsigned, bool, bool);
-extern void init_set_costs (void);
-
-/* Loop optimizer initialization.  */
-extern void loop_optimizer_init (unsigned);
-extern void loop_optimizer_finalize (void);
-
 /* Optimization passes.  */
 enum
 {
@@ -703,10 +619,6 @@  enum
   UAP_UNROLL_ALL = 2	/* Enables unrolling of all loops.  */
 };
 
-extern void doloop_optimize_loops (void);
-extern void move_loop_invariants (void);
-extern vec<basic_block> get_loop_hot_path (const struct loop *loop);
-
 /* Returns the outermost loop of the loop nest that contains LOOP.*/
 static inline struct loop *
 loop_outermost (struct loop *loop)
diff --git a/gcc/cfgloopanal.h b/gcc/cfgloopanal.h
new file mode 100644
index 0000000..e049d10
--- /dev/null
+++ b/gcc/cfgloopanal.h
@@ -0,0 +1,39 @@ 
+/* Export function prototypes from cfgloopanal.c.
+   Copyright (C) 2015-2016 Free Software Foundation, Inc.
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 3, or (at your option) any later
+version.
+
+GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3.  If not see
+<http://www.gnu.org/licenses/>.  */
+
+#ifndef GCC_CFGLOOPANAL_H
+#define GCC_CFGLOOPANAL_H
+
+extern bool just_once_each_iteration_p (const struct loop *, const_basic_block);
+extern bool mark_irreducible_loops (void);
+extern int num_loop_insns (const struct loop *);
+extern int average_num_loop_insns (const struct loop *);
+extern gcov_type expected_loop_iterations_unbounded (const struct loop *);
+extern unsigned expected_loop_iterations (const struct loop *);
+extern unsigned get_loop_level (const struct loop *);
+extern void mark_loop_exit_edges (void);
+extern edge single_likely_exit (struct loop *loop);
+extern vec<basic_block> get_loop_hot_path (const struct loop *loop);
+
+/* Register pressure estimation for induction variable optimizations & loop
+   invariant motion.  */
+extern unsigned estimate_reg_pressure_cost (unsigned, unsigned, bool, bool);
+extern void init_set_costs (void);
+
+#endif /* GCC_CFGLOOPANAL_H */
diff --git a/gcc/loop-doloop.h b/gcc/loop-doloop.h
new file mode 100644
index 0000000..8ab805a
--- /dev/null
+++ b/gcc/loop-doloop.h
@@ -0,0 +1,26 @@ 
+/* Export function prototypes from loop-doloop.c.
+   Copyright (C) 2015-2016 Free Software Foundation, Inc.
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 3, or (at your option) any later
+version.
+
+GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3.  If not see
+<http://www.gnu.org/licenses/>.  */
+
+#ifndef GCC_LOOP_DOLOOP_H
+#define GCC_LOOP_DOLOOP_H
+
+extern rtx doloop_condition_get (rtx);
+extern void doloop_optimize_loops (void);
+
+#endif // GCC_LOOP_DOLOOP_H
diff --git a/gcc/loop-init.h b/gcc/loop-init.h
new file mode 100644
index 0000000..05ee22a
--- /dev/null
+++ b/gcc/loop-init.h
@@ -0,0 +1,29 @@ 
+/* Export function prototypes from loop-init.c.
+   Copyright (C) 2015-2016 Free Software Foundation, Inc.
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 3, or (at your option) any later
+version.
+
+GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3.  If not see
+<http://www.gnu.org/licenses/>.  */
+
+#ifndef GCC_LOOP_INIT_H
+#define GCC_LOOP_INIT_H
+
+unsigned fix_loop_structure (bitmap changed_bbs);
+
+/* Loop optimizer initialization.  */
+extern void loop_optimizer_init (unsigned);
+extern void loop_optimizer_finalize (void);
+
+#endif // GCC_LOOP_INIT_H
diff --git a/gcc/loop-invariant.h b/gcc/loop-invariant.h
new file mode 100644
index 0000000..04067d2
--- /dev/null
+++ b/gcc/loop-invariant.h
@@ -0,0 +1,25 @@ 
+/* Export function prototypes from loop-invariant.c.
+   Copyright (C) 2015-2016 Free Software Foundation, Inc.
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 3, or (at your option) any later
+version.
+
+GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3.  If not see
+<http://www.gnu.org/licenses/>.  */
+
+#ifndef GCC_LOOP_INVARIANT_H
+#define GCC_LOOP_INVARIANT_H
+
+extern void move_loop_invariants (void);
+
+#endif // GCC_LOOP_INVARIANT_H
diff --git a/gcc/loop-iv.h b/gcc/loop-iv.h
new file mode 100644
index 0000000..e7c36c5
--- /dev/null
+++ b/gcc/loop-iv.h
@@ -0,0 +1,88 @@ 
+/* RTL-level induction variable analysis header.
+   Copyright (C) 2015-2016 Free Software Foundation, Inc.
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 3, or (at your option) any later
+version.
+
+GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3.  If not see
+<http://www.gnu.org/licenses/>.  */
+
+#ifndef GCC_LOOP_IV_H
+#define GCC_LOOP_IV_H
+
+/* The type of extend applied to an IV.  */
+enum iv_extend_code
+{
+  IV_SIGN_EXTEND,
+  IV_ZERO_EXTEND,
+  IV_UNKNOWN_EXTEND
+};
+
+/* Induction variable analysis.  */
+
+/* The description of induction variable.  The things are a bit complicated
+   due to need to handle subregs and extends.  The value of the object described
+   by it can be obtained as follows (all computations are done in extend_mode):
+
+   Value in i-th iteration is
+     delta + mult * extend_{extend_mode} (subreg_{mode} (base + i * step)).
+
+   If first_special is true, the value in the first iteration is
+     delta + mult * base
+
+   If extend = UNKNOWN, first_special must be false, delta 0, mult 1 and value is
+     subreg_{mode} (base + i * step)
+
+   The get_iv_value function can be used to obtain these expressions.
+
+   ??? Add a third mode field that would specify the mode in that inner
+   computation is done, which would enable it to be different from the
+   outer one?  */
+
+struct rtx_iv
+{
+  /* Its base and step (mode of base and step is supposed to be extend_mode,
+     see the description above).  */
+  rtx base, step;
+
+  /* The type of extend applied to it (IV_SIGN_EXTEND, IV_ZERO_EXTEND,
+     or IV_UNKNOWN_EXTEND).  */
+  enum iv_extend_code extend;
+
+  /* Operations applied in the extended mode.  */
+  rtx delta, mult;
+
+  /* The mode it is extended to.  */
+  machine_mode extend_mode;
+
+  /* The mode the variable iterates in.  */
+  machine_mode mode;
+
+  /* Whether the first iteration needs to be handled specially.  */
+  unsigned first_special : 1;
+};
+
+extern void iv_analysis_loop_init (struct loop *);
+extern bool iv_analyze (rtx_insn *, rtx, struct rtx_iv *);
+extern bool iv_analyze_result (rtx_insn *, rtx, struct rtx_iv *);
+extern bool iv_analyze_expr (rtx_insn *, rtx, machine_mode,
+			     struct rtx_iv *);
+extern rtx get_iv_value (struct rtx_iv *, rtx);
+extern bool biv_p (rtx_insn *, rtx);
+extern void find_simple_exit (struct loop *, struct niter_desc *);
+extern void iv_analysis_done (void);
+
+extern struct niter_desc *get_simple_loop_desc (struct loop *loop);
+extern void free_simple_loop_desc (struct loop *loop);
+
+#endif  // GCC_LOOP_IV_H