public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* flatten expr.h (version 2)
@ 2015-01-12  0:23 Prathamesh Kulkarni
  2015-01-13 10:36 ` Richard Biener
  0 siblings, 1 reply; 17+ messages in thread
From: Prathamesh Kulkarni @ 2015-01-12  0:23 UTC (permalink / raw)
  To: gcc Patches, Michael Collison, Richard Biener, Andrew MacLeod,
	Maxim Kuvyrkov, Jeff Law

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

Hi,
This is a revamped expr.h flattening flattening patch rebased on
tree.h and tree-core.h flattening patch (r219402).
It depends upon the following patch to get committed.
https://gcc.gnu.org/ml/gcc-patches/2015-01/msg00565.html

Changes:
* Removed all includes except tree-core.h. Put includes required by
expr.h in a comment.
* Moved stmt.c, expmed.c prototypes to stmt.h, expmed.h respectively.
* Adjusted generator programs: genemit.c, gengtype.c, genopinit.c, genoutput.c.
* Did not put includes in gcc-plugin.h since expr.h cannot be included
by plugins
(putting them broke building a file in c-family/ since expr.h is not
allowed in front-ends)
* Affects java front-end (expr.h is allowed in java front-end).

Bootstrapped and tested on x86_64-unknown-linux-gnu with languages:
all,go,ada,jit
Built on all targets in config-list.mk with languages: all, go.
OK to commit ?

Thanks,
Prathamesh

[-- Attachment #2: expr-final-patch.txt --]
[-- Type: text/plain, Size: 170526 bytes --]

diff --git a/gcc/alias.c b/gcc/alias.c
index 9261cd8..be09ed5 100644
--- a/gcc/alias.c
+++ b/gcc/alias.c
@@ -35,19 +35,20 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree.h"
 #include "fold-const.h"
 #include "varasm.h"
-#include "expr.h"
-#include "tm_p.h"
 #include "hashtab.h"
-#include "hash-set.h"
-#include "vec.h"
-#include "machmode.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
-#include "alias.h"
+#include "flags.h"
+#include "insn-config.h"
 #include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expr.h"
+#include "tm_p.h"
 #include "regs.h"
-#include "flags.h"
 #include "diagnostic-core.h"
 #include "cselib.h"
 #include "hash-map.h"
diff --git a/gcc/asan.c b/gcc/asan.c
index 9585f6c..108f1ce 100644
--- a/gcc/asan.c
+++ b/gcc/asan.c
@@ -38,7 +38,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "predict.h"
 #include "tm.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -48,7 +47,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "internal-fn.h"
 #include "gimple-expr.h"
 #include "is-a.h"
-#include "inchash.h"
 #include "gimple.h"
 #include "gimplify.h"
 #include "gimple-iterator.h"
@@ -66,6 +64,16 @@ along with GCC; see the file COPYING3.  If not see
 #include "asan.h"
 #include "gimple-pretty-print.h"
 #include "target.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "flags.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
diff --git a/gcc/auto-inc-dec.c b/gcc/auto-inc-dec.c
index 50258d5..39523d6 100644
--- a/gcc/auto-inc-dec.c
+++ b/gcc/auto-inc-dec.c
@@ -36,11 +36,7 @@ along with GCC; see the file COPYING3.  If not see
 #include "tm_p.h"
 #include "hard-reg-set.h"
 #include "predict.h"
-#include "vec.h"
 #include "hashtab.h"
-#include "hash-set.h"
-#include "machmode.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -52,6 +48,12 @@ along with GCC; see the file COPYING3.  If not see
 #include "except.h"
 #include "diagnostic-core.h"
 #include "recog.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "tree-pass.h"
 #include "df.h"
diff --git a/gcc/bb-reorder.c b/gcc/bb-reorder.c
index 0b99db1..c794411 100644
--- a/gcc/bb-reorder.c
+++ b/gcc/bb-reorder.c
@@ -98,14 +98,17 @@
 #include "output.h"
 #include "target.h"
 #include "hashtab.h"
-#include "hash-set.h"
-#include "vec.h"
-#include "machmode.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "tm_p.h"
 #include "obstack.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "optabs.h"
 #include "params.h"
diff --git a/gcc/bt-load.c b/gcc/bt-load.c
index 5030aae..47f9034 100644
--- a/gcc/bt-load.c
+++ b/gcc/bt-load.c
@@ -27,15 +27,24 @@ along with GCC; see the file COPYING3.  If not see
 #include "regs.h"
 #include "target.h"
 #include "symtab.h"
-#include "expr.h"
-#include "flags.h"
-#include "insn-attr.h"
 #include "hashtab.h"
 #include "hash-set.h"
 #include "vec.h"
 #include "machmode.h"
 #include "input.h"
 #include "function.h"
+#include "flags.h"
+#include "insn-config.h"
+#include "alias.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expr.h"
+#include "insn-attr.h"
 #include "except.h"
 #include "tm_p.h"
 #include "diagnostic-core.h"
diff --git a/gcc/builtins.c b/gcc/builtins.c
index 9280704..7224e6a 100644
--- a/gcc/builtins.c
+++ b/gcc/builtins.c
@@ -24,7 +24,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "machmode.h"
 #include "rtl.h"
 #include "hash-set.h"
-#include "machmode.h"
 #include "vec.h"
 #include "double-int.h"
 #include "input.h"
@@ -41,11 +40,8 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-object-size.h"
 #include "realmpfr.h"
 #include "predict.h"
-#include "vec.h"
 #include "hashtab.h"
-#include "hash-set.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "cfgrtl.h"
 #include "basic-block.h"
@@ -58,6 +54,12 @@ along with GCC; see the file COPYING3.  If not see
 #include "regs.h"
 #include "except.h"
 #include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
diff --git a/gcc/caller-save.c b/gcc/caller-save.c
index 82003a9..1e00894 100644
--- a/gcc/caller-save.c
+++ b/gcc/caller-save.c
@@ -40,6 +40,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "df.h"
 #include "reload.h"
 #include "symtab.h"
+#include "alias.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "diagnostic-core.h"
 #include "tm_p.h"
diff --git a/gcc/calls.c b/gcc/calls.c
index 36aa19f..c60a7bd 100644
--- a/gcc/calls.c
+++ b/gcc/calls.c
@@ -38,12 +38,8 @@ along with GCC; see the file COPYING3.  If not see
 #include "stringpool.h"
 #include "attribs.h"
 #include "predict.h"
-#include "vec.h"
 #include "hashtab.h"
-#include "hash-set.h"
-#include "machmode.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "basic-block.h"
 #include "tree-ssa-alias.h"
@@ -52,6 +48,13 @@ along with GCC; see the file COPYING3.  If not see
 #include "is-a.h"
 #include "gimple.h"
 #include "flags.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
diff --git a/gcc/ccmp.c b/gcc/ccmp.c
index 3216669..18877f3 100644
--- a/gcc/ccmp.c
+++ b/gcc/ccmp.c
@@ -37,6 +37,17 @@ along with GCC; see the file COPYING3.  If not see
 #include "stringpool.h"
 #include "stor-layout.h"
 #include "regs.h"
+#include "hashtab.h"
+#include "hard-reg-set.h"
+#include "function.h"
+#include "flags.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
@@ -60,7 +71,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "cfgexpand.h"
 #include "tree-phinodes.h"
 #include "ssa-iterators.h"
-#include "expmed.h"
 #include "ccmp.h"
 
 /* The following functions expand conditional compare (CCMP) instructions.
diff --git a/gcc/cfgbuild.c b/gcc/cfgbuild.c
index c26abbf..63e4c64 100644
--- a/gcc/cfgbuild.c
+++ b/gcc/cfgbuild.c
@@ -35,11 +35,7 @@ along with GCC; see the file COPYING3.  If not see
 #include "rtl.h"
 #include "hard-reg-set.h"
 #include "predict.h"
-#include "vec.h"
 #include "hashtab.h"
-#include "hash-set.h"
-#include "machmode.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -50,6 +46,13 @@ along with GCC; see the file COPYING3.  If not see
 #include "regs.h"
 #include "flags.h"
 #include "except.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "diagnostic-core.h"
 #include "timevar.h"
diff --git a/gcc/cfgcleanup.c b/gcc/cfgcleanup.c
index f26458e..f861ed4 100644
--- a/gcc/cfgcleanup.c
+++ b/gcc/cfgcleanup.c
@@ -55,14 +55,16 @@ along with GCC; see the file COPYING3.  If not see
 #include "tm_p.h"
 #include "target.h"
 #include "hashtab.h"
-#include "hash-set.h"
-#include "vec.h"
-#include "machmode.h"
-#include "input.h"
 #include "function.h" /* For inline functions in emit-rtl.h they need crtl.  */
 #include "emit-rtl.h"
 #include "tree-pass.h"
 #include "cfgloop.h"
+#include "function.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -75,7 +77,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "df.h"
 #include "dce.h"
 #include "dbgcnt.h"
-#include "emit-rtl.h"
 #include "rtl-iter.h"
 
 #define FORWARDER_BLOCK_P(BB) ((BB)->flags & BB_FORWARDER_BLOCK)
diff --git a/gcc/cfgexpand.c b/gcc/cfgexpand.c
index 366fc0a..f064396 100644
--- a/gcc/cfgexpand.c
+++ b/gcc/cfgexpand.c
@@ -41,11 +41,7 @@ along with GCC; see the file COPYING3.  If not see
 #include "print-tree.h"
 #include "tm_p.h"
 #include "predict.h"
-#include "vec.h"
 #include "hashtab.h"
-#include "hash-set.h"
-#include "machmode.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -56,6 +52,13 @@ along with GCC; see the file COPYING3.  If not see
 #include "basic-block.h"
 #include "insn-codes.h"
 #include "optabs.h"
+#include "flags.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "langhooks.h"
 #include "bitmap.h"
@@ -80,7 +83,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-ssa.h"
 #include "tree-pass.h"
 #include "except.h"
-#include "flags.h"
 #include "diagnostic.h"
 #include "gimple-pretty-print.h"
 #include "toplev.h"
diff --git a/gcc/cfgloopanal.c b/gcc/cfgloopanal.c
index 444e259..7033508 100644
--- a/gcc/cfgloopanal.c
+++ b/gcc/cfgloopanal.c
@@ -36,6 +36,16 @@ along with GCC; see the file COPYING3.  If not see
 #include "basic-block.h"
 #include "cfgloop.h"
 #include "symtab.h"
+#include "flags.h"
+#include "insn-config.h"
+#include "alias.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "graphds.h"
 #include "params.h"
diff --git a/gcc/cfgrtl.c b/gcc/cfgrtl.c
index f20fa7a..c93f570 100644
--- a/gcc/cfgrtl.c
+++ b/gcc/cfgrtl.c
@@ -71,6 +71,13 @@ along with GCC; see the file COPYING3.  If not see
 #include "obstack.h"
 #include "insn-attr.h"
 #include "insn-config.h"
+#include "rtl.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "target.h"
 #include "common/common-target.h"
diff --git a/gcc/cgraph.c b/gcc/cgraph.c
index 4770a6c..d72113c 100644
--- a/gcc/cgraph.c
+++ b/gcc/cgraph.c
@@ -44,7 +44,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-inline.h"
 #include "langhooks.h"
 #include "hashtab.h"
-#include "hash-set.h"
 #include "toplev.h"
 #include "flags.h"
 #include "debug.h"
@@ -56,10 +55,7 @@ along with GCC; see the file COPYING3.  If not see
 #include "hash-map.h"
 #include "is-a.h"
 #include "plugin-api.h"
-#include "vec.h"
-#include "machmode.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "ipa-ref.h"
 #include "cgraph.h"
@@ -87,6 +83,13 @@ along with GCC; see the file COPYING3.  If not see
 #include "ipa-inline.h"
 #include "cfgloop.h"
 #include "gimple-pretty-print.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "tree-dfa.h"
 #include "profile.h"
diff --git a/gcc/cilk-common.c b/gcc/cilk-common.c
index 36d023a..f2045ad 100644
--- a/gcc/cilk-common.c
+++ b/gcc/cilk-common.c
@@ -38,6 +38,19 @@ along with GCC; see the file COPYING3.  If not see
 #include "stringpool.h"
 #include "stor-layout.h"
 #include "langhooks.h"
+#include "hashtab.h"
+#include "tm.h"
+#include "hard-reg-set.h"
+#include "function.h"
+#include "rtl.h"
+#include "flags.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
diff --git a/gcc/combine-stack-adj.c b/gcc/combine-stack-adj.c
index 4c98f00..3e6ad10 100644
--- a/gcc/combine-stack-adj.c
+++ b/gcc/combine-stack-adj.c
@@ -56,6 +56,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "input.h"
 #include "function.h"
 #include "symtab.h"
+#include "alias.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "predict.h"
 #include "dominance.h"
diff --git a/gcc/combine.c b/gcc/combine.c
index 101cf35..9feeb7a 100644
--- a/gcc/combine.c
+++ b/gcc/combine.c
@@ -96,7 +96,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "regs.h"
 #include "hard-reg-set.h"
 #include "predict.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -105,6 +104,13 @@ along with GCC; see the file COPYING3.  If not see
 #include "basic-block.h"
 #include "insn-config.h"
 /* Include expr.h after insn-config.h so we get HAVE_conditional_move.  */
+#include "hashtab.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "insn-attr.h"
 #include "recog.h"
@@ -123,8 +129,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "ipa-ref.h"
 #include "cgraph.h"
 #include "obstack.h"
-#include "statistics.h"
-#include "params.h"
 #include "rtl-iter.h"
 
 /* Number of attempts to combine instructions in this function.  */
diff --git a/gcc/config/aarch64/aarch64-builtins.c b/gcc/config/aarch64/aarch64-builtins.c
index f45169e..bdb0cad 100644
--- a/gcc/config/aarch64/aarch64-builtins.c
+++ b/gcc/config/aarch64/aarch64-builtins.c
@@ -37,6 +37,17 @@
 #include "stor-layout.h"
 #include "stringpool.h"
 #include "calls.h"
+#include "hashtab.h"
+#include "hard-reg-set.h"
+#include "function.h"
+#include "flags.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "tm_p.h"
 #include "recog.h"
@@ -45,12 +56,8 @@
 #include "insn-codes.h"
 #include "optabs.h"
 #include "hash-table.h"
-#include "vec.h"
 #include "ggc.h"
 #include "predict.h"
-#include "hard-reg-set.h"
-#include "input.h"
-#include "function.h"
 #include "dominance.h"
 #include "cfg.h"
 #include "cfgrtl.h"
diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c
index 5100532..d6ea118 100644
--- a/gcc/config/aarch64/aarch64.c
+++ b/gcc/config/aarch64/aarch64.c
@@ -53,6 +53,16 @@
 #include "df.h"
 #include "hard-reg-set.h"
 #include "output.h"
+#include "hashtab.h"
+#include "function.h"
+#include "flags.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "reload.h"
 #include "toplev.h"
@@ -60,8 +70,6 @@
 #include "target-def.h"
 #include "targhooks.h"
 #include "ggc.h"
-#include "input.h"
-#include "function.h"
 #include "tm_p.h"
 #include "recog.h"
 #include "langhooks.h"
diff --git a/gcc/config/alpha/alpha.c b/gcc/config/alpha/alpha.c
index afb49bb..a1b7c69 100644
--- a/gcc/config/alpha/alpha.c
+++ b/gcc/config/alpha/alpha.c
@@ -46,14 +46,20 @@ along with GCC; see the file COPYING3.  If not see
 #include "insn-attr.h"
 #include "flags.h"
 #include "recog.h"
+#include "hashtab.h"
+#include "function.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
 #include "reload.h"
 #include "obstack.h"
 #include "except.h"
-#include "input.h"
-#include "function.h"
 #include "diagnostic-core.h"
 #include "ggc.h"
 #include "tm_p.h"
diff --git a/gcc/config/arc/arc.c b/gcc/config/arc/arc.c
index efba8a3..a3909d3 100644
--- a/gcc/config/arc/arc.c
+++ b/gcc/config/arc/arc.c
@@ -55,10 +55,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "conditions.h"
 #include "insn-flags.h"
 #include "hashtab.h"
-#include "hash-set.h"
-#include "vec.h"
-#include "machmode.h"
-#include "input.h"
 #include "function.h"
 #include "toplev.h"
 #include "ggc.h"
@@ -67,6 +63,11 @@ along with GCC; see the file COPYING3.  If not see
 #include "output.h"
 #include "insn-attr.h"
 #include "flags.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "recog.h"
 #include "debug.h"
@@ -89,7 +90,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-pass.h"
 #include "context.h"
 #include "pass_manager.h"
-#include "wide-int.h"
 #include "builtins.h"
 #include "rtl-iter.h"
 
diff --git a/gcc/config/arm/arm-builtins.c b/gcc/config/arm/arm-builtins.c
index 739369d..b8cfe9c 100644
--- a/gcc/config/arm/arm-builtins.c
+++ b/gcc/config/arm/arm-builtins.c
@@ -34,6 +34,17 @@
 #include "tree.h"
 #include "fold-const.h"
 #include "stor-layout.h"
+#include "hashtab.h"
+#include "hard-reg-set.h"
+#include "function.h"
+#include "flags.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "tm_p.h"
 #include "recog.h"
diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c
index 3c34ecf..90ae9bd 100644
--- a/gcc/config/arm/arm.c
+++ b/gcc/config/arm/arm.c
@@ -50,8 +50,14 @@
 #include "insn-attr.h"
 #include "flags.h"
 #include "reload.h"
-#include "input.h"
 #include "function.h"
+#include "hashtab.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
diff --git a/gcc/config/avr/avr.c b/gcc/config/avr/avr.c
index 66406be..23e39cd 100644
--- a/gcc/config/avr/avr.c
+++ b/gcc/config/avr/avr.c
@@ -48,12 +48,18 @@
 #include "stor-layout.h"
 #include "stringpool.h"
 #include "output.h"
+#include "hashtab.h"
+#include "function.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "c-family/c-common.h"
 #include "diagnostic-core.h"
 #include "obstack.h"
-#include "input.h"
-#include "function.h"
 #include "recog.h"
 #include "optabs.h"
 #include "ggc.h"
diff --git a/gcc/config/bfin/bfin.c b/gcc/config/bfin/bfin.c
index bebbce3..b62b5b0 100644
--- a/gcc/config/bfin/bfin.c
+++ b/gcc/config/bfin/bfin.c
@@ -46,10 +46,16 @@
 #include "calls.h"
 #include "flags.h"
 #include "except.h"
-#include "input.h"
 #include "function.h"
 #include "target.h"
 #include "target-def.h"
+#include "hashtab.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "diagnostic-core.h"
 #include "recog.h"
diff --git a/gcc/config/c6x/c6x.c b/gcc/config/c6x/c6x.c
index fff0b84..85869fa 100644
--- a/gcc/config/c6x/c6x.c
+++ b/gcc/config/c6x/c6x.c
@@ -43,6 +43,17 @@
 #include "output.h"
 #include "insn-attr.h"
 #include "insn-codes.h"
+#include "hashtab.h"
+#include "hard-reg-set.h"
+#include "function.h"
+#include "flags.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "regs.h"
 #include "optabs.h"
@@ -63,9 +74,6 @@
 #include "tm-preds.h"
 #include "tm-constrs.h"
 #include "df.h"
-#include "hard-reg-set.h"
-#include "input.h"
-#include "function.h"
 #include "diagnostic-core.h"
 #include "hash-map.h"
 #include "is-a.h"
diff --git a/gcc/config/cr16/cr16.c b/gcc/config/cr16/cr16.c
index 213dc36..2219980 100644
--- a/gcc/config/cr16/cr16.c
+++ b/gcc/config/cr16/cr16.c
@@ -46,9 +46,15 @@
 #include "insn-attr.h"
 #include "flags.h"
 #include "except.h"
-#include "input.h"
 #include "function.h"
 #include "recog.h"
+#include "hashtab.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "optabs.h"
 #include "diagnostic-core.h"
diff --git a/gcc/config/cris/cris.c b/gcc/config/cris/cris.c
index 15dcca2..86b4811 100644
--- a/gcc/config/cris/cris.c
+++ b/gcc/config/cris/cris.c
@@ -44,10 +44,15 @@ along with GCC; see the file COPYING3.  If not see
 #include "stor-layout.h"
 #include "calls.h"
 #include "stmt.h"
+#include "hashtab.h"
+#include "function.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "except.h"
-#include "input.h"
-#include "function.h"
 #include "diagnostic-core.h"
 #include "recog.h"
 #include "reload.h"
diff --git a/gcc/config/darwin.c b/gcc/config/darwin.c
index c12a17c..0fba680 100644
--- a/gcc/config/darwin.c
+++ b/gcc/config/darwin.c
@@ -45,10 +45,16 @@ along with GCC; see the file COPYING3.  If not see
 #include "stringpool.h"
 #include "varasm.h"
 #include "stor-layout.h"
+#include "hashtab.h"
+#include "function.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "reload.h"
-#include "input.h"
-#include "function.h"
 #include "ggc.h"
 #include "langhooks.h"
 #include "target.h"
diff --git a/gcc/config/epiphany/epiphany.c b/gcc/config/epiphany/epiphany.c
index 102acc9..c876258 100644
--- a/gcc/config/epiphany/epiphany.c
+++ b/gcc/config/epiphany/epiphany.c
@@ -46,10 +46,15 @@ along with GCC; see the file COPYING3.  If not see
 #include "output.h"
 #include "insn-attr.h"
 #include "flags.h"
-#include "input.h"
 #include "function.h"
 #include "insn-codes.h"
 #include "optabs.h"
+#include "hashtab.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "diagnostic-core.h"
 #include "recog.h"
@@ -67,7 +72,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "basic-block.h"
 #include "df.h"
 #include "langhooks.h"
-#include "insn-codes.h"
 #include "ggc.h"
 #include "tm-constrs.h"
 #include "tree-pass.h"	/* for current_pass */
diff --git a/gcc/config/fr30/fr30.c b/gcc/config/fr30/fr30.c
index 2c00ff5..e41243e 100644
--- a/gcc/config/fr30/fr30.c
+++ b/gcc/config/fr30/fr30.c
@@ -46,11 +46,17 @@
 #include "stor-layout.h"
 #include "varasm.h"
 #include "output.h"
+#include "hashtab.h"
+#include "function.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "obstack.h"
 #include "except.h"
-#include "input.h"
-#include "function.h"
 #include "dominance.h"
 #include "cfg.h"
 #include "cfgrtl.h"
diff --git a/gcc/config/frv/frv.c b/gcc/config/frv/frv.c
index eb1ef53..b5e43f1 100644
--- a/gcc/config/frv/frv.c
+++ b/gcc/config/frv/frv.c
@@ -46,11 +46,17 @@ along with GCC; see the file COPYING3.  If not see
 #include "flags.h"
 #include "recog.h"
 #include "reload.h"
+#include "hashtab.h"
+#include "function.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "obstack.h"
 #include "except.h"
-#include "input.h"
-#include "function.h"
 #include "insn-codes.h"
 #include "optabs.h"
 #include "diagnostic-core.h"
diff --git a/gcc/config/h8300/h8300.c b/gcc/config/h8300/h8300.c
index fe85df5..0a69419 100644
--- a/gcc/config/h8300/h8300.c
+++ b/gcc/config/h8300/h8300.c
@@ -46,9 +46,15 @@ along with GCC; see the file COPYING3.  If not see
 #include "insn-attr.h"
 #include "flags.h"
 #include "recog.h"
-#include "expr.h"
-#include "input.h"
+#include "hashtab.h"
 #include "function.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
 #include "diagnostic-core.h"
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index 8724ea3..da85d64 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -48,9 +48,15 @@ along with GCC; see the file COPYING3.  If not see
 #include "insn-attr.h"
 #include "flags.h"
 #include "except.h"
-#include "input.h"
 #include "function.h"
 #include "recog.h"
+#include "hashtab.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "optabs.h"
 #include "diagnostic-core.h"
@@ -97,7 +103,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "diagnostic.h"
 #include "dumpfile.h"
 #include "tree-pass.h"
-#include "wide-int.h"
 #include "context.h"
 #include "pass_manager.h"
 #include "target-globals.h"
diff --git a/gcc/config/ia64/ia64.c b/gcc/config/ia64/ia64.c
index 40f1ae4..d465ff4 100644
--- a/gcc/config/ia64/ia64.c
+++ b/gcc/config/ia64/ia64.c
@@ -47,12 +47,18 @@ along with GCC; see the file COPYING3.  If not see
 #include "insn-attr.h"
 #include "flags.h"
 #include "recog.h"
+#include "hashtab.h"
+#include "function.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
 #include "except.h"
-#include "input.h"
-#include "function.h"
 #include "ggc.h"
 #include "predict.h"
 #include "dominance.h"
diff --git a/gcc/config/iq2000/iq2000.c b/gcc/config/iq2000/iq2000.c
index 8d2b44f..bcee08a 100644
--- a/gcc/config/iq2000/iq2000.c
+++ b/gcc/config/iq2000/iq2000.c
@@ -43,8 +43,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "output.h"
 #include "insn-attr.h"
 #include "flags.h"
-#include "input.h"
 #include "function.h"
+#include "hashtab.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
diff --git a/gcc/config/lm32/lm32.c b/gcc/config/lm32/lm32.c
index ae995cf..4fa3d4d 100644
--- a/gcc/config/lm32/lm32.c
+++ b/gcc/config/lm32/lm32.c
@@ -54,8 +54,16 @@
 #include "tree.h"
 #include "fold-const.h"
 #include "calls.h"
-#include "expr.h"
 #include "flags.h"
+#include "alias.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expr.h"
 #include "reload.h"
 #include "tm_p.h"
 #include "diagnostic-core.h"
diff --git a/gcc/config/m32c/m32c.c b/gcc/config/m32c/m32c.c
index 817650c..7afba21 100644
--- a/gcc/config/m32c/m32c.c
+++ b/gcc/config/m32c/m32c.c
@@ -49,12 +49,18 @@
 #include "stor-layout.h"
 #include "varasm.h"
 #include "calls.h"
+#include "hashtab.h"
+#include "function.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
 #include "except.h"
-#include "input.h"
-#include "function.h"
 #include "ggc.h"
 #include "target.h"
 #include "target-def.h"
diff --git a/gcc/config/m32r/m32r.c b/gcc/config/m32r/m32r.c
index 31021fc..92aba93 100644
--- a/gcc/config/m32r/m32r.c
+++ b/gcc/config/m32r/m32r.c
@@ -44,9 +44,15 @@
 #include "dbxout.h"
 #include "insn-attr.h"
 #include "flags.h"
-#include "expr.h"
-#include "input.h"
+#include "hashtab.h"
 #include "function.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expr.h"
 #include "recog.h"
 #include "diagnostic-core.h"
 #include "ggc.h"
diff --git a/gcc/config/m68k/m68k.c b/gcc/config/m68k/m68k.c
index 6dcb6a2..52ff7f6 100644
--- a/gcc/config/m68k/m68k.c
+++ b/gcc/config/m68k/m68k.c
@@ -37,7 +37,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "varasm.h"
 #include "rtl.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "regs.h"
 #include "insn-config.h"
@@ -46,13 +45,20 @@ along with GCC; see the file COPYING3.  If not see
 #include "insn-attr.h"
 #include "recog.h"
 #include "diagnostic-core.h"
+#include "hashtab.h"
+#include "flags.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "reload.h"
 #include "tm_p.h"
 #include "target.h"
 #include "target-def.h"
 #include "debug.h"
-#include "flags.h"
 #include "dominance.h"
 #include "cfg.h"
 #include "cfgrtl.h"
diff --git a/gcc/config/mcore/mcore.c b/gcc/config/mcore/mcore.c
index d3a4885..357d422 100644
--- a/gcc/config/mcore/mcore.c
+++ b/gcc/config/mcore/mcore.c
@@ -47,11 +47,17 @@
 #include "insn-attr.h"
 #include "flags.h"
 #include "obstack.h"
+#include "hashtab.h"
+#include "function.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "reload.h"
 #include "recog.h"
-#include "input.h"
-#include "function.h"
 #include "ggc.h"
 #include "diagnostic-core.h"
 #include "target.h"
diff --git a/gcc/config/mep/mep.c b/gcc/config/mep/mep.c
index 9e88849..e3f64b5 100644
--- a/gcc/config/mep/mep.c
+++ b/gcc/config/mep/mep.c
@@ -48,11 +48,16 @@ along with GCC; see the file COPYING3.  If not see
 #include "flags.h"
 #include "recog.h"
 #include "obstack.h"
-#include "tree.h"
+#include "hashtab.h"
+#include "function.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "except.h"
-#include "input.h"
-#include "function.h"
 #include "insn-codes.h"
 #include "optabs.h"
 #include "reload.h"
diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c
index bf0a4d8..3bf6a1d 100644
--- a/gcc/config/microblaze/microblaze.c
+++ b/gcc/config/microblaze/microblaze.c
@@ -45,10 +45,15 @@
 #include "varasm.h"
 #include "stor-layout.h"
 #include "calls.h"
-#include "input.h"
 #include "function.h"
-#include "expr.h"
+#include "hashtab.h"
 #include "flags.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "fixed-value.h"
+#include "expr.h"
 #include "reload.h"
 #include "output.h"
 #include "ggc.h"
diff --git a/gcc/config/mips/mips.c b/gcc/config/mips/mips.c
index 327aa29..3e94ee1 100644
--- a/gcc/config/mips/mips.c
+++ b/gcc/config/mips/mips.c
@@ -48,13 +48,19 @@ along with GCC; see the file COPYING3.  If not see
 #include "stringpool.h"
 #include "stor-layout.h"
 #include "calls.h"
-#include "input.h"
 #include "function.h"
+#include "hashtab.h"
+#include "flags.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
 #include "libfuncs.h"
-#include "flags.h"
 #include "reload.h"
 #include "tm_p.h"
 #include "ggc.h"
diff --git a/gcc/config/mmix/mmix.c b/gcc/config/mmix/mmix.c
index 1849c7f..b63ae6c 100644
--- a/gcc/config/mmix/mmix.c
+++ b/gcc/config/mmix/mmix.c
@@ -50,6 +50,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "varasm.h"
 #include "stor-layout.h"
 #include "calls.h"
+#include "alias.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "diagnostic-core.h"
 #include "recog.h"
diff --git a/gcc/config/mn10300/mn10300.c b/gcc/config/mn10300/mn10300.c
index b65deea..591c374 100644
--- a/gcc/config/mn10300/mn10300.c
+++ b/gcc/config/mn10300/mn10300.c
@@ -45,11 +45,17 @@
 #include "flags.h"
 #include "recog.h"
 #include "reload.h"
+#include "hashtab.h"
+#include "function.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
-#include "input.h"
-#include "function.h"
 #include "obstack.h"
 #include "diagnostic-core.h"
 #include "tm_p.h"
diff --git a/gcc/config/moxie/moxie.c b/gcc/config/moxie/moxie.c
index c178777..015c3e6 100644
--- a/gcc/config/moxie/moxie.c
+++ b/gcc/config/moxie/moxie.c
@@ -48,12 +48,18 @@
 #include "stor-layout.h"
 #include "varasm.h"
 #include "calls.h"
+#include "hashtab.h"
+#include "function.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
 #include "except.h"
-#include "input.h"
-#include "function.h"
 #include "ggc.h"
 #include "target.h"
 #include "target-def.h"
diff --git a/gcc/config/msp430/msp430.c b/gcc/config/msp430/msp430.c
index 5317217..142abfb 100644
--- a/gcc/config/msp430/msp430.c
+++ b/gcc/config/msp430/msp430.c
@@ -43,8 +43,14 @@
 #include "output.h"
 #include "insn-attr.h"
 #include "flags.h"
-#include "input.h"
 #include "function.h"
+#include "hashtab.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
diff --git a/gcc/config/nds32/nds32-cost.c b/gcc/config/nds32/nds32-cost.c
index 9c8b579..2f49b2d 100644
--- a/gcc/config/nds32/nds32-cost.c
+++ b/gcc/config/nds32/nds32-cost.c
@@ -47,8 +47,15 @@
 #include "insn-codes.h"		/* For CODE_FOR_xxx.  */
 #include "reload.h"		/* For push_reload().  */
 #include "flags.h"
-#include "input.h"
 #include "function.h"
+#include "hashtab.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "recog.h"
 #include "diagnostic-core.h"
diff --git a/gcc/config/nds32/nds32-fp-as-gp.c b/gcc/config/nds32/nds32-fp-as-gp.c
index 88a8e5b..f59302c 100644
--- a/gcc/config/nds32/nds32-fp-as-gp.c
+++ b/gcc/config/nds32/nds32-fp-as-gp.c
@@ -47,8 +47,15 @@
 #include "insn-codes.h"		/* For CODE_FOR_xxx.  */
 #include "reload.h"		/* For push_reload().  */
 #include "flags.h"
-#include "input.h"
 #include "function.h"
+#include "hashtab.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "recog.h"
 #include "diagnostic-core.h"
diff --git a/gcc/config/nds32/nds32-intrinsic.c b/gcc/config/nds32/nds32-intrinsic.c
index 8815179..b3531c6 100644
--- a/gcc/config/nds32/nds32-intrinsic.c
+++ b/gcc/config/nds32/nds32-intrinsic.c
@@ -47,8 +47,15 @@
 #include "insn-codes.h"		/* For CODE_FOR_xxx.  */
 #include "reload.h"		/* For push_reload().  */
 #include "flags.h"
-#include "input.h"
 #include "function.h"
+#include "hashtab.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "recog.h"
 #include "diagnostic-core.h"
diff --git a/gcc/config/nds32/nds32-isr.c b/gcc/config/nds32/nds32-isr.c
index bf2d659..043fd95 100644
--- a/gcc/config/nds32/nds32-isr.c
+++ b/gcc/config/nds32/nds32-isr.c
@@ -47,8 +47,15 @@
 #include "insn-codes.h"		/* For CODE_FOR_xxx.  */
 #include "reload.h"		/* For push_reload().  */
 #include "flags.h"
-#include "input.h"
 #include "function.h"
+#include "hashtab.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "recog.h"
 #include "diagnostic-core.h"
diff --git a/gcc/config/nds32/nds32-md-auxiliary.c b/gcc/config/nds32/nds32-md-auxiliary.c
index 374f115..80bfb57 100644
--- a/gcc/config/nds32/nds32-md-auxiliary.c
+++ b/gcc/config/nds32/nds32-md-auxiliary.c
@@ -48,8 +48,15 @@
 #include "insn-codes.h"		/* For CODE_FOR_xxx.  */
 #include "reload.h"		/* For push_reload().  */
 #include "flags.h"
-#include "input.h"
 #include "function.h"
+#include "hashtab.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "recog.h"
 #include "diagnostic-core.h"
diff --git a/gcc/config/nds32/nds32-memory-manipulation.c b/gcc/config/nds32/nds32-memory-manipulation.c
index 0bf8101..635267d 100644
--- a/gcc/config/nds32/nds32-memory-manipulation.c
+++ b/gcc/config/nds32/nds32-memory-manipulation.c
@@ -48,8 +48,15 @@
 #include "insn-codes.h"		/* For CODE_FOR_xxx.  */
 #include "reload.h"		/* For push_reload().  */
 #include "flags.h"
-#include "input.h"
 #include "function.h"
+#include "hashtab.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "recog.h"
 #include "diagnostic-core.h"
diff --git a/gcc/config/nds32/nds32-pipelines-auxiliary.c b/gcc/config/nds32/nds32-pipelines-auxiliary.c
index 55030b1..1b03a4e 100644
--- a/gcc/config/nds32/nds32-pipelines-auxiliary.c
+++ b/gcc/config/nds32/nds32-pipelines-auxiliary.c
@@ -48,8 +48,15 @@
 #include "insn-codes.h"		/* For CODE_FOR_xxx.  */
 #include "reload.h"		/* For push_reload().  */
 #include "flags.h"
-#include "input.h"
 #include "function.h"
+#include "hashtab.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "recog.h"
 #include "diagnostic-core.h"
diff --git a/gcc/config/nds32/nds32-predicates.c b/gcc/config/nds32/nds32-predicates.c
index 7e5ecc0..a9da583 100644
--- a/gcc/config/nds32/nds32-predicates.c
+++ b/gcc/config/nds32/nds32-predicates.c
@@ -47,8 +47,15 @@
 #include "insn-codes.h"		/* For CODE_FOR_xxx.  */
 #include "reload.h"		/* For push_reload().  */
 #include "flags.h"
-#include "input.h"
 #include "function.h"
+#include "hashtab.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "recog.h"
 #include "diagnostic-core.h"
diff --git a/gcc/config/nds32/nds32.c b/gcc/config/nds32/nds32.c
index d2ffb61..048db92 100644
--- a/gcc/config/nds32/nds32.c
+++ b/gcc/config/nds32/nds32.c
@@ -47,8 +47,15 @@
 #include "insn-codes.h"		/* For CODE_FOR_xxx.  */
 #include "reload.h"		/* For push_reload().  */
 #include "flags.h"
-#include "input.h"
 #include "function.h"
+#include "hashtab.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "recog.h"
 #include "diagnostic-core.h"
diff --git a/gcc/config/nios2/nios2.c b/gcc/config/nios2/nios2.c
index a078a5e..219b293 100644
--- a/gcc/config/nios2/nios2.c
+++ b/gcc/config/nios2/nios2.c
@@ -44,11 +44,17 @@
 #include "insn-attr.h"
 #include "flags.h"
 #include "recog.h"
+#include "hashtab.h"
+#include "function.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
-#include "input.h"
-#include "function.h"
 #include "ggc.h"
 #include "predict.h"
 #include "dominance.h"
@@ -67,7 +73,6 @@
 #include "langhooks.h"
 #include "df.h"
 #include "debug.h"
-#include "real.h"
 #include "reload.h"
 #include "stor-layout.h"
 #include "varasm.h"
diff --git a/gcc/config/nvptx/nvptx.c b/gcc/config/nvptx/nvptx.c
index 9e74ee3..869ab88 100644
--- a/gcc/config/nvptx/nvptx.c
+++ b/gcc/config/nvptx/nvptx.c
@@ -38,6 +38,17 @@
 #include "output.h"
 #include "insn-attr.h"
 #include "insn-codes.h"
+#include "hashtab.h"
+#include "hard-reg-set.h"
+#include "function.h"
+#include "flags.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "regs.h"
 #include "optabs.h"
@@ -47,7 +58,6 @@
 #include "tm_p.h"
 #include "tm-preds.h"
 #include "tm-constrs.h"
-#include "function.h"
 #include "langhooks.h"
 #include "dbxout.h"
 #include "target.h"
@@ -60,7 +70,6 @@
 #include "calls.h"
 #include "df.h"
 #include "builtins.h"
-#include "hashtab.h"
 
 /* Record the function decls we've written, and the libfuncs and function
    decls corresponding to them.  */
diff --git a/gcc/config/pa/pa.c b/gcc/config/pa/pa.c
index 3c39df2..3793854 100644
--- a/gcc/config/pa/pa.c
+++ b/gcc/config/pa/pa.c
@@ -47,12 +47,18 @@ along with GCC; see the file COPYING3.  If not see
 #include "output.h"
 #include "dbxout.h"
 #include "except.h"
+#include "hashtab.h"
+#include "function.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
 #include "reload.h"
-#include "input.h"
-#include "function.h"
 #include "diagnostic-core.h"
 #include "ggc.h"
 #include "recog.h"
diff --git a/gcc/config/pdp11/pdp11.c b/gcc/config/pdp11/pdp11.c
index 85181eb..da88d0b 100644
--- a/gcc/config/pdp11/pdp11.c
+++ b/gcc/config/pdp11/pdp11.c
@@ -44,6 +44,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "stor-layout.h"
 #include "varasm.h"
 #include "calls.h"
+#include "alias.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "diagnostic-core.h"
 #include "tm_p.h"
diff --git a/gcc/config/rl78/rl78.c b/gcc/config/rl78/rl78.c
index d5a0075..54615a9 100644
--- a/gcc/config/rl78/rl78.c
+++ b/gcc/config/rl78/rl78.c
@@ -44,8 +44,14 @@
 #include "output.h"
 #include "insn-attr.h"
 #include "flags.h"
-#include "input.h"
 #include "function.h"
+#include "hashtab.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index 4f8803d..ecbf68f 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -47,12 +47,15 @@
 #include "calls.h"
 #include "print-tree.h"
 #include "varasm.h"
+#include "hashtab.h"
+#include "function.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
 #include "except.h"
-#include "input.h"
-#include "function.h"
 #include "output.h"
 #include "dbxout.h"
 #include "predict.h"
diff --git a/gcc/config/rx/rx.c b/gcc/config/rx/rx.c
index 58ee86e..dbe4b80 100644
--- a/gcc/config/rx/rx.c
+++ b/gcc/config/rx/rx.c
@@ -47,8 +47,14 @@
 #include "output.h"
 #include "insn-attr.h"
 #include "flags.h"
-#include "input.h"
 #include "function.h"
+#include "hashtab.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
diff --git a/gcc/config/s390/s390.c b/gcc/config/s390/s390.c
index adb2a26..5fbbdfb 100644
--- a/gcc/config/s390/s390.c
+++ b/gcc/config/s390/s390.c
@@ -50,9 +50,15 @@ along with GCC; see the file COPYING3.  If not see
 #include "insn-attr.h"
 #include "flags.h"
 #include "except.h"
-#include "input.h"
 #include "function.h"
 #include "recog.h"
+#include "hashtab.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "reload.h"
 #include "diagnostic-core.h"
diff --git a/gcc/config/sh/sh-mem.cc b/gcc/config/sh/sh-mem.cc
index a3eb679..c384dcb 100644
--- a/gcc/config/sh/sh-mem.cc
+++ b/gcc/config/sh/sh-mem.cc
@@ -32,12 +32,20 @@ along with GCC; see the file COPYING3.  If not see
 #include "wide-int.h"
 #include "inchash.h"
 #include "tree.h"
+#include "hashtab.h"
+#include "hard-reg-set.h"
+#include "function.h"
+#include "flags.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "tm_p.h"
 #include "predict.h"
-#include "hard-reg-set.h"
-#include "input.h"
-#include "function.h"
 #include "dominance.h"
 #include "cfg.h"
 #include "cfgrtl.h"
diff --git a/gcc/config/sh/sh.c b/gcc/config/sh/sh.c
index ddaa418..dc32345 100644
--- a/gcc/config/sh/sh.c
+++ b/gcc/config/sh/sh.c
@@ -44,13 +44,19 @@ along with GCC; see the file COPYING3.  If not see
 #include "calls.h"
 #include "varasm.h"
 #include "flags.h"
+#include "hashtab.h"
+#include "hard-reg-set.h"
+#include "function.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
 #include "reload.h"
-#include "hard-reg-set.h"
-#include "input.h"
-#include "function.h"
 #include "regs.h"
 #include "output.h"
 #include "insn-attr.h"
@@ -10052,7 +10058,6 @@ reg_unused_after (rtx reg, rtx_insn *insn)
   return true;
 }
 \f
-#include "ggc.h"
 
 static GTY(()) rtx t_reg_rtx;
 rtx
diff --git a/gcc/config/sh/sh_treg_combine.cc b/gcc/config/sh/sh_treg_combine.cc
index 3c36767..fbb0550 100644
--- a/gcc/config/sh/sh_treg_combine.cc
+++ b/gcc/config/sh/sh_treg_combine.cc
@@ -50,6 +50,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "inchash.h"
 #include "tree.h"
 #include "optabs.h"
+#include "flags.h"
+#include "alias.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 
 #include <algorithm>
diff --git a/gcc/config/sparc/sparc.c b/gcc/config/sparc/sparc.c
index 4d6143a..b5c39e7 100644
--- a/gcc/config/sparc/sparc.c
+++ b/gcc/config/sparc/sparc.c
@@ -48,9 +48,15 @@ along with GCC; see the file COPYING3.  If not see
 #include "output.h"
 #include "insn-attr.h"
 #include "flags.h"
-#include "input.h"
 #include "function.h"
 #include "except.h"
+#include "hashtab.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "optabs.h"
 #include "recog.h"
@@ -86,7 +92,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "opts.h"
 #include "tree-pass.h"
 #include "context.h"
-#include "wide-int.h"
 #include "builtins.h"
 #include "rtl-iter.h"
 
diff --git a/gcc/config/spu/spu.c b/gcc/config/spu/spu.c
index 9bb6fc0..df77be3 100644
--- a/gcc/config/spu/spu.c
+++ b/gcc/config/spu/spu.c
@@ -42,12 +42,18 @@
 #include "stor-layout.h"
 #include "calls.h"
 #include "varasm.h"
+#include "hashtab.h"
+#include "function.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
 #include "except.h"
-#include "input.h"
-#include "function.h"
 #include "output.h"
 #include "predict.h"
 #include "dominance.h"
diff --git a/gcc/config/stormy16/stormy16.c b/gcc/config/stormy16/stormy16.c
index 9234652..6e44dd0 100644
--- a/gcc/config/stormy16/stormy16.c
+++ b/gcc/config/stormy16/stormy16.c
@@ -49,12 +49,18 @@
 #include "stor-layout.h"
 #include "varasm.h"
 #include "calls.h"
+#include "hashtab.h"
+#include "function.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
 #include "except.h"
-#include "input.h"
-#include "function.h"
 #include "target.h"
 #include "target-def.h"
 #include "tm_p.h"
diff --git a/gcc/config/tilegx/mul-tables.c b/gcc/config/tilegx/mul-tables.c
index a1f93e3..42a4293 100644
--- a/gcc/config/tilegx/mul-tables.c
+++ b/gcc/config/tilegx/mul-tables.c
@@ -24,6 +24,26 @@
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
+#include "hashtab.h"
+#include "hash-set.h"
+#include "vec.h"
+#include "machmode.h"
+#include "tm.h"
+#include "hard-reg-set.h"
+#include "input.h"
+#include "function.h"
+#include "rtl.h"
+#include "flags.h"
+#include "insn-config.h"
+#include "alias.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "symtab.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
diff --git a/gcc/config/tilegx/tilegx.c b/gcc/config/tilegx/tilegx.c
index de1b3a6..83d377c 100644
--- a/gcc/config/tilegx/tilegx.c
+++ b/gcc/config/tilegx/tilegx.c
@@ -28,6 +28,23 @@
 #include "output.h"
 #include "insn-attr.h"
 #include "recog.h"
+#include "hashtab.h"
+#include "hash-set.h"
+#include "vec.h"
+#include "machmode.h"
+#include "hard-reg-set.h"
+#include "input.h"
+#include "function.h"
+#include "flags.h"
+#include "alias.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "symtab.h"
 #include "expr.h"
 #include "langhooks.h"
 #include "insn-codes.h"
@@ -46,16 +63,8 @@
 #include "tm-constrs.h"
 #include "target.h"
 #include "target-def.h"
-#include "hashtab.h"
-#include "hash-set.h"
-#include "vec.h"
-#include "machmode.h"
-#include "hard-reg-set.h"
-#include "input.h"
-#include "function.h"
 #include "dwarf2.h"
 #include "timevar.h"
-#include "symtab.h"
 #include "wide-int.h"
 #include "inchash.h"
 #include "tree.h"
diff --git a/gcc/config/tilepro/gen-mul-tables.cc b/gcc/config/tilepro/gen-mul-tables.cc
index ea31b0d..0440335 100644
--- a/gcc/config/tilepro/gen-mul-tables.cc
+++ b/gcc/config/tilepro/gen-mul-tables.cc
@@ -1256,6 +1256,21 @@ main ()
   printf ("#include \"system.h\"\n");
   printf ("#include \"coretypes.h\"\n");
   printf ("#include \"symtab.h\"\n");
+  printf ("#include \"hashtab.h\"\n");
+  printf ("#include \"hash-set.h\"\n");
+  printf ("#include \"vec.h\"\n");
+  printf ("#include \"machmode.h\"\n");
+  printf ("#include \"tm.h\"\n");
+  printf ("#include \"hard-reg-set.h\"\n");
+  printf ("#include \"input.h\"\n");
+  printf ("#include \"function.h\"\n");
+  printf ("#include \"rtl.h\"\n");
+  printf ("#include \"flags.h\"\n");
+  printf ("#include \"insn-config.h\"\n");
+  printf ("#include \"alias.h\"\n");
+  printf ("#include \"emit-rtl.h\"\n");
+  printf ("#include \"expmed.h\"\n");
+  printf ("#include \"stmt.h\"\n");
   printf ("#include \"expr.h\"\n");
   printf ("#include \"insn-codes.h\"\n");
   printf ("#include \"optabs.h\"\n");
diff --git a/gcc/config/tilepro/tilepro.c b/gcc/config/tilepro/tilepro.c
index 8cf109a..87b9b66 100644
--- a/gcc/config/tilepro/tilepro.c
+++ b/gcc/config/tilepro/tilepro.c
@@ -28,6 +28,23 @@
 #include "output.h"
 #include "insn-attr.h"
 #include "recog.h"
+#include "hashtab.h"
+#include "hash-set.h"
+#include "vec.h"
+#include "machmode.h"
+#include "hard-reg-set.h"
+#include "input.h"
+#include "function.h"
+#include "flags.h"
+#include "alias.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "symtab.h"
 #include "expr.h"
 #include "langhooks.h"
 #include "insn-codes.h"
@@ -47,16 +64,8 @@
 #include "tm-constrs.h"
 #include "target.h"
 #include "target-def.h"
-#include "hashtab.h"
-#include "hash-set.h"
-#include "vec.h"
-#include "machmode.h"
-#include "hard-reg-set.h"
-#include "input.h"
-#include "function.h"
 #include "dwarf2.h"
 #include "timevar.h"
-#include "symtab.h"
 #include "wide-int.h"
 #include "inchash.h"
 #include "tree.h"
diff --git a/gcc/config/v850/v850.c b/gcc/config/v850/v850.c
index 688df17..a78c643 100644
--- a/gcc/config/v850/v850.c
+++ b/gcc/config/v850/v850.c
@@ -45,9 +45,15 @@
 #include "insn-attr.h"
 #include "flags.h"
 #include "recog.h"
-#include "expr.h"
-#include "input.h"
+#include "hashtab.h"
 #include "function.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expr.h"
 #include "diagnostic-core.h"
 #include "ggc.h"
 #include "tm_p.h"
diff --git a/gcc/config/vax/vax.c b/gcc/config/vax/vax.c
index deb42e4..3ecc147 100644
--- a/gcc/config/vax/vax.c
+++ b/gcc/config/vax/vax.c
@@ -48,15 +48,21 @@ along with GCC; see the file COPYING3.  If not see
 #include "hard-reg-set.h"
 #include "insn-config.h"
 #include "conditions.h"
-#include "input.h"
 #include "function.h"
 #include "output.h"
 #include "insn-attr.h"
 #include "recog.h"
+#include "hashtab.h"
+#include "flags.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
-#include "flags.h"
 #include "debug.h"
 #include "diagnostic-core.h"
 #include "reload.h"
@@ -65,7 +71,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "tm_p.h"
 #include "target.h"
 #include "target-def.h"
-#include "wide-int.h"
 #include "builtins.h"
 
 static void vax_option_override (void);
diff --git a/gcc/config/visium/visium.c b/gcc/config/visium/visium.c
index 657c067..ef2a64f 100644
--- a/gcc/config/visium/visium.c
+++ b/gcc/config/visium/visium.c
@@ -51,8 +51,11 @@
 #include "conditions.h"
 #include "output.h"
 #include "insn-attr.h"
-#include "expr.h"
 #include "function.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "expr.h"
 #include "recog.h"
 #include "diagnostic-core.h"
 #include "tm_p.h"
diff --git a/gcc/config/xtensa/xtensa.c b/gcc/config/xtensa/xtensa.c
index 8bd7ae7..ece7a18 100644
--- a/gcc/config/xtensa/xtensa.c
+++ b/gcc/config/xtensa/xtensa.c
@@ -56,8 +56,16 @@ along with GCC; see the file COPYING3.  If not see
 #include "stor-layout.h"
 #include "calls.h"
 #include "varasm.h"
-#include "expr.h"
 #include "flags.h"
+#include "alias.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expr.h"
 #include "reload.h"
 #include "tm_p.h"
 #include "diagnostic-core.h"
diff --git a/gcc/coverage.c b/gcc/coverage.c
index 76866ca..769080b 100644
--- a/gcc/coverage.c
+++ b/gcc/coverage.c
@@ -45,10 +45,17 @@ along with GCC; see the file COPYING3.  If not see
 #include "flags.h"
 #include "output.h"
 #include "regs.h"
-#include "expr.h"
+#include "hashtab.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expr.h"
 #include "predict.h"
 #include "dominance.h"
 #include "cfg.h"
diff --git a/gcc/cprop.c b/gcc/cprop.c
index 4538291..5346c1b 100644
--- a/gcc/cprop.c
+++ b/gcc/cprop.c
@@ -41,11 +41,7 @@ along with GCC; see the file COPYING3.  If not see
 #include "insn-config.h"
 #include "recog.h"
 #include "predict.h"
-#include "vec.h"
 #include "hashtab.h"
-#include "hash-set.h"
-#include "machmode.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -54,6 +50,12 @@ along with GCC; see the file COPYING3.  If not see
 #include "lcm.h"
 #include "cfgcleanup.h"
 #include "basic-block.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "except.h"
 #include "params.h"
diff --git a/gcc/cse.c b/gcc/cse.c
index ec64ffa..fbf5ed24 100644
--- a/gcc/cse.c
+++ b/gcc/cse.c
@@ -42,6 +42,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "insn-config.h"
 #include "recog.h"
 #include "symtab.h"
+#include "alias.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "diagnostic-core.h"
 #include "toplev.h"
diff --git a/gcc/dbxout.c b/gcc/dbxout.c
index f0e24b6..bb0e60b 100644
--- a/gcc/dbxout.c
+++ b/gcc/dbxout.c
@@ -96,16 +96,15 @@ along with GCC; see the file COPYING3.  If not see
 #include "ggc.h"
 #include "debug.h"
 #include "hashtab.h"
-#include "hash-set.h"
-#include "vec.h"
-#include "machmode.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "target.h"
 #include "common/common-target.h"
 #include "langhooks.h"
 #include "obstack.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
 #include "expr.h"
 #include "hash-map.h"
 #include "is-a.h"
diff --git a/gcc/ddg.c b/gcc/ddg.c
index 8c31b89..e77eb5b 100644
--- a/gcc/ddg.c
+++ b/gcc/ddg.c
@@ -46,6 +46,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "cfgloop.h"
 #include "sbitmap.h"
 #include "symtab.h"
+#include "alias.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "bitmap.h"
 #include "df.h"
diff --git a/gcc/dojump.c b/gcc/dojump.c
index 9133eb7..ba7ad36 100644
--- a/gcc/dojump.c
+++ b/gcc/dojump.c
@@ -37,11 +37,16 @@ along with GCC; see the file COPYING3.  If not see
 #include "stor-layout.h"
 #include "flags.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "insn-config.h"
 #include "insn-attr.h"
 /* Include expr.h after insn-config.h so we get HAVE_conditional_move.  */
+#include "hashtab.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
diff --git a/gcc/dse.c b/gcc/dse.c
index e302236..e8d9d98 100644
--- a/gcc/dse.c
+++ b/gcc/dse.c
@@ -55,8 +55,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "cselib.h"
 #include "tree-pass.h"
 #include "alloc-pool.h"
-#include "alias.h"
 #include "insn-config.h"
+#include "hashtab.h"
+#include "function.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "recog.h"
 #include "insn-codes.h"
diff --git a/gcc/dwarf2cfi.c b/gcc/dwarf2cfi.c
index 9def81b..865e602 100644
--- a/gcc/dwarf2cfi.c
+++ b/gcc/dwarf2cfi.c
@@ -37,7 +37,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree.h"
 #include "stor-layout.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "cfgbuild.h"
 #include "dwarf2.h"
@@ -51,6 +50,13 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-pass.h"
 
 #include "except.h"		/* expand_builtin_dwarf_sp_column */
+#include "hashtab.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "fixed-value.h"
 #include "expr.h"		/* init_return_column_size */
 #include "regs.h"		/* expand_builtin_init_dwarf_reg_sizes */
 #include "output.h"		/* asm_out_file */
diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c
index 4fbcb97..d9efd0f 100644
--- a/gcc/dwarf2out.c
+++ b/gcc/dwarf2out.c
@@ -76,11 +76,7 @@ along with GCC; see the file COPYING3.  If not see
 #include "stor-layout.h"
 #include "varasm.h"
 #include "hashtab.h"
-#include "hash-set.h"
-#include "vec.h"
-#include "machmode.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "emit-rtl.h"
 #include "hash-table.h"
@@ -91,6 +87,10 @@ along with GCC; see the file COPYING3.  If not see
 #include "insn-config.h"
 #include "reload.h"
 #include "output.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "except.h"
 #include "dwarf2.h"
diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c
index 43d9242..17440b8 100644
--- a/gcc/emit-rtl.c
+++ b/gcc/emit-rtl.c
@@ -52,7 +52,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "varasm.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "cfgrtl.h"
 #include "basic-block.h"
@@ -60,9 +59,15 @@ along with GCC; see the file COPYING3.  If not see
 #include "tm_p.h"
 #include "flags.h"
 #include "stringpool.h"
+#include "hashtab.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "regs.h"
-#include "insn-config.h"
 #include "recog.h"
 #include "bitmap.h"
 #include "debug.h"
diff --git a/gcc/except.c b/gcc/except.c
index bceb679..994b5c6 100644
--- a/gcc/except.c
+++ b/gcc/except.c
@@ -130,13 +130,18 @@ along with GCC; see the file COPYING3.  If not see
 #include "stor-layout.h"
 #include "flags.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "insn-codes.h"
 #include "optabs.h"
+#include "hashtab.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "libfuncs.h"
-#include "insn-config.h"
 #include "except.h"
 #include "output.h"
 #include "dwarf2asm.h"
diff --git a/gcc/explow.c b/gcc/explow.c
index 3e3cf05..bc5aa5b 100644
--- a/gcc/explow.c
+++ b/gcc/explow.c
@@ -40,13 +40,18 @@ along with GCC; see the file COPYING3.  If not see
 #include "flags.h"
 #include "except.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
+#include "hashtab.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
 #include "libfuncs.h"
-#include "insn-config.h"
 #include "ggc.h"
 #include "recog.h"
 #include "langhooks.h"
diff --git a/gcc/expmed.c b/gcc/expmed.c
index d184552..024b4d0 100644
--- a/gcc/expmed.c
+++ b/gcc/expmed.c
@@ -40,6 +40,15 @@ along with GCC; see the file COPYING3.  If not see
 #include "tm_p.h"
 #include "flags.h"
 #include "insn-config.h"
+#include "hashtab.h"
+#include "hard-reg-set.h"
+#include "function.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
@@ -49,7 +58,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "basic-block.h"
 #include "df.h"
 #include "target.h"
-#include "expmed.h"
 
 struct target_expmed default_target_expmed;
 #if SWITCHABLE_TARGET
diff --git a/gcc/expmed.h b/gcc/expmed.h
index 0202f00..2ed5e06 100644
--- a/gcc/expmed.h
+++ b/gcc/expmed.h
@@ -671,4 +671,30 @@ extern rtx emit_cstore (rtx target, enum insn_code icode, enum rtx_code code,
 			enum machine_mode mode, enum machine_mode compare_mode,
 			int unsignedp, rtx x, rtx y, int normalizep,
 			enum machine_mode target_mode);
+
+/* Functions from expmed.c:  */
+
+/* Arguments MODE, RTX: return an rtx for the negation of that value.
+   May emit insns.  */
+extern rtx negate_rtx (machine_mode, rtx);
+
+/* Expand a logical AND operation.  */
+extern rtx expand_and (machine_mode, rtx, rtx, rtx);
+
+/* Emit a store-flag operation.  */
+extern rtx emit_store_flag (rtx, enum rtx_code, rtx, rtx, machine_mode,
+			    int, int);
+
+/* Like emit_store_flag, but always succeeds.  */
+extern rtx emit_store_flag_force (rtx, enum rtx_code, rtx, rtx,
+				  machine_mode, int, int);
+
+/* Choose a minimal N + 1 bit approximation to 1/D that can be used to
+   replace division by D, and put the least significant N bits of the result
+   in *MULTIPLIER_PTR and return the most significant bit.  */
+extern unsigned HOST_WIDE_INT choose_multiplier (unsigned HOST_WIDE_INT, int,
+						 int, unsigned HOST_WIDE_INT *,
+						 int *, int *);
+
+
 #endif
diff --git a/gcc/expr.c b/gcc/expr.c
index fc22862..824541e 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -41,11 +41,17 @@ along with GCC; see the file COPYING3.  If not see
 #include "regs.h"
 #include "hard-reg-set.h"
 #include "except.h"
-#include "input.h"
 #include "function.h"
 #include "insn-config.h"
 #include "insn-attr.h"
 /* Include expr.h after insn-config.h so we get HAVE_conditional_move.  */
+#include "hashtab.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
diff --git a/gcc/expr.h b/gcc/expr.h
index a7638b8..f1be8dc 100644
--- a/gcc/expr.h
+++ b/gcc/expr.h
@@ -20,7 +20,8 @@ along with GCC; see the file COPYING3.  If not see
 #ifndef GCC_EXPR_H
 #define GCC_EXPR_H
 
-/* For inhibit_defer_pop */
+/* expr.h required includes */ 
+#if 0
 #include "hashtab.h"
 #include "hash-set.h"
 #include "vec.h"
@@ -29,15 +30,17 @@ along with GCC; see the file COPYING3.  If not see
 #include "hard-reg-set.h"
 #include "input.h"
 #include "function.h"
-/* For XEXP, GEN_INT, rtx_code */
 #include "rtl.h"
-/* For optimize_size */
 #include "flags.h"
-/* For tree_fits_[su]hwi_p, tree_to_[su]hwi, fold_convert, size_binop,
-   ssize_int, TREE_CODE, TYPE_SIZE, int_size_in_bytes,    */
 #include "tree-core.h"
-/* For GET_MODE_BITSIZE, word_mode */
 #include "insn-config.h"
+#include "alias.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#endif
+
+#include "tree-core.h"
 
 /* This is the 4th arg to `expand_expr'.
    EXPAND_STACK_PARM means we are possibly expanding a call param onto
@@ -73,30 +76,6 @@ typedef struct separate_ops
   tree op0, op1, op2;
 } *sepops;
 \f
-/* Functions from expmed.c:  */
-
-/* Arguments MODE, RTX: return an rtx for the negation of that value.
-   May emit insns.  */
-extern rtx negate_rtx (machine_mode, rtx);
-
-/* Expand a logical AND operation.  */
-extern rtx expand_and (machine_mode, rtx, rtx, rtx);
-
-/* Emit a store-flag operation.  */
-extern rtx emit_store_flag (rtx, enum rtx_code, rtx, rtx, machine_mode,
-			    int, int);
-
-/* Like emit_store_flag, but always succeeds.  */
-extern rtx emit_store_flag_force (rtx, enum rtx_code, rtx, rtx,
-				  machine_mode, int, int);
-
-/* Choose a minimal N + 1 bit approximation to 1/D that can be used to
-   replace division by D, and put the least significant N bits of the result
-   in *MULTIPLIER_PTR and return the most significant bit.  */
-extern unsigned HOST_WIDE_INT choose_multiplier (unsigned HOST_WIDE_INT, int,
-						 int, unsigned HOST_WIDE_INT *,
-						 int *, int *);
-\f
 /* Functions from expr.c:  */
 
 /* This is run during target initialization to set up which modes can be
@@ -365,9 +344,6 @@ extern void do_compare_rtx_and_jump (rtx, rtx, enum rtx_code, int,
 extern int try_casesi (tree, tree, tree, tree, rtx, rtx, rtx, int);
 extern int try_tablejump (tree, tree, tree, tree, rtx, rtx, int);
 
-/* Functions from alias.c */
-#include "alias.h"
-
 \f
 /* rtl.h and tree.h were included.  */
 /* Return an rtx for the size in bytes of the value of an expr.  */
@@ -472,9 +448,6 @@ extern rtx adjust_automodify_address_1 (rtx, machine_mode, rtx,
    known to be in OFFSET (possibly 1).  */
 extern rtx offset_address (rtx, rtx, unsigned HOST_WIDE_INT);
 
-/* Definitions from emit-rtl.c */
-#include "emit-rtl.h"
-
 /* Return a memory reference like MEMREF, but with its mode widened to
    MODE and adjusted by OFFSET.  */
 extern rtx widen_memory_access (rtx, machine_mode, HOST_WIDE_INT);
@@ -591,15 +564,6 @@ extern bool split_comparison (enum rtx_code, machine_mode,
 /* Get the personality libfunc for a function decl.  */
 rtx get_personality_function (tree);
 
-
-/* In stmt.c */
-
-/* Expand a GIMPLE_SWITCH statement.  */
-extern void expand_case (gswitch *);
-
-/* Like expand_case but special-case for SJLJ exception dispatching.  */
-extern void expand_sjlj_dispatch_table (rtx, vec<tree> );
-
 /* Determine whether the LEN bytes can be moved by using several move
    instructions.  Return nonzero if a call to move_by_pieces should
    succeed.  */
diff --git a/gcc/final.c b/gcc/final.c
index 7797d81..357aeef 100644
--- a/gcc/final.c
+++ b/gcc/final.c
@@ -68,7 +68,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "flags.h"
 #include "output.h"
 #include "except.h"
-#include "input.h"
 #include "function.h"
 #include "rtl-error.h"
 #include "toplev.h" /* exact_log2, floor_log2 */
@@ -82,6 +81,10 @@ along with GCC; see the file COPYING3.  If not see
 #include "target.h"
 #include "targhooks.h"
 #include "debug.h"
+#include "hashtab.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tree-pass.h"
 #include "hash-map.h"
diff --git a/gcc/fold-const.c b/gcc/fold-const.c
index b1cbfac..3719112 100644
--- a/gcc/fold-const.c
+++ b/gcc/fold-const.c
@@ -61,6 +61,16 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-iterator.h"
 #include "realmpfr.h"
 #include "rtl.h"
+#include "hashtab.h"
+#include "hard-reg-set.h"
+#include "function.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "tm_p.h"
 #include "target.h"
@@ -69,11 +79,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "langhooks.h"
 #include "md5.h"
 #include "predict.h"
-#include "vec.h"
-#include "hashtab.h"
-#include "hard-reg-set.h"
-#include "input.h"
-#include "function.h"
 #include "basic-block.h"
 #include "tree-ssa-alias.h"
 #include "internal-fn.h"
diff --git a/gcc/function.c b/gcc/function.c
index 9589e64..e6aa978 100644
--- a/gcc/function.c
+++ b/gcc/function.c
@@ -53,18 +53,21 @@ along with GCC; see the file COPYING3.  If not see
 #include "flags.h"
 #include "except.h"
 #include "hashtab.h"
-#include "hash-set.h"
-#include "vec.h"
-#include "machmode.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
+#include "rtl.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
 #include "libfuncs.h"
 #include "regs.h"
-#include "insn-config.h"
 #include "recog.h"
 #include "output.h"
 #include "tm_p.h"
diff --git a/gcc/gcse.c b/gcc/gcse.c
index 0f04641..921f87a 100644
--- a/gcc/gcse.c
+++ b/gcc/gcse.c
@@ -157,7 +157,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "insn-config.h"
 #include "recog.h"
 #include "predict.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -166,6 +165,13 @@ along with GCC; see the file COPYING3.  If not see
 #include "lcm.h"
 #include "cfgcleanup.h"
 #include "basic-block.h"
+#include "hashtab.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "except.h"
 #include "ggc.h"
diff --git a/gcc/genemit.c b/gcc/genemit.c
index cda3fce..f979956 100644
--- a/gcc/genemit.c
+++ b/gcc/genemit.c
@@ -817,6 +817,12 @@ from the machine description file `md'.  */\n\n");
   printf ("#include \"hard-reg-set.h\"\n");
   printf ("#include \"input.h\"\n");
   printf ("#include \"function.h\"\n");
+  printf ("#include \"flags.h\"\n");
+  printf ("#include \"insn-config.h\"\n");
+  printf ("#include \"alias.h\"\n");
+  printf ("#include \"emit-rtl.h\"\n");
+  printf ("#include \"expmed.h\"\n");
+  printf ("#include \"stmt.h\"\n");
   printf ("#include \"expr.h\"\n");
   printf ("#include \"insn-codes.h\"\n");
   printf ("#include \"optabs.h\"\n");
diff --git a/gcc/generic-match-head.c b/gcc/generic-match-head.c
index c34604d..35c7f0c 100644
--- a/gcc/generic-match-head.c
+++ b/gcc/generic-match-head.c
@@ -39,7 +39,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "hard-reg-set.h"
 #include "function.h"
 #include "predict.h"
-#include "input.h"
 #include "basic-block.h"
 #include "tree-ssa-alias.h"
 #include "internal-fn.h"
@@ -50,6 +49,15 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-ssanames.h"
 #include "gimple-fold.h"
 #include "gimple-iterator.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "tree-dfa.h"
 #include "builtins.h"
diff --git a/gcc/gengtype.c b/gcc/gengtype.c
index 9f805b5..3ee0e16 100644
--- a/gcc/gengtype.c
+++ b/gcc/gengtype.c
@@ -1714,8 +1714,9 @@ open_base_files (void)
       "wide-int.h", "inchash.h",
       "tree.h", "fold-const.h", "rtl.h",
       "machmode.h", "tm.h", "hard-reg-set.h", "input.h", "predict.h",
-      "function.h", "insn-config.h", "expr.h", "alloc-pool.h",
-      "hard-reg-set.h", "basic-block.h", "cselib.h", "insn-addr.h",
+      "function.h", "insn-config.h", "flags.h", "emit-rtl.h",
+      "expmed.h", "stmt.h", "expr.h", "alloc-pool.h",
+      "basic-block.h", "cselib.h", "insn-addr.h",
       "optabs.h", "libfuncs.h", "debug.h", "ggc.h", 
       "ggc.h", "dominance.h", "cfg.h", "basic-block.h",
       "tree-ssa-alias.h", "internal-fn.h", "gimple-fold.h", "tree-eh.h",
diff --git a/gcc/genopinit.c b/gcc/genopinit.c
index b301053..e39dc98 100644
--- a/gcc/genopinit.c
+++ b/gcc/genopinit.c
@@ -483,6 +483,17 @@ main (int argc, char **argv)
 	   "#include \"tm_p.h\"\n"
 	   "#include \"flags.h\"\n"
 	   "#include \"insn-config.h\"\n"
+	   "#include \"hashtab.h\"\n"
+	   "#include \"hash-set.h\"\n"
+	   "#include \"vec.h\"\n"
+	   "#include \"machmode.h\"\n"
+	   "#include \"hard-reg-set.h\"\n"
+	   "#include \"input.h\"\n"
+	   "#include \"function.h\"\n"
+	   "#include \"alias.h\"\n"
+	   "#include \"emit-rtl.h\"\n"
+	   "#include \"expmed.h\"\n"
+	   "#include \"stmt.h\"\n"
 	   "#include \"expr.h\"\n"
 	   "#include \"insn-codes.h\"\n"
 	   "#include \"optabs.h\"\n"
diff --git a/gcc/genoutput.c b/gcc/genoutput.c
index fde30ef..39c5e75 100644
--- a/gcc/genoutput.c
+++ b/gcc/genoutput.c
@@ -243,6 +243,18 @@ output_prologue (void)
   printf ("#include \"stor-layout.h\"\n");
   printf ("#include \"calls.h\"\n");
   printf ("#include \"rtl.h\"\n");
+  printf ("#include \"hashtab.h\"\n");
+  printf ("#include \"hash-set.h\"\n");
+  printf ("#include \"vec.h\"\n");
+  printf ("#include \"machmode.h\"\n");
+  printf ("#include \"hard-reg-set.h\"\n");
+  printf ("#include \"input.h\"\n");
+  printf ("#include \"function.h\"\n");
+  printf ("#include \"insn-config.h\"\n");
+  printf ("#include \"alias.h\"\n");
+  printf ("#include \"emit-rtl.h\"\n");
+  printf ("#include \"expmed.h\"\n");
+  printf ("#include \"stmt.h\"\n");
   printf ("#include \"expr.h\"\n");
   printf ("#include \"insn-codes.h\"\n");
   printf ("#include \"tm_p.h\"\n");
diff --git a/gcc/gimple-fold.c b/gcc/gimple-fold.c
index 49b31f1..e676cee 100644
--- a/gcc/gimple-fold.c
+++ b/gcc/gimple-fold.c
@@ -34,17 +34,20 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree.h"
 #include "fold-const.h"
 #include "stringpool.h"
-#include "expr.h"
-#include "stmt.h"
-#include "stor-layout.h"
-#include "flags.h"
 #include "hashtab.h"
-#include "hash-set.h"
-#include "vec.h"
-#include "machmode.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
+#include "rtl.h"
+#include "flags.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expr.h"
+#include "stor-layout.h"
 #include "dumpfile.h"
 #include "bitmap.h"
 #include "predict.h"
diff --git a/gcc/gimple-match-head.c b/gcc/gimple-match-head.c
index d7ada77..5be5cc8 100644
--- a/gcc/gimple-match-head.c
+++ b/gcc/gimple-match-head.c
@@ -36,11 +36,9 @@ along with GCC; see the file COPYING3.  If not see
 #include "stringpool.h"
 #include "stor-layout.h"
 #include "flags.h"
-#include "tm.h"
 #include "hard-reg-set.h"
 #include "function.h"
 #include "predict.h"
-#include "input.h"
 #include "basic-block.h"
 #include "tree-ssa-alias.h"
 #include "internal-fn.h"
@@ -51,6 +49,15 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-ssanames.h"
 #include "gimple-fold.h"
 #include "gimple-iterator.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "tree-dfa.h"
 #include "builtins.h"
diff --git a/gcc/gimple-ssa-strength-reduction.c b/gcc/gimple-ssa-strength-reduction.c
index f6c92d0..658c039 100644
--- a/gcc/gimple-ssa-strength-reduction.c
+++ b/gcc/gimple-ssa-strength-reduction.c
@@ -51,7 +51,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "predict.h"
 #include "tm.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -64,6 +63,16 @@ along with GCC; see the file COPYING3.  If not see
 #include "gimple-iterator.h"
 #include "gimplify-me.h"
 #include "stor-layout.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "flags.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "tree-pass.h"
 #include "cfgloop.h"
@@ -75,7 +84,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "stringpool.h"
 #include "tree-ssanames.h"
 #include "domwalk.h"
-#include "expmed.h"
 #include "params.h"
 #include "tree-ssa-address.h"
 #include "tree-affine.h"
diff --git a/gcc/gimplify.c b/gcc/gimplify.c
index 59aaf5a..cb5e808 100644
--- a/gcc/gimplify.c
+++ b/gcc/gimplify.c
@@ -35,12 +35,21 @@ along with GCC; see the file COPYING3.  If not see
 #include "inchash.h"
 #include "tree.h"
 #include "fold-const.h"
-#include "expr.h"
-#include "predict.h"
+#include "hashtab.h"
 #include "tm.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
+#include "rtl.h"
+#include "flags.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expr.h"
+#include "predict.h"
 #include "basic-block.h"
 #include "tree-ssa-alias.h"
 #include "internal-fn.h"
@@ -55,7 +64,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "calls.h"
 #include "varasm.h"
 #include "stor-layout.h"
-#include "stmt.h"
 #include "print-tree.h"
 #include "tree-iterator.h"
 #include "tree-inline.h"
diff --git a/gcc/graphite-sese-to-poly.c b/gcc/graphite-sese-to-poly.c
index 5bb521f..79bc269 100644
--- a/gcc/graphite-sese-to-poly.c
+++ b/gcc/graphite-sese-to-poly.c
@@ -55,7 +55,6 @@ extern "C" {
 #include "predict.h"
 #include "tm.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -88,6 +87,13 @@ extern "C" {
 #include "tree-ssa-propagate.h"
 
 #ifdef HAVE_isl
+#include "hashtab.h"
+#include "rtl.h"
+#include "flags.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
 #include "expr.h"
 #include "graphite-poly.h"
 #include "graphite-sese-to-poly.h"
diff --git a/gcc/hw-doloop.c b/gcc/hw-doloop.c
index 5ad1569..1c69318 100644
--- a/gcc/hw-doloop.c
+++ b/gcc/hw-doloop.c
@@ -25,16 +25,25 @@ along with GCC; see the file COPYING3.  If not see
 #include "rtl.h"
 #include "flags.h"
 #include "symtab.h"
-#include "expr.h"
-#include "hard-reg-set.h"
-#include "regs.h"
-#include "predict.h"
-#include "vec.h"
 #include "hashtab.h"
 #include "hash-set.h"
+#include "vec.h"
 #include "machmode.h"
+#include "hard-reg-set.h"
 #include "input.h"
 #include "function.h"
+#include "insn-config.h"
+#include "alias.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expr.h"
+#include "regs.h"
+#include "predict.h"
 #include "dominance.h"
 #include "cfg.h"
 #include "cfgrtl.h"
diff --git a/gcc/ifcvt.c b/gcc/ifcvt.c
index 30a13a8..0033861 100644
--- a/gcc/ifcvt.c
+++ b/gcc/ifcvt.c
@@ -43,6 +43,14 @@
 #include "cfgcleanup.h"
 #include "basic-block.h"
 #include "symtab.h"
+#include "alias.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "output.h"
 #include "insn-codes.h"
diff --git a/gcc/init-regs.c b/gcc/init-regs.c
index 3b9560d..4ef7d25 100644
--- a/gcc/init-regs.c
+++ b/gcc/init-regs.c
@@ -33,16 +33,23 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree.h"
 #include "rtl.h"
 #include "regs.h"
+#include "hashtab.h"
+#include "hard-reg-set.h"
+#include "function.h"
+#include "flags.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "tree-pass.h"
 #include "predict.h"
-#include "hard-reg-set.h"
-#include "input.h"
-#include "function.h"
 #include "dominance.h"
 #include "cfg.h"
 #include "basic-block.h"
-#include "flags.h"
 #include "df.h"
 
 /* Check all of the uses of pseudo variables.  If any use that is MUST
diff --git a/gcc/internal-fn.c b/gcc/internal-fn.c
index 07a9ec5..4b880d4 100644
--- a/gcc/internal-fn.c
+++ b/gcc/internal-fn.c
@@ -34,19 +34,27 @@ along with GCC; see the file COPYING3.  If not see
 #include "fold-const.h"
 #include "internal-fn.h"
 #include "stor-layout.h"
+#include "hashtab.h"
+#include "tm.h"
+#include "hard-reg-set.h"
+#include "function.h"
+#include "rtl.h"
+#include "flags.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
 #include "predict.h"
-#include "tm.h"
-#include "hard-reg-set.h"
-#include "input.h"
-#include "function.h"
 #include "dominance.h"
 #include "cfg.h"
 #include "basic-block.h"
 #include "tree-ssa-alias.h"
-#include "internal-fn.h"
 #include "gimple-expr.h"
 #include "is-a.h"
 #include "gimple.h"
diff --git a/gcc/ipa-devirt.c b/gcc/ipa-devirt.c
index 52d2e52..4140c99 100644
--- a/gcc/ipa-devirt.c
+++ b/gcc/ipa-devirt.c
@@ -128,15 +128,23 @@ along with GCC; see the file COPYING3.  If not see
 #include "is-a.h"
 #include "plugin-api.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "ipa-ref.h"
 #include "cgraph.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "flags.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "tree-pass.h"
 #include "target.h"
 #include "hash-table.h"
-#include "inchash.h"
 #include "tree-pretty-print.h"
 #include "ipa-utils.h"
 #include "tree-ssa-alias.h"
diff --git a/gcc/ipa-icf-gimple.c b/gcc/ipa-icf-gimple.c
index 8c3a27b..2d91279 100644
--- a/gcc/ipa-icf-gimple.c
+++ b/gcc/ipa-icf-gimple.c
@@ -37,7 +37,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "predict.h"
 #include "tm.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "basic-block.h"
 #include "tree-ssa-alias.h"
@@ -45,6 +44,16 @@ along with GCC; see the file COPYING3.  If not see
 #include "gimple-expr.h"
 #include "is-a.h"
 #include "gimple.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "flags.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "gimple-iterator.h"
 #include "gimple-ssa.h"
diff --git a/gcc/ipa-icf.c b/gcc/ipa-icf.c
index 1b76a1d..494405d 100644
--- a/gcc/ipa-icf.c
+++ b/gcc/ipa-icf.c
@@ -69,7 +69,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "predict.h"
 #include "tm.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -79,6 +78,16 @@ along with GCC; see the file COPYING3.  If not see
 #include "gimple-expr.h"
 #include "is-a.h"
 #include "gimple.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "flags.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "gimple-iterator.h"
 #include "gimple-ssa.h"
diff --git a/gcc/ipa-polymorphic-call.c b/gcc/ipa-polymorphic-call.c
index 369d938..4681703 100644
--- a/gcc/ipa-polymorphic-call.c
+++ b/gcc/ipa-polymorphic-call.c
@@ -35,6 +35,18 @@ along with GCC; see the file COPYING3.  If not see
 #include "fold-const.h"
 #include "print-tree.h"
 #include "calls.h"
+#include "hashtab.h"
+#include "hard-reg-set.h"
+#include "function.h"
+#include "rtl.h"
+#include "flags.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "tree-pass.h"
 #include "target.h"
@@ -44,9 +56,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "hash-map.h"
 #include "is-a.h"
 #include "plugin-api.h"
-#include "hard-reg-set.h"
-#include "input.h"
-#include "function.h"
 #include "ipa-ref.h"
 #include "cgraph.h"
 #include "ipa-utils.h"
diff --git a/gcc/ipa-prop.c b/gcc/ipa-prop.c
index a96b2be..19392b7 100644
--- a/gcc/ipa-prop.c
+++ b/gcc/ipa-prop.c
@@ -35,7 +35,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "predict.h"
 #include "tm.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -47,6 +46,16 @@ along with GCC; see the file COPYING3.  If not see
 #include "gimple-expr.h"
 #include "is-a.h"
 #include "gimple.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "flags.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "stor-layout.h"
 #include "print-tree.h"
@@ -73,7 +82,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-pass.h"
 #include "tree-inline.h"
 #include "ipa-inline.h"
-#include "flags.h"
 #include "diagnostic.h"
 #include "gimple-pretty-print.h"
 #include "lto-streamer.h"
diff --git a/gcc/ipa-split.c b/gcc/ipa-split.c
index 924c6b1..30e5216 100644
--- a/gcc/ipa-split.c
+++ b/gcc/ipa-split.c
@@ -92,7 +92,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "predict.h"
 #include "tm.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -104,6 +103,16 @@ along with GCC; see the file COPYING3.  If not see
 #include "is-a.h"
 #include "gimple.h"
 #include "stringpool.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "flags.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "calls.h"
 #include "gimplify.h"
@@ -122,12 +131,10 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-cfg.h"
 #include "tree-phinodes.h"
 #include "ssa-iterators.h"
-#include "stringpool.h"
 #include "tree-ssanames.h"
 #include "tree-into-ssa.h"
 #include "tree-dfa.h"
 #include "tree-pass.h"
-#include "flags.h"
 #include "diagnostic.h"
 #include "tree-dump.h"
 #include "tree-inline.h"
diff --git a/gcc/ira-color.c b/gcc/ira-color.c
index d362981..ebcc583 100644
--- a/gcc/ira-color.c
+++ b/gcc/ira-color.c
@@ -42,6 +42,15 @@ along with GCC; see the file COPYING3.  If not see
 #include "cfg.h"
 #include "basic-block.h"
 #include "symtab.h"
+#include "insn-config.h"
+#include "alias.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "diagnostic-core.h"
 #include "reload.h"
diff --git a/gcc/ira-costs.c b/gcc/ira-costs.c
index 4219e60..27cc2f2 100644
--- a/gcc/ira-costs.c
+++ b/gcc/ira-costs.c
@@ -26,22 +26,30 @@ along with GCC; see the file COPYING3.  If not see
 #include "hard-reg-set.h"
 #include "rtl.h"
 #include "symtab.h"
-#include "expr.h"
-#include "tm_p.h"
-#include "flags.h"
-#include "predict.h"
-#include "vec.h"
 #include "hashtab.h"
 #include "hash-set.h"
+#include "vec.h"
 #include "machmode.h"
 #include "input.h"
 #include "function.h"
+#include "flags.h"
+#include "insn-config.h"
+#include "alias.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expr.h"
+#include "tm_p.h"
+#include "predict.h"
 #include "dominance.h"
 #include "cfg.h"
 #include "basic-block.h"
 #include "regs.h"
 #include "addresses.h"
-#include "insn-config.h"
 #include "recog.h"
 #include "reload.h"
 #include "diagnostic-core.h"
diff --git a/gcc/ira-emit.c b/gcc/ira-emit.c
index b1847ec..91959c3 100644
--- a/gcc/ira-emit.c
+++ b/gcc/ira-emit.c
@@ -90,6 +90,15 @@ along with GCC; see the file COPYING3.  If not see
 #include "cfgbuild.h"
 #include "basic-block.h"
 #include "symtab.h"
+#include "insn-config.h"
+#include "alias.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "recog.h"
 #include "params.h"
diff --git a/gcc/ira.c b/gcc/ira.c
index b7ae86e..d6fcc92 100644
--- a/gcc/ira.c
+++ b/gcc/ira.c
@@ -386,7 +386,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "bitmap.h"
 #include "hard-reg-set.h"
 #include "predict.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -395,6 +394,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "cfgcleanup.h"
 #include "basic-block.h"
 #include "df.h"
+#include "hashtab.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "recog.h"
 #include "params.h"
diff --git a/gcc/java/builtins.c b/gcc/java/builtins.c
index ee1ac60..220261d 100644
--- a/gcc/java/builtins.c
+++ b/gcc/java/builtins.c
@@ -53,6 +53,16 @@ The Free Software Foundation is independent of Sun Microsystems, Inc.  */
    Front ends should never have to look at that.  */
 #include "rtl.h"
 #include "insn-codes.h"
+#include "hashtab.h"
+#include "hard-reg-set.h"
+#include "function.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "optabs.h"
 
diff --git a/gcc/jump.c b/gcc/jump.c
index c3eb40c..ea684b8 100644
--- a/gcc/jump.c
+++ b/gcc/jump.c
@@ -57,6 +57,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "cfgrtl.h"
 #include "basic-block.h"
 #include "symtab.h"
+#include "alias.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "except.h"
 #include "diagnostic-core.h"
diff --git a/gcc/loop-doloop.c b/gcc/loop-doloop.c
index bc0953c..a5f94dc 100644
--- a/gcc/loop-doloop.c
+++ b/gcc/loop-doloop.c
@@ -25,14 +25,23 @@ along with GCC; see the file COPYING3.  If not see
 #include "rtl.h"
 #include "flags.h"
 #include "symtab.h"
-#include "expr.h"
-#include "hard-reg-set.h"
-#include "vec.h"
 #include "hashtab.h"
 #include "hash-set.h"
+#include "vec.h"
 #include "machmode.h"
+#include "hard-reg-set.h"
 #include "input.h"
 #include "function.h"
+#include "insn-config.h"
+#include "alias.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expr.h"
 #include "diagnostic-core.h"
 #include "tm_p.h"
 #include "predict.h"
diff --git a/gcc/loop-invariant.c b/gcc/loop-invariant.c
index be9078c..3268495 100644
--- a/gcc/loop-invariant.c
+++ b/gcc/loop-invariant.c
@@ -55,10 +55,19 @@ along with GCC; see the file COPYING3.  If not see
 #include "basic-block.h"
 #include "cfgloop.h"
 #include "symtab.h"
+#include "flags.h"
+#include "insn-config.h"
+#include "alias.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "recog.h"
 #include "target.h"
-#include "flags.h"
 #include "df.h"
 #include "hash-table.h"
 #include "except.h"
diff --git a/gcc/loop-iv.c b/gcc/loop-iv.c
index 5934448..ee3c8d1 100644
--- a/gcc/loop-iv.c
+++ b/gcc/loop-iv.c
@@ -66,6 +66,16 @@ along with GCC; see the file COPYING3.  If not see
 #include "basic-block.h"
 #include "cfgloop.h"
 #include "symtab.h"
+#include "flags.h"
+#include "insn-config.h"
+#include "alias.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "intl.h"
 #include "diagnostic-core.h"
diff --git a/gcc/loop-unroll.c b/gcc/loop-unroll.c
index 917c66b..2048733 100644
--- a/gcc/loop-unroll.c
+++ b/gcc/loop-unroll.c
@@ -36,7 +36,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "obstack.h"
 #include "profile.h"
 #include "predict.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -46,6 +45,15 @@ along with GCC; see the file COPYING3.  If not see
 #include "params.h"
 #include "insn-codes.h"
 #include "optabs.h"
+#include "hashtab.h"
+#include "flags.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "hash-table.h"
 #include "recog.h"
diff --git a/gcc/lower-subreg.c b/gcc/lower-subreg.c
index d58b5c5..49f00c3 100644
--- a/gcc/lower-subreg.c
+++ b/gcc/lower-subreg.c
@@ -25,7 +25,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "machmode.h"
 #include "tm.h"
 #include "hash-set.h"
-#include "machmode.h"
 #include "vec.h"
 #include "double-int.h"
 #include "input.h"
@@ -41,7 +40,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "obstack.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -51,6 +49,13 @@ along with GCC; see the file COPYING3.  If not see
 #include "recog.h"
 #include "bitmap.h"
 #include "dce.h"
+#include "hashtab.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "except.h"
 #include "regs.h"
diff --git a/gcc/lra-assigns.c b/gcc/lra-assigns.c
index c8a2fb1..bd78210 100644
--- a/gcc/lra-assigns.c
+++ b/gcc/lra-assigns.c
@@ -94,6 +94,15 @@ along with GCC; see the file COPYING3.	If not see
 #include "input.h"
 #include "function.h"
 #include "symtab.h"
+#include "flags.h"
+#include "alias.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "predict.h"
 #include "dominance.h"
diff --git a/gcc/lra-coalesce.c b/gcc/lra-coalesce.c
index 7db148f..036ed50 100644
--- a/gcc/lra-coalesce.c
+++ b/gcc/lra-coalesce.c
@@ -61,6 +61,14 @@ along with GCC; see the file COPYING3.	If not see
 #include "input.h"
 #include "function.h"
 #include "symtab.h"
+#include "alias.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "predict.h"
 #include "dominance.h"
diff --git a/gcc/lra-constraints.c b/gcc/lra-constraints.c
index 5bd8e7c..274bbcd 100644
--- a/gcc/lra-constraints.c
+++ b/gcc/lra-constraints.c
@@ -127,6 +127,15 @@
 #include "input.h"
 #include "function.h"
 #include "symtab.h"
+#include "flags.h"
+#include "alias.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "predict.h"
 #include "dominance.h"
diff --git a/gcc/lra-eliminations.c b/gcc/lra-eliminations.c
index a591de6..7c5d031 100644
--- a/gcc/lra-eliminations.c
+++ b/gcc/lra-eliminations.c
@@ -72,6 +72,15 @@ along with GCC; see the file COPYING3.	If not see
 #include "input.h"
 #include "function.h"
 #include "symtab.h"
+#include "flags.h"
+#include "alias.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "predict.h"
 #include "dominance.h"
diff --git a/gcc/lra-lives.c b/gcc/lra-lives.c
index bd7e159..465d5c8 100644
--- a/gcc/lra-lives.c
+++ b/gcc/lra-lives.c
@@ -43,6 +43,15 @@ along with GCC; see the file COPYING3.	If not see
 #include "input.h"
 #include "function.h"
 #include "symtab.h"
+#include "flags.h"
+#include "alias.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "predict.h"
 #include "dominance.h"
diff --git a/gcc/lra-remat.c b/gcc/lra-remat.c
index a32ecca..6485f4f 100644
--- a/gcc/lra-remat.c
+++ b/gcc/lra-remat.c
@@ -72,6 +72,15 @@ along with GCC; see the file COPYING3.	If not see
 #include "input.h"
 #include "function.h"
 #include "symtab.h"
+#include "flags.h"
+#include "alias.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "predict.h"
 #include "dominance.h"
@@ -82,7 +91,6 @@ along with GCC; see the file COPYING3.	If not see
 #include "ira.h"
 #include "sparseset.h"
 #include "params.h"
-#include "df.h"
 #include "lra-int.h"
 
 /* Number of candidates for rematerialization.  */
diff --git a/gcc/lra-spills.c b/gcc/lra-spills.c
index a42a1b3..8694a85 100644
--- a/gcc/lra-spills.c
+++ b/gcc/lra-spills.c
@@ -74,6 +74,14 @@ along with GCC; see the file COPYING3.	If not see
 #include "input.h"
 #include "function.h"
 #include "symtab.h"
+#include "alias.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "predict.h"
 #include "dominance.h"
diff --git a/gcc/lra.c b/gcc/lra.c
index d0a1000..9057b91 100644
--- a/gcc/lra.c
+++ b/gcc/lra.c
@@ -125,6 +125,14 @@ along with GCC; see the file COPYING3.	If not see
 #include "inchash.h"
 #include "tree.h"
 #include "optabs.h"
+#include "alias.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "predict.h"
 #include "dominance.h"
diff --git a/gcc/lto-cgraph.c b/gcc/lto-cgraph.c
index 6c6501a..2254f56 100644
--- a/gcc/lto-cgraph.c
+++ b/gcc/lto-cgraph.c
@@ -38,7 +38,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "stringpool.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "basic-block.h"
 #include "tree-ssa-alias.h"
@@ -46,8 +45,17 @@ along with GCC; see the file COPYING3.  If not see
 #include "gimple-expr.h"
 #include "is-a.h"
 #include "gimple.h"
-#include "expr.h"
+#include "hashtab.h"
+#include "rtl.h"
 #include "flags.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expr.h"
 #include "params.h"
 #include "langhooks.h"
 #include "bitmap.h"
diff --git a/gcc/lto-section-in.c b/gcc/lto-section-in.c
index 432e3dd..0499ead 100644
--- a/gcc/lto-section-in.c
+++ b/gcc/lto-section-in.c
@@ -36,7 +36,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "fold-const.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "basic-block.h"
 #include "tree-ssa-alias.h"
@@ -44,8 +43,17 @@ along with GCC; see the file COPYING3.  If not see
 #include "gimple-expr.h"
 #include "is-a.h"
 #include "gimple.h"
-#include "expr.h"
+#include "hashtab.h"
+#include "rtl.h"
 #include "flags.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expr.h"
 #include "params.h"
 #include "diagnostic-core.h"
 #include "except.h"
diff --git a/gcc/lto-section-out.c b/gcc/lto-section-out.c
index 63dda15..ef35afb 100644
--- a/gcc/lto-section-out.c
+++ b/gcc/lto-section-out.c
@@ -36,7 +36,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "fold-const.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "basic-block.h"
 #include "tree-ssa-alias.h"
@@ -44,6 +43,16 @@ along with GCC; see the file COPYING3.  If not see
 #include "gimple-expr.h"
 #include "is-a.h"
 #include "gimple.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "flags.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "params.h"
 #include "except.h"
diff --git a/gcc/lto-streamer-in.c b/gcc/lto-streamer-in.c
index 4540c83..e7629f8 100644
--- a/gcc/lto-streamer-in.c
+++ b/gcc/lto-streamer-in.c
@@ -37,13 +37,21 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree.h"
 #include "fold-const.h"
 #include "stringpool.h"
-#include "expr.h"
+#include "hashtab.h"
+#include "hard-reg-set.h"
+#include "function.h"
+#include "rtl.h"
 #include "flags.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expr.h"
 #include "params.h"
-#include "input.h"
 #include "predict.h"
-#include "hard-reg-set.h"
-#include "function.h"
 #include "dominance.h"
 #include "cfg.h"
 #include "basic-block.h"
@@ -72,7 +80,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "gimple-streamer.h"
 #include "lto-streamer.h"
 #include "tree-streamer.h"
-#include "tree-pass.h"
 #include "streamer-hooks.h"
 #include "cfgloop.h"
 
diff --git a/gcc/lto-streamer-out.c b/gcc/lto-streamer-out.c
index 21a78bb..9c368f0 100644
--- a/gcc/lto-streamer-out.c
+++ b/gcc/lto-streamer-out.c
@@ -37,13 +37,21 @@ along with GCC; see the file COPYING3.  If not see
 #include "fold-const.h"
 #include "stor-layout.h"
 #include "stringpool.h"
-#include "expr.h"
+#include "hashtab.h"
+#include "hard-reg-set.h"
+#include "function.h"
+#include "rtl.h"
 #include "flags.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expr.h"
 #include "params.h"
-#include "input.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/modulo-sched.c b/gcc/modulo-sched.c
index 240ae27..2fced43 100644
--- a/gcc/modulo-sched.c
+++ b/gcc/modulo-sched.c
@@ -48,11 +48,7 @@ along with GCC; see the file COPYING3.  If not see
 #include "sched-int.h"
 #include "target.h"
 #include "cfgloop.h"
-#include "hash-set.h"
-#include "machmode.h"
-#include "vec.h"
 #include "double-int.h"
-#include "input.h"
 #include "alias.h"
 #include "symtab.h"
 #include "wide-int.h"
@@ -60,6 +56,12 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree.h"
 #include "insn-codes.h"
 #include "optabs.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "params.h"
 #include "gcov-io.h"
diff --git a/gcc/omp-low.c b/gcc/omp-low.c
index eaad52a..918eff6 100644
--- a/gcc/omp-low.c
+++ b/gcc/omp-low.c
@@ -41,7 +41,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "rtl.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -71,11 +70,18 @@ along with GCC; see the file COPYING3.  If not see
 #include "ssa-iterators.h"
 #include "tree-ssanames.h"
 #include "tree-into-ssa.h"
+#include "hashtab.h"
+#include "flags.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "tree-dfa.h"
 #include "tree-ssa.h"
-#include "flags.h"
-#include "expr.h"
 #include "tree-pass.h"
 #include "except.h"
 #include "splay-tree.h"
diff --git a/gcc/optabs.c b/gcc/optabs.c
index 615199a..d6432e2 100644
--- a/gcc/optabs.c
+++ b/gcc/optabs.c
@@ -45,9 +45,15 @@ along with GCC; see the file COPYING3.  If not see
 #include "tm_p.h"
 #include "flags.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "except.h"
+#include "hashtab.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
diff --git a/gcc/passes.c b/gcc/passes.c
index 52dc067..7cd8ad9 100644
--- a/gcc/passes.c
+++ b/gcc/passes.c
@@ -32,7 +32,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "machmode.h"
 #include "vec.h"
 #include "double-int.h"
-#include "input.h"
 #include "alias.h"
 #include "symtab.h"
 #include "wide-int.h"
@@ -52,6 +51,13 @@ along with GCC; see the file COPYING3.  If not see
 #include "except.h"
 #include "function.h"
 #include "toplev.h"
+#include "hashtab.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "predict.h"
 #include "basic-block.h"
diff --git a/gcc/postreload-gcse.c b/gcc/postreload-gcse.c
index 8d82632..1b5c3b8 100644
--- a/gcc/postreload-gcse.c
+++ b/gcc/postreload-gcse.c
@@ -42,13 +42,19 @@ along with GCC; see the file COPYING3.  If not see
 #include "insn-config.h"
 #include "recog.h"
 #include "predict.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
 #include "cfgrtl.h"
 #include "basic-block.h"
 #include "profile.h"
+#include "hashtab.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "except.h"
 #include "intl.h"
diff --git a/gcc/postreload.c b/gcc/postreload.c
index 67d02d0..db0b635 100644
--- a/gcc/postreload.c
+++ b/gcc/postreload.c
@@ -35,6 +35,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "input.h"
 #include "function.h"
 #include "symtab.h"
+#include "alias.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
@@ -51,10 +59,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "cselib.h"
 #include "diagnostic-core.h"
 #include "except.h"
-#include "double-int.h"
-#include "input.h"
-#include "alias.h"
-#include "symtab.h"
 #include "wide-int.h"
 #include "inchash.h"
 #include "tree.h"
diff --git a/gcc/predict.c b/gcc/predict.c
index 9793897..649c24d 100644
--- a/gcc/predict.c
+++ b/gcc/predict.c
@@ -47,7 +47,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "tm_p.h"
 #include "hard-reg-set.h"
 #include "predict.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -60,6 +59,13 @@ along with GCC; see the file COPYING3.  If not see
 #include "except.h"
 #include "diagnostic-core.h"
 #include "recog.h"
+#include "hashtab.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "coverage.h"
 #include "sreal.h"
@@ -84,7 +90,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-ssa-loop.h"
 #include "tree-pass.h"
 #include "tree-scalar-evolution.h"
-#include "cfgloop.h"
 
 /* real constants: 0, 1, 1-1/REG_BR_PROB_BASE, REG_BR_PROB_BASE,
 		   1/REG_BR_PROB_BASE, 0.5, BB_FREQ_MAX.  */
diff --git a/gcc/profile.c b/gcc/profile.c
index 86a7094..e32dd26 100644
--- a/gcc/profile.c
+++ b/gcc/profile.c
@@ -55,7 +55,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "flags.h"
 #include "regs.h"
 #include "symtab.h"
-#include "expr.h"
 #include "hashtab.h"
 #include "hash-set.h"
 #include "vec.h"
@@ -63,6 +62,16 @@ along with GCC; see the file COPYING3.  If not see
 #include "hard-reg-set.h"
 #include "input.h"
 #include "function.h"
+#include "insn-config.h"
+#include "alias.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expr.h"
 #include "predict.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -71,7 +80,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "diagnostic-core.h"
 #include "coverage.h"
 #include "value-prof.h"
-#include "symtab.h"
 #include "inchash.h"
 #include "tree.h"
 #include "fold-const.h"
diff --git a/gcc/recog.c b/gcc/recog.c
index cf7f48d..c243749 100644
--- a/gcc/recog.c
+++ b/gcc/recog.c
@@ -40,10 +40,17 @@ along with GCC; see the file COPYING3.  If not see
 #include "recog.h"
 #include "regs.h"
 #include "addresses.h"
-#include "expr.h"
-#include "input.h"
+#include "hashtab.h"
 #include "function.h"
+#include "rtl.h"
 #include "flags.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expr.h"
 #include "predict.h"
 #include "dominance.h"
 #include "cfg.h"
diff --git a/gcc/ree.c b/gcc/ree.c
index bf872a2..938d8ea 100644
--- a/gcc/ree.c
+++ b/gcc/ree.c
@@ -235,14 +235,19 @@ along with GCC; see the file COPYING3.  If not see
 #include "regs.h"
 #include "hard-reg-set.h"
 #include "predict.h"
-#include "machmode.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
 #include "cfgrtl.h"
 #include "basic-block.h"
 #include "insn-config.h"
+#include "hashtab.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "insn-attr.h"
 #include "recog.h"
diff --git a/gcc/reginfo.c b/gcc/reginfo.c
index 407d61b..f254d2c 100644
--- a/gcc/reginfo.c
+++ b/gcc/reginfo.c
@@ -41,18 +41,24 @@ along with GCC; see the file COPYING3.  If not see
 #include "inchash.h"
 #include "tree.h"
 #include "rtl.h"
+#include "hashtab.h"
+#include "function.h"
+#include "flags.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "tm_p.h"
-#include "flags.h"
 #include "predict.h"
-#include "input.h"
-#include "function.h"
 #include "dominance.h"
 #include "cfg.h"
 #include "basic-block.h"
 #include "regs.h"
 #include "addresses.h"
-#include "insn-config.h"
 #include "recog.h"
 #include "reload.h"
 #include "diagnostic-core.h"
diff --git a/gcc/reload.c b/gcc/reload.c
index b7b91cd..de25017 100644
--- a/gcc/reload.c
+++ b/gcc/reload.c
@@ -96,6 +96,23 @@ a register with any other reload.  */
 #include "tm_p.h"
 #include "insn-config.h"
 #include "symtab.h"
+#include "hashtab.h"
+#include "hash-set.h"
+#include "vec.h"
+#include "machmode.h"
+#include "hard-reg-set.h"
+#include "input.h"
+#include "function.h"
+#include "rtl.h"
+#include "flags.h"
+#include "alias.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
@@ -108,14 +125,6 @@ a register with any other reload.  */
 #include "reload.h"
 #include "regs.h"
 #include "addresses.h"
-#include "hard-reg-set.h"
-#include "flags.h"
-#include "hashtab.h"
-#include "hash-set.h"
-#include "vec.h"
-#include "machmode.h"
-#include "input.h"
-#include "function.h"
 #include "params.h"
 #include "target.h"
 #include "ira.h"
diff --git a/gcc/reload1.c b/gcc/reload1.c
index b1af1a4..5f9b704 100644
--- a/gcc/reload1.c
+++ b/gcc/reload1.c
@@ -36,6 +36,15 @@ along with GCC; see the file COPYING3.  If not see
 #include "input.h"
 #include "function.h"
 #include "symtab.h"
+#include "rtl.h"
+#include "alias.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
@@ -51,13 +60,11 @@ along with GCC; see the file COPYING3.  If not see
 #include "reload.h"
 #include "recog.h"
 #include "except.h"
-#include "symtab.h"
 #include "wide-int.h"
 #include "inchash.h"
 #include "tree.h"
 #include "ira.h"
 #include "target.h"
-#include "emit-rtl.h"
 #include "dumpfile.h"
 #include "rtl-iter.h"
 
diff --git a/gcc/reorg.c b/gcc/reorg.c
index 043ba4b..aeb06b2 100644
--- a/gcc/reorg.c
+++ b/gcc/reorg.c
@@ -108,7 +108,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "rtl.h"
 #include "tm_p.h"
 #include "symtab.h"
-#include "expr.h"
 #include "hashtab.h"
 #include "hash-set.h"
 #include "vec.h"
@@ -116,7 +115,17 @@ along with GCC; see the file COPYING3.  If not see
 #include "hard-reg-set.h"
 #include "input.h"
 #include "function.h"
+#include "flags.h"
 #include "insn-config.h"
+#include "alias.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expr.h"
 #include "conditions.h"
 #include "predict.h"
 #include "dominance.h"
@@ -124,7 +133,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "basic-block.h"
 #include "regs.h"
 #include "recog.h"
-#include "flags.h"
 #include "obstack.h"
 #include "insn-attr.h"
 #include "resource.h"
@@ -132,7 +140,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "params.h"
 #include "target.h"
 #include "tree-pass.h"
-#include "emit-rtl.h"
 
 #ifdef DELAY_SLOTS
 
diff --git a/gcc/rtl-chkp.c b/gcc/rtl-chkp.c
index 524b3ba..097de67 100644
--- a/gcc/rtl-chkp.c
+++ b/gcc/rtl-chkp.c
@@ -22,6 +22,25 @@ along with GCC; see the file COPYING3.  If not see
 #include "system.h"
 #include "coretypes.h"
 #include "symtab.h"
+#include "hashtab.h"
+#include "hash-set.h"
+#include "vec.h"
+#include "machmode.h"
+#include "tm.h"
+#include "hard-reg-set.h"
+#include "input.h"
+#include "function.h"
+#include "rtl.h"
+#include "flags.h"
+#include "insn-config.h"
+#include "alias.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "target.h"
 #include "tree-ssa-alias.h"
@@ -29,13 +48,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "is-a.h"
 #include "predict.h"
 #include "basic-block.h"
-#include "hash-set.h"
-#include "machmode.h"
-#include "vec.h"
-#include "double-int.h"
-#include "input.h"
-#include "alias.h"
-#include "symtab.h"
 #include "wide-int.h"
 #include "inchash.h"
 #include "tree.h"
diff --git a/gcc/rtlhooks.c b/gcc/rtlhooks.c
index efb1513..a493ffd 100644
--- a/gcc/rtlhooks.c
+++ b/gcc/rtlhooks.c
@@ -24,6 +24,23 @@ along with GCC; see the file COPYING3.  If not see
 #include "rtl.h"
 #include "rtlhooks-def.h"
 #include "symtab.h"
+#include "hashtab.h"
+#include "hash-set.h"
+#include "vec.h"
+#include "machmode.h"
+#include "hard-reg-set.h"
+#include "input.h"
+#include "function.h"
+#include "flags.h"
+#include "insn-config.h"
+#include "alias.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "recog.h"
 \f
diff --git a/gcc/shrink-wrap.c b/gcc/shrink-wrap.c
index 0c7a64c..59587d4 100644
--- a/gcc/shrink-wrap.c
+++ b/gcc/shrink-wrap.c
@@ -41,14 +41,21 @@ along with GCC; see the file COPYING3.  If not see
 #include "flags.h"
 #include "except.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
 #include "libfuncs.h"
 #include "regs.h"
-#include "insn-config.h"
 #include "recog.h"
 #include "output.h"
 #include "tm_p.h"
diff --git a/gcc/simplify-rtx.c b/gcc/simplify-rtx.c
index b1dbc25..76fc20a 100644
--- a/gcc/simplify-rtx.c
+++ b/gcc/simplify-rtx.c
@@ -41,10 +41,16 @@ along with GCC; see the file COPYING3.  If not see
 #include "flags.h"
 #include "insn-config.h"
 #include "recog.h"
-#include "input.h"
 #include "function.h"
 #include "insn-codes.h"
 #include "optabs.h"
+#include "hashtab.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "diagnostic-core.h"
 #include "ggc.h"
diff --git a/gcc/stack-ptr-mod.c b/gcc/stack-ptr-mod.c
index 4f74ed3..3f0ed4a 100644
--- a/gcc/stack-ptr-mod.c
+++ b/gcc/stack-ptr-mod.c
@@ -33,16 +33,23 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree.h"
 #include "rtl.h"
 #include "regs.h"
+#include "hashtab.h"
+#include "hard-reg-set.h"
+#include "function.h"
+#include "flags.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "tree-pass.h"
 #include "predict.h"
-#include "hard-reg-set.h"
-#include "input.h"
-#include "function.h"
 #include "dominance.h"
 #include "cfg.h"
 #include "basic-block.h"
-#include "flags.h"
 #include "output.h"
 #include "df.h"
 
diff --git a/gcc/stmt.c b/gcc/stmt.c
index 845c789..e3a411d 100644
--- a/gcc/stmt.c
+++ b/gcc/stmt.c
@@ -45,9 +45,15 @@ along with GCC; see the file COPYING3.  If not see
 #include "tm_p.h"
 #include "flags.h"
 #include "except.h"
-#include "input.h"
 #include "function.h"
 #include "insn-config.h"
+#include "hashtab.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "libfuncs.h"
 #include "recog.h"
diff --git a/gcc/stmt.h b/gcc/stmt.h
index 312361f..89e2930 100644
--- a/gcc/stmt.h
+++ b/gcc/stmt.h
@@ -31,4 +31,10 @@ extern tree resolve_asm_operand_names (tree, tree, tree, tree);
 extern tree tree_overlaps_hard_reg_set (tree, HARD_REG_SET *);
 #endif
 
+/* Expand a GIMPLE_SWITCH statement.  */
+extern void expand_case (gswitch *);
+
+/* Like expand_case but special-case for SJLJ exception dispatching.  */
+extern void expand_sjlj_dispatch_table (rtx, vec<tree> );
+
 #endif  // GCC_STMT_H
diff --git a/gcc/stor-layout.c b/gcc/stor-layout.c
index 8bcee59..b43aeb5 100644
--- a/gcc/stor-layout.c
+++ b/gcc/stor-layout.c
@@ -41,8 +41,15 @@ along with GCC; see the file COPYING3.  If not see
 #include "tm_p.h"
 #include "flags.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
+#include "hashtab.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "diagnostic-core.h"
 #include "target.h"
diff --git a/gcc/store-motion.c b/gcc/store-motion.c
index 821d756..96ac46c 100644
--- a/gcc/store-motion.c
+++ b/gcc/store-motion.c
@@ -42,7 +42,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "insn-config.h"
 #include "recog.h"
 #include "predict.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -51,6 +50,13 @@ along with GCC; see the file COPYING3.  If not see
 #include "lcm.h"
 #include "cfgcleanup.h"
 #include "basic-block.h"
+#include "hashtab.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "except.h"
 #include "ggc.h"
diff --git a/gcc/target-globals.c b/gcc/target-globals.c
index acd23b9..76b69d4 100644
--- a/gcc/target-globals.c
+++ b/gcc/target-globals.c
@@ -41,6 +41,13 @@ along with GCC; see the file COPYING3.  If not see
 #include "hard-reg-set.h"
 #include "reload.h"
 #include "expmed.h"
+#include "hashtab.h"
+#include "function.h"
+#include "emit-rtl.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
diff --git a/gcc/targhooks.c b/gcc/targhooks.c
index 9b1657f..e8c35ce 100644
--- a/gcc/targhooks.c
+++ b/gcc/targhooks.c
@@ -53,7 +53,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "machmode.h"
 #include "rtl.h"
 #include "hash-set.h"
-#include "machmode.h"
 #include "vec.h"
 #include "double-int.h"
 #include "input.h"
@@ -65,12 +64,20 @@ along with GCC; see the file COPYING3.  If not see
 #include "fold-const.h"
 #include "stor-layout.h"
 #include "varasm.h"
+#include "hashtab.h"
+#include "hard-reg-set.h"
+#include "function.h"
+#include "flags.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "output.h"
 #include "diagnostic-core.h"
-#include "hard-reg-set.h"
-#include "input.h"
-#include "function.h"
 #include "target.h"
 #include "tm_p.h"
 #include "target-def.h"
diff --git a/gcc/toplev.c b/gcc/toplev.c
index 76c41c3..27f982d 100644
--- a/gcc/toplev.c
+++ b/gcc/toplev.c
@@ -32,7 +32,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "machmode.h"
 #include "vec.h"
 #include "double-int.h"
-#include "input.h"
 #include "alias.h"
 #include "symtab.h"
 #include "wide-int.h"
@@ -55,6 +54,10 @@ along with GCC; see the file COPYING3.  If not see
 #include "except.h"
 #include "function.h"
 #include "toplev.h"
+#include "hashtab.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
 #include "expr.h"
 #include "intl.h"
 #include "regs.h"
diff --git a/gcc/tree-affine.c b/gcc/tree-affine.c
index 6ba3576..2daae55 100644
--- a/gcc/tree-affine.c
+++ b/gcc/tree-affine.c
@@ -32,14 +32,23 @@ along with GCC; see the file COPYING3.  If not see
 #include "inchash.h"
 #include "tree.h"
 #include "fold-const.h"
+#include "hashtab.h"
+#include "tm.h"
+#include "hard-reg-set.h"
+#include "function.h"
+#include "rtl.h"
+#include "flags.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "tree-pretty-print.h"
 #include "tree-affine.h"
 #include "predict.h"
-#include "tm.h"
-#include "hard-reg-set.h"
-#include "input.h"
-#include "function.h"
 #include "basic-block.h"
 #include "tree-ssa-alias.h"
 #include "internal-fn.h"
@@ -47,7 +56,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "is-a.h"
 #include "gimple.h"
 #include "gimplify.h"
-#include "flags.h"
 #include "dumpfile.h"
 #include "cfgexpand.h"
 #include "wide-int-print.h"
diff --git a/gcc/tree-cfg.c b/gcc/tree-cfg.c
index a9a2c2f..b522fe3 100644
--- a/gcc/tree-cfg.c
+++ b/gcc/tree-cfg.c
@@ -41,7 +41,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "tm_p.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -71,6 +70,15 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-ssa-loop-manip.h"
 #include "tree-ssa-loop-niter.h"
 #include "tree-into-ssa.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "tree-dfa.h"
 #include "tree-ssa.h"
@@ -86,7 +94,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-ssa-live.h"
 #include "omp-low.h"
 #include "tree-cfgcleanup.h"
-#include "wide-int.h"
 #include "wide-int-print.h"
 
 /* This file contains functions for building the Control Flow Graph (CFG)
diff --git a/gcc/tree-cfgcleanup.c b/gcc/tree-cfgcleanup.c
index d712b30..bdcbb18 100644
--- a/gcc/tree-cfgcleanup.c
+++ b/gcc/tree-cfgcleanup.c
@@ -35,7 +35,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "tm_p.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -60,6 +59,15 @@ along with GCC; see the file COPYING3.  If not see
 #include "stringpool.h"
 #include "tree-ssanames.h"
 #include "tree-ssa-loop-manip.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "tree-dfa.h"
 #include "tree-ssa.h"
diff --git a/gcc/tree-chkp-opt.c b/gcc/tree-chkp-opt.c
index aed2c80..8346a46 100644
--- a/gcc/tree-chkp-opt.c
+++ b/gcc/tree-chkp-opt.c
@@ -58,6 +58,19 @@ along with GCC; see the file COPYING3.  If not see
 #include "gimple-iterator.h"
 #include "gimplify.h"
 #include "gimplify-me.h"
+#include "hashtab.h"
+#include "tm.h"
+#include "hard-reg-set.h"
+#include "function.h"
+#include "rtl.h"
+#include "flags.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "tree-chkp.h"
 #include "ipa-chkp.h"
diff --git a/gcc/tree-chkp.c b/gcc/tree-chkp.c
index c606040..59c09a6 100644
--- a/gcc/tree-chkp.c
+++ b/gcc/tree-chkp.c
@@ -65,6 +65,19 @@ along with GCC; see the file COPYING3.  If not see
 #include "gimplify.h"
 #include "gimplify-me.h"
 #include "print-tree.h"
+#include "hashtab.h"
+#include "tm.h"
+#include "hard-reg-set.h"
+#include "function.h"
+#include "rtl.h"
+#include "flags.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "tree-ssa-propagate.h"
 #include "gimple-fold.h"
@@ -77,8 +90,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "cgraph.h"
 #include "ipa-chkp.h"
 #include "params.h"
-#include "ipa-chkp.h"
-#include "params.h"
 
 /*  Pointer Bounds Checker instruments code with memory checks to find
     out-of-bounds memory accesses.  Checks are performed by computing
diff --git a/gcc/tree-complex.c b/gcc/tree-complex.c
index 69559b7..66b12de 100644
--- a/gcc/tree-complex.c
+++ b/gcc/tree-complex.c
@@ -37,7 +37,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "flags.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -57,6 +56,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "ssa-iterators.h"
 #include "stringpool.h"
 #include "tree-ssanames.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "tree-dfa.h"
 #include "tree-ssa.h"
diff --git a/gcc/tree-data-ref.c b/gcc/tree-data-ref.c
index 5c42e57..97d89bb 100644
--- a/gcc/tree-data-ref.c
+++ b/gcc/tree-data-ref.c
@@ -88,13 +88,22 @@ along with GCC; see the file COPYING3.  If not see
 #include "inchash.h"
 #include "tree.h"
 #include "fold-const.h"
-#include "expr.h"
-#include "gimple-pretty-print.h"
-#include "predict.h"
+#include "hashtab.h"
 #include "tm.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
+#include "rtl.h"
+#include "flags.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expr.h"
+#include "gimple-pretty-print.h"
+#include "predict.h"
 #include "dominance.h"
 #include "cfg.h"
 #include "basic-block.h"
diff --git a/gcc/tree-dfa.c b/gcc/tree-dfa.c
index adf5ad3..cd35be7 100644
--- a/gcc/tree-dfa.c
+++ b/gcc/tree-dfa.c
@@ -38,7 +38,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "tm_p.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -58,12 +57,19 @@ along with GCC; see the file COPYING3.  If not see
 #include "ssa-iterators.h"
 #include "stringpool.h"
 #include "tree-ssanames.h"
+#include "rtl.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "tree-dfa.h"
 #include "tree-inline.h"
 #include "tree-pass.h"
 #include "params.h"
-#include "wide-int.h"
 
 /* Build and maintain data flow information for trees.  */
 
diff --git a/gcc/tree-eh.c b/gcc/tree-eh.c
index e9bf3f1..8f0b510 100644
--- a/gcc/tree-eh.c
+++ b/gcc/tree-eh.c
@@ -33,12 +33,20 @@ along with GCC; see the file COPYING3.  If not see
 #include "inchash.h"
 #include "tree.h"
 #include "fold-const.h"
-#include "expr.h"
-#include "calls.h"
-#include "flags.h"
+#include "hashtab.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
+#include "rtl.h"
+#include "flags.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expr.h"
+#include "calls.h"
 #include "except.h"
 #include "predict.h"
 #include "dominance.h"
diff --git a/gcc/tree-if-conv.c b/gcc/tree-if-conv.c
index 96b86a8..1cd2a9e 100644
--- a/gcc/tree-if-conv.c
+++ b/gcc/tree-if-conv.c
@@ -99,7 +99,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "flags.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -130,6 +129,15 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-ssa-address.h"
 #include "tree-pass.h"
 #include "dbgcnt.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
diff --git a/gcc/tree-inline.c b/gcc/tree-inline.c
index 4a47fd2..2dccf8e 100644
--- a/gcc/tree-inline.c
+++ b/gcc/tree-inline.c
@@ -39,14 +39,10 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-inline.h"
 #include "flags.h"
 #include "params.h"
-#include "input.h"
 #include "insn-config.h"
 #include "hashtab.h"
 #include "langhooks.h"
 #include "predict.h"
-#include "vec.h"
-#include "hash-set.h"
-#include "machmode.h"
 #include "hard-reg-set.h"
 #include "function.h"
 #include "dominance.h"
@@ -73,6 +69,13 @@ along with GCC; see the file COPYING3.  If not see
 #include "stringpool.h"
 #include "tree-ssanames.h"
 #include "tree-into-ssa.h"
+#include "rtl.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "tree-dfa.h"
 #include "tree-ssa.h"
diff --git a/gcc/tree-into-ssa.c b/gcc/tree-into-ssa.c
index a7bff1e..2a8f08e 100644
--- a/gcc/tree-into-ssa.c
+++ b/gcc/tree-into-ssa.c
@@ -38,7 +38,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "langhooks.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -59,6 +58,15 @@ along with GCC; see the file COPYING3.  If not see
 #include "stringpool.h"
 #include "tree-ssanames.h"
 #include "tree-into-ssa.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "tree-dfa.h"
 #include "tree-ssa.h"
@@ -68,7 +76,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "domwalk.h"
 #include "params.h"
 #include "diagnostic-core.h"
-#include "tree-into-ssa.h"
 
 #define PERCENT(x,y) ((float)(x) * 100.0 / (float)(y))
 
diff --git a/gcc/tree-nested.c b/gcc/tree-nested.c
index 08b9cea..b2f7f62 100644
--- a/gcc/tree-nested.c
+++ b/gcc/tree-nested.c
@@ -36,7 +36,6 @@
 #include "stor-layout.h"
 #include "tm_p.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "tree-dump.h"
 #include "tree-inline.h"
@@ -57,6 +56,16 @@
 #include "ipa-ref.h"
 #include "cgraph.h"
 #include "tree-cfg.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "flags.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"	/* FIXME: For STACK_SAVEAREA_MODE and SAVE_NONLOCAL.  */
 #include "langhooks.h"
 #include "gimple-low.h"
diff --git a/gcc/tree-outof-ssa.c b/gcc/tree-outof-ssa.c
index af397ad..023529f 100644
--- a/gcc/tree-outof-ssa.c
+++ b/gcc/tree-outof-ssa.c
@@ -36,7 +36,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "stor-layout.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -68,6 +67,16 @@ along with GCC; see the file COPYING3.  If not see
 
 /* FIXME: A lot of code here deals with expanding to RTL.  All that code
    should be in cfgexpand.c.  */
+#include "hashtab.h"
+#include "rtl.h"
+#include "flags.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 
 /* Return TRUE if expression STMT is suitable for replacement.  */
diff --git a/gcc/tree-predcom.c b/gcc/tree-predcom.c
index 0e4d768..67150fa 100644
--- a/gcc/tree-predcom.c
+++ b/gcc/tree-predcom.c
@@ -203,7 +203,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "cfgloop.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -227,6 +226,16 @@ 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 "hashtab.h"
+#include "rtl.h"
+#include "flags.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "tree-dfa.h"
 #include "tree-ssa.h"
diff --git a/gcc/tree-pretty-print.c b/gcc/tree-pretty-print.c
index 73a61f1..8882edd 100644
--- a/gcc/tree-pretty-print.c
+++ b/gcc/tree-pretty-print.c
@@ -33,6 +33,18 @@ along with GCC; see the file COPYING3.  If not see
 #include "inchash.h"
 #include "tree.h"
 #include "stor-layout.h"
+#include "hashtab.h"
+#include "hard-reg-set.h"
+#include "function.h"
+#include "rtl.h"
+#include "flags.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "tree-pretty-print.h"
 #include "gimple-expr.h"
@@ -40,9 +52,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "hash-map.h"
 #include "is-a.h"
 #include "plugin-api.h"
-#include "hard-reg-set.h"
-#include "input.h"
-#include "function.h"
 #include "ipa-ref.h"
 #include "cgraph.h"
 #include "langhooks.h"
diff --git a/gcc/tree-scalar-evolution.c b/gcc/tree-scalar-evolution.c
index d4b246e..d5b4147 100644
--- a/gcc/tree-scalar-evolution.c
+++ b/gcc/tree-scalar-evolution.c
@@ -268,13 +268,22 @@ along with GCC; see the file COPYING3.  If not see
 #include "inchash.h"
 #include "tree.h"
 #include "fold-const.h"
-#include "expr.h"
-#include "gimple-pretty-print.h"
-#include "predict.h"
+#include "hashtab.h"
 #include "tm.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
+#include "rtl.h"
+#include "flags.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expr.h"
+#include "gimple-pretty-print.h"
+#include "predict.h"
 #include "dominance.h"
 #include "cfg.h"
 #include "basic-block.h"
@@ -304,7 +313,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "params.h"
 #include "tree-ssa-propagate.h"
 #include "gimple-fold.h"
-#include "gimplify-me.h"
 
 static tree analyze_scalar_evolution_1 (struct loop *, tree, tree);
 static tree analyze_scalar_evolution_for_address_of (struct loop *loop,
diff --git a/gcc/tree-sra.c b/gcc/tree-sra.c
index f560fe0..f1157dd 100644
--- a/gcc/tree-sra.c
+++ b/gcc/tree-sra.c
@@ -91,7 +91,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "fold-const.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -114,6 +113,16 @@ along with GCC; see the file COPYING3.  If not see
 #include "ssa-iterators.h"
 #include "stringpool.h"
 #include "tree-ssanames.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "flags.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "tree-dfa.h"
 #include "tree-ssa.h"
@@ -123,10 +132,8 @@ along with GCC; see the file COPYING3.  If not see
 #include "cgraph.h"
 #include "symbol-summary.h"
 #include "ipa-prop.h"
-#include "statistics.h"
 #include "params.h"
 #include "target.h"
-#include "flags.h"
 #include "dbgcnt.h"
 #include "tree-inline.h"
 #include "gimple-pretty-print.h"
diff --git a/gcc/tree-ssa-address.c b/gcc/tree-ssa-address.c
index 444c3a4..e8e52ac 100644
--- a/gcc/tree-ssa-address.c
+++ b/gcc/tree-ssa-address.c
@@ -39,7 +39,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "tm_p.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "basic-block.h"
 #include "tree-pretty-print.h"
@@ -53,20 +52,25 @@ along with GCC; see the file COPYING3.  If not see
 #include "stringpool.h"
 #include "tree-ssanames.h"
 #include "tree-ssa-loop-ivopts.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "flags.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "tree-dfa.h"
 #include "dumpfile.h"
-#include "flags.h"
 #include "tree-inline.h"
 #include "tree-affine.h"
 
 /* FIXME: We compute address costs using RTL.  */
-#include "insn-config.h"
-#include "rtl.h"
 #include "recog.h"
-#include "expr.h"
 #include "target.h"
-#include "expmed.h"
 #include "tree-ssa-address.h"
 
 /* TODO -- handling of symbols (according to Richard Hendersons
diff --git a/gcc/tree-ssa-alias.c b/gcc/tree-ssa-alias.c
index 84938ec..978622c 100644
--- a/gcc/tree-ssa-alias.c
+++ b/gcc/tree-ssa-alias.c
@@ -38,7 +38,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "predict.h"
 
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "basic-block.h"
@@ -56,12 +55,20 @@ along with GCC; see the file COPYING3.  If not see
 #include "gimple-ssa.h"
 #include "stringpool.h"
 #include "tree-ssanames.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "tree-dfa.h"
 #include "tree-inline.h"
 #include "params.h"
 #include "alloc-pool.h"
-#include "tree-ssa-alias.h"
 #include "bitmap.h"
 #include "hash-map.h"
 #include "plugin-api.h"
diff --git a/gcc/tree-ssa-copyrename.c b/gcc/tree-ssa-copyrename.c
index a5ea091..bc2900e 100644
--- a/gcc/tree-ssa-copyrename.c
+++ b/gcc/tree-ssa-copyrename.c
@@ -35,7 +35,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "fold-const.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -52,6 +51,15 @@ along with GCC; see the file COPYING3.  If not see
 #include "gimple-ssa.h"
 #include "stringpool.h"
 #include "tree-ssanames.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "tree-dfa.h"
 #include "tree-inline.h"
diff --git a/gcc/tree-ssa-dce.c b/gcc/tree-ssa-dce.c
index a502293..5a24c36 100644
--- a/gcc/tree-ssa-dce.c
+++ b/gcc/tree-ssa-dce.c
@@ -61,7 +61,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "gimple-pretty-print.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -83,10 +82,19 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-ssanames.h"
 #include "tree-ssa-loop-niter.h"
 #include "tree-into-ssa.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "flags.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "tree-dfa.h"
 #include "tree-pass.h"
-#include "flags.h"
 #include "cfgloop.h"
 #include "tree-scalar-evolution.h"
 #include "tree-chkp.h"
diff --git a/gcc/tree-ssa-dse.c b/gcc/tree-ssa-dse.c
index 514d647..ec906ea 100644
--- a/gcc/tree-ssa-dse.c
+++ b/gcc/tree-ssa-dse.c
@@ -35,7 +35,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "tm_p.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -54,11 +53,20 @@ along with GCC; see the file COPYING3.  If not see
 #include "ssa-iterators.h"
 #include "stringpool.h"
 #include "tree-ssanames.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "flags.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "tree-dfa.h"
 #include "tree-pass.h"
 #include "domwalk.h"
-#include "flags.h"
 #include "langhooks.h"
 #include "tree-cfgcleanup.h"
 
diff --git a/gcc/tree-ssa-forwprop.c b/gcc/tree-ssa-forwprop.c
index 6054ef4..d2f1469 100644
--- a/gcc/tree-ssa-forwprop.c
+++ b/gcc/tree-ssa-forwprop.c
@@ -36,7 +36,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "tm_p.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -58,13 +57,21 @@ along with GCC; see the file COPYING3.  If not see
 #include "ssa-iterators.h"
 #include "stringpool.h"
 #include "tree-ssanames.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "flags.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "tree-dfa.h"
 #include "tree-pass.h"
 #include "langhooks.h"
-#include "flags.h"
 #include "diagnostic.h"
-#include "expr.h"
 #include "cfgloop.h"
 #include "insn-codes.h"
 #include "optabs.h"
diff --git a/gcc/tree-ssa-live.c b/gcc/tree-ssa-live.c
index 6a2b566..6625e3e 100644
--- a/gcc/tree-ssa-live.c
+++ b/gcc/tree-ssa-live.c
@@ -39,7 +39,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "sbitmap.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -55,6 +54,16 @@ along with GCC; see the file COPYING3.  If not see
 #include "ssa-iterators.h"
 #include "stringpool.h"
 #include "tree-ssanames.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "flags.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "tree-dfa.h"
 #include "timevar.h"
@@ -62,7 +71,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-ssa-live.h"
 #include "diagnostic-core.h"
 #include "debug.h"
-#include "flags.h"
 #include "tree-ssa.h"
 
 #ifdef ENABLE_CHECKING
diff --git a/gcc/tree-ssa-loop-ivopts.c b/gcc/tree-ssa-loop-ivopts.c
index cb7eac8..dd06895 100644
--- a/gcc/tree-ssa-loop-ivopts.c
+++ b/gcc/tree-ssa-loop-ivopts.c
@@ -80,7 +80,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "tm_p.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -110,29 +109,35 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-ssa-loop-manip.h"
 #include "tree-ssa-loop-niter.h"
 #include "tree-ssa-loop.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "flags.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "tree-dfa.h"
 #include "tree-ssa.h"
 #include "cfgloop.h"
 #include "tree-pass.h"
-#include "insn-config.h"
 #include "tree-chrec.h"
 #include "tree-scalar-evolution.h"
-#include "cfgloop.h"
 #include "params.h"
 #include "langhooks.h"
 #include "tree-affine.h"
 #include "target.h"
 #include "tree-inline.h"
 #include "tree-ssa-propagate.h"
-#include "expmed.h"
 #include "tree-ssa-address.h"
 #include "builtins.h"
 
 /* FIXME: Expressions are expanded to RTL in this pass to determine the
    cost of different addressing modes.  This should be moved to a TBD
    interface between the GIMPLE and RTL worlds.  */
-#include "expr.h"
 #include "recog.h"
 
 /* The infinite cost.  */
diff --git a/gcc/tree-ssa-loop-niter.c b/gcc/tree-ssa-loop-niter.c
index 7b0313a..8b1308f 100644
--- a/gcc/tree-ssa-loop-niter.c
+++ b/gcc/tree-ssa-loop-niter.c
@@ -33,12 +33,21 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree.h"
 #include "fold-const.h"
 #include "calls.h"
+#include "hashtab.h"
+#include "hard-reg-set.h"
+#include "function.h"
+#include "rtl.h"
+#include "flags.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "tm_p.h"
 #include "predict.h"
-#include "hard-reg-set.h"
-#include "input.h"
-#include "function.h"
 #include "dominance.h"
 #include "cfg.h"
 #include "basic-block.h"
@@ -64,7 +73,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-scalar-evolution.h"
 #include "tree-data-ref.h"
 #include "params.h"
-#include "flags.h"
 #include "diagnostic-core.h"
 #include "tree-inline.h"
 #include "tree-pass.h"
diff --git a/gcc/tree-ssa-loop-prefetch.c b/gcc/tree-ssa-loop-prefetch.c
index ae31b9e..c5f8935 100644
--- a/gcc/tree-ssa-loop-prefetch.c
+++ b/gcc/tree-ssa-loop-prefetch.c
@@ -36,7 +36,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "tm_p.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -70,6 +69,15 @@ along with GCC; see the file COPYING3.  If not see
 
 /* FIXME: Needed for optabs, but this should all be moved to a TBD interface
    between the GIMPLE and RTL worlds.  */
+#include "hashtab.h"
+#include "rtl.h"
+#include "flags.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
diff --git a/gcc/tree-ssa-math-opts.c b/gcc/tree-ssa-math-opts.c
index 350731a..673f63d 100644
--- a/gcc/tree-ssa-math-opts.c
+++ b/gcc/tree-ssa-math-opts.c
@@ -102,7 +102,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "fold-const.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -123,6 +122,15 @@ along with GCC; see the file COPYING3.  If not see
 #include "ssa-iterators.h"
 #include "stringpool.h"
 #include "tree-ssanames.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "tree-dfa.h"
 #include "tree-ssa.h"
diff --git a/gcc/tree-ssa-phiopt.c b/gcc/tree-ssa-phiopt.c
index 209b4eb..0731f91 100644
--- a/gcc/tree-ssa-phiopt.c
+++ b/gcc/tree-ssa-phiopt.c
@@ -38,7 +38,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "tm_p.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -58,6 +57,15 @@ along with GCC; see the file COPYING3.  If not see
 #include "ssa-iterators.h"
 #include "stringpool.h"
 #include "tree-ssanames.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "tree-dfa.h"
 #include "tree-pass.h"
@@ -66,8 +74,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "cfgloop.h"
 #include "tree-data-ref.h"
 #include "gimple-pretty-print.h"
-#include "insn-config.h"
-#include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
 #include "tree-scalar-evolution.h"
diff --git a/gcc/tree-ssa-pre.c b/gcc/tree-ssa-pre.c
index 497890f..9c6ace3 100644
--- a/gcc/tree-ssa-pre.c
+++ b/gcc/tree-ssa-pre.c
@@ -36,7 +36,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "fold-const.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -44,7 +43,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "basic-block.h"
 #include "gimple-pretty-print.h"
 #include "tree-inline.h"
-#include "inchash.h"
 #include "hash-table.h"
 #include "tree-ssa-alias.h"
 #include "internal-fn.h"
@@ -64,6 +62,16 @@ 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 "hashtab.h"
+#include "rtl.h"
+#include "flags.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "tree-dfa.h"
 #include "tree-ssa.h"
@@ -71,7 +79,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "alloc-pool.h"
 #include "obstack.h"
 #include "tree-pass.h"
-#include "flags.h"
 #include "langhooks.h"
 #include "cfgloop.h"
 #include "tree-ssa-sccvn.h"
diff --git a/gcc/tree-ssa-reassoc.c b/gcc/tree-ssa-reassoc.c
index dab6a6f..d7a3616 100644
--- a/gcc/tree-ssa-reassoc.c
+++ b/gcc/tree-ssa-reassoc.c
@@ -39,7 +39,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "stor-layout.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -65,6 +64,15 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-ssanames.h"
 #include "tree-ssa-loop-niter.h"
 #include "tree-ssa-loop.h"
+#include "hashtab.h"
+#include "flags.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "tree-dfa.h"
 #include "tree-ssa.h"
@@ -73,7 +81,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "alloc-pool.h"
 #include "langhooks.h"
 #include "cfgloop.h"
-#include "flags.h"
 #include "target.h"
 #include "params.h"
 #include "diagnostic-core.h"
diff --git a/gcc/tree-ssa-sccvn.c b/gcc/tree-ssa-sccvn.c
index 9aa1bc3..8433b14 100644
--- a/gcc/tree-ssa-sccvn.c
+++ b/gcc/tree-ssa-sccvn.c
@@ -36,7 +36,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "stor-layout.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -47,7 +46,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "hash-table.h"
 #include "tree-ssa-alias.h"
 #include "internal-fn.h"
-#include "inchash.h"
 #include "gimple-fold.h"
 #include "tree-eh.h"
 #include "gimple-expr.h"
@@ -59,12 +57,21 @@ along with GCC; see the file COPYING3.  If not see
 #include "ssa-iterators.h"
 #include "stringpool.h"
 #include "tree-ssanames.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "flags.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "tree-dfa.h"
 #include "tree-ssa.h"
 #include "dumpfile.h"
 #include "alloc-pool.h"
-#include "flags.h"
 #include "cfgloop.h"
 #include "params.h"
 #include "tree-ssa-propagate.h"
diff --git a/gcc/tree-ssa-strlen.c b/gcc/tree-ssa-strlen.c
index 11b9c7d..7624c1b 100644
--- a/gcc/tree-ssa-strlen.c
+++ b/gcc/tree-ssa-strlen.c
@@ -40,7 +40,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "predict.h"
 #include "tm.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -60,6 +59,16 @@ along with GCC; see the file COPYING3.  If not see
 #include "ssa-iterators.h"
 #include "stringpool.h"
 #include "tree-ssanames.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "flags.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "tree-dfa.h"
 #include "tree-pass.h"
@@ -68,7 +77,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-ssa-propagate.h"
 #include "gimple-pretty-print.h"
 #include "params.h"
-#include "expr.h"
 #include "plugin-api.h"
 #include "ipa-ref.h"
 #include "cgraph.h"
diff --git a/gcc/tree-ssa-structalias.c b/gcc/tree-ssa-structalias.c
index 30a493e..10baee1 100644
--- a/gcc/tree-ssa-structalias.c
+++ b/gcc/tree-ssa-structalias.c
@@ -61,6 +61,13 @@
 #include "stringpool.h"
 #include "tree-ssanames.h"
 #include "tree-into-ssa.h"
+#include "rtl.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "tree-dfa.h"
 #include "tree-inline.h"
@@ -69,7 +76,6 @@
 #include "alloc-pool.h"
 #include "splay-tree.h"
 #include "params.h"
-#include "alias.h"
 #include "tree-phinodes.h"
 #include "ssa-iterators.h"
 #include "tree-pretty-print.h"
diff --git a/gcc/tree-switch-conversion.c b/gcc/tree-switch-conversion.c
index 8ac1ea2..70cedc6 100644
--- a/gcc/tree-switch-conversion.c
+++ b/gcc/tree-switch-conversion.c
@@ -44,7 +44,6 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 #include "stor-layout.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -76,6 +75,15 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 #include "langhooks.h"
 
 /* Need to include expr.h and optabs.h for lshift_cheap_p.  */
+#include "hashtab.h"
+#include "rtl.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
diff --git a/gcc/tree-tailcall.c b/gcc/tree-tailcall.c
index 4399bef..3344fe1 100644
--- a/gcc/tree-tailcall.c
+++ b/gcc/tree-tailcall.c
@@ -36,7 +36,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "tm_p.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -54,12 +53,21 @@ along with GCC; see the file COPYING3.  If not see
 #include "stringpool.h"
 #include "tree-ssanames.h"
 #include "tree-into-ssa.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "flags.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "tree-dfa.h"
 #include "gimple-pretty-print.h"
 #include "except.h"
 #include "tree-pass.h"
-#include "flags.h"
 #include "langhooks.h"
 #include "dbgcnt.h"
 #include "target.h"
diff --git a/gcc/tree-vect-data-refs.c b/gcc/tree-vect-data-refs.c
index 85e7c58..6fab374 100644
--- a/gcc/tree-vect-data-refs.c
+++ b/gcc/tree-vect-data-refs.c
@@ -40,7 +40,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "target.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -63,7 +62,6 @@ 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 "dumpfile.h"
 #include "cfgloop.h"
 #include "tree-chrec.h"
 #include "tree-scalar-evolution.h"
@@ -74,6 +72,16 @@ along with GCC; see the file COPYING3.  If not see
 #include "ipa-ref.h"
 #include "cgraph.h"
 /* Need to include rtl.h, expr.h, etc. for optabs.  */
+#include "hashtab.h"
+#include "rtl.h"
+#include "flags.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
diff --git a/gcc/tree-vect-generic.c b/gcc/tree-vect-generic.c
index e7e1622..2670315 100644
--- a/gcc/tree-vect-generic.c
+++ b/gcc/tree-vect-generic.c
@@ -37,7 +37,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "langhooks.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -61,6 +60,15 @@ along with GCC; see the file COPYING3.  If not see
 #include "target.h"
 
 /* Need to include rtl.h, expr.h, etc. for optabs.  */
+#include "hashtab.h"
+#include "rtl.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
diff --git a/gcc/tree-vect-loop.c b/gcc/tree-vect-loop.c
index 670fe9d..791545f 100644
--- a/gcc/tree-vect-loop.c
+++ b/gcc/tree-vect-loop.c
@@ -38,7 +38,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "stor-layout.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -63,6 +62,16 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-ssa-loop-niter.h"
 #include "tree-pass.h"
 #include "cfgloop.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "flags.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "recog.h"
 #include "insn-codes.h"
diff --git a/gcc/tree-vect-patterns.c b/gcc/tree-vect-patterns.c
index 814222b..606a617 100644
--- a/gcc/tree-vect-patterns.c
+++ b/gcc/tree-vect-patterns.c
@@ -37,7 +37,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "target.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "basic-block.h"
@@ -56,6 +55,16 @@ along with GCC; see the file COPYING3.  If not see
 #include "stringpool.h"
 #include "tree-ssanames.h"
 #include "cfgloop.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "flags.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
diff --git a/gcc/tree-vect-slp.c b/gcc/tree-vect-slp.c
index 2bdf179..a839b9d 100644
--- a/gcc/tree-vect-slp.c
+++ b/gcc/tree-vect-slp.c
@@ -39,7 +39,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "target.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "basic-block.h"
 #include "gimple-pretty-print.h"
@@ -56,6 +55,16 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-ssanames.h"
 #include "tree-pass.h"
 #include "cfgloop.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "flags.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "recog.h"		/* FIXME: for insn_data */
 #include "insn-codes.h"
diff --git a/gcc/tree-vect-stmts.c b/gcc/tree-vect-stmts.c
index 1b79ace..ff5dc33 100644
--- a/gcc/tree-vect-stmts.c
+++ b/gcc/tree-vect-stmts.c
@@ -39,7 +39,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "target.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -64,13 +63,22 @@ along with GCC; see the file COPYING3.  If not see
 #include "cfgloop.h"
 #include "tree-ssa-loop.h"
 #include "tree-scalar-evolution.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "flags.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "recog.h"		/* FIXME: for insn_data */
 #include "insn-codes.h"
 #include "optabs.h"
 #include "diagnostic-core.h"
 #include "tree-vectorizer.h"
-#include "dumpfile.h"
 #include "hash-map.h"
 #include "plugin-api.h"
 #include "ipa-ref.h"
diff --git a/gcc/tree-vrp.c b/gcc/tree-vrp.c
index ae1da46..66fe699 100644
--- a/gcc/tree-vrp.c
+++ b/gcc/tree-vrp.c
@@ -38,7 +38,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "calls.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -74,11 +73,19 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-ssa-propagate.h"
 #include "tree-chrec.h"
 #include "tree-ssa-threadupdate.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
 #include "tree-ssa-threadedge.h"
-#include "wide-int.h"
 
 
 
diff --git a/gcc/tree.c b/gcc/tree.c
index ccba957..3c4f5c1 100644
--- a/gcc/tree.c
+++ b/gcc/tree.c
@@ -50,11 +50,9 @@ along with GCC; see the file COPYING3.  If not see
 #include "tm_p.h"
 #include "hashtab.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "obstack.h"
 #include "toplev.h" /* get_random_seed */
-#include "inchash.h"
 #include "filenames.h"
 #include "output.h"
 #include "target.h"
@@ -82,6 +80,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-phinodes.h"
 #include "stringpool.h"
 #include "tree-ssanames.h"
+#include "rtl.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "tree-dfa.h"
 #include "params.h"
@@ -93,7 +99,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "except.h"
 #include "debug.h"
 #include "intl.h"
-#include "wide-int.h"
 #include "builtins.h"
 
 /* Tree code classes.  */
diff --git a/gcc/tsan.c b/gcc/tsan.c
index 1d325ee..6a61f02 100644
--- a/gcc/tsan.c
+++ b/gcc/tsan.c
@@ -34,13 +34,22 @@ along with GCC; see the file COPYING3.  If not see
 #include "inchash.h"
 #include "tree.h"
 #include "fold-const.h"
-#include "expr.h"
-#include "intl.h"
+#include "hashtab.h"
 #include "tm.h"
-#include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
+#include "rtl.h"
+#include "flags.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expr.h"
+#include "intl.h"
+#include "predict.h"
 #include "dominance.h"
 #include "cfg.h"
 #include "basic-block.h"
@@ -63,7 +72,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-iterator.h"
 #include "langhooks.h"
 #include "output.h"
-#include "options.h"
 #include "target.h"
 #include "diagnostic.h"
 #include "tree-ssa-propagate.h"
diff --git a/gcc/ubsan.c b/gcc/ubsan.c
index f455549..9a02429 100644
--- a/gcc/ubsan.c
+++ b/gcc/ubsan.c
@@ -45,7 +45,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "plugin-api.h"
 #include "tm.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "ipa-ref.h"
 #include "cgraph.h"
@@ -65,6 +64,15 @@ along with GCC; see the file COPYING3.  If not see
 #include "ubsan.h"
 #include "c-family/c-common.h"
 #include "rtl.h"
+#include "hashtab.h"
+#include "flags.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "tree-ssanames.h"
 #include "asan.h"
diff --git a/gcc/value-prof.c b/gcc/value-prof.c
index 03d588a..7a0ee15 100644
--- a/gcc/value-prof.c
+++ b/gcc/value-prof.c
@@ -35,17 +35,23 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-nested.h"
 #include "calls.h"
 #include "rtl.h"
-#include "expr.h"
+#include "hashtab.h"
 #include "hard-reg-set.h"
-#include "predict.h"
-#include "input.h"
 #include "function.h"
+#include "flags.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expr.h"
+#include "predict.h"
 #include "dominance.h"
 #include "cfg.h"
 #include "basic-block.h"
 #include "value-prof.h"
-#include "flags.h"
-#include "insn-config.h"
 #include "recog.h"
 #include "insn-codes.h"
 #include "optabs.h"
@@ -67,7 +73,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "diagnostic.h"
 #include "gimple-pretty-print.h"
 #include "coverage.h"
-#include "tree.h"
 #include "gcov-io.h"
 #include "timevar.h"
 #include "dumpfile.h"
@@ -78,7 +83,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "cgraph.h"
 #include "data-streamer.h"
 #include "builtins.h"
-#include "tree-nested.h"
 #include "params.h"
 #include "tree-chkp.h"
 
diff --git a/gcc/var-tracking.c b/gcc/var-tracking.c
index 76fbf49..82e01d5 100644
--- a/gcc/var-tracking.c
+++ b/gcc/var-tracking.c
@@ -106,7 +106,6 @@
 #include "hash-table.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -120,6 +119,13 @@
 #include "sbitmap.h"
 #include "alloc-pool.h"
 #include "regs.h"
+#include "hashtab.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"
 #include "tree-pass.h"
 #include "bitmap.h"
@@ -131,8 +137,6 @@
 #include "diagnostic.h"
 #include "tree-pretty-print.h"
 #include "recog.h"
-#include "tm_p.h"
-#include "alias.h"
 #include "rtl-iter.h"
 #include "fibonacci_heap.h"
 
diff --git a/gcc/varasm.c b/gcc/varasm.c
index 9847ca6..3092f97 100644
--- a/gcc/varasm.c
+++ b/gcc/varasm.c
@@ -46,8 +46,12 @@ along with GCC; see the file COPYING3.  If not see
 #include "varasm.h"
 #include "flags.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
+#include "hashtab.h"
+#include "insn-config.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
 #include "expr.h"
 #include "regs.h"
 #include "output.h"

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

2014-10-11  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

	* expr.h: Remove all includes except tree-core.h.
	* genemit.c (main): Generate includes flags.h, insn-config.h, alias.h,
	emit-rtl.h, expmed.h, stmt.h.
	* gengtype.c (open_base_files): Generate includes function.h, insn-config.h,
	flags.h, emit-rtl.h, expmed.h, stmt.h.
	* genopinit.c (main): Generate includes hashtab.h, hash-set.h, vec.h,
	machmode.h, hard-reg-set.h, input.h, function.h, alias.h, emit-rtl.h,
	expmed.h, stmt.h.
	* genoutput.c (main): Generate includes hashtab.h, hash-set.h, vec.h,
	machmode.h, hard-reg-set.h, input.h, function.h, insn-config.h, alias.h,
	emit-rtl.h, expmed.h, stmt.h.
	* config/tilepro/gen-mul-tables.cc (main): hashtab.h, hash-set.h, vec.h,
	machmode.h, tm.h, hard-reg-set.h, input.h, function.h, rtl.h, flags.h,
	insn-config.h, alias.h, emit-rtl.h, expmed.h, stmt.h.
	* config/tilegx/mul-tables.c: Include alias.h double-int.h emit-rtl.h,
	expmed.h fixed-value.h flags.h function.h hard-reg-set.h hash-set.h hashtab.h
	input.h insn-config.h machmode.h real.h rtl.h statistics.h stmt.h symtab.h tm.h vec.h.
	* rtlhooks.c: Include alias.h double-int.h emit-rtl.h expmed.h fixed-value.h
	flags.h function.h hard-reg-set.h hash-set.h hashtab.h input.h insn-config.h
	machmode.h real.h statistics.h stmt.h vec.h.
	* cfgloopanal.c: Include alias.h double-int.h emit-rtl.h expmed.h
	fixed-value.h flags.h insn-config.h real.h statistics.h stmt.h.
	* loop-iv.c: Likewise.
	* config/tilegx/tilegx.c: Include alias.h double-int.h emit-rtl.h
	expmed.h fixed-value.h flags.h real.h statistics.h stmt.h.
	* config/tilepro/tilepro.c: Likewise.
	* lra-assigns.c: Likewise.
	* lra-constraints.c: Likewise.
	* lra-eliminations.c: Likewise.
	* lra-lives.c: Likewise.
	* lra-remat.c: Likewise.
	* bt-load.c: Include alias.h double-int.h emit-rtl.h expmed.h fixed-value.h
	insn-config.h real.h statistics.h stmt.h.
	* hw-doloop.c: Likewise.
	* ira-color.c: Likewise.
	* ira-emit.c: Likewise.
	* loop-doloop.c: Likewise.
	* loop-invariant.c: Likewise.
	* profile.c: Likewise.
	* reload.c: Include alias.h double-int.h emit-rtl.h expmed.h fixed-value.h
	real.h rtl.h statistics.h stmt.h.
	* caller-save.c: Include alias.h double-int.h emit-rtl.h expmed.h
	fixed-value.h real.h statistics.h stmt.h.
	* combine-stack-adj.c: Likewise.
	* config/lm32/lm32.c: Likewise.
	* config/mmix/mmix.c: Likewise.
	* config/pdp11/pdp11.c: Likewise.
	* config/xtensa/xtensa.c: Likewise.
	* cse.c: Likewise.
	* ddg.c: Likewise.
	* ifcvt.c: Likewise.
	* ira-costs.c: Likewise.
	* jump.c: Likewise.
	* lra-coalesce.c: Likewise.
	* lra-spills.c: Likewise.
	* lra.c: Likewise.
	* config/sh/sh_treg_combine.cc: Include alias.h double-int.h expmed.h
	fixed-value.h flags.h real.h statistics.h stmt.h.
	* reload1.c: Include alias.h double-int.h expmed.h fixed-value.h real.h
	rtl.h statistics.h stmt.h.
	* reorg.c: Include alias.h double-int.h expmed.h fixed-value.h real.h
	statistics.h stmt.h.
	* cilk-common.c: Include emit-rtl.h expmed.h fixed-value.h flags.h
	function.h hard-reg-set.h hashtab.h insn-config.h real.h rtl.h
	statistics.h stmt.h tm.h.
	* rtl-chkp.c: Likewise.
	* tree-chkp-opt.c: Likewise.
	* tree-chkp.c: Likewise.
	* config/arm/arm-builtins.c: Include emit-rtl.h expmed.h fixed-value.h
	flags.h function.h hard-reg-set.h hashtab.h insn-config.h real.h
	statistics.h stmt.h.
	* config/nvptx/nvptx.c: Include emit-rtl.h expmed.h fixed-value.h
	flags.h hard-reg-set.h insn-config.h real.h statistics.h stmt.h.
	* gimplify.c: Include emit-rtl.h expmed.h fixed-value.h flags.h hashtab.h
	insn-config.h real.h rtl.h statistics.h.
	* asan.c: Include emit-rtl.h expmed.h fixed-value.h flags.h hashtab.h
	insn-config.h real.h rtl.h statistics.h stmt.h.
	* internal-fn.c: Likewise.
	* ipa-devirt.c: Likewise.
	* ipa-icf-gimple.c: Likewise.
	* ipa-icf.c: Likewise.
	* ipa-polymorphic-call.c: Likewise.
	* lto-section-out.c: Likewise.
	* tree-data-ref.c: Likewise.
	* tree-nested.c: Likewise.
	* tree-outof-ssa.c: Likewise.
	* tree-predcom.c: Likewise.
	* tree-pretty-print.c: Likewise.
	* tree-scalar-evolution.c: Likewise.
	* tree-ssa-strlen.c: Likewise.
	* tree-vect-data-refs.c: Likewise.
	* tree-vect-loop.c: Likewise.
	* tree-vect-patterns.c: Likewise.
	* tree-vect-slp.c: Likewise.
	* tree-vect-stmts.c: Likewise.
	* tsan.c: Likewise.
	* config/aarch64/aarch64-builtins.c: Include emit-rtl.h expmed.h fixed-value.h
	flags.h hashtab.h insn-config.h real.h statistics.h stmt.h.
	* config/aarch64/aarch64.c: Likewise.
	* config/c6x/c6x.c: Likewise.
	* config/sh/sh-mem.cc: Likewise.
	* loop-unroll.c: Likewise.
	* targhooks.c: Likewise.
	* ubsan.c: Likewise.
	* tree-ssa-loop-prefetch.c: Include emit-rtl.h expmed.h fixed-value.h flags.h
	hashtab.h real.h rtl.h statistics.h stmt.h.
	* java/builtins.c: Include emit-rtl.h expmed.h fixed-value.h function.h
	hard-reg-set.h hashtab.h insn-config.h real.h statistics.h stmt.h.
	* dse.c: Include emit-rtl.h expmed.h fixed-value.h function.h hashtab.h
	statistics.h stmt.h.
	* generic-match-head.c: Include emit-rtl.h expmed.h fixed-value.h hashtab.h
	insn-config.h real.h rtl.h statistics.h stmt.h.
	* gimple-match-head.c: Likewise.
	* ipa-prop.c: Likewise.
	* ipa-split.c: Likewise.
	* lto-cgraph.c: Likewise.
	* lto-section-in.c: Likewise.
	* lto-streamer-in.c: Likewise.
	* lto-streamer-out.c: Likewise.
	* tree-affine.c: Likewise.
	* tree-cfg.c: Likewise.
	* tree-cfgcleanup.c: Likewise.
	* tree-eh.c: Likewise.
	* tree-if-conv.c: Likewise.
	* tree-into-ssa.c: Likewise.
	* tree-ssa-alias.c: Likewise.
	* tree-ssa-copyrename.c: Likewise.
	* tree-ssa-dce.c: Likewise.
	* tree-ssa-dse.c: Likewise.
	* tree-ssa-forwprop.c: Likewise.
	* tree-ssa-live.c: Likewise.
	* tree-ssa-loop-niter.c: Likewise.
	* tree-ssa-math-opts.c: Likewise.
	* tree-ssa-pre.c: Likewise.
	* tree-ssa-sccvn.c: Likewise.
	* tree-switch-conversion.c: Likewise.
	* tree-tailcall.c: Likewise.
	* tree-vect-generic.c: Likewise.
	* tree-vrp.c: Likewise.
	* tree-sra.c: Include emit-rtl.h expmed.h fixed-value.h hashtab.h
	insn-config.h real.h rtl.h stmt.h.
	* config/nds32/nds32-cost.c: Include emit-rtl.h expmed.h fixed-value.h
	hashtab.h insn-config.h real.h statistics.h stmt.h.
	* config/nds32/nds32-fp-as-gp.c: Likewise.
	* config/nds32/nds32-intrinsic.c: Likewise.
	* config/nds32/nds32-isr.c: Likewise.
	* config/nds32/nds32-md-auxiliary.c: Likewise.
	* config/nds32/nds32-memory-manipulation.c: Likewise.
	* config/nds32/nds32-pipelines-auxiliary.c: Likewise.
	* config/nds32/nds32-predicates.c: Likewise.
	* config/nds32/nds32.c: Likewise.
	* coverage.c: Likewise.
	* init-regs.c: Likewise.
	* ira.c: Likewise.
	* omp-low.c: Likewise.
	* stack-ptr-mod.c: Likewise.
	* stor-layout.c: Likewise.
	* tree-ssa-reassoc.c: Likewise.
	* tree-complex.c: Include emit-rtl.h expmed.h fixed-value.h hashtab.h
	insn-config.h rtl.h statistics.h stmt.h.
	* dwarf2cfi.c: Include emit-rtl.h expmed.h fixed-value.h hashtab.h
	insn-config.h statistics.h stmt.h.
	* recog.c: Include emit-rtl.h expmed.h fixed-value.h hashtab.h real.h rtl.h
	statistics.h stmt.h.
	* shrink-wrap.c: Likewise.
	* tree-ssa-phiopt.c: Likewise.
	* config/cris/cris.c: Include emit-rtl.h expmed.h fixed-value.h hashtab.h
	real.h statistics.h.
	* config/alpha/alpha.c: Include emit-rtl.h expmed.h fixed-value.h hashtab.h
	real.h statistics.h stmt.h.
	* config/arm/arm.c: Likewise.
	* config/avr/avr.c: Likewise.
	* config/bfin/bfin.c: Likewise.
	* config/cr16/cr16.c: Likewise.
	* config/darwin.c: Likewise.
	* config/fr30/fr30.c: Likewise.
	* config/frv/frv.c: Likewise.
	* config/h8300/h8300.c: Likewise.
	* config/i386/i386.c: Likewise.
	* config/ia64/ia64.c: Likewise.
	* config/iq2000/iq2000.c: Likewise.
	* config/m32c/m32c.c: Likewise.
	* config/m32r/m32r.c: Likewise.
	* config/m68k/m68k.c: Likewise.
	* config/mcore/mcore.c: Likewise.
	* config/mep/mep.c: Likewise.
	* config/mips/mips.c: Likewise.
	* config/mn10300/mn10300.c: Likewise.
	* config/moxie/moxie.c: Likewise.
	* config/msp430/msp430.c: Likewise.
	* config/pa/pa.c: Likewise.
	* config/rl78/rl78.c: Likewise.
	* config/rx/rx.c: Likewise.
	* config/s390/s390.c: Likewise.
	* config/sh/sh.c: Likewise.
	* config/sparc/sparc.c: Likewise.
	* config/spu/spu.c: Likewise.
	* config/stormy16/stormy16.c: Likewise.
	* config/v850/v850.c: Likewise.
	* config/vax/vax.c: Likewise.
	* expr.c: Likewise.
	* gcse.c: Likewise.
	* lower-subreg.c: Likewise.
	* optabs.c: Likewise.
	* passes.c: Likewise.
	* postreload-gcse.c: Likewise.
	* predict.c: Likewise.
	* ree.c: Likewise.
	* reginfo.c: Likewise.
	* simplify-rtx.c: Likewise.
	* stmt.c: Likewise.
	* store-motion.c: Likewise.
	* value-prof.c: Likewise.
	* var-tracking.c: Likewise.
	* combine.c: Include emit-rtl.h expmed.h fixed-value.h hashtab.h real.h
	stmt.h.
	* config/epiphany/epiphany.c: Include emit-rtl.h expmed.h fixed-value.h
	hashtab.h statistics.h stmt.h.
	* config/microblaze/microblaze.c: Likewise.
	* config/nios2/nios2.c: Likewise.
	* dojump.c: Likewise.
	* emit-rtl.c: Likewise.
	* except.c: Likewise.
	* explow.c: Likewise.
	* gimple-fold.c: Include emit-rtl.h expmed.h fixed-value.h insn-config.h
	real.h rtl.h statistics.h.
	* tree-ssa-structalias.c: Likewise.
	* tree-dfa.c: Include emit-rtl.h expmed.h fixed-value.h insn-config.h real.h
	rtl.h statistics.h stmt.h.
	* tree.c: Likewise.
	* cfgexpand.c: Include emit-rtl.h expmed.h fixed-value.h insn-config.h
	real.h statistics.h.
	* bb-reorder.c: Include emit-rtl.h expmed.h fixed-value.h insn-config.h real.h
	statistics.h stmt.h.
	* calls.c: Likewise.
	* cfgbuild.c: Likewise.
	* cgraph.c: Likewise.
	* fold-const.c: Likewise.
	* cfgrtl.c: Include emit-rtl.h expmed.h fixed-value.h real.h rtl.h
	statistics.h stmt.h.
	* function.c: Likewise.
	* tree-inline.c: Likewise.
	* auto-inc-dec.c: Include emit-rtl.h expmed.h fixed-value.h real.h statistics.h stmt.h.
	* builtins.c: Likewise.
	* cprop.c: Likewise.
	* modulo-sched.c: Likewise.
	* postreload.c: Likewise.
	* config/arc/arc.c: Include emit-rtl.h expmed.h fixed-value.h statistics.h stmt.h.
	* graphite-sese-to-poly.c: Include emit-rtl.h expmed.h flags.h hashtab.h
	insn-config.h rtl.h stmt.h.
	* varasm.c: Include emit-rtl.h expmed.h hashtab.h insn-config.h stmt.h.
	* config/rs6000/rs6000.c: Include emit-rtl.h expmed.h hashtab.h stmt.h.
	* final.c: Likewise.
	* toplev.c: Likewise.
	* config/visium/visium.c: Include emit-rtl.h expmed.h stmt.h.
	* dbxout.c: Likewise.
	* ccmp.c: Include emit-rtl.h fixed-value.h flags.h function.h hard-reg-set.h
	hashtab.h insn-config.h real.h statistics.h stmt.h.
	* gimple-ssa-strength-reduction.c: Include emit-rtl.h fixed-value.h flags.h
	hashtab.h insn-config.h real.h rtl.h statistics.h stmt.h.
	* tree-ssa-loop-ivopts.c: Include emit-rtl.h fixed-value.h flags.h hashtab.h
	real.h rtl.h statistics.h stmt.h.
	* expmed.c: Include emit-rtl.h fixed-value.h function.h hard-reg-set.h
	hashtab.h real.h statistics.h stmt.h.
	* target-globals.c: Include emit-rtl.h fixed-value.h function.h hashtab.h
	real.h statistics.h stmt.h.
	* tree-ssa-address.c: Include emit-rtl.h fixed-value.h hashtab.h real.h
	statistics.h stmt.h.
	* cfgcleanup.c: Include expmed.h fixed-value.h function.h real.h
	statistics.h stmt.h.
	* alias.c: Include expmed.h fixed-value.h insn-config.h real.h
	statistics.h stmt.h.
	* dwarf2out.c: Include expmed.h fixed-value.h statistics.h stmt.h.

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

* Re: flatten expr.h (version 2)
  2015-01-12  0:23 flatten expr.h (version 2) Prathamesh Kulkarni
@ 2015-01-13 10:36 ` Richard Biener
  2015-01-13 10:47   ` Prathamesh Kulkarni
  0 siblings, 1 reply; 17+ messages in thread
From: Richard Biener @ 2015-01-13 10:36 UTC (permalink / raw)
  To: Prathamesh Kulkarni
  Cc: gcc Patches, Michael Collison, Andrew MacLeod, Maxim Kuvyrkov, Jeff Law

On Sun, 11 Jan 2015, Prathamesh Kulkarni wrote:

> Hi,
> This is a revamped expr.h flattening flattening patch rebased on
> tree.h and tree-core.h flattening patch (r219402).
> It depends upon the following patch to get committed.
> https://gcc.gnu.org/ml/gcc-patches/2015-01/msg00565.html
> 
> Changes:
> * Removed all includes except tree-core.h. Put includes required by
> expr.h in a comment.
> * Moved stmt.c, expmed.c prototypes to stmt.h, expmed.h respectively.
> * Adjusted generator programs: genemit.c, gengtype.c, genopinit.c, genoutput.c.
> * Did not put includes in gcc-plugin.h since expr.h cannot be included
> by plugins
> (putting them broke building a file in c-family/ since expr.h is not
> allowed in front-ends)
> * Affects java front-end (expr.h is allowed in java front-end).
> 
> Bootstrapped and tested on x86_64-unknown-linux-gnu with languages:
> all,go,ada,jit
> Built on all targets in config-list.mk with languages: all, go.
> OK to commit ?

diff --git a/gcc/expr.c b/gcc/expr.c
index fc22862..824541e 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -41,11 +41,17 @@ along with GCC; see the file COPYING3.  If not see
 #include "regs.h"
 #include "hard-reg-set.h"
 #include "except.h"
-#include "input.h"
 #include "function.h"
 #include "insn-config.h"
 #include "insn-attr.h"
 /* Include expr.h after insn-config.h so we get HAVE_conditional_move.  
*/
+#include "hashtab.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "expr.h"

Please move the comment to the proper place

diff --git a/gcc/expr.h b/gcc/expr.h
index a7638b8..f1be8dc 100644
--- a/gcc/expr.h
+++ b/gcc/expr.h
@@ -20,7 +20,8 @@ along with GCC; see the file COPYING3.  If not see
 #ifndef GCC_EXPR_H
 #define GCC_EXPR_H

-/* For inhibit_defer_pop */
+/* expr.h required includes */
+#if 0
 #include "hashtab.h"
 #include "hash-set.h"
 #include "vec.h"
@@ -29,15 +30,17 @@ along with GCC; see the file COPYING3.  If not see
 #include "hard-reg-set.h"
 #include "input.h"
 #include "function.h"
-/* For XEXP, GEN_INT, rtx_code */
 #include "rtl.h"
-/* For optimize_size */
 #include "flags.h"
-/* For tree_fits_[su]hwi_p, tree_to_[su]hwi, fold_convert, size_binop,
-   ssize_int, TREE_CODE, TYPE_SIZE, int_size_in_bytes,    */
 #include "tree-core.h"
-/* For GET_MODE_BITSIZE, word_mode */
 #include "insn-config.h"
+#include "alias.h"
+#include "emit-rtl.h"
+#include "expmed.h"
+#include "stmt.h"
+#endif

Err, please remove the #if 0 section

+
+#include "tree-core.h"

Why?  The original comment says

-/* For tree_fits_[su]hwi_p, tree_to_[su]hwi, fold_convert, size_binop,
-   ssize_int, TREE_CODE, TYPE_SIZE, int_size_in_bytes,    */

but all those are declared in tree.h.  Which means the files including
expr.h must already include tree.h.

If that's not the reason we need to include tree-core.h from expr.c
please add a comment explaining why.

-/* Definitions from emit-rtl.c */
-#include "emit-rtl.h"
-
 /* Return a memory reference like MEMREF, but with its mode widened to
    MODE and adjusted by OFFSET.  */
 extern rtx widen_memory_access (rtx, machine_mode, HOST_WIDE_INT);

err - functions defined in emit-rtl.c should be declared in emit-rtl.h.
Please fix that first.  expr.h should _only_ contain prototypes
for stuff defined in expr.c.

Andrew did a good job with this, first cleaning up a header moving
declarations to proper places and only after that flattening it.

The rest of the patch looks good to me but expr.h isn't in a good
shape after it.

Thanks,
Richard.

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

* Re: flatten expr.h (version 2)
  2015-01-13 10:36 ` Richard Biener
@ 2015-01-13 10:47   ` Prathamesh Kulkarni
  2015-01-13 16:38     ` Prathamesh Kulkarni
  0 siblings, 1 reply; 17+ messages in thread
From: Prathamesh Kulkarni @ 2015-01-13 10:47 UTC (permalink / raw)
  To: Richard Biener
  Cc: gcc Patches, Michael Collison, Andrew MacLeod, Maxim Kuvyrkov, Jeff Law

On 13 January 2015 at 15:34, Richard Biener <rguenther@suse.de> wrote:
> On Sun, 11 Jan 2015, Prathamesh Kulkarni wrote:
>
>> Hi,
>> This is a revamped expr.h flattening flattening patch rebased on
>> tree.h and tree-core.h flattening patch (r219402).
>> It depends upon the following patch to get committed.
>> https://gcc.gnu.org/ml/gcc-patches/2015-01/msg00565.html
>>
>> Changes:
>> * Removed all includes except tree-core.h. Put includes required by
>> expr.h in a comment.
>> * Moved stmt.c, expmed.c prototypes to stmt.h, expmed.h respectively.
>> * Adjusted generator programs: genemit.c, gengtype.c, genopinit.c, genoutput.c.
>> * Did not put includes in gcc-plugin.h since expr.h cannot be included
>> by plugins
>> (putting them broke building a file in c-family/ since expr.h is not
>> allowed in front-ends)
>> * Affects java front-end (expr.h is allowed in java front-end).
>>
>> Bootstrapped and tested on x86_64-unknown-linux-gnu with languages:
>> all,go,ada,jit
>> Built on all targets in config-list.mk with languages: all, go.
>> OK to commit ?
>
> diff --git a/gcc/expr.c b/gcc/expr.c
> index fc22862..824541e 100644
> --- a/gcc/expr.c
> +++ b/gcc/expr.c
> @@ -41,11 +41,17 @@ along with GCC; see the file COPYING3.  If not see
>  #include "regs.h"
>  #include "hard-reg-set.h"
>  #include "except.h"
> -#include "input.h"
>  #include "function.h"
>  #include "insn-config.h"
>  #include "insn-attr.h"
>  /* Include expr.h after insn-config.h so we get HAVE_conditional_move.
> */
> +#include "hashtab.h"
> +#include "emit-rtl.h"
> +#include "expmed.h"
> +#include "stmt.h"
> +#include "statistics.h"
> +#include "real.h"
> +#include "fixed-value.h"
>  #include "expr.h"
>
> Please move the comment to the proper place
ah, my flattening tool doesn't look at comments. I will move the
comment before expr.h include, thanks.
>
> diff --git a/gcc/expr.h b/gcc/expr.h
> index a7638b8..f1be8dc 100644
> --- a/gcc/expr.h
> +++ b/gcc/expr.h
> @@ -20,7 +20,8 @@ along with GCC; see the file COPYING3.  If not see
>  #ifndef GCC_EXPR_H
>  #define GCC_EXPR_H
>
> -/* For inhibit_defer_pop */
> +/* expr.h required includes */
> +#if 0
>  #include "hashtab.h"
>  #include "hash-set.h"
>  #include "vec.h"
> @@ -29,15 +30,17 @@ along with GCC; see the file COPYING3.  If not see
>  #include "hard-reg-set.h"
>  #include "input.h"
>  #include "function.h"
> -/* For XEXP, GEN_INT, rtx_code */
>  #include "rtl.h"
> -/* For optimize_size */
>  #include "flags.h"
> -/* For tree_fits_[su]hwi_p, tree_to_[su]hwi, fold_convert, size_binop,
> -   ssize_int, TREE_CODE, TYPE_SIZE, int_size_in_bytes,    */
>  #include "tree-core.h"
> -/* For GET_MODE_BITSIZE, word_mode */
>  #include "insn-config.h"
> +#include "alias.h"
> +#include "emit-rtl.h"
> +#include "expmed.h"
> +#include "stmt.h"
> +#endif
>
> Err, please remove the #if 0 section
I kept it because if something breaks later (hopefully not!), it will
be easier to fix.
I will remove it.
>
> +
> +#include "tree-core.h"
>
> Why?  The original comment says
>
> -/* For tree_fits_[su]hwi_p, tree_to_[su]hwi, fold_convert, size_binop,
> -   ssize_int, TREE_CODE, TYPE_SIZE, int_size_in_bytes,    */
>
> but all those are declared in tree.h.  Which means the files including
> expr.h must already include tree.h.
>
> If that's not the reason we need to include tree-core.h from expr.c
> please add a comment explaining why.
bt-load.c fails to compile because it includes expr.h but does not
include tree.h
I will place tree.h include in all files that include expr.h and rebuild.
>
> -/* Definitions from emit-rtl.c */
> -#include "emit-rtl.h"
> -
>  /* Return a memory reference like MEMREF, but with its mode widened to
>     MODE and adjusted by OFFSET.  */
>  extern rtx widen_memory_access (rtx, machine_mode, HOST_WIDE_INT);
>
> err - functions defined in emit-rtl.c should be declared in emit-rtl.h.
> Please fix that first.  expr.h should _only_ contain prototypes
> for stuff defined in expr.c.
oops, missed it :(
>
> Andrew did a good job with this, first cleaning up a header moving
> declarations to proper places and only after that flattening it.
>
> The rest of the patch looks good to me but expr.h isn't in a good
> shape after it.
I will work on it and send patch with suggested changes by tomorrow.

Thanks,
Prathamesh
>
> Thanks,
> Richard.

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

* Re: flatten expr.h (version 2)
  2015-01-13 10:47   ` Prathamesh Kulkarni
@ 2015-01-13 16:38     ` Prathamesh Kulkarni
  2015-01-13 20:42       ` Prathamesh Kulkarni
  0 siblings, 1 reply; 17+ messages in thread
From: Prathamesh Kulkarni @ 2015-01-13 16:38 UTC (permalink / raw)
  To: Richard Biener
  Cc: gcc Patches, Michael Collison, Andrew MacLeod, Maxim Kuvyrkov, Jeff Law

On 13 January 2015 at 16:06, Prathamesh Kulkarni
<prathamesh.kulkarni@linaro.org> wrote:
> On 13 January 2015 at 15:34, Richard Biener <rguenther@suse.de> wrote:
>> On Sun, 11 Jan 2015, Prathamesh Kulkarni wrote:
>>
>>> Hi,
>>> This is a revamped expr.h flattening flattening patch rebased on
>>> tree.h and tree-core.h flattening patch (r219402).
>>> It depends upon the following patch to get committed.
>>> https://gcc.gnu.org/ml/gcc-patches/2015-01/msg00565.html
>>>
>>> Changes:
>>> * Removed all includes except tree-core.h. Put includes required by
>>> expr.h in a comment.
>>> * Moved stmt.c, expmed.c prototypes to stmt.h, expmed.h respectively.
>>> * Adjusted generator programs: genemit.c, gengtype.c, genopinit.c, genoutput.c.
>>> * Did not put includes in gcc-plugin.h since expr.h cannot be included
>>> by plugins
>>> (putting them broke building a file in c-family/ since expr.h is not
>>> allowed in front-ends)
>>> * Affects java front-end (expr.h is allowed in java front-end).
>>>
>>> Bootstrapped and tested on x86_64-unknown-linux-gnu with languages:
>>> all,go,ada,jit
>>> Built on all targets in config-list.mk with languages: all, go.
>>> OK to commit ?
>>
>> diff --git a/gcc/expr.c b/gcc/expr.c
>> index fc22862..824541e 100644
>> --- a/gcc/expr.c
>> +++ b/gcc/expr.c
>> @@ -41,11 +41,17 @@ along with GCC; see the file COPYING3.  If not see
>>  #include "regs.h"
>>  #include "hard-reg-set.h"
>>  #include "except.h"
>> -#include "input.h"
>>  #include "function.h"
>>  #include "insn-config.h"
>>  #include "insn-attr.h"
>>  /* Include expr.h after insn-config.h so we get HAVE_conditional_move.
>> */
>> +#include "hashtab.h"
>> +#include "emit-rtl.h"
>> +#include "expmed.h"
>> +#include "stmt.h"
>> +#include "statistics.h"
>> +#include "real.h"
>> +#include "fixed-value.h"
>>  #include "expr.h"
>>
>> Please move the comment to the proper place
> ah, my flattening tool doesn't look at comments. I will move the
> comment before expr.h include, thanks.
>>
>> diff --git a/gcc/expr.h b/gcc/expr.h
>> index a7638b8..f1be8dc 100644
>> --- a/gcc/expr.h
>> +++ b/gcc/expr.h
>> @@ -20,7 +20,8 @@ along with GCC; see the file COPYING3.  If not see
>>  #ifndef GCC_EXPR_H
>>  #define GCC_EXPR_H
>>
>> -/* For inhibit_defer_pop */
>> +/* expr.h required includes */
>> +#if 0
>>  #include "hashtab.h"
>>  #include "hash-set.h"
>>  #include "vec.h"
>> @@ -29,15 +30,17 @@ along with GCC; see the file COPYING3.  If not see
>>  #include "hard-reg-set.h"
>>  #include "input.h"
>>  #include "function.h"
>> -/* For XEXP, GEN_INT, rtx_code */
>>  #include "rtl.h"
>> -/* For optimize_size */
>>  #include "flags.h"
>> -/* For tree_fits_[su]hwi_p, tree_to_[su]hwi, fold_convert, size_binop,
>> -   ssize_int, TREE_CODE, TYPE_SIZE, int_size_in_bytes,    */
>>  #include "tree-core.h"
>> -/* For GET_MODE_BITSIZE, word_mode */
>>  #include "insn-config.h"
>> +#include "alias.h"
>> +#include "emit-rtl.h"
>> +#include "expmed.h"
>> +#include "stmt.h"
>> +#endif
>>
>> Err, please remove the #if 0 section
> I kept it because if something breaks later (hopefully not!), it will
> be easier to fix.
> I will remove it.
>>
>> +
>> +#include "tree-core.h"
>>
>> Why?  The original comment says
>>
>> -/* For tree_fits_[su]hwi_p, tree_to_[su]hwi, fold_convert, size_binop,
>> -   ssize_int, TREE_CODE, TYPE_SIZE, int_size_in_bytes,    */
>>
>> but all those are declared in tree.h.  Which means the files including
>> expr.h must already include tree.h.
>>
>> If that's not the reason we need to include tree-core.h from expr.c
>> please add a comment explaining why.
> bt-load.c fails to compile because it includes expr.h but does not
> include tree.h
> I will place tree.h include in all files that include expr.h and rebuild.
This is not going to work, since tree.h is now flattened. Shall also
require including all headers required by
tree.h in all files that include expr.h. Could we retain tree-core.h
in expr.h for now ?
Or should I insert tree.h (along with tree.h required includes) in all
files that include expr.h ?

Thanks,
Prathamesh
>>
>> -/* Definitions from emit-rtl.c */
>> -#include "emit-rtl.h"
>> -
>>  /* Return a memory reference like MEMREF, but with its mode widened to
>>     MODE and adjusted by OFFSET.  */
>>  extern rtx widen_memory_access (rtx, machine_mode, HOST_WIDE_INT);
>>
>> err - functions defined in emit-rtl.c should be declared in emit-rtl.h.
>> Please fix that first.  expr.h should _only_ contain prototypes
>> for stuff defined in expr.c.
> oops, missed it :(
>>
>> Andrew did a good job with this, first cleaning up a header moving
>> declarations to proper places and only after that flattening it.
>>
>> The rest of the patch looks good to me but expr.h isn't in a good
>> shape after it.
> I will work on it and send patch with suggested changes by tomorrow.
>
> Thanks,
> Prathamesh
>>
>> Thanks,
>> Richard.

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

* Re: flatten expr.h (version 2)
  2015-01-13 16:38     ` Prathamesh Kulkarni
@ 2015-01-13 20:42       ` Prathamesh Kulkarni
  2015-01-14  9:43         ` Richard Biener
  0 siblings, 1 reply; 17+ messages in thread
From: Prathamesh Kulkarni @ 2015-01-13 20:42 UTC (permalink / raw)
  To: Richard Biener, Michael Collison, gcc Patches, Andrew MacLeod

On 13 January 2015 at 22:02, Prathamesh Kulkarni
<prathamesh.kulkarni@linaro.org> wrote:
> On 13 January 2015 at 16:06, Prathamesh Kulkarni
> <prathamesh.kulkarni@linaro.org> wrote:
>> On 13 January 2015 at 15:34, Richard Biener <rguenther@suse.de> wrote:
>>> On Sun, 11 Jan 2015, Prathamesh Kulkarni wrote:
>>>
>>>> Hi,
>>>> This is a revamped expr.h flattening flattening patch rebased on
>>>> tree.h and tree-core.h flattening patch (r219402).
>>>> It depends upon the following patch to get committed.
>>>> https://gcc.gnu.org/ml/gcc-patches/2015-01/msg00565.html
>>>>
>>>> Changes:
>>>> * Removed all includes except tree-core.h. Put includes required by
>>>> expr.h in a comment.
>>>> * Moved stmt.c, expmed.c prototypes to stmt.h, expmed.h respectively.
>>>> * Adjusted generator programs: genemit.c, gengtype.c, genopinit.c, genoutput.c.
>>>> * Did not put includes in gcc-plugin.h since expr.h cannot be included
>>>> by plugins
>>>> (putting them broke building a file in c-family/ since expr.h is not
>>>> allowed in front-ends)
>>>> * Affects java front-end (expr.h is allowed in java front-end).
>>>>
>>>> Bootstrapped and tested on x86_64-unknown-linux-gnu with languages:
>>>> all,go,ada,jit
>>>> Built on all targets in config-list.mk with languages: all, go.
>>>> OK to commit ?
>>>
>>> diff --git a/gcc/expr.c b/gcc/expr.c
>>> index fc22862..824541e 100644
>>> --- a/gcc/expr.c
>>> +++ b/gcc/expr.c
>>> @@ -41,11 +41,17 @@ along with GCC; see the file COPYING3.  If not see
>>>  #include "regs.h"
>>>  #include "hard-reg-set.h"
>>>  #include "except.h"
>>> -#include "input.h"
>>>  #include "function.h"
>>>  #include "insn-config.h"
>>>  #include "insn-attr.h"
>>>  /* Include expr.h after insn-config.h so we get HAVE_conditional_move.
>>> */
>>> +#include "hashtab.h"
>>> +#include "emit-rtl.h"
>>> +#include "expmed.h"
>>> +#include "stmt.h"
>>> +#include "statistics.h"
>>> +#include "real.h"
>>> +#include "fixed-value.h"
>>>  #include "expr.h"
>>>
>>> Please move the comment to the proper place
>> ah, my flattening tool doesn't look at comments. I will move the
>> comment before expr.h include, thanks.
>>>
>>> diff --git a/gcc/expr.h b/gcc/expr.h
>>> index a7638b8..f1be8dc 100644
>>> --- a/gcc/expr.h
>>> +++ b/gcc/expr.h
>>> @@ -20,7 +20,8 @@ along with GCC; see the file COPYING3.  If not see
>>>  #ifndef GCC_EXPR_H
>>>  #define GCC_EXPR_H
>>>
>>> -/* For inhibit_defer_pop */
>>> +/* expr.h required includes */
>>> +#if 0
>>>  #include "hashtab.h"
>>>  #include "hash-set.h"
>>>  #include "vec.h"
>>> @@ -29,15 +30,17 @@ along with GCC; see the file COPYING3.  If not see
>>>  #include "hard-reg-set.h"
>>>  #include "input.h"
>>>  #include "function.h"
>>> -/* For XEXP, GEN_INT, rtx_code */
>>>  #include "rtl.h"
>>> -/* For optimize_size */
>>>  #include "flags.h"
>>> -/* For tree_fits_[su]hwi_p, tree_to_[su]hwi, fold_convert, size_binop,
>>> -   ssize_int, TREE_CODE, TYPE_SIZE, int_size_in_bytes,    */
>>>  #include "tree-core.h"
>>> -/* For GET_MODE_BITSIZE, word_mode */
>>>  #include "insn-config.h"
>>> +#include "alias.h"
>>> +#include "emit-rtl.h"
>>> +#include "expmed.h"
>>> +#include "stmt.h"
>>> +#endif
>>>
>>> Err, please remove the #if 0 section
>> I kept it because if something breaks later (hopefully not!), it will
>> be easier to fix.
>> I will remove it.
>>>
>>> +
>>> +#include "tree-core.h"
>>>
>>> Why?  The original comment says
>>>
>>> -/* For tree_fits_[su]hwi_p, tree_to_[su]hwi, fold_convert, size_binop,
>>> -   ssize_int, TREE_CODE, TYPE_SIZE, int_size_in_bytes,    */
>>>
>>> but all those are declared in tree.h.  Which means the files including
>>> expr.h must already include tree.h.
>>>
>>> If that's not the reason we need to include tree-core.h from expr.c
>>> please add a comment explaining why.
>> bt-load.c fails to compile because it includes expr.h but does not
>> include tree.h
>> I will place tree.h include in all files that include expr.h and rebuild.
> This is not going to work, since tree.h is now flattened. Shall also
> require including all headers required by
> tree.h in all files that include expr.h. Could we retain tree-core.h
> in expr.h for now ?
> Or should I insert tree.h (along with tree.h required includes) in all
> files that include expr.h ?
I am including tree.h along with required includes in all files that
include expr.h.
This removes all includes from expr.h.

Thanks,
Prathamesh
>
> Thanks,
> Prathamesh
>>>
>>> -/* Definitions from emit-rtl.c */
>>> -#include "emit-rtl.h"
>>> -
>>>  /* Return a memory reference like MEMREF, but with its mode widened to
>>>     MODE and adjusted by OFFSET.  */
>>>  extern rtx widen_memory_access (rtx, machine_mode, HOST_WIDE_INT);
>>>
>>> err - functions defined in emit-rtl.c should be declared in emit-rtl.h.
>>> Please fix that first.  expr.h should _only_ contain prototypes
>>> for stuff defined in expr.c.
>> oops, missed it :(
>>>
>>> Andrew did a good job with this, first cleaning up a header moving
>>> declarations to proper places and only after that flattening it.
>>>
>>> The rest of the patch looks good to me but expr.h isn't in a good
>>> shape after it.
>> I will work on it and send patch with suggested changes by tomorrow.
>>
>> Thanks,
>> Prathamesh
>>>
>>> Thanks,
>>> Richard.

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

* Re: flatten expr.h (version 2)
  2015-01-13 20:42       ` Prathamesh Kulkarni
@ 2015-01-14  9:43         ` Richard Biener
  2015-01-14 11:16           ` Prathamesh Kulkarni
  0 siblings, 1 reply; 17+ messages in thread
From: Richard Biener @ 2015-01-14  9:43 UTC (permalink / raw)
  To: Prathamesh Kulkarni; +Cc: Michael Collison, gcc Patches, Andrew MacLeod

On Wed, 14 Jan 2015, Prathamesh Kulkarni wrote:

> On 13 January 2015 at 22:02, Prathamesh Kulkarni
> <prathamesh.kulkarni@linaro.org> wrote:
> > On 13 January 2015 at 16:06, Prathamesh Kulkarni
> > <prathamesh.kulkarni@linaro.org> wrote:
> >> On 13 January 2015 at 15:34, Richard Biener <rguenther@suse.de> wrote:
> >>> On Sun, 11 Jan 2015, Prathamesh Kulkarni wrote:
> >>>
> >>>> Hi,
> >>>> This is a revamped expr.h flattening flattening patch rebased on
> >>>> tree.h and tree-core.h flattening patch (r219402).
> >>>> It depends upon the following patch to get committed.
> >>>> https://gcc.gnu.org/ml/gcc-patches/2015-01/msg00565.html
> >>>>
> >>>> Changes:
> >>>> * Removed all includes except tree-core.h. Put includes required by
> >>>> expr.h in a comment.
> >>>> * Moved stmt.c, expmed.c prototypes to stmt.h, expmed.h respectively.
> >>>> * Adjusted generator programs: genemit.c, gengtype.c, genopinit.c, genoutput.c.
> >>>> * Did not put includes in gcc-plugin.h since expr.h cannot be included
> >>>> by plugins
> >>>> (putting them broke building a file in c-family/ since expr.h is not
> >>>> allowed in front-ends)
> >>>> * Affects java front-end (expr.h is allowed in java front-end).
> >>>>
> >>>> Bootstrapped and tested on x86_64-unknown-linux-gnu with languages:
> >>>> all,go,ada,jit
> >>>> Built on all targets in config-list.mk with languages: all, go.
> >>>> OK to commit ?
> >>>
> >>> diff --git a/gcc/expr.c b/gcc/expr.c
> >>> index fc22862..824541e 100644
> >>> --- a/gcc/expr.c
> >>> +++ b/gcc/expr.c
> >>> @@ -41,11 +41,17 @@ along with GCC; see the file COPYING3.  If not see
> >>>  #include "regs.h"
> >>>  #include "hard-reg-set.h"
> >>>  #include "except.h"
> >>> -#include "input.h"
> >>>  #include "function.h"
> >>>  #include "insn-config.h"
> >>>  #include "insn-attr.h"
> >>>  /* Include expr.h after insn-config.h so we get HAVE_conditional_move.
> >>> */
> >>> +#include "hashtab.h"
> >>> +#include "emit-rtl.h"
> >>> +#include "expmed.h"
> >>> +#include "stmt.h"
> >>> +#include "statistics.h"
> >>> +#include "real.h"
> >>> +#include "fixed-value.h"
> >>>  #include "expr.h"
> >>>
> >>> Please move the comment to the proper place
> >> ah, my flattening tool doesn't look at comments. I will move the
> >> comment before expr.h include, thanks.
> >>>
> >>> diff --git a/gcc/expr.h b/gcc/expr.h
> >>> index a7638b8..f1be8dc 100644
> >>> --- a/gcc/expr.h
> >>> +++ b/gcc/expr.h
> >>> @@ -20,7 +20,8 @@ along with GCC; see the file COPYING3.  If not see
> >>>  #ifndef GCC_EXPR_H
> >>>  #define GCC_EXPR_H
> >>>
> >>> -/* For inhibit_defer_pop */
> >>> +/* expr.h required includes */
> >>> +#if 0
> >>>  #include "hashtab.h"
> >>>  #include "hash-set.h"
> >>>  #include "vec.h"
> >>> @@ -29,15 +30,17 @@ along with GCC; see the file COPYING3.  If not see
> >>>  #include "hard-reg-set.h"
> >>>  #include "input.h"
> >>>  #include "function.h"
> >>> -/* For XEXP, GEN_INT, rtx_code */
> >>>  #include "rtl.h"
> >>> -/* For optimize_size */
> >>>  #include "flags.h"
> >>> -/* For tree_fits_[su]hwi_p, tree_to_[su]hwi, fold_convert, size_binop,
> >>> -   ssize_int, TREE_CODE, TYPE_SIZE, int_size_in_bytes,    */
> >>>  #include "tree-core.h"
> >>> -/* For GET_MODE_BITSIZE, word_mode */
> >>>  #include "insn-config.h"
> >>> +#include "alias.h"
> >>> +#include "emit-rtl.h"
> >>> +#include "expmed.h"
> >>> +#include "stmt.h"
> >>> +#endif
> >>>
> >>> Err, please remove the #if 0 section
> >> I kept it because if something breaks later (hopefully not!), it will
> >> be easier to fix.
> >> I will remove it.
> >>>
> >>> +
> >>> +#include "tree-core.h"
> >>>
> >>> Why?  The original comment says
> >>>
> >>> -/* For tree_fits_[su]hwi_p, tree_to_[su]hwi, fold_convert, size_binop,
> >>> -   ssize_int, TREE_CODE, TYPE_SIZE, int_size_in_bytes,    */
> >>>
> >>> but all those are declared in tree.h.  Which means the files including
> >>> expr.h must already include tree.h.
> >>>
> >>> If that's not the reason we need to include tree-core.h from expr.c
> >>> please add a comment explaining why.
> >> bt-load.c fails to compile because it includes expr.h but does not
> >> include tree.h
> >> I will place tree.h include in all files that include expr.h and rebuild.
> > This is not going to work, since tree.h is now flattened. Shall also
> > require including all headers required by
> > tree.h in all files that include expr.h. Could we retain tree-core.h
> > in expr.h for now ?
> > Or should I insert tree.h (along with tree.h required includes) in all
> > files that include expr.h ?
> I am including tree.h along with required includes in all files that
> include expr.h.
> This removes all includes from expr.h.

Good.

Richard.

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

* Re: flatten expr.h (version 2)
  2015-01-14  9:43         ` Richard Biener
@ 2015-01-14 11:16           ` Prathamesh Kulkarni
  2015-01-14 11:18             ` Prathamesh Kulkarni
  0 siblings, 1 reply; 17+ messages in thread
From: Prathamesh Kulkarni @ 2015-01-14 11:16 UTC (permalink / raw)
  To: Richard Biener; +Cc: Michael Collison, gcc Patches, Andrew MacLeod

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

On 14 January 2015 at 14:34, Richard Biener <rguenther@suse.de> wrote:
> On Wed, 14 Jan 2015, Prathamesh Kulkarni wrote:
>
>> On 13 January 2015 at 22:02, Prathamesh Kulkarni
>> <prathamesh.kulkarni@linaro.org> wrote:
>> > On 13 January 2015 at 16:06, Prathamesh Kulkarni
>> > <prathamesh.kulkarni@linaro.org> wrote:
>> >> On 13 January 2015 at 15:34, Richard Biener <rguenther@suse.de> wrote:
>> >>> On Sun, 11 Jan 2015, Prathamesh Kulkarni wrote:
>> >>>
>> >>>> Hi,
>> >>>> This is a revamped expr.h flattening flattening patch rebased on
>> >>>> tree.h and tree-core.h flattening patch (r219402).
>> >>>> It depends upon the following patch to get committed.
>> >>>> https://gcc.gnu.org/ml/gcc-patches/2015-01/msg00565.html
>> >>>>
>> >>>> Changes:
>> >>>> * Removed all includes except tree-core.h. Put includes required by
>> >>>> expr.h in a comment.
>> >>>> * Moved stmt.c, expmed.c prototypes to stmt.h, expmed.h respectively.
>> >>>> * Adjusted generator programs: genemit.c, gengtype.c, genopinit.c, genoutput.c.
>> >>>> * Did not put includes in gcc-plugin.h since expr.h cannot be included
>> >>>> by plugins
>> >>>> (putting them broke building a file in c-family/ since expr.h is not
>> >>>> allowed in front-ends)
>> >>>> * Affects java front-end (expr.h is allowed in java front-end).
>> >>>>
>> >>>> Bootstrapped and tested on x86_64-unknown-linux-gnu with languages:
>> >>>> all,go,ada,jit
>> >>>> Built on all targets in config-list.mk with languages: all, go.
>> >>>> OK to commit ?
>> >>>
>> >>> diff --git a/gcc/expr.c b/gcc/expr.c
>> >>> index fc22862..824541e 100644
>> >>> --- a/gcc/expr.c
>> >>> +++ b/gcc/expr.c
>> >>> @@ -41,11 +41,17 @@ along with GCC; see the file COPYING3.  If not see
>> >>>  #include "regs.h"
>> >>>  #include "hard-reg-set.h"
>> >>>  #include "except.h"
>> >>> -#include "input.h"
>> >>>  #include "function.h"
>> >>>  #include "insn-config.h"
>> >>>  #include "insn-attr.h"
>> >>>  /* Include expr.h after insn-config.h so we get HAVE_conditional_move.
>> >>> */
>> >>> +#include "hashtab.h"
>> >>> +#include "emit-rtl.h"
>> >>> +#include "expmed.h"
>> >>> +#include "stmt.h"
>> >>> +#include "statistics.h"
>> >>> +#include "real.h"
>> >>> +#include "fixed-value.h"
>> >>>  #include "expr.h"
>> >>>
>> >>> Please move the comment to the proper place
>> >> ah, my flattening tool doesn't look at comments. I will move the
>> >> comment before expr.h include, thanks.
>> >>>
>> >>> diff --git a/gcc/expr.h b/gcc/expr.h
>> >>> index a7638b8..f1be8dc 100644
>> >>> --- a/gcc/expr.h
>> >>> +++ b/gcc/expr.h
>> >>> @@ -20,7 +20,8 @@ along with GCC; see the file COPYING3.  If not see
>> >>>  #ifndef GCC_EXPR_H
>> >>>  #define GCC_EXPR_H
>> >>>
>> >>> -/* For inhibit_defer_pop */
>> >>> +/* expr.h required includes */
>> >>> +#if 0
>> >>>  #include "hashtab.h"
>> >>>  #include "hash-set.h"
>> >>>  #include "vec.h"
>> >>> @@ -29,15 +30,17 @@ along with GCC; see the file COPYING3.  If not see
>> >>>  #include "hard-reg-set.h"
>> >>>  #include "input.h"
>> >>>  #include "function.h"
>> >>> -/* For XEXP, GEN_INT, rtx_code */
>> >>>  #include "rtl.h"
>> >>> -/* For optimize_size */
>> >>>  #include "flags.h"
>> >>> -/* For tree_fits_[su]hwi_p, tree_to_[su]hwi, fold_convert, size_binop,
>> >>> -   ssize_int, TREE_CODE, TYPE_SIZE, int_size_in_bytes,    */
>> >>>  #include "tree-core.h"
>> >>> -/* For GET_MODE_BITSIZE, word_mode */
>> >>>  #include "insn-config.h"
>> >>> +#include "alias.h"
>> >>> +#include "emit-rtl.h"
>> >>> +#include "expmed.h"
>> >>> +#include "stmt.h"
>> >>> +#endif
>> >>>
>> >>> Err, please remove the #if 0 section
>> >> I kept it because if something breaks later (hopefully not!), it will
>> >> be easier to fix.
>> >> I will remove it.
>> >>>
>> >>> +
>> >>> +#include "tree-core.h"
>> >>>
>> >>> Why?  The original comment says
>> >>>
>> >>> -/* For tree_fits_[su]hwi_p, tree_to_[su]hwi, fold_convert, size_binop,
>> >>> -   ssize_int, TREE_CODE, TYPE_SIZE, int_size_in_bytes,    */
>> >>>
>> >>> but all those are declared in tree.h.  Which means the files including
>> >>> expr.h must already include tree.h.
>> >>>
>> >>> If that's not the reason we need to include tree-core.h from expr.c
>> >>> please add a comment explaining why.
>> >> bt-load.c fails to compile because it includes expr.h but does not
>> >> include tree.h
>> >> I will place tree.h include in all files that include expr.h and rebuild.
>> > This is not going to work, since tree.h is now flattened. Shall also
>> > require including all headers required by
>> > tree.h in all files that include expr.h. Could we retain tree-core.h
>> > in expr.h for now ?
>> > Or should I insert tree.h (along with tree.h required includes) in all
>> > files that include expr.h ?
>> I am including tree.h along with required includes in all files that
>> include expr.h.
>> This removes all includes from expr.h.
>
> Good.
The attached patch, refactors expr.h so that it only exports
prototypes from expr.c.
I kept int_expr_size() in explow.c instead of moving it to expr.c because it
called tree_expr_size() which is static in explow.c and has other callers too.

Changes:
* New header files dojump.h, explow.h.
* Modified generator programs: gengtype.c, genemit.c, genopinit.c,
genoutput.c, config/tilepro/gen-mul-tables.cc.
* Affects java front-end (java/builtins.c includes expr.h).

Bootstrapped and tested on x86_64-unknown-linux-gnu with languages:
all, go, ada, jit, obj-c++.
Build in progress on all targets in config-list.mk with languages: all, go.
Assuming the build goes fine, OK to commit ?

Thanks,
Prathamesh
>
> Richard.

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

2015-10-14  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

	* dojump.h: New header file.
	* explow.h: Likewise.
	* expr.h: Remove includes.
	Move expmed.c prototypes to expmed.h.
	Move dojump.c prototypes to dojump.h.
	Move alias.c prototypes to alias.h.
	Move explow.c prototypes to explow.h.
	Move calls.c prototypes to calls.h.
	Move emit-rtl.c prototypes to emit-rtl.h.
	Move varasm.c prototypes to varasm.h.
	Move stmt.c prototypes to stmt.h.
	(saved_pending_stack_adjust): Move to dojump.h.
	(adjust_address): Move to explow.h.
	(adjust_address_nv): Move to emit-rtl.h.
	(adjust_bitfield_address): Likewise.
	(adjust_bitfield_address_size): Likewise.
	(adjust_bitfield_address_nv): Likewise.
	(adjust_automodify_address_nv): Likewise.
	* explow.c (eliminate_constant_term): Make static.
	* genemit.c (main): Generate includes statistics.h, real.h, fixed-value.h,
	insn-config.h, expmed.h, dojump.h, explow.h, emit-rtl.h, stmt.h.
	* genopinit.c (main): Generate includes hashtab.h, hard-reg-set.h, function.h,
	statistics.h, real.h, fixed-value.h, expmed.h, dojump.h, explow.h, emit-rtl.h,
	stmt.h.
	* genoutput.c (main): Generate includes hashtab.h, statistics.h, real.h,
	fixed-value.h, expmed.h, dojump.h, explow.h, emit-rtl.h, stmt.h.
	* genemit.c (open_base_files): Generate includes flags.h, statistics.h, real.h,
	fixed-value.h, tree.h, expmed.h, dojump.h, explow.h, calls.h, emit-rtl.h, varasm.h,
	stmt.h.
	* config/tilepro/gen-mul-tables.cc: Generate includes hashtab.h, hash-set.h, vec.h,
	machmode.h, tm.h, hard-reg-set.h, input.h, function.h, rtl.h, flags.h, statistics.h,
	double-int.h, real.h, fixed-value.h, alias.h, wide-int.h, inchash.h, tree.h,
	insn-config.h, expmed.h, dojump.h, explow.h, calls.h, emit-rtl.h, varasm.h, stmt.h.
	* config/tilegx/mul-tables.c: Include alias.h calls.h dojump.h
	double-int.h emit-rtl.h explow.h expmed.h fixed-value.h flags.h
	function.h hard-reg-set.h hash-set.h hashtab.h inchash.h input.h
	insn-config.h machmode.h real.h rtl.h statistics.h stmt.h symtab.h
	tm.h tree.h varasm.h vec.h wide-int.h.
	* rtlhooks.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
	explow.h expmed.h fixed-value.h flags.h function.h hard-reg-set.h
	hash-set.h hashtab.h inchash.h input.h insn-config.h machmode.h
	real.h statistics.h stmt.h tree.h varasm.h vec.h wide-int.h.
	* cfgloopanal.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
	explow.h expmed.h fixed-value.h flags.h inchash.h insn-config.h
	real.h statistics.h stmt.h tree.h varasm.h wide-int.h.
	* loop-iv.c: Likewise.
	* lra-assigns.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
	explow.h expmed.h fixed-value.h flags.h inchash.h real.h
	statistics.h stmt.h tree.h varasm.h wide-int.h.
	* lra-constraints.c: Likewise.
	* lra-eliminations.c: Likewise.
	* lra-lives.c: Likewise.
	* lra-remat.c: Likewise.
	* bt-load.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
	explow.h expmed.h fixed-value.h inchash.h insn-config.h real.h
	statistics.h stmt.h tree.h varasm.h wide-int.h.
	* hw-doloop.c: Likewise.
	* ira-color.c: Likewise.
	* ira-emit.c: Likewise.
	* loop-doloop.c: Likewise.
	* loop-invariant.c: Likewise.
	* reload.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
	explow.h expmed.h fixed-value.h inchash.h real.h rtl.h
	statistics.h stmt.h tree.h varasm.h wide-int.h.
	* caller-save.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
	explow.h expmed.h fixed-value.h inchash.h real.h statistics.h
	stmt.h tree.h varasm.h wide-int.h.
	* combine-stack-adj.c: Likewise.
	* cse.c: Likewise.
	* ddg.c: Likewise.
	* ifcvt.c: Likewise.
	* ira-costs.c: Likewise.
	* jump.c: Likewise.
	* lra-coalesce.c: Likewise.
	* lra-spills.c: Likewise.
	* profile.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
	explow.h expmed.h fixed-value.h insn-config.h real.h statistics.h
	stmt.h varasm.h wide-int.h.
	* lra.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
	explow.h expmed.h fixed-value.h real.h statistics.h stmt.h
	varasm.h.
	* config/sh/sh_treg_combine.cc: Include alias.h calls.h dojump.h
	double-int.h explow.h expmed.h fixed-value.h flags.h real.h
	statistics.h stmt.h varasm.h wide-int.h.
	* reorg.c: Include alias.h calls.h dojump.h double-int.h explow.h
	expmed.h fixed-value.h inchash.h real.h statistics.h stmt.h tree.h
	varasm.h wide-int.h.
	* reload1.c: Include alias.h calls.h dojump.h double-int.h explow.h
	expmed.h fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
	* config/tilegx/tilegx.c: Include alias.h dojump.h double-int.h
	emit-rtl.h explow.h expmed.h fixed-value.h flags.h real.h
	statistics.h stmt.h.
	* config/tilepro/tilepro.c: Likewise.
	* config/mmix/mmix.c: Include alias.h dojump.h double-int.h emit-rtl.h
	explow.h expmed.h fixed-value.h real.h statistics.h stmt.h.
	* config/pdp11/pdp11.c: Likewise.
	* config/xtensa/xtensa.c: Likewise.
	* config/lm32/lm32.c: Include alias.h dojump.h double-int.h emit-rtl.h
	explow.h expmed.h fixed-value.h real.h statistics.h stmt.h
	varasm.h.
	* tree-chkp.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
	insn-config.h real.h rtl.h statistics.h stmt.h tm.h.
	* cilk-common.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
	insn-config.h real.h rtl.h statistics.h stmt.h tm.h varasm.h.
	* rtl-chkp.c: Likewise.
	* tree-chkp-opt.c: Likewise.
	* config/arm/arm-builtins.c: Include calls.h dojump.h emit-rtl.h explow.h
	expmed.h fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
	insn-config.h real.h statistics.h stmt.h varasm.h.
	* ipa-icf.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h
	statistics.h stmt.h.
	* tree-vect-data-refs.c: Likewise.
	* graphite-sese-to-poly.c: Include calls.h dojump.h emit-rtl.h explow.h
	expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
	rtl.h statistics.h stmt.h varasm.h.
	* internal-fn.c: Likewise.
	* ipa-icf-gimple.c: Likewise.
	* lto-section-out.c: Likewise.
	* tree-data-ref.c: Likewise.
	* tree-nested.c: Likewise.
	* tree-outof-ssa.c: Likewise.
	* tree-predcom.c: Likewise.
	* tree-pretty-print.c: Likewise.
	* tree-scalar-evolution.c: Likewise.
	* tree-ssa-strlen.c: Likewise.
	* tree-vect-loop.c: Likewise.
	* tree-vect-patterns.c: Likewise.
	* tree-vect-slp.c: Likewise.
	* tree-vect-stmts.c: Likewise.
	* tsan.c: Likewise.
	* targhooks.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h flags.h hashtab.h insn-config.h real.h statistics.h
	stmt.h.
	* config/sh/sh-mem.cc: Include calls.h dojump.h emit-rtl.h explow.h
	expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
	statistics.h stmt.h varasm.h.
	* loop-unroll.c: Likewise.
	* ubsan.c: Likewise.
	* tree-ssa-loop-prefetch.c: Include calls.h dojump.h emit-rtl.h explow.h
	expmed.h fixed-value.h flags.h hashtab.h real.h rtl.h statistics.h
	stmt.h varasm.h.
	* java/builtins.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h function.h hard-reg-set.h hashtab.h insn-config.h
	real.h statistics.h stmt.h varasm.h.
	* dse.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h function.h hashtab.h statistics.h stmt.h varasm.h.
	* tree-switch-conversion.c: Include calls.h dojump.h emit-rtl.h explow.h
	expmed.h fixed-value.h hashtab.h insn-config.h real.h rtl.h
	statistics.h stmt.h.
	* generic-match-head.c: Include calls.h dojump.h emit-rtl.h explow.h
	expmed.h fixed-value.h hashtab.h insn-config.h real.h rtl.h
	statistics.h stmt.h varasm.h.
	* gimple-match-head.c: Likewise.
	* lto-cgraph.c: Likewise.
	* lto-section-in.c: Likewise.
	* lto-streamer-in.c: Likewise.
	* lto-streamer-out.c: Likewise.
	* tree-affine.c: Likewise.
	* tree-cfg.c: Likewise.
	* tree-cfgcleanup.c: Likewise.
	* tree-if-conv.c: Likewise.
	* tree-into-ssa.c: Likewise.
	* tree-ssa-alias.c: Likewise.
	* tree-ssa-copyrename.c: Likewise.
	* tree-ssa-dse.c: Likewise.
	* tree-ssa-forwprop.c: Likewise.
	* tree-ssa-live.c: Likewise.
	* tree-ssa-math-opts.c: Likewise.
	* tree-ssa-pre.c: Likewise.
	* tree-ssa-sccvn.c: Likewise.
	* tree-tailcall.c: Likewise.
	* tree-vect-generic.c: Likewise.
	* tree-sra.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h hashtab.h insn-config.h real.h rtl.h stmt.h varasm.h.
	* stor-layout.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h hashtab.h insn-config.h real.h statistics.h stmt.h.
	* varasm.c: Likewise.
	* coverage.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h hashtab.h insn-config.h real.h statistics.h stmt.h
	varasm.h.
	* init-regs.c: Likewise.
	* ira.c: Likewise.
	* omp-low.c: Likewise.
	* stack-ptr-mod.c: Likewise.
	* tree-ssa-reassoc.c: Likewise.
	* tree-complex.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h hashtab.h insn-config.h rtl.h statistics.h stmt.h
	varasm.h.
	* dwarf2cfi.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h hashtab.h insn-config.h statistics.h stmt.h varasm.h.
	* shrink-wrap.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h hashtab.h real.h rtl.h statistics.h stmt.h.
	* recog.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h hashtab.h real.h rtl.h statistics.h stmt.h varasm.h.
	* tree-ssa-phiopt.c: Likewise.
	* config/darwin.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h hashtab.h real.h statistics.h stmt.h.
	* config/fr30/fr30.c: Likewise.
	* config/frv/frv.c: Likewise.
	* expr.c: Likewise.
	* final.c: Likewise.
	* optabs.c: Likewise.
	* passes.c: Likewise.
	* simplify-rtx.c: Likewise.
	* stmt.c: Likewise.
	* toplev.c: Likewise.
	* var-tracking.c: Likewise.
	* gcse.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
	* lower-subreg.c: Likewise.
	* postreload-gcse.c: Likewise.
	* ree.c: Likewise.
	* reginfo.c: Likewise.
	* store-motion.c: Likewise.
	* combine.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h hashtab.h real.h stmt.h varasm.h.
	* emit-rtl.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h hashtab.h statistics.h stmt.h.
	* dojump.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h hashtab.h statistics.h stmt.h varasm.h.
	* except.c: Likewise.
	* explow.c: Likewise.
	* tree-dfa.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h insn-config.h real.h rtl.h statistics.h stmt.h
	varasm.h.
	* gimple-fold.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h insn-config.h real.h rtl.h statistics.h varasm.h.
	* tree-ssa-structalias.c: Likewise.
	* cfgexpand.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h insn-config.h real.h statistics.h.
	* calls.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h insn-config.h real.h statistics.h stmt.h.
	* bb-reorder.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h insn-config.h real.h statistics.h stmt.h varasm.h.
	* cfgbuild.c: Likewise.
	* function.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h real.h rtl.h statistics.h stmt.h.
	* cfgrtl.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
	* dbxout.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h real.h statistics.h stmt.h.
	* auto-inc-dec.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h real.h statistics.h stmt.h varasm.h.
	* cprop.c: Likewise.
	* modulo-sched.c: Likewise.
	* postreload.c: Likewise.
	* ccmp.c: Include calls.h dojump.h emit-rtl.h explow.h fixed-value.h
	flags.h function.h hard-reg-set.h hashtab.h insn-config.h real.h
	statistics.h stmt.h varasm.h.
	* gimple-ssa-strength-reduction.c: Include calls.h dojump.h emit-rtl.h
	explow.h fixed-value.h flags.h hashtab.h insn-config.h real.h
	rtl.h statistics.h stmt.h varasm.h.
	* tree-ssa-loop-ivopts.c: Include calls.h dojump.h emit-rtl.h explow.h
	fixed-value.h flags.h hashtab.h real.h rtl.h statistics.h stmt.h
	varasm.h.
	* expmed.c: Include calls.h dojump.h emit-rtl.h explow.h fixed-value.h
	function.h hard-reg-set.h hashtab.h real.h statistics.h stmt.h
	varasm.h.
	* target-globals.c: Include calls.h dojump.h emit-rtl.h explow.h
	fixed-value.h function.h hashtab.h real.h statistics.h stmt.h
	varasm.h.
	* tree-ssa-address.c: Include calls.h dojump.h emit-rtl.h explow.h
	fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
	* cfgcleanup.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
	function.h real.h statistics.h stmt.h varasm.h.
	* alias.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
	insn-config.h real.h statistics.h stmt.h.
	* dwarf2out.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
	statistics.h stmt.h.
	* config/nvptx/nvptx.c: Include dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h flags.h hard-reg-set.h insn-config.h real.h
	statistics.h stmt.h varasm.h.
	* gimplify.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
	flags.h hashtab.h insn-config.h real.h rtl.h statistics.h.
	* asan.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
	flags.h hashtab.h insn-config.h real.h rtl.h statistics.h stmt.h.
	* ipa-devirt.c: Include dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h
	statistics.h stmt.h varasm.h.
	* ipa-polymorphic-call.c: Likewise.
	* config/aarch64/aarch64.c: Include dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h flags.h hashtab.h insn-config.h real.h statistics.h
	stmt.h.
	* config/c6x/c6x.c: Likewise.
	* config/aarch64/aarch64-builtins.c: Include dojump.h emit-rtl.h explow.h
	expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
	statistics.h stmt.h varasm.h.
	* ipa-prop.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
	hashtab.h insn-config.h real.h rtl.h statistics.h stmt.h varasm.h.
	* ipa-split.c: Likewise.
	* tree-eh.c: Likewise.
	* tree-ssa-dce.c: Likewise.
	* tree-ssa-loop-niter.c: Likewise.
	* tree-vrp.c: Likewise.
	* config/nds32/nds32-cost.c: Include dojump.h emit-rtl.h explow.h
	expmed.h fixed-value.h hashtab.h insn-config.h real.h statistics.h
	stmt.h.
	* config/nds32/nds32-fp-as-gp.c: Likewise.
	* config/nds32/nds32-intrinsic.c: Likewise.
	* config/nds32/nds32-isr.c: Likewise.
	* config/nds32/nds32-md-auxiliary.c: Likewise.
	* config/nds32/nds32-memory-manipulation.c: Likewise.
	* config/nds32/nds32-pipelines-auxiliary.c: Likewise.
	* config/nds32/nds32-predicates.c: Likewise.
	* config/nds32/nds32.c: Likewise.
	* config/cris/cris.c: Include dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h hashtab.h real.h statistics.h.
	* config/alpha/alpha.c: Include dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h hashtab.h real.h statistics.h stmt.h.
	* config/arm/arm.c: Likewise.
	* config/avr/avr.c: Likewise.
	* config/bfin/bfin.c: Likewise.
	* config/h8300/h8300.c: Likewise.
	* config/i386/i386.c: Likewise.
	* config/ia64/ia64.c: Likewise.
	* config/iq2000/iq2000.c: Likewise.
	* config/m32c/m32c.c: Likewise.
	* config/m32r/m32r.c: Likewise.
	* config/m68k/m68k.c: Likewise.
	* config/mcore/mcore.c: Likewise.
	* config/mep/mep.c: Likewise.
	* config/mips/mips.c: Likewise.
	* config/mn10300/mn10300.c: Likewise.
	* config/moxie/moxie.c: Likewise.
	* config/pa/pa.c: Likewise.
	* config/rl78/rl78.c: Likewise.
	* config/rx/rx.c: Likewise.
	* config/s390/s390.c: Likewise.
	* config/sh/sh.c: Likewise.
	* config/sparc/sparc.c: Likewise.
	* config/spu/spu.c: Likewise.
	* config/stormy16/stormy16.c: Likewise.
	* config/v850/v850.c: Likewise.
	* config/vax/vax.c: Likewise.
	* config/cr16/cr16.c: Include dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
	* config/msp430/msp430.c: Likewise.
	* predict.c: Likewise.
	* value-prof.c: Likewise.
	* config/epiphany/epiphany.c: Include dojump.h emit-rtl.h explow.h
	expmed.h fixed-value.h hashtab.h statistics.h stmt.h.
	* config/microblaze/microblaze.c: Likewise.
	* config/nios2/nios2.c: Likewise.
	* config/rs6000/rs6000.c: Likewise.
	* tree.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
	insn-config.h real.h rtl.h statistics.h stmt.h.
	* cgraph.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
	insn-config.h real.h statistics.h stmt.h.
	* fold-const.c: Include dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h insn-config.h real.h statistics.h stmt.h varasm.h.
	* tree-inline.c: Include dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
	* builtins.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
	real.h statistics.h stmt.h.
	* config/arc/arc.c: Include dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h statistics.h stmt.h.
	* config/visium/visium.c: Include dojump.h emit-rtl.h explow.h expmed.h
	stmt.h.

[-- Attachment #3: expr-patch-final.txt --]
[-- Type: text/plain, Size: 215360 bytes --]

diff --git a/gcc/alias.c b/gcc/alias.c
index 9261cd8..a7160f3 100644
--- a/gcc/alias.c
+++ b/gcc/alias.c
@@ -35,19 +35,23 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree.h"
 #include "fold-const.h"
 #include "varasm.h"
-#include "expr.h"
-#include "tm_p.h"
 #include "hashtab.h"
-#include "hash-set.h"
-#include "vec.h"
-#include "machmode.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
-#include "alias.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
 #include "emit-rtl.h"
+#include "stmt.h"
+#include "expr.h"
+#include "tm_p.h"
 #include "regs.h"
-#include "flags.h"
 #include "diagnostic-core.h"
 #include "cselib.h"
 #include "hash-map.h"
diff --git a/gcc/asan.c b/gcc/asan.c
index 9585f6c..b7c2b11 100644
--- a/gcc/asan.c
+++ b/gcc/asan.c
@@ -38,7 +38,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "predict.h"
 #include "tm.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -48,7 +47,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "internal-fn.h"
 #include "gimple-expr.h"
 #include "is-a.h"
-#include "inchash.h"
 #include "gimple.h"
 #include "gimplify.h"
 #include "gimple-iterator.h"
@@ -66,6 +64,18 @@ along with GCC; see the file COPYING3.  If not see
 #include "asan.h"
 #include "gimple-pretty-print.h"
 #include "target.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
diff --git a/gcc/auto-inc-dec.c b/gcc/auto-inc-dec.c
index 50258d5..7e3dd89 100644
--- a/gcc/auto-inc-dec.c
+++ b/gcc/auto-inc-dec.c
@@ -36,11 +36,7 @@ along with GCC; see the file COPYING3.  If not see
 #include "tm_p.h"
 #include "hard-reg-set.h"
 #include "predict.h"
-#include "vec.h"
 #include "hashtab.h"
-#include "hash-set.h"
-#include "machmode.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -52,6 +48,16 @@ along with GCC; see the file COPYING3.  If not see
 #include "except.h"
 #include "diagnostic-core.h"
 #include "recog.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tree-pass.h"
 #include "df.h"
diff --git a/gcc/bb-reorder.c b/gcc/bb-reorder.c
index 0b99db1..c2a3be3 100644
--- a/gcc/bb-reorder.c
+++ b/gcc/bb-reorder.c
@@ -98,14 +98,21 @@
 #include "output.h"
 #include "target.h"
 #include "hashtab.h"
-#include "hash-set.h"
-#include "vec.h"
-#include "machmode.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "tm_p.h"
 #include "obstack.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "optabs.h"
 #include "params.h"
diff --git a/gcc/bt-load.c b/gcc/bt-load.c
index 5030aae..c028281 100644
--- a/gcc/bt-load.c
+++ b/gcc/bt-load.c
@@ -27,15 +27,31 @@ along with GCC; see the file COPYING3.  If not see
 #include "regs.h"
 #include "target.h"
 #include "symtab.h"
-#include "expr.h"
-#include "flags.h"
-#include "insn-attr.h"
 #include "hashtab.h"
 #include "hash-set.h"
 #include "vec.h"
 #include "machmode.h"
 #include "input.h"
 #include "function.h"
+#include "flags.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "alias.h"
+#include "wide-int.h"
+#include "inchash.h"
+#include "tree.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
+#include "expr.h"
+#include "insn-attr.h"
 #include "except.h"
 #include "tm_p.h"
 #include "diagnostic-core.h"
diff --git a/gcc/builtins.c b/gcc/builtins.c
index 9280704..03b50ea 100644
--- a/gcc/builtins.c
+++ b/gcc/builtins.c
@@ -24,7 +24,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "machmode.h"
 #include "rtl.h"
 #include "hash-set.h"
-#include "machmode.h"
 #include "vec.h"
 #include "double-int.h"
 #include "input.h"
@@ -41,11 +40,8 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-object-size.h"
 #include "realmpfr.h"
 #include "predict.h"
-#include "vec.h"
 #include "hashtab.h"
-#include "hash-set.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "cfgrtl.h"
 #include "basic-block.h"
@@ -58,6 +54,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "regs.h"
 #include "except.h"
 #include "insn-config.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
diff --git a/gcc/caller-save.c b/gcc/caller-save.c
index 82003a9..3b01941 100644
--- a/gcc/caller-save.c
+++ b/gcc/caller-save.c
@@ -40,6 +40,21 @@ along with GCC; see the file COPYING3.  If not see
 #include "df.h"
 #include "reload.h"
 #include "symtab.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "alias.h"
+#include "wide-int.h"
+#include "inchash.h"
+#include "tree.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "diagnostic-core.h"
 #include "tm_p.h"
diff --git a/gcc/calls.c b/gcc/calls.c
index 36aa19f..1c2f0ad 100644
--- a/gcc/calls.c
+++ b/gcc/calls.c
@@ -38,12 +38,8 @@ along with GCC; see the file COPYING3.  If not see
 #include "stringpool.h"
 #include "attribs.h"
 #include "predict.h"
-#include "vec.h"
 #include "hashtab.h"
-#include "hash-set.h"
-#include "machmode.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "basic-block.h"
 #include "tree-ssa-alias.h"
@@ -52,6 +48,16 @@ along with GCC; see the file COPYING3.  If not see
 #include "is-a.h"
 #include "gimple.h"
 #include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
diff --git a/gcc/calls.h b/gcc/calls.h
index 4e65d54..fc8458c 100644
--- a/gcc/calls.h
+++ b/gcc/calls.h
@@ -27,5 +27,11 @@ extern bool gimple_alloca_call_p (const_gimple);
 extern bool alloca_call_p (const_tree);
 extern bool must_pass_in_stack_var_size (machine_mode, const_tree);
 extern bool must_pass_in_stack_var_size_or_pad (machine_mode, const_tree);
+extern rtx prepare_call_address (tree, rtx, rtx, rtx *, int, int);
+extern bool shift_return_value (machine_mode, bool, rtx);
+extern rtx expand_call (tree, rtx, int);
+extern void fixup_tail_calls (void);
+
+
 
 #endif // GCC_CALLS_H
diff --git a/gcc/ccmp.c b/gcc/ccmp.c
index 3216669..1130329 100644
--- a/gcc/ccmp.c
+++ b/gcc/ccmp.c
@@ -37,6 +37,21 @@ along with GCC; see the file COPYING3.  If not see
 #include "stringpool.h"
 #include "stor-layout.h"
 #include "regs.h"
+#include "hashtab.h"
+#include "hard-reg-set.h"
+#include "function.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
@@ -60,7 +75,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "cfgexpand.h"
 #include "tree-phinodes.h"
 #include "ssa-iterators.h"
-#include "expmed.h"
 #include "ccmp.h"
 
 /* The following functions expand conditional compare (CCMP) instructions.
diff --git a/gcc/cfgbuild.c b/gcc/cfgbuild.c
index c26abbf..7cbed50 100644
--- a/gcc/cfgbuild.c
+++ b/gcc/cfgbuild.c
@@ -35,11 +35,7 @@ along with GCC; see the file COPYING3.  If not see
 #include "rtl.h"
 #include "hard-reg-set.h"
 #include "predict.h"
-#include "vec.h"
 #include "hashtab.h"
-#include "hash-set.h"
-#include "machmode.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -50,6 +46,17 @@ along with GCC; see the file COPYING3.  If not see
 #include "regs.h"
 #include "flags.h"
 #include "except.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "diagnostic-core.h"
 #include "timevar.h"
diff --git a/gcc/cfgcleanup.c b/gcc/cfgcleanup.c
index f26458e..cee152e 100644
--- a/gcc/cfgcleanup.c
+++ b/gcc/cfgcleanup.c
@@ -55,14 +55,20 @@ along with GCC; see the file COPYING3.  If not see
 #include "tm_p.h"
 #include "target.h"
 #include "hashtab.h"
-#include "hash-set.h"
-#include "vec.h"
-#include "machmode.h"
-#include "input.h"
 #include "function.h" /* For inline functions in emit-rtl.h they need crtl.  */
 #include "emit-rtl.h"
 #include "tree-pass.h"
 #include "cfgloop.h"
+#include "function.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -75,7 +81,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "df.h"
 #include "dce.h"
 #include "dbgcnt.h"
-#include "emit-rtl.h"
 #include "rtl-iter.h"
 
 #define FORWARDER_BLOCK_P(BB) ((BB)->flags & BB_FORWARDER_BLOCK)
diff --git a/gcc/cfgexpand.c b/gcc/cfgexpand.c
index 366fc0a..766a8f9 100644
--- a/gcc/cfgexpand.c
+++ b/gcc/cfgexpand.c
@@ -41,11 +41,7 @@ along with GCC; see the file COPYING3.  If not see
 #include "print-tree.h"
 #include "tm_p.h"
 #include "predict.h"
-#include "vec.h"
 #include "hashtab.h"
-#include "hash-set.h"
-#include "machmode.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -56,6 +52,16 @@ along with GCC; see the file COPYING3.  If not see
 #include "basic-block.h"
 #include "insn-codes.h"
 #include "optabs.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
 #include "expr.h"
 #include "langhooks.h"
 #include "bitmap.h"
@@ -80,7 +86,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-ssa.h"
 #include "tree-pass.h"
 #include "except.h"
-#include "flags.h"
 #include "diagnostic.h"
 #include "gimple-pretty-print.h"
 #include "toplev.h"
diff --git a/gcc/cfgloopanal.c b/gcc/cfgloopanal.c
index 444e259..8b05b4d 100644
--- a/gcc/cfgloopanal.c
+++ b/gcc/cfgloopanal.c
@@ -36,6 +36,23 @@ along with GCC; see the file COPYING3.  If not see
 #include "basic-block.h"
 #include "cfgloop.h"
 #include "symtab.h"
+#include "flags.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "alias.h"
+#include "wide-int.h"
+#include "inchash.h"
+#include "tree.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "graphds.h"
 #include "params.h"
diff --git a/gcc/cfgrtl.c b/gcc/cfgrtl.c
index f20fa7a..0e27edd 100644
--- a/gcc/cfgrtl.c
+++ b/gcc/cfgrtl.c
@@ -71,6 +71,17 @@ along with GCC; see the file COPYING3.  If not see
 #include "obstack.h"
 #include "insn-attr.h"
 #include "insn-config.h"
+#include "rtl.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "target.h"
 #include "common/common-target.h"
diff --git a/gcc/cgraph.c b/gcc/cgraph.c
index f3f7fec..1a06cad 100644
--- a/gcc/cgraph.c
+++ b/gcc/cgraph.c
@@ -44,7 +44,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-inline.h"
 #include "langhooks.h"
 #include "hashtab.h"
-#include "hash-set.h"
 #include "toplev.h"
 #include "flags.h"
 #include "debug.h"
@@ -56,10 +55,7 @@ along with GCC; see the file COPYING3.  If not see
 #include "hash-map.h"
 #include "is-a.h"
 #include "plugin-api.h"
-#include "vec.h"
-#include "machmode.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "ipa-ref.h"
 #include "cgraph.h"
@@ -87,6 +83,15 @@ along with GCC; see the file COPYING3.  If not see
 #include "ipa-inline.h"
 #include "cfgloop.h"
 #include "gimple-pretty-print.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tree-dfa.h"
 #include "profile.h"
diff --git a/gcc/cilk-common.c b/gcc/cilk-common.c
index 36d023a..ab097c4 100644
--- a/gcc/cilk-common.c
+++ b/gcc/cilk-common.c
@@ -38,6 +38,23 @@ along with GCC; see the file COPYING3.  If not see
 #include "stringpool.h"
 #include "stor-layout.h"
 #include "langhooks.h"
+#include "hashtab.h"
+#include "tm.h"
+#include "hard-reg-set.h"
+#include "function.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
diff --git a/gcc/combine-stack-adj.c b/gcc/combine-stack-adj.c
index 4c98f00..83cdfae 100644
--- a/gcc/combine-stack-adj.c
+++ b/gcc/combine-stack-adj.c
@@ -56,6 +56,21 @@ along with GCC; see the file COPYING3.  If not see
 #include "input.h"
 #include "function.h"
 #include "symtab.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "alias.h"
+#include "wide-int.h"
+#include "inchash.h"
+#include "tree.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "predict.h"
 #include "dominance.h"
diff --git a/gcc/combine.c b/gcc/combine.c
index 101cf35..597aa80 100644
--- a/gcc/combine.c
+++ b/gcc/combine.c
@@ -96,7 +96,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "regs.h"
 #include "hard-reg-set.h"
 #include "predict.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -105,6 +104,17 @@ along with GCC; see the file COPYING3.  If not see
 #include "basic-block.h"
 #include "insn-config.h"
 /* Include expr.h after insn-config.h so we get HAVE_conditional_move.  */
+#include "hashtab.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "insn-attr.h"
 #include "recog.h"
@@ -123,8 +133,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "ipa-ref.h"
 #include "cgraph.h"
 #include "obstack.h"
-#include "statistics.h"
-#include "params.h"
 #include "rtl-iter.h"
 
 /* Number of attempts to combine instructions in this function.  */
diff --git a/gcc/config/aarch64/aarch64-builtins.c b/gcc/config/aarch64/aarch64-builtins.c
index f45169e..87f1ac2 100644
--- a/gcc/config/aarch64/aarch64-builtins.c
+++ b/gcc/config/aarch64/aarch64-builtins.c
@@ -37,6 +37,20 @@
 #include "stor-layout.h"
 #include "stringpool.h"
 #include "calls.h"
+#include "hashtab.h"
+#include "hard-reg-set.h"
+#include "function.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tm_p.h"
 #include "recog.h"
@@ -45,12 +59,8 @@
 #include "insn-codes.h"
 #include "optabs.h"
 #include "hash-table.h"
-#include "vec.h"
 #include "ggc.h"
 #include "predict.h"
-#include "hard-reg-set.h"
-#include "input.h"
-#include "function.h"
 #include "dominance.h"
 #include "cfg.h"
 #include "cfgrtl.h"
diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c
index 5100532..0207fc4 100644
--- a/gcc/config/aarch64/aarch64.c
+++ b/gcc/config/aarch64/aarch64.c
@@ -53,6 +53,18 @@
 #include "df.h"
 #include "hard-reg-set.h"
 #include "output.h"
+#include "hashtab.h"
+#include "function.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "reload.h"
 #include "toplev.h"
@@ -60,8 +72,6 @@
 #include "target-def.h"
 #include "targhooks.h"
 #include "ggc.h"
-#include "input.h"
-#include "function.h"
 #include "tm_p.h"
 #include "recog.h"
 #include "langhooks.h"
diff --git a/gcc/config/alpha/alpha.c b/gcc/config/alpha/alpha.c
index afb49bb..0c0df68 100644
--- a/gcc/config/alpha/alpha.c
+++ b/gcc/config/alpha/alpha.c
@@ -46,14 +46,22 @@ along with GCC; see the file COPYING3.  If not see
 #include "insn-attr.h"
 #include "flags.h"
 #include "recog.h"
+#include "hashtab.h"
+#include "function.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
 #include "reload.h"
 #include "obstack.h"
 #include "except.h"
-#include "input.h"
-#include "function.h"
 #include "diagnostic-core.h"
 #include "ggc.h"
 #include "tm_p.h"
diff --git a/gcc/config/arc/arc.c b/gcc/config/arc/arc.c
index efba8a3..ab00ed2 100644
--- a/gcc/config/arc/arc.c
+++ b/gcc/config/arc/arc.c
@@ -55,10 +55,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "conditions.h"
 #include "insn-flags.h"
 #include "hashtab.h"
-#include "hash-set.h"
-#include "vec.h"
-#include "machmode.h"
-#include "input.h"
 #include "function.h"
 #include "toplev.h"
 #include "ggc.h"
@@ -67,6 +63,13 @@ along with GCC; see the file COPYING3.  If not see
 #include "output.h"
 #include "insn-attr.h"
 #include "flags.h"
+#include "statistics.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "recog.h"
 #include "debug.h"
@@ -89,7 +92,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-pass.h"
 #include "context.h"
 #include "pass_manager.h"
-#include "wide-int.h"
 #include "builtins.h"
 #include "rtl-iter.h"
 
diff --git a/gcc/config/arm/arm-builtins.c b/gcc/config/arm/arm-builtins.c
index 739369d..37f27d7 100644
--- a/gcc/config/arm/arm-builtins.c
+++ b/gcc/config/arm/arm-builtins.c
@@ -34,6 +34,21 @@
 #include "tree.h"
 #include "fold-const.h"
 #include "stor-layout.h"
+#include "hashtab.h"
+#include "hard-reg-set.h"
+#include "function.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tm_p.h"
 #include "recog.h"
diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c
index 8ca2dd8..acb3ba0 100644
--- a/gcc/config/arm/arm.c
+++ b/gcc/config/arm/arm.c
@@ -50,8 +50,16 @@
 #include "insn-attr.h"
 #include "flags.h"
 #include "reload.h"
-#include "input.h"
 #include "function.h"
+#include "hashtab.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
diff --git a/gcc/config/avr/avr.c b/gcc/config/avr/avr.c
index 66406be..c7074f0 100644
--- a/gcc/config/avr/avr.c
+++ b/gcc/config/avr/avr.c
@@ -48,12 +48,20 @@
 #include "stor-layout.h"
 #include "stringpool.h"
 #include "output.h"
+#include "hashtab.h"
+#include "function.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "c-family/c-common.h"
 #include "diagnostic-core.h"
 #include "obstack.h"
-#include "input.h"
-#include "function.h"
 #include "recog.h"
 #include "optabs.h"
 #include "ggc.h"
diff --git a/gcc/config/bfin/bfin.c b/gcc/config/bfin/bfin.c
index bebbce3..1868c53 100644
--- a/gcc/config/bfin/bfin.c
+++ b/gcc/config/bfin/bfin.c
@@ -46,10 +46,18 @@
 #include "calls.h"
 #include "flags.h"
 #include "except.h"
-#include "input.h"
 #include "function.h"
 #include "target.h"
 #include "target-def.h"
+#include "hashtab.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "diagnostic-core.h"
 #include "recog.h"
diff --git a/gcc/config/c6x/c6x.c b/gcc/config/c6x/c6x.c
index fff0b84..03f6b3f 100644
--- a/gcc/config/c6x/c6x.c
+++ b/gcc/config/c6x/c6x.c
@@ -43,6 +43,19 @@
 #include "output.h"
 #include "insn-attr.h"
 #include "insn-codes.h"
+#include "hashtab.h"
+#include "hard-reg-set.h"
+#include "function.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "regs.h"
 #include "optabs.h"
@@ -63,9 +76,6 @@
 #include "tm-preds.h"
 #include "tm-constrs.h"
 #include "df.h"
-#include "hard-reg-set.h"
-#include "input.h"
-#include "function.h"
 #include "diagnostic-core.h"
 #include "hash-map.h"
 #include "is-a.h"
diff --git a/gcc/config/cr16/cr16.c b/gcc/config/cr16/cr16.c
index 213dc36..47468b1 100644
--- a/gcc/config/cr16/cr16.c
+++ b/gcc/config/cr16/cr16.c
@@ -46,9 +46,18 @@
 #include "insn-attr.h"
 #include "flags.h"
 #include "except.h"
-#include "input.h"
 #include "function.h"
 #include "recog.h"
+#include "hashtab.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "optabs.h"
 #include "diagnostic-core.h"
diff --git a/gcc/config/cris/cris.c b/gcc/config/cris/cris.c
index 15dcca2..650402e 100644
--- a/gcc/config/cris/cris.c
+++ b/gcc/config/cris/cris.c
@@ -44,10 +44,17 @@ along with GCC; see the file COPYING3.  If not see
 #include "stor-layout.h"
 #include "calls.h"
 #include "stmt.h"
+#include "hashtab.h"
+#include "function.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
 #include "expr.h"
 #include "except.h"
-#include "input.h"
-#include "function.h"
 #include "diagnostic-core.h"
 #include "recog.h"
 #include "reload.h"
diff --git a/gcc/config/darwin.c b/gcc/config/darwin.c
index c12a17c..896f2ad 100644
--- a/gcc/config/darwin.c
+++ b/gcc/config/darwin.c
@@ -45,10 +45,19 @@ along with GCC; see the file COPYING3.  If not see
 #include "stringpool.h"
 #include "varasm.h"
 #include "stor-layout.h"
+#include "hashtab.h"
+#include "function.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "reload.h"
-#include "input.h"
-#include "function.h"
 #include "ggc.h"
 #include "langhooks.h"
 #include "target.h"
diff --git a/gcc/config/epiphany/epiphany.c b/gcc/config/epiphany/epiphany.c
index 102acc9..12aac13 100644
--- a/gcc/config/epiphany/epiphany.c
+++ b/gcc/config/epiphany/epiphany.c
@@ -46,10 +46,17 @@ along with GCC; see the file COPYING3.  If not see
 #include "output.h"
 #include "insn-attr.h"
 #include "flags.h"
-#include "input.h"
 #include "function.h"
 #include "insn-codes.h"
 #include "optabs.h"
+#include "hashtab.h"
+#include "statistics.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "diagnostic-core.h"
 #include "recog.h"
@@ -67,7 +74,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "basic-block.h"
 #include "df.h"
 #include "langhooks.h"
-#include "insn-codes.h"
 #include "ggc.h"
 #include "tm-constrs.h"
 #include "tree-pass.h"	/* for current_pass */
diff --git a/gcc/config/fr30/fr30.c b/gcc/config/fr30/fr30.c
index 2c00ff5..55fc078 100644
--- a/gcc/config/fr30/fr30.c
+++ b/gcc/config/fr30/fr30.c
@@ -46,11 +46,20 @@
 #include "stor-layout.h"
 #include "varasm.h"
 #include "output.h"
+#include "hashtab.h"
+#include "function.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "obstack.h"
 #include "except.h"
-#include "input.h"
-#include "function.h"
 #include "dominance.h"
 #include "cfg.h"
 #include "cfgrtl.h"
diff --git a/gcc/config/frv/frv.c b/gcc/config/frv/frv.c
index eb1ef53..4105fb3 100644
--- a/gcc/config/frv/frv.c
+++ b/gcc/config/frv/frv.c
@@ -46,11 +46,20 @@ along with GCC; see the file COPYING3.  If not see
 #include "flags.h"
 #include "recog.h"
 #include "reload.h"
+#include "hashtab.h"
+#include "function.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "obstack.h"
 #include "except.h"
-#include "input.h"
-#include "function.h"
 #include "insn-codes.h"
 #include "optabs.h"
 #include "diagnostic-core.h"
diff --git a/gcc/config/h8300/h8300.c b/gcc/config/h8300/h8300.c
index 720e0e4..5968e55 100644
--- a/gcc/config/h8300/h8300.c
+++ b/gcc/config/h8300/h8300.c
@@ -46,9 +46,17 @@ along with GCC; see the file COPYING3.  If not see
 #include "insn-attr.h"
 #include "flags.h"
 #include "recog.h"
-#include "expr.h"
-#include "input.h"
+#include "hashtab.h"
 #include "function.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
+#include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
 #include "diagnostic-core.h"
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index 7a39f80..e4204a1 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -48,9 +48,17 @@ along with GCC; see the file COPYING3.  If not see
 #include "insn-attr.h"
 #include "flags.h"
 #include "except.h"
-#include "input.h"
 #include "function.h"
 #include "recog.h"
+#include "hashtab.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "optabs.h"
 #include "diagnostic-core.h"
@@ -97,7 +105,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "diagnostic.h"
 #include "dumpfile.h"
 #include "tree-pass.h"
-#include "wide-int.h"
 #include "context.h"
 #include "pass_manager.h"
 #include "target-globals.h"
diff --git a/gcc/config/ia64/ia64.c b/gcc/config/ia64/ia64.c
index 40f1ae4..6ef22d9 100644
--- a/gcc/config/ia64/ia64.c
+++ b/gcc/config/ia64/ia64.c
@@ -47,12 +47,20 @@ along with GCC; see the file COPYING3.  If not see
 #include "insn-attr.h"
 #include "flags.h"
 #include "recog.h"
+#include "hashtab.h"
+#include "function.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
 #include "except.h"
-#include "input.h"
-#include "function.h"
 #include "ggc.h"
 #include "predict.h"
 #include "dominance.h"
diff --git a/gcc/config/iq2000/iq2000.c b/gcc/config/iq2000/iq2000.c
index 8d2b44f..86bcaa6 100644
--- a/gcc/config/iq2000/iq2000.c
+++ b/gcc/config/iq2000/iq2000.c
@@ -43,8 +43,16 @@ along with GCC; see the file COPYING3.  If not see
 #include "output.h"
 #include "insn-attr.h"
 #include "flags.h"
-#include "input.h"
 #include "function.h"
+#include "hashtab.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
diff --git a/gcc/config/lm32/lm32.c b/gcc/config/lm32/lm32.c
index ae995cf..b133297 100644
--- a/gcc/config/lm32/lm32.c
+++ b/gcc/config/lm32/lm32.c
@@ -54,8 +54,19 @@
 #include "tree.h"
 #include "fold-const.h"
 #include "calls.h"
-#include "expr.h"
 #include "flags.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "alias.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
+#include "expr.h"
 #include "reload.h"
 #include "tm_p.h"
 #include "diagnostic-core.h"
diff --git a/gcc/config/m32c/m32c.c b/gcc/config/m32c/m32c.c
index 817650c..ffdeee0 100644
--- a/gcc/config/m32c/m32c.c
+++ b/gcc/config/m32c/m32c.c
@@ -49,12 +49,20 @@
 #include "stor-layout.h"
 #include "varasm.h"
 #include "calls.h"
+#include "hashtab.h"
+#include "function.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
 #include "except.h"
-#include "input.h"
-#include "function.h"
 #include "ggc.h"
 #include "target.h"
 #include "target-def.h"
diff --git a/gcc/config/m32r/m32r.c b/gcc/config/m32r/m32r.c
index 31021fc..f9c0493 100644
--- a/gcc/config/m32r/m32r.c
+++ b/gcc/config/m32r/m32r.c
@@ -44,9 +44,17 @@
 #include "dbxout.h"
 #include "insn-attr.h"
 #include "flags.h"
-#include "expr.h"
-#include "input.h"
+#include "hashtab.h"
 #include "function.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
+#include "expr.h"
 #include "recog.h"
 #include "diagnostic-core.h"
 #include "ggc.h"
diff --git a/gcc/config/m68k/m68k.c b/gcc/config/m68k/m68k.c
index 6dcb6a2..fb82105 100644
--- a/gcc/config/m68k/m68k.c
+++ b/gcc/config/m68k/m68k.c
@@ -37,7 +37,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "varasm.h"
 #include "rtl.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "regs.h"
 #include "insn-config.h"
@@ -46,13 +45,22 @@ along with GCC; see the file COPYING3.  If not see
 #include "insn-attr.h"
 #include "recog.h"
 #include "diagnostic-core.h"
+#include "hashtab.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "reload.h"
 #include "tm_p.h"
 #include "target.h"
 #include "target-def.h"
 #include "debug.h"
-#include "flags.h"
 #include "dominance.h"
 #include "cfg.h"
 #include "cfgrtl.h"
diff --git a/gcc/config/mcore/mcore.c b/gcc/config/mcore/mcore.c
index d3a4885..868b1ed 100644
--- a/gcc/config/mcore/mcore.c
+++ b/gcc/config/mcore/mcore.c
@@ -47,11 +47,19 @@
 #include "insn-attr.h"
 #include "flags.h"
 #include "obstack.h"
+#include "hashtab.h"
+#include "function.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "reload.h"
 #include "recog.h"
-#include "input.h"
-#include "function.h"
 #include "ggc.h"
 #include "diagnostic-core.h"
 #include "target.h"
diff --git a/gcc/config/mep/mep.c b/gcc/config/mep/mep.c
index 9e88849..251e69c 100644
--- a/gcc/config/mep/mep.c
+++ b/gcc/config/mep/mep.c
@@ -48,11 +48,18 @@ along with GCC; see the file COPYING3.  If not see
 #include "flags.h"
 #include "recog.h"
 #include "obstack.h"
-#include "tree.h"
+#include "hashtab.h"
+#include "function.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "except.h"
-#include "input.h"
-#include "function.h"
 #include "insn-codes.h"
 #include "optabs.h"
 #include "reload.h"
diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c
index bf0a4d8..8ef40df 100644
--- a/gcc/config/microblaze/microblaze.c
+++ b/gcc/config/microblaze/microblaze.c
@@ -45,10 +45,17 @@
 #include "varasm.h"
 #include "stor-layout.h"
 #include "calls.h"
-#include "input.h"
 #include "function.h"
-#include "expr.h"
+#include "hashtab.h"
 #include "flags.h"
+#include "statistics.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
+#include "expr.h"
 #include "reload.h"
 #include "output.h"
 #include "ggc.h"
diff --git a/gcc/config/mips/mips.c b/gcc/config/mips/mips.c
index 327aa29..a690b45 100644
--- a/gcc/config/mips/mips.c
+++ b/gcc/config/mips/mips.c
@@ -48,13 +48,21 @@ along with GCC; see the file COPYING3.  If not see
 #include "stringpool.h"
 #include "stor-layout.h"
 #include "calls.h"
-#include "input.h"
 #include "function.h"
+#include "hashtab.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
 #include "libfuncs.h"
-#include "flags.h"
 #include "reload.h"
 #include "tm_p.h"
 #include "ggc.h"
diff --git a/gcc/config/mmix/mmix.c b/gcc/config/mmix/mmix.c
index 1849c7f..2336400 100644
--- a/gcc/config/mmix/mmix.c
+++ b/gcc/config/mmix/mmix.c
@@ -50,6 +50,16 @@ along with GCC; see the file COPYING3.  If not see
 #include "varasm.h"
 #include "stor-layout.h"
 #include "calls.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "alias.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "diagnostic-core.h"
 #include "recog.h"
diff --git a/gcc/config/mn10300/mn10300.c b/gcc/config/mn10300/mn10300.c
index b65deea..58c97e8 100644
--- a/gcc/config/mn10300/mn10300.c
+++ b/gcc/config/mn10300/mn10300.c
@@ -45,11 +45,19 @@
 #include "flags.h"
 #include "recog.h"
 #include "reload.h"
+#include "hashtab.h"
+#include "function.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
-#include "input.h"
-#include "function.h"
 #include "obstack.h"
 #include "diagnostic-core.h"
 #include "tm_p.h"
diff --git a/gcc/config/moxie/moxie.c b/gcc/config/moxie/moxie.c
index c178777..2450a82 100644
--- a/gcc/config/moxie/moxie.c
+++ b/gcc/config/moxie/moxie.c
@@ -48,12 +48,20 @@
 #include "stor-layout.h"
 #include "varasm.h"
 #include "calls.h"
+#include "hashtab.h"
+#include "function.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
 #include "except.h"
-#include "input.h"
-#include "function.h"
 #include "ggc.h"
 #include "target.h"
 #include "target-def.h"
diff --git a/gcc/config/msp430/msp430.c b/gcc/config/msp430/msp430.c
index 5317217..35d2a7d 100644
--- a/gcc/config/msp430/msp430.c
+++ b/gcc/config/msp430/msp430.c
@@ -43,8 +43,17 @@
 #include "output.h"
 #include "insn-attr.h"
 #include "flags.h"
-#include "input.h"
 #include "function.h"
+#include "hashtab.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
diff --git a/gcc/config/nds32/nds32-cost.c b/gcc/config/nds32/nds32-cost.c
index 9c8b579..c6ec5ab 100644
--- a/gcc/config/nds32/nds32-cost.c
+++ b/gcc/config/nds32/nds32-cost.c
@@ -47,8 +47,17 @@
 #include "insn-codes.h"		/* For CODE_FOR_xxx.  */
 #include "reload.h"		/* For push_reload().  */
 #include "flags.h"
-#include "input.h"
 #include "function.h"
+#include "hashtab.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "recog.h"
 #include "diagnostic-core.h"
diff --git a/gcc/config/nds32/nds32-fp-as-gp.c b/gcc/config/nds32/nds32-fp-as-gp.c
index 88a8e5b..84c32d7 100644
--- a/gcc/config/nds32/nds32-fp-as-gp.c
+++ b/gcc/config/nds32/nds32-fp-as-gp.c
@@ -47,8 +47,17 @@
 #include "insn-codes.h"		/* For CODE_FOR_xxx.  */
 #include "reload.h"		/* For push_reload().  */
 #include "flags.h"
-#include "input.h"
 #include "function.h"
+#include "hashtab.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "recog.h"
 #include "diagnostic-core.h"
diff --git a/gcc/config/nds32/nds32-intrinsic.c b/gcc/config/nds32/nds32-intrinsic.c
index 8815179..9f0851d 100644
--- a/gcc/config/nds32/nds32-intrinsic.c
+++ b/gcc/config/nds32/nds32-intrinsic.c
@@ -47,8 +47,17 @@
 #include "insn-codes.h"		/* For CODE_FOR_xxx.  */
 #include "reload.h"		/* For push_reload().  */
 #include "flags.h"
-#include "input.h"
 #include "function.h"
+#include "hashtab.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "recog.h"
 #include "diagnostic-core.h"
diff --git a/gcc/config/nds32/nds32-isr.c b/gcc/config/nds32/nds32-isr.c
index bf2d659..1896fde 100644
--- a/gcc/config/nds32/nds32-isr.c
+++ b/gcc/config/nds32/nds32-isr.c
@@ -47,8 +47,17 @@
 #include "insn-codes.h"		/* For CODE_FOR_xxx.  */
 #include "reload.h"		/* For push_reload().  */
 #include "flags.h"
-#include "input.h"
 #include "function.h"
+#include "hashtab.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "recog.h"
 #include "diagnostic-core.h"
diff --git a/gcc/config/nds32/nds32-md-auxiliary.c b/gcc/config/nds32/nds32-md-auxiliary.c
index 374f115..2f49277 100644
--- a/gcc/config/nds32/nds32-md-auxiliary.c
+++ b/gcc/config/nds32/nds32-md-auxiliary.c
@@ -48,8 +48,17 @@
 #include "insn-codes.h"		/* For CODE_FOR_xxx.  */
 #include "reload.h"		/* For push_reload().  */
 #include "flags.h"
-#include "input.h"
 #include "function.h"
+#include "hashtab.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "recog.h"
 #include "diagnostic-core.h"
diff --git a/gcc/config/nds32/nds32-memory-manipulation.c b/gcc/config/nds32/nds32-memory-manipulation.c
index 0bf8101..2f33337 100644
--- a/gcc/config/nds32/nds32-memory-manipulation.c
+++ b/gcc/config/nds32/nds32-memory-manipulation.c
@@ -48,8 +48,17 @@
 #include "insn-codes.h"		/* For CODE_FOR_xxx.  */
 #include "reload.h"		/* For push_reload().  */
 #include "flags.h"
-#include "input.h"
 #include "function.h"
+#include "hashtab.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "recog.h"
 #include "diagnostic-core.h"
diff --git a/gcc/config/nds32/nds32-pipelines-auxiliary.c b/gcc/config/nds32/nds32-pipelines-auxiliary.c
index 55030b1..6cc9593 100644
--- a/gcc/config/nds32/nds32-pipelines-auxiliary.c
+++ b/gcc/config/nds32/nds32-pipelines-auxiliary.c
@@ -48,8 +48,17 @@
 #include "insn-codes.h"		/* For CODE_FOR_xxx.  */
 #include "reload.h"		/* For push_reload().  */
 #include "flags.h"
-#include "input.h"
 #include "function.h"
+#include "hashtab.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "recog.h"
 #include "diagnostic-core.h"
diff --git a/gcc/config/nds32/nds32-predicates.c b/gcc/config/nds32/nds32-predicates.c
index 7e5ecc0..209b25f 100644
--- a/gcc/config/nds32/nds32-predicates.c
+++ b/gcc/config/nds32/nds32-predicates.c
@@ -47,8 +47,17 @@
 #include "insn-codes.h"		/* For CODE_FOR_xxx.  */
 #include "reload.h"		/* For push_reload().  */
 #include "flags.h"
-#include "input.h"
 #include "function.h"
+#include "hashtab.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "recog.h"
 #include "diagnostic-core.h"
diff --git a/gcc/config/nds32/nds32.c b/gcc/config/nds32/nds32.c
index 192816f..f8d5a89 100644
--- a/gcc/config/nds32/nds32.c
+++ b/gcc/config/nds32/nds32.c
@@ -47,8 +47,17 @@
 #include "insn-codes.h"		/* For CODE_FOR_xxx.  */
 #include "reload.h"		/* For push_reload().  */
 #include "flags.h"
-#include "input.h"
 #include "function.h"
+#include "hashtab.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "recog.h"
 #include "diagnostic-core.h"
diff --git a/gcc/config/nios2/nios2.c b/gcc/config/nios2/nios2.c
index a078a5e..06c9d00 100644
--- a/gcc/config/nios2/nios2.c
+++ b/gcc/config/nios2/nios2.c
@@ -44,11 +44,21 @@
 #include "insn-attr.h"
 #include "flags.h"
 #include "recog.h"
+#include "hashtab.h"
+#include "function.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
-#include "input.h"
-#include "function.h"
 #include "ggc.h"
 #include "predict.h"
 #include "dominance.h"
@@ -67,11 +77,8 @@
 #include "langhooks.h"
 #include "df.h"
 #include "debug.h"
-#include "real.h"
 #include "reload.h"
 #include "stor-layout.h"
-#include "varasm.h"
-#include "calls.h"
 #include "builtins.h"
 
 /* Forward function declarations.  */
diff --git a/gcc/config/nvptx/nvptx.c b/gcc/config/nvptx/nvptx.c
index 9e74ee3..7cfe550 100644
--- a/gcc/config/nvptx/nvptx.c
+++ b/gcc/config/nvptx/nvptx.c
@@ -38,6 +38,21 @@
 #include "output.h"
 #include "insn-attr.h"
 #include "insn-codes.h"
+#include "hashtab.h"
+#include "hard-reg-set.h"
+#include "function.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "regs.h"
 #include "optabs.h"
@@ -47,7 +62,6 @@
 #include "tm_p.h"
 #include "tm-preds.h"
 #include "tm-constrs.h"
-#include "function.h"
 #include "langhooks.h"
 #include "dbxout.h"
 #include "target.h"
@@ -57,10 +71,8 @@
 #include "basic-block.h"
 #include "cfgrtl.h"
 #include "stor-layout.h"
-#include "calls.h"
 #include "df.h"
 #include "builtins.h"
-#include "hashtab.h"
 
 /* Record the function decls we've written, and the libfuncs and function
    decls corresponding to them.  */
diff --git a/gcc/config/pa/pa.c b/gcc/config/pa/pa.c
index 3c39df2..a568b2f 100644
--- a/gcc/config/pa/pa.c
+++ b/gcc/config/pa/pa.c
@@ -47,12 +47,20 @@ along with GCC; see the file COPYING3.  If not see
 #include "output.h"
 #include "dbxout.h"
 #include "except.h"
+#include "hashtab.h"
+#include "function.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
 #include "reload.h"
-#include "input.h"
-#include "function.h"
 #include "diagnostic-core.h"
 #include "ggc.h"
 #include "recog.h"
diff --git a/gcc/config/pdp11/pdp11.c b/gcc/config/pdp11/pdp11.c
index 85181eb..1a24004 100644
--- a/gcc/config/pdp11/pdp11.c
+++ b/gcc/config/pdp11/pdp11.c
@@ -44,6 +44,16 @@ along with GCC; see the file COPYING3.  If not see
 #include "stor-layout.h"
 #include "varasm.h"
 #include "calls.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "alias.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "diagnostic-core.h"
 #include "tm_p.h"
diff --git a/gcc/config/rl78/rl78.c b/gcc/config/rl78/rl78.c
index d5a0075..6b199a6 100644
--- a/gcc/config/rl78/rl78.c
+++ b/gcc/config/rl78/rl78.c
@@ -44,8 +44,16 @@
 #include "output.h"
 #include "insn-attr.h"
 #include "flags.h"
-#include "input.h"
 #include "function.h"
+#include "hashtab.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index 4f8803d..ca21413 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -47,12 +47,20 @@
 #include "calls.h"
 #include "print-tree.h"
 #include "varasm.h"
+#include "hashtab.h"
+#include "function.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
 #include "except.h"
-#include "input.h"
-#include "function.h"
 #include "output.h"
 #include "dbxout.h"
 #include "predict.h"
@@ -101,7 +109,6 @@
 #include "builtins.h"
 #include "context.h"
 #include "tree-pass.h"
-#include "real.h"
 #if TARGET_XCOFF
 #include "xcoffout.h"  /* get declarations of xcoff_*_section_name */
 #endif
diff --git a/gcc/config/rx/rx.c b/gcc/config/rx/rx.c
index 58ee86e..6fe21aa 100644
--- a/gcc/config/rx/rx.c
+++ b/gcc/config/rx/rx.c
@@ -47,8 +47,16 @@
 #include "output.h"
 #include "insn-attr.h"
 #include "flags.h"
-#include "input.h"
 #include "function.h"
+#include "hashtab.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
diff --git a/gcc/config/s390/s390.c b/gcc/config/s390/s390.c
index adb2a26..6985fb7 100644
--- a/gcc/config/s390/s390.c
+++ b/gcc/config/s390/s390.c
@@ -50,9 +50,17 @@ along with GCC; see the file COPYING3.  If not see
 #include "insn-attr.h"
 #include "flags.h"
 #include "except.h"
-#include "input.h"
 #include "function.h"
 #include "recog.h"
+#include "hashtab.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "reload.h"
 #include "diagnostic-core.h"
diff --git a/gcc/config/sh/sh-mem.cc b/gcc/config/sh/sh-mem.cc
index a3eb679..d092090 100644
--- a/gcc/config/sh/sh-mem.cc
+++ b/gcc/config/sh/sh-mem.cc
@@ -32,12 +32,24 @@ along with GCC; see the file COPYING3.  If not see
 #include "wide-int.h"
 #include "inchash.h"
 #include "tree.h"
+#include "hashtab.h"
+#include "hard-reg-set.h"
+#include "function.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tm_p.h"
 #include "predict.h"
-#include "hard-reg-set.h"
-#include "input.h"
-#include "function.h"
 #include "dominance.h"
 #include "cfg.h"
 #include "cfgrtl.h"
diff --git a/gcc/config/sh/sh.c b/gcc/config/sh/sh.c
index b5fe30a..8612f9f 100644
--- a/gcc/config/sh/sh.c
+++ b/gcc/config/sh/sh.c
@@ -44,13 +44,21 @@ along with GCC; see the file COPYING3.  If not see
 #include "calls.h"
 #include "varasm.h"
 #include "flags.h"
+#include "hashtab.h"
+#include "hard-reg-set.h"
+#include "function.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
 #include "reload.h"
-#include "hard-reg-set.h"
-#include "input.h"
-#include "function.h"
 #include "regs.h"
 #include "output.h"
 #include "insn-attr.h"
@@ -10056,7 +10064,6 @@ reg_unused_after (rtx reg, rtx_insn *insn)
   return true;
 }
 \f
-#include "ggc.h"
 
 static GTY(()) rtx t_reg_rtx;
 rtx
diff --git a/gcc/config/sh/sh_treg_combine.cc b/gcc/config/sh/sh_treg_combine.cc
index 3c36767..e4f3581 100644
--- a/gcc/config/sh/sh_treg_combine.cc
+++ b/gcc/config/sh/sh_treg_combine.cc
@@ -50,6 +50,19 @@ along with GCC; see the file COPYING3.  If not see
 #include "inchash.h"
 #include "tree.h"
 #include "optabs.h"
+#include "flags.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "alias.h"
+#include "wide-int.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 
 #include <algorithm>
diff --git a/gcc/config/sparc/sparc.c b/gcc/config/sparc/sparc.c
index 4d6143a..19e45c2 100644
--- a/gcc/config/sparc/sparc.c
+++ b/gcc/config/sparc/sparc.c
@@ -48,9 +48,17 @@ along with GCC; see the file COPYING3.  If not see
 #include "output.h"
 #include "insn-attr.h"
 #include "flags.h"
-#include "input.h"
 #include "function.h"
 #include "except.h"
+#include "hashtab.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "optabs.h"
 #include "recog.h"
@@ -86,7 +94,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "opts.h"
 #include "tree-pass.h"
 #include "context.h"
-#include "wide-int.h"
 #include "builtins.h"
 #include "rtl-iter.h"
 
diff --git a/gcc/config/spu/spu.c b/gcc/config/spu/spu.c
index 9bb6fc0..e99cea3 100644
--- a/gcc/config/spu/spu.c
+++ b/gcc/config/spu/spu.c
@@ -42,12 +42,20 @@
 #include "stor-layout.h"
 #include "calls.h"
 #include "varasm.h"
+#include "hashtab.h"
+#include "function.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
 #include "except.h"
-#include "input.h"
-#include "function.h"
 #include "output.h"
 #include "predict.h"
 #include "dominance.h"
diff --git a/gcc/config/stormy16/stormy16.c b/gcc/config/stormy16/stormy16.c
index 9234652..1a43b58 100644
--- a/gcc/config/stormy16/stormy16.c
+++ b/gcc/config/stormy16/stormy16.c
@@ -49,12 +49,20 @@
 #include "stor-layout.h"
 #include "varasm.h"
 #include "calls.h"
+#include "hashtab.h"
+#include "function.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
 #include "except.h"
-#include "input.h"
-#include "function.h"
 #include "target.h"
 #include "target-def.h"
 #include "tm_p.h"
diff --git a/gcc/config/tilegx/mul-tables.c b/gcc/config/tilegx/mul-tables.c
index a1f93e3..252ca08 100644
--- a/gcc/config/tilegx/mul-tables.c
+++ b/gcc/config/tilegx/mul-tables.c
@@ -24,6 +24,33 @@
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
+#include "hashtab.h"
+#include "hash-set.h"
+#include "vec.h"
+#include "machmode.h"
+#include "tm.h"
+#include "hard-reg-set.h"
+#include "input.h"
+#include "function.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "alias.h"
+#include "symtab.h"
+#include "wide-int.h"
+#include "inchash.h"
+#include "tree.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
diff --git a/gcc/config/tilegx/tilegx.c b/gcc/config/tilegx/tilegx.c
index de1b3a6..e403c32 100644
--- a/gcc/config/tilegx/tilegx.c
+++ b/gcc/config/tilegx/tilegx.c
@@ -28,6 +28,30 @@
 #include "output.h"
 #include "insn-attr.h"
 #include "recog.h"
+#include "hashtab.h"
+#include "hash-set.h"
+#include "vec.h"
+#include "machmode.h"
+#include "hard-reg-set.h"
+#include "input.h"
+#include "function.h"
+#include "flags.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "alias.h"
+#include "symtab.h"
+#include "wide-int.h"
+#include "inchash.h"
+#include "tree.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "langhooks.h"
 #include "insn-codes.h"
@@ -46,19 +70,8 @@
 #include "tm-constrs.h"
 #include "target.h"
 #include "target-def.h"
-#include "hashtab.h"
-#include "hash-set.h"
-#include "vec.h"
-#include "machmode.h"
-#include "hard-reg-set.h"
-#include "input.h"
-#include "function.h"
 #include "dwarf2.h"
 #include "timevar.h"
-#include "symtab.h"
-#include "wide-int.h"
-#include "inchash.h"
-#include "tree.h"
 #include "fold-const.h"
 #include "hash-table.h"
 #include "ggc.h"
@@ -71,8 +84,6 @@
 #include "gimple.h"
 #include "stringpool.h"
 #include "stor-layout.h"
-#include "varasm.h"
-#include "calls.h"
 #include "gimplify.h"
 #include "cfgloop.h"
 #include "tilegx-builtins.h"
diff --git a/gcc/config/tilepro/gen-mul-tables.cc b/gcc/config/tilepro/gen-mul-tables.cc
index ea31b0d..b28d3d8 100644
--- a/gcc/config/tilepro/gen-mul-tables.cc
+++ b/gcc/config/tilepro/gen-mul-tables.cc
@@ -1256,6 +1256,32 @@ main ()
   printf ("#include \"system.h\"\n");
   printf ("#include \"coretypes.h\"\n");
   printf ("#include \"symtab.h\"\n");
+  printf ("#include \"hashtab.h\"\n");
+  printf ("#include \"hash-set.h\"\n");
+  printf ("#include \"vec.h\"\n");
+  printf ("#include \"machmode.h\"\n");
+  printf ("#include \"tm.h\"\n");
+  printf ("#include \"hard-reg-set.h\"\n");
+  printf ("#include \"input.h\"\n");
+  printf ("#include \"function.h\"\n");
+  printf ("#include \"rtl.h\"\n");
+  printf ("#include \"flags.h\"\n");
+  printf ("#include \"statistics.h\"\n");
+  printf ("#include \"double-int.h\"\n");
+  printf ("#include \"real.h\"\n");
+  printf ("#include \"fixed-value.h\"\n");
+  printf ("#include \"alias.h\"\n");
+  printf ("#include \"wide-int.h\"\n");
+  printf ("#include \"inchash.h\"\n");
+  printf ("#include \"tree.h\"\n");
+  printf ("#include \"insn-config.h\"\n");
+  printf ("#include \"expmed.h\"\n");
+  printf ("#include \"dojump.h\"\n");
+  printf ("#include \"explow.h\"\n");
+  printf ("#include \"calls.h\"\n");
+  printf ("#include \"emit-rtl.h\"\n");
+  printf ("#include \"varasm.h\"\n");
+  printf ("#include \"stmt.h\"\n");
   printf ("#include \"expr.h\"\n");
   printf ("#include \"insn-codes.h\"\n");
   printf ("#include \"optabs.h\"\n");
diff --git a/gcc/config/tilepro/tilepro.c b/gcc/config/tilepro/tilepro.c
index 8cf109a..f534b03 100644
--- a/gcc/config/tilepro/tilepro.c
+++ b/gcc/config/tilepro/tilepro.c
@@ -28,6 +28,30 @@
 #include "output.h"
 #include "insn-attr.h"
 #include "recog.h"
+#include "hashtab.h"
+#include "hash-set.h"
+#include "vec.h"
+#include "machmode.h"
+#include "hard-reg-set.h"
+#include "input.h"
+#include "function.h"
+#include "flags.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "alias.h"
+#include "symtab.h"
+#include "wide-int.h"
+#include "inchash.h"
+#include "tree.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "langhooks.h"
 #include "insn-codes.h"
@@ -47,19 +71,8 @@
 #include "tm-constrs.h"
 #include "target.h"
 #include "target-def.h"
-#include "hashtab.h"
-#include "hash-set.h"
-#include "vec.h"
-#include "machmode.h"
-#include "hard-reg-set.h"
-#include "input.h"
-#include "function.h"
 #include "dwarf2.h"
 #include "timevar.h"
-#include "symtab.h"
-#include "wide-int.h"
-#include "inchash.h"
-#include "tree.h"
 #include "fold-const.h"
 #include "hash-table.h"
 #include "ggc.h"
@@ -72,8 +85,6 @@
 #include "gimple.h"
 #include "stringpool.h"
 #include "stor-layout.h"
-#include "varasm.h"
-#include "calls.h"
 #include "gimplify.h"
 #include "cfgloop.h"
 #include "tilepro-builtins.h"
diff --git a/gcc/config/v850/v850.c b/gcc/config/v850/v850.c
index 688df17..f9cc3ef 100644
--- a/gcc/config/v850/v850.c
+++ b/gcc/config/v850/v850.c
@@ -45,9 +45,17 @@
 #include "insn-attr.h"
 #include "flags.h"
 #include "recog.h"
-#include "expr.h"
-#include "input.h"
+#include "hashtab.h"
 #include "function.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
+#include "expr.h"
 #include "diagnostic-core.h"
 #include "ggc.h"
 #include "tm_p.h"
diff --git a/gcc/config/vax/vax.c b/gcc/config/vax/vax.c
index deb42e4..3a2a650 100644
--- a/gcc/config/vax/vax.c
+++ b/gcc/config/vax/vax.c
@@ -48,15 +48,23 @@ along with GCC; see the file COPYING3.  If not see
 #include "hard-reg-set.h"
 #include "insn-config.h"
 #include "conditions.h"
-#include "input.h"
 #include "function.h"
 #include "output.h"
 #include "insn-attr.h"
 #include "recog.h"
+#include "hashtab.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
-#include "flags.h"
 #include "debug.h"
 #include "diagnostic-core.h"
 #include "reload.h"
@@ -65,7 +73,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "tm_p.h"
 #include "target.h"
 #include "target-def.h"
-#include "wide-int.h"
 #include "builtins.h"
 
 static void vax_option_override (void);
diff --git a/gcc/config/visium/visium.c b/gcc/config/visium/visium.c
index 657c067..e656af9 100644
--- a/gcc/config/visium/visium.c
+++ b/gcc/config/visium/visium.c
@@ -51,8 +51,13 @@
 #include "conditions.h"
 #include "output.h"
 #include "insn-attr.h"
-#include "expr.h"
 #include "function.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
+#include "expr.h"
 #include "recog.h"
 #include "diagnostic-core.h"
 #include "tm_p.h"
diff --git a/gcc/config/xtensa/xtensa.c b/gcc/config/xtensa/xtensa.c
index 8bd7ae7..6c289e5 100644
--- a/gcc/config/xtensa/xtensa.c
+++ b/gcc/config/xtensa/xtensa.c
@@ -56,8 +56,18 @@ along with GCC; see the file COPYING3.  If not see
 #include "stor-layout.h"
 #include "calls.h"
 #include "varasm.h"
-#include "expr.h"
 #include "flags.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "alias.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
+#include "expr.h"
 #include "reload.h"
 #include "tm_p.h"
 #include "diagnostic-core.h"
diff --git a/gcc/coverage.c b/gcc/coverage.c
index 76866ca..661e441 100644
--- a/gcc/coverage.c
+++ b/gcc/coverage.c
@@ -45,10 +45,21 @@ along with GCC; see the file COPYING3.  If not see
 #include "flags.h"
 #include "output.h"
 #include "regs.h"
-#include "expr.h"
+#include "hashtab.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
+#include "expr.h"
 #include "predict.h"
 #include "dominance.h"
 #include "cfg.h"
diff --git a/gcc/cprop.c b/gcc/cprop.c
index 4538291..c9fb2fc 100644
--- a/gcc/cprop.c
+++ b/gcc/cprop.c
@@ -41,11 +41,7 @@ along with GCC; see the file COPYING3.  If not see
 #include "insn-config.h"
 #include "recog.h"
 #include "predict.h"
-#include "vec.h"
 #include "hashtab.h"
-#include "hash-set.h"
-#include "machmode.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -54,6 +50,16 @@ along with GCC; see the file COPYING3.  If not see
 #include "lcm.h"
 #include "cfgcleanup.h"
 #include "basic-block.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "except.h"
 #include "params.h"
diff --git a/gcc/cse.c b/gcc/cse.c
index ec64ffa..fdde166 100644
--- a/gcc/cse.c
+++ b/gcc/cse.c
@@ -42,6 +42,21 @@ along with GCC; see the file COPYING3.  If not see
 #include "insn-config.h"
 #include "recog.h"
 #include "symtab.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "alias.h"
+#include "wide-int.h"
+#include "inchash.h"
+#include "tree.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "diagnostic-core.h"
 #include "toplev.h"
diff --git a/gcc/dbxout.c b/gcc/dbxout.c
index f0e24b6..c756f2e 100644
--- a/gcc/dbxout.c
+++ b/gcc/dbxout.c
@@ -96,16 +96,21 @@ along with GCC; see the file COPYING3.  If not see
 #include "ggc.h"
 #include "debug.h"
 #include "hashtab.h"
-#include "hash-set.h"
-#include "vec.h"
-#include "machmode.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "target.h"
 #include "common/common-target.h"
 #include "langhooks.h"
 #include "obstack.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "hash-map.h"
 #include "is-a.h"
diff --git a/gcc/ddg.c b/gcc/ddg.c
index 8c31b89..e6966f3 100644
--- a/gcc/ddg.c
+++ b/gcc/ddg.c
@@ -46,6 +46,21 @@ along with GCC; see the file COPYING3.  If not see
 #include "cfgloop.h"
 #include "sbitmap.h"
 #include "symtab.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "alias.h"
+#include "wide-int.h"
+#include "inchash.h"
+#include "tree.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "bitmap.h"
 #include "df.h"
diff --git a/gcc/dojump.c b/gcc/dojump.c
index 9133eb7..ad356ba 100644
--- a/gcc/dojump.c
+++ b/gcc/dojump.c
@@ -37,11 +37,20 @@ along with GCC; see the file COPYING3.  If not see
 #include "stor-layout.h"
 #include "flags.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "insn-config.h"
 #include "insn-attr.h"
 /* Include expr.h after insn-config.h so we get HAVE_conditional_move.  */
+#include "hashtab.h"
+#include "statistics.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
diff --git a/gcc/dojump.h b/gcc/dojump.h
new file mode 100644
index 0000000..7a43349
--- /dev/null
+++ b/gcc/dojump.h
@@ -0,0 +1,59 @@
+#ifndef GCC_DOJUMP_H
+#define GCC_DOJUMP_H
+
+/* At the start of a function, record that we have no previously-pushed
+   arguments waiting to be popped.  */
+extern void init_pending_stack_adjust (void);
+
+/* Discard any pending stack adjustment.  */
+extern void discard_pending_stack_adjust (void);
+
+/* When exiting from function, if safe, clear out any pending stack adjust
+   so the adjustment won't get done.  */
+extern void clear_pending_stack_adjust (void);
+
+/* Pop any previously-pushed arguments that have not been popped yet.  */
+extern void do_pending_stack_adjust (void);
+
+/* Struct for saving/restoring of pending_stack_adjust/stack_pointer_delta
+   values.  */
+
+struct saved_pending_stack_adjust
+{
+  /* Saved value of pending_stack_adjust.  */
+  int x_pending_stack_adjust;
+
+  /* Saved value of stack_pointer_delta.  */
+  int x_stack_pointer_delta;
+};
+
+/* Remember pending_stack_adjust/stack_pointer_delta.
+   To be used around code that may call do_pending_stack_adjust (),
+   but the generated code could be discarded e.g. using delete_insns_since.  */
+
+extern void save_pending_stack_adjust (saved_pending_stack_adjust *);
+
+/* Restore the saved pending_stack_adjust/stack_pointer_delta.  */
+
+extern void restore_pending_stack_adjust (saved_pending_stack_adjust *);
+
+/* Generate code to evaluate EXP and jump to LABEL if the value is zero.  */
+extern void jumpifnot (tree, rtx, int);
+extern void jumpifnot_1 (enum tree_code, tree, tree, rtx, int);
+
+/* Generate code to evaluate EXP and jump to LABEL if the value is nonzero.  */
+extern void jumpif (tree, rtx, int);
+extern void jumpif_1 (enum tree_code, tree, tree, rtx, int);
+
+/* Generate code to evaluate EXP and jump to IF_FALSE_LABEL if
+   the result is zero, or IF_TRUE_LABEL if the result is one.  */
+extern void do_jump (tree, rtx, rtx, int);
+extern void do_jump_1 (enum tree_code, tree, tree, rtx, rtx, int);
+
+extern void do_compare_rtx_and_jump (rtx, rtx, enum rtx_code, int,
+				     machine_mode, rtx, rtx, rtx, int);
+
+extern bool split_comparison (enum rtx_code, machine_mode,
+			      enum rtx_code *, enum rtx_code *);
+
+#endif /* GCC_DOJUMP_H */
diff --git a/gcc/dse.c b/gcc/dse.c
index e302236..a7d46b8 100644
--- a/gcc/dse.c
+++ b/gcc/dse.c
@@ -55,8 +55,18 @@ along with GCC; see the file COPYING3.  If not see
 #include "cselib.h"
 #include "tree-pass.h"
 #include "alloc-pool.h"
-#include "alias.h"
 #include "insn-config.h"
+#include "hashtab.h"
+#include "function.h"
+#include "statistics.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "recog.h"
 #include "insn-codes.h"
diff --git a/gcc/dwarf2cfi.c b/gcc/dwarf2cfi.c
index 9def81b..27474cb 100644
--- a/gcc/dwarf2cfi.c
+++ b/gcc/dwarf2cfi.c
@@ -37,7 +37,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree.h"
 #include "stor-layout.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "cfgbuild.h"
 #include "dwarf2.h"
@@ -51,6 +50,17 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-pass.h"
 
 #include "except.h"		/* expand_builtin_dwarf_sp_column */
+#include "hashtab.h"
+#include "statistics.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"		/* init_return_column_size */
 #include "regs.h"		/* expand_builtin_init_dwarf_reg_sizes */
 #include "output.h"		/* asm_out_file */
diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c
index 4fbcb97..ebb1b6d 100644
--- a/gcc/dwarf2out.c
+++ b/gcc/dwarf2out.c
@@ -76,11 +76,7 @@ along with GCC; see the file COPYING3.  If not see
 #include "stor-layout.h"
 #include "varasm.h"
 #include "hashtab.h"
-#include "hash-set.h"
-#include "vec.h"
-#include "machmode.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "emit-rtl.h"
 #include "hash-table.h"
@@ -91,6 +87,13 @@ along with GCC; see the file COPYING3.  If not see
 #include "insn-config.h"
 #include "reload.h"
 #include "output.h"
+#include "statistics.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "stmt.h"
 #include "expr.h"
 #include "except.h"
 #include "dwarf2.h"
diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c
index 43d9242..df85366 100644
--- a/gcc/emit-rtl.c
+++ b/gcc/emit-rtl.c
@@ -52,7 +52,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "varasm.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "cfgrtl.h"
 #include "basic-block.h"
@@ -60,9 +59,18 @@ along with GCC; see the file COPYING3.  If not see
 #include "tm_p.h"
 #include "flags.h"
 #include "stringpool.h"
+#include "hashtab.h"
+#include "statistics.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "regs.h"
-#include "insn-config.h"
 #include "recog.h"
 #include "bitmap.h"
 #include "debug.h"
diff --git a/gcc/emit-rtl.h b/gcc/emit-rtl.h
index 2334dcc..44ef034 100644
--- a/gcc/emit-rtl.h
+++ b/gcc/emit-rtl.h
@@ -119,4 +119,87 @@ get_max_uid (void)
 
 extern void set_decl_incoming_rtl (tree, rtx, bool);
 
+/* Return a memory reference like MEMREF, but with its mode changed
+   to MODE and its address changed to ADDR.
+   (VOIDmode means don't change the mode.
+   NULL for ADDR means don't change the address.)  */
+extern rtx change_address (rtx, machine_mode, rtx);
+
+/* Return a memory reference like MEMREF, but with its mode changed
+   to MODE and its address offset by OFFSET bytes.  */
+#define adjust_address(MEMREF, MODE, OFFSET) \
+  adjust_address_1 (MEMREF, MODE, OFFSET, 1, 1, 0, 0)
+
+/* Likewise, but the reference is not required to be valid.  */
+#define adjust_address_nv(MEMREF, MODE, OFFSET) \
+  adjust_address_1 (MEMREF, MODE, OFFSET, 0, 1, 0, 0)
+
+/* Return a memory reference like MEMREF, but with its mode changed
+   to MODE and its address offset by OFFSET bytes.  Assume that it's
+   for a bitfield and conservatively drop the underlying object if we
+   cannot be sure to stay within its bounds.  */
+#define adjust_bitfield_address(MEMREF, MODE, OFFSET) \
+  adjust_address_1 (MEMREF, MODE, OFFSET, 1, 1, 1, 0)
+
+/* As for adjust_bitfield_address, but specify that the width of
+   BLKmode accesses is SIZE bytes.  */
+#define adjust_bitfield_address_size(MEMREF, MODE, OFFSET, SIZE) \
+  adjust_address_1 (MEMREF, MODE, OFFSET, 1, 1, 1, SIZE)
+
+/* Likewise, but the reference is not required to be valid.  */
+#define adjust_bitfield_address_nv(MEMREF, MODE, OFFSET) \
+  adjust_address_1 (MEMREF, MODE, OFFSET, 0, 1, 1, 0)
+
+/* Return a memory reference like MEMREF, but with its mode changed
+   to MODE and its address changed to ADDR, which is assumed to be
+   increased by OFFSET bytes from MEMREF.  */
+#define adjust_automodify_address(MEMREF, MODE, ADDR, OFFSET) \
+  adjust_automodify_address_1 (MEMREF, MODE, ADDR, OFFSET, 1)
+
+/* Likewise, but the reference is not required to be valid.  */
+#define adjust_automodify_address_nv(MEMREF, MODE, ADDR, OFFSET) \
+  adjust_automodify_address_1 (MEMREF, MODE, ADDR, OFFSET, 0)
+
+extern rtx adjust_address_1 (rtx, machine_mode, HOST_WIDE_INT, int, int,
+			     int, HOST_WIDE_INT);
+extern rtx adjust_automodify_address_1 (rtx, machine_mode, rtx,
+					HOST_WIDE_INT, int);
+
+/* Return a memory reference like MEMREF, but whose address is changed by
+   adding OFFSET, an RTX, to it.  POW2 is the highest power of two factor
+   known to be in OFFSET (possibly 1).  */
+extern rtx offset_address (rtx, rtx, unsigned HOST_WIDE_INT);
+
+/* Given REF, a MEM, and T, either the type of X or the expression
+   corresponding to REF, set the memory attributes.  OBJECTP is nonzero
+   if we are making a new object of this type.  */
+extern void set_mem_attributes (rtx, tree, int);
+
+/* Similar, except that BITPOS has not yet been applied to REF, so if
+   we alter MEM_OFFSET according to T then we should subtract BITPOS
+   expecting that it'll be added back in later.  */
+extern void set_mem_attributes_minus_bitpos (rtx, tree, int, HOST_WIDE_INT);
+
+/* Return OFFSET if XEXP (MEM, 0) - OFFSET is known to be ALIGN
+   bits aligned for 0 <= OFFSET < ALIGN / BITS_PER_UNIT, or
+   -1 if not known.  */
+extern int get_mem_align_offset (rtx, unsigned int);
+
+/* Return a memory reference like MEMREF, but with its mode widened to
+   MODE and adjusted by OFFSET.  */
+extern rtx widen_memory_access (rtx, machine_mode, HOST_WIDE_INT);
+
+extern void store_bit_field (rtx, unsigned HOST_WIDE_INT,
+			     unsigned HOST_WIDE_INT,
+			     unsigned HOST_WIDE_INT,
+			     unsigned HOST_WIDE_INT,
+			     machine_mode, rtx);
+extern rtx extract_bit_field (rtx, unsigned HOST_WIDE_INT,
+			      unsigned HOST_WIDE_INT, int, rtx,
+			      machine_mode, machine_mode);
+extern rtx extract_low_bits (machine_mode, machine_mode, rtx);
+extern rtx expand_mult (machine_mode, rtx, rtx, rtx, int);
+extern rtx expand_mult_highpart_adjust (machine_mode, rtx, rtx, rtx, rtx, int);
+
+
 #endif /* GCC_EMIT_RTL_H */
diff --git a/gcc/except.c b/gcc/except.c
index bceb679..833ec21 100644
--- a/gcc/except.c
+++ b/gcc/except.c
@@ -130,13 +130,22 @@ along with GCC; see the file COPYING3.  If not see
 #include "stor-layout.h"
 #include "flags.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "insn-codes.h"
 #include "optabs.h"
+#include "hashtab.h"
+#include "statistics.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "libfuncs.h"
-#include "insn-config.h"
 #include "except.h"
 #include "output.h"
 #include "dwarf2asm.h"
diff --git a/gcc/explow.c b/gcc/explow.c
index 3e3cf05..600f2bd 100644
--- a/gcc/explow.c
+++ b/gcc/explow.c
@@ -40,13 +40,22 @@ along with GCC; see the file COPYING3.  If not see
 #include "flags.h"
 #include "except.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
+#include "hashtab.h"
+#include "statistics.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
 #include "libfuncs.h"
-#include "insn-config.h"
 #include "ggc.h"
 #include "recog.h"
 #include "langhooks.h"
@@ -196,7 +205,7 @@ plus_constant (machine_mode mode, rtx x, HOST_WIDE_INT c,
    X itself is not altered.  The result != X if and only if
    it is not isomorphic to X.  */
 
-rtx
+static rtx
 eliminate_constant_term (rtx x, rtx *constptr)
 {
   rtx x0, x1;
@@ -282,6 +291,7 @@ int_expr_size (tree exp)
 
   return tree_to_shwi (size);
 }
+
 \f
 /* Return a copy of X in which all memory references
    and all constants that involve symbol refs
@@ -432,6 +442,7 @@ convert_memory_address_addr_space (machine_mode to_mode, rtx x, addr_space_t as)
   return convert_memory_address_addr_space_1 (to_mode, x, as, false);
 }
 \f
+
 /* Return something equivalent to X but valid as a memory address for something
    of mode MODE in the named address space AS.  When X is not itself valid,
    this works by copying X or subexpressions of it into registers.  */
diff --git a/gcc/explow.h b/gcc/explow.h
new file mode 100644
index 0000000..48e9e12
--- /dev/null
+++ b/gcc/explow.h
@@ -0,0 +1,100 @@
+#ifndef GCC_EXPLOW_H
+#define GCC_EXPLOW_H
+
+/* Return a memory reference like MEMREF, but which is known to have a
+   valid address.  */
+extern rtx validize_mem (rtx);
+
+extern rtx use_anchored_address (rtx);
+
+/* Copy given rtx to a new temp reg and return that.  */
+extern rtx copy_to_reg (rtx);
+
+/* Like copy_to_reg but always make the reg Pmode.  */
+extern rtx copy_addr_to_reg (rtx);
+
+/* Like copy_to_reg but always make the reg the specified mode MODE.  */
+extern rtx copy_to_mode_reg (machine_mode, rtx);
+
+/* Copy given rtx to given temp reg and return that.  */
+extern rtx copy_to_suggested_reg (rtx, rtx, machine_mode);
+
+/* Copy a value to a register if it isn't already a register.
+   Args are mode (in case value is a constant) and the value.  */
+extern rtx force_reg (machine_mode, rtx);
+
+/* Return given rtx, copied into a new temp reg if it was in memory.  */
+extern rtx force_not_mem (rtx);
+
+/* Return mode and signedness to use when an argument or result in the
+   given mode is promoted.  */
+extern machine_mode promote_function_mode (const_tree, machine_mode, int *,
+					        const_tree, int);
+
+/* Return mode and signedness to use when an object in the given mode
+   is promoted.  */
+extern machine_mode promote_mode (const_tree, machine_mode, int *);
+
+/* Return mode and signedness to use when object is promoted.  */
+machine_mode promote_decl_mode (const_tree, int *);
+
+/* Remove some bytes from the stack.  An rtx says how many.  */
+extern void adjust_stack (rtx);
+
+/* Add some bytes to the stack.  An rtx says how many.  */
+extern void anti_adjust_stack (rtx);
+
+/* Add some bytes to the stack while probing it.  An rtx says how many. */
+extern void anti_adjust_stack_and_probe (rtx, bool);
+
+/* This enum is used for the following two functions.  */
+enum save_level {SAVE_BLOCK, SAVE_FUNCTION, SAVE_NONLOCAL};
+
+/* Save the stack pointer at the specified level.  */
+extern void emit_stack_save (enum save_level, rtx *);
+
+/* Restore the stack pointer from a save area of the specified level.  */
+extern void emit_stack_restore (enum save_level, rtx);
+
+/* Invoke emit_stack_save for the nonlocal_goto_save_area.  */
+extern void update_nonlocal_goto_save_area (void);
+
+/* Allocate some space on the stack dynamically and return its address.  */
+extern rtx allocate_dynamic_stack_space (rtx, unsigned, unsigned, bool);
+
+/* Emit one stack probe at ADDRESS, an address within the stack.  */
+extern void emit_stack_probe (rtx);
+
+/* Probe a range of stack addresses from FIRST to FIRST+SIZE, inclusive.
+   FIRST is a constant and size is a Pmode RTX.  These are offsets from
+   the current stack pointer.  STACK_GROWS_DOWNWARD says whether to add
+   or subtract them from the stack pointer.  */
+extern void probe_stack_range (HOST_WIDE_INT, rtx);
+
+/* Return an rtx that refers to the value returned by a library call
+   in its original home.  This becomes invalid if any more code is emitted.  */
+extern rtx hard_libcall_value (machine_mode, rtx);
+
+/* rtl.h and tree.h were included.  */
+/* Return an rtx for the size in bytes of the value of an expr.  */
+extern rtx expr_size (tree);
+
+/* Return a wide integer for the size in bytes of the value of EXP, or -1
+   if the size can vary or is larger than an integer.  */
+extern HOST_WIDE_INT int_expr_size (tree);
+
+/* Return an rtx that refers to the value returned by a function
+   in its original home.  This becomes invalid if any more code is emitted.  */
+extern rtx hard_function_value (const_tree, const_tree, const_tree, int);
+
+/* Convert arg to a valid memory address for specified machine mode that points
+   to a specific named address space, by emitting insns to perform arithmetic
+   if necessary.  */
+extern rtx memory_address_addr_space (machine_mode, rtx, addr_space_t);
+
+/* Like memory_address_addr_space, except assume the memory address points to
+   the generic named address space.  */
+#define memory_address(MODE,RTX) \
+	memory_address_addr_space ((MODE), (RTX), ADDR_SPACE_GENERIC)
+
+#endif /* GCC_EXPLOW_H */
diff --git a/gcc/expmed.c b/gcc/expmed.c
index d184552..480601c 100644
--- a/gcc/expmed.c
+++ b/gcc/expmed.c
@@ -40,6 +40,19 @@ along with GCC; see the file COPYING3.  If not see
 #include "tm_p.h"
 #include "flags.h"
 #include "insn-config.h"
+#include "hashtab.h"
+#include "hard-reg-set.h"
+#include "function.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
@@ -49,7 +62,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "basic-block.h"
 #include "df.h"
 #include "target.h"
-#include "expmed.h"
 
 struct target_expmed default_target_expmed;
 #if SWITCHABLE_TARGET
diff --git a/gcc/expmed.h b/gcc/expmed.h
index 0202f00..e36e4f7 100644
--- a/gcc/expmed.h
+++ b/gcc/expmed.h
@@ -671,4 +671,36 @@ extern rtx emit_cstore (rtx target, enum insn_code icode, enum rtx_code code,
 			enum machine_mode mode, enum machine_mode compare_mode,
 			int unsignedp, rtx x, rtx y, int normalizep,
 			enum machine_mode target_mode);
+
+/* Arguments MODE, RTX: return an rtx for the negation of that value.
+   May emit insns.  */
+extern rtx negate_rtx (machine_mode, rtx);
+
+/* Expand a logical AND operation.  */
+extern rtx expand_and (machine_mode, rtx, rtx, rtx);
+
+/* Emit a store-flag operation.  */
+extern rtx emit_store_flag (rtx, enum rtx_code, rtx, rtx, machine_mode,
+			    int, int);
+
+/* Like emit_store_flag, but always succeeds.  */
+extern rtx emit_store_flag_force (rtx, enum rtx_code, rtx, rtx,
+				  machine_mode, int, int);
+
+/* Choose a minimal N + 1 bit approximation to 1/D that can be used to
+   replace division by D, and put the least significant N bits of the result
+   in *MULTIPLIER_PTR and return the most significant bit.  */
+extern unsigned HOST_WIDE_INT choose_multiplier (unsigned HOST_WIDE_INT, int,
+						 int, unsigned HOST_WIDE_INT *,
+						 int *, int *);
+
+#ifdef TREE_CODE
+extern rtx expand_variable_shift (enum tree_code, machine_mode,
+				  rtx, tree, rtx, int);
+extern rtx expand_shift (enum tree_code, machine_mode, rtx, int, rtx,
+			     int);
+extern rtx expand_divmod (int, enum tree_code, machine_mode, rtx, rtx,
+			  rtx, int);
 #endif
+
+#endif  // EXPMED_H
diff --git a/gcc/expr.c b/gcc/expr.c
index fc22862..7714601 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -41,10 +41,19 @@ along with GCC; see the file COPYING3.  If not see
 #include "regs.h"
 #include "hard-reg-set.h"
 #include "except.h"
-#include "input.h"
 #include "function.h"
 #include "insn-config.h"
 #include "insn-attr.h"
+#include "hashtab.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 /* Include expr.h after insn-config.h so we get HAVE_conditional_move.  */
 #include "expr.h"
 #include "insn-codes.h"
@@ -11438,4 +11447,7 @@ get_personality_function (tree decl)
   return XEXP (DECL_RTL (personality), 0);
 }
 
+
+
+
 #include "gt-expr.h"
diff --git a/gcc/expr.h b/gcc/expr.h
index a7638b8..dbf0dc1 100644
--- a/gcc/expr.h
+++ b/gcc/expr.h
@@ -20,25 +20,6 @@ along with GCC; see the file COPYING3.  If not see
 #ifndef GCC_EXPR_H
 #define GCC_EXPR_H
 
-/* For inhibit_defer_pop */
-#include "hashtab.h"
-#include "hash-set.h"
-#include "vec.h"
-#include "machmode.h"
-#include "tm.h"
-#include "hard-reg-set.h"
-#include "input.h"
-#include "function.h"
-/* For XEXP, GEN_INT, rtx_code */
-#include "rtl.h"
-/* For optimize_size */
-#include "flags.h"
-/* For tree_fits_[su]hwi_p, tree_to_[su]hwi, fold_convert, size_binop,
-   ssize_int, TREE_CODE, TYPE_SIZE, int_size_in_bytes,    */
-#include "tree-core.h"
-/* For GET_MODE_BITSIZE, word_mode */
-#include "insn-config.h"
-
 /* This is the 4th arg to `expand_expr'.
    EXPAND_STACK_PARM means we are possibly expanding a call param onto
    the stack.
@@ -73,32 +54,6 @@ typedef struct separate_ops
   tree op0, op1, op2;
 } *sepops;
 \f
-/* Functions from expmed.c:  */
-
-/* Arguments MODE, RTX: return an rtx for the negation of that value.
-   May emit insns.  */
-extern rtx negate_rtx (machine_mode, rtx);
-
-/* Expand a logical AND operation.  */
-extern rtx expand_and (machine_mode, rtx, rtx, rtx);
-
-/* Emit a store-flag operation.  */
-extern rtx emit_store_flag (rtx, enum rtx_code, rtx, rtx, machine_mode,
-			    int, int);
-
-/* Like emit_store_flag, but always succeeds.  */
-extern rtx emit_store_flag_force (rtx, enum rtx_code, rtx, rtx,
-				  machine_mode, int, int);
-
-/* Choose a minimal N + 1 bit approximation to 1/D that can be used to
-   replace division by D, and put the least significant N bits of the result
-   in *MULTIPLIER_PTR and return the most significant bit.  */
-extern unsigned HOST_WIDE_INT choose_multiplier (unsigned HOST_WIDE_INT, int,
-						 int, unsigned HOST_WIDE_INT *,
-						 int *, int *);
-\f
-/* Functions from expr.c:  */
-
 /* This is run during target initialization to set up which modes can be
    used directly in memory and to initialize the block move optab.  */
 extern void init_expr_target (void);
@@ -305,301 +260,20 @@ expand_normal (tree exp)
   return expand_expr_real (exp, NULL_RTX, VOIDmode, EXPAND_NORMAL, NULL, false);
 }
 
-/* At the start of a function, record that we have no previously-pushed
-   arguments waiting to be popped.  */
-extern void init_pending_stack_adjust (void);
-
-/* Discard any pending stack adjustment.  */
-extern void discard_pending_stack_adjust (void);
-
-/* When exiting from function, if safe, clear out any pending stack adjust
-   so the adjustment won't get done.  */
-extern void clear_pending_stack_adjust (void);
-
-/* Pop any previously-pushed arguments that have not been popped yet.  */
-extern void do_pending_stack_adjust (void);
-
-/* Struct for saving/restoring of pending_stack_adjust/stack_pointer_delta
-   values.  */
-
-struct saved_pending_stack_adjust
-{
-  /* Saved value of pending_stack_adjust.  */
-  int x_pending_stack_adjust;
-
-  /* Saved value of stack_pointer_delta.  */
-  int x_stack_pointer_delta;
-};
-
-/* Remember pending_stack_adjust/stack_pointer_delta.
-   To be used around code that may call do_pending_stack_adjust (),
-   but the generated code could be discarded e.g. using delete_insns_since.  */
-
-extern void save_pending_stack_adjust (saved_pending_stack_adjust *);
-
-/* Restore the saved pending_stack_adjust/stack_pointer_delta.  */
-
-extern void restore_pending_stack_adjust (saved_pending_stack_adjust *);
 
 /* Return the tree node and offset if a given argument corresponds to
    a string constant.  */
 extern tree string_constant (tree, tree *);
 
-/* Generate code to evaluate EXP and jump to LABEL if the value is zero.  */
-extern void jumpifnot (tree, rtx, int);
-extern void jumpifnot_1 (enum tree_code, tree, tree, rtx, int);
-
-/* Generate code to evaluate EXP and jump to LABEL if the value is nonzero.  */
-extern void jumpif (tree, rtx, int);
-extern void jumpif_1 (enum tree_code, tree, tree, rtx, int);
-
-/* Generate code to evaluate EXP and jump to IF_FALSE_LABEL if
-   the result is zero, or IF_TRUE_LABEL if the result is one.  */
-extern void do_jump (tree, rtx, rtx, int);
-extern void do_jump_1 (enum tree_code, tree, tree, rtx, rtx, int);
-
-extern void do_compare_rtx_and_jump (rtx, rtx, enum rtx_code, int,
-				     machine_mode, rtx, rtx, rtx, int);
-
 /* Two different ways of generating switch statements.  */
 extern int try_casesi (tree, tree, tree, tree, rtx, rtx, rtx, int);
 extern int try_tablejump (tree, tree, tree, tree, rtx, rtx, int);
 
-/* Functions from alias.c */
-#include "alias.h"
-
-\f
-/* rtl.h and tree.h were included.  */
-/* Return an rtx for the size in bytes of the value of an expr.  */
-extern rtx expr_size (tree);
-
-/* Return a wide integer for the size in bytes of the value of EXP, or -1
-   if the size can vary or is larger than an integer.  */
-extern HOST_WIDE_INT int_expr_size (tree);
-
-/* Return an rtx that refers to the value returned by a function
-   in its original home.  This becomes invalid if any more code is emitted.  */
-extern rtx hard_function_value (const_tree, const_tree, const_tree, int);
-
-extern rtx prepare_call_address (tree, rtx, rtx, rtx *, int, int);
-
-extern bool shift_return_value (machine_mode, bool, rtx);
-
-extern rtx expand_call (tree, rtx, int);
-
-extern void fixup_tail_calls (void);
-
-#ifdef TREE_CODE
-extern rtx expand_variable_shift (enum tree_code, machine_mode,
-				  rtx, tree, rtx, int);
-extern rtx expand_shift (enum tree_code, machine_mode, rtx, int, rtx,
-			     int);
-extern rtx expand_divmod (int, enum tree_code, machine_mode, rtx, rtx,
-			  rtx, int);
-#endif
-
-/* Return the CODE_LABEL rtx for a LABEL_DECL, creating it if necessary.  */
-extern rtx label_rtx (tree);
-
-/* As label_rtx, but additionally the label is placed on the forced label
-   list of its containing function (i.e. it is treated as reachable even
-   if how is not obvious).  */
-extern rtx force_label_rtx (tree);
-
-/* Return an rtx like arg but sans any constant terms.
-   Returns the original rtx if it has no constant terms.
-   The constant terms are added and stored via a second arg.  */
-extern rtx eliminate_constant_term (rtx, rtx *);
-
-/* Convert arg to a valid memory address for specified machine mode that points
-   to a specific named address space, by emitting insns to perform arithmetic
-   if necessary.  */
-extern rtx memory_address_addr_space (machine_mode, rtx, addr_space_t);
-
-/* Like memory_address_addr_space, except assume the memory address points to
-   the generic named address space.  */
-#define memory_address(MODE,RTX) \
-	memory_address_addr_space ((MODE), (RTX), ADDR_SPACE_GENERIC)
-
-/* Return a memory reference like MEMREF, but with its mode changed
-   to MODE and its address changed to ADDR.
-   (VOIDmode means don't change the mode.
-   NULL for ADDR means don't change the address.)  */
-extern rtx change_address (rtx, machine_mode, rtx);
-
-/* Return a memory reference like MEMREF, but with its mode changed
-   to MODE and its address offset by OFFSET bytes.  */
-#define adjust_address(MEMREF, MODE, OFFSET) \
-  adjust_address_1 (MEMREF, MODE, OFFSET, 1, 1, 0, 0)
-
-/* Likewise, but the reference is not required to be valid.  */
-#define adjust_address_nv(MEMREF, MODE, OFFSET) \
-  adjust_address_1 (MEMREF, MODE, OFFSET, 0, 1, 0, 0)
-
-/* Return a memory reference like MEMREF, but with its mode changed
-   to MODE and its address offset by OFFSET bytes.  Assume that it's
-   for a bitfield and conservatively drop the underlying object if we
-   cannot be sure to stay within its bounds.  */
-#define adjust_bitfield_address(MEMREF, MODE, OFFSET) \
-  adjust_address_1 (MEMREF, MODE, OFFSET, 1, 1, 1, 0)
-
-/* As for adjust_bitfield_address, but specify that the width of
-   BLKmode accesses is SIZE bytes.  */
-#define adjust_bitfield_address_size(MEMREF, MODE, OFFSET, SIZE) \
-  adjust_address_1 (MEMREF, MODE, OFFSET, 1, 1, 1, SIZE)
-
-/* Likewise, but the reference is not required to be valid.  */
-#define adjust_bitfield_address_nv(MEMREF, MODE, OFFSET) \
-  adjust_address_1 (MEMREF, MODE, OFFSET, 0, 1, 1, 0)
-
-/* Return a memory reference like MEMREF, but with its mode changed
-   to MODE and its address changed to ADDR, which is assumed to be
-   increased by OFFSET bytes from MEMREF.  */
-#define adjust_automodify_address(MEMREF, MODE, ADDR, OFFSET) \
-  adjust_automodify_address_1 (MEMREF, MODE, ADDR, OFFSET, 1)
-
-/* Likewise, but the reference is not required to be valid.  */
-#define adjust_automodify_address_nv(MEMREF, MODE, ADDR, OFFSET) \
-  adjust_automodify_address_1 (MEMREF, MODE, ADDR, OFFSET, 0)
-
-extern rtx adjust_address_1 (rtx, machine_mode, HOST_WIDE_INT, int, int,
-			     int, HOST_WIDE_INT);
-extern rtx adjust_automodify_address_1 (rtx, machine_mode, rtx,
-					HOST_WIDE_INT, int);
-
-/* Return a memory reference like MEMREF, but whose address is changed by
-   adding OFFSET, an RTX, to it.  POW2 is the highest power of two factor
-   known to be in OFFSET (possibly 1).  */
-extern rtx offset_address (rtx, rtx, unsigned HOST_WIDE_INT);
-
-/* Definitions from emit-rtl.c */
-#include "emit-rtl.h"
-
-/* Return a memory reference like MEMREF, but with its mode widened to
-   MODE and adjusted by OFFSET.  */
-extern rtx widen_memory_access (rtx, machine_mode, HOST_WIDE_INT);
-
-/* Return a memory reference like MEMREF, but which is known to have a
-   valid address.  */
-extern rtx validize_mem (rtx);
-
-extern rtx use_anchored_address (rtx);
-
-/* Given REF, a MEM, and T, either the type of X or the expression
-   corresponding to REF, set the memory attributes.  OBJECTP is nonzero
-   if we are making a new object of this type.  */
-extern void set_mem_attributes (rtx, tree, int);
-
-/* Similar, except that BITPOS has not yet been applied to REF, so if
-   we alter MEM_OFFSET according to T then we should subtract BITPOS
-   expecting that it'll be added back in later.  */
-extern void set_mem_attributes_minus_bitpos (rtx, tree, int, HOST_WIDE_INT);
-
-/* Return OFFSET if XEXP (MEM, 0) - OFFSET is known to be ALIGN
-   bits aligned for 0 <= OFFSET < ALIGN / BITS_PER_UNIT, or
-   -1 if not known.  */
-extern int get_mem_align_offset (rtx, unsigned int);
-
-/* Assemble the static constant template for function entry trampolines.  */
-extern rtx assemble_trampoline_template (void);
-
-/* Copy given rtx to a new temp reg and return that.  */
-extern rtx copy_to_reg (rtx);
-
-/* Like copy_to_reg but always make the reg Pmode.  */
-extern rtx copy_addr_to_reg (rtx);
-
-/* Like copy_to_reg but always make the reg the specified mode MODE.  */
-extern rtx copy_to_mode_reg (machine_mode, rtx);
-
-/* Copy given rtx to given temp reg and return that.  */
-extern rtx copy_to_suggested_reg (rtx, rtx, machine_mode);
-
-/* Copy a value to a register if it isn't already a register.
-   Args are mode (in case value is a constant) and the value.  */
-extern rtx force_reg (machine_mode, rtx);
-
-/* Return given rtx, copied into a new temp reg if it was in memory.  */
-extern rtx force_not_mem (rtx);
-
-/* Return mode and signedness to use when an argument or result in the
-   given mode is promoted.  */
-extern machine_mode promote_function_mode (const_tree, machine_mode, int *,
-					        const_tree, int);
-
-/* Return mode and signedness to use when an object in the given mode
-   is promoted.  */
-extern machine_mode promote_mode (const_tree, machine_mode, int *);
-
-/* Return mode and signedness to use when object is promoted.  */
-machine_mode promote_decl_mode (const_tree, int *);
-
-/* Remove some bytes from the stack.  An rtx says how many.  */
-extern void adjust_stack (rtx);
-
-/* Add some bytes to the stack.  An rtx says how many.  */
-extern void anti_adjust_stack (rtx);
-
-/* Add some bytes to the stack while probing it.  An rtx says how many. */
-extern void anti_adjust_stack_and_probe (rtx, bool);
-
-/* This enum is used for the following two functions.  */
-enum save_level {SAVE_BLOCK, SAVE_FUNCTION, SAVE_NONLOCAL};
-
-/* Save the stack pointer at the specified level.  */
-extern void emit_stack_save (enum save_level, rtx *);
-
-/* Restore the stack pointer from a save area of the specified level.  */
-extern void emit_stack_restore (enum save_level, rtx);
-
-/* Invoke emit_stack_save for the nonlocal_goto_save_area.  */
-extern void update_nonlocal_goto_save_area (void);
-
-/* Allocate some space on the stack dynamically and return its address.  */
-extern rtx allocate_dynamic_stack_space (rtx, unsigned, unsigned, bool);
-
-/* Emit one stack probe at ADDRESS, an address within the stack.  */
-extern void emit_stack_probe (rtx);
-
-/* Probe a range of stack addresses from FIRST to FIRST+SIZE, inclusive.
-   FIRST is a constant and size is a Pmode RTX.  These are offsets from
-   the current stack pointer.  STACK_GROWS_DOWNWARD says whether to add
-   or subtract them from the stack pointer.  */
-extern void probe_stack_range (HOST_WIDE_INT, rtx);
-
-/* Return an rtx that refers to the value returned by a library call
-   in its original home.  This becomes invalid if any more code is emitted.  */
-extern rtx hard_libcall_value (machine_mode, rtx);
-
-extern void store_bit_field (rtx, unsigned HOST_WIDE_INT,
-			     unsigned HOST_WIDE_INT,
-			     unsigned HOST_WIDE_INT,
-			     unsigned HOST_WIDE_INT,
-			     machine_mode, rtx);
-extern rtx extract_bit_field (rtx, unsigned HOST_WIDE_INT,
-			      unsigned HOST_WIDE_INT, int, rtx,
-			      machine_mode, machine_mode);
-extern rtx extract_low_bits (machine_mode, machine_mode, rtx);
-extern rtx expand_mult (machine_mode, rtx, rtx, rtx, int);
-extern rtx expand_mult_highpart_adjust (machine_mode, rtx, rtx, rtx, rtx, int);
-
-extern rtx assemble_static_space (unsigned HOST_WIDE_INT);
 extern int safe_from_p (const_rtx, tree, int);
-extern bool split_comparison (enum rtx_code, machine_mode,
-			      enum rtx_code *, enum rtx_code *);
 
 /* Get the personality libfunc for a function decl.  */
 rtx get_personality_function (tree);
 
-
-/* In stmt.c */
-
-/* Expand a GIMPLE_SWITCH statement.  */
-extern void expand_case (gswitch *);
-
-/* Like expand_case but special-case for SJLJ exception dispatching.  */
-extern void expand_sjlj_dispatch_table (rtx, vec<tree> );
-
 /* Determine whether the LEN bytes can be moved by using several move
    instructions.  Return nonzero if a call to move_by_pieces should
    succeed.  */
diff --git a/gcc/final.c b/gcc/final.c
index 7797d81..1fa93d9 100644
--- a/gcc/final.c
+++ b/gcc/final.c
@@ -68,7 +68,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "flags.h"
 #include "output.h"
 #include "except.h"
-#include "input.h"
 #include "function.h"
 #include "rtl-error.h"
 #include "toplev.h" /* exact_log2, floor_log2 */
@@ -82,6 +81,16 @@ along with GCC; see the file COPYING3.  If not see
 #include "target.h"
 #include "targhooks.h"
 #include "debug.h"
+#include "hashtab.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tree-pass.h"
 #include "hash-map.h"
diff --git a/gcc/fold-const.c b/gcc/fold-const.c
index b1cbfac..8974dc0 100644
--- a/gcc/fold-const.c
+++ b/gcc/fold-const.c
@@ -61,6 +61,19 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-iterator.h"
 #include "realmpfr.h"
 #include "rtl.h"
+#include "hashtab.h"
+#include "hard-reg-set.h"
+#include "function.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tm_p.h"
 #include "target.h"
@@ -69,11 +82,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "langhooks.h"
 #include "md5.h"
 #include "predict.h"
-#include "vec.h"
-#include "hashtab.h"
-#include "hard-reg-set.h"
-#include "input.h"
-#include "function.h"
 #include "basic-block.h"
 #include "tree-ssa-alias.h"
 #include "internal-fn.h"
diff --git a/gcc/function.c b/gcc/function.c
index 9589e64..2c3d142 100644
--- a/gcc/function.c
+++ b/gcc/function.c
@@ -53,18 +53,24 @@ along with GCC; see the file COPYING3.  If not see
 #include "flags.h"
 #include "except.h"
 #include "hashtab.h"
-#include "hash-set.h"
-#include "vec.h"
-#include "machmode.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
+#include "rtl.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
 #include "libfuncs.h"
 #include "regs.h"
-#include "insn-config.h"
 #include "recog.h"
 #include "output.h"
 #include "tm_p.h"
diff --git a/gcc/gcse.c b/gcc/gcse.c
index 0f04641..e03b36c 100644
--- a/gcc/gcse.c
+++ b/gcc/gcse.c
@@ -157,7 +157,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "insn-config.h"
 #include "recog.h"
 #include "predict.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -166,6 +165,17 @@ along with GCC; see the file COPYING3.  If not see
 #include "lcm.h"
 #include "cfgcleanup.h"
 #include "basic-block.h"
+#include "hashtab.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "except.h"
 #include "ggc.h"
diff --git a/gcc/genemit.c b/gcc/genemit.c
index cda3fce..1bcb66b 100644
--- a/gcc/genemit.c
+++ b/gcc/genemit.c
@@ -811,19 +811,23 @@ from the machine description file `md'.  */\n\n");
   printf ("#include \"rtl.h\"\n");
   printf ("#include \"tm_p.h\"\n");
   printf ("#include \"hashtab.h\"\n");
-  printf ("#include \"hash-set.h\"\n");
-  printf ("#include \"vec.h\"\n");
-  printf ("#include \"machmode.h\"\n");
   printf ("#include \"hard-reg-set.h\"\n");
-  printf ("#include \"input.h\"\n");
   printf ("#include \"function.h\"\n");
+  printf ("#include \"flags.h\"\n");
+  printf ("#include \"statistics.h\"\n");
+  printf ("#include \"real.h\"\n");
+  printf ("#include \"fixed-value.h\"\n");
+  printf ("#include \"insn-config.h\"\n");
+  printf ("#include \"expmed.h\"\n");
+  printf ("#include \"dojump.h\"\n");
+  printf ("#include \"explow.h\"\n");
+  printf ("#include \"emit-rtl.h\"\n");
+  printf ("#include \"stmt.h\"\n");
   printf ("#include \"expr.h\"\n");
   printf ("#include \"insn-codes.h\"\n");
   printf ("#include \"optabs.h\"\n");
   printf ("#include \"dfp.h\"\n");
-  printf ("#include \"flags.h\"\n");
   printf ("#include \"output.h\"\n");
-  printf ("#include \"insn-config.h\"\n");
   printf ("#include \"recog.h\"\n");
   printf ("#include \"predict.h\"\n");
   printf ("#include \"basic-block.h\"\n");
diff --git a/gcc/generic-match-head.c b/gcc/generic-match-head.c
index c34604d..daa56aa 100644
--- a/gcc/generic-match-head.c
+++ b/gcc/generic-match-head.c
@@ -39,7 +39,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "hard-reg-set.h"
 #include "function.h"
 #include "predict.h"
-#include "input.h"
 #include "basic-block.h"
 #include "tree-ssa-alias.h"
 #include "internal-fn.h"
@@ -50,6 +49,19 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-ssanames.h"
 #include "gimple-fold.h"
 #include "gimple-iterator.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tree-dfa.h"
 #include "builtins.h"
diff --git a/gcc/gengtype.c b/gcc/gengtype.c
index 9f805b5..295a163 100644
--- a/gcc/gengtype.c
+++ b/gcc/gengtype.c
@@ -1714,8 +1714,11 @@ open_base_files (void)
       "wide-int.h", "inchash.h",
       "tree.h", "fold-const.h", "rtl.h",
       "machmode.h", "tm.h", "hard-reg-set.h", "input.h", "predict.h",
-      "function.h", "insn-config.h", "expr.h", "alloc-pool.h",
-      "hard-reg-set.h", "basic-block.h", "cselib.h", "insn-addr.h",
+      "function.h", "insn-config.h", "flags.h", "statistics.h",
+      "real.h", "fixed-value.h", "tree.h", "expmed.h", "dojump.h",
+      "explow.h", "calls.h", "emit-rtl.h", "varasm.h", "stmt.h",
+      "expr.h", "alloc-pool.h",
+      "basic-block.h", "cselib.h", "insn-addr.h",
       "optabs.h", "libfuncs.h", "debug.h", "ggc.h", 
       "ggc.h", "dominance.h", "cfg.h", "basic-block.h",
       "tree-ssa-alias.h", "internal-fn.h", "gimple-fold.h", "tree-eh.h",
diff --git a/gcc/genopinit.c b/gcc/genopinit.c
index b301053..7fa59eb 100644
--- a/gcc/genopinit.c
+++ b/gcc/genopinit.c
@@ -483,6 +483,17 @@ main (int argc, char **argv)
 	   "#include \"tm_p.h\"\n"
 	   "#include \"flags.h\"\n"
 	   "#include \"insn-config.h\"\n"
+	   "#include \"hashtab.h\"\n"
+	   "#include \"hard-reg-set.h\"\n"
+	   "#include \"function.h\"\n"
+	   "#include \"statistics.h\"\n"
+	   "#include \"real.h\"\n"
+	   "#include \"fixed-value.h\"\n"
+	   "#include \"expmed.h\"\n"
+	   "#include \"dojump.h\"\n"
+	   "#include \"explow.h\"\n"
+	   "#include \"emit-rtl.h\"\n"
+	   "#include \"stmt.h\"\n"
 	   "#include \"expr.h\"\n"
 	   "#include \"insn-codes.h\"\n"
 	   "#include \"optabs.h\"\n"
diff --git a/gcc/genoutput.c b/gcc/genoutput.c
index fde30ef..3be3e13 100644
--- a/gcc/genoutput.c
+++ b/gcc/genoutput.c
@@ -243,13 +243,22 @@ output_prologue (void)
   printf ("#include \"stor-layout.h\"\n");
   printf ("#include \"calls.h\"\n");
   printf ("#include \"rtl.h\"\n");
+  printf ("#include \"hashtab.h\"\n");
+  printf ("#include \"hard-reg-set.h\"\n");
+  printf ("#include \"function.h\"\n");
+  printf ("#include \"statistics.h\"\n");
+  printf ("#include \"real.h\"\n");
+  printf ("#include \"fixed-value.h\"\n");
+  printf ("#include \"insn-config.h\"\n");
+  printf ("#include \"expmed.h\"\n");
+  printf ("#include \"dojump.h\"\n");
+  printf ("#include \"explow.h\"\n");
+  printf ("#include \"emit-rtl.h\"\n");
+  printf ("#include \"stmt.h\"\n");
   printf ("#include \"expr.h\"\n");
   printf ("#include \"insn-codes.h\"\n");
   printf ("#include \"tm_p.h\"\n");
-  printf ("#include \"function.h\"\n");
   printf ("#include \"regs.h\"\n");
-  printf ("#include \"hard-reg-set.h\"\n");
-  printf ("#include \"insn-config.h\"\n\n");
   printf ("#include \"conditions.h\"\n");
   printf ("#include \"insn-attr.h\"\n\n");
   printf ("#include \"recog.h\"\n\n");
diff --git a/gcc/gimple-fold.c b/gcc/gimple-fold.c
index 49b31f1..baec077 100644
--- a/gcc/gimple-fold.c
+++ b/gcc/gimple-fold.c
@@ -34,17 +34,24 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree.h"
 #include "fold-const.h"
 #include "stringpool.h"
-#include "expr.h"
-#include "stmt.h"
-#include "stor-layout.h"
-#include "flags.h"
 #include "hashtab.h"
-#include "hash-set.h"
-#include "vec.h"
-#include "machmode.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
+#include "expr.h"
+#include "stor-layout.h"
 #include "dumpfile.h"
 #include "bitmap.h"
 #include "predict.h"
diff --git a/gcc/gimple-match-head.c b/gcc/gimple-match-head.c
index d7ada77..0ca189d 100644
--- a/gcc/gimple-match-head.c
+++ b/gcc/gimple-match-head.c
@@ -36,11 +36,9 @@ along with GCC; see the file COPYING3.  If not see
 #include "stringpool.h"
 #include "stor-layout.h"
 #include "flags.h"
-#include "tm.h"
 #include "hard-reg-set.h"
 #include "function.h"
 #include "predict.h"
-#include "input.h"
 #include "basic-block.h"
 #include "tree-ssa-alias.h"
 #include "internal-fn.h"
@@ -51,6 +49,19 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-ssanames.h"
 #include "gimple-fold.h"
 #include "gimple-iterator.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tree-dfa.h"
 #include "builtins.h"
diff --git a/gcc/gimple-ssa-strength-reduction.c b/gcc/gimple-ssa-strength-reduction.c
index f6c92d0..5b84bbe 100644
--- a/gcc/gimple-ssa-strength-reduction.c
+++ b/gcc/gimple-ssa-strength-reduction.c
@@ -51,7 +51,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "predict.h"
 #include "tm.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -64,6 +63,20 @@ along with GCC; see the file COPYING3.  If not see
 #include "gimple-iterator.h"
 #include "gimplify-me.h"
 #include "stor-layout.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tree-pass.h"
 #include "cfgloop.h"
@@ -75,7 +88,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "stringpool.h"
 #include "tree-ssanames.h"
 #include "domwalk.h"
-#include "expmed.h"
 #include "params.h"
 #include "tree-ssa-address.h"
 #include "tree-affine.h"
diff --git a/gcc/gimplify.c b/gcc/gimplify.c
index 59aaf5a..2472d86 100644
--- a/gcc/gimplify.c
+++ b/gcc/gimplify.c
@@ -35,12 +35,25 @@ along with GCC; see the file COPYING3.  If not see
 #include "inchash.h"
 #include "tree.h"
 #include "fold-const.h"
-#include "expr.h"
-#include "predict.h"
+#include "hashtab.h"
 #include "tm.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
+#include "expr.h"
+#include "predict.h"
 #include "basic-block.h"
 #include "tree-ssa-alias.h"
 #include "internal-fn.h"
@@ -52,10 +65,7 @@ along with GCC; see the file COPYING3.  If not see
 #include "gimplify.h"
 #include "gimple-iterator.h"
 #include "stringpool.h"
-#include "calls.h"
-#include "varasm.h"
 #include "stor-layout.h"
-#include "stmt.h"
 #include "print-tree.h"
 #include "tree-iterator.h"
 #include "tree-inline.h"
diff --git a/gcc/graphite-sese-to-poly.c b/gcc/graphite-sese-to-poly.c
index 5bb521f..23b63ad 100644
--- a/gcc/graphite-sese-to-poly.c
+++ b/gcc/graphite-sese-to-poly.c
@@ -55,7 +55,6 @@ extern "C" {
 #include "predict.h"
 #include "tm.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -88,6 +87,20 @@ extern "C" {
 #include "tree-ssa-propagate.h"
 
 #ifdef HAVE_isl
+#include "hashtab.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "graphite-poly.h"
 #include "graphite-sese-to-poly.h"
diff --git a/gcc/hw-doloop.c b/gcc/hw-doloop.c
index 5ad1569..ff2cb7b 100644
--- a/gcc/hw-doloop.c
+++ b/gcc/hw-doloop.c
@@ -25,16 +25,32 @@ along with GCC; see the file COPYING3.  If not see
 #include "rtl.h"
 #include "flags.h"
 #include "symtab.h"
-#include "expr.h"
-#include "hard-reg-set.h"
-#include "regs.h"
-#include "predict.h"
-#include "vec.h"
 #include "hashtab.h"
 #include "hash-set.h"
+#include "vec.h"
 #include "machmode.h"
+#include "hard-reg-set.h"
 #include "input.h"
 #include "function.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "alias.h"
+#include "wide-int.h"
+#include "inchash.h"
+#include "tree.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
+#include "expr.h"
+#include "regs.h"
+#include "predict.h"
 #include "dominance.h"
 #include "cfg.h"
 #include "cfgrtl.h"
diff --git a/gcc/ifcvt.c b/gcc/ifcvt.c
index 30a13a8..a3e3e5c 100644
--- a/gcc/ifcvt.c
+++ b/gcc/ifcvt.c
@@ -43,6 +43,21 @@
 #include "cfgcleanup.h"
 #include "basic-block.h"
 #include "symtab.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "alias.h"
+#include "wide-int.h"
+#include "inchash.h"
+#include "tree.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "output.h"
 #include "insn-codes.h"
diff --git a/gcc/init-regs.c b/gcc/init-regs.c
index 3b9560d..14b56f1 100644
--- a/gcc/init-regs.c
+++ b/gcc/init-regs.c
@@ -33,16 +33,27 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree.h"
 #include "rtl.h"
 #include "regs.h"
+#include "hashtab.h"
+#include "hard-reg-set.h"
+#include "function.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tree-pass.h"
 #include "predict.h"
-#include "hard-reg-set.h"
-#include "input.h"
-#include "function.h"
 #include "dominance.h"
 #include "cfg.h"
 #include "basic-block.h"
-#include "flags.h"
 #include "df.h"
 
 /* Check all of the uses of pseudo variables.  If any use that is MUST
diff --git a/gcc/internal-fn.c b/gcc/internal-fn.c
index 07a9ec5..0609e4a 100644
--- a/gcc/internal-fn.c
+++ b/gcc/internal-fn.c
@@ -34,19 +34,31 @@ along with GCC; see the file COPYING3.  If not see
 #include "fold-const.h"
 #include "internal-fn.h"
 #include "stor-layout.h"
+#include "hashtab.h"
+#include "tm.h"
+#include "hard-reg-set.h"
+#include "function.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
 #include "predict.h"
-#include "tm.h"
-#include "hard-reg-set.h"
-#include "input.h"
-#include "function.h"
 #include "dominance.h"
 #include "cfg.h"
 #include "basic-block.h"
 #include "tree-ssa-alias.h"
-#include "internal-fn.h"
 #include "gimple-expr.h"
 #include "is-a.h"
 #include "gimple.h"
diff --git a/gcc/ipa-devirt.c b/gcc/ipa-devirt.c
index 52d2e52..70f2bc8 100644
--- a/gcc/ipa-devirt.c
+++ b/gcc/ipa-devirt.c
@@ -128,15 +128,26 @@ along with GCC; see the file COPYING3.  If not see
 #include "is-a.h"
 #include "plugin-api.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "ipa-ref.h"
 #include "cgraph.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tree-pass.h"
 #include "target.h"
 #include "hash-table.h"
-#include "inchash.h"
 #include "tree-pretty-print.h"
 #include "ipa-utils.h"
 #include "tree-ssa-alias.h"
diff --git a/gcc/ipa-icf-gimple.c b/gcc/ipa-icf-gimple.c
index ed3cdf5..aa44704 100644
--- a/gcc/ipa-icf-gimple.c
+++ b/gcc/ipa-icf-gimple.c
@@ -37,7 +37,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "predict.h"
 #include "tm.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "basic-block.h"
 #include "tree-ssa-alias.h"
@@ -45,6 +44,20 @@ along with GCC; see the file COPYING3.  If not see
 #include "gimple-expr.h"
 #include "is-a.h"
 #include "gimple.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "gimple-iterator.h"
 #include "gimple-ssa.h"
diff --git a/gcc/ipa-icf.c b/gcc/ipa-icf.c
index 9e2dea5..1b9770a 100644
--- a/gcc/ipa-icf.c
+++ b/gcc/ipa-icf.c
@@ -69,7 +69,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "predict.h"
 #include "tm.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -79,6 +78,20 @@ along with GCC; see the file COPYING3.  If not see
 #include "gimple-expr.h"
 #include "is-a.h"
 #include "gimple.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "gimple-iterator.h"
 #include "gimple-ssa.h"
@@ -109,7 +122,6 @@ along with GCC; see the file COPYING3.  If not see
 #include <list>
 #include "ipa-icf-gimple.h"
 #include "ipa-icf.h"
-#include "varasm.h"
 
 using namespace ipa_icf_gimple;
 
diff --git a/gcc/ipa-polymorphic-call.c b/gcc/ipa-polymorphic-call.c
index 369d938..5ad5e51 100644
--- a/gcc/ipa-polymorphic-call.c
+++ b/gcc/ipa-polymorphic-call.c
@@ -35,6 +35,21 @@ along with GCC; see the file COPYING3.  If not see
 #include "fold-const.h"
 #include "print-tree.h"
 #include "calls.h"
+#include "hashtab.h"
+#include "hard-reg-set.h"
+#include "function.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tree-pass.h"
 #include "target.h"
@@ -44,9 +59,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "hash-map.h"
 #include "is-a.h"
 #include "plugin-api.h"
-#include "hard-reg-set.h"
-#include "input.h"
-#include "function.h"
 #include "ipa-ref.h"
 #include "cgraph.h"
 #include "ipa-utils.h"
diff --git a/gcc/ipa-prop.c b/gcc/ipa-prop.c
index 01f4111..6807c22 100644
--- a/gcc/ipa-prop.c
+++ b/gcc/ipa-prop.c
@@ -35,7 +35,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "predict.h"
 #include "tm.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -47,6 +46,20 @@ along with GCC; see the file COPYING3.  If not see
 #include "gimple-expr.h"
 #include "is-a.h"
 #include "gimple.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "stor-layout.h"
 #include "print-tree.h"
@@ -73,7 +86,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-pass.h"
 #include "tree-inline.h"
 #include "ipa-inline.h"
-#include "flags.h"
 #include "diagnostic.h"
 #include "gimple-pretty-print.h"
 #include "lto-streamer.h"
@@ -86,7 +98,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "dbgcnt.h"
 #include "domwalk.h"
 #include "builtins.h"
-#include "calls.h"
 
 /* Intermediate information that we get from alias analysis about a particular
    parameter in a particular basic_block.  When a parameter or the memory it
diff --git a/gcc/ipa-split.c b/gcc/ipa-split.c
index 924c6b1..7e2e300 100644
--- a/gcc/ipa-split.c
+++ b/gcc/ipa-split.c
@@ -92,7 +92,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "predict.h"
 #include "tm.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -104,8 +103,21 @@ along with GCC; see the file COPYING3.  If not see
 #include "is-a.h"
 #include "gimple.h"
 #include "stringpool.h"
-#include "expr.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
 #include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
+#include "expr.h"
 #include "gimplify.h"
 #include "gimple-iterator.h"
 #include "gimplify-me.h"
@@ -122,12 +134,10 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-cfg.h"
 #include "tree-phinodes.h"
 #include "ssa-iterators.h"
-#include "stringpool.h"
 #include "tree-ssanames.h"
 #include "tree-into-ssa.h"
 #include "tree-dfa.h"
 #include "tree-pass.h"
-#include "flags.h"
 #include "diagnostic.h"
 #include "tree-dump.h"
 #include "tree-inline.h"
diff --git a/gcc/ira-color.c b/gcc/ira-color.c
index d362981..d04be29 100644
--- a/gcc/ira-color.c
+++ b/gcc/ira-color.c
@@ -42,6 +42,22 @@ along with GCC; see the file COPYING3.  If not see
 #include "cfg.h"
 #include "basic-block.h"
 #include "symtab.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "alias.h"
+#include "wide-int.h"
+#include "inchash.h"
+#include "tree.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "diagnostic-core.h"
 #include "reload.h"
diff --git a/gcc/ira-costs.c b/gcc/ira-costs.c
index 4219e60..0acb949 100644
--- a/gcc/ira-costs.c
+++ b/gcc/ira-costs.c
@@ -26,22 +26,37 @@ along with GCC; see the file COPYING3.  If not see
 #include "hard-reg-set.h"
 #include "rtl.h"
 #include "symtab.h"
-#include "expr.h"
-#include "tm_p.h"
-#include "flags.h"
-#include "predict.h"
-#include "vec.h"
 #include "hashtab.h"
 #include "hash-set.h"
+#include "vec.h"
 #include "machmode.h"
 #include "input.h"
 #include "function.h"
+#include "flags.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "alias.h"
+#include "wide-int.h"
+#include "inchash.h"
+#include "tree.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
+#include "expr.h"
+#include "tm_p.h"
+#include "predict.h"
 #include "dominance.h"
 #include "cfg.h"
 #include "basic-block.h"
 #include "regs.h"
 #include "addresses.h"
-#include "insn-config.h"
 #include "recog.h"
 #include "reload.h"
 #include "diagnostic-core.h"
diff --git a/gcc/ira-emit.c b/gcc/ira-emit.c
index b1847ec..8837587 100644
--- a/gcc/ira-emit.c
+++ b/gcc/ira-emit.c
@@ -90,6 +90,22 @@ along with GCC; see the file COPYING3.  If not see
 #include "cfgbuild.h"
 #include "basic-block.h"
 #include "symtab.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "alias.h"
+#include "wide-int.h"
+#include "inchash.h"
+#include "tree.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "recog.h"
 #include "params.h"
diff --git a/gcc/ira.c b/gcc/ira.c
index b7ae86e..ea2b69f 100644
--- a/gcc/ira.c
+++ b/gcc/ira.c
@@ -386,7 +386,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "bitmap.h"
 #include "hard-reg-set.h"
 #include "predict.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -395,6 +394,18 @@ along with GCC; see the file COPYING3.  If not see
 #include "cfgcleanup.h"
 #include "basic-block.h"
 #include "df.h"
+#include "hashtab.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "recog.h"
 #include "params.h"
diff --git a/gcc/java/builtins.c b/gcc/java/builtins.c
index ee1ac60..067ce9f 100644
--- a/gcc/java/builtins.c
+++ b/gcc/java/builtins.c
@@ -53,6 +53,20 @@ The Free Software Foundation is independent of Sun Microsystems, Inc.  */
    Front ends should never have to look at that.  */
 #include "rtl.h"
 #include "insn-codes.h"
+#include "hashtab.h"
+#include "hard-reg-set.h"
+#include "function.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "optabs.h"
 
diff --git a/gcc/jump.c b/gcc/jump.c
index c3eb40c..3b8c91e 100644
--- a/gcc/jump.c
+++ b/gcc/jump.c
@@ -57,6 +57,21 @@ along with GCC; see the file COPYING3.  If not see
 #include "cfgrtl.h"
 #include "basic-block.h"
 #include "symtab.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "alias.h"
+#include "wide-int.h"
+#include "inchash.h"
+#include "tree.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "except.h"
 #include "diagnostic-core.h"
diff --git a/gcc/loop-doloop.c b/gcc/loop-doloop.c
index bc0953c..0b6447ad 100644
--- a/gcc/loop-doloop.c
+++ b/gcc/loop-doloop.c
@@ -25,14 +25,30 @@ along with GCC; see the file COPYING3.  If not see
 #include "rtl.h"
 #include "flags.h"
 #include "symtab.h"
-#include "expr.h"
-#include "hard-reg-set.h"
-#include "vec.h"
 #include "hashtab.h"
 #include "hash-set.h"
+#include "vec.h"
 #include "machmode.h"
+#include "hard-reg-set.h"
 #include "input.h"
 #include "function.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "alias.h"
+#include "wide-int.h"
+#include "inchash.h"
+#include "tree.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
+#include "expr.h"
 #include "diagnostic-core.h"
 #include "tm_p.h"
 #include "predict.h"
diff --git a/gcc/loop-invariant.c b/gcc/loop-invariant.c
index be9078c..cc48032 100644
--- a/gcc/loop-invariant.c
+++ b/gcc/loop-invariant.c
@@ -55,10 +55,26 @@ along with GCC; see the file COPYING3.  If not see
 #include "basic-block.h"
 #include "cfgloop.h"
 #include "symtab.h"
+#include "flags.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "alias.h"
+#include "wide-int.h"
+#include "inchash.h"
+#include "tree.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "recog.h"
 #include "target.h"
-#include "flags.h"
 #include "df.h"
 #include "hash-table.h"
 #include "except.h"
diff --git a/gcc/loop-iv.c b/gcc/loop-iv.c
index 5934448..de2b15a 100644
--- a/gcc/loop-iv.c
+++ b/gcc/loop-iv.c
@@ -66,6 +66,23 @@ along with GCC; see the file COPYING3.  If not see
 #include "basic-block.h"
 #include "cfgloop.h"
 #include "symtab.h"
+#include "flags.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "alias.h"
+#include "wide-int.h"
+#include "inchash.h"
+#include "tree.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "intl.h"
 #include "diagnostic-core.h"
diff --git a/gcc/loop-unroll.c b/gcc/loop-unroll.c
index 917c66b..2befb61 100644
--- a/gcc/loop-unroll.c
+++ b/gcc/loop-unroll.c
@@ -36,7 +36,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "obstack.h"
 #include "profile.h"
 #include "predict.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -46,6 +45,19 @@ along with GCC; see the file COPYING3.  If not see
 #include "params.h"
 #include "insn-codes.h"
 #include "optabs.h"
+#include "hashtab.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "hash-table.h"
 #include "recog.h"
diff --git a/gcc/lower-subreg.c b/gcc/lower-subreg.c
index d58b5c5..9d5fd3b 100644
--- a/gcc/lower-subreg.c
+++ b/gcc/lower-subreg.c
@@ -25,7 +25,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "machmode.h"
 #include "tm.h"
 #include "hash-set.h"
-#include "machmode.h"
 #include "vec.h"
 #include "double-int.h"
 #include "input.h"
@@ -41,7 +40,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "obstack.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -51,6 +49,17 @@ along with GCC; see the file COPYING3.  If not see
 #include "recog.h"
 #include "bitmap.h"
 #include "dce.h"
+#include "hashtab.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "except.h"
 #include "regs.h"
diff --git a/gcc/lra-assigns.c b/gcc/lra-assigns.c
index c8a2fb1..2462af5 100644
--- a/gcc/lra-assigns.c
+++ b/gcc/lra-assigns.c
@@ -94,6 +94,22 @@ along with GCC; see the file COPYING3.	If not see
 #include "input.h"
 #include "function.h"
 #include "symtab.h"
+#include "flags.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "alias.h"
+#include "wide-int.h"
+#include "inchash.h"
+#include "tree.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "predict.h"
 #include "dominance.h"
diff --git a/gcc/lra-coalesce.c b/gcc/lra-coalesce.c
index 7db148f..045691d 100644
--- a/gcc/lra-coalesce.c
+++ b/gcc/lra-coalesce.c
@@ -61,6 +61,21 @@ along with GCC; see the file COPYING3.	If not see
 #include "input.h"
 #include "function.h"
 #include "symtab.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "alias.h"
+#include "wide-int.h"
+#include "inchash.h"
+#include "tree.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "predict.h"
 #include "dominance.h"
diff --git a/gcc/lra-constraints.c b/gcc/lra-constraints.c
index 5bd8e7c..cdfa944 100644
--- a/gcc/lra-constraints.c
+++ b/gcc/lra-constraints.c
@@ -127,6 +127,22 @@
 #include "input.h"
 #include "function.h"
 #include "symtab.h"
+#include "flags.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "alias.h"
+#include "wide-int.h"
+#include "inchash.h"
+#include "tree.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "predict.h"
 #include "dominance.h"
diff --git a/gcc/lra-eliminations.c b/gcc/lra-eliminations.c
index a591de6..fe05a1f 100644
--- a/gcc/lra-eliminations.c
+++ b/gcc/lra-eliminations.c
@@ -72,6 +72,22 @@ along with GCC; see the file COPYING3.	If not see
 #include "input.h"
 #include "function.h"
 #include "symtab.h"
+#include "flags.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "alias.h"
+#include "wide-int.h"
+#include "inchash.h"
+#include "tree.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "predict.h"
 #include "dominance.h"
diff --git a/gcc/lra-lives.c b/gcc/lra-lives.c
index bd7e159..50d3969 100644
--- a/gcc/lra-lives.c
+++ b/gcc/lra-lives.c
@@ -43,6 +43,22 @@ along with GCC; see the file COPYING3.	If not see
 #include "input.h"
 #include "function.h"
 #include "symtab.h"
+#include "flags.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "alias.h"
+#include "wide-int.h"
+#include "inchash.h"
+#include "tree.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "predict.h"
 #include "dominance.h"
diff --git a/gcc/lra-remat.c b/gcc/lra-remat.c
index a32ecca..68146a1 100644
--- a/gcc/lra-remat.c
+++ b/gcc/lra-remat.c
@@ -72,6 +72,22 @@ along with GCC; see the file COPYING3.	If not see
 #include "input.h"
 #include "function.h"
 #include "symtab.h"
+#include "flags.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "alias.h"
+#include "wide-int.h"
+#include "inchash.h"
+#include "tree.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "predict.h"
 #include "dominance.h"
@@ -82,7 +98,6 @@ along with GCC; see the file COPYING3.	If not see
 #include "ira.h"
 #include "sparseset.h"
 #include "params.h"
-#include "df.h"
 #include "lra-int.h"
 
 /* Number of candidates for rematerialization.  */
diff --git a/gcc/lra-spills.c b/gcc/lra-spills.c
index a42a1b3..1847351 100644
--- a/gcc/lra-spills.c
+++ b/gcc/lra-spills.c
@@ -74,6 +74,21 @@ along with GCC; see the file COPYING3.	If not see
 #include "input.h"
 #include "function.h"
 #include "symtab.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "alias.h"
+#include "wide-int.h"
+#include "inchash.h"
+#include "tree.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "predict.h"
 #include "dominance.h"
diff --git a/gcc/lra.c b/gcc/lra.c
index d0a1000..bc6723d 100644
--- a/gcc/lra.c
+++ b/gcc/lra.c
@@ -125,6 +125,18 @@ along with GCC; see the file COPYING3.	If not see
 #include "inchash.h"
 #include "tree.h"
 #include "optabs.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "alias.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "predict.h"
 #include "dominance.h"
diff --git a/gcc/lto-cgraph.c b/gcc/lto-cgraph.c
index 6c6501a..b609c4b 100644
--- a/gcc/lto-cgraph.c
+++ b/gcc/lto-cgraph.c
@@ -38,7 +38,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "stringpool.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "basic-block.h"
 #include "tree-ssa-alias.h"
@@ -46,8 +45,21 @@ along with GCC; see the file COPYING3.  If not see
 #include "gimple-expr.h"
 #include "is-a.h"
 #include "gimple.h"
-#include "expr.h"
+#include "hashtab.h"
+#include "rtl.h"
 #include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
+#include "expr.h"
 #include "params.h"
 #include "langhooks.h"
 #include "bitmap.h"
diff --git a/gcc/lto-section-in.c b/gcc/lto-section-in.c
index 432e3dd..7bc014d 100644
--- a/gcc/lto-section-in.c
+++ b/gcc/lto-section-in.c
@@ -36,7 +36,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "fold-const.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "basic-block.h"
 #include "tree-ssa-alias.h"
@@ -44,8 +43,21 @@ along with GCC; see the file COPYING3.  If not see
 #include "gimple-expr.h"
 #include "is-a.h"
 #include "gimple.h"
-#include "expr.h"
+#include "hashtab.h"
+#include "rtl.h"
 #include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
+#include "expr.h"
 #include "params.h"
 #include "diagnostic-core.h"
 #include "except.h"
diff --git a/gcc/lto-section-out.c b/gcc/lto-section-out.c
index 63dda15..11b7cd0 100644
--- a/gcc/lto-section-out.c
+++ b/gcc/lto-section-out.c
@@ -36,7 +36,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "fold-const.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "basic-block.h"
 #include "tree-ssa-alias.h"
@@ -44,6 +43,20 @@ along with GCC; see the file COPYING3.  If not see
 #include "gimple-expr.h"
 #include "is-a.h"
 #include "gimple.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "params.h"
 #include "except.h"
diff --git a/gcc/lto-streamer-in.c b/gcc/lto-streamer-in.c
index 4540c83..fbb272f 100644
--- a/gcc/lto-streamer-in.c
+++ b/gcc/lto-streamer-in.c
@@ -37,13 +37,25 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree.h"
 #include "fold-const.h"
 #include "stringpool.h"
-#include "expr.h"
+#include "hashtab.h"
+#include "hard-reg-set.h"
+#include "function.h"
+#include "rtl.h"
 #include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
+#include "expr.h"
 #include "params.h"
-#include "input.h"
 #include "predict.h"
-#include "hard-reg-set.h"
-#include "function.h"
 #include "dominance.h"
 #include "cfg.h"
 #include "basic-block.h"
@@ -72,7 +84,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "gimple-streamer.h"
 #include "lto-streamer.h"
 #include "tree-streamer.h"
-#include "tree-pass.h"
 #include "streamer-hooks.h"
 #include "cfgloop.h"
 
diff --git a/gcc/lto-streamer-out.c b/gcc/lto-streamer-out.c
index 21a78bb..3cfdfc6 100644
--- a/gcc/lto-streamer-out.c
+++ b/gcc/lto-streamer-out.c
@@ -37,13 +37,25 @@ along with GCC; see the file COPYING3.  If not see
 #include "fold-const.h"
 #include "stor-layout.h"
 #include "stringpool.h"
-#include "expr.h"
+#include "hashtab.h"
+#include "hard-reg-set.h"
+#include "function.h"
+#include "rtl.h"
 #include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
+#include "expr.h"
 #include "params.h"
-#include "input.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/modulo-sched.c b/gcc/modulo-sched.c
index 240ae27..22cd216 100644
--- a/gcc/modulo-sched.c
+++ b/gcc/modulo-sched.c
@@ -48,11 +48,7 @@ along with GCC; see the file COPYING3.  If not see
 #include "sched-int.h"
 #include "target.h"
 #include "cfgloop.h"
-#include "hash-set.h"
-#include "machmode.h"
-#include "vec.h"
 #include "double-int.h"
-#include "input.h"
 #include "alias.h"
 #include "symtab.h"
 #include "wide-int.h"
@@ -60,6 +56,16 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree.h"
 #include "insn-codes.h"
 #include "optabs.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "params.h"
 #include "gcov-io.h"
diff --git a/gcc/omp-low.c b/gcc/omp-low.c
index eaad52a..9ec3d49 100644
--- a/gcc/omp-low.c
+++ b/gcc/omp-low.c
@@ -41,7 +41,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "rtl.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -71,11 +70,22 @@ along with GCC; see the file COPYING3.  If not see
 #include "ssa-iterators.h"
 #include "tree-ssanames.h"
 #include "tree-into-ssa.h"
+#include "hashtab.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tree-dfa.h"
 #include "tree-ssa.h"
-#include "flags.h"
-#include "expr.h"
 #include "tree-pass.h"
 #include "except.h"
 #include "splay-tree.h"
diff --git a/gcc/optabs.c b/gcc/optabs.c
index 615199a..e9dc798 100644
--- a/gcc/optabs.c
+++ b/gcc/optabs.c
@@ -45,9 +45,18 @@ along with GCC; see the file COPYING3.  If not see
 #include "tm_p.h"
 #include "flags.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "except.h"
+#include "hashtab.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
diff --git a/gcc/passes.c b/gcc/passes.c
index 52dc067..aa65732 100644
--- a/gcc/passes.c
+++ b/gcc/passes.c
@@ -32,7 +32,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "machmode.h"
 #include "vec.h"
 #include "double-int.h"
-#include "input.h"
 #include "alias.h"
 #include "symtab.h"
 #include "wide-int.h"
@@ -52,6 +51,16 @@ along with GCC; see the file COPYING3.  If not see
 #include "except.h"
 #include "function.h"
 #include "toplev.h"
+#include "hashtab.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "predict.h"
 #include "basic-block.h"
diff --git a/gcc/postreload-gcse.c b/gcc/postreload-gcse.c
index 8d82632..324264a 100644
--- a/gcc/postreload-gcse.c
+++ b/gcc/postreload-gcse.c
@@ -42,13 +42,23 @@ along with GCC; see the file COPYING3.  If not see
 #include "insn-config.h"
 #include "recog.h"
 #include "predict.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
 #include "cfgrtl.h"
 #include "basic-block.h"
 #include "profile.h"
+#include "hashtab.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "except.h"
 #include "intl.h"
diff --git a/gcc/postreload.c b/gcc/postreload.c
index 67d02d0..30fa449 100644
--- a/gcc/postreload.c
+++ b/gcc/postreload.c
@@ -35,6 +35,21 @@ along with GCC; see the file COPYING3.  If not see
 #include "input.h"
 #include "function.h"
 #include "symtab.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "alias.h"
+#include "wide-int.h"
+#include "inchash.h"
+#include "tree.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
@@ -51,13 +66,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "cselib.h"
 #include "diagnostic-core.h"
 #include "except.h"
-#include "double-int.h"
-#include "input.h"
-#include "alias.h"
-#include "symtab.h"
-#include "wide-int.h"
-#include "inchash.h"
-#include "tree.h"
 #include "target.h"
 #include "tree-pass.h"
 #include "df.h"
diff --git a/gcc/predict.c b/gcc/predict.c
index 9793897..505c06d 100644
--- a/gcc/predict.c
+++ b/gcc/predict.c
@@ -47,7 +47,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "tm_p.h"
 #include "hard-reg-set.h"
 #include "predict.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -60,6 +59,16 @@ along with GCC; see the file COPYING3.  If not see
 #include "except.h"
 #include "diagnostic-core.h"
 #include "recog.h"
+#include "hashtab.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "coverage.h"
 #include "sreal.h"
@@ -84,7 +93,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-ssa-loop.h"
 #include "tree-pass.h"
 #include "tree-scalar-evolution.h"
-#include "cfgloop.h"
 
 /* real constants: 0, 1, 1-1/REG_BR_PROB_BASE, REG_BR_PROB_BASE,
 		   1/REG_BR_PROB_BASE, 0.5, BB_FREQ_MAX.  */
diff --git a/gcc/profile.c b/gcc/profile.c
index 86a7094..a178a1b 100644
--- a/gcc/profile.c
+++ b/gcc/profile.c
@@ -55,7 +55,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "flags.h"
 #include "regs.h"
 #include "symtab.h"
-#include "expr.h"
 #include "hashtab.h"
 #include "hash-set.h"
 #include "vec.h"
@@ -63,6 +62,23 @@ along with GCC; see the file COPYING3.  If not see
 #include "hard-reg-set.h"
 #include "input.h"
 #include "function.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "alias.h"
+#include "wide-int.h"
+#include "inchash.h"
+#include "tree.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
+#include "expr.h"
 #include "predict.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -71,9 +87,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "diagnostic-core.h"
 #include "coverage.h"
 #include "value-prof.h"
-#include "symtab.h"
-#include "inchash.h"
-#include "tree.h"
 #include "fold-const.h"
 #include "tree-ssa-alias.h"
 #include "internal-fn.h"
diff --git a/gcc/recog.c b/gcc/recog.c
index cf7f48d..7b5ca8b 100644
--- a/gcc/recog.c
+++ b/gcc/recog.c
@@ -40,10 +40,21 @@ along with GCC; see the file COPYING3.  If not see
 #include "recog.h"
 #include "regs.h"
 #include "addresses.h"
-#include "expr.h"
-#include "input.h"
+#include "hashtab.h"
 #include "function.h"
+#include "rtl.h"
 #include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
+#include "expr.h"
 #include "predict.h"
 #include "dominance.h"
 #include "cfg.h"
diff --git a/gcc/ree.c b/gcc/ree.c
index bf872a2..56e4f52 100644
--- a/gcc/ree.c
+++ b/gcc/ree.c
@@ -235,14 +235,23 @@ along with GCC; see the file COPYING3.  If not see
 #include "regs.h"
 #include "hard-reg-set.h"
 #include "predict.h"
-#include "machmode.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
 #include "cfgrtl.h"
 #include "basic-block.h"
 #include "insn-config.h"
+#include "hashtab.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "insn-attr.h"
 #include "recog.h"
diff --git a/gcc/reginfo.c b/gcc/reginfo.c
index 407d61b..2a18fb8 100644
--- a/gcc/reginfo.c
+++ b/gcc/reginfo.c
@@ -41,18 +41,28 @@ along with GCC; see the file COPYING3.  If not see
 #include "inchash.h"
 #include "tree.h"
 #include "rtl.h"
+#include "hashtab.h"
+#include "function.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tm_p.h"
-#include "flags.h"
 #include "predict.h"
-#include "input.h"
-#include "function.h"
 #include "dominance.h"
 #include "cfg.h"
 #include "basic-block.h"
 #include "regs.h"
 #include "addresses.h"
-#include "insn-config.h"
 #include "recog.h"
 #include "reload.h"
 #include "diagnostic-core.h"
diff --git a/gcc/reload.c b/gcc/reload.c
index b7b91cd..70b86a9 100644
--- a/gcc/reload.c
+++ b/gcc/reload.c
@@ -96,6 +96,30 @@ a register with any other reload.  */
 #include "tm_p.h"
 #include "insn-config.h"
 #include "symtab.h"
+#include "hashtab.h"
+#include "hash-set.h"
+#include "vec.h"
+#include "machmode.h"
+#include "hard-reg-set.h"
+#include "input.h"
+#include "function.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "alias.h"
+#include "wide-int.h"
+#include "inchash.h"
+#include "tree.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
@@ -108,14 +132,6 @@ a register with any other reload.  */
 #include "reload.h"
 #include "regs.h"
 #include "addresses.h"
-#include "hard-reg-set.h"
-#include "flags.h"
-#include "hashtab.h"
-#include "hash-set.h"
-#include "vec.h"
-#include "machmode.h"
-#include "input.h"
-#include "function.h"
 #include "params.h"
 #include "target.h"
 #include "ira.h"
diff --git a/gcc/reload1.c b/gcc/reload1.c
index b1af1a4..5a01045 100644
--- a/gcc/reload1.c
+++ b/gcc/reload1.c
@@ -36,6 +36,22 @@ along with GCC; see the file COPYING3.  If not see
 #include "input.h"
 #include "function.h"
 #include "symtab.h"
+#include "rtl.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "alias.h"
+#include "wide-int.h"
+#include "inchash.h"
+#include "tree.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
@@ -51,13 +67,8 @@ along with GCC; see the file COPYING3.  If not see
 #include "reload.h"
 #include "recog.h"
 #include "except.h"
-#include "symtab.h"
-#include "wide-int.h"
-#include "inchash.h"
-#include "tree.h"
 #include "ira.h"
 #include "target.h"
-#include "emit-rtl.h"
 #include "dumpfile.h"
 #include "rtl-iter.h"
 
diff --git a/gcc/reorg.c b/gcc/reorg.c
index 043ba4b..8f0e063 100644
--- a/gcc/reorg.c
+++ b/gcc/reorg.c
@@ -108,7 +108,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "rtl.h"
 #include "tm_p.h"
 #include "symtab.h"
-#include "expr.h"
 #include "hashtab.h"
 #include "hash-set.h"
 #include "vec.h"
@@ -116,7 +115,24 @@ along with GCC; see the file COPYING3.  If not see
 #include "hard-reg-set.h"
 #include "input.h"
 #include "function.h"
+#include "flags.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "alias.h"
+#include "wide-int.h"
+#include "inchash.h"
+#include "tree.h"
 #include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
+#include "expr.h"
 #include "conditions.h"
 #include "predict.h"
 #include "dominance.h"
@@ -124,7 +140,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "basic-block.h"
 #include "regs.h"
 #include "recog.h"
-#include "flags.h"
 #include "obstack.h"
 #include "insn-attr.h"
 #include "resource.h"
@@ -132,7 +147,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "params.h"
 #include "target.h"
 #include "tree-pass.h"
-#include "emit-rtl.h"
 
 #ifdef DELAY_SLOTS
 
diff --git a/gcc/rtl-chkp.c b/gcc/rtl-chkp.c
index 524b3ba..5f12843 100644
--- a/gcc/rtl-chkp.c
+++ b/gcc/rtl-chkp.c
@@ -22,23 +22,39 @@ along with GCC; see the file COPYING3.  If not see
 #include "system.h"
 #include "coretypes.h"
 #include "symtab.h"
-#include "expr.h"
-#include "target.h"
-#include "tree-ssa-alias.h"
-#include "internal-fn.h"
-#include "is-a.h"
-#include "predict.h"
-#include "basic-block.h"
+#include "hashtab.h"
 #include "hash-set.h"
-#include "machmode.h"
 #include "vec.h"
-#include "double-int.h"
+#include "machmode.h"
+#include "tm.h"
+#include "hard-reg-set.h"
 #include "input.h"
+#include "function.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "alias.h"
-#include "symtab.h"
 #include "wide-int.h"
 #include "inchash.h"
 #include "tree.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
+#include "expr.h"
+#include "target.h"
+#include "tree-ssa-alias.h"
+#include "internal-fn.h"
+#include "is-a.h"
+#include "predict.h"
+#include "basic-block.h"
 #include "fold-const.h"
 #include "gimple-expr.h"
 #include "gimple.h"
diff --git a/gcc/rtlhooks.c b/gcc/rtlhooks.c
index efb1513..48cb758 100644
--- a/gcc/rtlhooks.c
+++ b/gcc/rtlhooks.c
@@ -24,6 +24,30 @@ along with GCC; see the file COPYING3.  If not see
 #include "rtl.h"
 #include "rtlhooks-def.h"
 #include "symtab.h"
+#include "hashtab.h"
+#include "hash-set.h"
+#include "vec.h"
+#include "machmode.h"
+#include "hard-reg-set.h"
+#include "input.h"
+#include "function.h"
+#include "flags.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "alias.h"
+#include "wide-int.h"
+#include "inchash.h"
+#include "tree.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "recog.h"
 \f
diff --git a/gcc/shrink-wrap.c b/gcc/shrink-wrap.c
index 0c7a64c..3928f3d 100644
--- a/gcc/shrink-wrap.c
+++ b/gcc/shrink-wrap.c
@@ -41,14 +41,24 @@ along with GCC; see the file COPYING3.  If not see
 #include "flags.h"
 #include "except.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
 #include "libfuncs.h"
 #include "regs.h"
-#include "insn-config.h"
 #include "recog.h"
 #include "output.h"
 #include "tm_p.h"
diff --git a/gcc/simplify-rtx.c b/gcc/simplify-rtx.c
index b1dbc25..4ee63d2 100644
--- a/gcc/simplify-rtx.c
+++ b/gcc/simplify-rtx.c
@@ -41,10 +41,19 @@ along with GCC; see the file COPYING3.  If not see
 #include "flags.h"
 #include "insn-config.h"
 #include "recog.h"
-#include "input.h"
 #include "function.h"
 #include "insn-codes.h"
 #include "optabs.h"
+#include "hashtab.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "diagnostic-core.h"
 #include "ggc.h"
diff --git a/gcc/stack-ptr-mod.c b/gcc/stack-ptr-mod.c
index 4f74ed3..5db8fc0 100644
--- a/gcc/stack-ptr-mod.c
+++ b/gcc/stack-ptr-mod.c
@@ -33,16 +33,27 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree.h"
 #include "rtl.h"
 #include "regs.h"
+#include "hashtab.h"
+#include "hard-reg-set.h"
+#include "function.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tree-pass.h"
 #include "predict.h"
-#include "hard-reg-set.h"
-#include "input.h"
-#include "function.h"
 #include "dominance.h"
 #include "cfg.h"
 #include "basic-block.h"
-#include "flags.h"
 #include "output.h"
 #include "df.h"
 
diff --git a/gcc/stmt.c b/gcc/stmt.c
index 845c789..d1333ad 100644
--- a/gcc/stmt.c
+++ b/gcc/stmt.c
@@ -45,9 +45,18 @@ along with GCC; see the file COPYING3.  If not see
 #include "tm_p.h"
 #include "flags.h"
 #include "except.h"
-#include "input.h"
 #include "function.h"
 #include "insn-config.h"
+#include "hashtab.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "libfuncs.h"
 #include "recog.h"
diff --git a/gcc/stmt.h b/gcc/stmt.h
index 312361f..620b0f1 100644
--- a/gcc/stmt.h
+++ b/gcc/stmt.h
@@ -31,4 +31,18 @@ extern tree resolve_asm_operand_names (tree, tree, tree, tree);
 extern tree tree_overlaps_hard_reg_set (tree, HARD_REG_SET *);
 #endif
 
+/* Return the CODE_LABEL rtx for a LABEL_DECL, creating it if necessary.  */
+extern rtx label_rtx (tree);
+
+/* As label_rtx, but additionally the label is placed on the forced label
+   list of its containing function (i.e. it is treated as reachable even
+   if how is not obvious).  */
+extern rtx force_label_rtx (tree);
+
+/* Expand a GIMPLE_SWITCH statement.  */
+extern void expand_case (gswitch *);
+
+/* Like expand_case but special-case for SJLJ exception dispatching.  */
+extern void expand_sjlj_dispatch_table (rtx, vec<tree> );
+
 #endif  // GCC_STMT_H
diff --git a/gcc/stor-layout.c b/gcc/stor-layout.c
index 8bcee59..273a12b 100644
--- a/gcc/stor-layout.c
+++ b/gcc/stor-layout.c
@@ -41,8 +41,18 @@ along with GCC; see the file COPYING3.  If not see
 #include "tm_p.h"
 #include "flags.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
+#include "hashtab.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "diagnostic-core.h"
 #include "target.h"
diff --git a/gcc/store-motion.c b/gcc/store-motion.c
index 821d756..530766f 100644
--- a/gcc/store-motion.c
+++ b/gcc/store-motion.c
@@ -42,7 +42,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "insn-config.h"
 #include "recog.h"
 #include "predict.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -51,6 +50,17 @@ along with GCC; see the file COPYING3.  If not see
 #include "lcm.h"
 #include "cfgcleanup.h"
 #include "basic-block.h"
+#include "hashtab.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "except.h"
 #include "ggc.h"
diff --git a/gcc/target-globals.c b/gcc/target-globals.c
index acd23b9..6983b5c 100644
--- a/gcc/target-globals.c
+++ b/gcc/target-globals.c
@@ -41,6 +41,17 @@ along with GCC; see the file COPYING3.  If not see
 #include "hard-reg-set.h"
 #include "reload.h"
 #include "expmed.h"
+#include "hashtab.h"
+#include "function.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
diff --git a/gcc/targhooks.c b/gcc/targhooks.c
index 9b1657f..0c14103 100644
--- a/gcc/targhooks.c
+++ b/gcc/targhooks.c
@@ -53,7 +53,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "machmode.h"
 #include "rtl.h"
 #include "hash-set.h"
-#include "machmode.h"
 #include "vec.h"
 #include "double-int.h"
 #include "input.h"
@@ -65,12 +64,23 @@ along with GCC; see the file COPYING3.  If not see
 #include "fold-const.h"
 #include "stor-layout.h"
 #include "varasm.h"
+#include "hashtab.h"
+#include "hard-reg-set.h"
+#include "function.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "output.h"
 #include "diagnostic-core.h"
-#include "hard-reg-set.h"
-#include "input.h"
-#include "function.h"
 #include "target.h"
 #include "tm_p.h"
 #include "target-def.h"
diff --git a/gcc/toplev.c b/gcc/toplev.c
index 76c41c3..7bf177f 100644
--- a/gcc/toplev.c
+++ b/gcc/toplev.c
@@ -32,7 +32,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "machmode.h"
 #include "vec.h"
 #include "double-int.h"
-#include "input.h"
 #include "alias.h"
 #include "symtab.h"
 #include "wide-int.h"
@@ -55,6 +54,16 @@ along with GCC; see the file COPYING3.  If not see
 #include "except.h"
 #include "function.h"
 #include "toplev.h"
+#include "hashtab.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "intl.h"
 #include "regs.h"
diff --git a/gcc/tree-affine.c b/gcc/tree-affine.c
index 6ba3576..a8055d6 100644
--- a/gcc/tree-affine.c
+++ b/gcc/tree-affine.c
@@ -32,14 +32,27 @@ along with GCC; see the file COPYING3.  If not see
 #include "inchash.h"
 #include "tree.h"
 #include "fold-const.h"
+#include "hashtab.h"
+#include "tm.h"
+#include "hard-reg-set.h"
+#include "function.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tree-pretty-print.h"
 #include "tree-affine.h"
 #include "predict.h"
-#include "tm.h"
-#include "hard-reg-set.h"
-#include "input.h"
-#include "function.h"
 #include "basic-block.h"
 #include "tree-ssa-alias.h"
 #include "internal-fn.h"
@@ -47,7 +60,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "is-a.h"
 #include "gimple.h"
 #include "gimplify.h"
-#include "flags.h"
 #include "dumpfile.h"
 #include "cfgexpand.h"
 #include "wide-int-print.h"
diff --git a/gcc/tree-cfg.c b/gcc/tree-cfg.c
index 38e5e7d..006bc08 100644
--- a/gcc/tree-cfg.c
+++ b/gcc/tree-cfg.c
@@ -41,7 +41,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "tm_p.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -71,6 +70,19 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-ssa-loop-manip.h"
 #include "tree-ssa-loop-niter.h"
 #include "tree-into-ssa.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tree-dfa.h"
 #include "tree-ssa.h"
@@ -86,7 +98,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-ssa-live.h"
 #include "omp-low.h"
 #include "tree-cfgcleanup.h"
-#include "wide-int.h"
 #include "wide-int-print.h"
 
 /* This file contains functions for building the Control Flow Graph (CFG)
diff --git a/gcc/tree-cfgcleanup.c b/gcc/tree-cfgcleanup.c
index d712b30..5c5c7ba 100644
--- a/gcc/tree-cfgcleanup.c
+++ b/gcc/tree-cfgcleanup.c
@@ -35,7 +35,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "tm_p.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -60,6 +59,19 @@ along with GCC; see the file COPYING3.  If not see
 #include "stringpool.h"
 #include "tree-ssanames.h"
 #include "tree-ssa-loop-manip.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tree-dfa.h"
 #include "tree-ssa.h"
diff --git a/gcc/tree-chkp-opt.c b/gcc/tree-chkp-opt.c
index aed2c80..3fa2380 100644
--- a/gcc/tree-chkp-opt.c
+++ b/gcc/tree-chkp-opt.c
@@ -58,6 +58,23 @@ along with GCC; see the file COPYING3.  If not see
 #include "gimple-iterator.h"
 #include "gimplify.h"
 #include "gimplify-me.h"
+#include "hashtab.h"
+#include "tm.h"
+#include "hard-reg-set.h"
+#include "function.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tree-chkp.h"
 #include "ipa-chkp.h"
diff --git a/gcc/tree-chkp.c b/gcc/tree-chkp.c
index c606040..45ac11e 100644
--- a/gcc/tree-chkp.c
+++ b/gcc/tree-chkp.c
@@ -65,6 +65,22 @@ along with GCC; see the file COPYING3.  If not see
 #include "gimplify.h"
 #include "gimplify-me.h"
 #include "print-tree.h"
+#include "hashtab.h"
+#include "tm.h"
+#include "hard-reg-set.h"
+#include "function.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tree-ssa-propagate.h"
 #include "gimple-fold.h"
@@ -77,8 +93,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "cgraph.h"
 #include "ipa-chkp.h"
 #include "params.h"
-#include "ipa-chkp.h"
-#include "params.h"
 
 /*  Pointer Bounds Checker instruments code with memory checks to find
     out-of-bounds memory accesses.  Checks are performed by computing
diff --git a/gcc/tree-complex.c b/gcc/tree-complex.c
index 69559b7..c5b8688 100644
--- a/gcc/tree-complex.c
+++ b/gcc/tree-complex.c
@@ -37,7 +37,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "flags.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -57,6 +56,18 @@ along with GCC; see the file COPYING3.  If not see
 #include "ssa-iterators.h"
 #include "stringpool.h"
 #include "tree-ssanames.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "statistics.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tree-dfa.h"
 #include "tree-ssa.h"
diff --git a/gcc/tree-data-ref.c b/gcc/tree-data-ref.c
index 5c42e57..12a97ec 100644
--- a/gcc/tree-data-ref.c
+++ b/gcc/tree-data-ref.c
@@ -88,13 +88,26 @@ along with GCC; see the file COPYING3.  If not see
 #include "inchash.h"
 #include "tree.h"
 #include "fold-const.h"
-#include "expr.h"
-#include "gimple-pretty-print.h"
-#include "predict.h"
+#include "hashtab.h"
 #include "tm.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
+#include "expr.h"
+#include "gimple-pretty-print.h"
+#include "predict.h"
 #include "dominance.h"
 #include "cfg.h"
 #include "basic-block.h"
diff --git a/gcc/tree-dfa.c b/gcc/tree-dfa.c
index adf5ad3..8ee46dc 100644
--- a/gcc/tree-dfa.c
+++ b/gcc/tree-dfa.c
@@ -38,7 +38,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "tm_p.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -58,12 +57,23 @@ along with GCC; see the file COPYING3.  If not see
 #include "ssa-iterators.h"
 #include "stringpool.h"
 #include "tree-ssanames.h"
+#include "rtl.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tree-dfa.h"
 #include "tree-inline.h"
 #include "tree-pass.h"
 #include "params.h"
-#include "wide-int.h"
 
 /* Build and maintain data flow information for trees.  */
 
diff --git a/gcc/tree-eh.c b/gcc/tree-eh.c
index e9bf3f1..159fa2b 100644
--- a/gcc/tree-eh.c
+++ b/gcc/tree-eh.c
@@ -33,12 +33,23 @@ along with GCC; see the file COPYING3.  If not see
 #include "inchash.h"
 #include "tree.h"
 #include "fold-const.h"
-#include "expr.h"
-#include "calls.h"
-#include "flags.h"
+#include "hashtab.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
+#include "expr.h"
 #include "except.h"
 #include "predict.h"
 #include "dominance.h"
diff --git a/gcc/tree-if-conv.c b/gcc/tree-if-conv.c
index 96b86a8..cb535bc 100644
--- a/gcc/tree-if-conv.c
+++ b/gcc/tree-if-conv.c
@@ -99,7 +99,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "flags.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -130,6 +129,19 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-ssa-address.h"
 #include "tree-pass.h"
 #include "dbgcnt.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
diff --git a/gcc/tree-inline.c b/gcc/tree-inline.c
index 4a47fd2..2b8971c 100644
--- a/gcc/tree-inline.c
+++ b/gcc/tree-inline.c
@@ -39,14 +39,10 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-inline.h"
 #include "flags.h"
 #include "params.h"
-#include "input.h"
 #include "insn-config.h"
 #include "hashtab.h"
 #include "langhooks.h"
 #include "predict.h"
-#include "vec.h"
-#include "hash-set.h"
-#include "machmode.h"
 #include "hard-reg-set.h"
 #include "function.h"
 #include "dominance.h"
@@ -73,6 +69,16 @@ along with GCC; see the file COPYING3.  If not see
 #include "stringpool.h"
 #include "tree-ssanames.h"
 #include "tree-into-ssa.h"
+#include "rtl.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tree-dfa.h"
 #include "tree-ssa.h"
diff --git a/gcc/tree-into-ssa.c b/gcc/tree-into-ssa.c
index a7bff1e..2589628 100644
--- a/gcc/tree-into-ssa.c
+++ b/gcc/tree-into-ssa.c
@@ -38,7 +38,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "langhooks.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -59,6 +58,19 @@ along with GCC; see the file COPYING3.  If not see
 #include "stringpool.h"
 #include "tree-ssanames.h"
 #include "tree-into-ssa.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tree-dfa.h"
 #include "tree-ssa.h"
@@ -68,7 +80,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "domwalk.h"
 #include "params.h"
 #include "diagnostic-core.h"
-#include "tree-into-ssa.h"
 
 #define PERCENT(x,y) ((float)(x) * 100.0 / (float)(y))
 
diff --git a/gcc/tree-nested.c b/gcc/tree-nested.c
index 08b9cea..526e617 100644
--- a/gcc/tree-nested.c
+++ b/gcc/tree-nested.c
@@ -36,7 +36,6 @@
 #include "stor-layout.h"
 #include "tm_p.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "tree-dump.h"
 #include "tree-inline.h"
@@ -57,6 +56,20 @@
 #include "ipa-ref.h"
 #include "cgraph.h"
 #include "tree-cfg.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"	/* FIXME: For STACK_SAVEAREA_MODE and SAVE_NONLOCAL.  */
 #include "langhooks.h"
 #include "gimple-low.h"
diff --git a/gcc/tree-outof-ssa.c b/gcc/tree-outof-ssa.c
index af397ad..e6310cd 100644
--- a/gcc/tree-outof-ssa.c
+++ b/gcc/tree-outof-ssa.c
@@ -36,7 +36,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "stor-layout.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -68,6 +67,20 @@ along with GCC; see the file COPYING3.  If not see
 
 /* FIXME: A lot of code here deals with expanding to RTL.  All that code
    should be in cfgexpand.c.  */
+#include "hashtab.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 
 /* Return TRUE if expression STMT is suitable for replacement.  */
diff --git a/gcc/tree-predcom.c b/gcc/tree-predcom.c
index 0e4d768..ac32c84 100644
--- a/gcc/tree-predcom.c
+++ b/gcc/tree-predcom.c
@@ -203,7 +203,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "cfgloop.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -227,6 +226,20 @@ 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 "hashtab.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tree-dfa.h"
 #include "tree-ssa.h"
diff --git a/gcc/tree-pretty-print.c b/gcc/tree-pretty-print.c
index 73a61f1..5773eba 100644
--- a/gcc/tree-pretty-print.c
+++ b/gcc/tree-pretty-print.c
@@ -33,6 +33,22 @@ along with GCC; see the file COPYING3.  If not see
 #include "inchash.h"
 #include "tree.h"
 #include "stor-layout.h"
+#include "hashtab.h"
+#include "hard-reg-set.h"
+#include "function.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tree-pretty-print.h"
 #include "gimple-expr.h"
@@ -40,9 +56,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "hash-map.h"
 #include "is-a.h"
 #include "plugin-api.h"
-#include "hard-reg-set.h"
-#include "input.h"
-#include "function.h"
 #include "ipa-ref.h"
 #include "cgraph.h"
 #include "langhooks.h"
diff --git a/gcc/tree-scalar-evolution.c b/gcc/tree-scalar-evolution.c
index d4b246e..d89f631 100644
--- a/gcc/tree-scalar-evolution.c
+++ b/gcc/tree-scalar-evolution.c
@@ -268,13 +268,26 @@ along with GCC; see the file COPYING3.  If not see
 #include "inchash.h"
 #include "tree.h"
 #include "fold-const.h"
-#include "expr.h"
-#include "gimple-pretty-print.h"
-#include "predict.h"
+#include "hashtab.h"
 #include "tm.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
+#include "expr.h"
+#include "gimple-pretty-print.h"
+#include "predict.h"
 #include "dominance.h"
 #include "cfg.h"
 #include "basic-block.h"
@@ -304,7 +317,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "params.h"
 #include "tree-ssa-propagate.h"
 #include "gimple-fold.h"
-#include "gimplify-me.h"
 
 static tree analyze_scalar_evolution_1 (struct loop *, tree, tree);
 static tree analyze_scalar_evolution_for_address_of (struct loop *loop,
diff --git a/gcc/tree-sra.c b/gcc/tree-sra.c
index f560fe0..51a1b1a 100644
--- a/gcc/tree-sra.c
+++ b/gcc/tree-sra.c
@@ -91,7 +91,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "fold-const.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -114,6 +113,20 @@ along with GCC; see the file COPYING3.  If not see
 #include "ssa-iterators.h"
 #include "stringpool.h"
 #include "tree-ssanames.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tree-dfa.h"
 #include "tree-ssa.h"
@@ -123,10 +136,8 @@ along with GCC; see the file COPYING3.  If not see
 #include "cgraph.h"
 #include "symbol-summary.h"
 #include "ipa-prop.h"
-#include "statistics.h"
 #include "params.h"
 #include "target.h"
-#include "flags.h"
 #include "dbgcnt.h"
 #include "tree-inline.h"
 #include "gimple-pretty-print.h"
diff --git a/gcc/tree-ssa-address.c b/gcc/tree-ssa-address.c
index 444c3a4..d6afa2b 100644
--- a/gcc/tree-ssa-address.c
+++ b/gcc/tree-ssa-address.c
@@ -39,7 +39,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "tm_p.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "basic-block.h"
 #include "tree-pretty-print.h"
@@ -53,20 +52,29 @@ along with GCC; see the file COPYING3.  If not see
 #include "stringpool.h"
 #include "tree-ssanames.h"
 #include "tree-ssa-loop-ivopts.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tree-dfa.h"
 #include "dumpfile.h"
-#include "flags.h"
 #include "tree-inline.h"
 #include "tree-affine.h"
 
 /* FIXME: We compute address costs using RTL.  */
-#include "insn-config.h"
-#include "rtl.h"
 #include "recog.h"
-#include "expr.h"
 #include "target.h"
-#include "expmed.h"
 #include "tree-ssa-address.h"
 
 /* TODO -- handling of symbols (according to Richard Hendersons
diff --git a/gcc/tree-ssa-alias.c b/gcc/tree-ssa-alias.c
index 84938ec..31db17a 100644
--- a/gcc/tree-ssa-alias.c
+++ b/gcc/tree-ssa-alias.c
@@ -38,7 +38,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "predict.h"
 
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "basic-block.h"
@@ -56,12 +55,24 @@ along with GCC; see the file COPYING3.  If not see
 #include "gimple-ssa.h"
 #include "stringpool.h"
 #include "tree-ssanames.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tree-dfa.h"
 #include "tree-inline.h"
 #include "params.h"
 #include "alloc-pool.h"
-#include "tree-ssa-alias.h"
 #include "bitmap.h"
 #include "hash-map.h"
 #include "plugin-api.h"
diff --git a/gcc/tree-ssa-copyrename.c b/gcc/tree-ssa-copyrename.c
index a5ea091..f3cb56e 100644
--- a/gcc/tree-ssa-copyrename.c
+++ b/gcc/tree-ssa-copyrename.c
@@ -35,7 +35,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "fold-const.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -52,6 +51,19 @@ along with GCC; see the file COPYING3.  If not see
 #include "gimple-ssa.h"
 #include "stringpool.h"
 #include "tree-ssanames.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tree-dfa.h"
 #include "tree-inline.h"
diff --git a/gcc/tree-ssa-dce.c b/gcc/tree-ssa-dce.c
index a502293..c9cb0e4 100644
--- a/gcc/tree-ssa-dce.c
+++ b/gcc/tree-ssa-dce.c
@@ -61,7 +61,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "gimple-pretty-print.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -83,10 +82,22 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-ssanames.h"
 #include "tree-ssa-loop-niter.h"
 #include "tree-into-ssa.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tree-dfa.h"
 #include "tree-pass.h"
-#include "flags.h"
 #include "cfgloop.h"
 #include "tree-scalar-evolution.h"
 #include "tree-chkp.h"
diff --git a/gcc/tree-ssa-dse.c b/gcc/tree-ssa-dse.c
index 514d647..ce4e60d 100644
--- a/gcc/tree-ssa-dse.c
+++ b/gcc/tree-ssa-dse.c
@@ -35,7 +35,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "tm_p.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -54,11 +53,24 @@ along with GCC; see the file COPYING3.  If not see
 #include "ssa-iterators.h"
 #include "stringpool.h"
 #include "tree-ssanames.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tree-dfa.h"
 #include "tree-pass.h"
 #include "domwalk.h"
-#include "flags.h"
 #include "langhooks.h"
 #include "tree-cfgcleanup.h"
 
diff --git a/gcc/tree-ssa-forwprop.c b/gcc/tree-ssa-forwprop.c
index aa82ec0..a4140e5 100644
--- a/gcc/tree-ssa-forwprop.c
+++ b/gcc/tree-ssa-forwprop.c
@@ -36,7 +36,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "tm_p.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -58,13 +57,25 @@ along with GCC; see the file COPYING3.  If not see
 #include "ssa-iterators.h"
 #include "stringpool.h"
 #include "tree-ssanames.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tree-dfa.h"
 #include "tree-pass.h"
 #include "langhooks.h"
-#include "flags.h"
 #include "diagnostic.h"
-#include "expr.h"
 #include "cfgloop.h"
 #include "insn-codes.h"
 #include "optabs.h"
diff --git a/gcc/tree-ssa-live.c b/gcc/tree-ssa-live.c
index 6a2b566..cc164fb 100644
--- a/gcc/tree-ssa-live.c
+++ b/gcc/tree-ssa-live.c
@@ -39,7 +39,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "sbitmap.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -55,6 +54,20 @@ along with GCC; see the file COPYING3.  If not see
 #include "ssa-iterators.h"
 #include "stringpool.h"
 #include "tree-ssanames.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tree-dfa.h"
 #include "timevar.h"
@@ -62,7 +75,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-ssa-live.h"
 #include "diagnostic-core.h"
 #include "debug.h"
-#include "flags.h"
 #include "tree-ssa.h"
 
 #ifdef ENABLE_CHECKING
diff --git a/gcc/tree-ssa-loop-ivopts.c b/gcc/tree-ssa-loop-ivopts.c
index cb7eac8..d50adb0 100644
--- a/gcc/tree-ssa-loop-ivopts.c
+++ b/gcc/tree-ssa-loop-ivopts.c
@@ -80,7 +80,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "tm_p.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -110,29 +109,39 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-ssa-loop-manip.h"
 #include "tree-ssa-loop-niter.h"
 #include "tree-ssa-loop.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tree-dfa.h"
 #include "tree-ssa.h"
 #include "cfgloop.h"
 #include "tree-pass.h"
-#include "insn-config.h"
 #include "tree-chrec.h"
 #include "tree-scalar-evolution.h"
-#include "cfgloop.h"
 #include "params.h"
 #include "langhooks.h"
 #include "tree-affine.h"
 #include "target.h"
 #include "tree-inline.h"
 #include "tree-ssa-propagate.h"
-#include "expmed.h"
 #include "tree-ssa-address.h"
 #include "builtins.h"
 
 /* FIXME: Expressions are expanded to RTL in this pass to determine the
    cost of different addressing modes.  This should be moved to a TBD
    interface between the GIMPLE and RTL worlds.  */
-#include "expr.h"
 #include "recog.h"
 
 /* The infinite cost.  */
diff --git a/gcc/tree-ssa-loop-niter.c b/gcc/tree-ssa-loop-niter.c
index 7b0313a..919f5c0 100644
--- a/gcc/tree-ssa-loop-niter.c
+++ b/gcc/tree-ssa-loop-niter.c
@@ -33,12 +33,24 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree.h"
 #include "fold-const.h"
 #include "calls.h"
+#include "hashtab.h"
+#include "hard-reg-set.h"
+#include "function.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tm_p.h"
 #include "predict.h"
-#include "hard-reg-set.h"
-#include "input.h"
-#include "function.h"
 #include "dominance.h"
 #include "cfg.h"
 #include "basic-block.h"
@@ -64,7 +76,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-scalar-evolution.h"
 #include "tree-data-ref.h"
 #include "params.h"
-#include "flags.h"
 #include "diagnostic-core.h"
 #include "tree-inline.h"
 #include "tree-pass.h"
diff --git a/gcc/tree-ssa-loop-prefetch.c b/gcc/tree-ssa-loop-prefetch.c
index ae31b9e..10e156e 100644
--- a/gcc/tree-ssa-loop-prefetch.c
+++ b/gcc/tree-ssa-loop-prefetch.c
@@ -36,7 +36,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "tm_p.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -70,6 +69,19 @@ along with GCC; see the file COPYING3.  If not see
 
 /* FIXME: Needed for optabs, but this should all be moved to a TBD interface
    between the GIMPLE and RTL worlds.  */
+#include "hashtab.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
diff --git a/gcc/tree-ssa-math-opts.c b/gcc/tree-ssa-math-opts.c
index 350731a..35e83f0 100644
--- a/gcc/tree-ssa-math-opts.c
+++ b/gcc/tree-ssa-math-opts.c
@@ -102,7 +102,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "fold-const.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -123,6 +122,19 @@ along with GCC; see the file COPYING3.  If not see
 #include "ssa-iterators.h"
 #include "stringpool.h"
 #include "tree-ssanames.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tree-dfa.h"
 #include "tree-ssa.h"
diff --git a/gcc/tree-ssa-phiopt.c b/gcc/tree-ssa-phiopt.c
index 209b4eb..bad546d 100644
--- a/gcc/tree-ssa-phiopt.c
+++ b/gcc/tree-ssa-phiopt.c
@@ -38,7 +38,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "tm_p.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -58,6 +57,19 @@ along with GCC; see the file COPYING3.  If not see
 #include "ssa-iterators.h"
 #include "stringpool.h"
 #include "tree-ssanames.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tree-dfa.h"
 #include "tree-pass.h"
@@ -66,8 +78,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "cfgloop.h"
 #include "tree-data-ref.h"
 #include "gimple-pretty-print.h"
-#include "insn-config.h"
-#include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
 #include "tree-scalar-evolution.h"
diff --git a/gcc/tree-ssa-pre.c b/gcc/tree-ssa-pre.c
index 497890f..3ef7510 100644
--- a/gcc/tree-ssa-pre.c
+++ b/gcc/tree-ssa-pre.c
@@ -36,7 +36,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "fold-const.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -44,7 +43,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "basic-block.h"
 #include "gimple-pretty-print.h"
 #include "tree-inline.h"
-#include "inchash.h"
 #include "hash-table.h"
 #include "tree-ssa-alias.h"
 #include "internal-fn.h"
@@ -64,6 +62,20 @@ 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 "hashtab.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tree-dfa.h"
 #include "tree-ssa.h"
@@ -71,7 +83,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "alloc-pool.h"
 #include "obstack.h"
 #include "tree-pass.h"
-#include "flags.h"
 #include "langhooks.h"
 #include "cfgloop.h"
 #include "tree-ssa-sccvn.h"
diff --git a/gcc/tree-ssa-reassoc.c b/gcc/tree-ssa-reassoc.c
index dab6a6f..9952222 100644
--- a/gcc/tree-ssa-reassoc.c
+++ b/gcc/tree-ssa-reassoc.c
@@ -39,7 +39,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "stor-layout.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -65,6 +64,19 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-ssanames.h"
 #include "tree-ssa-loop-niter.h"
 #include "tree-ssa-loop.h"
+#include "hashtab.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tree-dfa.h"
 #include "tree-ssa.h"
@@ -73,7 +85,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "alloc-pool.h"
 #include "langhooks.h"
 #include "cfgloop.h"
-#include "flags.h"
 #include "target.h"
 #include "params.h"
 #include "diagnostic-core.h"
diff --git a/gcc/tree-ssa-sccvn.c b/gcc/tree-ssa-sccvn.c
index 9aa1bc3..25c67d0 100644
--- a/gcc/tree-ssa-sccvn.c
+++ b/gcc/tree-ssa-sccvn.c
@@ -36,7 +36,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "stor-layout.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -47,7 +46,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "hash-table.h"
 #include "tree-ssa-alias.h"
 #include "internal-fn.h"
-#include "inchash.h"
 #include "gimple-fold.h"
 #include "tree-eh.h"
 #include "gimple-expr.h"
@@ -59,12 +57,25 @@ along with GCC; see the file COPYING3.  If not see
 #include "ssa-iterators.h"
 #include "stringpool.h"
 #include "tree-ssanames.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tree-dfa.h"
 #include "tree-ssa.h"
 #include "dumpfile.h"
 #include "alloc-pool.h"
-#include "flags.h"
 #include "cfgloop.h"
 #include "params.h"
 #include "tree-ssa-propagate.h"
diff --git a/gcc/tree-ssa-strlen.c b/gcc/tree-ssa-strlen.c
index 11b9c7d..34776a3 100644
--- a/gcc/tree-ssa-strlen.c
+++ b/gcc/tree-ssa-strlen.c
@@ -40,7 +40,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "predict.h"
 #include "tm.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -60,6 +59,20 @@ along with GCC; see the file COPYING3.  If not see
 #include "ssa-iterators.h"
 #include "stringpool.h"
 #include "tree-ssanames.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tree-dfa.h"
 #include "tree-pass.h"
@@ -68,7 +81,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-ssa-propagate.h"
 #include "gimple-pretty-print.h"
 #include "params.h"
-#include "expr.h"
 #include "plugin-api.h"
 #include "ipa-ref.h"
 #include "cgraph.h"
diff --git a/gcc/tree-ssa-structalias.c b/gcc/tree-ssa-structalias.c
index 30a493e..96d1ce3 100644
--- a/gcc/tree-ssa-structalias.c
+++ b/gcc/tree-ssa-structalias.c
@@ -61,6 +61,17 @@
 #include "stringpool.h"
 #include "tree-ssanames.h"
 #include "tree-into-ssa.h"
+#include "rtl.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
 #include "expr.h"
 #include "tree-dfa.h"
 #include "tree-inline.h"
@@ -69,7 +80,6 @@
 #include "alloc-pool.h"
 #include "splay-tree.h"
 #include "params.h"
-#include "alias.h"
 #include "tree-phinodes.h"
 #include "ssa-iterators.h"
 #include "tree-pretty-print.h"
diff --git a/gcc/tree-switch-conversion.c b/gcc/tree-switch-conversion.c
index 8ac1ea2..6b68a16 100644
--- a/gcc/tree-switch-conversion.c
+++ b/gcc/tree-switch-conversion.c
@@ -44,7 +44,6 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 #include "stor-layout.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -76,6 +75,18 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 #include "langhooks.h"
 
 /* Need to include expr.h and optabs.h for lshift_cheap_p.  */
+#include "hashtab.h"
+#include "rtl.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
diff --git a/gcc/tree-tailcall.c b/gcc/tree-tailcall.c
index 4399bef..1d065fb 100644
--- a/gcc/tree-tailcall.c
+++ b/gcc/tree-tailcall.c
@@ -36,7 +36,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "tm_p.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -54,12 +53,25 @@ along with GCC; see the file COPYING3.  If not see
 #include "stringpool.h"
 #include "tree-ssanames.h"
 #include "tree-into-ssa.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tree-dfa.h"
 #include "gimple-pretty-print.h"
 #include "except.h"
 #include "tree-pass.h"
-#include "flags.h"
 #include "langhooks.h"
 #include "dbgcnt.h"
 #include "target.h"
diff --git a/gcc/tree-vect-data-refs.c b/gcc/tree-vect-data-refs.c
index 85e7c58..52d6a86 100644
--- a/gcc/tree-vect-data-refs.c
+++ b/gcc/tree-vect-data-refs.c
@@ -40,7 +40,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "target.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -63,7 +62,6 @@ 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 "dumpfile.h"
 #include "cfgloop.h"
 #include "tree-chrec.h"
 #include "tree-scalar-evolution.h"
@@ -74,11 +72,24 @@ along with GCC; see the file COPYING3.  If not see
 #include "ipa-ref.h"
 #include "cgraph.h"
 /* Need to include rtl.h, expr.h, etc. for optabs.  */
+#include "hashtab.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
 #include "builtins.h"
-#include "varasm.h"
 
 /* Return true if load- or store-lanes optab OPTAB is implemented for
    COUNT vectors of type VECTYPE.  NAME is the name of OPTAB.  */
diff --git a/gcc/tree-vect-generic.c b/gcc/tree-vect-generic.c
index e7e1622..8233c65 100644
--- a/gcc/tree-vect-generic.c
+++ b/gcc/tree-vect-generic.c
@@ -37,7 +37,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "langhooks.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -61,6 +60,19 @@ along with GCC; see the file COPYING3.  If not see
 #include "target.h"
 
 /* Need to include rtl.h, expr.h, etc. for optabs.  */
+#include "hashtab.h"
+#include "rtl.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
diff --git a/gcc/tree-vect-loop.c b/gcc/tree-vect-loop.c
index 670fe9d..ab503e7 100644
--- a/gcc/tree-vect-loop.c
+++ b/gcc/tree-vect-loop.c
@@ -38,7 +38,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "stor-layout.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -63,6 +62,20 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-ssa-loop-niter.h"
 #include "tree-pass.h"
 #include "cfgloop.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "recog.h"
 #include "insn-codes.h"
diff --git a/gcc/tree-vect-patterns.c b/gcc/tree-vect-patterns.c
index 814222b..d06d696 100644
--- a/gcc/tree-vect-patterns.c
+++ b/gcc/tree-vect-patterns.c
@@ -37,7 +37,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "target.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "basic-block.h"
@@ -56,6 +55,20 @@ along with GCC; see the file COPYING3.  If not see
 #include "stringpool.h"
 #include "tree-ssanames.h"
 #include "cfgloop.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
diff --git a/gcc/tree-vect-slp.c b/gcc/tree-vect-slp.c
index 2bdf179..9587651 100644
--- a/gcc/tree-vect-slp.c
+++ b/gcc/tree-vect-slp.c
@@ -39,7 +39,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "target.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "basic-block.h"
 #include "gimple-pretty-print.h"
@@ -56,6 +55,20 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-ssanames.h"
 #include "tree-pass.h"
 #include "cfgloop.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "recog.h"		/* FIXME: for insn_data */
 #include "insn-codes.h"
diff --git a/gcc/tree-vect-stmts.c b/gcc/tree-vect-stmts.c
index 1b79ace..7bdbebe 100644
--- a/gcc/tree-vect-stmts.c
+++ b/gcc/tree-vect-stmts.c
@@ -39,7 +39,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "target.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -64,13 +63,26 @@ along with GCC; see the file COPYING3.  If not see
 #include "cfgloop.h"
 #include "tree-ssa-loop.h"
 #include "tree-scalar-evolution.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "recog.h"		/* FIXME: for insn_data */
 #include "insn-codes.h"
 #include "optabs.h"
 #include "diagnostic-core.h"
 #include "tree-vectorizer.h"
-#include "dumpfile.h"
 #include "hash-map.h"
 #include "plugin-api.h"
 #include "ipa-ref.h"
diff --git a/gcc/tree-vrp.c b/gcc/tree-vrp.c
index f3e1d3d..df3cc87 100644
--- a/gcc/tree-vrp.c
+++ b/gcc/tree-vrp.c
@@ -38,7 +38,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "calls.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -74,11 +73,22 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-ssa-propagate.h"
 #include "tree-chrec.h"
 #include "tree-ssa-threadupdate.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
 #include "tree-ssa-threadedge.h"
-#include "wide-int.h"
 
 
 
diff --git a/gcc/tree.c b/gcc/tree.c
index ccba957..f9818b5 100644
--- a/gcc/tree.c
+++ b/gcc/tree.c
@@ -50,11 +50,9 @@ along with GCC; see the file COPYING3.  If not see
 #include "tm_p.h"
 #include "hashtab.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "obstack.h"
 #include "toplev.h" /* get_random_seed */
-#include "inchash.h"
 #include "filenames.h"
 #include "output.h"
 #include "target.h"
@@ -82,6 +80,16 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-phinodes.h"
 #include "stringpool.h"
 #include "tree-ssanames.h"
+#include "rtl.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tree-dfa.h"
 #include "params.h"
@@ -93,7 +101,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "except.h"
 #include "debug.h"
 #include "intl.h"
-#include "wide-int.h"
 #include "builtins.h"
 
 /* Tree code classes.  */
diff --git a/gcc/tsan.c b/gcc/tsan.c
index 5d080b8..7c17262 100644
--- a/gcc/tsan.c
+++ b/gcc/tsan.c
@@ -34,13 +34,26 @@ along with GCC; see the file COPYING3.  If not see
 #include "inchash.h"
 #include "tree.h"
 #include "fold-const.h"
-#include "expr.h"
-#include "intl.h"
+#include "hashtab.h"
 #include "tm.h"
-#include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
+#include "expr.h"
+#include "intl.h"
+#include "predict.h"
 #include "dominance.h"
 #include "cfg.h"
 #include "basic-block.h"
@@ -64,7 +77,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-iterator.h"
 #include "langhooks.h"
 #include "output.h"
-#include "options.h"
 #include "target.h"
 #include "diagnostic.h"
 #include "tree-ssa-propagate.h"
diff --git a/gcc/ubsan.c b/gcc/ubsan.c
index f455549..7c94dab 100644
--- a/gcc/ubsan.c
+++ b/gcc/ubsan.c
@@ -45,7 +45,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "plugin-api.h"
 #include "tm.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "ipa-ref.h"
 #include "cgraph.h"
@@ -65,6 +64,19 @@ along with GCC; see the file COPYING3.  If not see
 #include "ubsan.h"
 #include "c-family/c-common.h"
 #include "rtl.h"
+#include "hashtab.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tree-ssanames.h"
 #include "asan.h"
diff --git a/gcc/value-prof.c b/gcc/value-prof.c
index 03d588a..1de8e1b 100644
--- a/gcc/value-prof.c
+++ b/gcc/value-prof.c
@@ -35,17 +35,26 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-nested.h"
 #include "calls.h"
 #include "rtl.h"
-#include "expr.h"
+#include "hashtab.h"
 #include "hard-reg-set.h"
-#include "predict.h"
-#include "input.h"
 #include "function.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
+#include "expr.h"
+#include "predict.h"
 #include "dominance.h"
 #include "cfg.h"
 #include "basic-block.h"
 #include "value-prof.h"
-#include "flags.h"
-#include "insn-config.h"
 #include "recog.h"
 #include "insn-codes.h"
 #include "optabs.h"
@@ -67,7 +76,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "diagnostic.h"
 #include "gimple-pretty-print.h"
 #include "coverage.h"
-#include "tree.h"
 #include "gcov-io.h"
 #include "timevar.h"
 #include "dumpfile.h"
@@ -78,7 +86,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "cgraph.h"
 #include "data-streamer.h"
 #include "builtins.h"
-#include "tree-nested.h"
 #include "params.h"
 #include "tree-chkp.h"
 
diff --git a/gcc/var-tracking.c b/gcc/var-tracking.c
index 76fbf49..9ec5d8b 100644
--- a/gcc/var-tracking.c
+++ b/gcc/var-tracking.c
@@ -106,7 +106,6 @@
 #include "hash-table.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -120,6 +119,16 @@
 #include "sbitmap.h"
 #include "alloc-pool.h"
 #include "regs.h"
+#include "hashtab.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tree-pass.h"
 #include "bitmap.h"
@@ -131,8 +140,6 @@
 #include "diagnostic.h"
 #include "tree-pretty-print.h"
 #include "recog.h"
-#include "tm_p.h"
-#include "alias.h"
 #include "rtl-iter.h"
 #include "fibonacci_heap.h"
 
diff --git a/gcc/varasm.c b/gcc/varasm.c
index 9847ca6..36c3633 100644
--- a/gcc/varasm.c
+++ b/gcc/varasm.c
@@ -46,8 +46,18 @@ along with GCC; see the file COPYING3.  If not see
 #include "varasm.h"
 #include "flags.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
+#include "hashtab.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "regs.h"
 #include "output.h"
diff --git a/gcc/varasm.h b/gcc/varasm.h
index 22f2301..d2dafb7 100644
--- a/gcc/varasm.h
+++ b/gcc/varasm.h
@@ -68,4 +68,8 @@ extern bool constructor_static_from_elts_p (const_tree);
 
 extern void init_varasm_status (void);
 
+extern rtx assemble_static_space (unsigned HOST_WIDE_INT);
+
+extern rtx assemble_trampoline_template (void);
+
 #endif  // GCC_VARASM_H

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

* Re: flatten expr.h (version 2)
  2015-01-14 11:16           ` Prathamesh Kulkarni
@ 2015-01-14 11:18             ` Prathamesh Kulkarni
  2015-01-14 12:09               ` Prathamesh Kulkarni
  0 siblings, 1 reply; 17+ messages in thread
From: Prathamesh Kulkarni @ 2015-01-14 11:18 UTC (permalink / raw)
  To: Richard Biener; +Cc: Michael Collison, gcc Patches, Andrew MacLeod

On 14 January 2015 at 16:40, Prathamesh Kulkarni
<prathamesh.kulkarni@linaro.org> wrote:
> On 14 January 2015 at 14:34, Richard Biener <rguenther@suse.de> wrote:
>> On Wed, 14 Jan 2015, Prathamesh Kulkarni wrote:
>>
>>> On 13 January 2015 at 22:02, Prathamesh Kulkarni
>>> <prathamesh.kulkarni@linaro.org> wrote:
>>> > On 13 January 2015 at 16:06, Prathamesh Kulkarni
>>> > <prathamesh.kulkarni@linaro.org> wrote:
>>> >> On 13 January 2015 at 15:34, Richard Biener <rguenther@suse.de> wrote:
>>> >>> On Sun, 11 Jan 2015, Prathamesh Kulkarni wrote:
>>> >>>
>>> >>>> Hi,
>>> >>>> This is a revamped expr.h flattening flattening patch rebased on
>>> >>>> tree.h and tree-core.h flattening patch (r219402).
>>> >>>> It depends upon the following patch to get committed.
>>> >>>> https://gcc.gnu.org/ml/gcc-patches/2015-01/msg00565.html
>>> >>>>
>>> >>>> Changes:
>>> >>>> * Removed all includes except tree-core.h. Put includes required by
>>> >>>> expr.h in a comment.
>>> >>>> * Moved stmt.c, expmed.c prototypes to stmt.h, expmed.h respectively.
>>> >>>> * Adjusted generator programs: genemit.c, gengtype.c, genopinit.c, genoutput.c.
>>> >>>> * Did not put includes in gcc-plugin.h since expr.h cannot be included
>>> >>>> by plugins
>>> >>>> (putting them broke building a file in c-family/ since expr.h is not
>>> >>>> allowed in front-ends)
>>> >>>> * Affects java front-end (expr.h is allowed in java front-end).
>>> >>>>
>>> >>>> Bootstrapped and tested on x86_64-unknown-linux-gnu with languages:
>>> >>>> all,go,ada,jit
>>> >>>> Built on all targets in config-list.mk with languages: all, go.
>>> >>>> OK to commit ?
>>> >>>
>>> >>> diff --git a/gcc/expr.c b/gcc/expr.c
>>> >>> index fc22862..824541e 100644
>>> >>> --- a/gcc/expr.c
>>> >>> +++ b/gcc/expr.c
>>> >>> @@ -41,11 +41,17 @@ along with GCC; see the file COPYING3.  If not see
>>> >>>  #include "regs.h"
>>> >>>  #include "hard-reg-set.h"
>>> >>>  #include "except.h"
>>> >>> -#include "input.h"
>>> >>>  #include "function.h"
>>> >>>  #include "insn-config.h"
>>> >>>  #include "insn-attr.h"
>>> >>>  /* Include expr.h after insn-config.h so we get HAVE_conditional_move.
>>> >>> */
>>> >>> +#include "hashtab.h"
>>> >>> +#include "emit-rtl.h"
>>> >>> +#include "expmed.h"
>>> >>> +#include "stmt.h"
>>> >>> +#include "statistics.h"
>>> >>> +#include "real.h"
>>> >>> +#include "fixed-value.h"
>>> >>>  #include "expr.h"
>>> >>>
>>> >>> Please move the comment to the proper place
>>> >> ah, my flattening tool doesn't look at comments. I will move the
>>> >> comment before expr.h include, thanks.
>>> >>>
>>> >>> diff --git a/gcc/expr.h b/gcc/expr.h
>>> >>> index a7638b8..f1be8dc 100644
>>> >>> --- a/gcc/expr.h
>>> >>> +++ b/gcc/expr.h
>>> >>> @@ -20,7 +20,8 @@ along with GCC; see the file COPYING3.  If not see
>>> >>>  #ifndef GCC_EXPR_H
>>> >>>  #define GCC_EXPR_H
>>> >>>
>>> >>> -/* For inhibit_defer_pop */
>>> >>> +/* expr.h required includes */
>>> >>> +#if 0
>>> >>>  #include "hashtab.h"
>>> >>>  #include "hash-set.h"
>>> >>>  #include "vec.h"
>>> >>> @@ -29,15 +30,17 @@ along with GCC; see the file COPYING3.  If not see
>>> >>>  #include "hard-reg-set.h"
>>> >>>  #include "input.h"
>>> >>>  #include "function.h"
>>> >>> -/* For XEXP, GEN_INT, rtx_code */
>>> >>>  #include "rtl.h"
>>> >>> -/* For optimize_size */
>>> >>>  #include "flags.h"
>>> >>> -/* For tree_fits_[su]hwi_p, tree_to_[su]hwi, fold_convert, size_binop,
>>> >>> -   ssize_int, TREE_CODE, TYPE_SIZE, int_size_in_bytes,    */
>>> >>>  #include "tree-core.h"
>>> >>> -/* For GET_MODE_BITSIZE, word_mode */
>>> >>>  #include "insn-config.h"
>>> >>> +#include "alias.h"
>>> >>> +#include "emit-rtl.h"
>>> >>> +#include "expmed.h"
>>> >>> +#include "stmt.h"
>>> >>> +#endif
>>> >>>
>>> >>> Err, please remove the #if 0 section
>>> >> I kept it because if something breaks later (hopefully not!), it will
>>> >> be easier to fix.
>>> >> I will remove it.
>>> >>>
>>> >>> +
>>> >>> +#include "tree-core.h"
>>> >>>
>>> >>> Why?  The original comment says
>>> >>>
>>> >>> -/* For tree_fits_[su]hwi_p, tree_to_[su]hwi, fold_convert, size_binop,
>>> >>> -   ssize_int, TREE_CODE, TYPE_SIZE, int_size_in_bytes,    */
>>> >>>
>>> >>> but all those are declared in tree.h.  Which means the files including
>>> >>> expr.h must already include tree.h.
>>> >>>
>>> >>> If that's not the reason we need to include tree-core.h from expr.c
>>> >>> please add a comment explaining why.
>>> >> bt-load.c fails to compile because it includes expr.h but does not
>>> >> include tree.h
>>> >> I will place tree.h include in all files that include expr.h and rebuild.
>>> > This is not going to work, since tree.h is now flattened. Shall also
>>> > require including all headers required by
>>> > tree.h in all files that include expr.h. Could we retain tree-core.h
>>> > in expr.h for now ?
>>> > Or should I insert tree.h (along with tree.h required includes) in all
>>> > files that include expr.h ?
>>> I am including tree.h along with required includes in all files that
>>> include expr.h.
>>> This removes all includes from expr.h.
>>
>> Good.
> The attached patch, refactors expr.h so that it only exports
> prototypes from expr.c.
> I kept int_expr_size() in explow.c instead of moving it to expr.c because it
> called tree_expr_size() which is static in explow.c and has other callers too.
Not really. It only has two callers expr_size() and int_expr_size().
I will move definitions of int_expr_size(), tree_expr_size() and
expr_size() to expr.c
in followup patch.
>
> Changes:
> * New header files dojump.h, explow.h.
> * Modified generator programs: gengtype.c, genemit.c, genopinit.c,
> genoutput.c, config/tilepro/gen-mul-tables.cc.
> * Affects java front-end (java/builtins.c includes expr.h).
>
> Bootstrapped and tested on x86_64-unknown-linux-gnu with languages:
> all, go, ada, jit, obj-c++.
> Build in progress on all targets in config-list.mk with languages: all, go.
> Assuming the build goes fine, OK to commit ?
>
> Thanks,
> Prathamesh
>>
>> Richard.

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

* Re: flatten expr.h (version 2)
  2015-01-14 11:18             ` Prathamesh Kulkarni
@ 2015-01-14 12:09               ` Prathamesh Kulkarni
  2015-01-14 12:17                 ` Richard Biener
  0 siblings, 1 reply; 17+ messages in thread
From: Prathamesh Kulkarni @ 2015-01-14 12:09 UTC (permalink / raw)
  To: Richard Biener; +Cc: Michael Collison, gcc Patches, Andrew MacLeod

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

On 14 January 2015 at 11:16, Prathamesh Kulkarni
<prathamesh.kulkarni@linaro.org> wrote:
> On 14 January 2015 at 16:40, Prathamesh Kulkarni
> <prathamesh.kulkarni@linaro.org> wrote:
>> On 14 January 2015 at 14:34, Richard Biener <rguenther@suse.de> wrote:
>>> On Wed, 14 Jan 2015, Prathamesh Kulkarni wrote:
>>>
>>>> On 13 January 2015 at 22:02, Prathamesh Kulkarni
>>>> <prathamesh.kulkarni@linaro.org> wrote:
>>>> > On 13 January 2015 at 16:06, Prathamesh Kulkarni
>>>> > <prathamesh.kulkarni@linaro.org> wrote:
>>>> >> On 13 January 2015 at 15:34, Richard Biener <rguenther@suse.de> wrote:
>>>> >>> On Sun, 11 Jan 2015, Prathamesh Kulkarni wrote:
>>>> >>>
>>>> >>>> Hi,
>>>> >>>> This is a revamped expr.h flattening flattening patch rebased on
>>>> >>>> tree.h and tree-core.h flattening patch (r219402).
>>>> >>>> It depends upon the following patch to get committed.
>>>> >>>> https://gcc.gnu.org/ml/gcc-patches/2015-01/msg00565.html
>>>> >>>>
>>>> >>>> Changes:
>>>> >>>> * Removed all includes except tree-core.h. Put includes required by
>>>> >>>> expr.h in a comment.
>>>> >>>> * Moved stmt.c, expmed.c prototypes to stmt.h, expmed.h respectively.
>>>> >>>> * Adjusted generator programs: genemit.c, gengtype.c, genopinit.c, genoutput.c.
>>>> >>>> * Did not put includes in gcc-plugin.h since expr.h cannot be included
>>>> >>>> by plugins
>>>> >>>> (putting them broke building a file in c-family/ since expr.h is not
>>>> >>>> allowed in front-ends)
>>>> >>>> * Affects java front-end (expr.h is allowed in java front-end).
>>>> >>>>
>>>> >>>> Bootstrapped and tested on x86_64-unknown-linux-gnu with languages:
>>>> >>>> all,go,ada,jit
>>>> >>>> Built on all targets in config-list.mk with languages: all, go.
>>>> >>>> OK to commit ?
>>>> >>>
>>>> >>> diff --git a/gcc/expr.c b/gcc/expr.c
>>>> >>> index fc22862..824541e 100644
>>>> >>> --- a/gcc/expr.c
>>>> >>> +++ b/gcc/expr.c
>>>> >>> @@ -41,11 +41,17 @@ along with GCC; see the file COPYING3.  If not see
>>>> >>>  #include "regs.h"
>>>> >>>  #include "hard-reg-set.h"
>>>> >>>  #include "except.h"
>>>> >>> -#include "input.h"
>>>> >>>  #include "function.h"
>>>> >>>  #include "insn-config.h"
>>>> >>>  #include "insn-attr.h"
>>>> >>>  /* Include expr.h after insn-config.h so we get HAVE_conditional_move.
>>>> >>> */
>>>> >>> +#include "hashtab.h"
>>>> >>> +#include "emit-rtl.h"
>>>> >>> +#include "expmed.h"
>>>> >>> +#include "stmt.h"
>>>> >>> +#include "statistics.h"
>>>> >>> +#include "real.h"
>>>> >>> +#include "fixed-value.h"
>>>> >>>  #include "expr.h"
>>>> >>>
>>>> >>> Please move the comment to the proper place
>>>> >> ah, my flattening tool doesn't look at comments. I will move the
>>>> >> comment before expr.h include, thanks.
>>>> >>>
>>>> >>> diff --git a/gcc/expr.h b/gcc/expr.h
>>>> >>> index a7638b8..f1be8dc 100644
>>>> >>> --- a/gcc/expr.h
>>>> >>> +++ b/gcc/expr.h
>>>> >>> @@ -20,7 +20,8 @@ along with GCC; see the file COPYING3.  If not see
>>>> >>>  #ifndef GCC_EXPR_H
>>>> >>>  #define GCC_EXPR_H
>>>> >>>
>>>> >>> -/* For inhibit_defer_pop */
>>>> >>> +/* expr.h required includes */
>>>> >>> +#if 0
>>>> >>>  #include "hashtab.h"
>>>> >>>  #include "hash-set.h"
>>>> >>>  #include "vec.h"
>>>> >>> @@ -29,15 +30,17 @@ along with GCC; see the file COPYING3.  If not see
>>>> >>>  #include "hard-reg-set.h"
>>>> >>>  #include "input.h"
>>>> >>>  #include "function.h"
>>>> >>> -/* For XEXP, GEN_INT, rtx_code */
>>>> >>>  #include "rtl.h"
>>>> >>> -/* For optimize_size */
>>>> >>>  #include "flags.h"
>>>> >>> -/* For tree_fits_[su]hwi_p, tree_to_[su]hwi, fold_convert, size_binop,
>>>> >>> -   ssize_int, TREE_CODE, TYPE_SIZE, int_size_in_bytes,    */
>>>> >>>  #include "tree-core.h"
>>>> >>> -/* For GET_MODE_BITSIZE, word_mode */
>>>> >>>  #include "insn-config.h"
>>>> >>> +#include "alias.h"
>>>> >>> +#include "emit-rtl.h"
>>>> >>> +#include "expmed.h"
>>>> >>> +#include "stmt.h"
>>>> >>> +#endif
>>>> >>>
>>>> >>> Err, please remove the #if 0 section
>>>> >> I kept it because if something breaks later (hopefully not!), it will
>>>> >> be easier to fix.
>>>> >> I will remove it.
>>>> >>>
>>>> >>> +
>>>> >>> +#include "tree-core.h"
>>>> >>>
>>>> >>> Why?  The original comment says
>>>> >>>
>>>> >>> -/* For tree_fits_[su]hwi_p, tree_to_[su]hwi, fold_convert, size_binop,
>>>> >>> -   ssize_int, TREE_CODE, TYPE_SIZE, int_size_in_bytes,    */
>>>> >>>
>>>> >>> but all those are declared in tree.h.  Which means the files including
>>>> >>> expr.h must already include tree.h.
>>>> >>>
>>>> >>> If that's not the reason we need to include tree-core.h from expr.c
>>>> >>> please add a comment explaining why.
>>>> >> bt-load.c fails to compile because it includes expr.h but does not
>>>> >> include tree.h
>>>> >> I will place tree.h include in all files that include expr.h and rebuild.
>>>> > This is not going to work, since tree.h is now flattened. Shall also
>>>> > require including all headers required by
>>>> > tree.h in all files that include expr.h. Could we retain tree-core.h
>>>> > in expr.h for now ?
>>>> > Or should I insert tree.h (along with tree.h required includes) in all
>>>> > files that include expr.h ?
>>>> I am including tree.h along with required includes in all files that
>>>> include expr.h.
>>>> This removes all includes from expr.h.
>>>
>>> Good.
>> The attached patch, refactors expr.h so that it only exports
>> prototypes from expr.c.
>> I kept int_expr_size() in explow.c instead of moving it to expr.c because it
>> called tree_expr_size() which is static in explow.c and has other callers too.
> Not really. It only has two callers expr_size() and int_expr_size().
> I will move definitions of int_expr_size(), tree_expr_size() and
> expr_size() to expr.c
> in followup patch.
This version moves the definitions of int_expr_size(), tree_expr_size() and
expr_size() to expr.c.
Bootstrapped on x86_64-unknown-linux-gnu.
Please let me know if there are any other changes required.
If the patch is fine, I will restart building on all targets in config-list.mk

Thanks,
Prathamesh
>>
>> Changes:
>> * New header files dojump.h, explow.h.
>> * Modified generator programs: gengtype.c, genemit.c, genopinit.c,
>> genoutput.c, config/tilepro/gen-mul-tables.cc.
>> * Affects java front-end (java/builtins.c includes expr.h).
>>
>> Bootstrapped and tested on x86_64-unknown-linux-gnu with languages:
>> all, go, ada, jit, obj-c++.
>> Build in progress on all targets in config-list.mk with languages: all, go.
>> Assuming the build goes fine, OK to commit ?
>>
>> Thanks,
>> Prathamesh
>>>
>>> Richard.

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

2015-10-14  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

	* dojump.h: New header file.
	* explow.h: Likewise.
	* expr.h: Remove includes.
	Move expmed.c prototypes to expmed.h.
	Move dojump.c prototypes to dojump.h.
	Move alias.c prototypes to alias.h.
	Move explow.c prototypes to explow.h.
	Move calls.c prototypes to calls.h.
	Move emit-rtl.c prototypes to emit-rtl.h.
	Move varasm.c prototypes to varasm.h.
	Move stmt.c prototypes to stmt.h.
	(saved_pending_stack_adjust): Move to dojump.h.
	(adjust_address): Move to explow.h.
	(adjust_address_nv): Move to emit-rtl.h.
	(adjust_bitfield_address): Likewise.
	(adjust_bitfield_address_size): Likewise.
	(adjust_bitfield_address_nv): Likewise.
	(adjust_automodify_address_nv): Likewise.
	* explow.c (eliminate_constant_term): Make static.
	(expr_size): Move to expr.c.
	(int_expr_size): Likewise.
	(tree_expr_size): Likewise.
	Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h hashtab.h statistics.h stmt.h varasm.h.

	* genemit.c (main): Generate includes statistics.h, real.h, fixed-value.h,
	insn-config.h, expmed.h, dojump.h, explow.h, emit-rtl.h, stmt.h.
	* genopinit.c (main): Generate includes hashtab.h, hard-reg-set.h, function.h,
	statistics.h, real.h, fixed-value.h, expmed.h, dojump.h, explow.h, emit-rtl.h,
	stmt.h.
	* genoutput.c (main): Generate includes hashtab.h, statistics.h, real.h,
	fixed-value.h, expmed.h, dojump.h, explow.h, emit-rtl.h, stmt.h.
	* genemit.c (open_base_files): Generate includes flags.h, statistics.h, real.h,
	fixed-value.h, tree.h, expmed.h, dojump.h, explow.h, calls.h, emit-rtl.h, varasm.h,
	stmt.h.
	* config/tilepro/gen-mul-tables.cc: Generate includes hashtab.h, hash-set.h, vec.h,
	machmode.h, tm.h, hard-reg-set.h, input.h, function.h, rtl.h, flags.h, statistics.h,
	double-int.h, real.h, fixed-value.h, alias.h, wide-int.h, inchash.h, tree.h,
	insn-config.h, expmed.h, dojump.h, explow.h, calls.h, emit-rtl.h, varasm.h, stmt.h.
	* config/tilegx/mul-tables.c: Include alias.h calls.h dojump.h
	double-int.h emit-rtl.h explow.h expmed.h fixed-value.h flags.h
	function.h hard-reg-set.h hash-set.h hashtab.h inchash.h input.h
	insn-config.h machmode.h real.h rtl.h statistics.h stmt.h symtab.h
	tm.h tree.h varasm.h vec.h wide-int.h.
	* rtlhooks.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
	explow.h expmed.h fixed-value.h flags.h function.h hard-reg-set.h
	hash-set.h hashtab.h inchash.h input.h insn-config.h machmode.h
	real.h statistics.h stmt.h tree.h varasm.h vec.h wide-int.h.
	* cfgloopanal.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
	explow.h expmed.h fixed-value.h flags.h inchash.h insn-config.h
	real.h statistics.h stmt.h tree.h varasm.h wide-int.h.
	* loop-iv.c: Likewise.
	* lra-assigns.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
	explow.h expmed.h fixed-value.h flags.h inchash.h real.h
	statistics.h stmt.h tree.h varasm.h wide-int.h.
	* lra-constraints.c: Likewise.
	* lra-eliminations.c: Likewise.
	* lra-lives.c: Likewise.
	* lra-remat.c: Likewise.
	* bt-load.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
	explow.h expmed.h fixed-value.h inchash.h insn-config.h real.h
	statistics.h stmt.h tree.h varasm.h wide-int.h.
	* hw-doloop.c: Likewise.
	* ira-color.c: Likewise.
	* ira-emit.c: Likewise.
	* loop-doloop.c: Likewise.
	* loop-invariant.c: Likewise.
	* reload.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
	explow.h expmed.h fixed-value.h inchash.h real.h rtl.h
	statistics.h stmt.h tree.h varasm.h wide-int.h.
	* caller-save.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
	explow.h expmed.h fixed-value.h inchash.h real.h statistics.h
	stmt.h tree.h varasm.h wide-int.h.
	* combine-stack-adj.c: Likewise.
	* cse.c: Likewise.
	* ddg.c: Likewise.
	* ifcvt.c: Likewise.
	* ira-costs.c: Likewise.
	* jump.c: Likewise.
	* lra-coalesce.c: Likewise.
	* lra-spills.c: Likewise.
	* profile.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
	explow.h expmed.h fixed-value.h insn-config.h real.h statistics.h
	stmt.h varasm.h wide-int.h.
	* lra.c: Include alias.h calls.h dojump.h double-int.h emit-rtl.h
	explow.h expmed.h fixed-value.h real.h statistics.h stmt.h
	varasm.h.
	* config/sh/sh_treg_combine.cc: Include alias.h calls.h dojump.h
	double-int.h explow.h expmed.h fixed-value.h flags.h real.h
	statistics.h stmt.h varasm.h wide-int.h.
	* reorg.c: Include alias.h calls.h dojump.h double-int.h explow.h
	expmed.h fixed-value.h inchash.h real.h statistics.h stmt.h tree.h
	varasm.h wide-int.h.
	* reload1.c: Include alias.h calls.h dojump.h double-int.h explow.h
	expmed.h fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
	* config/tilegx/tilegx.c: Include alias.h dojump.h double-int.h
	emit-rtl.h explow.h expmed.h fixed-value.h flags.h real.h
	statistics.h stmt.h.
	* config/tilepro/tilepro.c: Likewise.
	* config/mmix/mmix.c: Include alias.h dojump.h double-int.h emit-rtl.h
	explow.h expmed.h fixed-value.h real.h statistics.h stmt.h.
	* config/pdp11/pdp11.c: Likewise.
	* config/xtensa/xtensa.c: Likewise.
	* config/lm32/lm32.c: Include alias.h dojump.h double-int.h emit-rtl.h
	explow.h expmed.h fixed-value.h real.h statistics.h stmt.h
	varasm.h.
	* tree-chkp.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
	insn-config.h real.h rtl.h statistics.h stmt.h tm.h.
	* cilk-common.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
	insn-config.h real.h rtl.h statistics.h stmt.h tm.h varasm.h.
	* rtl-chkp.c: Likewise.
	* tree-chkp-opt.c: Likewise.
	* config/arm/arm-builtins.c: Include calls.h dojump.h emit-rtl.h explow.h
	expmed.h fixed-value.h flags.h function.h hard-reg-set.h hashtab.h
	insn-config.h real.h statistics.h stmt.h varasm.h.
	* ipa-icf.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h
	statistics.h stmt.h.
	* tree-vect-data-refs.c: Likewise.
	* graphite-sese-to-poly.c: Include calls.h dojump.h emit-rtl.h explow.h
	expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
	rtl.h statistics.h stmt.h varasm.h.
	* internal-fn.c: Likewise.
	* ipa-icf-gimple.c: Likewise.
	* lto-section-out.c: Likewise.
	* tree-data-ref.c: Likewise.
	* tree-nested.c: Likewise.
	* tree-outof-ssa.c: Likewise.
	* tree-predcom.c: Likewise.
	* tree-pretty-print.c: Likewise.
	* tree-scalar-evolution.c: Likewise.
	* tree-ssa-strlen.c: Likewise.
	* tree-vect-loop.c: Likewise.
	* tree-vect-patterns.c: Likewise.
	* tree-vect-slp.c: Likewise.
	* tree-vect-stmts.c: Likewise.
	* tsan.c: Likewise.
	* targhooks.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h flags.h hashtab.h insn-config.h real.h statistics.h
	stmt.h.
	* config/sh/sh-mem.cc: Include calls.h dojump.h emit-rtl.h explow.h
	expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
	statistics.h stmt.h varasm.h.
	* loop-unroll.c: Likewise.
	* ubsan.c: Likewise.
	* tree-ssa-loop-prefetch.c: Include calls.h dojump.h emit-rtl.h explow.h
	expmed.h fixed-value.h flags.h hashtab.h real.h rtl.h statistics.h
	stmt.h varasm.h.
	* java/builtins.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h function.h hard-reg-set.h hashtab.h insn-config.h
	real.h statistics.h stmt.h varasm.h.
	* dse.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h function.h hashtab.h statistics.h stmt.h varasm.h.
	* tree-switch-conversion.c: Include calls.h dojump.h emit-rtl.h explow.h
	expmed.h fixed-value.h hashtab.h insn-config.h real.h rtl.h
	statistics.h stmt.h.
	* generic-match-head.c: Include calls.h dojump.h emit-rtl.h explow.h
	expmed.h fixed-value.h hashtab.h insn-config.h real.h rtl.h
	statistics.h stmt.h varasm.h.
	* gimple-match-head.c: Likewise.
	* lto-cgraph.c: Likewise.
	* lto-section-in.c: Likewise.
	* lto-streamer-in.c: Likewise.
	* lto-streamer-out.c: Likewise.
	* tree-affine.c: Likewise.
	* tree-cfg.c: Likewise.
	* tree-cfgcleanup.c: Likewise.
	* tree-if-conv.c: Likewise.
	* tree-into-ssa.c: Likewise.
	* tree-ssa-alias.c: Likewise.
	* tree-ssa-copyrename.c: Likewise.
	* tree-ssa-dse.c: Likewise.
	* tree-ssa-forwprop.c: Likewise.
	* tree-ssa-live.c: Likewise.
	* tree-ssa-math-opts.c: Likewise.
	* tree-ssa-pre.c: Likewise.
	* tree-ssa-sccvn.c: Likewise.
	* tree-tailcall.c: Likewise.
	* tree-vect-generic.c: Likewise.
	* tree-sra.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h hashtab.h insn-config.h real.h rtl.h stmt.h varasm.h.
	* stor-layout.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h hashtab.h insn-config.h real.h statistics.h stmt.h.
	* varasm.c: Likewise.
	* coverage.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h hashtab.h insn-config.h real.h statistics.h stmt.h
	varasm.h.
	* init-regs.c: Likewise.
	* ira.c: Likewise.
	* omp-low.c: Likewise.
	* stack-ptr-mod.c: Likewise.
	* tree-ssa-reassoc.c: Likewise.
	* tree-complex.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h hashtab.h insn-config.h rtl.h statistics.h stmt.h
	varasm.h.
	* dwarf2cfi.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h hashtab.h insn-config.h statistics.h stmt.h varasm.h.
	* shrink-wrap.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h hashtab.h real.h rtl.h statistics.h stmt.h.
	* recog.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h hashtab.h real.h rtl.h statistics.h stmt.h varasm.h.
	* tree-ssa-phiopt.c: Likewise.
	* config/darwin.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h hashtab.h real.h statistics.h stmt.h.
	* config/fr30/fr30.c: Likewise.
	* config/frv/frv.c: Likewise.
	* expr.c: Likewise.
	* final.c: Likewise.
	* optabs.c: Likewise.
	* passes.c: Likewise.
	* simplify-rtx.c: Likewise.
	* stmt.c: Likewise.
	* toplev.c: Likewise.
	* var-tracking.c: Likewise.
	* gcse.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
	* lower-subreg.c: Likewise.
	* postreload-gcse.c: Likewise.
	* ree.c: Likewise.
	* reginfo.c: Likewise.
	* store-motion.c: Likewise.
	* combine.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h hashtab.h real.h stmt.h varasm.h.
	* emit-rtl.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h hashtab.h statistics.h stmt.h.
	* dojump.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h hashtab.h statistics.h stmt.h varasm.h.
	* except.c: Likewise.
	* explow.c: Likewise.
	* tree-dfa.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h insn-config.h real.h rtl.h statistics.h stmt.h
	varasm.h.
	* gimple-fold.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h insn-config.h real.h rtl.h statistics.h varasm.h.
	* tree-ssa-structalias.c: Likewise.
	* cfgexpand.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h insn-config.h real.h statistics.h.
	* calls.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h insn-config.h real.h statistics.h stmt.h.
	* bb-reorder.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h insn-config.h real.h statistics.h stmt.h varasm.h.
	* cfgbuild.c: Likewise.
	* function.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h real.h rtl.h statistics.h stmt.h.
	* cfgrtl.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
	* dbxout.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h real.h statistics.h stmt.h.
	* auto-inc-dec.c: Include calls.h dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h real.h statistics.h stmt.h varasm.h.
	* cprop.c: Likewise.
	* modulo-sched.c: Likewise.
	* postreload.c: Likewise.
	* ccmp.c: Include calls.h dojump.h emit-rtl.h explow.h fixed-value.h
	flags.h function.h hard-reg-set.h hashtab.h insn-config.h real.h
	statistics.h stmt.h varasm.h.
	* gimple-ssa-strength-reduction.c: Include calls.h dojump.h emit-rtl.h
	explow.h fixed-value.h flags.h hashtab.h insn-config.h real.h
	rtl.h statistics.h stmt.h varasm.h.
	* tree-ssa-loop-ivopts.c: Include calls.h dojump.h emit-rtl.h explow.h
	fixed-value.h flags.h hashtab.h real.h rtl.h statistics.h stmt.h
	varasm.h.
	* expmed.c: Include calls.h dojump.h emit-rtl.h explow.h fixed-value.h
	function.h hard-reg-set.h hashtab.h real.h statistics.h stmt.h
	varasm.h.
	* target-globals.c: Include calls.h dojump.h emit-rtl.h explow.h
	fixed-value.h function.h hashtab.h real.h statistics.h stmt.h
	varasm.h.
	* tree-ssa-address.c: Include calls.h dojump.h emit-rtl.h explow.h
	fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
	* cfgcleanup.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
	function.h real.h statistics.h stmt.h varasm.h.
	* alias.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
	insn-config.h real.h statistics.h stmt.h.
	* dwarf2out.c: Include calls.h dojump.h explow.h expmed.h fixed-value.h
	statistics.h stmt.h.
	* config/nvptx/nvptx.c: Include dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h flags.h hard-reg-set.h insn-config.h real.h
	statistics.h stmt.h varasm.h.
	* gimplify.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
	flags.h hashtab.h insn-config.h real.h rtl.h statistics.h.
	* asan.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
	flags.h hashtab.h insn-config.h real.h rtl.h statistics.h stmt.h.
	* ipa-devirt.c: Include dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h flags.h hashtab.h insn-config.h real.h rtl.h
	statistics.h stmt.h varasm.h.
	* ipa-polymorphic-call.c: Likewise.
	* config/aarch64/aarch64.c: Include dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h flags.h hashtab.h insn-config.h real.h statistics.h
	stmt.h.
	* config/c6x/c6x.c: Likewise.
	* config/aarch64/aarch64-builtins.c: Include dojump.h emit-rtl.h explow.h
	expmed.h fixed-value.h flags.h hashtab.h insn-config.h real.h
	statistics.h stmt.h varasm.h.
	* ipa-prop.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
	hashtab.h insn-config.h real.h rtl.h statistics.h stmt.h varasm.h.
	* ipa-split.c: Likewise.
	* tree-eh.c: Likewise.
	* tree-ssa-dce.c: Likewise.
	* tree-ssa-loop-niter.c: Likewise.
	* tree-vrp.c: Likewise.
	* config/nds32/nds32-cost.c: Include dojump.h emit-rtl.h explow.h
	expmed.h fixed-value.h hashtab.h insn-config.h real.h statistics.h
	stmt.h.
	* config/nds32/nds32-fp-as-gp.c: Likewise.
	* config/nds32/nds32-intrinsic.c: Likewise.
	* config/nds32/nds32-isr.c: Likewise.
	* config/nds32/nds32-md-auxiliary.c: Likewise.
	* config/nds32/nds32-memory-manipulation.c: Likewise.
	* config/nds32/nds32-pipelines-auxiliary.c: Likewise.
	* config/nds32/nds32-predicates.c: Likewise.
	* config/nds32/nds32.c: Likewise.
	* config/cris/cris.c: Include dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h hashtab.h real.h statistics.h.
	* config/alpha/alpha.c: Include dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h hashtab.h real.h statistics.h stmt.h.
	* config/arm/arm.c: Likewise.
	* config/avr/avr.c: Likewise.
	* config/bfin/bfin.c: Likewise.
	* config/h8300/h8300.c: Likewise.
	* config/i386/i386.c: Likewise.
	* config/ia64/ia64.c: Likewise.
	* config/iq2000/iq2000.c: Likewise.
	* config/m32c/m32c.c: Likewise.
	* config/m32r/m32r.c: Likewise.
	* config/m68k/m68k.c: Likewise.
	* config/mcore/mcore.c: Likewise.
	* config/mep/mep.c: Likewise.
	* config/mips/mips.c: Likewise.
	* config/mn10300/mn10300.c: Likewise.
	* config/moxie/moxie.c: Likewise.
	* config/pa/pa.c: Likewise.
	* config/rl78/rl78.c: Likewise.
	* config/rx/rx.c: Likewise.
	* config/s390/s390.c: Likewise.
	* config/sh/sh.c: Likewise.
	* config/sparc/sparc.c: Likewise.
	* config/spu/spu.c: Likewise.
	* config/stormy16/stormy16.c: Likewise.
	* config/v850/v850.c: Likewise.
	* config/vax/vax.c: Likewise.
	* config/cr16/cr16.c: Include dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h hashtab.h real.h statistics.h stmt.h varasm.h.
	* config/msp430/msp430.c: Likewise.
	* predict.c: Likewise.
	* value-prof.c: Likewise.
	* config/epiphany/epiphany.c: Include dojump.h emit-rtl.h explow.h
	expmed.h fixed-value.h hashtab.h statistics.h stmt.h.
	* config/microblaze/microblaze.c: Likewise.
	* config/nios2/nios2.c: Likewise.
	* config/rs6000/rs6000.c: Likewise.
	* tree.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
	insn-config.h real.h rtl.h statistics.h stmt.h.
	* cgraph.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
	insn-config.h real.h statistics.h stmt.h.
	* fold-const.c: Include dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h insn-config.h real.h statistics.h stmt.h varasm.h.
	* tree-inline.c: Include dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h real.h rtl.h statistics.h stmt.h varasm.h.
	* builtins.c: Include dojump.h emit-rtl.h explow.h expmed.h fixed-value.h
	real.h statistics.h stmt.h.
	* config/arc/arc.c: Include dojump.h emit-rtl.h explow.h expmed.h
	fixed-value.h statistics.h stmt.h.
	* config/visium/visium.c: Include dojump.h emit-rtl.h explow.h expmed.h
	stmt.h.

[-- Attachment #3: patch.txt --]
[-- Type: text/plain, Size: 217993 bytes --]

diff --git a/gcc/alias.c b/gcc/alias.c
index 9261cd8..a7160f3 100644
--- a/gcc/alias.c
+++ b/gcc/alias.c
@@ -35,19 +35,23 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree.h"
 #include "fold-const.h"
 #include "varasm.h"
-#include "expr.h"
-#include "tm_p.h"
 #include "hashtab.h"
-#include "hash-set.h"
-#include "vec.h"
-#include "machmode.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
-#include "alias.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
 #include "emit-rtl.h"
+#include "stmt.h"
+#include "expr.h"
+#include "tm_p.h"
 #include "regs.h"
-#include "flags.h"
 #include "diagnostic-core.h"
 #include "cselib.h"
 #include "hash-map.h"
diff --git a/gcc/asan.c b/gcc/asan.c
index 9585f6c..b7c2b11 100644
--- a/gcc/asan.c
+++ b/gcc/asan.c
@@ -38,7 +38,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "predict.h"
 #include "tm.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -48,7 +47,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "internal-fn.h"
 #include "gimple-expr.h"
 #include "is-a.h"
-#include "inchash.h"
 #include "gimple.h"
 #include "gimplify.h"
 #include "gimple-iterator.h"
@@ -66,6 +64,18 @@ along with GCC; see the file COPYING3.  If not see
 #include "asan.h"
 #include "gimple-pretty-print.h"
 #include "target.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
diff --git a/gcc/auto-inc-dec.c b/gcc/auto-inc-dec.c
index 50258d5..7e3dd89 100644
--- a/gcc/auto-inc-dec.c
+++ b/gcc/auto-inc-dec.c
@@ -36,11 +36,7 @@ along with GCC; see the file COPYING3.  If not see
 #include "tm_p.h"
 #include "hard-reg-set.h"
 #include "predict.h"
-#include "vec.h"
 #include "hashtab.h"
-#include "hash-set.h"
-#include "machmode.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -52,6 +48,16 @@ along with GCC; see the file COPYING3.  If not see
 #include "except.h"
 #include "diagnostic-core.h"
 #include "recog.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tree-pass.h"
 #include "df.h"
diff --git a/gcc/bb-reorder.c b/gcc/bb-reorder.c
index 0b99db1..c2a3be3 100644
--- a/gcc/bb-reorder.c
+++ b/gcc/bb-reorder.c
@@ -98,14 +98,21 @@
 #include "output.h"
 #include "target.h"
 #include "hashtab.h"
-#include "hash-set.h"
-#include "vec.h"
-#include "machmode.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "tm_p.h"
 #include "obstack.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "optabs.h"
 #include "params.h"
diff --git a/gcc/bt-load.c b/gcc/bt-load.c
index 5030aae..c028281 100644
--- a/gcc/bt-load.c
+++ b/gcc/bt-load.c
@@ -27,15 +27,31 @@ along with GCC; see the file COPYING3.  If not see
 #include "regs.h"
 #include "target.h"
 #include "symtab.h"
-#include "expr.h"
-#include "flags.h"
-#include "insn-attr.h"
 #include "hashtab.h"
 #include "hash-set.h"
 #include "vec.h"
 #include "machmode.h"
 #include "input.h"
 #include "function.h"
+#include "flags.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "alias.h"
+#include "wide-int.h"
+#include "inchash.h"
+#include "tree.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
+#include "expr.h"
+#include "insn-attr.h"
 #include "except.h"
 #include "tm_p.h"
 #include "diagnostic-core.h"
diff --git a/gcc/builtins.c b/gcc/builtins.c
index 9280704..03b50ea 100644
--- a/gcc/builtins.c
+++ b/gcc/builtins.c
@@ -24,7 +24,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "machmode.h"
 #include "rtl.h"
 #include "hash-set.h"
-#include "machmode.h"
 #include "vec.h"
 #include "double-int.h"
 #include "input.h"
@@ -41,11 +40,8 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-object-size.h"
 #include "realmpfr.h"
 #include "predict.h"
-#include "vec.h"
 #include "hashtab.h"
-#include "hash-set.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "cfgrtl.h"
 #include "basic-block.h"
@@ -58,6 +54,14 @@ along with GCC; see the file COPYING3.  If not see
 #include "regs.h"
 #include "except.h"
 #include "insn-config.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
diff --git a/gcc/caller-save.c b/gcc/caller-save.c
index 82003a9..3b01941 100644
--- a/gcc/caller-save.c
+++ b/gcc/caller-save.c
@@ -40,6 +40,21 @@ along with GCC; see the file COPYING3.  If not see
 #include "df.h"
 #include "reload.h"
 #include "symtab.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "alias.h"
+#include "wide-int.h"
+#include "inchash.h"
+#include "tree.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "diagnostic-core.h"
 #include "tm_p.h"
diff --git a/gcc/calls.c b/gcc/calls.c
index 36aa19f..1c2f0ad 100644
--- a/gcc/calls.c
+++ b/gcc/calls.c
@@ -38,12 +38,8 @@ along with GCC; see the file COPYING3.  If not see
 #include "stringpool.h"
 #include "attribs.h"
 #include "predict.h"
-#include "vec.h"
 #include "hashtab.h"
-#include "hash-set.h"
-#include "machmode.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "basic-block.h"
 #include "tree-ssa-alias.h"
@@ -52,6 +48,16 @@ along with GCC; see the file COPYING3.  If not see
 #include "is-a.h"
 #include "gimple.h"
 #include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
diff --git a/gcc/calls.h b/gcc/calls.h
index 4e65d54..fc8458c 100644
--- a/gcc/calls.h
+++ b/gcc/calls.h
@@ -27,5 +27,11 @@ extern bool gimple_alloca_call_p (const_gimple);
 extern bool alloca_call_p (const_tree);
 extern bool must_pass_in_stack_var_size (machine_mode, const_tree);
 extern bool must_pass_in_stack_var_size_or_pad (machine_mode, const_tree);
+extern rtx prepare_call_address (tree, rtx, rtx, rtx *, int, int);
+extern bool shift_return_value (machine_mode, bool, rtx);
+extern rtx expand_call (tree, rtx, int);
+extern void fixup_tail_calls (void);
+
+
 
 #endif // GCC_CALLS_H
diff --git a/gcc/ccmp.c b/gcc/ccmp.c
index 3216669..1130329 100644
--- a/gcc/ccmp.c
+++ b/gcc/ccmp.c
@@ -37,6 +37,21 @@ along with GCC; see the file COPYING3.  If not see
 #include "stringpool.h"
 #include "stor-layout.h"
 #include "regs.h"
+#include "hashtab.h"
+#include "hard-reg-set.h"
+#include "function.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
@@ -60,7 +75,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "cfgexpand.h"
 #include "tree-phinodes.h"
 #include "ssa-iterators.h"
-#include "expmed.h"
 #include "ccmp.h"
 
 /* The following functions expand conditional compare (CCMP) instructions.
diff --git a/gcc/cfgbuild.c b/gcc/cfgbuild.c
index c26abbf..7cbed50 100644
--- a/gcc/cfgbuild.c
+++ b/gcc/cfgbuild.c
@@ -35,11 +35,7 @@ along with GCC; see the file COPYING3.  If not see
 #include "rtl.h"
 #include "hard-reg-set.h"
 #include "predict.h"
-#include "vec.h"
 #include "hashtab.h"
-#include "hash-set.h"
-#include "machmode.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -50,6 +46,17 @@ along with GCC; see the file COPYING3.  If not see
 #include "regs.h"
 #include "flags.h"
 #include "except.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "diagnostic-core.h"
 #include "timevar.h"
diff --git a/gcc/cfgcleanup.c b/gcc/cfgcleanup.c
index f26458e..cee152e 100644
--- a/gcc/cfgcleanup.c
+++ b/gcc/cfgcleanup.c
@@ -55,14 +55,20 @@ along with GCC; see the file COPYING3.  If not see
 #include "tm_p.h"
 #include "target.h"
 #include "hashtab.h"
-#include "hash-set.h"
-#include "vec.h"
-#include "machmode.h"
-#include "input.h"
 #include "function.h" /* For inline functions in emit-rtl.h they need crtl.  */
 #include "emit-rtl.h"
 #include "tree-pass.h"
 #include "cfgloop.h"
+#include "function.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -75,7 +81,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "df.h"
 #include "dce.h"
 #include "dbgcnt.h"
-#include "emit-rtl.h"
 #include "rtl-iter.h"
 
 #define FORWARDER_BLOCK_P(BB) ((BB)->flags & BB_FORWARDER_BLOCK)
diff --git a/gcc/cfgexpand.c b/gcc/cfgexpand.c
index 366fc0a..766a8f9 100644
--- a/gcc/cfgexpand.c
+++ b/gcc/cfgexpand.c
@@ -41,11 +41,7 @@ along with GCC; see the file COPYING3.  If not see
 #include "print-tree.h"
 #include "tm_p.h"
 #include "predict.h"
-#include "vec.h"
 #include "hashtab.h"
-#include "hash-set.h"
-#include "machmode.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -56,6 +52,16 @@ along with GCC; see the file COPYING3.  If not see
 #include "basic-block.h"
 #include "insn-codes.h"
 #include "optabs.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
 #include "expr.h"
 #include "langhooks.h"
 #include "bitmap.h"
@@ -80,7 +86,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-ssa.h"
 #include "tree-pass.h"
 #include "except.h"
-#include "flags.h"
 #include "diagnostic.h"
 #include "gimple-pretty-print.h"
 #include "toplev.h"
diff --git a/gcc/cfgloopanal.c b/gcc/cfgloopanal.c
index 444e259..8b05b4d 100644
--- a/gcc/cfgloopanal.c
+++ b/gcc/cfgloopanal.c
@@ -36,6 +36,23 @@ along with GCC; see the file COPYING3.  If not see
 #include "basic-block.h"
 #include "cfgloop.h"
 #include "symtab.h"
+#include "flags.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "alias.h"
+#include "wide-int.h"
+#include "inchash.h"
+#include "tree.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "graphds.h"
 #include "params.h"
diff --git a/gcc/cfgrtl.c b/gcc/cfgrtl.c
index f20fa7a..0e27edd 100644
--- a/gcc/cfgrtl.c
+++ b/gcc/cfgrtl.c
@@ -71,6 +71,17 @@ along with GCC; see the file COPYING3.  If not see
 #include "obstack.h"
 #include "insn-attr.h"
 #include "insn-config.h"
+#include "rtl.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "target.h"
 #include "common/common-target.h"
diff --git a/gcc/cgraph.c b/gcc/cgraph.c
index f3f7fec..1a06cad 100644
--- a/gcc/cgraph.c
+++ b/gcc/cgraph.c
@@ -44,7 +44,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-inline.h"
 #include "langhooks.h"
 #include "hashtab.h"
-#include "hash-set.h"
 #include "toplev.h"
 #include "flags.h"
 #include "debug.h"
@@ -56,10 +55,7 @@ along with GCC; see the file COPYING3.  If not see
 #include "hash-map.h"
 #include "is-a.h"
 #include "plugin-api.h"
-#include "vec.h"
-#include "machmode.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "ipa-ref.h"
 #include "cgraph.h"
@@ -87,6 +83,15 @@ along with GCC; see the file COPYING3.  If not see
 #include "ipa-inline.h"
 #include "cfgloop.h"
 #include "gimple-pretty-print.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tree-dfa.h"
 #include "profile.h"
diff --git a/gcc/cilk-common.c b/gcc/cilk-common.c
index 36d023a..ab097c4 100644
--- a/gcc/cilk-common.c
+++ b/gcc/cilk-common.c
@@ -38,6 +38,23 @@ along with GCC; see the file COPYING3.  If not see
 #include "stringpool.h"
 #include "stor-layout.h"
 #include "langhooks.h"
+#include "hashtab.h"
+#include "tm.h"
+#include "hard-reg-set.h"
+#include "function.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
diff --git a/gcc/combine-stack-adj.c b/gcc/combine-stack-adj.c
index 4c98f00..83cdfae 100644
--- a/gcc/combine-stack-adj.c
+++ b/gcc/combine-stack-adj.c
@@ -56,6 +56,21 @@ along with GCC; see the file COPYING3.  If not see
 #include "input.h"
 #include "function.h"
 #include "symtab.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "alias.h"
+#include "wide-int.h"
+#include "inchash.h"
+#include "tree.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "predict.h"
 #include "dominance.h"
diff --git a/gcc/combine.c b/gcc/combine.c
index 101cf35..597aa80 100644
--- a/gcc/combine.c
+++ b/gcc/combine.c
@@ -96,7 +96,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "regs.h"
 #include "hard-reg-set.h"
 #include "predict.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -105,6 +104,17 @@ along with GCC; see the file COPYING3.  If not see
 #include "basic-block.h"
 #include "insn-config.h"
 /* Include expr.h after insn-config.h so we get HAVE_conditional_move.  */
+#include "hashtab.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "insn-attr.h"
 #include "recog.h"
@@ -123,8 +133,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "ipa-ref.h"
 #include "cgraph.h"
 #include "obstack.h"
-#include "statistics.h"
-#include "params.h"
 #include "rtl-iter.h"
 
 /* Number of attempts to combine instructions in this function.  */
diff --git a/gcc/config/aarch64/aarch64-builtins.c b/gcc/config/aarch64/aarch64-builtins.c
index f45169e..87f1ac2 100644
--- a/gcc/config/aarch64/aarch64-builtins.c
+++ b/gcc/config/aarch64/aarch64-builtins.c
@@ -37,6 +37,20 @@
 #include "stor-layout.h"
 #include "stringpool.h"
 #include "calls.h"
+#include "hashtab.h"
+#include "hard-reg-set.h"
+#include "function.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tm_p.h"
 #include "recog.h"
@@ -45,12 +59,8 @@
 #include "insn-codes.h"
 #include "optabs.h"
 #include "hash-table.h"
-#include "vec.h"
 #include "ggc.h"
 #include "predict.h"
-#include "hard-reg-set.h"
-#include "input.h"
-#include "function.h"
 #include "dominance.h"
 #include "cfg.h"
 #include "cfgrtl.h"
diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c
index 5100532..0207fc4 100644
--- a/gcc/config/aarch64/aarch64.c
+++ b/gcc/config/aarch64/aarch64.c
@@ -53,6 +53,18 @@
 #include "df.h"
 #include "hard-reg-set.h"
 #include "output.h"
+#include "hashtab.h"
+#include "function.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "reload.h"
 #include "toplev.h"
@@ -60,8 +72,6 @@
 #include "target-def.h"
 #include "targhooks.h"
 #include "ggc.h"
-#include "input.h"
-#include "function.h"
 #include "tm_p.h"
 #include "recog.h"
 #include "langhooks.h"
diff --git a/gcc/config/alpha/alpha.c b/gcc/config/alpha/alpha.c
index afb49bb..0c0df68 100644
--- a/gcc/config/alpha/alpha.c
+++ b/gcc/config/alpha/alpha.c
@@ -46,14 +46,22 @@ along with GCC; see the file COPYING3.  If not see
 #include "insn-attr.h"
 #include "flags.h"
 #include "recog.h"
+#include "hashtab.h"
+#include "function.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
 #include "reload.h"
 #include "obstack.h"
 #include "except.h"
-#include "input.h"
-#include "function.h"
 #include "diagnostic-core.h"
 #include "ggc.h"
 #include "tm_p.h"
diff --git a/gcc/config/arc/arc.c b/gcc/config/arc/arc.c
index efba8a3..ab00ed2 100644
--- a/gcc/config/arc/arc.c
+++ b/gcc/config/arc/arc.c
@@ -55,10 +55,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "conditions.h"
 #include "insn-flags.h"
 #include "hashtab.h"
-#include "hash-set.h"
-#include "vec.h"
-#include "machmode.h"
-#include "input.h"
 #include "function.h"
 #include "toplev.h"
 #include "ggc.h"
@@ -67,6 +63,13 @@ along with GCC; see the file COPYING3.  If not see
 #include "output.h"
 #include "insn-attr.h"
 #include "flags.h"
+#include "statistics.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "recog.h"
 #include "debug.h"
@@ -89,7 +92,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-pass.h"
 #include "context.h"
 #include "pass_manager.h"
-#include "wide-int.h"
 #include "builtins.h"
 #include "rtl-iter.h"
 
diff --git a/gcc/config/arm/arm-builtins.c b/gcc/config/arm/arm-builtins.c
index 739369d..37f27d7 100644
--- a/gcc/config/arm/arm-builtins.c
+++ b/gcc/config/arm/arm-builtins.c
@@ -34,6 +34,21 @@
 #include "tree.h"
 #include "fold-const.h"
 #include "stor-layout.h"
+#include "hashtab.h"
+#include "hard-reg-set.h"
+#include "function.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tm_p.h"
 #include "recog.h"
diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c
index 8ca2dd8..acb3ba0 100644
--- a/gcc/config/arm/arm.c
+++ b/gcc/config/arm/arm.c
@@ -50,8 +50,16 @@
 #include "insn-attr.h"
 #include "flags.h"
 #include "reload.h"
-#include "input.h"
 #include "function.h"
+#include "hashtab.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
diff --git a/gcc/config/avr/avr.c b/gcc/config/avr/avr.c
index 66406be..c7074f0 100644
--- a/gcc/config/avr/avr.c
+++ b/gcc/config/avr/avr.c
@@ -48,12 +48,20 @@
 #include "stor-layout.h"
 #include "stringpool.h"
 #include "output.h"
+#include "hashtab.h"
+#include "function.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "c-family/c-common.h"
 #include "diagnostic-core.h"
 #include "obstack.h"
-#include "input.h"
-#include "function.h"
 #include "recog.h"
 #include "optabs.h"
 #include "ggc.h"
diff --git a/gcc/config/bfin/bfin.c b/gcc/config/bfin/bfin.c
index bebbce3..1868c53 100644
--- a/gcc/config/bfin/bfin.c
+++ b/gcc/config/bfin/bfin.c
@@ -46,10 +46,18 @@
 #include "calls.h"
 #include "flags.h"
 #include "except.h"
-#include "input.h"
 #include "function.h"
 #include "target.h"
 #include "target-def.h"
+#include "hashtab.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "diagnostic-core.h"
 #include "recog.h"
diff --git a/gcc/config/c6x/c6x.c b/gcc/config/c6x/c6x.c
index fff0b84..03f6b3f 100644
--- a/gcc/config/c6x/c6x.c
+++ b/gcc/config/c6x/c6x.c
@@ -43,6 +43,19 @@
 #include "output.h"
 #include "insn-attr.h"
 #include "insn-codes.h"
+#include "hashtab.h"
+#include "hard-reg-set.h"
+#include "function.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "regs.h"
 #include "optabs.h"
@@ -63,9 +76,6 @@
 #include "tm-preds.h"
 #include "tm-constrs.h"
 #include "df.h"
-#include "hard-reg-set.h"
-#include "input.h"
-#include "function.h"
 #include "diagnostic-core.h"
 #include "hash-map.h"
 #include "is-a.h"
diff --git a/gcc/config/cr16/cr16.c b/gcc/config/cr16/cr16.c
index 213dc36..47468b1 100644
--- a/gcc/config/cr16/cr16.c
+++ b/gcc/config/cr16/cr16.c
@@ -46,9 +46,18 @@
 #include "insn-attr.h"
 #include "flags.h"
 #include "except.h"
-#include "input.h"
 #include "function.h"
 #include "recog.h"
+#include "hashtab.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "optabs.h"
 #include "diagnostic-core.h"
diff --git a/gcc/config/cris/cris.c b/gcc/config/cris/cris.c
index 15dcca2..650402e 100644
--- a/gcc/config/cris/cris.c
+++ b/gcc/config/cris/cris.c
@@ -44,10 +44,17 @@ along with GCC; see the file COPYING3.  If not see
 #include "stor-layout.h"
 #include "calls.h"
 #include "stmt.h"
+#include "hashtab.h"
+#include "function.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
 #include "expr.h"
 #include "except.h"
-#include "input.h"
-#include "function.h"
 #include "diagnostic-core.h"
 #include "recog.h"
 #include "reload.h"
diff --git a/gcc/config/darwin.c b/gcc/config/darwin.c
index c12a17c..896f2ad 100644
--- a/gcc/config/darwin.c
+++ b/gcc/config/darwin.c
@@ -45,10 +45,19 @@ along with GCC; see the file COPYING3.  If not see
 #include "stringpool.h"
 #include "varasm.h"
 #include "stor-layout.h"
+#include "hashtab.h"
+#include "function.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "reload.h"
-#include "input.h"
-#include "function.h"
 #include "ggc.h"
 #include "langhooks.h"
 #include "target.h"
diff --git a/gcc/config/epiphany/epiphany.c b/gcc/config/epiphany/epiphany.c
index 102acc9..12aac13 100644
--- a/gcc/config/epiphany/epiphany.c
+++ b/gcc/config/epiphany/epiphany.c
@@ -46,10 +46,17 @@ along with GCC; see the file COPYING3.  If not see
 #include "output.h"
 #include "insn-attr.h"
 #include "flags.h"
-#include "input.h"
 #include "function.h"
 #include "insn-codes.h"
 #include "optabs.h"
+#include "hashtab.h"
+#include "statistics.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "diagnostic-core.h"
 #include "recog.h"
@@ -67,7 +74,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "basic-block.h"
 #include "df.h"
 #include "langhooks.h"
-#include "insn-codes.h"
 #include "ggc.h"
 #include "tm-constrs.h"
 #include "tree-pass.h"	/* for current_pass */
diff --git a/gcc/config/fr30/fr30.c b/gcc/config/fr30/fr30.c
index 2c00ff5..55fc078 100644
--- a/gcc/config/fr30/fr30.c
+++ b/gcc/config/fr30/fr30.c
@@ -46,11 +46,20 @@
 #include "stor-layout.h"
 #include "varasm.h"
 #include "output.h"
+#include "hashtab.h"
+#include "function.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "obstack.h"
 #include "except.h"
-#include "input.h"
-#include "function.h"
 #include "dominance.h"
 #include "cfg.h"
 #include "cfgrtl.h"
diff --git a/gcc/config/frv/frv.c b/gcc/config/frv/frv.c
index eb1ef53..4105fb3 100644
--- a/gcc/config/frv/frv.c
+++ b/gcc/config/frv/frv.c
@@ -46,11 +46,20 @@ along with GCC; see the file COPYING3.  If not see
 #include "flags.h"
 #include "recog.h"
 #include "reload.h"
+#include "hashtab.h"
+#include "function.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "obstack.h"
 #include "except.h"
-#include "input.h"
-#include "function.h"
 #include "insn-codes.h"
 #include "optabs.h"
 #include "diagnostic-core.h"
diff --git a/gcc/config/h8300/h8300.c b/gcc/config/h8300/h8300.c
index 720e0e4..5968e55 100644
--- a/gcc/config/h8300/h8300.c
+++ b/gcc/config/h8300/h8300.c
@@ -46,9 +46,17 @@ along with GCC; see the file COPYING3.  If not see
 #include "insn-attr.h"
 #include "flags.h"
 #include "recog.h"
-#include "expr.h"
-#include "input.h"
+#include "hashtab.h"
 #include "function.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
+#include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
 #include "diagnostic-core.h"
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index 7a39f80..e4204a1 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -48,9 +48,17 @@ along with GCC; see the file COPYING3.  If not see
 #include "insn-attr.h"
 #include "flags.h"
 #include "except.h"
-#include "input.h"
 #include "function.h"
 #include "recog.h"
+#include "hashtab.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "optabs.h"
 #include "diagnostic-core.h"
@@ -97,7 +105,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "diagnostic.h"
 #include "dumpfile.h"
 #include "tree-pass.h"
-#include "wide-int.h"
 #include "context.h"
 #include "pass_manager.h"
 #include "target-globals.h"
diff --git a/gcc/config/ia64/ia64.c b/gcc/config/ia64/ia64.c
index 40f1ae4..6ef22d9 100644
--- a/gcc/config/ia64/ia64.c
+++ b/gcc/config/ia64/ia64.c
@@ -47,12 +47,20 @@ along with GCC; see the file COPYING3.  If not see
 #include "insn-attr.h"
 #include "flags.h"
 #include "recog.h"
+#include "hashtab.h"
+#include "function.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
 #include "except.h"
-#include "input.h"
-#include "function.h"
 #include "ggc.h"
 #include "predict.h"
 #include "dominance.h"
diff --git a/gcc/config/iq2000/iq2000.c b/gcc/config/iq2000/iq2000.c
index 8d2b44f..86bcaa6 100644
--- a/gcc/config/iq2000/iq2000.c
+++ b/gcc/config/iq2000/iq2000.c
@@ -43,8 +43,16 @@ along with GCC; see the file COPYING3.  If not see
 #include "output.h"
 #include "insn-attr.h"
 #include "flags.h"
-#include "input.h"
 #include "function.h"
+#include "hashtab.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
diff --git a/gcc/config/lm32/lm32.c b/gcc/config/lm32/lm32.c
index ae995cf..b133297 100644
--- a/gcc/config/lm32/lm32.c
+++ b/gcc/config/lm32/lm32.c
@@ -54,8 +54,19 @@
 #include "tree.h"
 #include "fold-const.h"
 #include "calls.h"
-#include "expr.h"
 #include "flags.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "alias.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
+#include "expr.h"
 #include "reload.h"
 #include "tm_p.h"
 #include "diagnostic-core.h"
diff --git a/gcc/config/m32c/m32c.c b/gcc/config/m32c/m32c.c
index 817650c..ffdeee0 100644
--- a/gcc/config/m32c/m32c.c
+++ b/gcc/config/m32c/m32c.c
@@ -49,12 +49,20 @@
 #include "stor-layout.h"
 #include "varasm.h"
 #include "calls.h"
+#include "hashtab.h"
+#include "function.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
 #include "except.h"
-#include "input.h"
-#include "function.h"
 #include "ggc.h"
 #include "target.h"
 #include "target-def.h"
diff --git a/gcc/config/m32r/m32r.c b/gcc/config/m32r/m32r.c
index 31021fc..f9c0493 100644
--- a/gcc/config/m32r/m32r.c
+++ b/gcc/config/m32r/m32r.c
@@ -44,9 +44,17 @@
 #include "dbxout.h"
 #include "insn-attr.h"
 #include "flags.h"
-#include "expr.h"
-#include "input.h"
+#include "hashtab.h"
 #include "function.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
+#include "expr.h"
 #include "recog.h"
 #include "diagnostic-core.h"
 #include "ggc.h"
diff --git a/gcc/config/m68k/m68k.c b/gcc/config/m68k/m68k.c
index 6dcb6a2..fb82105 100644
--- a/gcc/config/m68k/m68k.c
+++ b/gcc/config/m68k/m68k.c
@@ -37,7 +37,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "varasm.h"
 #include "rtl.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "regs.h"
 #include "insn-config.h"
@@ -46,13 +45,22 @@ along with GCC; see the file COPYING3.  If not see
 #include "insn-attr.h"
 #include "recog.h"
 #include "diagnostic-core.h"
+#include "hashtab.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "reload.h"
 #include "tm_p.h"
 #include "target.h"
 #include "target-def.h"
 #include "debug.h"
-#include "flags.h"
 #include "dominance.h"
 #include "cfg.h"
 #include "cfgrtl.h"
diff --git a/gcc/config/mcore/mcore.c b/gcc/config/mcore/mcore.c
index d3a4885..868b1ed 100644
--- a/gcc/config/mcore/mcore.c
+++ b/gcc/config/mcore/mcore.c
@@ -47,11 +47,19 @@
 #include "insn-attr.h"
 #include "flags.h"
 #include "obstack.h"
+#include "hashtab.h"
+#include "function.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "reload.h"
 #include "recog.h"
-#include "input.h"
-#include "function.h"
 #include "ggc.h"
 #include "diagnostic-core.h"
 #include "target.h"
diff --git a/gcc/config/mep/mep.c b/gcc/config/mep/mep.c
index 9e88849..251e69c 100644
--- a/gcc/config/mep/mep.c
+++ b/gcc/config/mep/mep.c
@@ -48,11 +48,18 @@ along with GCC; see the file COPYING3.  If not see
 #include "flags.h"
 #include "recog.h"
 #include "obstack.h"
-#include "tree.h"
+#include "hashtab.h"
+#include "function.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "except.h"
-#include "input.h"
-#include "function.h"
 #include "insn-codes.h"
 #include "optabs.h"
 #include "reload.h"
diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c
index bf0a4d8..8ef40df 100644
--- a/gcc/config/microblaze/microblaze.c
+++ b/gcc/config/microblaze/microblaze.c
@@ -45,10 +45,17 @@
 #include "varasm.h"
 #include "stor-layout.h"
 #include "calls.h"
-#include "input.h"
 #include "function.h"
-#include "expr.h"
+#include "hashtab.h"
 #include "flags.h"
+#include "statistics.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
+#include "expr.h"
 #include "reload.h"
 #include "output.h"
 #include "ggc.h"
diff --git a/gcc/config/mips/mips.c b/gcc/config/mips/mips.c
index 327aa29..a690b45 100644
--- a/gcc/config/mips/mips.c
+++ b/gcc/config/mips/mips.c
@@ -48,13 +48,21 @@ along with GCC; see the file COPYING3.  If not see
 #include "stringpool.h"
 #include "stor-layout.h"
 #include "calls.h"
-#include "input.h"
 #include "function.h"
+#include "hashtab.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
 #include "libfuncs.h"
-#include "flags.h"
 #include "reload.h"
 #include "tm_p.h"
 #include "ggc.h"
diff --git a/gcc/config/mmix/mmix.c b/gcc/config/mmix/mmix.c
index 1849c7f..2336400 100644
--- a/gcc/config/mmix/mmix.c
+++ b/gcc/config/mmix/mmix.c
@@ -50,6 +50,16 @@ along with GCC; see the file COPYING3.  If not see
 #include "varasm.h"
 #include "stor-layout.h"
 #include "calls.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "alias.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "diagnostic-core.h"
 #include "recog.h"
diff --git a/gcc/config/mn10300/mn10300.c b/gcc/config/mn10300/mn10300.c
index b65deea..58c97e8 100644
--- a/gcc/config/mn10300/mn10300.c
+++ b/gcc/config/mn10300/mn10300.c
@@ -45,11 +45,19 @@
 #include "flags.h"
 #include "recog.h"
 #include "reload.h"
+#include "hashtab.h"
+#include "function.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
-#include "input.h"
-#include "function.h"
 #include "obstack.h"
 #include "diagnostic-core.h"
 #include "tm_p.h"
diff --git a/gcc/config/moxie/moxie.c b/gcc/config/moxie/moxie.c
index c178777..2450a82 100644
--- a/gcc/config/moxie/moxie.c
+++ b/gcc/config/moxie/moxie.c
@@ -48,12 +48,20 @@
 #include "stor-layout.h"
 #include "varasm.h"
 #include "calls.h"
+#include "hashtab.h"
+#include "function.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
 #include "except.h"
-#include "input.h"
-#include "function.h"
 #include "ggc.h"
 #include "target.h"
 #include "target-def.h"
diff --git a/gcc/config/msp430/msp430.c b/gcc/config/msp430/msp430.c
index 5317217..35d2a7d 100644
--- a/gcc/config/msp430/msp430.c
+++ b/gcc/config/msp430/msp430.c
@@ -43,8 +43,17 @@
 #include "output.h"
 #include "insn-attr.h"
 #include "flags.h"
-#include "input.h"
 #include "function.h"
+#include "hashtab.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
diff --git a/gcc/config/nds32/nds32-cost.c b/gcc/config/nds32/nds32-cost.c
index 9c8b579..c6ec5ab 100644
--- a/gcc/config/nds32/nds32-cost.c
+++ b/gcc/config/nds32/nds32-cost.c
@@ -47,8 +47,17 @@
 #include "insn-codes.h"		/* For CODE_FOR_xxx.  */
 #include "reload.h"		/* For push_reload().  */
 #include "flags.h"
-#include "input.h"
 #include "function.h"
+#include "hashtab.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "recog.h"
 #include "diagnostic-core.h"
diff --git a/gcc/config/nds32/nds32-fp-as-gp.c b/gcc/config/nds32/nds32-fp-as-gp.c
index 88a8e5b..84c32d7 100644
--- a/gcc/config/nds32/nds32-fp-as-gp.c
+++ b/gcc/config/nds32/nds32-fp-as-gp.c
@@ -47,8 +47,17 @@
 #include "insn-codes.h"		/* For CODE_FOR_xxx.  */
 #include "reload.h"		/* For push_reload().  */
 #include "flags.h"
-#include "input.h"
 #include "function.h"
+#include "hashtab.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "recog.h"
 #include "diagnostic-core.h"
diff --git a/gcc/config/nds32/nds32-intrinsic.c b/gcc/config/nds32/nds32-intrinsic.c
index 8815179..9f0851d 100644
--- a/gcc/config/nds32/nds32-intrinsic.c
+++ b/gcc/config/nds32/nds32-intrinsic.c
@@ -47,8 +47,17 @@
 #include "insn-codes.h"		/* For CODE_FOR_xxx.  */
 #include "reload.h"		/* For push_reload().  */
 #include "flags.h"
-#include "input.h"
 #include "function.h"
+#include "hashtab.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "recog.h"
 #include "diagnostic-core.h"
diff --git a/gcc/config/nds32/nds32-isr.c b/gcc/config/nds32/nds32-isr.c
index bf2d659..1896fde 100644
--- a/gcc/config/nds32/nds32-isr.c
+++ b/gcc/config/nds32/nds32-isr.c
@@ -47,8 +47,17 @@
 #include "insn-codes.h"		/* For CODE_FOR_xxx.  */
 #include "reload.h"		/* For push_reload().  */
 #include "flags.h"
-#include "input.h"
 #include "function.h"
+#include "hashtab.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "recog.h"
 #include "diagnostic-core.h"
diff --git a/gcc/config/nds32/nds32-md-auxiliary.c b/gcc/config/nds32/nds32-md-auxiliary.c
index 374f115..2f49277 100644
--- a/gcc/config/nds32/nds32-md-auxiliary.c
+++ b/gcc/config/nds32/nds32-md-auxiliary.c
@@ -48,8 +48,17 @@
 #include "insn-codes.h"		/* For CODE_FOR_xxx.  */
 #include "reload.h"		/* For push_reload().  */
 #include "flags.h"
-#include "input.h"
 #include "function.h"
+#include "hashtab.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "recog.h"
 #include "diagnostic-core.h"
diff --git a/gcc/config/nds32/nds32-memory-manipulation.c b/gcc/config/nds32/nds32-memory-manipulation.c
index 0bf8101..2f33337 100644
--- a/gcc/config/nds32/nds32-memory-manipulation.c
+++ b/gcc/config/nds32/nds32-memory-manipulation.c
@@ -48,8 +48,17 @@
 #include "insn-codes.h"		/* For CODE_FOR_xxx.  */
 #include "reload.h"		/* For push_reload().  */
 #include "flags.h"
-#include "input.h"
 #include "function.h"
+#include "hashtab.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "recog.h"
 #include "diagnostic-core.h"
diff --git a/gcc/config/nds32/nds32-pipelines-auxiliary.c b/gcc/config/nds32/nds32-pipelines-auxiliary.c
index 55030b1..6cc9593 100644
--- a/gcc/config/nds32/nds32-pipelines-auxiliary.c
+++ b/gcc/config/nds32/nds32-pipelines-auxiliary.c
@@ -48,8 +48,17 @@
 #include "insn-codes.h"		/* For CODE_FOR_xxx.  */
 #include "reload.h"		/* For push_reload().  */
 #include "flags.h"
-#include "input.h"
 #include "function.h"
+#include "hashtab.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "recog.h"
 #include "diagnostic-core.h"
diff --git a/gcc/config/nds32/nds32-predicates.c b/gcc/config/nds32/nds32-predicates.c
index 7e5ecc0..209b25f 100644
--- a/gcc/config/nds32/nds32-predicates.c
+++ b/gcc/config/nds32/nds32-predicates.c
@@ -47,8 +47,17 @@
 #include "insn-codes.h"		/* For CODE_FOR_xxx.  */
 #include "reload.h"		/* For push_reload().  */
 #include "flags.h"
-#include "input.h"
 #include "function.h"
+#include "hashtab.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "recog.h"
 #include "diagnostic-core.h"
diff --git a/gcc/config/nds32/nds32.c b/gcc/config/nds32/nds32.c
index 192816f..f8d5a89 100644
--- a/gcc/config/nds32/nds32.c
+++ b/gcc/config/nds32/nds32.c
@@ -47,8 +47,17 @@
 #include "insn-codes.h"		/* For CODE_FOR_xxx.  */
 #include "reload.h"		/* For push_reload().  */
 #include "flags.h"
-#include "input.h"
 #include "function.h"
+#include "hashtab.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "recog.h"
 #include "diagnostic-core.h"
diff --git a/gcc/config/nios2/nios2.c b/gcc/config/nios2/nios2.c
index a078a5e..06c9d00 100644
--- a/gcc/config/nios2/nios2.c
+++ b/gcc/config/nios2/nios2.c
@@ -44,11 +44,21 @@
 #include "insn-attr.h"
 #include "flags.h"
 #include "recog.h"
+#include "hashtab.h"
+#include "function.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
-#include "input.h"
-#include "function.h"
 #include "ggc.h"
 #include "predict.h"
 #include "dominance.h"
@@ -67,11 +77,8 @@
 #include "langhooks.h"
 #include "df.h"
 #include "debug.h"
-#include "real.h"
 #include "reload.h"
 #include "stor-layout.h"
-#include "varasm.h"
-#include "calls.h"
 #include "builtins.h"
 
 /* Forward function declarations.  */
diff --git a/gcc/config/nvptx/nvptx.c b/gcc/config/nvptx/nvptx.c
index 9e74ee3..7cfe550 100644
--- a/gcc/config/nvptx/nvptx.c
+++ b/gcc/config/nvptx/nvptx.c
@@ -38,6 +38,21 @@
 #include "output.h"
 #include "insn-attr.h"
 #include "insn-codes.h"
+#include "hashtab.h"
+#include "hard-reg-set.h"
+#include "function.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "regs.h"
 #include "optabs.h"
@@ -47,7 +62,6 @@
 #include "tm_p.h"
 #include "tm-preds.h"
 #include "tm-constrs.h"
-#include "function.h"
 #include "langhooks.h"
 #include "dbxout.h"
 #include "target.h"
@@ -57,10 +71,8 @@
 #include "basic-block.h"
 #include "cfgrtl.h"
 #include "stor-layout.h"
-#include "calls.h"
 #include "df.h"
 #include "builtins.h"
-#include "hashtab.h"
 
 /* Record the function decls we've written, and the libfuncs and function
    decls corresponding to them.  */
diff --git a/gcc/config/pa/pa.c b/gcc/config/pa/pa.c
index 3c39df2..a568b2f 100644
--- a/gcc/config/pa/pa.c
+++ b/gcc/config/pa/pa.c
@@ -47,12 +47,20 @@ along with GCC; see the file COPYING3.  If not see
 #include "output.h"
 #include "dbxout.h"
 #include "except.h"
+#include "hashtab.h"
+#include "function.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
 #include "reload.h"
-#include "input.h"
-#include "function.h"
 #include "diagnostic-core.h"
 #include "ggc.h"
 #include "recog.h"
diff --git a/gcc/config/pdp11/pdp11.c b/gcc/config/pdp11/pdp11.c
index 85181eb..1a24004 100644
--- a/gcc/config/pdp11/pdp11.c
+++ b/gcc/config/pdp11/pdp11.c
@@ -44,6 +44,16 @@ along with GCC; see the file COPYING3.  If not see
 #include "stor-layout.h"
 #include "varasm.h"
 #include "calls.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "alias.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "diagnostic-core.h"
 #include "tm_p.h"
diff --git a/gcc/config/rl78/rl78.c b/gcc/config/rl78/rl78.c
index d5a0075..6b199a6 100644
--- a/gcc/config/rl78/rl78.c
+++ b/gcc/config/rl78/rl78.c
@@ -44,8 +44,16 @@
 #include "output.h"
 #include "insn-attr.h"
 #include "flags.h"
-#include "input.h"
 #include "function.h"
+#include "hashtab.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index 4f8803d..ca21413 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -47,12 +47,20 @@
 #include "calls.h"
 #include "print-tree.h"
 #include "varasm.h"
+#include "hashtab.h"
+#include "function.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
 #include "except.h"
-#include "input.h"
-#include "function.h"
 #include "output.h"
 #include "dbxout.h"
 #include "predict.h"
@@ -101,7 +109,6 @@
 #include "builtins.h"
 #include "context.h"
 #include "tree-pass.h"
-#include "real.h"
 #if TARGET_XCOFF
 #include "xcoffout.h"  /* get declarations of xcoff_*_section_name */
 #endif
diff --git a/gcc/config/rx/rx.c b/gcc/config/rx/rx.c
index 58ee86e..6fe21aa 100644
--- a/gcc/config/rx/rx.c
+++ b/gcc/config/rx/rx.c
@@ -47,8 +47,16 @@
 #include "output.h"
 #include "insn-attr.h"
 #include "flags.h"
-#include "input.h"
 #include "function.h"
+#include "hashtab.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
diff --git a/gcc/config/s390/s390.c b/gcc/config/s390/s390.c
index adb2a26..6985fb7 100644
--- a/gcc/config/s390/s390.c
+++ b/gcc/config/s390/s390.c
@@ -50,9 +50,17 @@ along with GCC; see the file COPYING3.  If not see
 #include "insn-attr.h"
 #include "flags.h"
 #include "except.h"
-#include "input.h"
 #include "function.h"
 #include "recog.h"
+#include "hashtab.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "reload.h"
 #include "diagnostic-core.h"
diff --git a/gcc/config/sh/sh-mem.cc b/gcc/config/sh/sh-mem.cc
index a3eb679..d092090 100644
--- a/gcc/config/sh/sh-mem.cc
+++ b/gcc/config/sh/sh-mem.cc
@@ -32,12 +32,24 @@ along with GCC; see the file COPYING3.  If not see
 #include "wide-int.h"
 #include "inchash.h"
 #include "tree.h"
+#include "hashtab.h"
+#include "hard-reg-set.h"
+#include "function.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tm_p.h"
 #include "predict.h"
-#include "hard-reg-set.h"
-#include "input.h"
-#include "function.h"
 #include "dominance.h"
 #include "cfg.h"
 #include "cfgrtl.h"
diff --git a/gcc/config/sh/sh.c b/gcc/config/sh/sh.c
index b5fe30a..8612f9f 100644
--- a/gcc/config/sh/sh.c
+++ b/gcc/config/sh/sh.c
@@ -44,13 +44,21 @@ along with GCC; see the file COPYING3.  If not see
 #include "calls.h"
 #include "varasm.h"
 #include "flags.h"
+#include "hashtab.h"
+#include "hard-reg-set.h"
+#include "function.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
 #include "reload.h"
-#include "hard-reg-set.h"
-#include "input.h"
-#include "function.h"
 #include "regs.h"
 #include "output.h"
 #include "insn-attr.h"
@@ -10056,7 +10064,6 @@ reg_unused_after (rtx reg, rtx_insn *insn)
   return true;
 }
 \f
-#include "ggc.h"
 
 static GTY(()) rtx t_reg_rtx;
 rtx
diff --git a/gcc/config/sh/sh_treg_combine.cc b/gcc/config/sh/sh_treg_combine.cc
index 3c36767..e4f3581 100644
--- a/gcc/config/sh/sh_treg_combine.cc
+++ b/gcc/config/sh/sh_treg_combine.cc
@@ -50,6 +50,19 @@ along with GCC; see the file COPYING3.  If not see
 #include "inchash.h"
 #include "tree.h"
 #include "optabs.h"
+#include "flags.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "alias.h"
+#include "wide-int.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 
 #include <algorithm>
diff --git a/gcc/config/sparc/sparc.c b/gcc/config/sparc/sparc.c
index 4d6143a..19e45c2 100644
--- a/gcc/config/sparc/sparc.c
+++ b/gcc/config/sparc/sparc.c
@@ -48,9 +48,17 @@ along with GCC; see the file COPYING3.  If not see
 #include "output.h"
 #include "insn-attr.h"
 #include "flags.h"
-#include "input.h"
 #include "function.h"
 #include "except.h"
+#include "hashtab.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "optabs.h"
 #include "recog.h"
@@ -86,7 +94,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "opts.h"
 #include "tree-pass.h"
 #include "context.h"
-#include "wide-int.h"
 #include "builtins.h"
 #include "rtl-iter.h"
 
diff --git a/gcc/config/spu/spu.c b/gcc/config/spu/spu.c
index 9bb6fc0..e99cea3 100644
--- a/gcc/config/spu/spu.c
+++ b/gcc/config/spu/spu.c
@@ -42,12 +42,20 @@
 #include "stor-layout.h"
 #include "calls.h"
 #include "varasm.h"
+#include "hashtab.h"
+#include "function.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
 #include "except.h"
-#include "input.h"
-#include "function.h"
 #include "output.h"
 #include "predict.h"
 #include "dominance.h"
diff --git a/gcc/config/stormy16/stormy16.c b/gcc/config/stormy16/stormy16.c
index 9234652..1a43b58 100644
--- a/gcc/config/stormy16/stormy16.c
+++ b/gcc/config/stormy16/stormy16.c
@@ -49,12 +49,20 @@
 #include "stor-layout.h"
 #include "varasm.h"
 #include "calls.h"
+#include "hashtab.h"
+#include "function.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
 #include "except.h"
-#include "input.h"
-#include "function.h"
 #include "target.h"
 #include "target-def.h"
 #include "tm_p.h"
diff --git a/gcc/config/tilegx/mul-tables.c b/gcc/config/tilegx/mul-tables.c
index a1f93e3..252ca08 100644
--- a/gcc/config/tilegx/mul-tables.c
+++ b/gcc/config/tilegx/mul-tables.c
@@ -24,6 +24,33 @@
 #include "config.h"
 #include "system.h"
 #include "coretypes.h"
+#include "hashtab.h"
+#include "hash-set.h"
+#include "vec.h"
+#include "machmode.h"
+#include "tm.h"
+#include "hard-reg-set.h"
+#include "input.h"
+#include "function.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "alias.h"
+#include "symtab.h"
+#include "wide-int.h"
+#include "inchash.h"
+#include "tree.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
diff --git a/gcc/config/tilegx/tilegx.c b/gcc/config/tilegx/tilegx.c
index de1b3a6..e403c32 100644
--- a/gcc/config/tilegx/tilegx.c
+++ b/gcc/config/tilegx/tilegx.c
@@ -28,6 +28,30 @@
 #include "output.h"
 #include "insn-attr.h"
 #include "recog.h"
+#include "hashtab.h"
+#include "hash-set.h"
+#include "vec.h"
+#include "machmode.h"
+#include "hard-reg-set.h"
+#include "input.h"
+#include "function.h"
+#include "flags.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "alias.h"
+#include "symtab.h"
+#include "wide-int.h"
+#include "inchash.h"
+#include "tree.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "langhooks.h"
 #include "insn-codes.h"
@@ -46,19 +70,8 @@
 #include "tm-constrs.h"
 #include "target.h"
 #include "target-def.h"
-#include "hashtab.h"
-#include "hash-set.h"
-#include "vec.h"
-#include "machmode.h"
-#include "hard-reg-set.h"
-#include "input.h"
-#include "function.h"
 #include "dwarf2.h"
 #include "timevar.h"
-#include "symtab.h"
-#include "wide-int.h"
-#include "inchash.h"
-#include "tree.h"
 #include "fold-const.h"
 #include "hash-table.h"
 #include "ggc.h"
@@ -71,8 +84,6 @@
 #include "gimple.h"
 #include "stringpool.h"
 #include "stor-layout.h"
-#include "varasm.h"
-#include "calls.h"
 #include "gimplify.h"
 #include "cfgloop.h"
 #include "tilegx-builtins.h"
diff --git a/gcc/config/tilepro/gen-mul-tables.cc b/gcc/config/tilepro/gen-mul-tables.cc
index ea31b0d..b28d3d8 100644
--- a/gcc/config/tilepro/gen-mul-tables.cc
+++ b/gcc/config/tilepro/gen-mul-tables.cc
@@ -1256,6 +1256,32 @@ main ()
   printf ("#include \"system.h\"\n");
   printf ("#include \"coretypes.h\"\n");
   printf ("#include \"symtab.h\"\n");
+  printf ("#include \"hashtab.h\"\n");
+  printf ("#include \"hash-set.h\"\n");
+  printf ("#include \"vec.h\"\n");
+  printf ("#include \"machmode.h\"\n");
+  printf ("#include \"tm.h\"\n");
+  printf ("#include \"hard-reg-set.h\"\n");
+  printf ("#include \"input.h\"\n");
+  printf ("#include \"function.h\"\n");
+  printf ("#include \"rtl.h\"\n");
+  printf ("#include \"flags.h\"\n");
+  printf ("#include \"statistics.h\"\n");
+  printf ("#include \"double-int.h\"\n");
+  printf ("#include \"real.h\"\n");
+  printf ("#include \"fixed-value.h\"\n");
+  printf ("#include \"alias.h\"\n");
+  printf ("#include \"wide-int.h\"\n");
+  printf ("#include \"inchash.h\"\n");
+  printf ("#include \"tree.h\"\n");
+  printf ("#include \"insn-config.h\"\n");
+  printf ("#include \"expmed.h\"\n");
+  printf ("#include \"dojump.h\"\n");
+  printf ("#include \"explow.h\"\n");
+  printf ("#include \"calls.h\"\n");
+  printf ("#include \"emit-rtl.h\"\n");
+  printf ("#include \"varasm.h\"\n");
+  printf ("#include \"stmt.h\"\n");
   printf ("#include \"expr.h\"\n");
   printf ("#include \"insn-codes.h\"\n");
   printf ("#include \"optabs.h\"\n");
diff --git a/gcc/config/tilepro/tilepro.c b/gcc/config/tilepro/tilepro.c
index 8cf109a..f534b03 100644
--- a/gcc/config/tilepro/tilepro.c
+++ b/gcc/config/tilepro/tilepro.c
@@ -28,6 +28,30 @@
 #include "output.h"
 #include "insn-attr.h"
 #include "recog.h"
+#include "hashtab.h"
+#include "hash-set.h"
+#include "vec.h"
+#include "machmode.h"
+#include "hard-reg-set.h"
+#include "input.h"
+#include "function.h"
+#include "flags.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "alias.h"
+#include "symtab.h"
+#include "wide-int.h"
+#include "inchash.h"
+#include "tree.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "langhooks.h"
 #include "insn-codes.h"
@@ -47,19 +71,8 @@
 #include "tm-constrs.h"
 #include "target.h"
 #include "target-def.h"
-#include "hashtab.h"
-#include "hash-set.h"
-#include "vec.h"
-#include "machmode.h"
-#include "hard-reg-set.h"
-#include "input.h"
-#include "function.h"
 #include "dwarf2.h"
 #include "timevar.h"
-#include "symtab.h"
-#include "wide-int.h"
-#include "inchash.h"
-#include "tree.h"
 #include "fold-const.h"
 #include "hash-table.h"
 #include "ggc.h"
@@ -72,8 +85,6 @@
 #include "gimple.h"
 #include "stringpool.h"
 #include "stor-layout.h"
-#include "varasm.h"
-#include "calls.h"
 #include "gimplify.h"
 #include "cfgloop.h"
 #include "tilepro-builtins.h"
diff --git a/gcc/config/v850/v850.c b/gcc/config/v850/v850.c
index 688df17..f9cc3ef 100644
--- a/gcc/config/v850/v850.c
+++ b/gcc/config/v850/v850.c
@@ -45,9 +45,17 @@
 #include "insn-attr.h"
 #include "flags.h"
 #include "recog.h"
-#include "expr.h"
-#include "input.h"
+#include "hashtab.h"
 #include "function.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
+#include "expr.h"
 #include "diagnostic-core.h"
 #include "ggc.h"
 #include "tm_p.h"
diff --git a/gcc/config/vax/vax.c b/gcc/config/vax/vax.c
index deb42e4..3a2a650 100644
--- a/gcc/config/vax/vax.c
+++ b/gcc/config/vax/vax.c
@@ -48,15 +48,23 @@ along with GCC; see the file COPYING3.  If not see
 #include "hard-reg-set.h"
 #include "insn-config.h"
 #include "conditions.h"
-#include "input.h"
 #include "function.h"
 #include "output.h"
 #include "insn-attr.h"
 #include "recog.h"
+#include "hashtab.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
-#include "flags.h"
 #include "debug.h"
 #include "diagnostic-core.h"
 #include "reload.h"
@@ -65,7 +73,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "tm_p.h"
 #include "target.h"
 #include "target-def.h"
-#include "wide-int.h"
 #include "builtins.h"
 
 static void vax_option_override (void);
diff --git a/gcc/config/visium/visium.c b/gcc/config/visium/visium.c
index 657c067..e656af9 100644
--- a/gcc/config/visium/visium.c
+++ b/gcc/config/visium/visium.c
@@ -51,8 +51,13 @@
 #include "conditions.h"
 #include "output.h"
 #include "insn-attr.h"
-#include "expr.h"
 #include "function.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
+#include "expr.h"
 #include "recog.h"
 #include "diagnostic-core.h"
 #include "tm_p.h"
diff --git a/gcc/config/xtensa/xtensa.c b/gcc/config/xtensa/xtensa.c
index 8bd7ae7..6c289e5 100644
--- a/gcc/config/xtensa/xtensa.c
+++ b/gcc/config/xtensa/xtensa.c
@@ -56,8 +56,18 @@ along with GCC; see the file COPYING3.  If not see
 #include "stor-layout.h"
 #include "calls.h"
 #include "varasm.h"
-#include "expr.h"
 #include "flags.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "alias.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
+#include "expr.h"
 #include "reload.h"
 #include "tm_p.h"
 #include "diagnostic-core.h"
diff --git a/gcc/coverage.c b/gcc/coverage.c
index 76866ca..661e441 100644
--- a/gcc/coverage.c
+++ b/gcc/coverage.c
@@ -45,10 +45,21 @@ along with GCC; see the file COPYING3.  If not see
 #include "flags.h"
 #include "output.h"
 #include "regs.h"
-#include "expr.h"
+#include "hashtab.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
+#include "expr.h"
 #include "predict.h"
 #include "dominance.h"
 #include "cfg.h"
diff --git a/gcc/cprop.c b/gcc/cprop.c
index 4538291..c9fb2fc 100644
--- a/gcc/cprop.c
+++ b/gcc/cprop.c
@@ -41,11 +41,7 @@ along with GCC; see the file COPYING3.  If not see
 #include "insn-config.h"
 #include "recog.h"
 #include "predict.h"
-#include "vec.h"
 #include "hashtab.h"
-#include "hash-set.h"
-#include "machmode.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -54,6 +50,16 @@ along with GCC; see the file COPYING3.  If not see
 #include "lcm.h"
 #include "cfgcleanup.h"
 #include "basic-block.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "except.h"
 #include "params.h"
diff --git a/gcc/cse.c b/gcc/cse.c
index ec64ffa..fdde166 100644
--- a/gcc/cse.c
+++ b/gcc/cse.c
@@ -42,6 +42,21 @@ along with GCC; see the file COPYING3.  If not see
 #include "insn-config.h"
 #include "recog.h"
 #include "symtab.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "alias.h"
+#include "wide-int.h"
+#include "inchash.h"
+#include "tree.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "diagnostic-core.h"
 #include "toplev.h"
diff --git a/gcc/dbxout.c b/gcc/dbxout.c
index f0e24b6..c756f2e 100644
--- a/gcc/dbxout.c
+++ b/gcc/dbxout.c
@@ -96,16 +96,21 @@ along with GCC; see the file COPYING3.  If not see
 #include "ggc.h"
 #include "debug.h"
 #include "hashtab.h"
-#include "hash-set.h"
-#include "vec.h"
-#include "machmode.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "target.h"
 #include "common/common-target.h"
 #include "langhooks.h"
 #include "obstack.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "hash-map.h"
 #include "is-a.h"
diff --git a/gcc/ddg.c b/gcc/ddg.c
index 8c31b89..e6966f3 100644
--- a/gcc/ddg.c
+++ b/gcc/ddg.c
@@ -46,6 +46,21 @@ along with GCC; see the file COPYING3.  If not see
 #include "cfgloop.h"
 #include "sbitmap.h"
 #include "symtab.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "alias.h"
+#include "wide-int.h"
+#include "inchash.h"
+#include "tree.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "bitmap.h"
 #include "df.h"
diff --git a/gcc/dojump.c b/gcc/dojump.c
index 9133eb7..ad356ba 100644
--- a/gcc/dojump.c
+++ b/gcc/dojump.c
@@ -37,11 +37,20 @@ along with GCC; see the file COPYING3.  If not see
 #include "stor-layout.h"
 #include "flags.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "insn-config.h"
 #include "insn-attr.h"
 /* Include expr.h after insn-config.h so we get HAVE_conditional_move.  */
+#include "hashtab.h"
+#include "statistics.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
diff --git a/gcc/dojump.h b/gcc/dojump.h
new file mode 100644
index 0000000..7a43349
--- /dev/null
+++ b/gcc/dojump.h
@@ -0,0 +1,59 @@
+#ifndef GCC_DOJUMP_H
+#define GCC_DOJUMP_H
+
+/* At the start of a function, record that we have no previously-pushed
+   arguments waiting to be popped.  */
+extern void init_pending_stack_adjust (void);
+
+/* Discard any pending stack adjustment.  */
+extern void discard_pending_stack_adjust (void);
+
+/* When exiting from function, if safe, clear out any pending stack adjust
+   so the adjustment won't get done.  */
+extern void clear_pending_stack_adjust (void);
+
+/* Pop any previously-pushed arguments that have not been popped yet.  */
+extern void do_pending_stack_adjust (void);
+
+/* Struct for saving/restoring of pending_stack_adjust/stack_pointer_delta
+   values.  */
+
+struct saved_pending_stack_adjust
+{
+  /* Saved value of pending_stack_adjust.  */
+  int x_pending_stack_adjust;
+
+  /* Saved value of stack_pointer_delta.  */
+  int x_stack_pointer_delta;
+};
+
+/* Remember pending_stack_adjust/stack_pointer_delta.
+   To be used around code that may call do_pending_stack_adjust (),
+   but the generated code could be discarded e.g. using delete_insns_since.  */
+
+extern void save_pending_stack_adjust (saved_pending_stack_adjust *);
+
+/* Restore the saved pending_stack_adjust/stack_pointer_delta.  */
+
+extern void restore_pending_stack_adjust (saved_pending_stack_adjust *);
+
+/* Generate code to evaluate EXP and jump to LABEL if the value is zero.  */
+extern void jumpifnot (tree, rtx, int);
+extern void jumpifnot_1 (enum tree_code, tree, tree, rtx, int);
+
+/* Generate code to evaluate EXP and jump to LABEL if the value is nonzero.  */
+extern void jumpif (tree, rtx, int);
+extern void jumpif_1 (enum tree_code, tree, tree, rtx, int);
+
+/* Generate code to evaluate EXP and jump to IF_FALSE_LABEL if
+   the result is zero, or IF_TRUE_LABEL if the result is one.  */
+extern void do_jump (tree, rtx, rtx, int);
+extern void do_jump_1 (enum tree_code, tree, tree, rtx, rtx, int);
+
+extern void do_compare_rtx_and_jump (rtx, rtx, enum rtx_code, int,
+				     machine_mode, rtx, rtx, rtx, int);
+
+extern bool split_comparison (enum rtx_code, machine_mode,
+			      enum rtx_code *, enum rtx_code *);
+
+#endif /* GCC_DOJUMP_H */
diff --git a/gcc/dse.c b/gcc/dse.c
index e302236..a7d46b8 100644
--- a/gcc/dse.c
+++ b/gcc/dse.c
@@ -55,8 +55,18 @@ along with GCC; see the file COPYING3.  If not see
 #include "cselib.h"
 #include "tree-pass.h"
 #include "alloc-pool.h"
-#include "alias.h"
 #include "insn-config.h"
+#include "hashtab.h"
+#include "function.h"
+#include "statistics.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "recog.h"
 #include "insn-codes.h"
diff --git a/gcc/dwarf2cfi.c b/gcc/dwarf2cfi.c
index 9def81b..27474cb 100644
--- a/gcc/dwarf2cfi.c
+++ b/gcc/dwarf2cfi.c
@@ -37,7 +37,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree.h"
 #include "stor-layout.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "cfgbuild.h"
 #include "dwarf2.h"
@@ -51,6 +50,17 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-pass.h"
 
 #include "except.h"		/* expand_builtin_dwarf_sp_column */
+#include "hashtab.h"
+#include "statistics.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"		/* init_return_column_size */
 #include "regs.h"		/* expand_builtin_init_dwarf_reg_sizes */
 #include "output.h"		/* asm_out_file */
diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c
index 4fbcb97..ebb1b6d 100644
--- a/gcc/dwarf2out.c
+++ b/gcc/dwarf2out.c
@@ -76,11 +76,7 @@ along with GCC; see the file COPYING3.  If not see
 #include "stor-layout.h"
 #include "varasm.h"
 #include "hashtab.h"
-#include "hash-set.h"
-#include "vec.h"
-#include "machmode.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "emit-rtl.h"
 #include "hash-table.h"
@@ -91,6 +87,13 @@ along with GCC; see the file COPYING3.  If not see
 #include "insn-config.h"
 #include "reload.h"
 #include "output.h"
+#include "statistics.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "stmt.h"
 #include "expr.h"
 #include "except.h"
 #include "dwarf2.h"
diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c
index 43d9242..df85366 100644
--- a/gcc/emit-rtl.c
+++ b/gcc/emit-rtl.c
@@ -52,7 +52,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "varasm.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "cfgrtl.h"
 #include "basic-block.h"
@@ -60,9 +59,18 @@ along with GCC; see the file COPYING3.  If not see
 #include "tm_p.h"
 #include "flags.h"
 #include "stringpool.h"
+#include "hashtab.h"
+#include "statistics.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "regs.h"
-#include "insn-config.h"
 #include "recog.h"
 #include "bitmap.h"
 #include "debug.h"
diff --git a/gcc/emit-rtl.h b/gcc/emit-rtl.h
index 2334dcc..44ef034 100644
--- a/gcc/emit-rtl.h
+++ b/gcc/emit-rtl.h
@@ -119,4 +119,87 @@ get_max_uid (void)
 
 extern void set_decl_incoming_rtl (tree, rtx, bool);
 
+/* Return a memory reference like MEMREF, but with its mode changed
+   to MODE and its address changed to ADDR.
+   (VOIDmode means don't change the mode.
+   NULL for ADDR means don't change the address.)  */
+extern rtx change_address (rtx, machine_mode, rtx);
+
+/* Return a memory reference like MEMREF, but with its mode changed
+   to MODE and its address offset by OFFSET bytes.  */
+#define adjust_address(MEMREF, MODE, OFFSET) \
+  adjust_address_1 (MEMREF, MODE, OFFSET, 1, 1, 0, 0)
+
+/* Likewise, but the reference is not required to be valid.  */
+#define adjust_address_nv(MEMREF, MODE, OFFSET) \
+  adjust_address_1 (MEMREF, MODE, OFFSET, 0, 1, 0, 0)
+
+/* Return a memory reference like MEMREF, but with its mode changed
+   to MODE and its address offset by OFFSET bytes.  Assume that it's
+   for a bitfield and conservatively drop the underlying object if we
+   cannot be sure to stay within its bounds.  */
+#define adjust_bitfield_address(MEMREF, MODE, OFFSET) \
+  adjust_address_1 (MEMREF, MODE, OFFSET, 1, 1, 1, 0)
+
+/* As for adjust_bitfield_address, but specify that the width of
+   BLKmode accesses is SIZE bytes.  */
+#define adjust_bitfield_address_size(MEMREF, MODE, OFFSET, SIZE) \
+  adjust_address_1 (MEMREF, MODE, OFFSET, 1, 1, 1, SIZE)
+
+/* Likewise, but the reference is not required to be valid.  */
+#define adjust_bitfield_address_nv(MEMREF, MODE, OFFSET) \
+  adjust_address_1 (MEMREF, MODE, OFFSET, 0, 1, 1, 0)
+
+/* Return a memory reference like MEMREF, but with its mode changed
+   to MODE and its address changed to ADDR, which is assumed to be
+   increased by OFFSET bytes from MEMREF.  */
+#define adjust_automodify_address(MEMREF, MODE, ADDR, OFFSET) \
+  adjust_automodify_address_1 (MEMREF, MODE, ADDR, OFFSET, 1)
+
+/* Likewise, but the reference is not required to be valid.  */
+#define adjust_automodify_address_nv(MEMREF, MODE, ADDR, OFFSET) \
+  adjust_automodify_address_1 (MEMREF, MODE, ADDR, OFFSET, 0)
+
+extern rtx adjust_address_1 (rtx, machine_mode, HOST_WIDE_INT, int, int,
+			     int, HOST_WIDE_INT);
+extern rtx adjust_automodify_address_1 (rtx, machine_mode, rtx,
+					HOST_WIDE_INT, int);
+
+/* Return a memory reference like MEMREF, but whose address is changed by
+   adding OFFSET, an RTX, to it.  POW2 is the highest power of two factor
+   known to be in OFFSET (possibly 1).  */
+extern rtx offset_address (rtx, rtx, unsigned HOST_WIDE_INT);
+
+/* Given REF, a MEM, and T, either the type of X or the expression
+   corresponding to REF, set the memory attributes.  OBJECTP is nonzero
+   if we are making a new object of this type.  */
+extern void set_mem_attributes (rtx, tree, int);
+
+/* Similar, except that BITPOS has not yet been applied to REF, so if
+   we alter MEM_OFFSET according to T then we should subtract BITPOS
+   expecting that it'll be added back in later.  */
+extern void set_mem_attributes_minus_bitpos (rtx, tree, int, HOST_WIDE_INT);
+
+/* Return OFFSET if XEXP (MEM, 0) - OFFSET is known to be ALIGN
+   bits aligned for 0 <= OFFSET < ALIGN / BITS_PER_UNIT, or
+   -1 if not known.  */
+extern int get_mem_align_offset (rtx, unsigned int);
+
+/* Return a memory reference like MEMREF, but with its mode widened to
+   MODE and adjusted by OFFSET.  */
+extern rtx widen_memory_access (rtx, machine_mode, HOST_WIDE_INT);
+
+extern void store_bit_field (rtx, unsigned HOST_WIDE_INT,
+			     unsigned HOST_WIDE_INT,
+			     unsigned HOST_WIDE_INT,
+			     unsigned HOST_WIDE_INT,
+			     machine_mode, rtx);
+extern rtx extract_bit_field (rtx, unsigned HOST_WIDE_INT,
+			      unsigned HOST_WIDE_INT, int, rtx,
+			      machine_mode, machine_mode);
+extern rtx extract_low_bits (machine_mode, machine_mode, rtx);
+extern rtx expand_mult (machine_mode, rtx, rtx, rtx, int);
+extern rtx expand_mult_highpart_adjust (machine_mode, rtx, rtx, rtx, rtx, int);
+
+
 #endif /* GCC_EMIT_RTL_H */
diff --git a/gcc/except.c b/gcc/except.c
index bceb679..833ec21 100644
--- a/gcc/except.c
+++ b/gcc/except.c
@@ -130,13 +130,22 @@ along with GCC; see the file COPYING3.  If not see
 #include "stor-layout.h"
 #include "flags.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "insn-codes.h"
 #include "optabs.h"
+#include "hashtab.h"
+#include "statistics.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "libfuncs.h"
-#include "insn-config.h"
 #include "except.h"
 #include "output.h"
 #include "dwarf2asm.h"
diff --git a/gcc/explow.c b/gcc/explow.c
index 3e3cf05..da2d1bb 100644
--- a/gcc/explow.c
+++ b/gcc/explow.c
@@ -40,13 +40,22 @@ along with GCC; see the file COPYING3.  If not see
 #include "flags.h"
 #include "except.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
+#include "hashtab.h"
+#include "statistics.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
 #include "libfuncs.h"
-#include "insn-config.h"
 #include "ggc.h"
 #include "recog.h"
 #include "langhooks.h"
@@ -196,7 +205,7 @@ plus_constant (machine_mode mode, rtx x, HOST_WIDE_INT c,
    X itself is not altered.  The result != X if and only if
    it is not isomorphic to X.  */
 
-rtx
+static rtx
 eliminate_constant_term (rtx x, rtx *constptr)
 {
   rtx x0, x1;
@@ -230,58 +239,6 @@ eliminate_constant_term (rtx x, rtx *constptr)
   return x;
 }
 
-/* Returns a tree for the size of EXP in bytes.  */
-
-static tree
-tree_expr_size (const_tree exp)
-{
-  if (DECL_P (exp)
-      && DECL_SIZE_UNIT (exp) != 0)
-    return DECL_SIZE_UNIT (exp);
-  else
-    return size_in_bytes (TREE_TYPE (exp));
-}
-
-/* Return an rtx for the size in bytes of the value of EXP.  */
-
-rtx
-expr_size (tree exp)
-{
-  tree size;
-
-  if (TREE_CODE (exp) == WITH_SIZE_EXPR)
-    size = TREE_OPERAND (exp, 1);
-  else
-    {
-      size = tree_expr_size (exp);
-      gcc_assert (size);
-      gcc_assert (size == SUBSTITUTE_PLACEHOLDER_IN_EXPR (size, exp));
-    }
-
-  return expand_expr (size, NULL_RTX, TYPE_MODE (sizetype), EXPAND_NORMAL);
-}
-
-/* Return a wide integer for the size in bytes of the value of EXP, or -1
-   if the size can vary or is larger than an integer.  */
-
-HOST_WIDE_INT
-int_expr_size (tree exp)
-{
-  tree size;
-
-  if (TREE_CODE (exp) == WITH_SIZE_EXPR)
-    size = TREE_OPERAND (exp, 1);
-  else
-    {
-      size = tree_expr_size (exp);
-      gcc_assert (size);
-    }
-
-  if (size == 0 || !tree_fits_shwi_p (size))
-    return -1;
-
-  return tree_to_shwi (size);
-}
 \f
 /* Return a copy of X in which all memory references
    and all constants that involve symbol refs
@@ -432,6 +389,7 @@ convert_memory_address_addr_space (machine_mode to_mode, rtx x, addr_space_t as)
   return convert_memory_address_addr_space_1 (to_mode, x, as, false);
 }
 \f
+
 /* Return something equivalent to X but valid as a memory address for something
    of mode MODE in the named address space AS.  When X is not itself valid,
    this works by copying X or subexpressions of it into registers.  */
diff --git a/gcc/explow.h b/gcc/explow.h
new file mode 100644
index 0000000..70486a6
--- /dev/null
+++ b/gcc/explow.h
@@ -0,0 +1,92 @@
+#ifndef GCC_EXPLOW_H
+#define GCC_EXPLOW_H
+
+/* Return a memory reference like MEMREF, but which is known to have a
+   valid address.  */
+extern rtx validize_mem (rtx);
+
+extern rtx use_anchored_address (rtx);
+
+/* Copy given rtx to a new temp reg and return that.  */
+extern rtx copy_to_reg (rtx);
+
+/* Like copy_to_reg but always make the reg Pmode.  */
+extern rtx copy_addr_to_reg (rtx);
+
+/* Like copy_to_reg but always make the reg the specified mode MODE.  */
+extern rtx copy_to_mode_reg (machine_mode, rtx);
+
+/* Copy given rtx to given temp reg and return that.  */
+extern rtx copy_to_suggested_reg (rtx, rtx, machine_mode);
+
+/* Copy a value to a register if it isn't already a register.
+   Args are mode (in case value is a constant) and the value.  */
+extern rtx force_reg (machine_mode, rtx);
+
+/* Return given rtx, copied into a new temp reg if it was in memory.  */
+extern rtx force_not_mem (rtx);
+
+/* Return mode and signedness to use when an argument or result in the
+   given mode is promoted.  */
+extern machine_mode promote_function_mode (const_tree, machine_mode, int *,
+					        const_tree, int);
+
+/* Return mode and signedness to use when an object in the given mode
+   is promoted.  */
+extern machine_mode promote_mode (const_tree, machine_mode, int *);
+
+/* Return mode and signedness to use when object is promoted.  */
+machine_mode promote_decl_mode (const_tree, int *);
+
+/* Remove some bytes from the stack.  An rtx says how many.  */
+extern void adjust_stack (rtx);
+
+/* Add some bytes to the stack.  An rtx says how many.  */
+extern void anti_adjust_stack (rtx);
+
+/* Add some bytes to the stack while probing it.  An rtx says how many. */
+extern void anti_adjust_stack_and_probe (rtx, bool);
+
+/* This enum is used for the following two functions.  */
+enum save_level {SAVE_BLOCK, SAVE_FUNCTION, SAVE_NONLOCAL};
+
+/* Save the stack pointer at the specified level.  */
+extern void emit_stack_save (enum save_level, rtx *);
+
+/* Restore the stack pointer from a save area of the specified level.  */
+extern void emit_stack_restore (enum save_level, rtx);
+
+/* Invoke emit_stack_save for the nonlocal_goto_save_area.  */
+extern void update_nonlocal_goto_save_area (void);
+
+/* Allocate some space on the stack dynamically and return its address.  */
+extern rtx allocate_dynamic_stack_space (rtx, unsigned, unsigned, bool);
+
+/* Emit one stack probe at ADDRESS, an address within the stack.  */
+extern void emit_stack_probe (rtx);
+
+/* Probe a range of stack addresses from FIRST to FIRST+SIZE, inclusive.
+   FIRST is a constant and size is a Pmode RTX.  These are offsets from
+   the current stack pointer.  STACK_GROWS_DOWNWARD says whether to add
+   or subtract them from the stack pointer.  */
+extern void probe_stack_range (HOST_WIDE_INT, rtx);
+
+/* Return an rtx that refers to the value returned by a library call
+   in its original home.  This becomes invalid if any more code is emitted.  */
+extern rtx hard_libcall_value (machine_mode, rtx);
+
+/* Return an rtx that refers to the value returned by a function
+   in its original home.  This becomes invalid if any more code is emitted.  */
+extern rtx hard_function_value (const_tree, const_tree, const_tree, int);
+
+/* Convert arg to a valid memory address for specified machine mode that points
+   to a specific named address space, by emitting insns to perform arithmetic
+   if necessary.  */
+extern rtx memory_address_addr_space (machine_mode, rtx, addr_space_t);
+
+/* Like memory_address_addr_space, except assume the memory address points to
+   the generic named address space.  */
+#define memory_address(MODE,RTX) \
+	memory_address_addr_space ((MODE), (RTX), ADDR_SPACE_GENERIC)
+
+#endif /* GCC_EXPLOW_H */
diff --git a/gcc/expmed.c b/gcc/expmed.c
index d184552..480601c 100644
--- a/gcc/expmed.c
+++ b/gcc/expmed.c
@@ -40,6 +40,19 @@ along with GCC; see the file COPYING3.  If not see
 #include "tm_p.h"
 #include "flags.h"
 #include "insn-config.h"
+#include "hashtab.h"
+#include "hard-reg-set.h"
+#include "function.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
@@ -49,7 +62,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "basic-block.h"
 #include "df.h"
 #include "target.h"
-#include "expmed.h"
 
 struct target_expmed default_target_expmed;
 #if SWITCHABLE_TARGET
diff --git a/gcc/expmed.h b/gcc/expmed.h
index 0202f00..e36e4f7 100644
--- a/gcc/expmed.h
+++ b/gcc/expmed.h
@@ -671,4 +671,36 @@ extern rtx emit_cstore (rtx target, enum insn_code icode, enum rtx_code code,
 			enum machine_mode mode, enum machine_mode compare_mode,
 			int unsignedp, rtx x, rtx y, int normalizep,
 			enum machine_mode target_mode);
+
+/* Arguments MODE, RTX: return an rtx for the negation of that value.
+   May emit insns.  */
+extern rtx negate_rtx (machine_mode, rtx);
+
+/* Expand a logical AND operation.  */
+extern rtx expand_and (machine_mode, rtx, rtx, rtx);
+
+/* Emit a store-flag operation.  */
+extern rtx emit_store_flag (rtx, enum rtx_code, rtx, rtx, machine_mode,
+			    int, int);
+
+/* Like emit_store_flag, but always succeeds.  */
+extern rtx emit_store_flag_force (rtx, enum rtx_code, rtx, rtx,
+				  machine_mode, int, int);
+
+/* Choose a minimal N + 1 bit approximation to 1/D that can be used to
+   replace division by D, and put the least significant N bits of the result
+   in *MULTIPLIER_PTR and return the most significant bit.  */
+extern unsigned HOST_WIDE_INT choose_multiplier (unsigned HOST_WIDE_INT, int,
+						 int, unsigned HOST_WIDE_INT *,
+						 int *, int *);
+
+#ifdef TREE_CODE
+extern rtx expand_variable_shift (enum tree_code, machine_mode,
+				  rtx, tree, rtx, int);
+extern rtx expand_shift (enum tree_code, machine_mode, rtx, int, rtx,
+			     int);
+extern rtx expand_divmod (int, enum tree_code, machine_mode, rtx, rtx,
+			  rtx, int);
 #endif
+
+#endif  // EXPMED_H
diff --git a/gcc/expr.c b/gcc/expr.c
index fc22862..b8dee1b 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -41,10 +41,19 @@ along with GCC; see the file COPYING3.  If not see
 #include "regs.h"
 #include "hard-reg-set.h"
 #include "except.h"
-#include "input.h"
 #include "function.h"
 #include "insn-config.h"
 #include "insn-attr.h"
+#include "hashtab.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 /* Include expr.h after insn-config.h so we get HAVE_conditional_move.  */
 #include "expr.h"
 #include "insn-codes.h"
@@ -173,6 +182,8 @@ static void emit_single_push_insn (machine_mode, rtx, tree);
 #endif
 static void do_tablejump (rtx, machine_mode, rtx, rtx, rtx, int);
 static rtx const_vector_from_tree (tree);
+static tree tree_expr_size (const_tree);
+static HOST_WIDE_INT int_expr_size (tree);
 
 \f
 /* This is run to set up which modes can be used
@@ -11438,4 +11449,57 @@ get_personality_function (tree decl)
   return XEXP (DECL_RTL (personality), 0);
 }
 
+/* Returns a tree for the size of EXP in bytes.  */
+
+static tree
+tree_expr_size (const_tree exp)
+{
+  if (DECL_P (exp)
+      && DECL_SIZE_UNIT (exp) != 0)
+    return DECL_SIZE_UNIT (exp);
+  else
+    return size_in_bytes (TREE_TYPE (exp));
+}
+
+/* Return an rtx for the size in bytes of the value of EXP.  */
+
+rtx
+expr_size (tree exp)
+{
+  tree size;
+
+  if (TREE_CODE (exp) == WITH_SIZE_EXPR)
+    size = TREE_OPERAND (exp, 1);
+  else
+    {
+      size = tree_expr_size (exp);
+      gcc_assert (size);
+      gcc_assert (size == SUBSTITUTE_PLACEHOLDER_IN_EXPR (size, exp));
+    }
+
+  return expand_expr (size, NULL_RTX, TYPE_MODE (sizetype), EXPAND_NORMAL);
+}
+
+/* Return a wide integer for the size in bytes of the value of EXP, or -1
+   if the size can vary or is larger than an integer.  */
+
+static HOST_WIDE_INT
+int_expr_size (tree exp)
+{
+  tree size;
+
+  if (TREE_CODE (exp) == WITH_SIZE_EXPR)
+    size = TREE_OPERAND (exp, 1);
+  else
+    {
+      size = tree_expr_size (exp);
+      gcc_assert (size);
+    }
+
+  if (size == 0 || !tree_fits_shwi_p (size))
+    return -1;
+
+  return tree_to_shwi (size);
+}
+
 #include "gt-expr.h"
diff --git a/gcc/expr.h b/gcc/expr.h
index a7638b8..867852e 100644
--- a/gcc/expr.h
+++ b/gcc/expr.h
@@ -20,25 +20,6 @@ along with GCC; see the file COPYING3.  If not see
 #ifndef GCC_EXPR_H
 #define GCC_EXPR_H
 
-/* For inhibit_defer_pop */
-#include "hashtab.h"
-#include "hash-set.h"
-#include "vec.h"
-#include "machmode.h"
-#include "tm.h"
-#include "hard-reg-set.h"
-#include "input.h"
-#include "function.h"
-/* For XEXP, GEN_INT, rtx_code */
-#include "rtl.h"
-/* For optimize_size */
-#include "flags.h"
-/* For tree_fits_[su]hwi_p, tree_to_[su]hwi, fold_convert, size_binop,
-   ssize_int, TREE_CODE, TYPE_SIZE, int_size_in_bytes,    */
-#include "tree-core.h"
-/* For GET_MODE_BITSIZE, word_mode */
-#include "insn-config.h"
-
 /* This is the 4th arg to `expand_expr'.
    EXPAND_STACK_PARM means we are possibly expanding a call param onto
    the stack.
@@ -73,32 +54,6 @@ typedef struct separate_ops
   tree op0, op1, op2;
 } *sepops;
 \f
-/* Functions from expmed.c:  */
-
-/* Arguments MODE, RTX: return an rtx for the negation of that value.
-   May emit insns.  */
-extern rtx negate_rtx (machine_mode, rtx);
-
-/* Expand a logical AND operation.  */
-extern rtx expand_and (machine_mode, rtx, rtx, rtx);
-
-/* Emit a store-flag operation.  */
-extern rtx emit_store_flag (rtx, enum rtx_code, rtx, rtx, machine_mode,
-			    int, int);
-
-/* Like emit_store_flag, but always succeeds.  */
-extern rtx emit_store_flag_force (rtx, enum rtx_code, rtx, rtx,
-				  machine_mode, int, int);
-
-/* Choose a minimal N + 1 bit approximation to 1/D that can be used to
-   replace division by D, and put the least significant N bits of the result
-   in *MULTIPLIER_PTR and return the most significant bit.  */
-extern unsigned HOST_WIDE_INT choose_multiplier (unsigned HOST_WIDE_INT, int,
-						 int, unsigned HOST_WIDE_INT *,
-						 int *, int *);
-\f
-/* Functions from expr.c:  */
-
 /* This is run during target initialization to set up which modes can be
    used directly in memory and to initialize the block move optab.  */
 extern void init_expr_target (void);
@@ -305,301 +260,20 @@ expand_normal (tree exp)
   return expand_expr_real (exp, NULL_RTX, VOIDmode, EXPAND_NORMAL, NULL, false);
 }
 
-/* At the start of a function, record that we have no previously-pushed
-   arguments waiting to be popped.  */
-extern void init_pending_stack_adjust (void);
-
-/* Discard any pending stack adjustment.  */
-extern void discard_pending_stack_adjust (void);
-
-/* When exiting from function, if safe, clear out any pending stack adjust
-   so the adjustment won't get done.  */
-extern void clear_pending_stack_adjust (void);
-
-/* Pop any previously-pushed arguments that have not been popped yet.  */
-extern void do_pending_stack_adjust (void);
-
-/* Struct for saving/restoring of pending_stack_adjust/stack_pointer_delta
-   values.  */
-
-struct saved_pending_stack_adjust
-{
-  /* Saved value of pending_stack_adjust.  */
-  int x_pending_stack_adjust;
-
-  /* Saved value of stack_pointer_delta.  */
-  int x_stack_pointer_delta;
-};
-
-/* Remember pending_stack_adjust/stack_pointer_delta.
-   To be used around code that may call do_pending_stack_adjust (),
-   but the generated code could be discarded e.g. using delete_insns_since.  */
-
-extern void save_pending_stack_adjust (saved_pending_stack_adjust *);
-
-/* Restore the saved pending_stack_adjust/stack_pointer_delta.  */
-
-extern void restore_pending_stack_adjust (saved_pending_stack_adjust *);
 
 /* Return the tree node and offset if a given argument corresponds to
    a string constant.  */
 extern tree string_constant (tree, tree *);
 
-/* Generate code to evaluate EXP and jump to LABEL if the value is zero.  */
-extern void jumpifnot (tree, rtx, int);
-extern void jumpifnot_1 (enum tree_code, tree, tree, rtx, int);
-
-/* Generate code to evaluate EXP and jump to LABEL if the value is nonzero.  */
-extern void jumpif (tree, rtx, int);
-extern void jumpif_1 (enum tree_code, tree, tree, rtx, int);
-
-/* Generate code to evaluate EXP and jump to IF_FALSE_LABEL if
-   the result is zero, or IF_TRUE_LABEL if the result is one.  */
-extern void do_jump (tree, rtx, rtx, int);
-extern void do_jump_1 (enum tree_code, tree, tree, rtx, rtx, int);
-
-extern void do_compare_rtx_and_jump (rtx, rtx, enum rtx_code, int,
-				     machine_mode, rtx, rtx, rtx, int);
-
 /* Two different ways of generating switch statements.  */
 extern int try_casesi (tree, tree, tree, tree, rtx, rtx, rtx, int);
 extern int try_tablejump (tree, tree, tree, tree, rtx, rtx, int);
 
-/* Functions from alias.c */
-#include "alias.h"
-
-\f
-/* rtl.h and tree.h were included.  */
-/* Return an rtx for the size in bytes of the value of an expr.  */
-extern rtx expr_size (tree);
-
-/* Return a wide integer for the size in bytes of the value of EXP, or -1
-   if the size can vary or is larger than an integer.  */
-extern HOST_WIDE_INT int_expr_size (tree);
-
-/* Return an rtx that refers to the value returned by a function
-   in its original home.  This becomes invalid if any more code is emitted.  */
-extern rtx hard_function_value (const_tree, const_tree, const_tree, int);
-
-extern rtx prepare_call_address (tree, rtx, rtx, rtx *, int, int);
-
-extern bool shift_return_value (machine_mode, bool, rtx);
-
-extern rtx expand_call (tree, rtx, int);
-
-extern void fixup_tail_calls (void);
-
-#ifdef TREE_CODE
-extern rtx expand_variable_shift (enum tree_code, machine_mode,
-				  rtx, tree, rtx, int);
-extern rtx expand_shift (enum tree_code, machine_mode, rtx, int, rtx,
-			     int);
-extern rtx expand_divmod (int, enum tree_code, machine_mode, rtx, rtx,
-			  rtx, int);
-#endif
-
-/* Return the CODE_LABEL rtx for a LABEL_DECL, creating it if necessary.  */
-extern rtx label_rtx (tree);
-
-/* As label_rtx, but additionally the label is placed on the forced label
-   list of its containing function (i.e. it is treated as reachable even
-   if how is not obvious).  */
-extern rtx force_label_rtx (tree);
-
-/* Return an rtx like arg but sans any constant terms.
-   Returns the original rtx if it has no constant terms.
-   The constant terms are added and stored via a second arg.  */
-extern rtx eliminate_constant_term (rtx, rtx *);
-
-/* Convert arg to a valid memory address for specified machine mode that points
-   to a specific named address space, by emitting insns to perform arithmetic
-   if necessary.  */
-extern rtx memory_address_addr_space (machine_mode, rtx, addr_space_t);
-
-/* Like memory_address_addr_space, except assume the memory address points to
-   the generic named address space.  */
-#define memory_address(MODE,RTX) \
-	memory_address_addr_space ((MODE), (RTX), ADDR_SPACE_GENERIC)
-
-/* Return a memory reference like MEMREF, but with its mode changed
-   to MODE and its address changed to ADDR.
-   (VOIDmode means don't change the mode.
-   NULL for ADDR means don't change the address.)  */
-extern rtx change_address (rtx, machine_mode, rtx);
-
-/* Return a memory reference like MEMREF, but with its mode changed
-   to MODE and its address offset by OFFSET bytes.  */
-#define adjust_address(MEMREF, MODE, OFFSET) \
-  adjust_address_1 (MEMREF, MODE, OFFSET, 1, 1, 0, 0)
-
-/* Likewise, but the reference is not required to be valid.  */
-#define adjust_address_nv(MEMREF, MODE, OFFSET) \
-  adjust_address_1 (MEMREF, MODE, OFFSET, 0, 1, 0, 0)
-
-/* Return a memory reference like MEMREF, but with its mode changed
-   to MODE and its address offset by OFFSET bytes.  Assume that it's
-   for a bitfield and conservatively drop the underlying object if we
-   cannot be sure to stay within its bounds.  */
-#define adjust_bitfield_address(MEMREF, MODE, OFFSET) \
-  adjust_address_1 (MEMREF, MODE, OFFSET, 1, 1, 1, 0)
-
-/* As for adjust_bitfield_address, but specify that the width of
-   BLKmode accesses is SIZE bytes.  */
-#define adjust_bitfield_address_size(MEMREF, MODE, OFFSET, SIZE) \
-  adjust_address_1 (MEMREF, MODE, OFFSET, 1, 1, 1, SIZE)
-
-/* Likewise, but the reference is not required to be valid.  */
-#define adjust_bitfield_address_nv(MEMREF, MODE, OFFSET) \
-  adjust_address_1 (MEMREF, MODE, OFFSET, 0, 1, 1, 0)
-
-/* Return a memory reference like MEMREF, but with its mode changed
-   to MODE and its address changed to ADDR, which is assumed to be
-   increased by OFFSET bytes from MEMREF.  */
-#define adjust_automodify_address(MEMREF, MODE, ADDR, OFFSET) \
-  adjust_automodify_address_1 (MEMREF, MODE, ADDR, OFFSET, 1)
-
-/* Likewise, but the reference is not required to be valid.  */
-#define adjust_automodify_address_nv(MEMREF, MODE, ADDR, OFFSET) \
-  adjust_automodify_address_1 (MEMREF, MODE, ADDR, OFFSET, 0)
-
-extern rtx adjust_address_1 (rtx, machine_mode, HOST_WIDE_INT, int, int,
-			     int, HOST_WIDE_INT);
-extern rtx adjust_automodify_address_1 (rtx, machine_mode, rtx,
-					HOST_WIDE_INT, int);
-
-/* Return a memory reference like MEMREF, but whose address is changed by
-   adding OFFSET, an RTX, to it.  POW2 is the highest power of two factor
-   known to be in OFFSET (possibly 1).  */
-extern rtx offset_address (rtx, rtx, unsigned HOST_WIDE_INT);
-
-/* Definitions from emit-rtl.c */
-#include "emit-rtl.h"
-
-/* Return a memory reference like MEMREF, but with its mode widened to
-   MODE and adjusted by OFFSET.  */
-extern rtx widen_memory_access (rtx, machine_mode, HOST_WIDE_INT);
-
-/* Return a memory reference like MEMREF, but which is known to have a
-   valid address.  */
-extern rtx validize_mem (rtx);
-
-extern rtx use_anchored_address (rtx);
-
-/* Given REF, a MEM, and T, either the type of X or the expression
-   corresponding to REF, set the memory attributes.  OBJECTP is nonzero
-   if we are making a new object of this type.  */
-extern void set_mem_attributes (rtx, tree, int);
-
-/* Similar, except that BITPOS has not yet been applied to REF, so if
-   we alter MEM_OFFSET according to T then we should subtract BITPOS
-   expecting that it'll be added back in later.  */
-extern void set_mem_attributes_minus_bitpos (rtx, tree, int, HOST_WIDE_INT);
-
-/* Return OFFSET if XEXP (MEM, 0) - OFFSET is known to be ALIGN
-   bits aligned for 0 <= OFFSET < ALIGN / BITS_PER_UNIT, or
-   -1 if not known.  */
-extern int get_mem_align_offset (rtx, unsigned int);
-
-/* Assemble the static constant template for function entry trampolines.  */
-extern rtx assemble_trampoline_template (void);
-
-/* Copy given rtx to a new temp reg and return that.  */
-extern rtx copy_to_reg (rtx);
-
-/* Like copy_to_reg but always make the reg Pmode.  */
-extern rtx copy_addr_to_reg (rtx);
-
-/* Like copy_to_reg but always make the reg the specified mode MODE.  */
-extern rtx copy_to_mode_reg (machine_mode, rtx);
-
-/* Copy given rtx to given temp reg and return that.  */
-extern rtx copy_to_suggested_reg (rtx, rtx, machine_mode);
-
-/* Copy a value to a register if it isn't already a register.
-   Args are mode (in case value is a constant) and the value.  */
-extern rtx force_reg (machine_mode, rtx);
-
-/* Return given rtx, copied into a new temp reg if it was in memory.  */
-extern rtx force_not_mem (rtx);
-
-/* Return mode and signedness to use when an argument or result in the
-   given mode is promoted.  */
-extern machine_mode promote_function_mode (const_tree, machine_mode, int *,
-					        const_tree, int);
-
-/* Return mode and signedness to use when an object in the given mode
-   is promoted.  */
-extern machine_mode promote_mode (const_tree, machine_mode, int *);
-
-/* Return mode and signedness to use when object is promoted.  */
-machine_mode promote_decl_mode (const_tree, int *);
-
-/* Remove some bytes from the stack.  An rtx says how many.  */
-extern void adjust_stack (rtx);
-
-/* Add some bytes to the stack.  An rtx says how many.  */
-extern void anti_adjust_stack (rtx);
-
-/* Add some bytes to the stack while probing it.  An rtx says how many. */
-extern void anti_adjust_stack_and_probe (rtx, bool);
-
-/* This enum is used for the following two functions.  */
-enum save_level {SAVE_BLOCK, SAVE_FUNCTION, SAVE_NONLOCAL};
-
-/* Save the stack pointer at the specified level.  */
-extern void emit_stack_save (enum save_level, rtx *);
-
-/* Restore the stack pointer from a save area of the specified level.  */
-extern void emit_stack_restore (enum save_level, rtx);
-
-/* Invoke emit_stack_save for the nonlocal_goto_save_area.  */
-extern void update_nonlocal_goto_save_area (void);
-
-/* Allocate some space on the stack dynamically and return its address.  */
-extern rtx allocate_dynamic_stack_space (rtx, unsigned, unsigned, bool);
-
-/* Emit one stack probe at ADDRESS, an address within the stack.  */
-extern void emit_stack_probe (rtx);
-
-/* Probe a range of stack addresses from FIRST to FIRST+SIZE, inclusive.
-   FIRST is a constant and size is a Pmode RTX.  These are offsets from
-   the current stack pointer.  STACK_GROWS_DOWNWARD says whether to add
-   or subtract them from the stack pointer.  */
-extern void probe_stack_range (HOST_WIDE_INT, rtx);
-
-/* Return an rtx that refers to the value returned by a library call
-   in its original home.  This becomes invalid if any more code is emitted.  */
-extern rtx hard_libcall_value (machine_mode, rtx);
-
-extern void store_bit_field (rtx, unsigned HOST_WIDE_INT,
-			     unsigned HOST_WIDE_INT,
-			     unsigned HOST_WIDE_INT,
-			     unsigned HOST_WIDE_INT,
-			     machine_mode, rtx);
-extern rtx extract_bit_field (rtx, unsigned HOST_WIDE_INT,
-			      unsigned HOST_WIDE_INT, int, rtx,
-			      machine_mode, machine_mode);
-extern rtx extract_low_bits (machine_mode, machine_mode, rtx);
-extern rtx expand_mult (machine_mode, rtx, rtx, rtx, int);
-extern rtx expand_mult_highpart_adjust (machine_mode, rtx, rtx, rtx, rtx, int);
-
-extern rtx assemble_static_space (unsigned HOST_WIDE_INT);
 extern int safe_from_p (const_rtx, tree, int);
-extern bool split_comparison (enum rtx_code, machine_mode,
-			      enum rtx_code *, enum rtx_code *);
 
 /* Get the personality libfunc for a function decl.  */
 rtx get_personality_function (tree);
 
-
-/* In stmt.c */
-
-/* Expand a GIMPLE_SWITCH statement.  */
-extern void expand_case (gswitch *);
-
-/* Like expand_case but special-case for SJLJ exception dispatching.  */
-extern void expand_sjlj_dispatch_table (rtx, vec<tree> );
-
 /* Determine whether the LEN bytes can be moved by using several move
    instructions.  Return nonzero if a call to move_by_pieces should
    succeed.  */
@@ -621,4 +295,9 @@ extern tree component_ref_field_offset (tree);
 
 extern void expand_operands (tree, tree, rtx, rtx*, rtx*,
 			     enum expand_modifier);
+
+/* rtl.h and tree.h were included.  */
+/* Return an rtx for the size in bytes of the value of an expr.  */
+extern rtx expr_size (tree);
+
 #endif /* GCC_EXPR_H */
diff --git a/gcc/final.c b/gcc/final.c
index 7797d81..1fa93d9 100644
--- a/gcc/final.c
+++ b/gcc/final.c
@@ -68,7 +68,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "flags.h"
 #include "output.h"
 #include "except.h"
-#include "input.h"
 #include "function.h"
 #include "rtl-error.h"
 #include "toplev.h" /* exact_log2, floor_log2 */
@@ -82,6 +81,16 @@ along with GCC; see the file COPYING3.  If not see
 #include "target.h"
 #include "targhooks.h"
 #include "debug.h"
+#include "hashtab.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tree-pass.h"
 #include "hash-map.h"
diff --git a/gcc/fold-const.c b/gcc/fold-const.c
index b1cbfac..8974dc0 100644
--- a/gcc/fold-const.c
+++ b/gcc/fold-const.c
@@ -61,6 +61,19 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-iterator.h"
 #include "realmpfr.h"
 #include "rtl.h"
+#include "hashtab.h"
+#include "hard-reg-set.h"
+#include "function.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tm_p.h"
 #include "target.h"
@@ -69,11 +82,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "langhooks.h"
 #include "md5.h"
 #include "predict.h"
-#include "vec.h"
-#include "hashtab.h"
-#include "hard-reg-set.h"
-#include "input.h"
-#include "function.h"
 #include "basic-block.h"
 #include "tree-ssa-alias.h"
 #include "internal-fn.h"
diff --git a/gcc/function.c b/gcc/function.c
index 9589e64..2c3d142 100644
--- a/gcc/function.c
+++ b/gcc/function.c
@@ -53,18 +53,24 @@ along with GCC; see the file COPYING3.  If not see
 #include "flags.h"
 #include "except.h"
 #include "hashtab.h"
-#include "hash-set.h"
-#include "vec.h"
-#include "machmode.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
+#include "rtl.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
 #include "libfuncs.h"
 #include "regs.h"
-#include "insn-config.h"
 #include "recog.h"
 #include "output.h"
 #include "tm_p.h"
diff --git a/gcc/gcse.c b/gcc/gcse.c
index 0f04641..e03b36c 100644
--- a/gcc/gcse.c
+++ b/gcc/gcse.c
@@ -157,7 +157,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "insn-config.h"
 #include "recog.h"
 #include "predict.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -166,6 +165,17 @@ along with GCC; see the file COPYING3.  If not see
 #include "lcm.h"
 #include "cfgcleanup.h"
 #include "basic-block.h"
+#include "hashtab.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "except.h"
 #include "ggc.h"
diff --git a/gcc/genemit.c b/gcc/genemit.c
index cda3fce..1bcb66b 100644
--- a/gcc/genemit.c
+++ b/gcc/genemit.c
@@ -811,19 +811,23 @@ from the machine description file `md'.  */\n\n");
   printf ("#include \"rtl.h\"\n");
   printf ("#include \"tm_p.h\"\n");
   printf ("#include \"hashtab.h\"\n");
-  printf ("#include \"hash-set.h\"\n");
-  printf ("#include \"vec.h\"\n");
-  printf ("#include \"machmode.h\"\n");
   printf ("#include \"hard-reg-set.h\"\n");
-  printf ("#include \"input.h\"\n");
   printf ("#include \"function.h\"\n");
+  printf ("#include \"flags.h\"\n");
+  printf ("#include \"statistics.h\"\n");
+  printf ("#include \"real.h\"\n");
+  printf ("#include \"fixed-value.h\"\n");
+  printf ("#include \"insn-config.h\"\n");
+  printf ("#include \"expmed.h\"\n");
+  printf ("#include \"dojump.h\"\n");
+  printf ("#include \"explow.h\"\n");
+  printf ("#include \"emit-rtl.h\"\n");
+  printf ("#include \"stmt.h\"\n");
   printf ("#include \"expr.h\"\n");
   printf ("#include \"insn-codes.h\"\n");
   printf ("#include \"optabs.h\"\n");
   printf ("#include \"dfp.h\"\n");
-  printf ("#include \"flags.h\"\n");
   printf ("#include \"output.h\"\n");
-  printf ("#include \"insn-config.h\"\n");
   printf ("#include \"recog.h\"\n");
   printf ("#include \"predict.h\"\n");
   printf ("#include \"basic-block.h\"\n");
diff --git a/gcc/generic-match-head.c b/gcc/generic-match-head.c
index c34604d..daa56aa 100644
--- a/gcc/generic-match-head.c
+++ b/gcc/generic-match-head.c
@@ -39,7 +39,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "hard-reg-set.h"
 #include "function.h"
 #include "predict.h"
-#include "input.h"
 #include "basic-block.h"
 #include "tree-ssa-alias.h"
 #include "internal-fn.h"
@@ -50,6 +49,19 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-ssanames.h"
 #include "gimple-fold.h"
 #include "gimple-iterator.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tree-dfa.h"
 #include "builtins.h"
diff --git a/gcc/gengtype.c b/gcc/gengtype.c
index 9f805b5..295a163 100644
--- a/gcc/gengtype.c
+++ b/gcc/gengtype.c
@@ -1714,8 +1714,11 @@ open_base_files (void)
       "wide-int.h", "inchash.h",
       "tree.h", "fold-const.h", "rtl.h",
       "machmode.h", "tm.h", "hard-reg-set.h", "input.h", "predict.h",
-      "function.h", "insn-config.h", "expr.h", "alloc-pool.h",
-      "hard-reg-set.h", "basic-block.h", "cselib.h", "insn-addr.h",
+      "function.h", "insn-config.h", "flags.h", "statistics.h",
+      "real.h", "fixed-value.h", "tree.h", "expmed.h", "dojump.h",
+      "explow.h", "calls.h", "emit-rtl.h", "varasm.h", "stmt.h",
+      "expr.h", "alloc-pool.h",
+      "basic-block.h", "cselib.h", "insn-addr.h",
       "optabs.h", "libfuncs.h", "debug.h", "ggc.h", 
       "ggc.h", "dominance.h", "cfg.h", "basic-block.h",
       "tree-ssa-alias.h", "internal-fn.h", "gimple-fold.h", "tree-eh.h",
diff --git a/gcc/genopinit.c b/gcc/genopinit.c
index b301053..7fa59eb 100644
--- a/gcc/genopinit.c
+++ b/gcc/genopinit.c
@@ -483,6 +483,17 @@ main (int argc, char **argv)
 	   "#include \"tm_p.h\"\n"
 	   "#include \"flags.h\"\n"
 	   "#include \"insn-config.h\"\n"
+	   "#include \"hashtab.h\"\n"
+	   "#include \"hard-reg-set.h\"\n"
+	   "#include \"function.h\"\n"
+	   "#include \"statistics.h\"\n"
+	   "#include \"real.h\"\n"
+	   "#include \"fixed-value.h\"\n"
+	   "#include \"expmed.h\"\n"
+	   "#include \"dojump.h\"\n"
+	   "#include \"explow.h\"\n"
+	   "#include \"emit-rtl.h\"\n"
+	   "#include \"stmt.h\"\n"
 	   "#include \"expr.h\"\n"
 	   "#include \"insn-codes.h\"\n"
 	   "#include \"optabs.h\"\n"
diff --git a/gcc/genoutput.c b/gcc/genoutput.c
index fde30ef..3be3e13 100644
--- a/gcc/genoutput.c
+++ b/gcc/genoutput.c
@@ -243,13 +243,22 @@ output_prologue (void)
   printf ("#include \"stor-layout.h\"\n");
   printf ("#include \"calls.h\"\n");
   printf ("#include \"rtl.h\"\n");
+  printf ("#include \"hashtab.h\"\n");
+  printf ("#include \"hard-reg-set.h\"\n");
+  printf ("#include \"function.h\"\n");
+  printf ("#include \"statistics.h\"\n");
+  printf ("#include \"real.h\"\n");
+  printf ("#include \"fixed-value.h\"\n");
+  printf ("#include \"insn-config.h\"\n");
+  printf ("#include \"expmed.h\"\n");
+  printf ("#include \"dojump.h\"\n");
+  printf ("#include \"explow.h\"\n");
+  printf ("#include \"emit-rtl.h\"\n");
+  printf ("#include \"stmt.h\"\n");
   printf ("#include \"expr.h\"\n");
   printf ("#include \"insn-codes.h\"\n");
   printf ("#include \"tm_p.h\"\n");
-  printf ("#include \"function.h\"\n");
   printf ("#include \"regs.h\"\n");
-  printf ("#include \"hard-reg-set.h\"\n");
-  printf ("#include \"insn-config.h\"\n\n");
   printf ("#include \"conditions.h\"\n");
   printf ("#include \"insn-attr.h\"\n\n");
   printf ("#include \"recog.h\"\n\n");
diff --git a/gcc/gimple-fold.c b/gcc/gimple-fold.c
index 49b31f1..baec077 100644
--- a/gcc/gimple-fold.c
+++ b/gcc/gimple-fold.c
@@ -34,17 +34,24 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree.h"
 #include "fold-const.h"
 #include "stringpool.h"
-#include "expr.h"
-#include "stmt.h"
-#include "stor-layout.h"
-#include "flags.h"
 #include "hashtab.h"
-#include "hash-set.h"
-#include "vec.h"
-#include "machmode.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
+#include "expr.h"
+#include "stor-layout.h"
 #include "dumpfile.h"
 #include "bitmap.h"
 #include "predict.h"
diff --git a/gcc/gimple-match-head.c b/gcc/gimple-match-head.c
index d7ada77..0ca189d 100644
--- a/gcc/gimple-match-head.c
+++ b/gcc/gimple-match-head.c
@@ -36,11 +36,9 @@ along with GCC; see the file COPYING3.  If not see
 #include "stringpool.h"
 #include "stor-layout.h"
 #include "flags.h"
-#include "tm.h"
 #include "hard-reg-set.h"
 #include "function.h"
 #include "predict.h"
-#include "input.h"
 #include "basic-block.h"
 #include "tree-ssa-alias.h"
 #include "internal-fn.h"
@@ -51,6 +49,19 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-ssanames.h"
 #include "gimple-fold.h"
 #include "gimple-iterator.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tree-dfa.h"
 #include "builtins.h"
diff --git a/gcc/gimple-ssa-strength-reduction.c b/gcc/gimple-ssa-strength-reduction.c
index f6c92d0..5b84bbe 100644
--- a/gcc/gimple-ssa-strength-reduction.c
+++ b/gcc/gimple-ssa-strength-reduction.c
@@ -51,7 +51,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "predict.h"
 #include "tm.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -64,6 +63,20 @@ along with GCC; see the file COPYING3.  If not see
 #include "gimple-iterator.h"
 #include "gimplify-me.h"
 #include "stor-layout.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tree-pass.h"
 #include "cfgloop.h"
@@ -75,7 +88,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "stringpool.h"
 #include "tree-ssanames.h"
 #include "domwalk.h"
-#include "expmed.h"
 #include "params.h"
 #include "tree-ssa-address.h"
 #include "tree-affine.h"
diff --git a/gcc/gimplify.c b/gcc/gimplify.c
index 59aaf5a..2472d86 100644
--- a/gcc/gimplify.c
+++ b/gcc/gimplify.c
@@ -35,12 +35,25 @@ along with GCC; see the file COPYING3.  If not see
 #include "inchash.h"
 #include "tree.h"
 #include "fold-const.h"
-#include "expr.h"
-#include "predict.h"
+#include "hashtab.h"
 #include "tm.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
+#include "expr.h"
+#include "predict.h"
 #include "basic-block.h"
 #include "tree-ssa-alias.h"
 #include "internal-fn.h"
@@ -52,10 +65,7 @@ along with GCC; see the file COPYING3.  If not see
 #include "gimplify.h"
 #include "gimple-iterator.h"
 #include "stringpool.h"
-#include "calls.h"
-#include "varasm.h"
 #include "stor-layout.h"
-#include "stmt.h"
 #include "print-tree.h"
 #include "tree-iterator.h"
 #include "tree-inline.h"
diff --git a/gcc/graphite-sese-to-poly.c b/gcc/graphite-sese-to-poly.c
index 5bb521f..23b63ad 100644
--- a/gcc/graphite-sese-to-poly.c
+++ b/gcc/graphite-sese-to-poly.c
@@ -55,7 +55,6 @@ extern "C" {
 #include "predict.h"
 #include "tm.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -88,6 +87,20 @@ extern "C" {
 #include "tree-ssa-propagate.h"
 
 #ifdef HAVE_isl
+#include "hashtab.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "graphite-poly.h"
 #include "graphite-sese-to-poly.h"
diff --git a/gcc/hw-doloop.c b/gcc/hw-doloop.c
index 5ad1569..ff2cb7b 100644
--- a/gcc/hw-doloop.c
+++ b/gcc/hw-doloop.c
@@ -25,16 +25,32 @@ along with GCC; see the file COPYING3.  If not see
 #include "rtl.h"
 #include "flags.h"
 #include "symtab.h"
-#include "expr.h"
-#include "hard-reg-set.h"
-#include "regs.h"
-#include "predict.h"
-#include "vec.h"
 #include "hashtab.h"
 #include "hash-set.h"
+#include "vec.h"
 #include "machmode.h"
+#include "hard-reg-set.h"
 #include "input.h"
 #include "function.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "alias.h"
+#include "wide-int.h"
+#include "inchash.h"
+#include "tree.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
+#include "expr.h"
+#include "regs.h"
+#include "predict.h"
 #include "dominance.h"
 #include "cfg.h"
 #include "cfgrtl.h"
diff --git a/gcc/ifcvt.c b/gcc/ifcvt.c
index 30a13a8..a3e3e5c 100644
--- a/gcc/ifcvt.c
+++ b/gcc/ifcvt.c
@@ -43,6 +43,21 @@
 #include "cfgcleanup.h"
 #include "basic-block.h"
 #include "symtab.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "alias.h"
+#include "wide-int.h"
+#include "inchash.h"
+#include "tree.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "output.h"
 #include "insn-codes.h"
diff --git a/gcc/init-regs.c b/gcc/init-regs.c
index 3b9560d..14b56f1 100644
--- a/gcc/init-regs.c
+++ b/gcc/init-regs.c
@@ -33,16 +33,27 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree.h"
 #include "rtl.h"
 #include "regs.h"
+#include "hashtab.h"
+#include "hard-reg-set.h"
+#include "function.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tree-pass.h"
 #include "predict.h"
-#include "hard-reg-set.h"
-#include "input.h"
-#include "function.h"
 #include "dominance.h"
 #include "cfg.h"
 #include "basic-block.h"
-#include "flags.h"
 #include "df.h"
 
 /* Check all of the uses of pseudo variables.  If any use that is MUST
diff --git a/gcc/internal-fn.c b/gcc/internal-fn.c
index 07a9ec5..0609e4a 100644
--- a/gcc/internal-fn.c
+++ b/gcc/internal-fn.c
@@ -34,19 +34,31 @@ along with GCC; see the file COPYING3.  If not see
 #include "fold-const.h"
 #include "internal-fn.h"
 #include "stor-layout.h"
+#include "hashtab.h"
+#include "tm.h"
+#include "hard-reg-set.h"
+#include "function.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
 #include "predict.h"
-#include "tm.h"
-#include "hard-reg-set.h"
-#include "input.h"
-#include "function.h"
 #include "dominance.h"
 #include "cfg.h"
 #include "basic-block.h"
 #include "tree-ssa-alias.h"
-#include "internal-fn.h"
 #include "gimple-expr.h"
 #include "is-a.h"
 #include "gimple.h"
diff --git a/gcc/ipa-devirt.c b/gcc/ipa-devirt.c
index 52d2e52..70f2bc8 100644
--- a/gcc/ipa-devirt.c
+++ b/gcc/ipa-devirt.c
@@ -128,15 +128,26 @@ along with GCC; see the file COPYING3.  If not see
 #include "is-a.h"
 #include "plugin-api.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "ipa-ref.h"
 #include "cgraph.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tree-pass.h"
 #include "target.h"
 #include "hash-table.h"
-#include "inchash.h"
 #include "tree-pretty-print.h"
 #include "ipa-utils.h"
 #include "tree-ssa-alias.h"
diff --git a/gcc/ipa-icf-gimple.c b/gcc/ipa-icf-gimple.c
index ed3cdf5..aa44704 100644
--- a/gcc/ipa-icf-gimple.c
+++ b/gcc/ipa-icf-gimple.c
@@ -37,7 +37,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "predict.h"
 #include "tm.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "basic-block.h"
 #include "tree-ssa-alias.h"
@@ -45,6 +44,20 @@ along with GCC; see the file COPYING3.  If not see
 #include "gimple-expr.h"
 #include "is-a.h"
 #include "gimple.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "gimple-iterator.h"
 #include "gimple-ssa.h"
diff --git a/gcc/ipa-icf.c b/gcc/ipa-icf.c
index 9e2dea5..1b9770a 100644
--- a/gcc/ipa-icf.c
+++ b/gcc/ipa-icf.c
@@ -69,7 +69,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "predict.h"
 #include "tm.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -79,6 +78,20 @@ along with GCC; see the file COPYING3.  If not see
 #include "gimple-expr.h"
 #include "is-a.h"
 #include "gimple.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "gimple-iterator.h"
 #include "gimple-ssa.h"
@@ -109,7 +122,6 @@ along with GCC; see the file COPYING3.  If not see
 #include <list>
 #include "ipa-icf-gimple.h"
 #include "ipa-icf.h"
-#include "varasm.h"
 
 using namespace ipa_icf_gimple;
 
diff --git a/gcc/ipa-polymorphic-call.c b/gcc/ipa-polymorphic-call.c
index 369d938..5ad5e51 100644
--- a/gcc/ipa-polymorphic-call.c
+++ b/gcc/ipa-polymorphic-call.c
@@ -35,6 +35,21 @@ along with GCC; see the file COPYING3.  If not see
 #include "fold-const.h"
 #include "print-tree.h"
 #include "calls.h"
+#include "hashtab.h"
+#include "hard-reg-set.h"
+#include "function.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tree-pass.h"
 #include "target.h"
@@ -44,9 +59,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "hash-map.h"
 #include "is-a.h"
 #include "plugin-api.h"
-#include "hard-reg-set.h"
-#include "input.h"
-#include "function.h"
 #include "ipa-ref.h"
 #include "cgraph.h"
 #include "ipa-utils.h"
diff --git a/gcc/ipa-prop.c b/gcc/ipa-prop.c
index 01f4111..6807c22 100644
--- a/gcc/ipa-prop.c
+++ b/gcc/ipa-prop.c
@@ -35,7 +35,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "predict.h"
 #include "tm.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -47,6 +46,20 @@ along with GCC; see the file COPYING3.  If not see
 #include "gimple-expr.h"
 #include "is-a.h"
 #include "gimple.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "stor-layout.h"
 #include "print-tree.h"
@@ -73,7 +86,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-pass.h"
 #include "tree-inline.h"
 #include "ipa-inline.h"
-#include "flags.h"
 #include "diagnostic.h"
 #include "gimple-pretty-print.h"
 #include "lto-streamer.h"
@@ -86,7 +98,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "dbgcnt.h"
 #include "domwalk.h"
 #include "builtins.h"
-#include "calls.h"
 
 /* Intermediate information that we get from alias analysis about a particular
    parameter in a particular basic_block.  When a parameter or the memory it
diff --git a/gcc/ipa-split.c b/gcc/ipa-split.c
index 924c6b1..7e2e300 100644
--- a/gcc/ipa-split.c
+++ b/gcc/ipa-split.c
@@ -92,7 +92,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "predict.h"
 #include "tm.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -104,8 +103,21 @@ along with GCC; see the file COPYING3.  If not see
 #include "is-a.h"
 #include "gimple.h"
 #include "stringpool.h"
-#include "expr.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
 #include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
+#include "expr.h"
 #include "gimplify.h"
 #include "gimple-iterator.h"
 #include "gimplify-me.h"
@@ -122,12 +134,10 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-cfg.h"
 #include "tree-phinodes.h"
 #include "ssa-iterators.h"
-#include "stringpool.h"
 #include "tree-ssanames.h"
 #include "tree-into-ssa.h"
 #include "tree-dfa.h"
 #include "tree-pass.h"
-#include "flags.h"
 #include "diagnostic.h"
 #include "tree-dump.h"
 #include "tree-inline.h"
diff --git a/gcc/ira-color.c b/gcc/ira-color.c
index d362981..d04be29 100644
--- a/gcc/ira-color.c
+++ b/gcc/ira-color.c
@@ -42,6 +42,22 @@ along with GCC; see the file COPYING3.  If not see
 #include "cfg.h"
 #include "basic-block.h"
 #include "symtab.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "alias.h"
+#include "wide-int.h"
+#include "inchash.h"
+#include "tree.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "diagnostic-core.h"
 #include "reload.h"
diff --git a/gcc/ira-costs.c b/gcc/ira-costs.c
index 4219e60..0acb949 100644
--- a/gcc/ira-costs.c
+++ b/gcc/ira-costs.c
@@ -26,22 +26,37 @@ along with GCC; see the file COPYING3.  If not see
 #include "hard-reg-set.h"
 #include "rtl.h"
 #include "symtab.h"
-#include "expr.h"
-#include "tm_p.h"
-#include "flags.h"
-#include "predict.h"
-#include "vec.h"
 #include "hashtab.h"
 #include "hash-set.h"
+#include "vec.h"
 #include "machmode.h"
 #include "input.h"
 #include "function.h"
+#include "flags.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "alias.h"
+#include "wide-int.h"
+#include "inchash.h"
+#include "tree.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
+#include "expr.h"
+#include "tm_p.h"
+#include "predict.h"
 #include "dominance.h"
 #include "cfg.h"
 #include "basic-block.h"
 #include "regs.h"
 #include "addresses.h"
-#include "insn-config.h"
 #include "recog.h"
 #include "reload.h"
 #include "diagnostic-core.h"
diff --git a/gcc/ira-emit.c b/gcc/ira-emit.c
index b1847ec..8837587 100644
--- a/gcc/ira-emit.c
+++ b/gcc/ira-emit.c
@@ -90,6 +90,22 @@ along with GCC; see the file COPYING3.  If not see
 #include "cfgbuild.h"
 #include "basic-block.h"
 #include "symtab.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "alias.h"
+#include "wide-int.h"
+#include "inchash.h"
+#include "tree.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "recog.h"
 #include "params.h"
diff --git a/gcc/ira.c b/gcc/ira.c
index b7ae86e..ea2b69f 100644
--- a/gcc/ira.c
+++ b/gcc/ira.c
@@ -386,7 +386,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "bitmap.h"
 #include "hard-reg-set.h"
 #include "predict.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -395,6 +394,18 @@ along with GCC; see the file COPYING3.  If not see
 #include "cfgcleanup.h"
 #include "basic-block.h"
 #include "df.h"
+#include "hashtab.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "recog.h"
 #include "params.h"
diff --git a/gcc/java/builtins.c b/gcc/java/builtins.c
index ee1ac60..067ce9f 100644
--- a/gcc/java/builtins.c
+++ b/gcc/java/builtins.c
@@ -53,6 +53,20 @@ The Free Software Foundation is independent of Sun Microsystems, Inc.  */
    Front ends should never have to look at that.  */
 #include "rtl.h"
 #include "insn-codes.h"
+#include "hashtab.h"
+#include "hard-reg-set.h"
+#include "function.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "optabs.h"
 
diff --git a/gcc/jump.c b/gcc/jump.c
index c3eb40c..3b8c91e 100644
--- a/gcc/jump.c
+++ b/gcc/jump.c
@@ -57,6 +57,21 @@ along with GCC; see the file COPYING3.  If not see
 #include "cfgrtl.h"
 #include "basic-block.h"
 #include "symtab.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "alias.h"
+#include "wide-int.h"
+#include "inchash.h"
+#include "tree.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "except.h"
 #include "diagnostic-core.h"
diff --git a/gcc/loop-doloop.c b/gcc/loop-doloop.c
index bc0953c..0b6447ad 100644
--- a/gcc/loop-doloop.c
+++ b/gcc/loop-doloop.c
@@ -25,14 +25,30 @@ along with GCC; see the file COPYING3.  If not see
 #include "rtl.h"
 #include "flags.h"
 #include "symtab.h"
-#include "expr.h"
-#include "hard-reg-set.h"
-#include "vec.h"
 #include "hashtab.h"
 #include "hash-set.h"
+#include "vec.h"
 #include "machmode.h"
+#include "hard-reg-set.h"
 #include "input.h"
 #include "function.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "alias.h"
+#include "wide-int.h"
+#include "inchash.h"
+#include "tree.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
+#include "expr.h"
 #include "diagnostic-core.h"
 #include "tm_p.h"
 #include "predict.h"
diff --git a/gcc/loop-invariant.c b/gcc/loop-invariant.c
index be9078c..cc48032 100644
--- a/gcc/loop-invariant.c
+++ b/gcc/loop-invariant.c
@@ -55,10 +55,26 @@ along with GCC; see the file COPYING3.  If not see
 #include "basic-block.h"
 #include "cfgloop.h"
 #include "symtab.h"
+#include "flags.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "alias.h"
+#include "wide-int.h"
+#include "inchash.h"
+#include "tree.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "recog.h"
 #include "target.h"
-#include "flags.h"
 #include "df.h"
 #include "hash-table.h"
 #include "except.h"
diff --git a/gcc/loop-iv.c b/gcc/loop-iv.c
index 5934448..de2b15a 100644
--- a/gcc/loop-iv.c
+++ b/gcc/loop-iv.c
@@ -66,6 +66,23 @@ along with GCC; see the file COPYING3.  If not see
 #include "basic-block.h"
 #include "cfgloop.h"
 #include "symtab.h"
+#include "flags.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "alias.h"
+#include "wide-int.h"
+#include "inchash.h"
+#include "tree.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "intl.h"
 #include "diagnostic-core.h"
diff --git a/gcc/loop-unroll.c b/gcc/loop-unroll.c
index 917c66b..2befb61 100644
--- a/gcc/loop-unroll.c
+++ b/gcc/loop-unroll.c
@@ -36,7 +36,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "obstack.h"
 #include "profile.h"
 #include "predict.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -46,6 +45,19 @@ along with GCC; see the file COPYING3.  If not see
 #include "params.h"
 #include "insn-codes.h"
 #include "optabs.h"
+#include "hashtab.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "hash-table.h"
 #include "recog.h"
diff --git a/gcc/lower-subreg.c b/gcc/lower-subreg.c
index d58b5c5..9d5fd3b 100644
--- a/gcc/lower-subreg.c
+++ b/gcc/lower-subreg.c
@@ -25,7 +25,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "machmode.h"
 #include "tm.h"
 #include "hash-set.h"
-#include "machmode.h"
 #include "vec.h"
 #include "double-int.h"
 #include "input.h"
@@ -41,7 +40,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "obstack.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -51,6 +49,17 @@ along with GCC; see the file COPYING3.  If not see
 #include "recog.h"
 #include "bitmap.h"
 #include "dce.h"
+#include "hashtab.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "except.h"
 #include "regs.h"
diff --git a/gcc/lra-assigns.c b/gcc/lra-assigns.c
index c8a2fb1..2462af5 100644
--- a/gcc/lra-assigns.c
+++ b/gcc/lra-assigns.c
@@ -94,6 +94,22 @@ along with GCC; see the file COPYING3.	If not see
 #include "input.h"
 #include "function.h"
 #include "symtab.h"
+#include "flags.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "alias.h"
+#include "wide-int.h"
+#include "inchash.h"
+#include "tree.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "predict.h"
 #include "dominance.h"
diff --git a/gcc/lra-coalesce.c b/gcc/lra-coalesce.c
index 7db148f..045691d 100644
--- a/gcc/lra-coalesce.c
+++ b/gcc/lra-coalesce.c
@@ -61,6 +61,21 @@ along with GCC; see the file COPYING3.	If not see
 #include "input.h"
 #include "function.h"
 #include "symtab.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "alias.h"
+#include "wide-int.h"
+#include "inchash.h"
+#include "tree.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "predict.h"
 #include "dominance.h"
diff --git a/gcc/lra-constraints.c b/gcc/lra-constraints.c
index 5bd8e7c..cdfa944 100644
--- a/gcc/lra-constraints.c
+++ b/gcc/lra-constraints.c
@@ -127,6 +127,22 @@
 #include "input.h"
 #include "function.h"
 #include "symtab.h"
+#include "flags.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "alias.h"
+#include "wide-int.h"
+#include "inchash.h"
+#include "tree.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "predict.h"
 #include "dominance.h"
diff --git a/gcc/lra-eliminations.c b/gcc/lra-eliminations.c
index a591de6..fe05a1f 100644
--- a/gcc/lra-eliminations.c
+++ b/gcc/lra-eliminations.c
@@ -72,6 +72,22 @@ along with GCC; see the file COPYING3.	If not see
 #include "input.h"
 #include "function.h"
 #include "symtab.h"
+#include "flags.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "alias.h"
+#include "wide-int.h"
+#include "inchash.h"
+#include "tree.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "predict.h"
 #include "dominance.h"
diff --git a/gcc/lra-lives.c b/gcc/lra-lives.c
index bd7e159..50d3969 100644
--- a/gcc/lra-lives.c
+++ b/gcc/lra-lives.c
@@ -43,6 +43,22 @@ along with GCC; see the file COPYING3.	If not see
 #include "input.h"
 #include "function.h"
 #include "symtab.h"
+#include "flags.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "alias.h"
+#include "wide-int.h"
+#include "inchash.h"
+#include "tree.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "predict.h"
 #include "dominance.h"
diff --git a/gcc/lra-remat.c b/gcc/lra-remat.c
index a32ecca..68146a1 100644
--- a/gcc/lra-remat.c
+++ b/gcc/lra-remat.c
@@ -72,6 +72,22 @@ along with GCC; see the file COPYING3.	If not see
 #include "input.h"
 #include "function.h"
 #include "symtab.h"
+#include "flags.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "alias.h"
+#include "wide-int.h"
+#include "inchash.h"
+#include "tree.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "predict.h"
 #include "dominance.h"
@@ -82,7 +98,6 @@ along with GCC; see the file COPYING3.	If not see
 #include "ira.h"
 #include "sparseset.h"
 #include "params.h"
-#include "df.h"
 #include "lra-int.h"
 
 /* Number of candidates for rematerialization.  */
diff --git a/gcc/lra-spills.c b/gcc/lra-spills.c
index a42a1b3..1847351 100644
--- a/gcc/lra-spills.c
+++ b/gcc/lra-spills.c
@@ -74,6 +74,21 @@ along with GCC; see the file COPYING3.	If not see
 #include "input.h"
 #include "function.h"
 #include "symtab.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "alias.h"
+#include "wide-int.h"
+#include "inchash.h"
+#include "tree.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "predict.h"
 #include "dominance.h"
diff --git a/gcc/lra.c b/gcc/lra.c
index d0a1000..bc6723d 100644
--- a/gcc/lra.c
+++ b/gcc/lra.c
@@ -125,6 +125,18 @@ along with GCC; see the file COPYING3.	If not see
 #include "inchash.h"
 #include "tree.h"
 #include "optabs.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "alias.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "predict.h"
 #include "dominance.h"
diff --git a/gcc/lto-cgraph.c b/gcc/lto-cgraph.c
index 6c6501a..b609c4b 100644
--- a/gcc/lto-cgraph.c
+++ b/gcc/lto-cgraph.c
@@ -38,7 +38,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "stringpool.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "basic-block.h"
 #include "tree-ssa-alias.h"
@@ -46,8 +45,21 @@ along with GCC; see the file COPYING3.  If not see
 #include "gimple-expr.h"
 #include "is-a.h"
 #include "gimple.h"
-#include "expr.h"
+#include "hashtab.h"
+#include "rtl.h"
 #include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
+#include "expr.h"
 #include "params.h"
 #include "langhooks.h"
 #include "bitmap.h"
diff --git a/gcc/lto-section-in.c b/gcc/lto-section-in.c
index 432e3dd..7bc014d 100644
--- a/gcc/lto-section-in.c
+++ b/gcc/lto-section-in.c
@@ -36,7 +36,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "fold-const.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "basic-block.h"
 #include "tree-ssa-alias.h"
@@ -44,8 +43,21 @@ along with GCC; see the file COPYING3.  If not see
 #include "gimple-expr.h"
 #include "is-a.h"
 #include "gimple.h"
-#include "expr.h"
+#include "hashtab.h"
+#include "rtl.h"
 #include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
+#include "expr.h"
 #include "params.h"
 #include "diagnostic-core.h"
 #include "except.h"
diff --git a/gcc/lto-section-out.c b/gcc/lto-section-out.c
index 63dda15..11b7cd0 100644
--- a/gcc/lto-section-out.c
+++ b/gcc/lto-section-out.c
@@ -36,7 +36,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "fold-const.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "basic-block.h"
 #include "tree-ssa-alias.h"
@@ -44,6 +43,20 @@ along with GCC; see the file COPYING3.  If not see
 #include "gimple-expr.h"
 #include "is-a.h"
 #include "gimple.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "params.h"
 #include "except.h"
diff --git a/gcc/lto-streamer-in.c b/gcc/lto-streamer-in.c
index 4540c83..fbb272f 100644
--- a/gcc/lto-streamer-in.c
+++ b/gcc/lto-streamer-in.c
@@ -37,13 +37,25 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree.h"
 #include "fold-const.h"
 #include "stringpool.h"
-#include "expr.h"
+#include "hashtab.h"
+#include "hard-reg-set.h"
+#include "function.h"
+#include "rtl.h"
 #include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
+#include "expr.h"
 #include "params.h"
-#include "input.h"
 #include "predict.h"
-#include "hard-reg-set.h"
-#include "function.h"
 #include "dominance.h"
 #include "cfg.h"
 #include "basic-block.h"
@@ -72,7 +84,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "gimple-streamer.h"
 #include "lto-streamer.h"
 #include "tree-streamer.h"
-#include "tree-pass.h"
 #include "streamer-hooks.h"
 #include "cfgloop.h"
 
diff --git a/gcc/lto-streamer-out.c b/gcc/lto-streamer-out.c
index 21a78bb..3cfdfc6 100644
--- a/gcc/lto-streamer-out.c
+++ b/gcc/lto-streamer-out.c
@@ -37,13 +37,25 @@ along with GCC; see the file COPYING3.  If not see
 #include "fold-const.h"
 #include "stor-layout.h"
 #include "stringpool.h"
-#include "expr.h"
+#include "hashtab.h"
+#include "hard-reg-set.h"
+#include "function.h"
+#include "rtl.h"
 #include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
+#include "expr.h"
 #include "params.h"
-#include "input.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/modulo-sched.c b/gcc/modulo-sched.c
index 240ae27..22cd216 100644
--- a/gcc/modulo-sched.c
+++ b/gcc/modulo-sched.c
@@ -48,11 +48,7 @@ along with GCC; see the file COPYING3.  If not see
 #include "sched-int.h"
 #include "target.h"
 #include "cfgloop.h"
-#include "hash-set.h"
-#include "machmode.h"
-#include "vec.h"
 #include "double-int.h"
-#include "input.h"
 #include "alias.h"
 #include "symtab.h"
 #include "wide-int.h"
@@ -60,6 +56,16 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree.h"
 #include "insn-codes.h"
 #include "optabs.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "params.h"
 #include "gcov-io.h"
diff --git a/gcc/omp-low.c b/gcc/omp-low.c
index eaad52a..9ec3d49 100644
--- a/gcc/omp-low.c
+++ b/gcc/omp-low.c
@@ -41,7 +41,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "rtl.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -71,11 +70,22 @@ along with GCC; see the file COPYING3.  If not see
 #include "ssa-iterators.h"
 #include "tree-ssanames.h"
 #include "tree-into-ssa.h"
+#include "hashtab.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tree-dfa.h"
 #include "tree-ssa.h"
-#include "flags.h"
-#include "expr.h"
 #include "tree-pass.h"
 #include "except.h"
 #include "splay-tree.h"
diff --git a/gcc/optabs.c b/gcc/optabs.c
index 615199a..e9dc798 100644
--- a/gcc/optabs.c
+++ b/gcc/optabs.c
@@ -45,9 +45,18 @@ along with GCC; see the file COPYING3.  If not see
 #include "tm_p.h"
 #include "flags.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "except.h"
+#include "hashtab.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
diff --git a/gcc/passes.c b/gcc/passes.c
index 52dc067..aa65732 100644
--- a/gcc/passes.c
+++ b/gcc/passes.c
@@ -32,7 +32,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "machmode.h"
 #include "vec.h"
 #include "double-int.h"
-#include "input.h"
 #include "alias.h"
 #include "symtab.h"
 #include "wide-int.h"
@@ -52,6 +51,16 @@ along with GCC; see the file COPYING3.  If not see
 #include "except.h"
 #include "function.h"
 #include "toplev.h"
+#include "hashtab.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "predict.h"
 #include "basic-block.h"
diff --git a/gcc/postreload-gcse.c b/gcc/postreload-gcse.c
index 8d82632..324264a 100644
--- a/gcc/postreload-gcse.c
+++ b/gcc/postreload-gcse.c
@@ -42,13 +42,23 @@ along with GCC; see the file COPYING3.  If not see
 #include "insn-config.h"
 #include "recog.h"
 #include "predict.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
 #include "cfgrtl.h"
 #include "basic-block.h"
 #include "profile.h"
+#include "hashtab.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "except.h"
 #include "intl.h"
diff --git a/gcc/postreload.c b/gcc/postreload.c
index 67d02d0..30fa449 100644
--- a/gcc/postreload.c
+++ b/gcc/postreload.c
@@ -35,6 +35,21 @@ along with GCC; see the file COPYING3.  If not see
 #include "input.h"
 #include "function.h"
 #include "symtab.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "alias.h"
+#include "wide-int.h"
+#include "inchash.h"
+#include "tree.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
@@ -51,13 +66,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "cselib.h"
 #include "diagnostic-core.h"
 #include "except.h"
-#include "double-int.h"
-#include "input.h"
-#include "alias.h"
-#include "symtab.h"
-#include "wide-int.h"
-#include "inchash.h"
-#include "tree.h"
 #include "target.h"
 #include "tree-pass.h"
 #include "df.h"
diff --git a/gcc/predict.c b/gcc/predict.c
index 9793897..505c06d 100644
--- a/gcc/predict.c
+++ b/gcc/predict.c
@@ -47,7 +47,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "tm_p.h"
 #include "hard-reg-set.h"
 #include "predict.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -60,6 +59,16 @@ along with GCC; see the file COPYING3.  If not see
 #include "except.h"
 #include "diagnostic-core.h"
 #include "recog.h"
+#include "hashtab.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "coverage.h"
 #include "sreal.h"
@@ -84,7 +93,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-ssa-loop.h"
 #include "tree-pass.h"
 #include "tree-scalar-evolution.h"
-#include "cfgloop.h"
 
 /* real constants: 0, 1, 1-1/REG_BR_PROB_BASE, REG_BR_PROB_BASE,
 		   1/REG_BR_PROB_BASE, 0.5, BB_FREQ_MAX.  */
diff --git a/gcc/profile.c b/gcc/profile.c
index 86a7094..a178a1b 100644
--- a/gcc/profile.c
+++ b/gcc/profile.c
@@ -55,7 +55,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "flags.h"
 #include "regs.h"
 #include "symtab.h"
-#include "expr.h"
 #include "hashtab.h"
 #include "hash-set.h"
 #include "vec.h"
@@ -63,6 +62,23 @@ along with GCC; see the file COPYING3.  If not see
 #include "hard-reg-set.h"
 #include "input.h"
 #include "function.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "alias.h"
+#include "wide-int.h"
+#include "inchash.h"
+#include "tree.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
+#include "expr.h"
 #include "predict.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -71,9 +87,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "diagnostic-core.h"
 #include "coverage.h"
 #include "value-prof.h"
-#include "symtab.h"
-#include "inchash.h"
-#include "tree.h"
 #include "fold-const.h"
 #include "tree-ssa-alias.h"
 #include "internal-fn.h"
diff --git a/gcc/recog.c b/gcc/recog.c
index cf7f48d..7b5ca8b 100644
--- a/gcc/recog.c
+++ b/gcc/recog.c
@@ -40,10 +40,21 @@ along with GCC; see the file COPYING3.  If not see
 #include "recog.h"
 #include "regs.h"
 #include "addresses.h"
-#include "expr.h"
-#include "input.h"
+#include "hashtab.h"
 #include "function.h"
+#include "rtl.h"
 #include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
+#include "expr.h"
 #include "predict.h"
 #include "dominance.h"
 #include "cfg.h"
diff --git a/gcc/ree.c b/gcc/ree.c
index bf872a2..56e4f52 100644
--- a/gcc/ree.c
+++ b/gcc/ree.c
@@ -235,14 +235,23 @@ along with GCC; see the file COPYING3.  If not see
 #include "regs.h"
 #include "hard-reg-set.h"
 #include "predict.h"
-#include "machmode.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
 #include "cfgrtl.h"
 #include "basic-block.h"
 #include "insn-config.h"
+#include "hashtab.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "insn-attr.h"
 #include "recog.h"
diff --git a/gcc/reginfo.c b/gcc/reginfo.c
index 407d61b..2a18fb8 100644
--- a/gcc/reginfo.c
+++ b/gcc/reginfo.c
@@ -41,18 +41,28 @@ along with GCC; see the file COPYING3.  If not see
 #include "inchash.h"
 #include "tree.h"
 #include "rtl.h"
+#include "hashtab.h"
+#include "function.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tm_p.h"
-#include "flags.h"
 #include "predict.h"
-#include "input.h"
-#include "function.h"
 #include "dominance.h"
 #include "cfg.h"
 #include "basic-block.h"
 #include "regs.h"
 #include "addresses.h"
-#include "insn-config.h"
 #include "recog.h"
 #include "reload.h"
 #include "diagnostic-core.h"
diff --git a/gcc/reload.c b/gcc/reload.c
index b7b91cd..70b86a9 100644
--- a/gcc/reload.c
+++ b/gcc/reload.c
@@ -96,6 +96,30 @@ a register with any other reload.  */
 #include "tm_p.h"
 #include "insn-config.h"
 #include "symtab.h"
+#include "hashtab.h"
+#include "hash-set.h"
+#include "vec.h"
+#include "machmode.h"
+#include "hard-reg-set.h"
+#include "input.h"
+#include "function.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "alias.h"
+#include "wide-int.h"
+#include "inchash.h"
+#include "tree.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
@@ -108,14 +132,6 @@ a register with any other reload.  */
 #include "reload.h"
 #include "regs.h"
 #include "addresses.h"
-#include "hard-reg-set.h"
-#include "flags.h"
-#include "hashtab.h"
-#include "hash-set.h"
-#include "vec.h"
-#include "machmode.h"
-#include "input.h"
-#include "function.h"
 #include "params.h"
 #include "target.h"
 #include "ira.h"
diff --git a/gcc/reload1.c b/gcc/reload1.c
index b1af1a4..5a01045 100644
--- a/gcc/reload1.c
+++ b/gcc/reload1.c
@@ -36,6 +36,22 @@ along with GCC; see the file COPYING3.  If not see
 #include "input.h"
 #include "function.h"
 #include "symtab.h"
+#include "rtl.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "alias.h"
+#include "wide-int.h"
+#include "inchash.h"
+#include "tree.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
@@ -51,13 +67,8 @@ along with GCC; see the file COPYING3.  If not see
 #include "reload.h"
 #include "recog.h"
 #include "except.h"
-#include "symtab.h"
-#include "wide-int.h"
-#include "inchash.h"
-#include "tree.h"
 #include "ira.h"
 #include "target.h"
-#include "emit-rtl.h"
 #include "dumpfile.h"
 #include "rtl-iter.h"
 
diff --git a/gcc/reorg.c b/gcc/reorg.c
index 043ba4b..8f0e063 100644
--- a/gcc/reorg.c
+++ b/gcc/reorg.c
@@ -108,7 +108,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "rtl.h"
 #include "tm_p.h"
 #include "symtab.h"
-#include "expr.h"
 #include "hashtab.h"
 #include "hash-set.h"
 #include "vec.h"
@@ -116,7 +115,24 @@ along with GCC; see the file COPYING3.  If not see
 #include "hard-reg-set.h"
 #include "input.h"
 #include "function.h"
+#include "flags.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "alias.h"
+#include "wide-int.h"
+#include "inchash.h"
+#include "tree.h"
 #include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
+#include "expr.h"
 #include "conditions.h"
 #include "predict.h"
 #include "dominance.h"
@@ -124,7 +140,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "basic-block.h"
 #include "regs.h"
 #include "recog.h"
-#include "flags.h"
 #include "obstack.h"
 #include "insn-attr.h"
 #include "resource.h"
@@ -132,7 +147,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "params.h"
 #include "target.h"
 #include "tree-pass.h"
-#include "emit-rtl.h"
 
 #ifdef DELAY_SLOTS
 
diff --git a/gcc/rtl-chkp.c b/gcc/rtl-chkp.c
index 524b3ba..5f12843 100644
--- a/gcc/rtl-chkp.c
+++ b/gcc/rtl-chkp.c
@@ -22,23 +22,39 @@ along with GCC; see the file COPYING3.  If not see
 #include "system.h"
 #include "coretypes.h"
 #include "symtab.h"
-#include "expr.h"
-#include "target.h"
-#include "tree-ssa-alias.h"
-#include "internal-fn.h"
-#include "is-a.h"
-#include "predict.h"
-#include "basic-block.h"
+#include "hashtab.h"
 #include "hash-set.h"
-#include "machmode.h"
 #include "vec.h"
-#include "double-int.h"
+#include "machmode.h"
+#include "tm.h"
+#include "hard-reg-set.h"
 #include "input.h"
+#include "function.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
 #include "alias.h"
-#include "symtab.h"
 #include "wide-int.h"
 #include "inchash.h"
 #include "tree.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
+#include "expr.h"
+#include "target.h"
+#include "tree-ssa-alias.h"
+#include "internal-fn.h"
+#include "is-a.h"
+#include "predict.h"
+#include "basic-block.h"
 #include "fold-const.h"
 #include "gimple-expr.h"
 #include "gimple.h"
diff --git a/gcc/rtlhooks.c b/gcc/rtlhooks.c
index efb1513..48cb758 100644
--- a/gcc/rtlhooks.c
+++ b/gcc/rtlhooks.c
@@ -24,6 +24,30 @@ along with GCC; see the file COPYING3.  If not see
 #include "rtl.h"
 #include "rtlhooks-def.h"
 #include "symtab.h"
+#include "hashtab.h"
+#include "hash-set.h"
+#include "vec.h"
+#include "machmode.h"
+#include "hard-reg-set.h"
+#include "input.h"
+#include "function.h"
+#include "flags.h"
+#include "statistics.h"
+#include "double-int.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "alias.h"
+#include "wide-int.h"
+#include "inchash.h"
+#include "tree.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "recog.h"
 \f
diff --git a/gcc/shrink-wrap.c b/gcc/shrink-wrap.c
index 0c7a64c..3928f3d 100644
--- a/gcc/shrink-wrap.c
+++ b/gcc/shrink-wrap.c
@@ -41,14 +41,24 @@ along with GCC; see the file COPYING3.  If not see
 #include "flags.h"
 #include "except.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
 #include "libfuncs.h"
 #include "regs.h"
-#include "insn-config.h"
 #include "recog.h"
 #include "output.h"
 #include "tm_p.h"
diff --git a/gcc/simplify-rtx.c b/gcc/simplify-rtx.c
index b1dbc25..4ee63d2 100644
--- a/gcc/simplify-rtx.c
+++ b/gcc/simplify-rtx.c
@@ -41,10 +41,19 @@ along with GCC; see the file COPYING3.  If not see
 #include "flags.h"
 #include "insn-config.h"
 #include "recog.h"
-#include "input.h"
 #include "function.h"
 #include "insn-codes.h"
 #include "optabs.h"
+#include "hashtab.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "diagnostic-core.h"
 #include "ggc.h"
diff --git a/gcc/stack-ptr-mod.c b/gcc/stack-ptr-mod.c
index 4f74ed3..5db8fc0 100644
--- a/gcc/stack-ptr-mod.c
+++ b/gcc/stack-ptr-mod.c
@@ -33,16 +33,27 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree.h"
 #include "rtl.h"
 #include "regs.h"
+#include "hashtab.h"
+#include "hard-reg-set.h"
+#include "function.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tree-pass.h"
 #include "predict.h"
-#include "hard-reg-set.h"
-#include "input.h"
-#include "function.h"
 #include "dominance.h"
 #include "cfg.h"
 #include "basic-block.h"
-#include "flags.h"
 #include "output.h"
 #include "df.h"
 
diff --git a/gcc/stmt.c b/gcc/stmt.c
index 845c789..d1333ad 100644
--- a/gcc/stmt.c
+++ b/gcc/stmt.c
@@ -45,9 +45,18 @@ along with GCC; see the file COPYING3.  If not see
 #include "tm_p.h"
 #include "flags.h"
 #include "except.h"
-#include "input.h"
 #include "function.h"
 #include "insn-config.h"
+#include "hashtab.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "libfuncs.h"
 #include "recog.h"
diff --git a/gcc/stmt.h b/gcc/stmt.h
index 312361f..620b0f1 100644
--- a/gcc/stmt.h
+++ b/gcc/stmt.h
@@ -31,4 +31,18 @@ extern tree resolve_asm_operand_names (tree, tree, tree, tree);
 extern tree tree_overlaps_hard_reg_set (tree, HARD_REG_SET *);
 #endif
 
+/* Return the CODE_LABEL rtx for a LABEL_DECL, creating it if necessary.  */
+extern rtx label_rtx (tree);
+
+/* As label_rtx, but additionally the label is placed on the forced label
+   list of its containing function (i.e. it is treated as reachable even
+   if how is not obvious).  */
+extern rtx force_label_rtx (tree);
+
+/* Expand a GIMPLE_SWITCH statement.  */
+extern void expand_case (gswitch *);
+
+/* Like expand_case but special-case for SJLJ exception dispatching.  */
+extern void expand_sjlj_dispatch_table (rtx, vec<tree> );
+
 #endif  // GCC_STMT_H
diff --git a/gcc/stor-layout.c b/gcc/stor-layout.c
index 8bcee59..273a12b 100644
--- a/gcc/stor-layout.c
+++ b/gcc/stor-layout.c
@@ -41,8 +41,18 @@ along with GCC; see the file COPYING3.  If not see
 #include "tm_p.h"
 #include "flags.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
+#include "hashtab.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "diagnostic-core.h"
 #include "target.h"
diff --git a/gcc/store-motion.c b/gcc/store-motion.c
index 821d756..530766f 100644
--- a/gcc/store-motion.c
+++ b/gcc/store-motion.c
@@ -42,7 +42,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "insn-config.h"
 #include "recog.h"
 #include "predict.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -51,6 +50,17 @@ along with GCC; see the file COPYING3.  If not see
 #include "lcm.h"
 #include "cfgcleanup.h"
 #include "basic-block.h"
+#include "hashtab.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "except.h"
 #include "ggc.h"
diff --git a/gcc/target-globals.c b/gcc/target-globals.c
index acd23b9..6983b5c 100644
--- a/gcc/target-globals.c
+++ b/gcc/target-globals.c
@@ -41,6 +41,17 @@ along with GCC; see the file COPYING3.  If not see
 #include "hard-reg-set.h"
 #include "reload.h"
 #include "expmed.h"
+#include "hashtab.h"
+#include "function.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
diff --git a/gcc/targhooks.c b/gcc/targhooks.c
index 9b1657f..0c14103 100644
--- a/gcc/targhooks.c
+++ b/gcc/targhooks.c
@@ -53,7 +53,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "machmode.h"
 #include "rtl.h"
 #include "hash-set.h"
-#include "machmode.h"
 #include "vec.h"
 #include "double-int.h"
 #include "input.h"
@@ -65,12 +64,23 @@ along with GCC; see the file COPYING3.  If not see
 #include "fold-const.h"
 #include "stor-layout.h"
 #include "varasm.h"
+#include "hashtab.h"
+#include "hard-reg-set.h"
+#include "function.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "output.h"
 #include "diagnostic-core.h"
-#include "hard-reg-set.h"
-#include "input.h"
-#include "function.h"
 #include "target.h"
 #include "tm_p.h"
 #include "target-def.h"
diff --git a/gcc/toplev.c b/gcc/toplev.c
index 76c41c3..7bf177f 100644
--- a/gcc/toplev.c
+++ b/gcc/toplev.c
@@ -32,7 +32,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "machmode.h"
 #include "vec.h"
 #include "double-int.h"
-#include "input.h"
 #include "alias.h"
 #include "symtab.h"
 #include "wide-int.h"
@@ -55,6 +54,16 @@ along with GCC; see the file COPYING3.  If not see
 #include "except.h"
 #include "function.h"
 #include "toplev.h"
+#include "hashtab.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "intl.h"
 #include "regs.h"
diff --git a/gcc/tree-affine.c b/gcc/tree-affine.c
index 6ba3576..a8055d6 100644
--- a/gcc/tree-affine.c
+++ b/gcc/tree-affine.c
@@ -32,14 +32,27 @@ along with GCC; see the file COPYING3.  If not see
 #include "inchash.h"
 #include "tree.h"
 #include "fold-const.h"
+#include "hashtab.h"
+#include "tm.h"
+#include "hard-reg-set.h"
+#include "function.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tree-pretty-print.h"
 #include "tree-affine.h"
 #include "predict.h"
-#include "tm.h"
-#include "hard-reg-set.h"
-#include "input.h"
-#include "function.h"
 #include "basic-block.h"
 #include "tree-ssa-alias.h"
 #include "internal-fn.h"
@@ -47,7 +60,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "is-a.h"
 #include "gimple.h"
 #include "gimplify.h"
-#include "flags.h"
 #include "dumpfile.h"
 #include "cfgexpand.h"
 #include "wide-int-print.h"
diff --git a/gcc/tree-cfg.c b/gcc/tree-cfg.c
index 38e5e7d..006bc08 100644
--- a/gcc/tree-cfg.c
+++ b/gcc/tree-cfg.c
@@ -41,7 +41,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "tm_p.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -71,6 +70,19 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-ssa-loop-manip.h"
 #include "tree-ssa-loop-niter.h"
 #include "tree-into-ssa.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tree-dfa.h"
 #include "tree-ssa.h"
@@ -86,7 +98,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-ssa-live.h"
 #include "omp-low.h"
 #include "tree-cfgcleanup.h"
-#include "wide-int.h"
 #include "wide-int-print.h"
 
 /* This file contains functions for building the Control Flow Graph (CFG)
diff --git a/gcc/tree-cfgcleanup.c b/gcc/tree-cfgcleanup.c
index d712b30..5c5c7ba 100644
--- a/gcc/tree-cfgcleanup.c
+++ b/gcc/tree-cfgcleanup.c
@@ -35,7 +35,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "tm_p.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -60,6 +59,19 @@ along with GCC; see the file COPYING3.  If not see
 #include "stringpool.h"
 #include "tree-ssanames.h"
 #include "tree-ssa-loop-manip.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tree-dfa.h"
 #include "tree-ssa.h"
diff --git a/gcc/tree-chkp-opt.c b/gcc/tree-chkp-opt.c
index aed2c80..3fa2380 100644
--- a/gcc/tree-chkp-opt.c
+++ b/gcc/tree-chkp-opt.c
@@ -58,6 +58,23 @@ along with GCC; see the file COPYING3.  If not see
 #include "gimple-iterator.h"
 #include "gimplify.h"
 #include "gimplify-me.h"
+#include "hashtab.h"
+#include "tm.h"
+#include "hard-reg-set.h"
+#include "function.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tree-chkp.h"
 #include "ipa-chkp.h"
diff --git a/gcc/tree-chkp.c b/gcc/tree-chkp.c
index c606040..45ac11e 100644
--- a/gcc/tree-chkp.c
+++ b/gcc/tree-chkp.c
@@ -65,6 +65,22 @@ along with GCC; see the file COPYING3.  If not see
 #include "gimplify.h"
 #include "gimplify-me.h"
 #include "print-tree.h"
+#include "hashtab.h"
+#include "tm.h"
+#include "hard-reg-set.h"
+#include "function.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tree-ssa-propagate.h"
 #include "gimple-fold.h"
@@ -77,8 +93,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "cgraph.h"
 #include "ipa-chkp.h"
 #include "params.h"
-#include "ipa-chkp.h"
-#include "params.h"
 
 /*  Pointer Bounds Checker instruments code with memory checks to find
     out-of-bounds memory accesses.  Checks are performed by computing
diff --git a/gcc/tree-complex.c b/gcc/tree-complex.c
index 69559b7..c5b8688 100644
--- a/gcc/tree-complex.c
+++ b/gcc/tree-complex.c
@@ -37,7 +37,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "flags.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -57,6 +56,18 @@ along with GCC; see the file COPYING3.  If not see
 #include "ssa-iterators.h"
 #include "stringpool.h"
 #include "tree-ssanames.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "statistics.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tree-dfa.h"
 #include "tree-ssa.h"
diff --git a/gcc/tree-data-ref.c b/gcc/tree-data-ref.c
index 5c42e57..12a97ec 100644
--- a/gcc/tree-data-ref.c
+++ b/gcc/tree-data-ref.c
@@ -88,13 +88,26 @@ along with GCC; see the file COPYING3.  If not see
 #include "inchash.h"
 #include "tree.h"
 #include "fold-const.h"
-#include "expr.h"
-#include "gimple-pretty-print.h"
-#include "predict.h"
+#include "hashtab.h"
 #include "tm.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
+#include "expr.h"
+#include "gimple-pretty-print.h"
+#include "predict.h"
 #include "dominance.h"
 #include "cfg.h"
 #include "basic-block.h"
diff --git a/gcc/tree-dfa.c b/gcc/tree-dfa.c
index adf5ad3..8ee46dc 100644
--- a/gcc/tree-dfa.c
+++ b/gcc/tree-dfa.c
@@ -38,7 +38,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "tm_p.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -58,12 +57,23 @@ along with GCC; see the file COPYING3.  If not see
 #include "ssa-iterators.h"
 #include "stringpool.h"
 #include "tree-ssanames.h"
+#include "rtl.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tree-dfa.h"
 #include "tree-inline.h"
 #include "tree-pass.h"
 #include "params.h"
-#include "wide-int.h"
 
 /* Build and maintain data flow information for trees.  */
 
diff --git a/gcc/tree-eh.c b/gcc/tree-eh.c
index e9bf3f1..159fa2b 100644
--- a/gcc/tree-eh.c
+++ b/gcc/tree-eh.c
@@ -33,12 +33,23 @@ along with GCC; see the file COPYING3.  If not see
 #include "inchash.h"
 #include "tree.h"
 #include "fold-const.h"
-#include "expr.h"
-#include "calls.h"
-#include "flags.h"
+#include "hashtab.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
+#include "expr.h"
 #include "except.h"
 #include "predict.h"
 #include "dominance.h"
diff --git a/gcc/tree-if-conv.c b/gcc/tree-if-conv.c
index 96b86a8..cb535bc 100644
--- a/gcc/tree-if-conv.c
+++ b/gcc/tree-if-conv.c
@@ -99,7 +99,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "flags.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -130,6 +129,19 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-ssa-address.h"
 #include "tree-pass.h"
 #include "dbgcnt.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
diff --git a/gcc/tree-inline.c b/gcc/tree-inline.c
index 4a47fd2..2b8971c 100644
--- a/gcc/tree-inline.c
+++ b/gcc/tree-inline.c
@@ -39,14 +39,10 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-inline.h"
 #include "flags.h"
 #include "params.h"
-#include "input.h"
 #include "insn-config.h"
 #include "hashtab.h"
 #include "langhooks.h"
 #include "predict.h"
-#include "vec.h"
-#include "hash-set.h"
-#include "machmode.h"
 #include "hard-reg-set.h"
 #include "function.h"
 #include "dominance.h"
@@ -73,6 +69,16 @@ along with GCC; see the file COPYING3.  If not see
 #include "stringpool.h"
 #include "tree-ssanames.h"
 #include "tree-into-ssa.h"
+#include "rtl.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tree-dfa.h"
 #include "tree-ssa.h"
diff --git a/gcc/tree-into-ssa.c b/gcc/tree-into-ssa.c
index a7bff1e..2589628 100644
--- a/gcc/tree-into-ssa.c
+++ b/gcc/tree-into-ssa.c
@@ -38,7 +38,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "langhooks.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -59,6 +58,19 @@ along with GCC; see the file COPYING3.  If not see
 #include "stringpool.h"
 #include "tree-ssanames.h"
 #include "tree-into-ssa.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tree-dfa.h"
 #include "tree-ssa.h"
@@ -68,7 +80,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "domwalk.h"
 #include "params.h"
 #include "diagnostic-core.h"
-#include "tree-into-ssa.h"
 
 #define PERCENT(x,y) ((float)(x) * 100.0 / (float)(y))
 
diff --git a/gcc/tree-nested.c b/gcc/tree-nested.c
index 08b9cea..526e617 100644
--- a/gcc/tree-nested.c
+++ b/gcc/tree-nested.c
@@ -36,7 +36,6 @@
 #include "stor-layout.h"
 #include "tm_p.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "tree-dump.h"
 #include "tree-inline.h"
@@ -57,6 +56,20 @@
 #include "ipa-ref.h"
 #include "cgraph.h"
 #include "tree-cfg.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"	/* FIXME: For STACK_SAVEAREA_MODE and SAVE_NONLOCAL.  */
 #include "langhooks.h"
 #include "gimple-low.h"
diff --git a/gcc/tree-outof-ssa.c b/gcc/tree-outof-ssa.c
index af397ad..e6310cd 100644
--- a/gcc/tree-outof-ssa.c
+++ b/gcc/tree-outof-ssa.c
@@ -36,7 +36,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "stor-layout.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -68,6 +67,20 @@ along with GCC; see the file COPYING3.  If not see
 
 /* FIXME: A lot of code here deals with expanding to RTL.  All that code
    should be in cfgexpand.c.  */
+#include "hashtab.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 
 /* Return TRUE if expression STMT is suitable for replacement.  */
diff --git a/gcc/tree-predcom.c b/gcc/tree-predcom.c
index 0e4d768..ac32c84 100644
--- a/gcc/tree-predcom.c
+++ b/gcc/tree-predcom.c
@@ -203,7 +203,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "cfgloop.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -227,6 +226,20 @@ 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 "hashtab.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tree-dfa.h"
 #include "tree-ssa.h"
diff --git a/gcc/tree-pretty-print.c b/gcc/tree-pretty-print.c
index 73a61f1..5773eba 100644
--- a/gcc/tree-pretty-print.c
+++ b/gcc/tree-pretty-print.c
@@ -33,6 +33,22 @@ along with GCC; see the file COPYING3.  If not see
 #include "inchash.h"
 #include "tree.h"
 #include "stor-layout.h"
+#include "hashtab.h"
+#include "hard-reg-set.h"
+#include "function.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tree-pretty-print.h"
 #include "gimple-expr.h"
@@ -40,9 +56,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "hash-map.h"
 #include "is-a.h"
 #include "plugin-api.h"
-#include "hard-reg-set.h"
-#include "input.h"
-#include "function.h"
 #include "ipa-ref.h"
 #include "cgraph.h"
 #include "langhooks.h"
diff --git a/gcc/tree-scalar-evolution.c b/gcc/tree-scalar-evolution.c
index d4b246e..d89f631 100644
--- a/gcc/tree-scalar-evolution.c
+++ b/gcc/tree-scalar-evolution.c
@@ -268,13 +268,26 @@ along with GCC; see the file COPYING3.  If not see
 #include "inchash.h"
 #include "tree.h"
 #include "fold-const.h"
-#include "expr.h"
-#include "gimple-pretty-print.h"
-#include "predict.h"
+#include "hashtab.h"
 #include "tm.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
+#include "expr.h"
+#include "gimple-pretty-print.h"
+#include "predict.h"
 #include "dominance.h"
 #include "cfg.h"
 #include "basic-block.h"
@@ -304,7 +317,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "params.h"
 #include "tree-ssa-propagate.h"
 #include "gimple-fold.h"
-#include "gimplify-me.h"
 
 static tree analyze_scalar_evolution_1 (struct loop *, tree, tree);
 static tree analyze_scalar_evolution_for_address_of (struct loop *loop,
diff --git a/gcc/tree-sra.c b/gcc/tree-sra.c
index f560fe0..51a1b1a 100644
--- a/gcc/tree-sra.c
+++ b/gcc/tree-sra.c
@@ -91,7 +91,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "fold-const.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -114,6 +113,20 @@ along with GCC; see the file COPYING3.  If not see
 #include "ssa-iterators.h"
 #include "stringpool.h"
 #include "tree-ssanames.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tree-dfa.h"
 #include "tree-ssa.h"
@@ -123,10 +136,8 @@ along with GCC; see the file COPYING3.  If not see
 #include "cgraph.h"
 #include "symbol-summary.h"
 #include "ipa-prop.h"
-#include "statistics.h"
 #include "params.h"
 #include "target.h"
-#include "flags.h"
 #include "dbgcnt.h"
 #include "tree-inline.h"
 #include "gimple-pretty-print.h"
diff --git a/gcc/tree-ssa-address.c b/gcc/tree-ssa-address.c
index 444c3a4..d6afa2b 100644
--- a/gcc/tree-ssa-address.c
+++ b/gcc/tree-ssa-address.c
@@ -39,7 +39,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "tm_p.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "basic-block.h"
 #include "tree-pretty-print.h"
@@ -53,20 +52,29 @@ along with GCC; see the file COPYING3.  If not see
 #include "stringpool.h"
 #include "tree-ssanames.h"
 #include "tree-ssa-loop-ivopts.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tree-dfa.h"
 #include "dumpfile.h"
-#include "flags.h"
 #include "tree-inline.h"
 #include "tree-affine.h"
 
 /* FIXME: We compute address costs using RTL.  */
-#include "insn-config.h"
-#include "rtl.h"
 #include "recog.h"
-#include "expr.h"
 #include "target.h"
-#include "expmed.h"
 #include "tree-ssa-address.h"
 
 /* TODO -- handling of symbols (according to Richard Hendersons
diff --git a/gcc/tree-ssa-alias.c b/gcc/tree-ssa-alias.c
index 84938ec..31db17a 100644
--- a/gcc/tree-ssa-alias.c
+++ b/gcc/tree-ssa-alias.c
@@ -38,7 +38,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "predict.h"
 
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "basic-block.h"
@@ -56,12 +55,24 @@ along with GCC; see the file COPYING3.  If not see
 #include "gimple-ssa.h"
 #include "stringpool.h"
 #include "tree-ssanames.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tree-dfa.h"
 #include "tree-inline.h"
 #include "params.h"
 #include "alloc-pool.h"
-#include "tree-ssa-alias.h"
 #include "bitmap.h"
 #include "hash-map.h"
 #include "plugin-api.h"
diff --git a/gcc/tree-ssa-copyrename.c b/gcc/tree-ssa-copyrename.c
index a5ea091..f3cb56e 100644
--- a/gcc/tree-ssa-copyrename.c
+++ b/gcc/tree-ssa-copyrename.c
@@ -35,7 +35,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "fold-const.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -52,6 +51,19 @@ along with GCC; see the file COPYING3.  If not see
 #include "gimple-ssa.h"
 #include "stringpool.h"
 #include "tree-ssanames.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tree-dfa.h"
 #include "tree-inline.h"
diff --git a/gcc/tree-ssa-dce.c b/gcc/tree-ssa-dce.c
index a502293..c9cb0e4 100644
--- a/gcc/tree-ssa-dce.c
+++ b/gcc/tree-ssa-dce.c
@@ -61,7 +61,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "gimple-pretty-print.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -83,10 +82,22 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-ssanames.h"
 #include "tree-ssa-loop-niter.h"
 #include "tree-into-ssa.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tree-dfa.h"
 #include "tree-pass.h"
-#include "flags.h"
 #include "cfgloop.h"
 #include "tree-scalar-evolution.h"
 #include "tree-chkp.h"
diff --git a/gcc/tree-ssa-dse.c b/gcc/tree-ssa-dse.c
index 514d647..ce4e60d 100644
--- a/gcc/tree-ssa-dse.c
+++ b/gcc/tree-ssa-dse.c
@@ -35,7 +35,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "tm_p.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -54,11 +53,24 @@ along with GCC; see the file COPYING3.  If not see
 #include "ssa-iterators.h"
 #include "stringpool.h"
 #include "tree-ssanames.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tree-dfa.h"
 #include "tree-pass.h"
 #include "domwalk.h"
-#include "flags.h"
 #include "langhooks.h"
 #include "tree-cfgcleanup.h"
 
diff --git a/gcc/tree-ssa-forwprop.c b/gcc/tree-ssa-forwprop.c
index aa82ec0..a4140e5 100644
--- a/gcc/tree-ssa-forwprop.c
+++ b/gcc/tree-ssa-forwprop.c
@@ -36,7 +36,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "tm_p.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -58,13 +57,25 @@ along with GCC; see the file COPYING3.  If not see
 #include "ssa-iterators.h"
 #include "stringpool.h"
 #include "tree-ssanames.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tree-dfa.h"
 #include "tree-pass.h"
 #include "langhooks.h"
-#include "flags.h"
 #include "diagnostic.h"
-#include "expr.h"
 #include "cfgloop.h"
 #include "insn-codes.h"
 #include "optabs.h"
diff --git a/gcc/tree-ssa-live.c b/gcc/tree-ssa-live.c
index 6a2b566..cc164fb 100644
--- a/gcc/tree-ssa-live.c
+++ b/gcc/tree-ssa-live.c
@@ -39,7 +39,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "sbitmap.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -55,6 +54,20 @@ along with GCC; see the file COPYING3.  If not see
 #include "ssa-iterators.h"
 #include "stringpool.h"
 #include "tree-ssanames.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tree-dfa.h"
 #include "timevar.h"
@@ -62,7 +75,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-ssa-live.h"
 #include "diagnostic-core.h"
 #include "debug.h"
-#include "flags.h"
 #include "tree-ssa.h"
 
 #ifdef ENABLE_CHECKING
diff --git a/gcc/tree-ssa-loop-ivopts.c b/gcc/tree-ssa-loop-ivopts.c
index cb7eac8..d50adb0 100644
--- a/gcc/tree-ssa-loop-ivopts.c
+++ b/gcc/tree-ssa-loop-ivopts.c
@@ -80,7 +80,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "tm_p.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -110,29 +109,39 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-ssa-loop-manip.h"
 #include "tree-ssa-loop-niter.h"
 #include "tree-ssa-loop.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tree-dfa.h"
 #include "tree-ssa.h"
 #include "cfgloop.h"
 #include "tree-pass.h"
-#include "insn-config.h"
 #include "tree-chrec.h"
 #include "tree-scalar-evolution.h"
-#include "cfgloop.h"
 #include "params.h"
 #include "langhooks.h"
 #include "tree-affine.h"
 #include "target.h"
 #include "tree-inline.h"
 #include "tree-ssa-propagate.h"
-#include "expmed.h"
 #include "tree-ssa-address.h"
 #include "builtins.h"
 
 /* FIXME: Expressions are expanded to RTL in this pass to determine the
    cost of different addressing modes.  This should be moved to a TBD
    interface between the GIMPLE and RTL worlds.  */
-#include "expr.h"
 #include "recog.h"
 
 /* The infinite cost.  */
diff --git a/gcc/tree-ssa-loop-niter.c b/gcc/tree-ssa-loop-niter.c
index 7b0313a..919f5c0 100644
--- a/gcc/tree-ssa-loop-niter.c
+++ b/gcc/tree-ssa-loop-niter.c
@@ -33,12 +33,24 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree.h"
 #include "fold-const.h"
 #include "calls.h"
+#include "hashtab.h"
+#include "hard-reg-set.h"
+#include "function.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tm_p.h"
 #include "predict.h"
-#include "hard-reg-set.h"
-#include "input.h"
-#include "function.h"
 #include "dominance.h"
 #include "cfg.h"
 #include "basic-block.h"
@@ -64,7 +76,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-scalar-evolution.h"
 #include "tree-data-ref.h"
 #include "params.h"
-#include "flags.h"
 #include "diagnostic-core.h"
 #include "tree-inline.h"
 #include "tree-pass.h"
diff --git a/gcc/tree-ssa-loop-prefetch.c b/gcc/tree-ssa-loop-prefetch.c
index ae31b9e..10e156e 100644
--- a/gcc/tree-ssa-loop-prefetch.c
+++ b/gcc/tree-ssa-loop-prefetch.c
@@ -36,7 +36,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "tm_p.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -70,6 +69,19 @@ along with GCC; see the file COPYING3.  If not see
 
 /* FIXME: Needed for optabs, but this should all be moved to a TBD interface
    between the GIMPLE and RTL worlds.  */
+#include "hashtab.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
diff --git a/gcc/tree-ssa-math-opts.c b/gcc/tree-ssa-math-opts.c
index 350731a..35e83f0 100644
--- a/gcc/tree-ssa-math-opts.c
+++ b/gcc/tree-ssa-math-opts.c
@@ -102,7 +102,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "fold-const.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -123,6 +122,19 @@ along with GCC; see the file COPYING3.  If not see
 #include "ssa-iterators.h"
 #include "stringpool.h"
 #include "tree-ssanames.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tree-dfa.h"
 #include "tree-ssa.h"
diff --git a/gcc/tree-ssa-phiopt.c b/gcc/tree-ssa-phiopt.c
index 209b4eb..bad546d 100644
--- a/gcc/tree-ssa-phiopt.c
+++ b/gcc/tree-ssa-phiopt.c
@@ -38,7 +38,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "tm_p.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -58,6 +57,19 @@ along with GCC; see the file COPYING3.  If not see
 #include "ssa-iterators.h"
 #include "stringpool.h"
 #include "tree-ssanames.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tree-dfa.h"
 #include "tree-pass.h"
@@ -66,8 +78,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "cfgloop.h"
 #include "tree-data-ref.h"
 #include "gimple-pretty-print.h"
-#include "insn-config.h"
-#include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
 #include "tree-scalar-evolution.h"
diff --git a/gcc/tree-ssa-pre.c b/gcc/tree-ssa-pre.c
index 497890f..3ef7510 100644
--- a/gcc/tree-ssa-pre.c
+++ b/gcc/tree-ssa-pre.c
@@ -36,7 +36,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "fold-const.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -44,7 +43,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "basic-block.h"
 #include "gimple-pretty-print.h"
 #include "tree-inline.h"
-#include "inchash.h"
 #include "hash-table.h"
 #include "tree-ssa-alias.h"
 #include "internal-fn.h"
@@ -64,6 +62,20 @@ 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 "hashtab.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tree-dfa.h"
 #include "tree-ssa.h"
@@ -71,7 +83,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "alloc-pool.h"
 #include "obstack.h"
 #include "tree-pass.h"
-#include "flags.h"
 #include "langhooks.h"
 #include "cfgloop.h"
 #include "tree-ssa-sccvn.h"
diff --git a/gcc/tree-ssa-reassoc.c b/gcc/tree-ssa-reassoc.c
index dab6a6f..9952222 100644
--- a/gcc/tree-ssa-reassoc.c
+++ b/gcc/tree-ssa-reassoc.c
@@ -39,7 +39,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "stor-layout.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -65,6 +64,19 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-ssanames.h"
 #include "tree-ssa-loop-niter.h"
 #include "tree-ssa-loop.h"
+#include "hashtab.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tree-dfa.h"
 #include "tree-ssa.h"
@@ -73,7 +85,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "alloc-pool.h"
 #include "langhooks.h"
 #include "cfgloop.h"
-#include "flags.h"
 #include "target.h"
 #include "params.h"
 #include "diagnostic-core.h"
diff --git a/gcc/tree-ssa-sccvn.c b/gcc/tree-ssa-sccvn.c
index 9aa1bc3..25c67d0 100644
--- a/gcc/tree-ssa-sccvn.c
+++ b/gcc/tree-ssa-sccvn.c
@@ -36,7 +36,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "stor-layout.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -47,7 +46,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "hash-table.h"
 #include "tree-ssa-alias.h"
 #include "internal-fn.h"
-#include "inchash.h"
 #include "gimple-fold.h"
 #include "tree-eh.h"
 #include "gimple-expr.h"
@@ -59,12 +57,25 @@ along with GCC; see the file COPYING3.  If not see
 #include "ssa-iterators.h"
 #include "stringpool.h"
 #include "tree-ssanames.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tree-dfa.h"
 #include "tree-ssa.h"
 #include "dumpfile.h"
 #include "alloc-pool.h"
-#include "flags.h"
 #include "cfgloop.h"
 #include "params.h"
 #include "tree-ssa-propagate.h"
diff --git a/gcc/tree-ssa-strlen.c b/gcc/tree-ssa-strlen.c
index 11b9c7d..34776a3 100644
--- a/gcc/tree-ssa-strlen.c
+++ b/gcc/tree-ssa-strlen.c
@@ -40,7 +40,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "predict.h"
 #include "tm.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -60,6 +59,20 @@ along with GCC; see the file COPYING3.  If not see
 #include "ssa-iterators.h"
 #include "stringpool.h"
 #include "tree-ssanames.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tree-dfa.h"
 #include "tree-pass.h"
@@ -68,7 +81,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-ssa-propagate.h"
 #include "gimple-pretty-print.h"
 #include "params.h"
-#include "expr.h"
 #include "plugin-api.h"
 #include "ipa-ref.h"
 #include "cgraph.h"
diff --git a/gcc/tree-ssa-structalias.c b/gcc/tree-ssa-structalias.c
index 30a493e..96d1ce3 100644
--- a/gcc/tree-ssa-structalias.c
+++ b/gcc/tree-ssa-structalias.c
@@ -61,6 +61,17 @@
 #include "stringpool.h"
 #include "tree-ssanames.h"
 #include "tree-into-ssa.h"
+#include "rtl.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
 #include "expr.h"
 #include "tree-dfa.h"
 #include "tree-inline.h"
@@ -69,7 +80,6 @@
 #include "alloc-pool.h"
 #include "splay-tree.h"
 #include "params.h"
-#include "alias.h"
 #include "tree-phinodes.h"
 #include "ssa-iterators.h"
 #include "tree-pretty-print.h"
diff --git a/gcc/tree-switch-conversion.c b/gcc/tree-switch-conversion.c
index 8ac1ea2..6b68a16 100644
--- a/gcc/tree-switch-conversion.c
+++ b/gcc/tree-switch-conversion.c
@@ -44,7 +44,6 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 #include "stor-layout.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -76,6 +75,18 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
 #include "langhooks.h"
 
 /* Need to include expr.h and optabs.h for lshift_cheap_p.  */
+#include "hashtab.h"
+#include "rtl.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
diff --git a/gcc/tree-tailcall.c b/gcc/tree-tailcall.c
index 4399bef..1d065fb 100644
--- a/gcc/tree-tailcall.c
+++ b/gcc/tree-tailcall.c
@@ -36,7 +36,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "tm_p.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -54,12 +53,25 @@ along with GCC; see the file COPYING3.  If not see
 #include "stringpool.h"
 #include "tree-ssanames.h"
 #include "tree-into-ssa.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tree-dfa.h"
 #include "gimple-pretty-print.h"
 #include "except.h"
 #include "tree-pass.h"
-#include "flags.h"
 #include "langhooks.h"
 #include "dbgcnt.h"
 #include "target.h"
diff --git a/gcc/tree-vect-data-refs.c b/gcc/tree-vect-data-refs.c
index 85e7c58..52d6a86 100644
--- a/gcc/tree-vect-data-refs.c
+++ b/gcc/tree-vect-data-refs.c
@@ -40,7 +40,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "target.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -63,7 +62,6 @@ 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 "dumpfile.h"
 #include "cfgloop.h"
 #include "tree-chrec.h"
 #include "tree-scalar-evolution.h"
@@ -74,11 +72,24 @@ along with GCC; see the file COPYING3.  If not see
 #include "ipa-ref.h"
 #include "cgraph.h"
 /* Need to include rtl.h, expr.h, etc. for optabs.  */
+#include "hashtab.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
 #include "builtins.h"
-#include "varasm.h"
 
 /* Return true if load- or store-lanes optab OPTAB is implemented for
    COUNT vectors of type VECTYPE.  NAME is the name of OPTAB.  */
diff --git a/gcc/tree-vect-generic.c b/gcc/tree-vect-generic.c
index e7e1622..8233c65 100644
--- a/gcc/tree-vect-generic.c
+++ b/gcc/tree-vect-generic.c
@@ -37,7 +37,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "langhooks.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -61,6 +60,19 @@ along with GCC; see the file COPYING3.  If not see
 #include "target.h"
 
 /* Need to include rtl.h, expr.h, etc. for optabs.  */
+#include "hashtab.h"
+#include "rtl.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
diff --git a/gcc/tree-vect-loop.c b/gcc/tree-vect-loop.c
index 670fe9d..ab503e7 100644
--- a/gcc/tree-vect-loop.c
+++ b/gcc/tree-vect-loop.c
@@ -38,7 +38,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "stor-layout.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -63,6 +62,20 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-ssa-loop-niter.h"
 #include "tree-pass.h"
 #include "cfgloop.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "recog.h"
 #include "insn-codes.h"
diff --git a/gcc/tree-vect-patterns.c b/gcc/tree-vect-patterns.c
index 814222b..d06d696 100644
--- a/gcc/tree-vect-patterns.c
+++ b/gcc/tree-vect-patterns.c
@@ -37,7 +37,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "target.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "basic-block.h"
@@ -56,6 +55,20 @@ along with GCC; see the file COPYING3.  If not see
 #include "stringpool.h"
 #include "tree-ssanames.h"
 #include "cfgloop.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
diff --git a/gcc/tree-vect-slp.c b/gcc/tree-vect-slp.c
index 2bdf179..9587651 100644
--- a/gcc/tree-vect-slp.c
+++ b/gcc/tree-vect-slp.c
@@ -39,7 +39,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "target.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "basic-block.h"
 #include "gimple-pretty-print.h"
@@ -56,6 +55,20 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-ssanames.h"
 #include "tree-pass.h"
 #include "cfgloop.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "recog.h"		/* FIXME: for insn_data */
 #include "insn-codes.h"
diff --git a/gcc/tree-vect-stmts.c b/gcc/tree-vect-stmts.c
index 1b79ace..7bdbebe 100644
--- a/gcc/tree-vect-stmts.c
+++ b/gcc/tree-vect-stmts.c
@@ -39,7 +39,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "target.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -64,13 +63,26 @@ along with GCC; see the file COPYING3.  If not see
 #include "cfgloop.h"
 #include "tree-ssa-loop.h"
 #include "tree-scalar-evolution.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "recog.h"		/* FIXME: for insn_data */
 #include "insn-codes.h"
 #include "optabs.h"
 #include "diagnostic-core.h"
 #include "tree-vectorizer.h"
-#include "dumpfile.h"
 #include "hash-map.h"
 #include "plugin-api.h"
 #include "ipa-ref.h"
diff --git a/gcc/tree-vrp.c b/gcc/tree-vrp.c
index f3e1d3d..df3cc87 100644
--- a/gcc/tree-vrp.c
+++ b/gcc/tree-vrp.c
@@ -38,7 +38,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "calls.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -74,11 +73,22 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-ssa-propagate.h"
 #include "tree-chrec.h"
 #include "tree-ssa-threadupdate.h"
+#include "hashtab.h"
+#include "rtl.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "insn-codes.h"
 #include "optabs.h"
 #include "tree-ssa-threadedge.h"
-#include "wide-int.h"
 
 
 
diff --git a/gcc/tree.c b/gcc/tree.c
index ccba957..f9818b5 100644
--- a/gcc/tree.c
+++ b/gcc/tree.c
@@ -50,11 +50,9 @@ along with GCC; see the file COPYING3.  If not see
 #include "tm_p.h"
 #include "hashtab.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "obstack.h"
 #include "toplev.h" /* get_random_seed */
-#include "inchash.h"
 #include "filenames.h"
 #include "output.h"
 #include "target.h"
@@ -82,6 +80,16 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-phinodes.h"
 #include "stringpool.h"
 #include "tree-ssanames.h"
+#include "rtl.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tree-dfa.h"
 #include "params.h"
@@ -93,7 +101,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "except.h"
 #include "debug.h"
 #include "intl.h"
-#include "wide-int.h"
 #include "builtins.h"
 
 /* Tree code classes.  */
diff --git a/gcc/tsan.c b/gcc/tsan.c
index 5d080b8..7c17262 100644
--- a/gcc/tsan.c
+++ b/gcc/tsan.c
@@ -34,13 +34,26 @@ along with GCC; see the file COPYING3.  If not see
 #include "inchash.h"
 #include "tree.h"
 #include "fold-const.h"
-#include "expr.h"
-#include "intl.h"
+#include "hashtab.h"
 #include "tm.h"
-#include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
+#include "rtl.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
+#include "expr.h"
+#include "intl.h"
+#include "predict.h"
 #include "dominance.h"
 #include "cfg.h"
 #include "basic-block.h"
@@ -64,7 +77,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-iterator.h"
 #include "langhooks.h"
 #include "output.h"
-#include "options.h"
 #include "target.h"
 #include "diagnostic.h"
 #include "tree-ssa-propagate.h"
diff --git a/gcc/ubsan.c b/gcc/ubsan.c
index f455549..7c94dab 100644
--- a/gcc/ubsan.c
+++ b/gcc/ubsan.c
@@ -45,7 +45,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "plugin-api.h"
 #include "tm.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "ipa-ref.h"
 #include "cgraph.h"
@@ -65,6 +64,19 @@ along with GCC; see the file COPYING3.  If not see
 #include "ubsan.h"
 #include "c-family/c-common.h"
 #include "rtl.h"
+#include "hashtab.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tree-ssanames.h"
 #include "asan.h"
diff --git a/gcc/value-prof.c b/gcc/value-prof.c
index 03d588a..1de8e1b 100644
--- a/gcc/value-prof.c
+++ b/gcc/value-prof.c
@@ -35,17 +35,26 @@ along with GCC; see the file COPYING3.  If not see
 #include "tree-nested.h"
 #include "calls.h"
 #include "rtl.h"
-#include "expr.h"
+#include "hashtab.h"
 #include "hard-reg-set.h"
-#include "predict.h"
-#include "input.h"
 #include "function.h"
+#include "flags.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "emit-rtl.h"
+#include "varasm.h"
+#include "stmt.h"
+#include "expr.h"
+#include "predict.h"
 #include "dominance.h"
 #include "cfg.h"
 #include "basic-block.h"
 #include "value-prof.h"
-#include "flags.h"
-#include "insn-config.h"
 #include "recog.h"
 #include "insn-codes.h"
 #include "optabs.h"
@@ -67,7 +76,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "diagnostic.h"
 #include "gimple-pretty-print.h"
 #include "coverage.h"
-#include "tree.h"
 #include "gcov-io.h"
 #include "timevar.h"
 #include "dumpfile.h"
@@ -78,7 +86,6 @@ along with GCC; see the file COPYING3.  If not see
 #include "cgraph.h"
 #include "data-streamer.h"
 #include "builtins.h"
-#include "tree-nested.h"
 #include "params.h"
 #include "tree-chkp.h"
 
diff --git a/gcc/var-tracking.c b/gcc/var-tracking.c
index 76fbf49..9ec5d8b 100644
--- a/gcc/var-tracking.c
+++ b/gcc/var-tracking.c
@@ -106,7 +106,6 @@
 #include "hash-table.h"
 #include "predict.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
 #include "dominance.h"
 #include "cfg.h"
@@ -120,6 +119,16 @@
 #include "sbitmap.h"
 #include "alloc-pool.h"
 #include "regs.h"
+#include "hashtab.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "tree-pass.h"
 #include "bitmap.h"
@@ -131,8 +140,6 @@
 #include "diagnostic.h"
 #include "tree-pretty-print.h"
 #include "recog.h"
-#include "tm_p.h"
-#include "alias.h"
 #include "rtl-iter.h"
 #include "fibonacci_heap.h"
 
diff --git a/gcc/varasm.c b/gcc/varasm.c
index 9847ca6..36c3633 100644
--- a/gcc/varasm.c
+++ b/gcc/varasm.c
@@ -46,8 +46,18 @@ along with GCC; see the file COPYING3.  If not see
 #include "varasm.h"
 #include "flags.h"
 #include "hard-reg-set.h"
-#include "input.h"
 #include "function.h"
+#include "hashtab.h"
+#include "statistics.h"
+#include "real.h"
+#include "fixed-value.h"
+#include "insn-config.h"
+#include "expmed.h"
+#include "dojump.h"
+#include "explow.h"
+#include "calls.h"
+#include "emit-rtl.h"
+#include "stmt.h"
 #include "expr.h"
 #include "regs.h"
 #include "output.h"
diff --git a/gcc/varasm.h b/gcc/varasm.h
index 22f2301..d2dafb7 100644
--- a/gcc/varasm.h
+++ b/gcc/varasm.h
@@ -68,4 +68,8 @@ extern bool constructor_static_from_elts_p (const_tree);
 
 extern void init_varasm_status (void);
 
+extern rtx assemble_static_space (unsigned HOST_WIDE_INT);
+
+extern rtx assemble_trampoline_template (void);
+
 #endif  // GCC_VARASM_H

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

* Re: flatten expr.h (version 2)
  2015-01-14 12:09               ` Prathamesh Kulkarni
@ 2015-01-14 12:17                 ` Richard Biener
  2015-01-14 12:23                   ` Prathamesh Kulkarni
  0 siblings, 1 reply; 17+ messages in thread
From: Richard Biener @ 2015-01-14 12:17 UTC (permalink / raw)
  To: Prathamesh Kulkarni; +Cc: Michael Collison, gcc Patches, Andrew MacLeod

On Wed, 14 Jan 2015, Prathamesh Kulkarni wrote:

> On 14 January 2015 at 11:16, Prathamesh Kulkarni
> <prathamesh.kulkarni@linaro.org> wrote:
> > On 14 January 2015 at 16:40, Prathamesh Kulkarni
> > <prathamesh.kulkarni@linaro.org> wrote:
> >> On 14 January 2015 at 14:34, Richard Biener <rguenther@suse.de> wrote:
> >>> On Wed, 14 Jan 2015, Prathamesh Kulkarni wrote:
> >>>
> >>>> On 13 January 2015 at 22:02, Prathamesh Kulkarni
> >>>> <prathamesh.kulkarni@linaro.org> wrote:
> >>>> > On 13 January 2015 at 16:06, Prathamesh Kulkarni
> >>>> > <prathamesh.kulkarni@linaro.org> wrote:
> >>>> >> On 13 January 2015 at 15:34, Richard Biener <rguenther@suse.de> wrote:
> >>>> >>> On Sun, 11 Jan 2015, Prathamesh Kulkarni wrote:
> >>>> >>>
> >>>> >>>> Hi,
> >>>> >>>> This is a revamped expr.h flattening flattening patch rebased on
> >>>> >>>> tree.h and tree-core.h flattening patch (r219402).
> >>>> >>>> It depends upon the following patch to get committed.
> >>>> >>>> https://gcc.gnu.org/ml/gcc-patches/2015-01/msg00565.html
> >>>> >>>>
> >>>> >>>> Changes:
> >>>> >>>> * Removed all includes except tree-core.h. Put includes required by
> >>>> >>>> expr.h in a comment.
> >>>> >>>> * Moved stmt.c, expmed.c prototypes to stmt.h, expmed.h respectively.
> >>>> >>>> * Adjusted generator programs: genemit.c, gengtype.c, genopinit.c, genoutput.c.
> >>>> >>>> * Did not put includes in gcc-plugin.h since expr.h cannot be included
> >>>> >>>> by plugins
> >>>> >>>> (putting them broke building a file in c-family/ since expr.h is not
> >>>> >>>> allowed in front-ends)
> >>>> >>>> * Affects java front-end (expr.h is allowed in java front-end).
> >>>> >>>>
> >>>> >>>> Bootstrapped and tested on x86_64-unknown-linux-gnu with languages:
> >>>> >>>> all,go,ada,jit
> >>>> >>>> Built on all targets in config-list.mk with languages: all, go.
> >>>> >>>> OK to commit ?
> >>>> >>>
> >>>> >>> diff --git a/gcc/expr.c b/gcc/expr.c
> >>>> >>> index fc22862..824541e 100644
> >>>> >>> --- a/gcc/expr.c
> >>>> >>> +++ b/gcc/expr.c
> >>>> >>> @@ -41,11 +41,17 @@ along with GCC; see the file COPYING3.  If not see
> >>>> >>>  #include "regs.h"
> >>>> >>>  #include "hard-reg-set.h"
> >>>> >>>  #include "except.h"
> >>>> >>> -#include "input.h"
> >>>> >>>  #include "function.h"
> >>>> >>>  #include "insn-config.h"
> >>>> >>>  #include "insn-attr.h"
> >>>> >>>  /* Include expr.h after insn-config.h so we get HAVE_conditional_move.
> >>>> >>> */
> >>>> >>> +#include "hashtab.h"
> >>>> >>> +#include "emit-rtl.h"
> >>>> >>> +#include "expmed.h"
> >>>> >>> +#include "stmt.h"
> >>>> >>> +#include "statistics.h"
> >>>> >>> +#include "real.h"
> >>>> >>> +#include "fixed-value.h"
> >>>> >>>  #include "expr.h"
> >>>> >>>
> >>>> >>> Please move the comment to the proper place
> >>>> >> ah, my flattening tool doesn't look at comments. I will move the
> >>>> >> comment before expr.h include, thanks.
> >>>> >>>
> >>>> >>> diff --git a/gcc/expr.h b/gcc/expr.h
> >>>> >>> index a7638b8..f1be8dc 100644
> >>>> >>> --- a/gcc/expr.h
> >>>> >>> +++ b/gcc/expr.h
> >>>> >>> @@ -20,7 +20,8 @@ along with GCC; see the file COPYING3.  If not see
> >>>> >>>  #ifndef GCC_EXPR_H
> >>>> >>>  #define GCC_EXPR_H
> >>>> >>>
> >>>> >>> -/* For inhibit_defer_pop */
> >>>> >>> +/* expr.h required includes */
> >>>> >>> +#if 0
> >>>> >>>  #include "hashtab.h"
> >>>> >>>  #include "hash-set.h"
> >>>> >>>  #include "vec.h"
> >>>> >>> @@ -29,15 +30,17 @@ along with GCC; see the file COPYING3.  If not see
> >>>> >>>  #include "hard-reg-set.h"
> >>>> >>>  #include "input.h"
> >>>> >>>  #include "function.h"
> >>>> >>> -/* For XEXP, GEN_INT, rtx_code */
> >>>> >>>  #include "rtl.h"
> >>>> >>> -/* For optimize_size */
> >>>> >>>  #include "flags.h"
> >>>> >>> -/* For tree_fits_[su]hwi_p, tree_to_[su]hwi, fold_convert, size_binop,
> >>>> >>> -   ssize_int, TREE_CODE, TYPE_SIZE, int_size_in_bytes,    */
> >>>> >>>  #include "tree-core.h"
> >>>> >>> -/* For GET_MODE_BITSIZE, word_mode */
> >>>> >>>  #include "insn-config.h"
> >>>> >>> +#include "alias.h"
> >>>> >>> +#include "emit-rtl.h"
> >>>> >>> +#include "expmed.h"
> >>>> >>> +#include "stmt.h"
> >>>> >>> +#endif
> >>>> >>>
> >>>> >>> Err, please remove the #if 0 section
> >>>> >> I kept it because if something breaks later (hopefully not!), it will
> >>>> >> be easier to fix.
> >>>> >> I will remove it.
> >>>> >>>
> >>>> >>> +
> >>>> >>> +#include "tree-core.h"
> >>>> >>>
> >>>> >>> Why?  The original comment says
> >>>> >>>
> >>>> >>> -/* For tree_fits_[su]hwi_p, tree_to_[su]hwi, fold_convert, size_binop,
> >>>> >>> -   ssize_int, TREE_CODE, TYPE_SIZE, int_size_in_bytes,    */
> >>>> >>>
> >>>> >>> but all those are declared in tree.h.  Which means the files including
> >>>> >>> expr.h must already include tree.h.
> >>>> >>>
> >>>> >>> If that's not the reason we need to include tree-core.h from expr.c
> >>>> >>> please add a comment explaining why.
> >>>> >> bt-load.c fails to compile because it includes expr.h but does not
> >>>> >> include tree.h
> >>>> >> I will place tree.h include in all files that include expr.h and rebuild.
> >>>> > This is not going to work, since tree.h is now flattened. Shall also
> >>>> > require including all headers required by
> >>>> > tree.h in all files that include expr.h. Could we retain tree-core.h
> >>>> > in expr.h for now ?
> >>>> > Or should I insert tree.h (along with tree.h required includes) in all
> >>>> > files that include expr.h ?
> >>>> I am including tree.h along with required includes in all files that
> >>>> include expr.h.
> >>>> This removes all includes from expr.h.
> >>>
> >>> Good.
> >> The attached patch, refactors expr.h so that it only exports
> >> prototypes from expr.c.
> >> I kept int_expr_size() in explow.c instead of moving it to expr.c because it
> >> called tree_expr_size() which is static in explow.c and has other callers too.
> > Not really. It only has two callers expr_size() and int_expr_size().
> > I will move definitions of int_expr_size(), tree_expr_size() and
> > expr_size() to expr.c
> > in followup patch.
> This version moves the definitions of int_expr_size(), tree_expr_size() and
> expr_size() to expr.c.
> Bootstrapped on x86_64-unknown-linux-gnu.
> Please let me know if there are any other changes required.
> If the patch is fine, I will restart building on all targets in config-list.mk

The new dojump.h and explow.h headers requires a copyright notice (see 
other headers for a boilerplate to copy)

Otherwise this looks ok.

Thanks,
Richard.


> Thanks,
> Prathamesh
> >>
> >> Changes:
> >> * New header files dojump.h, explow.h.
> >> * Modified generator programs: gengtype.c, genemit.c, genopinit.c,
> >> genoutput.c, config/tilepro/gen-mul-tables.cc.
> >> * Affects java front-end (java/builtins.c includes expr.h).
> >>
> >> Bootstrapped and tested on x86_64-unknown-linux-gnu with languages:
> >> all, go, ada, jit, obj-c++.
> >> Build in progress on all targets in config-list.mk with languages: all, go.
> >> Assuming the build goes fine, OK to commit ?
> >>
> >> Thanks,
> >> Prathamesh
> >>>
> >>> Richard.
> 

-- 
Richard Biener <rguenther@suse.de>
SUSE LINUX GmbH, GF: Felix Imendoerffer, Jane Smithard, Jennifer Guild,
Dilip Upmanyu, Graham Norton HRB 21284 (AG Nuernberg)

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

* Re: flatten expr.h (version 2)
  2015-01-14 12:17                 ` Richard Biener
@ 2015-01-14 12:23                   ` Prathamesh Kulkarni
  2015-01-14 12:24                     ` Richard Biener
  0 siblings, 1 reply; 17+ messages in thread
From: Prathamesh Kulkarni @ 2015-01-14 12:23 UTC (permalink / raw)
  To: Richard Biener; +Cc: Michael Collison, gcc Patches, Andrew MacLeod

On 14 January 2015 at 17:31, Richard Biener <rguenther@suse.de> wrote:
> On Wed, 14 Jan 2015, Prathamesh Kulkarni wrote:
>
>> On 14 January 2015 at 11:16, Prathamesh Kulkarni
>> <prathamesh.kulkarni@linaro.org> wrote:
>> > On 14 January 2015 at 16:40, Prathamesh Kulkarni
>> > <prathamesh.kulkarni@linaro.org> wrote:
>> >> On 14 January 2015 at 14:34, Richard Biener <rguenther@suse.de> wrote:
>> >>> On Wed, 14 Jan 2015, Prathamesh Kulkarni wrote:
>> >>>
>> >>>> On 13 January 2015 at 22:02, Prathamesh Kulkarni
>> >>>> <prathamesh.kulkarni@linaro.org> wrote:
>> >>>> > On 13 January 2015 at 16:06, Prathamesh Kulkarni
>> >>>> > <prathamesh.kulkarni@linaro.org> wrote:
>> >>>> >> On 13 January 2015 at 15:34, Richard Biener <rguenther@suse.de> wrote:
>> >>>> >>> On Sun, 11 Jan 2015, Prathamesh Kulkarni wrote:
>> >>>> >>>
>> >>>> >>>> Hi,
>> >>>> >>>> This is a revamped expr.h flattening flattening patch rebased on
>> >>>> >>>> tree.h and tree-core.h flattening patch (r219402).
>> >>>> >>>> It depends upon the following patch to get committed.
>> >>>> >>>> https://gcc.gnu.org/ml/gcc-patches/2015-01/msg00565.html
>> >>>> >>>>
>> >>>> >>>> Changes:
>> >>>> >>>> * Removed all includes except tree-core.h. Put includes required by
>> >>>> >>>> expr.h in a comment.
>> >>>> >>>> * Moved stmt.c, expmed.c prototypes to stmt.h, expmed.h respectively.
>> >>>> >>>> * Adjusted generator programs: genemit.c, gengtype.c, genopinit.c, genoutput.c.
>> >>>> >>>> * Did not put includes in gcc-plugin.h since expr.h cannot be included
>> >>>> >>>> by plugins
>> >>>> >>>> (putting them broke building a file in c-family/ since expr.h is not
>> >>>> >>>> allowed in front-ends)
>> >>>> >>>> * Affects java front-end (expr.h is allowed in java front-end).
>> >>>> >>>>
>> >>>> >>>> Bootstrapped and tested on x86_64-unknown-linux-gnu with languages:
>> >>>> >>>> all,go,ada,jit
>> >>>> >>>> Built on all targets in config-list.mk with languages: all, go.
>> >>>> >>>> OK to commit ?
>> >>>> >>>
>> >>>> >>> diff --git a/gcc/expr.c b/gcc/expr.c
>> >>>> >>> index fc22862..824541e 100644
>> >>>> >>> --- a/gcc/expr.c
>> >>>> >>> +++ b/gcc/expr.c
>> >>>> >>> @@ -41,11 +41,17 @@ along with GCC; see the file COPYING3.  If not see
>> >>>> >>>  #include "regs.h"
>> >>>> >>>  #include "hard-reg-set.h"
>> >>>> >>>  #include "except.h"
>> >>>> >>> -#include "input.h"
>> >>>> >>>  #include "function.h"
>> >>>> >>>  #include "insn-config.h"
>> >>>> >>>  #include "insn-attr.h"
>> >>>> >>>  /* Include expr.h after insn-config.h so we get HAVE_conditional_move.
>> >>>> >>> */
>> >>>> >>> +#include "hashtab.h"
>> >>>> >>> +#include "emit-rtl.h"
>> >>>> >>> +#include "expmed.h"
>> >>>> >>> +#include "stmt.h"
>> >>>> >>> +#include "statistics.h"
>> >>>> >>> +#include "real.h"
>> >>>> >>> +#include "fixed-value.h"
>> >>>> >>>  #include "expr.h"
>> >>>> >>>
>> >>>> >>> Please move the comment to the proper place
>> >>>> >> ah, my flattening tool doesn't look at comments. I will move the
>> >>>> >> comment before expr.h include, thanks.
>> >>>> >>>
>> >>>> >>> diff --git a/gcc/expr.h b/gcc/expr.h
>> >>>> >>> index a7638b8..f1be8dc 100644
>> >>>> >>> --- a/gcc/expr.h
>> >>>> >>> +++ b/gcc/expr.h
>> >>>> >>> @@ -20,7 +20,8 @@ along with GCC; see the file COPYING3.  If not see
>> >>>> >>>  #ifndef GCC_EXPR_H
>> >>>> >>>  #define GCC_EXPR_H
>> >>>> >>>
>> >>>> >>> -/* For inhibit_defer_pop */
>> >>>> >>> +/* expr.h required includes */
>> >>>> >>> +#if 0
>> >>>> >>>  #include "hashtab.h"
>> >>>> >>>  #include "hash-set.h"
>> >>>> >>>  #include "vec.h"
>> >>>> >>> @@ -29,15 +30,17 @@ along with GCC; see the file COPYING3.  If not see
>> >>>> >>>  #include "hard-reg-set.h"
>> >>>> >>>  #include "input.h"
>> >>>> >>>  #include "function.h"
>> >>>> >>> -/* For XEXP, GEN_INT, rtx_code */
>> >>>> >>>  #include "rtl.h"
>> >>>> >>> -/* For optimize_size */
>> >>>> >>>  #include "flags.h"
>> >>>> >>> -/* For tree_fits_[su]hwi_p, tree_to_[su]hwi, fold_convert, size_binop,
>> >>>> >>> -   ssize_int, TREE_CODE, TYPE_SIZE, int_size_in_bytes,    */
>> >>>> >>>  #include "tree-core.h"
>> >>>> >>> -/* For GET_MODE_BITSIZE, word_mode */
>> >>>> >>>  #include "insn-config.h"
>> >>>> >>> +#include "alias.h"
>> >>>> >>> +#include "emit-rtl.h"
>> >>>> >>> +#include "expmed.h"
>> >>>> >>> +#include "stmt.h"
>> >>>> >>> +#endif
>> >>>> >>>
>> >>>> >>> Err, please remove the #if 0 section
>> >>>> >> I kept it because if something breaks later (hopefully not!), it will
>> >>>> >> be easier to fix.
>> >>>> >> I will remove it.
>> >>>> >>>
>> >>>> >>> +
>> >>>> >>> +#include "tree-core.h"
>> >>>> >>>
>> >>>> >>> Why?  The original comment says
>> >>>> >>>
>> >>>> >>> -/* For tree_fits_[su]hwi_p, tree_to_[su]hwi, fold_convert, size_binop,
>> >>>> >>> -   ssize_int, TREE_CODE, TYPE_SIZE, int_size_in_bytes,    */
>> >>>> >>>
>> >>>> >>> but all those are declared in tree.h.  Which means the files including
>> >>>> >>> expr.h must already include tree.h.
>> >>>> >>>
>> >>>> >>> If that's not the reason we need to include tree-core.h from expr.c
>> >>>> >>> please add a comment explaining why.
>> >>>> >> bt-load.c fails to compile because it includes expr.h but does not
>> >>>> >> include tree.h
>> >>>> >> I will place tree.h include in all files that include expr.h and rebuild.
>> >>>> > This is not going to work, since tree.h is now flattened. Shall also
>> >>>> > require including all headers required by
>> >>>> > tree.h in all files that include expr.h. Could we retain tree-core.h
>> >>>> > in expr.h for now ?
>> >>>> > Or should I insert tree.h (along with tree.h required includes) in all
>> >>>> > files that include expr.h ?
>> >>>> I am including tree.h along with required includes in all files that
>> >>>> include expr.h.
>> >>>> This removes all includes from expr.h.
>> >>>
>> >>> Good.
>> >> The attached patch, refactors expr.h so that it only exports
>> >> prototypes from expr.c.
>> >> I kept int_expr_size() in explow.c instead of moving it to expr.c because it
>> >> called tree_expr_size() which is static in explow.c and has other callers too.
>> > Not really. It only has two callers expr_size() and int_expr_size().
>> > I will move definitions of int_expr_size(), tree_expr_size() and
>> > expr_size() to expr.c
>> > in followup patch.
>> This version moves the definitions of int_expr_size(), tree_expr_size() and
>> expr_size() to expr.c.
>> Bootstrapped on x86_64-unknown-linux-gnu.
>> Please let me know if there are any other changes required.
>> If the patch is fine, I will restart building on all targets in config-list.mk
>
> The new dojump.h and explow.h headers requires a copyright notice (see
> other headers for a boilerplate to copy)
Thanks.
>
> Otherwise this looks ok.
Thanks, I will start building on all targets in config-list.mk and
assuming there
are no build errors, shall I commit it ?

Regards,
Prathamesh
>
> Thanks,
> Richard.
>
>
>> Thanks,
>> Prathamesh
>> >>
>> >> Changes:
>> >> * New header files dojump.h, explow.h.
>> >> * Modified generator programs: gengtype.c, genemit.c, genopinit.c,
>> >> genoutput.c, config/tilepro/gen-mul-tables.cc.
>> >> * Affects java front-end (java/builtins.c includes expr.h).
>> >>
>> >> Bootstrapped and tested on x86_64-unknown-linux-gnu with languages:
>> >> all, go, ada, jit, obj-c++.
>> >> Build in progress on all targets in config-list.mk with languages: all, go.
>> >> Assuming the build goes fine, OK to commit ?
>> >>
>> >> Thanks,
>> >> Prathamesh
>> >>>
>> >>> Richard.
>>
>
> --
> Richard Biener <rguenther@suse.de>
> SUSE LINUX GmbH, GF: Felix Imendoerffer, Jane Smithard, Jennifer Guild,
> Dilip Upmanyu, Graham Norton HRB 21284 (AG Nuernberg)

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

* Re: flatten expr.h (version 2)
  2015-01-14 12:23                   ` Prathamesh Kulkarni
@ 2015-01-14 12:24                     ` Richard Biener
  2015-01-15 14:10                       ` Prathamesh Kulkarni
  0 siblings, 1 reply; 17+ messages in thread
From: Richard Biener @ 2015-01-14 12:24 UTC (permalink / raw)
  To: Prathamesh Kulkarni; +Cc: Michael Collison, gcc Patches, Andrew MacLeod

On Wed, 14 Jan 2015, Prathamesh Kulkarni wrote:

> On 14 January 2015 at 17:31, Richard Biener <rguenther@suse.de> wrote:
> > On Wed, 14 Jan 2015, Prathamesh Kulkarni wrote:
> >
> >> On 14 January 2015 at 11:16, Prathamesh Kulkarni
> >> <prathamesh.kulkarni@linaro.org> wrote:
> >> > On 14 January 2015 at 16:40, Prathamesh Kulkarni
> >> > <prathamesh.kulkarni@linaro.org> wrote:
> >> >> On 14 January 2015 at 14:34, Richard Biener <rguenther@suse.de> wrote:
> >> >>> On Wed, 14 Jan 2015, Prathamesh Kulkarni wrote:
> >> >>>
> >> >>>> On 13 January 2015 at 22:02, Prathamesh Kulkarni
> >> >>>> <prathamesh.kulkarni@linaro.org> wrote:
> >> >>>> > On 13 January 2015 at 16:06, Prathamesh Kulkarni
> >> >>>> > <prathamesh.kulkarni@linaro.org> wrote:
> >> >>>> >> On 13 January 2015 at 15:34, Richard Biener <rguenther@suse.de> wrote:
> >> >>>> >>> On Sun, 11 Jan 2015, Prathamesh Kulkarni wrote:
> >> >>>> >>>
> >> >>>> >>>> Hi,
> >> >>>> >>>> This is a revamped expr.h flattening flattening patch rebased on
> >> >>>> >>>> tree.h and tree-core.h flattening patch (r219402).
> >> >>>> >>>> It depends upon the following patch to get committed.
> >> >>>> >>>> https://gcc.gnu.org/ml/gcc-patches/2015-01/msg00565.html
> >> >>>> >>>>
> >> >>>> >>>> Changes:
> >> >>>> >>>> * Removed all includes except tree-core.h. Put includes required by
> >> >>>> >>>> expr.h in a comment.
> >> >>>> >>>> * Moved stmt.c, expmed.c prototypes to stmt.h, expmed.h respectively.
> >> >>>> >>>> * Adjusted generator programs: genemit.c, gengtype.c, genopinit.c, genoutput.c.
> >> >>>> >>>> * Did not put includes in gcc-plugin.h since expr.h cannot be included
> >> >>>> >>>> by plugins
> >> >>>> >>>> (putting them broke building a file in c-family/ since expr.h is not
> >> >>>> >>>> allowed in front-ends)
> >> >>>> >>>> * Affects java front-end (expr.h is allowed in java front-end).
> >> >>>> >>>>
> >> >>>> >>>> Bootstrapped and tested on x86_64-unknown-linux-gnu with languages:
> >> >>>> >>>> all,go,ada,jit
> >> >>>> >>>> Built on all targets in config-list.mk with languages: all, go.
> >> >>>> >>>> OK to commit ?
> >> >>>> >>>
> >> >>>> >>> diff --git a/gcc/expr.c b/gcc/expr.c
> >> >>>> >>> index fc22862..824541e 100644
> >> >>>> >>> --- a/gcc/expr.c
> >> >>>> >>> +++ b/gcc/expr.c
> >> >>>> >>> @@ -41,11 +41,17 @@ along with GCC; see the file COPYING3.  If not see
> >> >>>> >>>  #include "regs.h"
> >> >>>> >>>  #include "hard-reg-set.h"
> >> >>>> >>>  #include "except.h"
> >> >>>> >>> -#include "input.h"
> >> >>>> >>>  #include "function.h"
> >> >>>> >>>  #include "insn-config.h"
> >> >>>> >>>  #include "insn-attr.h"
> >> >>>> >>>  /* Include expr.h after insn-config.h so we get HAVE_conditional_move.
> >> >>>> >>> */
> >> >>>> >>> +#include "hashtab.h"
> >> >>>> >>> +#include "emit-rtl.h"
> >> >>>> >>> +#include "expmed.h"
> >> >>>> >>> +#include "stmt.h"
> >> >>>> >>> +#include "statistics.h"
> >> >>>> >>> +#include "real.h"
> >> >>>> >>> +#include "fixed-value.h"
> >> >>>> >>>  #include "expr.h"
> >> >>>> >>>
> >> >>>> >>> Please move the comment to the proper place
> >> >>>> >> ah, my flattening tool doesn't look at comments. I will move the
> >> >>>> >> comment before expr.h include, thanks.
> >> >>>> >>>
> >> >>>> >>> diff --git a/gcc/expr.h b/gcc/expr.h
> >> >>>> >>> index a7638b8..f1be8dc 100644
> >> >>>> >>> --- a/gcc/expr.h
> >> >>>> >>> +++ b/gcc/expr.h
> >> >>>> >>> @@ -20,7 +20,8 @@ along with GCC; see the file COPYING3.  If not see
> >> >>>> >>>  #ifndef GCC_EXPR_H
> >> >>>> >>>  #define GCC_EXPR_H
> >> >>>> >>>
> >> >>>> >>> -/* For inhibit_defer_pop */
> >> >>>> >>> +/* expr.h required includes */
> >> >>>> >>> +#if 0
> >> >>>> >>>  #include "hashtab.h"
> >> >>>> >>>  #include "hash-set.h"
> >> >>>> >>>  #include "vec.h"
> >> >>>> >>> @@ -29,15 +30,17 @@ along with GCC; see the file COPYING3.  If not see
> >> >>>> >>>  #include "hard-reg-set.h"
> >> >>>> >>>  #include "input.h"
> >> >>>> >>>  #include "function.h"
> >> >>>> >>> -/* For XEXP, GEN_INT, rtx_code */
> >> >>>> >>>  #include "rtl.h"
> >> >>>> >>> -/* For optimize_size */
> >> >>>> >>>  #include "flags.h"
> >> >>>> >>> -/* For tree_fits_[su]hwi_p, tree_to_[su]hwi, fold_convert, size_binop,
> >> >>>> >>> -   ssize_int, TREE_CODE, TYPE_SIZE, int_size_in_bytes,    */
> >> >>>> >>>  #include "tree-core.h"
> >> >>>> >>> -/* For GET_MODE_BITSIZE, word_mode */
> >> >>>> >>>  #include "insn-config.h"
> >> >>>> >>> +#include "alias.h"
> >> >>>> >>> +#include "emit-rtl.h"
> >> >>>> >>> +#include "expmed.h"
> >> >>>> >>> +#include "stmt.h"
> >> >>>> >>> +#endif
> >> >>>> >>>
> >> >>>> >>> Err, please remove the #if 0 section
> >> >>>> >> I kept it because if something breaks later (hopefully not!), it will
> >> >>>> >> be easier to fix.
> >> >>>> >> I will remove it.
> >> >>>> >>>
> >> >>>> >>> +
> >> >>>> >>> +#include "tree-core.h"
> >> >>>> >>>
> >> >>>> >>> Why?  The original comment says
> >> >>>> >>>
> >> >>>> >>> -/* For tree_fits_[su]hwi_p, tree_to_[su]hwi, fold_convert, size_binop,
> >> >>>> >>> -   ssize_int, TREE_CODE, TYPE_SIZE, int_size_in_bytes,    */
> >> >>>> >>>
> >> >>>> >>> but all those are declared in tree.h.  Which means the files including
> >> >>>> >>> expr.h must already include tree.h.
> >> >>>> >>>
> >> >>>> >>> If that's not the reason we need to include tree-core.h from expr.c
> >> >>>> >>> please add a comment explaining why.
> >> >>>> >> bt-load.c fails to compile because it includes expr.h but does not
> >> >>>> >> include tree.h
> >> >>>> >> I will place tree.h include in all files that include expr.h and rebuild.
> >> >>>> > This is not going to work, since tree.h is now flattened. Shall also
> >> >>>> > require including all headers required by
> >> >>>> > tree.h in all files that include expr.h. Could we retain tree-core.h
> >> >>>> > in expr.h for now ?
> >> >>>> > Or should I insert tree.h (along with tree.h required includes) in all
> >> >>>> > files that include expr.h ?
> >> >>>> I am including tree.h along with required includes in all files that
> >> >>>> include expr.h.
> >> >>>> This removes all includes from expr.h.
> >> >>>
> >> >>> Good.
> >> >> The attached patch, refactors expr.h so that it only exports
> >> >> prototypes from expr.c.
> >> >> I kept int_expr_size() in explow.c instead of moving it to expr.c because it
> >> >> called tree_expr_size() which is static in explow.c and has other callers too.
> >> > Not really. It only has two callers expr_size() and int_expr_size().
> >> > I will move definitions of int_expr_size(), tree_expr_size() and
> >> > expr_size() to expr.c
> >> > in followup patch.
> >> This version moves the definitions of int_expr_size(), tree_expr_size() and
> >> expr_size() to expr.c.
> >> Bootstrapped on x86_64-unknown-linux-gnu.
> >> Please let me know if there are any other changes required.
> >> If the patch is fine, I will restart building on all targets in config-list.mk
> >
> > The new dojump.h and explow.h headers requires a copyright notice (see
> > other headers for a boilerplate to copy)
> Thanks.
> >
> > Otherwise this looks ok.
> Thanks, I will start building on all targets in config-list.mk and
> assuming there
> are no build errors, shall I commit it ?

Yes please.

Richard.

> 
> Regards,
> Prathamesh
> >
> > Thanks,
> > Richard.
> >
> >
> >> Thanks,
> >> Prathamesh
> >> >>
> >> >> Changes:
> >> >> * New header files dojump.h, explow.h.
> >> >> * Modified generator programs: gengtype.c, genemit.c, genopinit.c,
> >> >> genoutput.c, config/tilepro/gen-mul-tables.cc.
> >> >> * Affects java front-end (java/builtins.c includes expr.h).
> >> >>
> >> >> Bootstrapped and tested on x86_64-unknown-linux-gnu with languages:
> >> >> all, go, ada, jit, obj-c++.
> >> >> Build in progress on all targets in config-list.mk with languages: all, go.
> >> >> Assuming the build goes fine, OK to commit ?
> >> >>
> >> >> Thanks,
> >> >> Prathamesh
> >> >>>
> >> >>> Richard.
> >>
> >
> > --
> > Richard Biener <rguenther@suse.de>
> > SUSE LINUX GmbH, GF: Felix Imendoerffer, Jane Smithard, Jennifer Guild,
> > Dilip Upmanyu, Graham Norton HRB 21284 (AG Nuernberg)
> 
> 

-- 
Richard Biener <rguenther@suse.de>
SUSE LINUX GmbH, GF: Felix Imendoerffer, Jane Smithard, Jennifer Guild,
Dilip Upmanyu, Graham Norton HRB 21284 (AG Nuernberg)

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

* Re: flatten expr.h (version 2)
  2015-01-14 12:24                     ` Richard Biener
@ 2015-01-15 14:10                       ` Prathamesh Kulkarni
  2015-01-21 18:00                         ` Eric Botcazou
  0 siblings, 1 reply; 17+ messages in thread
From: Prathamesh Kulkarni @ 2015-01-15 14:10 UTC (permalink / raw)
  To: Richard Biener; +Cc: Michael Collison, gcc Patches, Andrew MacLeod

On 14 January 2015 at 12:14, Richard Biener <rguenther@suse.de> wrote:
> On Wed, 14 Jan 2015, Prathamesh Kulkarni wrote:
>
>> On 14 January 2015 at 17:31, Richard Biener <rguenther@suse.de> wrote:
>> > On Wed, 14 Jan 2015, Prathamesh Kulkarni wrote:
>> >
>> >> On 14 January 2015 at 11:16, Prathamesh Kulkarni
>> >> <prathamesh.kulkarni@linaro.org> wrote:
>> >> > On 14 January 2015 at 16:40, Prathamesh Kulkarni
>> >> > <prathamesh.kulkarni@linaro.org> wrote:
>> >> >> On 14 January 2015 at 14:34, Richard Biener <rguenther@suse.de> wrote:
>> >> >>> On Wed, 14 Jan 2015, Prathamesh Kulkarni wrote:
>> >> >>>
>> >> >>>> On 13 January 2015 at 22:02, Prathamesh Kulkarni
>> >> >>>> <prathamesh.kulkarni@linaro.org> wrote:
>> >> >>>> > On 13 January 2015 at 16:06, Prathamesh Kulkarni
>> >> >>>> > <prathamesh.kulkarni@linaro.org> wrote:
>> >> >>>> >> On 13 January 2015 at 15:34, Richard Biener <rguenther@suse.de> wrote:
>> >> >>>> >>> On Sun, 11 Jan 2015, Prathamesh Kulkarni wrote:
>> >> >>>> >>>
>> >> >>>> >>>> Hi,
>> >> >>>> >>>> This is a revamped expr.h flattening flattening patch rebased on
>> >> >>>> >>>> tree.h and tree-core.h flattening patch (r219402).
>> >> >>>> >>>> It depends upon the following patch to get committed.
>> >> >>>> >>>> https://gcc.gnu.org/ml/gcc-patches/2015-01/msg00565.html
>> >> >>>> >>>>
>> >> >>>> >>>> Changes:
>> >> >>>> >>>> * Removed all includes except tree-core.h. Put includes required by
>> >> >>>> >>>> expr.h in a comment.
>> >> >>>> >>>> * Moved stmt.c, expmed.c prototypes to stmt.h, expmed.h respectively.
>> >> >>>> >>>> * Adjusted generator programs: genemit.c, gengtype.c, genopinit.c, genoutput.c.
>> >> >>>> >>>> * Did not put includes in gcc-plugin.h since expr.h cannot be included
>> >> >>>> >>>> by plugins
>> >> >>>> >>>> (putting them broke building a file in c-family/ since expr.h is not
>> >> >>>> >>>> allowed in front-ends)
>> >> >>>> >>>> * Affects java front-end (expr.h is allowed in java front-end).
>> >> >>>> >>>>
>> >> >>>> >>>> Bootstrapped and tested on x86_64-unknown-linux-gnu with languages:
>> >> >>>> >>>> all,go,ada,jit
>> >> >>>> >>>> Built on all targets in config-list.mk with languages: all, go.
>> >> >>>> >>>> OK to commit ?
>> >> >>>> >>>
>> >> >>>> >>> diff --git a/gcc/expr.c b/gcc/expr.c
>> >> >>>> >>> index fc22862..824541e 100644
>> >> >>>> >>> --- a/gcc/expr.c
>> >> >>>> >>> +++ b/gcc/expr.c
>> >> >>>> >>> @@ -41,11 +41,17 @@ along with GCC; see the file COPYING3.  If not see
>> >> >>>> >>>  #include "regs.h"
>> >> >>>> >>>  #include "hard-reg-set.h"
>> >> >>>> >>>  #include "except.h"
>> >> >>>> >>> -#include "input.h"
>> >> >>>> >>>  #include "function.h"
>> >> >>>> >>>  #include "insn-config.h"
>> >> >>>> >>>  #include "insn-attr.h"
>> >> >>>> >>>  /* Include expr.h after insn-config.h so we get HAVE_conditional_move.
>> >> >>>> >>> */
>> >> >>>> >>> +#include "hashtab.h"
>> >> >>>> >>> +#include "emit-rtl.h"
>> >> >>>> >>> +#include "expmed.h"
>> >> >>>> >>> +#include "stmt.h"
>> >> >>>> >>> +#include "statistics.h"
>> >> >>>> >>> +#include "real.h"
>> >> >>>> >>> +#include "fixed-value.h"
>> >> >>>> >>>  #include "expr.h"
>> >> >>>> >>>
>> >> >>>> >>> Please move the comment to the proper place
>> >> >>>> >> ah, my flattening tool doesn't look at comments. I will move the
>> >> >>>> >> comment before expr.h include, thanks.
>> >> >>>> >>>
>> >> >>>> >>> diff --git a/gcc/expr.h b/gcc/expr.h
>> >> >>>> >>> index a7638b8..f1be8dc 100644
>> >> >>>> >>> --- a/gcc/expr.h
>> >> >>>> >>> +++ b/gcc/expr.h
>> >> >>>> >>> @@ -20,7 +20,8 @@ along with GCC; see the file COPYING3.  If not see
>> >> >>>> >>>  #ifndef GCC_EXPR_H
>> >> >>>> >>>  #define GCC_EXPR_H
>> >> >>>> >>>
>> >> >>>> >>> -/* For inhibit_defer_pop */
>> >> >>>> >>> +/* expr.h required includes */
>> >> >>>> >>> +#if 0
>> >> >>>> >>>  #include "hashtab.h"
>> >> >>>> >>>  #include "hash-set.h"
>> >> >>>> >>>  #include "vec.h"
>> >> >>>> >>> @@ -29,15 +30,17 @@ along with GCC; see the file COPYING3.  If not see
>> >> >>>> >>>  #include "hard-reg-set.h"
>> >> >>>> >>>  #include "input.h"
>> >> >>>> >>>  #include "function.h"
>> >> >>>> >>> -/* For XEXP, GEN_INT, rtx_code */
>> >> >>>> >>>  #include "rtl.h"
>> >> >>>> >>> -/* For optimize_size */
>> >> >>>> >>>  #include "flags.h"
>> >> >>>> >>> -/* For tree_fits_[su]hwi_p, tree_to_[su]hwi, fold_convert, size_binop,
>> >> >>>> >>> -   ssize_int, TREE_CODE, TYPE_SIZE, int_size_in_bytes,    */
>> >> >>>> >>>  #include "tree-core.h"
>> >> >>>> >>> -/* For GET_MODE_BITSIZE, word_mode */
>> >> >>>> >>>  #include "insn-config.h"
>> >> >>>> >>> +#include "alias.h"
>> >> >>>> >>> +#include "emit-rtl.h"
>> >> >>>> >>> +#include "expmed.h"
>> >> >>>> >>> +#include "stmt.h"
>> >> >>>> >>> +#endif
>> >> >>>> >>>
>> >> >>>> >>> Err, please remove the #if 0 section
>> >> >>>> >> I kept it because if something breaks later (hopefully not!), it will
>> >> >>>> >> be easier to fix.
>> >> >>>> >> I will remove it.
>> >> >>>> >>>
>> >> >>>> >>> +
>> >> >>>> >>> +#include "tree-core.h"
>> >> >>>> >>>
>> >> >>>> >>> Why?  The original comment says
>> >> >>>> >>>
>> >> >>>> >>> -/* For tree_fits_[su]hwi_p, tree_to_[su]hwi, fold_convert, size_binop,
>> >> >>>> >>> -   ssize_int, TREE_CODE, TYPE_SIZE, int_size_in_bytes,    */
>> >> >>>> >>>
>> >> >>>> >>> but all those are declared in tree.h.  Which means the files including
>> >> >>>> >>> expr.h must already include tree.h.
>> >> >>>> >>>
>> >> >>>> >>> If that's not the reason we need to include tree-core.h from expr.c
>> >> >>>> >>> please add a comment explaining why.
>> >> >>>> >> bt-load.c fails to compile because it includes expr.h but does not
>> >> >>>> >> include tree.h
>> >> >>>> >> I will place tree.h include in all files that include expr.h and rebuild.
>> >> >>>> > This is not going to work, since tree.h is now flattened. Shall also
>> >> >>>> > require including all headers required by
>> >> >>>> > tree.h in all files that include expr.h. Could we retain tree-core.h
>> >> >>>> > in expr.h for now ?
>> >> >>>> > Or should I insert tree.h (along with tree.h required includes) in all
>> >> >>>> > files that include expr.h ?
>> >> >>>> I am including tree.h along with required includes in all files that
>> >> >>>> include expr.h.
>> >> >>>> This removes all includes from expr.h.
>> >> >>>
>> >> >>> Good.
>> >> >> The attached patch, refactors expr.h so that it only exports
>> >> >> prototypes from expr.c.
>> >> >> I kept int_expr_size() in explow.c instead of moving it to expr.c because it
>> >> >> called tree_expr_size() which is static in explow.c and has other callers too.
>> >> > Not really. It only has two callers expr_size() and int_expr_size().
>> >> > I will move definitions of int_expr_size(), tree_expr_size() and
>> >> > expr_size() to expr.c
>> >> > in followup patch.
>> >> This version moves the definitions of int_expr_size(), tree_expr_size() and
>> >> expr_size() to expr.c.
>> >> Bootstrapped on x86_64-unknown-linux-gnu.
>> >> Please let me know if there are any other changes required.
>> >> If the patch is fine, I will restart building on all targets in config-list.mk
>> >
>> > The new dojump.h and explow.h headers requires a copyright notice (see
>> > other headers for a boilerplate to copy)
>> Thanks.
>> >
>> > Otherwise this looks ok.
>> Thanks, I will start building on all targets in config-list.mk and
>> assuming there
>> are no build errors, shall I commit it ?
>
> Yes please.
Thanks. I had wrongly made eliminate_constant_term() static, reverted
that change and it builds on
all targets in config-list.mk.
Committed as r219655 (hopefully nothing breaks!).

Regards,
Prathamesh
>
> Richard.
>
>>
>> Regards,
>> Prathamesh
>> >
>> > Thanks,
>> > Richard.
>> >
>> >
>> >> Thanks,
>> >> Prathamesh
>> >> >>
>> >> >> Changes:
>> >> >> * New header files dojump.h, explow.h.
>> >> >> * Modified generator programs: gengtype.c, genemit.c, genopinit.c,
>> >> >> genoutput.c, config/tilepro/gen-mul-tables.cc.
>> >> >> * Affects java front-end (java/builtins.c includes expr.h).
>> >> >>
>> >> >> Bootstrapped and tested on x86_64-unknown-linux-gnu with languages:
>> >> >> all, go, ada, jit, obj-c++.
>> >> >> Build in progress on all targets in config-list.mk with languages: all, go.
>> >> >> Assuming the build goes fine, OK to commit ?
>> >> >>
>> >> >> Thanks,
>> >> >> Prathamesh
>> >> >>>
>> >> >>> Richard.
>> >>
>> >
>> > --
>> > Richard Biener <rguenther@suse.de>
>> > SUSE LINUX GmbH, GF: Felix Imendoerffer, Jane Smithard, Jennifer Guild,
>> > Dilip Upmanyu, Graham Norton HRB 21284 (AG Nuernberg)
>>
>>
>
> --
> Richard Biener <rguenther@suse.de>
> SUSE LINUX GmbH, GF: Felix Imendoerffer, Jane Smithard, Jennifer Guild,
> Dilip Upmanyu, Graham Norton HRB 21284 (AG Nuernberg)

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

* Re: flatten expr.h (version 2)
  2015-01-15 14:10                       ` Prathamesh Kulkarni
@ 2015-01-21 18:00                         ` Eric Botcazou
  2015-01-22 22:17                           ` Prathamesh Kulkarni
  0 siblings, 1 reply; 17+ messages in thread
From: Eric Botcazou @ 2015-01-21 18:00 UTC (permalink / raw)
  To: Prathamesh Kulkarni
  Cc: gcc-patches, Richard Biener, Michael Collison, Andrew MacLeod

> Thanks. I had wrongly made eliminate_constant_term() static, reverted
> that change and it builds on
> all targets in config-list.mk.
> Committed as r219655 (hopefully nothing breaks!).

Any particular reason why store_bit_field, extract_bit_field, extract_low_bits 
expand_mult and expand_mult_highpart_adjust are declared in emit-rtl.h?

-- 
Eric Botcazou

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

* Re: flatten expr.h (version 2)
  2015-01-21 18:00                         ` Eric Botcazou
@ 2015-01-22 22:17                           ` Prathamesh Kulkarni
  2015-01-23  1:19                             ` Eric Botcazou
  2015-01-23 10:14                             ` Richard Biener
  0 siblings, 2 replies; 17+ messages in thread
From: Prathamesh Kulkarni @ 2015-01-22 22:17 UTC (permalink / raw)
  To: Eric Botcazou
  Cc: gcc Patches, Richard Biener, Michael Collison, Andrew MacLeod

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

On 21 January 2015 at 23:18, Eric Botcazou <ebotcazou@adacore.com> wrote:
>> Thanks. I had wrongly made eliminate_constant_term() static, reverted
>> that change and it builds on
>> all targets in config-list.mk.
>> Committed as r219655 (hopefully nothing breaks!).
>
> Any particular reason why store_bit_field, extract_bit_field, extract_low_bits
> expand_mult and expand_mult_highpart_adjust are declared in emit-rtl.h?
Thanks, moved them to expmed.h.
Boostrapped on x86_64-unknown-linux-gnu with languages: all, testing
in progress.
Build on all targets in config-list.mk in progress.
Assuming it goes fine, OK to commit ?

Thanks,
Prathamesh
>
> --
> Eric Botcazou

[-- Attachment #2: Changelog.txt --]
[-- Type: text/plain, Size: 260 bytes --]

2015-01-22  Prathamesh Kulkarni  <prathamesh.kulkarni@linaro.org>

	* emit-rtl.h (store_bit_field): Move prototype to expmed.h. 
	(extract_bit_field): Likewise.
	(extract_low_bits): Likewise.
	(expand_mult): Likewise.
	(expand_mult_highpart_adjust): Likewise.

[-- Attachment #3: foo.patch --]
[-- Type: text/x-patch, Size: 1618 bytes --]

Index: gcc/emit-rtl.h
===================================================================
--- gcc/emit-rtl.h	(revision 219882)
+++ gcc/emit-rtl.h	(working copy)
@@ -189,17 +189,4 @@
    MODE and adjusted by OFFSET.  */
 extern rtx widen_memory_access (rtx, machine_mode, HOST_WIDE_INT);
 
-extern void store_bit_field (rtx, unsigned HOST_WIDE_INT,
-			     unsigned HOST_WIDE_INT,
-			     unsigned HOST_WIDE_INT,
-			     unsigned HOST_WIDE_INT,
-			     machine_mode, rtx);
-extern rtx extract_bit_field (rtx, unsigned HOST_WIDE_INT,
-			      unsigned HOST_WIDE_INT, int, rtx,
-			      machine_mode, machine_mode);
-extern rtx extract_low_bits (machine_mode, machine_mode, rtx);
-extern rtx expand_mult (machine_mode, rtx, rtx, rtx, int);
-extern rtx expand_mult_highpart_adjust (machine_mode, rtx, rtx, rtx, rtx, int);
-
-
 #endif /* GCC_EMIT_RTL_H */
Index: gcc/expmed.h
===================================================================
--- gcc/expmed.h	(revision 219882)
+++ gcc/expmed.h	(working copy)
@@ -703,4 +703,16 @@
 			  rtx, int);
 #endif
 
+extern void store_bit_field (rtx, unsigned HOST_WIDE_INT,
+			     unsigned HOST_WIDE_INT,
+			     unsigned HOST_WIDE_INT,
+			     unsigned HOST_WIDE_INT,
+			     machine_mode, rtx);
+extern rtx extract_bit_field (rtx, unsigned HOST_WIDE_INT,
+			      unsigned HOST_WIDE_INT, int, rtx,
+			      machine_mode, machine_mode);
+extern rtx extract_low_bits (machine_mode, machine_mode, rtx);
+extern rtx expand_mult (machine_mode, rtx, rtx, rtx, int);
+extern rtx expand_mult_highpart_adjust (machine_mode, rtx, rtx, rtx, rtx, int);
+
 #endif  // EXPMED_H

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

* Re: flatten expr.h (version 2)
  2015-01-22 22:17                           ` Prathamesh Kulkarni
@ 2015-01-23  1:19                             ` Eric Botcazou
  2015-01-23 10:14                             ` Richard Biener
  1 sibling, 0 replies; 17+ messages in thread
From: Eric Botcazou @ 2015-01-23  1:19 UTC (permalink / raw)
  To: Prathamesh Kulkarni
  Cc: gcc-patches, Richard Biener, Michael Collison, Andrew MacLeod

> Thanks, moved them to expmed.h.
> Boostrapped on x86_64-unknown-linux-gnu with languages: all, testing
> in progress.
> Build on all targets in config-list.mk in progress.
> Assuming it goes fine, OK to commit ?

You can install it under the obvious rule once successfully tested.

-- 
Eric Botcazou

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

* Re: flatten expr.h (version 2)
  2015-01-22 22:17                           ` Prathamesh Kulkarni
  2015-01-23  1:19                             ` Eric Botcazou
@ 2015-01-23 10:14                             ` Richard Biener
  1 sibling, 0 replies; 17+ messages in thread
From: Richard Biener @ 2015-01-23 10:14 UTC (permalink / raw)
  To: Prathamesh Kulkarni
  Cc: Eric Botcazou, gcc Patches, Michael Collison, Andrew MacLeod

On Fri, 23 Jan 2015, Prathamesh Kulkarni wrote:

> On 21 January 2015 at 23:18, Eric Botcazou <ebotcazou@adacore.com> wrote:
> >> Thanks. I had wrongly made eliminate_constant_term() static, reverted
> >> that change and it builds on
> >> all targets in config-list.mk.
> >> Committed as r219655 (hopefully nothing breaks!).
> >
> > Any particular reason why store_bit_field, extract_bit_field, extract_low_bits
> > expand_mult and expand_mult_highpart_adjust are declared in emit-rtl.h?
> Thanks, moved them to expmed.h.
> Boostrapped on x86_64-unknown-linux-gnu with languages: all, testing
> in progress.
> Build on all targets in config-list.mk in progress.
> Assuming it goes fine, OK to commit ?

Ok.

Thanks,
Richard.

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

end of thread, other threads:[~2015-01-23  9:10 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-01-12  0:23 flatten expr.h (version 2) Prathamesh Kulkarni
2015-01-13 10:36 ` Richard Biener
2015-01-13 10:47   ` Prathamesh Kulkarni
2015-01-13 16:38     ` Prathamesh Kulkarni
2015-01-13 20:42       ` Prathamesh Kulkarni
2015-01-14  9:43         ` Richard Biener
2015-01-14 11:16           ` Prathamesh Kulkarni
2015-01-14 11:18             ` Prathamesh Kulkarni
2015-01-14 12:09               ` Prathamesh Kulkarni
2015-01-14 12:17                 ` Richard Biener
2015-01-14 12:23                   ` Prathamesh Kulkarni
2015-01-14 12:24                     ` Richard Biener
2015-01-15 14:10                       ` Prathamesh Kulkarni
2015-01-21 18:00                         ` Eric Botcazou
2015-01-22 22:17                           ` Prathamesh Kulkarni
2015-01-23  1:19                             ` Eric Botcazou
2015-01-23 10:14                             ` 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).