diff mbox

flatten expr.h (version 2)

Message ID CAAgBjMnX=XaGie0BYn0M0505OqZYxvt9NmcyKZrJ4cr=B1Gj2Q@mail.gmail.com
State New
Headers show

Commit Message

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

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

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

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

Comments

Richard Biener Jan. 14, 2015, 12:01 p.m. UTC | #1
On Wed, 14 Jan 2015, Prathamesh Kulkarni wrote:

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

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

Otherwise this looks ok.

Thanks,
Richard.


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

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

Yes please.

Richard.

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

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

Regards,
Prathamesh
>
> Richard.
>
>>
>> Regards,
>> Prathamesh
>> >
>> > Thanks,
>> > Richard.
>> >
>> >
>> >> Thanks,
>> >> Prathamesh
>> >> >>
>> >> >> Changes:
>> >> >> * New header files dojump.h, explow.h.
>> >> >> * Modified generator programs: gengtype.c, genemit.c, genopinit.c,
>> >> >> genoutput.c, config/tilepro/gen-mul-tables.cc.
>> >> >> * Affects java front-end (java/builtins.c includes expr.h).
>> >> >>
>> >> >> Bootstrapped and tested on x86_64-unknown-linux-gnu with languages:
>> >> >> all, go, ada, jit, obj-c++.
>> >> >> Build in progress on all targets in config-list.mk with languages: all, go.
>> >> >> Assuming the build goes fine, OK to commit ?
>> >> >>
>> >> >> Thanks,
>> >> >> Prathamesh
>> >> >>>
>> >> >>> Richard.
>> >>
>> >
>> > --
>> > Richard Biener <rguenther@suse.de>
>> > SUSE LINUX GmbH, GF: Felix Imendoerffer, Jane Smithard, Jennifer Guild,
>> > Dilip Upmanyu, Graham Norton HRB 21284 (AG Nuernberg)
>>
>>
>
> --
> Richard Biener <rguenther@suse.de>
> SUSE LINUX GmbH, GF: Felix Imendoerffer, Jane Smithard, Jennifer Guild,
> Dilip Upmanyu, Graham Norton HRB 21284 (AG Nuernberg)
Eric Botcazou Jan. 21, 2015, 5:48 p.m. UTC | #5
> Thanks. I had wrongly made eliminate_constant_term() static, reverted
> that change and it builds on
> all targets in config-list.mk.
> Committed as r219655 (hopefully nothing breaks!).

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

Patch

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