public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* flatten cfgloop.h
@ 2015-07-05 13:25 Prathamesh Kulkarni
  2015-07-06 13:38 ` Michael Matz
  0 siblings, 1 reply; 5+ messages in thread
From: Prathamesh Kulkarni @ 2015-07-05 13:25 UTC (permalink / raw)
  To: Andrew MacLeod, Richard Biener, gcc Patches

[-- Attachment #1: Type: text/plain, Size: 419 bytes --]

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

[-- Attachment #2: ChangeLog-1.txt --]
[-- Type: text/plain, Size: 604 bytes --]

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.

[-- Attachment #3: ChangeLog-2.txt --]
[-- Type: text/plain, Size: 3624 bytes --]

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.

[-- Attachment #4: patch-1.diff --]
[-- Type: text/plain, Size: 14429 bytes --]

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

[-- Attachment #5: patch-2.diff --]
[-- Type: text/plain, Size: 73241 bytes --]

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"
 
 \f
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"
 \f
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"

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: flatten cfgloop.h
  2015-07-05 13:25 flatten cfgloop.h Prathamesh Kulkarni
@ 2015-07-06 13:38 ` Michael Matz
  2015-07-06 15:26   ` Andrew MacLeod
  2015-07-06 18:11   ` Jeff Law
  0 siblings, 2 replies; 5+ messages in thread
From: Michael Matz @ 2015-07-06 13:38 UTC (permalink / raw)
  To: gcc Patches

Hi,

On Sun, 5 Jul 2015, Prathamesh Kulkarni wrote:

> 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 ?

Does nobody else think that header files for one or two prototypes are 
fairly silly?

Anyway, your autogenerated part contains changes that seem exaggerated, 
e.g.:

+++ 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"

Surely bt-load doesn't need anything from doloop.h or invariant.h.  Before 
this goes into trunk this whole autogenerated thing should be cleaned up 
to add includes only for things that are actually needed.


Ciao,
Michael.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: flatten cfgloop.h
  2015-07-06 13:38 ` Michael Matz
@ 2015-07-06 15:26   ` Andrew MacLeod
  2015-07-06 18:11   ` Jeff Law
  1 sibling, 0 replies; 5+ messages in thread
From: Andrew MacLeod @ 2015-07-06 15:26 UTC (permalink / raw)
  To: gcc-patches, Prathamesh Kulkarni, Richard Biener, Michael Matz

On 07/06/2015 09:38 AM, Michael Matz wrote:
> Hi,
>
> On Sun, 5 Jul 2015, Prathamesh Kulkarni wrote:
>
>> 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 ?
> Does nobody else think that header files for one or two prototypes are
> fairly silly?

I think it has its uses, but we also have the vast majority of the 
"problem" includes resolved. I didn't remember that these older patches 
were still doing anything other than moving includes.
I'm thinking we need to sit back and do the rebuilding and see where we 
land after I do the include reduction.

  Over the next couple of days I'm planning to submit some 
flattening/re-modulizing patches. so maybe we ought to hold off on this 
for now and maybe then revisit parts of this.  Some of the includes in 
cfgloop.h are impacted and become parts of a backend module header..

Andrew

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: flatten cfgloop.h
  2015-07-06 13:38 ` Michael Matz
  2015-07-06 15:26   ` Andrew MacLeod
@ 2015-07-06 18:11   ` Jeff Law
  2015-07-07  8:47     ` Richard Biener
  1 sibling, 1 reply; 5+ messages in thread
From: Jeff Law @ 2015-07-06 18:11 UTC (permalink / raw)
  To: Michael Matz, gcc Patches

On 07/06/2015 07:38 AM, Michael Matz wrote:
> Hi,
>
> On Sun, 5 Jul 2015, Prathamesh Kulkarni wrote:
>
>> 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 ?
>
> Does nobody else think that header files for one or two prototypes are
> fairly silly?
Perhaps, but having a .h file for each .c file's exported objects means 
that we can implement a reasonable policy around where functions are 
prototyped or structures declared.

Contrast to "I put foo in expr.h because that was the most convenient 
place" which over 25+ years has made our header file dependencies a 
horrid mess.


>
> Anyway, your autogenerated part contains changes that seem exaggerated,
> e.g.:
>
> +++ 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"
>
> Surely bt-load doesn't need anything from doloop.h or invariant.h.  Before
> this goes into trunk this whole autogenerated thing should be cleaned up
> to add includes only for things that are actually needed.
Agreed.
jeff


^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: flatten cfgloop.h
  2015-07-06 18:11   ` Jeff Law
@ 2015-07-07  8:47     ` Richard Biener
  0 siblings, 0 replies; 5+ messages in thread
From: Richard Biener @ 2015-07-07  8:47 UTC (permalink / raw)
  To: Jeff Law; +Cc: Michael Matz, gcc Patches

On Mon, Jul 6, 2015 at 8:11 PM, Jeff Law <law@redhat.com> wrote:
> On 07/06/2015 07:38 AM, Michael Matz wrote:
>>
>> Hi,
>>
>> On Sun, 5 Jul 2015, Prathamesh Kulkarni wrote:
>>
>>> 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 ?
>>
>>
>> Does nobody else think that header files for one or two prototypes are
>> fairly silly?
>
> Perhaps, but having a .h file for each .c file's exported objects means that
> we can implement a reasonable policy around where functions are prototyped
> or structures declared.

Yes.  At least for infrastructure files.  I happily make exceptions for things
like tree-vectorizer.h having prototypes for all tree-vect*.c files
(the at least
look related!).  Similar for tree-pass.h containing the interfacing of passes
to the pass manager (instead of having a header file for every pass).

> Contrast to "I put foo in expr.h because that was the most convenient place"
> which over 25+ years has made our header file dependencies a horrid mess.

Yeah - and I think we need to clean this up.  The general guidance of
prototype is in the corresponding .h file is easy.

After doing that we can move functions or even get rid of *.[ch] pairs
(like what is tree-dfa.[ch] other than a kitchen-sink for stuff - certainly
no where "Data flow functions for trees")

Richard.

>
>>
>> Anyway, your autogenerated part contains changes that seem exaggerated,
>> e.g.:
>>
>> +++ 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"
>>
>> Surely bt-load doesn't need anything from doloop.h or invariant.h.  Before
>> this goes into trunk this whole autogenerated thing should be cleaned up
>> to add includes only for things that are actually needed.
>
> Agreed.
> jeff
>
>

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2015-07-07  8:47 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-07-05 13:25 flatten cfgloop.h Prathamesh Kulkarni
2015-07-06 13:38 ` Michael Matz
2015-07-06 15:26   ` Andrew MacLeod
2015-07-06 18:11   ` Jeff Law
2015-07-07  8:47     ` Richard Biener

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).