diff mbox

flatten expr.h (version 2)

Message ID CAAgBjMm5JiL2Eh8X3rsybCYWFCuTBLTyJT4jk9yKo6SS70sJmQ@mail.gmail.com
State New
Headers show

Commit Message

Prathamesh Kulkarni Jan. 11, 2015, 11:54 p.m. UTC
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
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.

Comments

Prathamesh Kulkarni Jan. 13, 2015, 10:36 a.m. UTC | #1
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.
Prathamesh Kulkarni Jan. 13, 2015, 4:32 p.m. UTC | #2
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.
Prathamesh Kulkarni Jan. 13, 2015, 8:29 p.m. UTC | #3
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.
diff mbox

Patch

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;
 }
 
-#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;
 
-/* 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 *);
-
 /* 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"
-
 
 /* 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"
 
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"