summaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog717
-rw-r--r--gcc/Makefile.in2
-rw-r--r--gcc/ada/ChangeLog19
-rw-r--r--gcc/ada/gcc-interface/decl.c2
-rw-r--r--gcc/ada/gcc-interface/misc.c2
-rw-r--r--gcc/ada/gcc-interface/trans.c4
-rw-r--r--gcc/ada/gcc-interface/utils.c4
-rw-r--r--gcc/ada/gcc-interface/utils2.c3
-rw-r--r--gcc/alias.c2
-rw-r--r--gcc/asan.c4
-rw-r--r--gcc/attribs.c3
-rw-r--r--gcc/attribs.h40
-rw-r--r--gcc/builtins.c5
-rw-r--r--gcc/c-family/ChangeLog23
-rw-r--r--gcc/c-family/c-common.c7
-rw-r--r--gcc/c-family/c-cppbuiltin.c2
-rw-r--r--gcc/c-family/c-format.c1
-rw-r--r--gcc/c-family/c-lex.c2
-rw-r--r--gcc/c-family/c-pragma.c4
-rw-r--r--gcc/c-family/c-pretty-print.c2
-rw-r--r--gcc/c-family/cilk.c2
-rw-r--r--gcc/c/ChangeLog18
-rw-r--r--gcc/c/c-decl.c5
-rw-r--r--gcc/c/c-lang.c1
-rw-r--r--gcc/c/c-parser.c5
-rw-r--r--gcc/c/c-typeck.c4
-rw-r--r--gcc/calls.c4
-rw-r--r--gcc/calls.h31
-rw-r--r--gcc/cfgexpand.c5
-rw-r--r--gcc/cgraph.c3
-rw-r--r--gcc/cgraph.h2
-rw-r--r--gcc/cgraphclones.c5
-rw-r--r--gcc/cgraphunit.c3
-rw-r--r--gcc/cilk-common.c2
-rw-r--r--gcc/combine.c1
-rw-r--r--gcc/config/aarch64/aarch64-builtins.c3
-rw-r--r--gcc/config/aarch64/aarch64.c4
-rw-r--r--gcc/config/alpha/alpha.c4
-rw-r--r--gcc/config/arc/arc.c4
-rw-r--r--gcc/config/arm/arm.c4
-rw-r--r--gcc/config/avr/avr-c.c1
-rw-r--r--gcc/config/avr/avr-log.c1
-rw-r--r--gcc/config/avr/avr.c4
-rw-r--r--gcc/config/bfin/bfin.c2
-rw-r--r--gcc/config/c6x/c6x.c4
-rw-r--r--gcc/config/cr16/cr16.c2
-rw-r--r--gcc/config/cris/cris.c4
-rw-r--r--gcc/config/darwin.c3
-rw-r--r--gcc/config/epiphany/epiphany.c4
-rw-r--r--gcc/config/fr30/fr30.c2
-rw-r--r--gcc/config/frv/frv.c3
-rw-r--r--gcc/config/h8300/h8300.c4
-rw-r--r--gcc/config/i386/i386.c5
-rw-r--r--gcc/config/i386/winnt-cxx.c2
-rw-r--r--gcc/config/i386/winnt.c2
-rw-r--r--gcc/config/ia64/ia64-c.c1
-rw-r--r--gcc/config/ia64/ia64.c4
-rw-r--r--gcc/config/iq2000/iq2000.c3
-rw-r--r--gcc/config/lm32/lm32.c1
-rw-r--r--gcc/config/m32c/m32c.c3
-rw-r--r--gcc/config/m32r/m32r.c4
-rw-r--r--gcc/config/m68k/m68k.c3
-rw-r--r--gcc/config/mcore/mcore.c4
-rw-r--r--gcc/config/mep/mep.c4
-rw-r--r--gcc/config/microblaze/microblaze.c3
-rw-r--r--gcc/config/mips/mips.c4
-rw-r--r--gcc/config/mmix/mmix.c3
-rw-r--r--gcc/config/mn10300/mn10300.c3
-rw-r--r--gcc/config/moxie/moxie.c3
-rw-r--r--gcc/config/msp430/msp430.c2
-rw-r--r--gcc/config/nds32/nds32.c3
-rw-r--r--gcc/config/pa/pa.c4
-rw-r--r--gcc/config/pdp11/pdp11.c3
-rw-r--r--gcc/config/picochip/picochip.c4
-rw-r--r--gcc/config/rl78/rl78.c3
-rw-r--r--gcc/config/rs6000/rs6000-c.c2
-rw-r--r--gcc/config/rs6000/rs6000.c5
-rw-r--r--gcc/config/rx/rx.c3
-rw-r--r--gcc/config/s390/s390.c5
-rw-r--r--gcc/config/score/score.c4
-rw-r--r--gcc/config/sh/sh-c.c2
-rw-r--r--gcc/config/sh/sh.c4
-rw-r--r--gcc/config/sol2-c.c2
-rw-r--r--gcc/config/sol2-cxx.c1
-rw-r--r--gcc/config/sol2.c2
-rw-r--r--gcc/config/sparc/sparc.c4
-rw-r--r--gcc/config/spu/spu-c.c1
-rw-r--r--gcc/config/spu/spu.c4
-rw-r--r--gcc/config/stormy16/stormy16.c4
-rw-r--r--gcc/config/tilegx/tilegx.c4
-rw-r--r--gcc/config/tilepro/tilepro.c4
-rw-r--r--gcc/config/v850/v850-c.c2
-rw-r--r--gcc/config/v850/v850.c4
-rw-r--r--gcc/config/vax/vax.c2
-rw-r--r--gcc/config/vms/vms.c1
-rw-r--r--gcc/config/vxworks.c1
-rw-r--r--gcc/config/xtensa/xtensa.c4
-rw-r--r--gcc/convert.c1
-rw-r--r--gcc/coverage.c2
-rw-r--r--gcc/cp/ChangeLog62
-rw-r--r--gcc/cp/call.c3
-rw-r--r--gcc/cp/class.c4
-rw-r--r--gcc/cp/cp-gimplify.c1
-rw-r--r--gcc/cp/cvt.c1
-rw-r--r--gcc/cp/decl.c5
-rw-r--r--gcc/cp/decl2.c6
-rw-r--r--gcc/cp/error.c1
-rw-r--r--gcc/cp/except.c3
-rw-r--r--gcc/cp/init.c2
-rw-r--r--gcc/cp/lambda.c1
-rw-r--r--gcc/cp/lex.c1
-rw-r--r--gcc/cp/mangle.c2
-rw-r--r--gcc/cp/method.c2
-rw-r--r--gcc/cp/name-lookup.c3
-rw-r--r--gcc/cp/optimize.c1
-rw-r--r--gcc/cp/parser.c4
-rw-r--r--gcc/cp/pt.c4
-rw-r--r--gcc/cp/ptree.c1
-rw-r--r--gcc/cp/repo.c1
-rw-r--r--gcc/cp/rtti.c2
-rw-r--r--gcc/cp/semantics.c4
-rw-r--r--gcc/cp/tree.c3
-rw-r--r--gcc/cp/typeck.c3
-rw-r--r--gcc/cp/typeck2.c2
-rw-r--r--gcc/cp/vtable-class-hierarchy.c2
-rw-r--r--gcc/dbxout.c2
-rw-r--r--gcc/dojump.c1
-rw-r--r--gcc/dse.c1
-rw-r--r--gcc/dwarf2asm.c2
-rw-r--r--gcc/dwarf2cfi.c1
-rw-r--r--gcc/dwarf2out.c8
-rw-r--r--gcc/emit-rtl.c3
-rw-r--r--gcc/emit-rtl.h3
-rw-r--r--gcc/except.c2
-rw-r--r--gcc/explow.c1
-rw-r--r--gcc/expmed.c1
-rw-r--r--gcc/expr.c4
-rw-r--r--gcc/expr.h19
-rw-r--r--gcc/final.c1
-rw-r--r--gcc/fold-const.c3
-rw-r--r--gcc/fold-const.h172
-rw-r--r--gcc/fortran/ChangeLog27
-rw-r--r--gcc/fortran/decl.c1
-rw-r--r--gcc/fortran/iresolve.c1
-rw-r--r--gcc/fortran/match.c1
-rw-r--r--gcc/fortran/module.c1
-rw-r--r--gcc/fortran/target-memory.c1
-rw-r--r--gcc/fortran/trans-common.c3
-rw-r--r--gcc/fortran/trans-const.c1
-rw-r--r--gcc/fortran/trans-decl.c4
-rw-r--r--gcc/fortran/trans-expr.c1
-rw-r--r--gcc/fortran/trans-intrinsic.c3
-rw-r--r--gcc/fortran/trans-io.c2
-rw-r--r--gcc/fortran/trans-openmp.c1
-rw-r--r--gcc/fortran/trans-stmt.c1
-rw-r--r--gcc/fortran/trans-types.c2
-rw-r--r--gcc/fortran/trans.c2
-rw-r--r--gcc/function.c3
-rw-r--r--gcc/function.h21
-rw-r--r--gcc/gcc-symtab.h28
-rw-r--r--gcc/genattrtab.c3
-rw-r--r--gcc/genautomata.c3
-rw-r--r--gcc/genemit.c3
-rw-r--r--gcc/gengtype.c2
-rw-r--r--gcc/genopinit.c3
-rw-r--r--gcc/genoutput.c3
-rw-r--r--gcc/genpeep.c3
-rw-r--r--gcc/genpreds.c3
-rw-r--r--gcc/gimple-builder.c1
-rw-r--r--gcc/gimple-expr.c2
-rw-r--r--gcc/gimple-fold.c4
-rw-r--r--gcc/gimple-low.c2
-rw-r--r--gcc/gimple-pretty-print.c1
-rw-r--r--gcc/gimple-ssa-isolate-paths.c1
-rw-r--r--gcc/gimple-ssa-strength-reduction.c3
-rw-r--r--gcc/gimple-streamer-in.c1
-rw-r--r--gcc/gimple-walk.c1
-rw-r--r--gcc/gimple.c3
-rw-r--r--gcc/gimplify-me.c3
-rw-r--r--gcc/gimplify.c7
-rw-r--r--gcc/go/ChangeLog8
-rw-r--r--gcc/go/go-backend.c1
-rw-r--r--gcc/go/go-gcc.cc3
-rw-r--r--gcc/go/go-lang.c1
-rw-r--r--gcc/go/gofrontend/expressions.cc2
-rw-r--r--gcc/go/gofrontend/gogo-tree.cc3
-rw-r--r--gcc/graphite-sese-to-poly.c1
-rw-r--r--gcc/internal-fn.c1
-rw-r--r--gcc/ipa-devirt.c3
-rw-r--r--gcc/ipa-inline-analysis.c3
-rw-r--r--gcc/ipa-inline.c2
-rw-r--r--gcc/ipa-prop.c3
-rw-r--r--gcc/ipa-pure-const.c2
-rw-r--r--gcc/ipa-reference.c1
-rw-r--r--gcc/ipa-split.c4
-rw-r--r--gcc/ipa.c2
-rw-r--r--gcc/java/ChangeLog24
-rw-r--r--gcc/java/builtins.c2
-rw-r--r--gcc/java/class.c3
-rw-r--r--gcc/java/constants.c2
-rw-r--r--gcc/java/decl.c3
-rw-r--r--gcc/java/except.c2
-rw-r--r--gcc/java/expr.c2
-rw-r--r--gcc/java/jcf-parse.c1
-rw-r--r--gcc/java/mangle.c1
-rw-r--r--gcc/java/resource.c2
-rw-r--r--gcc/java/typeck.c2
-rw-r--r--gcc/java/verify-glue.c1
-rw-r--r--gcc/langhooks.c2
-rw-r--r--gcc/lto-cgraph.c1
-rw-r--r--gcc/lto-streamer-in.c1
-rw-r--r--gcc/lto-streamer-out.c2
-rw-r--r--gcc/lto/ChangeLog7
-rw-r--r--gcc/lto/lto-lang.c2
-rw-r--r--gcc/lto/lto-partition.c1
-rw-r--r--gcc/lto/lto.c1
-rw-r--r--gcc/objc/ChangeLog13
-rw-r--r--gcc/objc/objc-act.c3
-rw-r--r--gcc/objc/objc-encoding.c2
-rw-r--r--gcc/objc/objc-gnu-runtime-abi-01.c1
-rw-r--r--gcc/objc/objc-next-runtime-abi-01.c1
-rw-r--r--gcc/objc/objc-next-runtime-abi-02.c1
-rw-r--r--gcc/objc/objc-runtime-shared-support.c1
-rw-r--r--gcc/omp-low.c3
-rw-r--r--gcc/optabs.c3
-rw-r--r--gcc/optabs.h1
-rw-r--r--gcc/passes.c2
-rw-r--r--gcc/predict.c1
-rw-r--r--gcc/print-rtl.c1
-rw-r--r--gcc/print-rtl.h27
-rw-r--r--gcc/print-tree.c3
-rw-r--r--gcc/print-tree.h46
-rw-r--r--gcc/realmpfr.c1
-rw-r--r--gcc/reg-stack.c1
-rw-r--r--gcc/sdbout.c2
-rw-r--r--gcc/sese.c1
-rw-r--r--gcc/simplify-rtx.c1
-rw-r--r--gcc/stmt.c2
-rw-r--r--gcc/stmt.h34
-rw-r--r--gcc/stor-layout.c4
-rw-r--r--gcc/stor-layout.h115
-rw-r--r--gcc/stringpool.h43
-rw-r--r--gcc/symtab.c6
-rw-r--r--gcc/targhooks.c3
-rw-r--r--gcc/testsuite/ChangeLog5
-rw-r--r--gcc/testsuite/gcc.dg/plugin/selfassign.c1
-rw-r--r--gcc/testsuite/gcc.dg/plugin/start_unit_plugin.c1
-rw-r--r--gcc/toplev.c2
-rw-r--r--gcc/trans-mem.c5
-rw-r--r--gcc/trans-mem.h11
-rw-r--r--gcc/tree-affine.c1
-rw-r--r--gcc/tree-browser.c1
-rw-r--r--gcc/tree-call-cdce.c2
-rw-r--r--gcc/tree-cfg.c5
-rw-r--r--gcc/tree-cfgcleanup.c2
-rw-r--r--gcc/tree-complex.c3
-rw-r--r--gcc/tree-data-ref.c1
-rw-r--r--gcc/tree-dfa.c3
-rw-r--r--gcc/tree-eh.c3
-rw-r--r--gcc/tree-emutls.c3
-rw-r--r--gcc/tree-if-conv.c2
-rw-r--r--gcc/tree-inline.c4
-rw-r--r--gcc/tree-inline.h9
-rw-r--r--gcc/tree-into-ssa.c2
-rw-r--r--gcc/tree-iterator.h2
-rw-r--r--gcc/tree-loop-distribution.c2
-rw-r--r--gcc/tree-nested.c2
-rw-r--r--gcc/tree-nrv.c1
-rw-r--r--gcc/tree-object-size.c2
-rw-r--r--gcc/tree-object-size.h26
-rw-r--r--gcc/tree-outof-ssa.c2
-rw-r--r--gcc/tree-parloops.c3
-rw-r--r--gcc/tree-phinodes.c1
-rw-r--r--gcc/tree-predcom.c2
-rw-r--r--gcc/tree-pretty-print.c2
-rw-r--r--gcc/tree-profile.c3
-rw-r--r--gcc/tree-scalar-evolution.c2
-rw-r--r--gcc/tree-sra.c3
-rw-r--r--gcc/tree-ssa-address.c3
-rw-r--r--gcc/tree-ssa-alias.c2
-rw-r--r--gcc/tree-ssa-ccp.c2
-rw-r--r--gcc/tree-ssa-coalesce.c1
-rw-r--r--gcc/tree-ssa-copy.c1
-rw-r--r--gcc/tree-ssa-copyrename.c2
-rw-r--r--gcc/tree-ssa-dce.c3
-rw-r--r--gcc/tree-ssa-dom.c2
-rw-r--r--gcc/tree-ssa-dse.c2
-rw-r--r--gcc/tree-ssa-forwprop.c3
-rw-r--r--gcc/tree-ssa-ifcombine.c1
-rw-r--r--gcc/tree-ssa-live.c2
-rw-r--r--gcc/tree-ssa-loop-im.c1
-rw-r--r--gcc/tree-ssa-loop-ivcanon.c1
-rw-r--r--gcc/tree-ssa-loop-ivopts.c3
-rw-r--r--gcc/tree-ssa-loop-manip.c1
-rw-r--r--gcc/tree-ssa-loop-niter.c3
-rw-r--r--gcc/tree-ssa-loop-prefetch.c1
-rw-r--r--gcc/tree-ssa-math-opts.c3
-rw-r--r--gcc/tree-ssa-operands.c3
-rw-r--r--gcc/tree-ssa-phiopt.c3
-rw-r--r--gcc/tree-ssa-phiprop.c1
-rw-r--r--gcc/tree-ssa-pre.c2
-rw-r--r--gcc/tree-ssa-propagate.c1
-rw-r--r--gcc/tree-ssa-reassoc.c3
-rw-r--r--gcc/tree-ssa-sccvn.c3
-rw-r--r--gcc/tree-ssa-sink.c1
-rw-r--r--gcc/tree-ssa-strlen.c3
-rw-r--r--gcc/tree-ssa-structalias.c4
-rw-r--r--gcc/tree-ssa-tail-merge.c2
-rw-r--r--gcc/tree-ssa-ter.c1
-rw-r--r--gcc/tree-ssa-threadedge.c1
-rw-r--r--gcc/tree-ssa-uncprop.c1
-rw-r--r--gcc/tree-ssa.c2
-rw-r--r--gcc/tree-ssanames.c2
-rw-r--r--gcc/tree-stdarg.c1
-rw-r--r--gcc/tree-streamer-in.c1
-rw-r--r--gcc/tree-streamer-out.c1
-rw-r--r--gcc/tree-switch-conversion.c3
-rw-r--r--gcc/tree-tailcall.c3
-rw-r--r--gcc/tree-vect-data-refs.c2
-rw-r--r--gcc/tree-vect-generic.c2
-rw-r--r--gcc/tree-vect-loop-manip.c1
-rw-r--r--gcc/tree-vect-loop.c2
-rw-r--r--gcc/tree-vect-patterns.c2
-rw-r--r--gcc/tree-vect-slp.c2
-rw-r--r--gcc/tree-vect-stmts.c2
-rw-r--r--gcc/tree-vectorizer.c1
-rw-r--r--gcc/tree-vrp.c3
-rw-r--r--gcc/tree.c6
-rw-r--r--gcc/tree.h634
-rw-r--r--gcc/tsan.c2
-rw-r--r--gcc/ubsan.c2
-rw-r--r--gcc/value-prof.c3
-rw-r--r--gcc/var-tracking.c3
-rw-r--r--gcc/varasm.c4
-rw-r--r--gcc/varasm.h69
-rw-r--r--gcc/varpool.c1
-rw-r--r--gcc/vmsdbgout.c1
-rw-r--r--gcc/vtable-verify.c1
-rw-r--r--gcc/xcoffout.c1
339 files changed, 2433 insertions, 568 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index d1b78d1d512..9e82c2fb169 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -911,6 +911,723 @@
* config/tilepro/tilepro.c: Likewise.
* config/xtensa/xtensa.c: Likewise.
+2013-11-14 Diego Novillo <dnovillo@google.com>
+
+ * Makefile.in (PLUGIN_HEADERS): Add stringpool.h.
+
+2013-11-14 Diego Novillo <dnovillo@google.com>
+
+ * tree.h: Include fold-const.h.
+ (aggregate_value_p): Moved to function.h.
+ (alloca_call_p): Moved to calls.h.
+ (allocate_struct_function): Moved to function.h.
+ (apply_tm_attr): Moved to attribs.h.
+ (array_at_struct_end_p): Moved to expr.h.
+ (array_ref_element_size): Moved to tree-dfa.h.
+ (array_ref_low_bound): Moved to tree-dfa.h.
+ (array_ref_up_bound): Moved to tree.h.
+ (assemble_alias): Moved to cgraph.h.
+ (bit_from_pos): Moved to stor-layout.h.
+ (build_addr): Moved to tree-nested.h.
+ (build_duplicate_type): Moved to tree-inline.h.
+ (build_fold_addr_expr): Moved to fold-const.h.
+ (build_fold_addr_expr_with_type): Moved to fold-const.h.
+ (build_fold_addr_expr_with_type_loc): Moved to fold-const.h.
+ (build_fold_indirect_ref): Moved to fold-const.h.
+ (build_fold_indirect_ref_loc): Moved to fold-const.h.
+ (build_personality_function): Moved to tree.h.
+ (build_range_check): Moved to fold-const.h.
+ (build_simple_mem_ref): Moved to fold-const.h.
+ (build_simple_mem_ref_loc): Moved to fold-const.h.
+ (build_tm_abort_call): Moved to trans-mem.h.
+ (byte_from_pos): Moved to stor-layout.h.
+ (call_expr_flags): Moved to calls.h.
+ (can_move_by_pieces): Moved to expr.h.
+ (categorize_ctor_elements): Moved to expr.h.
+ (change_decl_assembler_name): Moved to gcc-symtab.h.
+ (combine_comparisons): Moved to fold-const.h.
+ (complete_ctor_at_level_p): Moved to tree.h.
+ (component_ref_field_offset): Moved to tree-dfa.h.
+ (compute_builtin_object_size): Moved to tree-object-size.h.
+ (compute_record_mode): Moved to stor-layout.h.
+ (constant_boolean_node): Moved to fold-const.h.
+ (constructor_static_from_elts_p): Moved to varasm.h.
+ (cxx11_attribute_p): Moved to attribs.h.
+ (debug_body): Moved to print-tree.h.
+ (debug_find_tree): Moved to tree-inline.h.
+ (debug_fold_checksum): Moved to fold-const.h.
+ (debug_head): Moved to print-tree.h.
+ (debug_head): Moved to print-tree.h.
+ (debug_raw): Moved to print-tree.h.
+ (debug_tree): Moved to print-tree.h.
+ (debug_vec_tree): Moved to print-tree.h.
+ (debug_verbose): Moved to print-tree.h.
+ (debug_verbose): Moved to print-tree.h.
+ (decl_attributes): Moved to attribs.h.
+ (decl_binds_to_current_def_p): Moved to varasm.h.
+ (decl_default_tls_model): Moved to varasm.h.
+ (decl_replaceable_p): Moved to varasm.h.
+ (div_if_zero_remainder): Moved to fold-const.h.
+ (double_int mem_ref_offset): Moved to fold-const.h.
+ (dump_addr): Moved to print-tree.h.
+ (element_precision): Moved to machmode.h.
+ (expand_dummy_function_end): Moved to function.h.
+ (expand_function_end): Moved to function.h.
+ (expand_function_start): Moved to function.h.
+ (expand_label): Moved to stmt.h.
+ (expr_first): Moved to tree-iterator.h.
+ (expr_last): Moved to tree-iterator.h.
+ (finalize_size_functions): Moved to stor-layout.h.
+ (finish_builtin_struct): Moved to stor-layout.h.
+ (finish_record_layout): Moved to stor-layout.h.
+ (fixup_signed_type): Moved to stor-layout.h.
+ (fixup_unsigned_type): Moved to stor-layout.h.
+ (flags_from_decl_or_type): Moved to calls.h.
+ (fold): Moved to fold-const.h.
+ (fold_abs_const): Moved to fold-const.h.
+ (fold_binary): Moved to fold-const.h.
+ (fold_binary_loc): Moved to fold-const.h.
+ (fold_binary_to_constant): Moved to fold-const.h.
+ (fold_build1): Moved to fold-const.h.
+ (fold_build1_initializer_loc): Moved to fold-const.h.
+ (fold_build1_loc): Moved to fold-const.h.
+ (fold_build1_stat_loc): Moved to fold-const.h.
+ (fold_build2): Moved to fold-const.h.
+ (fold_build2_initializer_loc): Moved to fold-const.h.
+ (fold_build2_loc): Moved to fold-const.h.
+ (fold_build2_stat_loc): Moved to fold-const.h.
+ (fold_build3): Moved to fold-const.h.
+ (fold_build3_loc): Moved to fold-const.h.
+ (fold_build3_stat_loc): Moved to fold-const.h.
+ (fold_build_call_array): Moved to fold-const.h.
+ (fold_build_call_array_initializer): Moved to fold-const.h.
+ (fold_build_call_array_initializer_loc): Moved to fold-const.h.
+ (fold_build_call_array_loc): Moved to fold-const.h.
+ (fold_build_cleanup_point_expr): Moved to fold-const.h.
+ (fold_convert): Moved to fold-const.h.
+ (fold_convert_loc): Moved to fold-const.h.
+ (fold_convertible_p): Moved to fold-const.h.
+ (fold_defer_overflow_warnings): Moved to fold-const.h.
+ (fold_deferring_overflow_warnings_p): Moved to fold-const.h.
+ (fold_fma): Moved to fold-const.h.
+ (fold_ignored_result): Moved to fold-const.h.
+ (fold_indirect_ref): Moved to fold-const.h.
+ (fold_indirect_ref_1): Moved to fold-const.h.
+ (fold_indirect_ref_loc): Moved to fold-const.h.
+ (fold_read_from_constant_string): Moved to fold-const.h.
+ (fold_real_zero_addition_p): Moved to fold-const.h.
+ (fold_single_bit_test): Moved to fold-const.h.
+ (fold_strip_sign_ops): Moved to fold-const.h.
+ (fold_ternary): Moved to fold-const.h.
+ (fold_ternary_loc): Moved to fold-const.h.
+ (fold_unary): Moved to tree-data-ref.h.
+ (fold_unary_ignore_overflow): Moved to fold-const.h.
+ (fold_unary_ignore_overflow_loc): Moved to fold-const.h.
+ (fold_unary_loc): Moved to fold-const.h.
+ (fold_unary_to_constant): Moved to fold-const.h.
+ (fold_undefer_and_ignore_overflow_warnings): Moved to fold-const.h.
+ (fold_undefer_overflow_warnings): Moved to fold-const.h.
+ (folding_initializer): Moved to fold-const.h.
+ (free_temp_slots): Moved to function.h.
+ (generate_setjmp_warnings): Moved to function.h.
+ (get_attribute_name): Moved to attribs.h.
+ (get_identifier): Moved to stringpool.h.
+ (get_identifier_with_length): Moved to stringpool.h.
+ (get_inner_reference): Moved to tree.h.
+ (gimple_alloca_call_p): Moved to calls.h.
+ (gimplify_parameters): Moved to function.h.
+ (highest_pow2_factor): Moved to expr.h.
+ (indent_to): Moved to print-tree.h.
+ (init_attributes): Moved to attribs.h.
+ (init_dummy_function_start): Moved to function.h.
+ (init_function_start): Moved to function.h.
+ (init_inline_once): Moved to tree-inline.h.
+ (init_object_sizes): Moved to tree-object-size.h.
+ (init_temp_slots): Moved to function.h.
+ (init_tree_optimization_optabs): Moved to optabs.h.
+ (initialize_sizetypes): Moved to stor-layout.h.
+ (initializer_constant_valid_for_bitfield_p): Moved to varasm.h.
+ (initializer_constant_valid_p): Moved to varasm.h.
+ (int_const_binop): Moved to fold-const.h.
+ (internal_reference_types): Moved to stor-layout.h.
+ (invert_tree_comparison): Moved to fold-const.h.
+ (invert_truthvalue): Moved to fold-const.h.
+ (invert_truthvalue_loc): Moved to fold-const.h.
+ (is_tm_ending_fndecl): Moved to trans-mem.h.
+ (is_tm_may_cancel_outer): Moved to trans-mem.h.
+ (is_tm_pure): Moved to trans-mem.h.
+ (is_tm_safe): Moved to trans-mem.h.
+ (layout_decl): Moved to stor-layout.h.
+ (layout_type): Moved to stor-layout.h.
+ (lookup_attribute_spec): Moved to attribs.h.
+ (make_accum_type): Moved to stor-layout.h.
+ (make_decl_one_only): Moved to varasm.h.
+ (make_decl_rtl): Moved to tree.h.
+ (make_decl_rtl_for_debug): Moved to varasm.h.
+ (make_fract_type): Moved to stor-layout.h.
+ (make_or_reuse_sat_signed_accum_type): Moved to stor-layout.h.
+ (make_or_reuse_sat_signed_fract_type): Moved to stor-layout.h.
+ (make_or_reuse_sat_unsigned_accum_type): Moved to stor-layout.h.
+ (make_or_reuse_sat_unsigned_fract_type): Moved to stor-layout.h.
+ (make_or_reuse_signed_accum_type): Moved to stor-layout.h.
+ (make_or_reuse_signed_fract_type): Moved to stor-layout.h.
+ (make_or_reuse_unsigned_accum_type): Moved to stor-layout.h.
+ (make_or_reuse_unsigned_fract_type): Moved to stor-layout.h.
+ (make_range): Moved to fold-const.h.
+ (make_range_step): Moved to fold-const.h.
+ (make_sat_signed_accum_type): Moved to stor-layout.h.
+ (make_sat_signed_fract_type): Moved to stor-layout.h.
+ (make_sat_unsigned_accum_type): Moved to stor-layout.h.
+ (make_sat_unsigned_fract_type): Moved to stor-layout.h.
+ (make_signed_accum_type): Moved to stor-layout.h.
+ (make_signed_fract_type): Moved to stor-layout.h.
+ (make_signed_type): Moved to stor-layout.h.
+ (make_unsigned_accum_type): Moved to stor-layout.h.
+ (make_unsigned_fract_type): Moved to stor-layout.h.
+ (make_unsigned_type): Moved to stor-layout.h.
+ (mark_decl_referenced): Moved to varasm.h.
+ (mark_referenced): Moved to varasm.h.
+ (may_negate_without_overflow_p): Moved to fold-const.h.
+ (maybe_get_identifier): Moved to stringpool.h.
+ (merge_ranges): Moved to fold-const.h.
+ (merge_weak): Moved to varasm.h.
+ (mode_for_size_tree): Moved to stor-layout.h.
+ (multiple_of_p): Moved to fold-const.h.
+ (must_pass_in_stack_var_size): Moved to calls.h.
+ (must_pass_in_stack_var_size_or_pad): Moved to calls.h.
+ (native_encode_expr): Moved to fold-const.h.
+ (native_interpret_expr): Moved to fold-const.h.
+ (non_lvalue): Moved to fold-const.h.
+ (non_lvalue_loc): Moved to fold-const.h.
+ (normalize_offset): Moved to stor-layout.h.
+ (normalize_rli): Moved to stor-layout.h.
+ (notice_global_symbol): Moved to varasm.h.
+ (omit_one_operand): Moved to fold-const.h.
+ (omit_one_operand_loc): Moved to fold-const.h.
+ (omit_two_operands): Moved to fold-const.h.
+ (omit_two_operands_loc): Moved to fold-const.h.
+ (operand_equal_p): Moved to tree-data-ref.h.
+ (parse_input_constraint): Moved to stmt.h.
+ (parse_output_constraint): Moved to stmt.h.
+ (place_field): Moved to stor-layout.h.
+ (pop_function_context): Moved to function.h.
+ (pop_temp_slots): Moved to function.h.
+ (pos_from_bit): Moved to stor-layout.h.
+ (preserve_temp_slots): Moved to function.h.
+ (print_node): Moved to print-tree.h.
+ (print_node_brief): Moved to print-tree.h.
+ (print_rtl): Moved to rtl.h.
+ (process_pending_assemble_externals): Moved to varasm.h.
+ (ptr_difference_const): Moved to fold-const.h.
+ (push_function_context): Moved to function.h.
+ (push_struct_function): Moved to function.h.
+ (push_temp_slots): Moved to function.h.
+ (record_tm_replacement): Moved to trans-mem.h.
+ (relayout_decl): Moved to stor-layout.h.
+ (resolve_asm_operand_names): Moved to stmt.h.
+ (resolve_unique_section): Moved to varasm.h.
+ (rli_size_so_far): Moved to stor-layout.h.
+ (rli_size_unit_so_far): Moved to stor-layout.h.
+ (round_down): Moved to fold-const.h.
+ (round_down_loc): Moved to fold-const.h.
+ (round_up): Moved to fold-const.h.
+ (round_up_loc): Moved to fold-const.h.
+ (set_decl_incoming_rtl): Moved to emit-rtl.h.
+ (set_decl_rtl): Moved to tree.h.
+ (set_min_and_max_values_for_integral_type): Moved to stor-layout.h.
+ (set_user_assembler_name): Moved to varasm.h.
+ (setjmp_call_p): Moved to calls.h.
+ (size_binop): Moved to fold-const.h.
+ (size_binop_loc): Moved to fold-const.h.
+ (size_diffop): Moved to fold-const.h.
+ (size_diffop_loc): Moved to fold-const.h.
+ (size_int_kind): Moved to fold-const.h.
+ (stack_protect_epilogue): Moved to function.h.
+ (start_record_layout): Moved to stor-layout.h.
+ (supports_one_only): Moved to varasm.h.
+ (swap_tree_comparison): Moved to fold-const.h.
+ (tm_malloc_replacement): Moved to trans-mem.h.
+ (tree build_fold_addr_expr_loc): Moved to fold-const.h.
+ (tree build_invariant_address): Moved to fold-const.h.
+ (tree_binary_nonnegative_warnv_p): Moved to fold-const.h.
+ (tree_binary_nonzero_warnv_p): Moved to fold-const.h.
+ (tree_call_nonnegative_warnv_p): Moved to fold-const.h.
+ (tree_expr_nonnegative_p): Moved to fold-const.h.
+ (tree_expr_nonnegative_warnv_p): Moved to fold-const.h.
+ (tree_output_constant_def): Moved to varasm.h.
+ (tree_overlaps_hard_reg_set): Moved to stmt.h.
+ (tree_single_nonnegative_warnv_p): Moved to fold-const.h.
+ (tree_single_nonzero_warnv_p): Moved to fold-const.h.
+ (tree_swap_operands_p): Moved to fold-const.h.
+ (tree_unary_nonnegative_warnv_p): Moved to fold-const.h.
+ (tree_unary_nonzero_warnv_p): Moved to fold-const.h.
+ (update_alignment_for_field): Moved to stor-layout.h.
+ (use_register_for_decl): Moved to function.h.
+ (variable_size): Moved to rtl.h.
+ (vector_type_mode): Moved to stor-layout.h.
+ * cgraph.h: Corresponding changes.
+ * emit-rtl.h: Corresponding changes.
+ * expr.h: Corresponding changes.
+ * function.h: Corresponding changes.
+ * optabs.h: Corresponding changes.
+ * trans-mem.h: Corresponding changes.
+ Protect against multiple inclusion.
+ * tree-inline.h: Corresponding changes.
+ * tree-iterator.h: Corresponding changes.
+ * tree-dfa.h: Include expr.h.
+ * tree-ssanames.h: Include stringpool.h.
+ * attribs.h: New file.
+ * calls.h: New file.
+ * fold-const.h: New file.
+ * gcc-symtab.h: New file.
+ * print-rtl.h: New file.
+ * print-tree.h: New file.
+ * stmt.h: New file.
+ * stor-layout.h: New file.
+ * strinpool.h: New file.
+ * tree-nested.h: New file
+ * tree-object-size.h: New file.
+ * varasm.h: New file.
+
+2013-11-14 Diego Novillo <dnovillo@google.com>
+
+ * alias.c: Include varasm.h.
+ Include expr.h.
+ * asan.c: Include calls.h.
+ Include stor-layout.h.
+ Include varasm.h.
+ * attribs.c: Include stringpool.h.
+ Include attribs.h.
+ Include stor-layout.h.
+ * builtins.c: Include stringpool.h.
+ Include stor-layout.h.
+ Include calls.h.
+ Include varasm.h.
+ Include tree-object-size.h.
+ * calls.c: Include stor-layout.h.
+ Include varasm.h.
+ Include stringpool.h.
+ Include attribs.h.
+ * cfgexpand.c: Include stringpool.h.
+ Include varasm.h.
+ Include stor-layout.h.
+ Include stmt.h.
+ Include print-tree.h.
+ * cgraph.c: Include varasm.h.
+ Include calls.h.
+ Include print-tree.h.
+ * cgraphclones.c: Include stringpool.h.
+ Include function.h.
+ Include emit-rtl.h.
+ Move inclusion of rtl.h earlier in the file.
+ * cgraphunit.c: Include varasm.h.
+ Include stor-layout.h.
+ Include stringpool.h.
+ * cilk-common.c: Include stringpool.h.
+ Include stor-layout.h.
+ * combine.c: Include stor-layout.h.
+ * config/aarch64/aarch64-builtins.c: Include stor-layout.h.
+ Include stringpool.h.
+ Include calls.h.
+ * config/aarch64/aarch64.c: Include stringpool.h.
+ Include stor-layout.h.
+ Include calls.h.
+ Include varasm.h.
+ * config/alpha/alpha.c: Include stor-layout.h.
+ Include calls.h.
+ Include varasm.h.
+ * config/arc/arc.c: Include varasm.h.
+ Include stor-layout.h.
+ Include stringpool.h.
+ Include calls.h.
+ * config/arm/arm.c: Include stringpool.h.
+ Include stor-layout.h.
+ Include calls.h.
+ Include varasm.h.
+ * config/avr/avr-c.c: Include stor-layout.h.
+ * config/avr/avr-log.c: Include print-tree.h.
+ * config/avr/avr.c: Include print-tree.h.
+ Include calls.h.
+ Include stor-layout.h.
+ Include stringpool.h.
+ * config/bfin/bfin.c: Include varasm.h.
+ Include calls.h.
+ * config/c6x/c6x.c: Include stor-layout.h.
+ Include varasm.h.
+ Include calls.h.
+ Include stringpool.h.
+ * config/cr16/cr16.c: Include stor-layout.h.
+ Include calls.h.
+ * config/cris/cris.c: Include varasm.h.
+ Include stor-layout.h.
+ Include calls.h.
+ Include stmt.h.
+ * config/darwin.c: Include stringpool.h.
+ Include varasm.h.
+ Include stor-layout.h.
+ * config/epiphany/epiphany.c: Include stor-layout.h.
+ Include varasm.h.
+ Include calls.h.
+ Include stringpool.h.
+ * config/fr30/fr30.c: Include stor-layout.h.
+ Include varasm.h.
+ * config/frv/frv.c: Include varasm.h.
+ Include stor-layout.h.
+ Include stringpool.h.
+ * config/h8300/h8300.c: Include stor-layout.h.
+ Include varasm.h.
+ Include calls.h.
+ Include stringpool.h.
+ * config/i386/i386.c: Include stringpool.h.
+ Include attribs.h.
+ Include calls.h.
+ Include stor-layout.h.
+ Include varasm.h.
+ * config/i386/winnt-cxx.c: Include stringpool.h.
+ Include attribs.h.
+ * config/i386/winnt.c: Include stringpool.h.
+ Include varasm.h.
+ * config/ia64/ia64-c.c: Include stringpool.h.
+ * config/ia64/ia64.c: Include stringpool.h.
+ Include stor-layout.h.
+ Include calls.h.
+ Include varasm.h.
+ * config/iq2000/iq2000.c: Include stor-layout.h.
+ Include calls.h.
+ Include varasm.h.
+ * config/lm32/lm32.c: Include calls.h.
+ * config/m32c/m32c.c: Include stor-layout.h.
+ Include varasm.h.
+ Include calls.h.
+ * config/m32r/m32r.c: Include stor-layout.h.
+ Include varasm.h.
+ Include stringpool.h.
+ Include calls.h.
+ * config/m68k/m68k.c: Include calls.h.
+ Include stor-layout.h.
+ Include varasm.h.
+ * config/mcore/mcore.c: Include stor-layout.h.
+ Include varasm.h.
+ Include stringpool.h.
+ Include calls.h.
+ * config/mep/mep.c: Include varasm.h.
+ Include calls.h.
+ Include stringpool.h.
+ Include stor-layout.h.
+ * config/microblaze/microblaze.c: Include varasm.h.
+ Include stor-layout.h.
+ Include calls.h.
+ * config/mips/mips.c: Include varasm.h.
+ Include stringpool.h.
+ Include stor-layout.h.
+ Include calls.h.
+ * config/mmix/mmix.c: Include varasm.h.
+ Include stor-layout.h.
+ Include calls.h.
+ * config/mn10300/mn10300.c: Include stor-layout.h.
+ Include varasm.h.
+ Include calls.h.
+ * config/moxie/moxie.c: Include stor-layout.h.
+ Include varasm.h.
+ Include calls.h.
+ * config/msp430/msp430.c: Include stor-layout.h.
+ Include calls.h.
+ * config/nds32/nds32.c: Include stor-layout.h.
+ Include varasm.h.
+ Include calls.h.
+ * config/pa/pa.c: Include stor-layout.h.
+ Include stringpool.h.
+ Include varasm.h.
+ Include calls.h.
+ * config/pdp11/pdp11.c: Include stor-layout.h.
+ Include varasm.h.
+ Include calls.h.
+ * config/picochip/picochip.c: Include calls.h.
+ Include stor-layout.h.
+ Include stringpool.h.
+ Include varasm.h.
+ * config/rl78/rl78.c: Include varasm.h.
+ Include stor-layout.h.
+ Include calls.h.
+ * config/rs6000/rs6000-c.c: Include stor-layout.h.
+ Include stringpool.h.
+ * config/rs6000/rs6000.c: Include stringpool.h.
+ Include stor-layout.h.
+ Include calls.h.
+ Include print-tree.h.
+ Include varasm.h.
+ * config/rx/rx.c: Include varasm.h.
+ Include stor-layout.h.
+ Include calls.h.
+ * config/s390/s390.c: Include print-tree.h.
+ Include stringpool.h.
+ Include stor-layout.h.
+ Include varasm.h.
+ Include calls.h.
+ * config/score/score.c: Include stringpool.h.
+ Include calls.h.
+ Include varasm.h.
+ Include stor-layout.h.
+ * config/sh/sh-c.c: Include stringpool.h.
+ Include attribs.h.h.
+ * config/sh/sh.c: Include stringpool.h.
+ Include stor-layout.h.
+ Include calls.h.
+ Include varasm.h.
+ * config/sol2-c.c: Include stringpool.h.
+ Include attribs.h.
+ * config/sol2-cxx.c: Include stringpool.h.
+ * config/sol2.c: Include stringpool.h.
+ Include varasm.h.
+ * config/sparc/sparc.c: Include stringpool.h.
+ Include stor-layout.h.
+ Include calls.h.
+ Include varasm.h.
+ * config/spu/spu-c.c: Include stringpool.h.
+ * config/spu/spu.c: Include stringpool.h.
+ Include stor-layout.h.
+ Include calls.h.
+ Include varasm.h.
+ * config/stormy16/stormy16.c: Include stringpool.h.
+ Include stor-layout.h.
+ Include varasm.h.
+ Include calls.h.
+ * config/tilegx/tilegx.c: Include stringpool.h.
+ Include stor-layout.h.
+ Include varasm.h.
+ Include calls.h.
+ * config/tilepro/tilepro.c: Include stringpool.h.
+ Include stor-layout.h.
+ Include varasm.h.
+ Include calls.h.
+ * config/v850/v850-c.c: Include stringpool.h.
+ Include attribs.h.
+ * config/v850/v850.c: Include stringpool.h.
+ Include stor-layout.h.
+ Include varasm.h.
+ Include calls.h.
+ * config/vax/vax.c: Include calls.h.
+ Include varasm.h.
+ * config/vms/vms.c: Include stringpool.h.
+ * config/vxworks.c: Include stringpool.h.
+ * config/xtensa/xtensa.c: Include stringpool.h.
+ Include stor-layout.h.
+ Include calls.h.
+ Include varasm.h.
+ * convert.c: Include stor-layout.h.
+ * coverage.c: Include stringpool.h.
+ Include stor-layout.h.
+ * dbxout.c: Include varasm.h.
+ Include stor-layout.h.
+ * dojump.c: Include stor-layout.h.
+ * dse.c: Include stor-layout.h.
+ * dwarf2asm.c: Include stringpool.h.
+ Include varasm.h.
+ * dwarf2cfi.c: Include stor-layout.h.
+ * dwarf2out.c: Include rtl.h.
+ Include stringpool.h.
+ Include stor-layout.h.
+ Include varasm.h.
+ Include function.h.
+ Include emit-rtl.h.
+ Move inclusion of rtl.h earlier in the file.
+ * emit-rtl.c: Include varasm.h.
+ * except.c: Include stringpool.h.
+ Include stor-layout.h.
+ * explow.c: Include stor-layout.h.
+ * expmed.c: Include stor-layout.h.
+ * expr.c: Include stringpool.h.
+ Include stor-layout.h.
+ Include attribs.h.
+ Include varasm.h.
+ * final.c: Include varasm.h.
+ * fold-const.c: Include stor-layout.h.
+ Include calls.h.
+ Include tree-iterator.h.
+ * function.c: Include stor-layout.h.
+ Include varasm.h.
+ Include stringpool.h.
+ * genattrtab.c (write_header): Emit includes for varasm.h,
+ stor-layout.h and calls.h.
+ * genautomata.c (main): Likewise.
+ * genemit.c: Likewise.
+ * genopinit.c: Likewise.
+ * genoutput.c (output_prologue): Likewise.
+ * genpeep.c: Likewise.
+ * genpreds.c (write_insn_preds_c): Likewise.
+ * gengtype.c (open_base_files): Add stringpool.h.
+ * gimple-expr.c: Include stringpool.h.
+ Include stor-layout.h.
+ * gimple-fold.c: Include stringpool.h.
+ Include expr.h.
+ Include stmt.h.
+ Include stor-layout.h.
+ * gimple-low.c: Include tree-nested.h.
+ Include calls.h.
+ * gimple-pretty-print.c: Include stringpool.h.
+ * gimple-ssa-strength-reduction.c: Include stor-layout.h.
+ Include expr.h.
+ * gimple-walk.c: Include stmt.h.
+ * gimple.c: Include calls.h.
+ Include stmt.h.
+ Include stor-layout.h.
+ * gimplify.c: Include stringpool.h.
+ Include calls.h.
+ Include varasm.h.
+ Include stor-layout.h.
+ Include stmt.h.
+ Include print-tree.h.
+ Include expr.h.
+ * gimplify-me.c: Include stmt.h
+ Include stor-layout.h
+ * internal-fn.c: Include stor-layout.h.
+ * ipa-devirt.c: Include print-tree.h.
+ Include calls.h.
+ * ipa-inline-analysis.c: Include stor-layout.h.
+ Include stringpool.h.
+ Include print-tree.h.
+ * ipa-inline.c: Include trans-mem.h.
+ Include calls.h.
+ * ipa-prop.c: Include expr.h.
+ Include stor-layout.h.
+ Include print-tree.h.
+ * ipa-pure-const.c: Include print-tree.h.
+ Include calls.h.
+ * ipa-reference.c: Include calls.h.
+ * ipa-split.c: Include stringpool.h.
+ Include expr.h.
+ Include calls.h.
+ * ipa.c: Include calls.h.
+ Include stringpool.h.
+ * langhooks.c: Include stringpool.h.
+ Include attribs.h.
+ * lto-cgraph.c: Include stringpool.h.
+ * lto-streamer-in.c: Include stringpool.h.
+ * lto-streamer-out.c: Include stor-layout.h.
+ Include stringpool.h.
+ * omp-low.c: Include stringpool.h.
+ Include stor-layout.h.
+ Include expr.h.
+ * optabs.c: Include stor-layout.h.
+ Include stringpool.h.
+ Include varasm.h.
+ * passes.c: Include varasm.h.
+ * predict.c: Include calls.h.
+ * print-rtl.c: Include print-tree.h.
+ * print-tree.c: Include varasm.h.
+ Include print-rtl.h.
+ Include stor-layout.h.
+ * realmpfr.c: Include stor-layout.h.
+ * reg-stack.c: Include varasm.h.
+ * sdbout.c: Include varasm.h.
+ Include stor-layout.h.
+ * simplify-rtx.c: Include varasm.h.
+ * stmt.c: Include varasm.h.
+ Include stor-layout.h.
+ * stor-layout.c: Include stor-layout.h.
+ Include stringpool.h.
+ Include varasm.h.
+ Include print-tree.h.
+ * symtab.c: Include rtl.h.
+ Include print-tree.h.
+ Include varasm.h.
+ Include function.h.
+ Include emit-rtl.h.
+ * targhooks.c: Include stor-layout.h.
+ Include varasm.h.
+ * toplev.c: Include varasm.h.
+ Include tree-inline.h.
+ * trans-mem.c: Include calls.h.
+ Include function.h.
+ Include rtl.h.
+ Include emit-rtl.h.
+ * tree-affine.c: Include expr.h.
+ * tree-browser.c: Include print-tree.h.
+ * tree-call-cdce.c: Include stor-layout.h.
+ * tree-cfg.c: Include trans-mem.h.
+ Include stor-layout.h.
+ Include print-tree.h.
+ * tree-complex.c: Include stor-layout.h.
+ * tree-data-ref.c: Include expr.h.
+ * tree-dfa.c: Include stor-layout.h.
+ * tree-eh.c: Include expr.h.
+ Include calls.h.
+ * tree-emutls.c: Include stor-layout.h.
+ Include varasm.h.
+ * tree-if-conv.c: Include stor-layout.h.
+ * tree-inline.c: Include stor-layout.h.
+ Include calls.h.
+ * tree-loop-distribution.c: Include stor-layout.h.
+ * tree-nested.c: Include stringpool.h.
+ Include stor-layout.h.
+ * tree-object-size.c: Include tree-object-size.h.
+ * tree-outof-ssa.c: Include stor-layout.h.
+ * tree-parloops.c: Include stor-layout.h.
+ Include tree-nested.h.
+ * tree-pretty-print.c: Include stor-layout.h.
+ Include expr.h.
+ * tree-profile.c: Include varasm.h.
+ Include tree-nested.h.
+ * tree-scalar-evolution.c: Include expr.h.
+ * tree-sra.c: Include stor-layout.h.
+ * tree-ssa-address.c: Include stor-layout.h.
+ * tree-ssa-ccp.c: Include stor-layout.h.
+ * tree-ssa-dce.c: Include calls.h.
+ * tree-ssa-dom.c: Include stor-layout.h.
+ * tree-ssa-forwprop.c: Include stor-layout.h.
+ * tree-ssa-ifcombine.c: Include stor-layout.h.
+ * tree-ssa-loop-ivopts.c: Include stor-layout.h.
+ * tree-ssa-loop-niter.c: Include calls.h.
+ Include expr.h.
+ * tree-ssa-loop-prefetch.c: Include stor-layout.h.
+ * tree-ssa-math-opts.c: Include stor-layout.h.
+ * tree-ssa-operands.c: Include stmt.h.
+ Include print-tree.h.
+ * tree-ssa-phiopt.c: Include stor-layout.h.
+ * tree-ssa-reassoc.c: Include stor-layout.h.
+ * tree-ssa-sccvn.c: Include stor-layout.h.
+ * tree-ssa-sink.c: Include stor-layout.h.
+ * tree-ssa-strlen.c: Include stor-layout.h.
+ * tree-ssa-structalias.c: Include stor-layout.h.
+ Include stmt.h.
+ * tree-ssa-tail-merge.c: Include stor-layout.h.
+ Include trans-mem.h.
+ * tree-ssa-uncprop.c: Include stor-layout.h.
+ * tree-ssa.c: Include stor-layout.h.
+ * tree-ssanames.c: Include stor-layout.h.
+ * tree-streamer-in.c: Include stringpool.h.
+ * tree-streamer-out.c: Include stor-layout.h.
+ * tree-switch-conversion.c: Include varasm.h.
+ Include stor-layout.h.
+ * tree-tailcall.c: Include stor-layout.h.
+ * tree-vect-data-refs.c: Include stor-layout.h.
+ * tree-vect-generic.c: Include stor-layout.h.
+ * tree-vect-loop.c: Include stor-layout.h.
+ * tree-vect-patterns.c: Include stor-layout.h.
+ * tree-vect-slp.c: Include stor-layout.h.
+ * tree-vect-stmts.c: Include stor-layout.h.
+ * tree-vectorizer.c: Include stor-layout.h.
+ * tree-vrp.c: Include stor-layout.h.
+ Include calls.h.
+ * tree.c: Include stor-layout.h.
+ Include calls.h.
+ Include attribs.h.
+ Include varasm.h.
+ * tsan.c: Include expr.h.
+ * ubsan.c: Include stor-layout.h.
+ Include stringpool.h.
+ * value-prof.c: Include tree-nested.h.
+ Include calls.h.
+ * var-tracking.c: Include varasm.h.
+ Include stor-layout.h.
+ * varasm.c: Include stor-layout.h.
+ Include stringpool.h.
+ Include gcc-symtab.h.
+ Include varasm.h.
+ * varpool.c: Include varasm.h.
+ * vmsdbgout.c: Include varasm.h.
+ * xcoffout.c: Include varasm.h.
+
2013-11-14 Joern Rennecke <joern.rennecke@embecosm.com>
* config/arc/arc.md (doloop_begin_i): Remove extra alignment;
diff --git a/gcc/Makefile.in b/gcc/Makefile.in
index 77fba80cffc..8cc8341048e 100644
--- a/gcc/Makefile.in
+++ b/gcc/Makefile.in
@@ -3115,7 +3115,7 @@ PLUGIN_HEADERS = $(TREE_H) $(CONFIG_H) $(SYSTEM_H) coretypes.h $(TM_H) \
cppdefault.h flags.h $(MD5_H) params.def params.h prefix.h tree-inline.h \
$(GIMPLE_PRETTY_PRINT_H) realmpfr.h \
$(IPA_PROP_H) $(TARGET_H) $(RTL_H) $(TM_P_H) $(CFGLOOP_H) $(EMIT_RTL_H) \
- version.h
+ version.h stringpool.h
# generate the 'build fragment' b-header-vars
s-header-vars: Makefile
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index a9fd65b16cd..4d55405f694 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -64,6 +64,25 @@
* gcc-interface/trans.c: Include gimple.h and pointer-set.h.
+2013-11-14 Diego Novillo <dnovillo@google.com>
+
+ * gcc-interface/decl.c: Include stringpool.h
+ Include stor-layout.h
+ * gcc-interface/misc.c: Include stor-layout.h
+ Include print-tree.h
+ * gcc-interface/trans.c: Include stringpool.h
+ Include stor-layout.h
+ Include stmt.h
+ Include varasm.h
+ * gcc-interface/utils.c: Include stringpool.h
+ Include stor-layout.h
+ Include attribs.h
+ Include varasm.h
+ * gcc-interface/utils2.c: Include stringpool.h
+ Include stor-layout.h
+ Include attribs.h
+ Include varasm.h
+
2013-11-12 Andrew MacLeod <amacleod@redhat.com>
* gcc-interface/trans.c: Include gimplify.h.
diff --git a/gcc/ada/gcc-interface/decl.c b/gcc/ada/gcc-interface/decl.c
index f5d7f2fc0c2..0d72be255a5 100644
--- a/gcc/ada/gcc-interface/decl.c
+++ b/gcc/ada/gcc-interface/decl.c
@@ -28,6 +28,8 @@
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stringpool.h"
+#include "stor-layout.h"
#include "flags.h"
#include "toplev.h"
#include "ggc.h"
diff --git a/gcc/ada/gcc-interface/misc.c b/gcc/ada/gcc-interface/misc.c
index a82f6fd8f82..fc74be28fb8 100644
--- a/gcc/ada/gcc-interface/misc.c
+++ b/gcc/ada/gcc-interface/misc.c
@@ -30,6 +30,8 @@
#include "options.h"
#include "tm.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "print-tree.h"
#include "diagnostic.h"
#include "target.h"
#include "ggc.h"
diff --git a/gcc/ada/gcc-interface/trans.c b/gcc/ada/gcc-interface/trans.c
index f699fd85d18..53e66780f84 100644
--- a/gcc/ada/gcc-interface/trans.c
+++ b/gcc/ada/gcc-interface/trans.c
@@ -28,6 +28,10 @@
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stringpool.h"
+#include "stor-layout.h"
+#include "stmt.h"
+#include "varasm.h"
#include "flags.h"
#include "ggc.h"
#include "output.h"
diff --git a/gcc/ada/gcc-interface/utils.c b/gcc/ada/gcc-interface/utils.c
index b92531b3fd6..4995ca4e92c 100644
--- a/gcc/ada/gcc-interface/utils.c
+++ b/gcc/ada/gcc-interface/utils.c
@@ -28,6 +28,10 @@
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stringpool.h"
+#include "stor-layout.h"
+#include "attribs.h"
+#include "varasm.h"
#include "flags.h"
#include "toplev.h"
#include "diagnostic-core.h"
diff --git a/gcc/ada/gcc-interface/utils2.c b/gcc/ada/gcc-interface/utils2.c
index c45f1c3fc63..184a223ff13 100644
--- a/gcc/ada/gcc-interface/utils2.c
+++ b/gcc/ada/gcc-interface/utils2.c
@@ -28,6 +28,9 @@
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "stringpool.h"
+#include "varasm.h"
#include "flags.h"
#include "toplev.h"
#include "ggc.h"
diff --git a/gcc/alias.c b/gcc/alias.c
index f0bb32bf328..68650f02110 100644
--- a/gcc/alias.c
+++ b/gcc/alias.c
@@ -24,6 +24,8 @@ along with GCC; see the file COPYING3. If not see
#include "tm.h"
#include "rtl.h"
#include "tree.h"
+#include "varasm.h"
+#include "expr.h"
#include "tm_p.h"
#include "function.h"
#include "alias.h"
diff --git a/gcc/asan.c b/gcc/asan.c
index d940b2c0f43..d44aa636c55 100644
--- a/gcc/asan.c
+++ b/gcc/asan.c
@@ -26,8 +26,12 @@ along with GCC; see the file COPYING3. If not see
#include "gimple.h"
#include "gimplify.h"
#include "gimple-iterator.h"
+#include "calls.h"
+#include "varasm.h"
+#include "stor-layout.h"
#include "tree-iterator.h"
#include "cgraph.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "tree-pass.h"
#include "asan.h"
diff --git a/gcc/attribs.c b/gcc/attribs.c
index 296bcd6eb74..19b697d416f 100644
--- a/gcc/attribs.c
+++ b/gcc/attribs.c
@@ -22,6 +22,9 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stringpool.h"
+#include "attribs.h"
+#include "stor-layout.h"
#include "flags.h"
#include "diagnostic-core.h"
#include "ggc.h"
diff --git a/gcc/attribs.h b/gcc/attribs.h
new file mode 100644
index 00000000000..042e112ea8e
--- /dev/null
+++ b/gcc/attribs.h
@@ -0,0 +1,40 @@
+/* Declarations and definitions dealing with attribute handling.
+ Copyright (C) 2013 Free Software Foundation, Inc.
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 3, or (at your option) any later
+version.
+
+GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3. If not see
+<http://www.gnu.org/licenses/>. */
+
+#ifndef GCC_ATTRIBS_H
+#define GCC_ATTRIBS_H
+
+extern const struct attribute_spec *lookup_attribute_spec (const_tree);
+extern void init_attributes (void);
+
+/* Process the attributes listed in ATTRIBUTES and install them in *NODE,
+ which is either a DECL (including a TYPE_DECL) or a TYPE. If a DECL,
+ it should be modified in place; if a TYPE, a copy should be created
+ unless ATTR_FLAG_TYPE_IN_PLACE is set in FLAGS. FLAGS gives further
+ information, in the form of a bitwise OR of flags in enum attribute_flags
+ from tree.h. Depending on these flags, some attributes may be
+ returned to be applied at a later stage (for example, to apply
+ a decl attribute to the declaration rather than to its type). */
+extern tree decl_attributes (tree *, tree, int);
+
+extern bool cxx11_attribute_p (const_tree);
+extern tree get_attribute_name (const_tree);
+extern void apply_tm_attr (tree, tree);
+
+#endif // GCC_ATTRIBS_H
diff --git a/gcc/builtins.c b/gcc/builtins.c
index 7dc980f9bf5..e96245709c0 100644
--- a/gcc/builtins.c
+++ b/gcc/builtins.c
@@ -24,6 +24,11 @@ along with GCC; see the file COPYING3. If not see
#include "machmode.h"
#include "rtl.h"
#include "tree.h"
+#include "stringpool.h"
+#include "stor-layout.h"
+#include "calls.h"
+#include "varasm.h"
+#include "tree-object-size.h"
#include "realmpfr.h"
#include "gimple.h"
#include "flags.h"
diff --git a/gcc/c-family/ChangeLog b/gcc/c-family/ChangeLog
index 89c975db1c5..599c024c9b0 100644
--- a/gcc/c-family/ChangeLog
+++ b/gcc/c-family/ChangeLog
@@ -63,6 +63,29 @@
* c-gimplify.c: Likewise.
* cilk.c: Likewise.
+2013-11-14 Diego Novillo <dnovillo@google.com>
+
+ * c-common.c: Include fold-const.h.
+ Include stor-layout.h.
+ Include calls.h.
+ Include stringpool.h.
+ Include attribs.h.
+ Include varasm.h.
+ Include trans-mem.h.
+ * c-cppbuiltin.c: Include stor-layout.h.
+ Include stringpool.h.
+ * c-format.c: Include stringpool.h.
+ * c-lex.c: Include stringpool.h.
+ Include stor-layout.h.
+ * c-pragma.c: Include stringpool.h.
+ Include attribs.h.
+ Include varasm.h.
+ Include gcc-symtab.h.
+ * c-pretty-print.c: Include stor-layout.h.
+ Include attribs.h.
+ * cilk.c: Include stringpool.h.
+ Include calls.h.
+
2013-11-13 Joseph Myers <joseph@codesourcery.com>
* c-common.h (enum rid): Add RID_AUTO_TYPE.
diff --git a/gcc/c-family/c-common.c b/gcc/c-family/c-common.c
index 83d6253cbfd..b4bd63ba213 100644
--- a/gcc/c-family/c-common.c
+++ b/gcc/c-family/c-common.c
@@ -23,6 +23,13 @@ along with GCC; see the file COPYING3. If not see
#include "tm.h"
#include "intl.h"
#include "tree.h"
+#include "fold-const.h"
+#include "stor-layout.h"
+#include "calls.h"
+#include "stringpool.h"
+#include "attribs.h"
+#include "varasm.h"
+#include "trans-mem.h"
#include "flags.h"
#include "c-pragma.h"
#include "ggc.h"
diff --git a/gcc/c-family/c-cppbuiltin.c b/gcc/c-family/c-cppbuiltin.c
index c5e895c5850..eb96b8338b0 100644
--- a/gcc/c-family/c-cppbuiltin.c
+++ b/gcc/c-family/c-cppbuiltin.c
@@ -22,6 +22,8 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "stringpool.h"
#include "version.h"
#include "flags.h"
#include "c-common.h"
diff --git a/gcc/c-family/c-format.c b/gcc/c-family/c-format.c
index b3e1e399353..8f6c0db46ae 100644
--- a/gcc/c-family/c-format.c
+++ b/gcc/c-family/c-format.c
@@ -22,6 +22,7 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stringpool.h"
#include "flags.h"
#include "c-common.h"
#include "c-objc.h"
diff --git a/gcc/c-family/c-lex.c b/gcc/c-family/c-lex.c
index 6484352f4c6..85fa42671a1 100644
--- a/gcc/c-family/c-lex.c
+++ b/gcc/c-family/c-lex.c
@@ -23,6 +23,8 @@ along with GCC; see the file COPYING3. If not see
#include "tm.h"
#include "tree.h"
+#include "stringpool.h"
+#include "stor-layout.h"
#include "input.h"
#include "c-common.h"
#include "flags.h"
diff --git a/gcc/c-family/c-pragma.c b/gcc/c-family/c-pragma.c
index 029ab1e33ac..70fb39ae9cf 100644
--- a/gcc/c-family/c-pragma.c
+++ b/gcc/c-family/c-pragma.c
@@ -22,6 +22,10 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stringpool.h"
+#include "attribs.h"
+#include "varasm.h"
+#include "gcc-symtab.h"
#include "function.h" /* For cfun. FIXME: Does the parser know
when it is inside a function, so that
we don't have to look at cfun? */
diff --git a/gcc/c-family/c-pretty-print.c b/gcc/c-family/c-pretty-print.c
index 7898f13172c..af8a3fcdbe9 100644
--- a/gcc/c-family/c-pretty-print.c
+++ b/gcc/c-family/c-pretty-print.c
@@ -23,6 +23,8 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "attribs.h"
#include "intl.h"
#include "c-pretty-print.h"
#include "tree-pretty-print.h"
diff --git a/gcc/c-family/cilk.c b/gcc/c-family/cilk.c
index 165348f124c..894a35270c5 100644
--- a/gcc/c-family/cilk.c
+++ b/gcc/c-family/cilk.c
@@ -24,6 +24,8 @@ along with GCC; see the file COPYING3. If not see
#include "system.h"
#include "coretypes.h"
#include "tree.h"
+#include "stringpool.h"
+#include "calls.h"
#include "langhooks.h"
#include "gimple.h"
#include "gimplify.h"
diff --git a/gcc/c/ChangeLog b/gcc/c/ChangeLog
index e8a5365592d..92dbcee4809 100644
--- a/gcc/c/ChangeLog
+++ b/gcc/c/ChangeLog
@@ -39,6 +39,24 @@
* c-typeck.c: Include only gimplify.h and gimple.h as needed.
+2013-11-14 Diego Novillo <dnovillo@google.com>
+
+ * c-decl.c: Include print-tree.h.
+ Include stor-layout.h.
+ Include varasm.h.
+ Include attribs.h.
+ Include stringpool.h.
+ * c-lang.c: Include fold-const.h.
+ * c-parser.c: Include stringpool.h.
+ Include attribs.h.
+ Include stor-layout.h.
+ Include varasm.h.
+ Include trans-mem.h.
+ * c-typeck.c: Include stor-layout.h.
+ Include trans-mem.h.
+ Include varasm.h.
+ Include stmt.h.
+
2013-11-13 Joseph Myers <joseph@codesourcery.com>
* c-tree.h (c_typespec_keyword): Add cts_auto_type.
diff --git a/gcc/c/c-decl.c b/gcc/c/c-decl.c
index 10933e80d1a..4125bd94103 100644
--- a/gcc/c/c-decl.c
+++ b/gcc/c/c-decl.c
@@ -31,6 +31,11 @@ along with GCC; see the file COPYING3. If not see
#include "tm.h"
#include "intl.h"
#include "tree.h"
+#include "print-tree.h"
+#include "stor-layout.h"
+#include "varasm.h"
+#include "attribs.h"
+#include "stringpool.h"
#include "tree-inline.h"
#include "flags.h"
#include "function.h"
diff --git a/gcc/c/c-lang.c b/gcc/c/c-lang.c
index 614c46d15eb..8b0dca601e9 100644
--- a/gcc/c/c-lang.c
+++ b/gcc/c/c-lang.c
@@ -23,6 +23,7 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "fold-const.h"
#include "c-tree.h"
#include "c-family/c-common.h"
#include "langhooks.h"
diff --git a/gcc/c/c-parser.c b/gcc/c/c-parser.c
index 74eb13a3f7e..ea3aa9a1043 100644
--- a/gcc/c/c-parser.c
+++ b/gcc/c/c-parser.c
@@ -40,6 +40,11 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h" /* For rtl.h: needs enum reg_class. */
#include "tree.h"
+#include "stringpool.h"
+#include "attribs.h"
+#include "stor-layout.h"
+#include "varasm.h"
+#include "trans-mem.h"
#include "langhooks.h"
#include "input.h"
#include "cpplib.h"
diff --git a/gcc/c/c-typeck.c b/gcc/c/c-typeck.c
index 42b6a6e3122..8e74b7b3918 100644
--- a/gcc/c/c-typeck.c
+++ b/gcc/c/c-typeck.c
@@ -28,6 +28,10 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "trans-mem.h"
+#include "varasm.h"
+#include "stmt.h"
#include "langhooks.h"
#include "c-tree.h"
#include "c-lang.h"
diff --git a/gcc/calls.c b/gcc/calls.c
index 4dcdb27c1c1..726ba23c3fc 100644
--- a/gcc/calls.c
+++ b/gcc/calls.c
@@ -23,6 +23,10 @@ along with GCC; see the file COPYING3. If not see
#include "tm.h"
#include "rtl.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "varasm.h"
+#include "stringpool.h"
+#include "attribs.h"
#include "gimple.h"
#include "flags.h"
#include "expr.h"
diff --git a/gcc/calls.h b/gcc/calls.h
new file mode 100644
index 00000000000..8e727382905
--- /dev/null
+++ b/gcc/calls.h
@@ -0,0 +1,31 @@
+/* Declarations anda data types for RTL call insn generation.
+ Copyright (C) 2013 Free Software Foundation, Inc.
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 3, or (at your option) any later
+version.
+
+GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3. If not see
+<http://www.gnu.org/licenses/>. */
+
+#ifndef GCC_CALLS_H
+#define GCC_CALLS_H
+
+extern int flags_from_decl_or_type (const_tree);
+extern int call_expr_flags (const_tree);
+extern int setjmp_call_p (const_tree);
+extern bool gimple_alloca_call_p (const_gimple);
+extern bool alloca_call_p (const_tree);
+extern bool must_pass_in_stack_var_size (enum machine_mode, const_tree);
+extern bool must_pass_in_stack_var_size_or_pad (enum machine_mode, const_tree);
+
+#endif // GCC_CALLS_H
diff --git a/gcc/cfgexpand.c b/gcc/cfgexpand.c
index 85732c8f0d7..4ff1a895428 100644
--- a/gcc/cfgexpand.c
+++ b/gcc/cfgexpand.c
@@ -24,6 +24,11 @@ along with GCC; see the file COPYING3. If not see
#include "rtl.h"
#include "hard-reg-set.h"
#include "tree.h"
+#include "stringpool.h"
+#include "varasm.h"
+#include "stor-layout.h"
+#include "stmt.h"
+#include "print-tree.h"
#include "tm_p.h"
#include "basic-block.h"
#include "function.h"
diff --git a/gcc/cgraph.c b/gcc/cgraph.c
index 996f1b66090..624d492cb75 100644
--- a/gcc/cgraph.c
+++ b/gcc/cgraph.c
@@ -28,6 +28,9 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "varasm.h"
+#include "calls.h"
+#include "print-tree.h"
#include "tree-inline.h"
#include "langhooks.h"
#include "hashtab.h"
diff --git a/gcc/cgraph.h b/gcc/cgraph.h
index f81b7b533ff..651f34e6fc2 100644
--- a/gcc/cgraph.h
+++ b/gcc/cgraph.h
@@ -852,6 +852,8 @@ void symtab_initialize_asm_name_hash (void);
void symtab_prevail_in_asm_name_hash (symtab_node *node);
void varpool_remove_initializer (struct varpool_node *);
+/* In cgraph.c */
+extern void change_decl_assembler_name (tree, tree);
/* Return callgraph node for given symbol and check it is a function. */
static inline struct cgraph_node *
diff --git a/gcc/cgraphclones.c b/gcc/cgraphclones.c
index 28e40639e32..795a321ae57 100644
--- a/gcc/cgraphclones.c
+++ b/gcc/cgraphclones.c
@@ -68,9 +68,12 @@ along with GCC; see the file COPYING3. If not see
#include "system.h"
#include "coretypes.h"
#include "tm.h"
+#include "rtl.h"
#include "tree.h"
+#include "stringpool.h"
+#include "function.h"
+#include "emit-rtl.h"
#include "gimple.h"
-#include "rtl.h"
#include "bitmap.h"
#include "tree-cfg.h"
#include "tree-inline.h"
diff --git a/gcc/cgraphunit.c b/gcc/cgraphunit.c
index ce52115b99c..2fcd313b853 100644
--- a/gcc/cgraphunit.c
+++ b/gcc/cgraphunit.c
@@ -162,6 +162,9 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "varasm.h"
+#include "stor-layout.h"
+#include "stringpool.h"
#include "output.h"
#include "rtl.h"
#include "gimple.h"
diff --git a/gcc/cilk-common.c b/gcc/cilk-common.c
index 98b85988764..bdea617a2e8 100644
--- a/gcc/cilk-common.c
+++ b/gcc/cilk-common.c
@@ -24,6 +24,8 @@ along with GCC; see the file COPYING3. If not see
#include "system.h"
#include "coretypes.h"
#include "tree.h"
+#include "stringpool.h"
+#include "stor-layout.h"
#include "langhooks.h"
#include "expr.h"
#include "optabs.h"
diff --git a/gcc/combine.c b/gcc/combine.c
index 13f5e29e3d6..fb5c8814edb 100644
--- a/gcc/combine.c
+++ b/gcc/combine.c
@@ -81,6 +81,7 @@ along with GCC; see the file COPYING3. If not see
#include "tm.h"
#include "rtl.h"
#include "tree.h"
+#include "stor-layout.h"
#include "tm_p.h"
#include "flags.h"
#include "regs.h"
diff --git a/gcc/config/aarch64/aarch64-builtins.c b/gcc/config/aarch64/aarch64-builtins.c
index 2f1a8d03cb1..2dc7838003b 100644
--- a/gcc/config/aarch64/aarch64-builtins.c
+++ b/gcc/config/aarch64/aarch64-builtins.c
@@ -24,6 +24,9 @@
#include "tm.h"
#include "rtl.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "stringpool.h"
+#include "calls.h"
#include "expr.h"
#include "tm_p.h"
#include "recog.h"
diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c
index edd378ce69d..f9da7c42434 100644
--- a/gcc/config/aarch64/aarch64.c
+++ b/gcc/config/aarch64/aarch64.c
@@ -26,6 +26,10 @@
#include "rtl.h"
#include "insn-attr.h"
#include "tree.h"
+#include "stringpool.h"
+#include "stor-layout.h"
+#include "calls.h"
+#include "varasm.h"
#include "regs.h"
#include "df.h"
#include "hard-reg-set.h"
diff --git a/gcc/config/alpha/alpha.c b/gcc/config/alpha/alpha.c
index e710b0c3717..a5171ea0def 100644
--- a/gcc/config/alpha/alpha.c
+++ b/gcc/config/alpha/alpha.c
@@ -25,6 +25,9 @@ along with GCC; see the file COPYING3. If not see
#include "tm.h"
#include "rtl.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "calls.h"
+#include "varasm.h"
#include "regs.h"
#include "hard-reg-set.h"
#include "insn-config.h"
@@ -51,6 +54,7 @@ along with GCC; see the file COPYING3. If not see
#include "gimple.h"
#include "gimplify.h"
#include "gimple-ssa.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "tree-stdarg.h"
#include "tm-constrs.h"
diff --git a/gcc/config/arc/arc.c b/gcc/config/arc/arc.c
index f813c90763d..77932ce567c 100644
--- a/gcc/config/arc/arc.c
+++ b/gcc/config/arc/arc.c
@@ -34,6 +34,10 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "varasm.h"
+#include "stor-layout.h"
+#include "stringpool.h"
+#include "calls.h"
#include "rtl.h"
#include "regs.h"
#include "hard-reg-set.h"
diff --git a/gcc/config/arm/arm.c b/gcc/config/arm/arm.c
index a5bd01006b6..2d5f8671b14 100644
--- a/gcc/config/arm/arm.c
+++ b/gcc/config/arm/arm.c
@@ -27,6 +27,10 @@
#include "tm.h"
#include "rtl.h"
#include "tree.h"
+#include "stringpool.h"
+#include "stor-layout.h"
+#include "calls.h"
+#include "varasm.h"
#include "obstack.h"
#include "regs.h"
#include "hard-reg-set.h"
diff --git a/gcc/config/avr/avr-c.c b/gcc/config/avr/avr-c.c
index 4e64405a351..2cfb264ad20 100644
--- a/gcc/config/avr/avr-c.c
+++ b/gcc/config/avr/avr-c.c
@@ -26,6 +26,7 @@
#include "tm_p.h"
#include "cpplib.h"
#include "tree.h"
+#include "stor-layout.h"
#include "target.h"
#include "c-family/c-common.h"
#include "langhooks.h"
diff --git a/gcc/config/avr/avr-log.c b/gcc/config/avr/avr-log.c
index 87fa14d7006..3d2f54d9707 100644
--- a/gcc/config/avr/avr-log.c
+++ b/gcc/config/avr/avr-log.c
@@ -24,6 +24,7 @@
#include "tm.h"
#include "rtl.h"
#include "tree.h"
+#include "print-tree.h"
#include "output.h"
#include "input.h"
#include "function.h"
diff --git a/gcc/config/avr/avr.c b/gcc/config/avr/avr.c
index e7e1c2f138b..8d98c811d9b 100644
--- a/gcc/config/avr/avr.c
+++ b/gcc/config/avr/avr.c
@@ -32,6 +32,10 @@
#include "flags.h"
#include "reload.h"
#include "tree.h"
+#include "print-tree.h"
+#include "calls.h"
+#include "stor-layout.h"
+#include "stringpool.h"
#include "output.h"
#include "expr.h"
#include "c-family/c-common.h"
diff --git a/gcc/config/bfin/bfin.c b/gcc/config/bfin/bfin.c
index bd677f88bab..0d473cbafbc 100644
--- a/gcc/config/bfin/bfin.c
+++ b/gcc/config/bfin/bfin.c
@@ -32,6 +32,8 @@
#include "output.h"
#include "insn-attr.h"
#include "tree.h"
+#include "varasm.h"
+#include "calls.h"
#include "flags.h"
#include "except.h"
#include "function.h"
diff --git a/gcc/config/c6x/c6x.c b/gcc/config/c6x/c6x.c
index a37e02ff834..af310bac8dc 100644
--- a/gcc/config/c6x/c6x.c
+++ b/gcc/config/c6x/c6x.c
@@ -25,6 +25,10 @@
#include "tm.h"
#include "rtl.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "varasm.h"
+#include "calls.h"
+#include "stringpool.h"
#include "insn-flags.h"
#include "output.h"
#include "insn-attr.h"
diff --git a/gcc/config/cr16/cr16.c b/gcc/config/cr16/cr16.c
index 1ac29cc800a..b3972766d5b 100644
--- a/gcc/config/cr16/cr16.c
+++ b/gcc/config/cr16/cr16.c
@@ -24,6 +24,8 @@
#include "tm.h"
#include "rtl.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "calls.h"
#include "tm_p.h"
#include "regs.h"
#include "hard-reg-set.h"
diff --git a/gcc/config/cris/cris.c b/gcc/config/cris/cris.c
index 7432251b950..2d2a108031d 100644
--- a/gcc/config/cris/cris.c
+++ b/gcc/config/cris/cris.c
@@ -30,6 +30,10 @@ along with GCC; see the file COPYING3. If not see
#include "insn-attr.h"
#include "flags.h"
#include "tree.h"
+#include "varasm.h"
+#include "stor-layout.h"
+#include "calls.h"
+#include "stmt.h"
#include "expr.h"
#include "except.h"
#include "function.h"
diff --git a/gcc/config/darwin.c b/gcc/config/darwin.c
index 63efe49475d..761576df565 100644
--- a/gcc/config/darwin.c
+++ b/gcc/config/darwin.c
@@ -32,6 +32,9 @@ along with GCC; see the file COPYING3. If not see
#include "insn-attr.h"
#include "flags.h"
#include "tree.h"
+#include "stringpool.h"
+#include "varasm.h"
+#include "stor-layout.h"
#include "expr.h"
#include "reload.h"
#include "function.h"
diff --git a/gcc/config/epiphany/epiphany.c b/gcc/config/epiphany/epiphany.c
index 3a09efa0a1c..88459e2d4ad 100644
--- a/gcc/config/epiphany/epiphany.c
+++ b/gcc/config/epiphany/epiphany.c
@@ -23,6 +23,10 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "varasm.h"
+#include "calls.h"
+#include "stringpool.h"
#include "rtl.h"
#include "regs.h"
#include "hard-reg-set.h"
diff --git a/gcc/config/fr30/fr30.c b/gcc/config/fr30/fr30.c
index 4a45feafd04..caa50d9e691 100644
--- a/gcc/config/fr30/fr30.c
+++ b/gcc/config/fr30/fr30.c
@@ -33,6 +33,8 @@
#include "flags.h"
#include "recog.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "varasm.h"
#include "output.h"
#include "expr.h"
#include "obstack.h"
diff --git a/gcc/config/frv/frv.c b/gcc/config/frv/frv.c
index bcd55111434..6e74fe48eaa 100644
--- a/gcc/config/frv/frv.c
+++ b/gcc/config/frv/frv.c
@@ -23,6 +23,9 @@ along with GCC; see the file COPYING3. If not see
#include "tm.h"
#include "rtl.h"
#include "tree.h"
+#include "varasm.h"
+#include "stor-layout.h"
+#include "stringpool.h"
#include "regs.h"
#include "hard-reg-set.h"
#include "insn-config.h"
diff --git a/gcc/config/h8300/h8300.c b/gcc/config/h8300/h8300.c
index 69f37fd02d6..f0ebca30f2c 100644
--- a/gcc/config/h8300/h8300.c
+++ b/gcc/config/h8300/h8300.c
@@ -25,6 +25,10 @@ along with GCC; see the file COPYING3. If not see
#include "tm.h"
#include "rtl.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "varasm.h"
+#include "calls.h"
+#include "stringpool.h"
#include "regs.h"
#include "hard-reg-set.h"
#include "insn-config.h"
diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c
index d95ca351906..7ae9f57aeee 100644
--- a/gcc/config/i386/i386.c
+++ b/gcc/config/i386/i386.c
@@ -23,6 +23,11 @@ along with GCC; see the file COPYING3. If not see
#include "tm.h"
#include "rtl.h"
#include "tree.h"
+#include "stringpool.h"
+#include "attribs.h"
+#include "calls.h"
+#include "stor-layout.h"
+#include "varasm.h"
#include "tm_p.h"
#include "regs.h"
#include "hard-reg-set.h"
diff --git a/gcc/config/i386/winnt-cxx.c b/gcc/config/i386/winnt-cxx.c
index 92de46abd59..d466299abed 100644
--- a/gcc/config/i386/winnt-cxx.c
+++ b/gcc/config/i386/winnt-cxx.c
@@ -23,6 +23,8 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stringpool.h"
+#include "attribs.h"
#include "cp/cp-tree.h" /* This is why we're a separate module. */
#include "flags.h"
#include "tm_p.h"
diff --git a/gcc/config/i386/winnt.c b/gcc/config/i386/winnt.c
index 94155d89a7f..2c1677eec88 100644
--- a/gcc/config/i386/winnt.c
+++ b/gcc/config/i386/winnt.c
@@ -27,6 +27,8 @@ along with GCC; see the file COPYING3. If not see
#include "hard-reg-set.h"
#include "output.h"
#include "tree.h"
+#include "stringpool.h"
+#include "varasm.h"
#include "flags.h"
#include "tm_p.h"
#include "diagnostic-core.h"
diff --git a/gcc/config/ia64/ia64-c.c b/gcc/config/ia64/ia64-c.c
index 4d4dbc84369..6489668b7d9 100644
--- a/gcc/config/ia64/ia64-c.c
+++ b/gcc/config/ia64/ia64-c.c
@@ -23,6 +23,7 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stringpool.h"
#include "cpplib.h"
#include "c-family/c-common.h"
#include "c-family/c-pragma.h"
diff --git a/gcc/config/ia64/ia64.c b/gcc/config/ia64/ia64.c
index 4fde7aab43e..307681c995d 100644
--- a/gcc/config/ia64/ia64.c
+++ b/gcc/config/ia64/ia64.c
@@ -25,6 +25,10 @@ along with GCC; see the file COPYING3. If not see
#include "tm.h"
#include "rtl.h"
#include "tree.h"
+#include "stringpool.h"
+#include "stor-layout.h"
+#include "calls.h"
+#include "varasm.h"
#include "regs.h"
#include "hard-reg-set.h"
#include "insn-config.h"
diff --git a/gcc/config/iq2000/iq2000.c b/gcc/config/iq2000/iq2000.c
index e65d0ccdc03..e6d1171ca85 100644
--- a/gcc/config/iq2000/iq2000.c
+++ b/gcc/config/iq2000/iq2000.c
@@ -22,6 +22,9 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "calls.h"
+#include "varasm.h"
#include "rtl.h"
#include "regs.h"
#include "hard-reg-set.h"
diff --git a/gcc/config/lm32/lm32.c b/gcc/config/lm32/lm32.c
index 6483a03e57d..6bddc488727 100644
--- a/gcc/config/lm32/lm32.c
+++ b/gcc/config/lm32/lm32.c
@@ -35,6 +35,7 @@
#include "recog.h"
#include "output.h"
#include "tree.h"
+#include "calls.h"
#include "expr.h"
#include "flags.h"
#include "reload.h"
diff --git a/gcc/config/m32c/m32c.c b/gcc/config/m32c/m32c.c
index deac40c228f..ec30b8d7f9b 100644
--- a/gcc/config/m32c/m32c.c
+++ b/gcc/config/m32c/m32c.c
@@ -36,6 +36,9 @@
#include "diagnostic-core.h"
#include "obstack.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "varasm.h"
+#include "calls.h"
#include "expr.h"
#include "optabs.h"
#include "except.h"
diff --git a/gcc/config/m32r/m32r.c b/gcc/config/m32r/m32r.c
index c94da538fcf..6cee5d728b3 100644
--- a/gcc/config/m32r/m32r.c
+++ b/gcc/config/m32r/m32r.c
@@ -22,6 +22,10 @@
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "varasm.h"
+#include "stringpool.h"
+#include "calls.h"
#include "rtl.h"
#include "regs.h"
#include "hard-reg-set.h"
diff --git a/gcc/config/m68k/m68k.c b/gcc/config/m68k/m68k.c
index 7035504bfe3..db1554deb36 100644
--- a/gcc/config/m68k/m68k.c
+++ b/gcc/config/m68k/m68k.c
@@ -22,6 +22,9 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "calls.h"
+#include "stor-layout.h"
+#include "varasm.h"
#include "rtl.h"
#include "function.h"
#include "regs.h"
diff --git a/gcc/config/mcore/mcore.c b/gcc/config/mcore/mcore.c
index 6550b6905f0..6bd60702fa2 100644
--- a/gcc/config/mcore/mcore.c
+++ b/gcc/config/mcore/mcore.c
@@ -23,6 +23,10 @@
#include "tm.h"
#include "rtl.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "varasm.h"
+#include "stringpool.h"
+#include "calls.h"
#include "tm_p.h"
#include "mcore.h"
#include "regs.h"
diff --git a/gcc/config/mep/mep.c b/gcc/config/mep/mep.c
index 489bef9c2d3..6ce6c530077 100644
--- a/gcc/config/mep/mep.c
+++ b/gcc/config/mep/mep.c
@@ -24,6 +24,10 @@ along with GCC; see the file COPYING3. If not see
#include "tm.h"
#include "rtl.h"
#include "tree.h"
+#include "varasm.h"
+#include "calls.h"
+#include "stringpool.h"
+#include "stor-layout.h"
#include "regs.h"
#include "hard-reg-set.h"
#include "insn-config.h"
diff --git a/gcc/config/microblaze/microblaze.c b/gcc/config/microblaze/microblaze.c
index 3258a95ef3a..93dede4d189 100644
--- a/gcc/config/microblaze/microblaze.c
+++ b/gcc/config/microblaze/microblaze.c
@@ -33,6 +33,9 @@
#include "insn-attr.h"
#include "recog.h"
#include "tree.h"
+#include "varasm.h"
+#include "stor-layout.h"
+#include "calls.h"
#include "function.h"
#include "expr.h"
#include "flags.h"
diff --git a/gcc/config/mips/mips.c b/gcc/config/mips/mips.c
index 80bbb00c2c8..00c6e0c90ae 100644
--- a/gcc/config/mips/mips.c
+++ b/gcc/config/mips/mips.c
@@ -34,6 +34,10 @@ along with GCC; see the file COPYING3. If not see
#include "recog.h"
#include "output.h"
#include "tree.h"
+#include "varasm.h"
+#include "stringpool.h"
+#include "stor-layout.h"
+#include "calls.h"
#include "function.h"
#include "expr.h"
#include "optabs.h"
diff --git a/gcc/config/mmix/mmix.c b/gcc/config/mmix/mmix.c
index 34b4fea7503..eb43af71d08 100644
--- a/gcc/config/mmix/mmix.c
+++ b/gcc/config/mmix/mmix.c
@@ -31,6 +31,9 @@ along with GCC; see the file COPYING3. If not see
#include "basic-block.h"
#include "flags.h"
#include "tree.h"
+#include "varasm.h"
+#include "stor-layout.h"
+#include "calls.h"
#include "function.h"
#include "expr.h"
#include "diagnostic-core.h"
diff --git a/gcc/config/mn10300/mn10300.c b/gcc/config/mn10300/mn10300.c
index df563d03eac..342c336f118 100644
--- a/gcc/config/mn10300/mn10300.c
+++ b/gcc/config/mn10300/mn10300.c
@@ -24,6 +24,9 @@
#include "tm.h"
#include "rtl.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "varasm.h"
+#include "calls.h"
#include "regs.h"
#include "hard-reg-set.h"
#include "insn-config.h"
diff --git a/gcc/config/moxie/moxie.c b/gcc/config/moxie/moxie.c
index d4f7d6d9d68..abba0aebd2d 100644
--- a/gcc/config/moxie/moxie.c
+++ b/gcc/config/moxie/moxie.c
@@ -36,6 +36,9 @@
#include "diagnostic-core.h"
#include "obstack.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "varasm.h"
+#include "calls.h"
#include "expr.h"
#include "optabs.h"
#include "except.h"
diff --git a/gcc/config/msp430/msp430.c b/gcc/config/msp430/msp430.c
index 1ebb583c1ed..daff4ae1623 100644
--- a/gcc/config/msp430/msp430.c
+++ b/gcc/config/msp430/msp430.c
@@ -23,6 +23,8 @@
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "calls.h"
#include "rtl.h"
#include "regs.h"
#include "hard-reg-set.h"
diff --git a/gcc/config/nds32/nds32.c b/gcc/config/nds32/nds32.c
index f039e2789c5..4454bf2d0d4 100644
--- a/gcc/config/nds32/nds32.c
+++ b/gcc/config/nds32/nds32.c
@@ -25,6 +25,9 @@
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "varasm.h"
+#include "calls.h"
#include "rtl.h"
#include "regs.h"
#include "hard-reg-set.h"
diff --git a/gcc/config/pa/pa.c b/gcc/config/pa/pa.c
index 260830f00d7..2aa63c6bd0c 100644
--- a/gcc/config/pa/pa.c
+++ b/gcc/config/pa/pa.c
@@ -30,6 +30,10 @@ along with GCC; see the file COPYING3. If not see
#include "insn-attr.h"
#include "flags.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "stringpool.h"
+#include "varasm.h"
+#include "calls.h"
#include "output.h"
#include "dbxout.h"
#include "except.h"
diff --git a/gcc/config/pdp11/pdp11.c b/gcc/config/pdp11/pdp11.c
index 0a310c50d79..42237b5d798 100644
--- a/gcc/config/pdp11/pdp11.c
+++ b/gcc/config/pdp11/pdp11.c
@@ -33,6 +33,9 @@ along with GCC; see the file COPYING3. If not see
#include "flags.h"
#include "recog.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "varasm.h"
+#include "calls.h"
#include "expr.h"
#include "diagnostic-core.h"
#include "tm_p.h"
diff --git a/gcc/config/picochip/picochip.c b/gcc/config/picochip/picochip.c
index 641bccb81f6..4756cb78b72 100644
--- a/gcc/config/picochip/picochip.c
+++ b/gcc/config/picochip/picochip.c
@@ -34,6 +34,10 @@ along with GCC; see the file COPYING3. If not, see
#include "recog.h"
#include "obstack.h"
#include "tree.h"
+#include "calls.h"
+#include "stor-layout.h"
+#include "stringpool.h"
+#include "varasm.h"
#include "expr.h"
#include "optabs.h"
#include "except.h"
diff --git a/gcc/config/rl78/rl78.c b/gcc/config/rl78/rl78.c
index f071e31daf2..72aefc205a1 100644
--- a/gcc/config/rl78/rl78.c
+++ b/gcc/config/rl78/rl78.c
@@ -23,6 +23,9 @@
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "varasm.h"
+#include "stor-layout.h"
+#include "calls.h"
#include "rtl.h"
#include "regs.h"
#include "hard-reg-set.h"
diff --git a/gcc/config/rs6000/rs6000-c.c b/gcc/config/rs6000/rs6000-c.c
index 283cc917ae8..667e5a6de18 100644
--- a/gcc/config/rs6000/rs6000-c.c
+++ b/gcc/config/rs6000/rs6000-c.c
@@ -26,6 +26,8 @@
#include "tm.h"
#include "cpplib.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "stringpool.h"
#include "c-family/c-common.h"
#include "c-family/c-pragma.h"
#include "diagnostic-core.h"
diff --git a/gcc/config/rs6000/rs6000.c b/gcc/config/rs6000/rs6000.c
index bfa061c8c6e..fa79a02a936 100644
--- a/gcc/config/rs6000/rs6000.c
+++ b/gcc/config/rs6000/rs6000.c
@@ -32,6 +32,11 @@
#include "recog.h"
#include "obstack.h"
#include "tree.h"
+#include "stringpool.h"
+#include "stor-layout.h"
+#include "calls.h"
+#include "print-tree.h"
+#include "varasm.h"
#include "expr.h"
#include "optabs.h"
#include "except.h"
diff --git a/gcc/config/rx/rx.c b/gcc/config/rx/rx.c
index 89860927a82..662ab9b72cc 100644
--- a/gcc/config/rx/rx.c
+++ b/gcc/config/rx/rx.c
@@ -27,6 +27,9 @@
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "varasm.h"
+#include "stor-layout.h"
+#include "calls.h"
#include "rtl.h"
#include "regs.h"
#include "hard-reg-set.h"
diff --git a/gcc/config/s390/s390.c b/gcc/config/s390/s390.c
index 8519cd0452d..cae4a329f4e 100644
--- a/gcc/config/s390/s390.c
+++ b/gcc/config/s390/s390.c
@@ -26,6 +26,11 @@ along with GCC; see the file COPYING3. If not see
#include "tm.h"
#include "rtl.h"
#include "tree.h"
+#include "print-tree.h"
+#include "stringpool.h"
+#include "stor-layout.h"
+#include "varasm.h"
+#include "calls.h"
#include "tm_p.h"
#include "regs.h"
#include "hard-reg-set.h"
diff --git a/gcc/config/score/score.c b/gcc/config/score/score.c
index c25aaa2da93..3fdf2ea9050 100644
--- a/gcc/config/score/score.c
+++ b/gcc/config/score/score.c
@@ -32,6 +32,10 @@
#include "diagnostic-core.h"
#include "output.h"
#include "tree.h"
+#include "stringpool.h"
+#include "calls.h"
+#include "varasm.h"
+#include "stor-layout.h"
#include "function.h"
#include "expr.h"
#include "optabs.h"
diff --git a/gcc/config/sh/sh-c.c b/gcc/config/sh/sh-c.c
index 4f3a41a46e7..22e291d2b76 100644
--- a/gcc/config/sh/sh-c.c
+++ b/gcc/config/sh/sh-c.c
@@ -23,6 +23,8 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stringpool.h"
+#include "attribs.h.h"
#include "tm_p.h"
#include "cpplib.h"
#include "c-family/c-common.h"
diff --git a/gcc/config/sh/sh.c b/gcc/config/sh/sh.c
index 088ef396313..d5f7f15c1cc 100644
--- a/gcc/config/sh/sh.c
+++ b/gcc/config/sh/sh.c
@@ -26,6 +26,10 @@ along with GCC; see the file COPYING3. If not see
#include "insn-config.h"
#include "rtl.h"
#include "tree.h"
+#include "stringpool.h"
+#include "stor-layout.h"
+#include "calls.h"
+#include "varasm.h"
#include "flags.h"
#include "expr.h"
#include "optabs.h"
diff --git a/gcc/config/sol2-c.c b/gcc/config/sol2-c.c
index ee44621591e..8254af0fd73 100644
--- a/gcc/config/sol2-c.c
+++ b/gcc/config/sol2-c.c
@@ -22,6 +22,8 @@ along with GCC; see the file COPYING3. If not see
#include "system.h"
#include "coretypes.h"
#include "tree.h"
+#include "stringpool.h"
+#include "attribs.h"
#include "tm.h"
#include "tm_p.h"
diff --git a/gcc/config/sol2-cxx.c b/gcc/config/sol2-cxx.c
index e1b450d759b..d3d79554b96 100644
--- a/gcc/config/sol2-cxx.c
+++ b/gcc/config/sol2-cxx.c
@@ -21,6 +21,7 @@ along with GCC; see the file COPYING3. If not see
#include "system.h"
#include "coretypes.h"
#include "tree.h"
+#include "stringpool.h"
#include "cp/cp-tree.h"
#include "tm.h"
#include "tm_p.h"
diff --git a/gcc/config/sol2.c b/gcc/config/sol2.c
index 7c7c429db3d..4200e620e16 100644
--- a/gcc/config/sol2.c
+++ b/gcc/config/sol2.c
@@ -22,6 +22,8 @@ along with GCC; see the file COPYING3. If not see
#include "system.h"
#include "coretypes.h"
#include "tree.h"
+#include "stringpool.h"
+#include "varasm.h"
#include "output.h"
#include "tm.h"
#include "rtl.h"
diff --git a/gcc/config/sparc/sparc.c b/gcc/config/sparc/sparc.c
index 1d6aa942ef6..cabf8f0d244 100644
--- a/gcc/config/sparc/sparc.c
+++ b/gcc/config/sparc/sparc.c
@@ -25,6 +25,10 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stringpool.h"
+#include "stor-layout.h"
+#include "calls.h"
+#include "varasm.h"
#include "rtl.h"
#include "regs.h"
#include "hard-reg-set.h"
diff --git a/gcc/config/spu/spu-c.c b/gcc/config/spu/spu-c.c
index 215962fa7c9..7632ec1462c 100644
--- a/gcc/config/spu/spu-c.c
+++ b/gcc/config/spu/spu-c.c
@@ -20,6 +20,7 @@
#include "tm.h"
#include "cpplib.h"
#include "tree.h"
+#include "stringpool.h"
#include "c-family/c-common.h"
#include "c-family/c-pragma.h"
#include "tm_p.h"
diff --git a/gcc/config/spu/spu.c b/gcc/config/spu/spu.c
index 55b934b6a5b..315f1b3617f 100644
--- a/gcc/config/spu/spu.c
+++ b/gcc/config/spu/spu.c
@@ -28,6 +28,10 @@
#include "recog.h"
#include "obstack.h"
#include "tree.h"
+#include "stringpool.h"
+#include "stor-layout.h"
+#include "calls.h"
+#include "varasm.h"
#include "expr.h"
#include "optabs.h"
#include "except.h"
diff --git a/gcc/config/stormy16/stormy16.c b/gcc/config/stormy16/stormy16.c
index 3a08534be51..d5a1fc6ad86 100644
--- a/gcc/config/stormy16/stormy16.c
+++ b/gcc/config/stormy16/stormy16.c
@@ -35,6 +35,10 @@
#include "diagnostic-core.h"
#include "obstack.h"
#include "tree.h"
+#include "stringpool.h"
+#include "stor-layout.h"
+#include "varasm.h"
+#include "calls.h"
#include "expr.h"
#include "optabs.h"
#include "except.h"
diff --git a/gcc/config/tilegx/tilegx.c b/gcc/config/tilegx/tilegx.c
index bf13d11b820..809beefa305 100644
--- a/gcc/config/tilegx/tilegx.c
+++ b/gcc/config/tilegx/tilegx.c
@@ -41,6 +41,10 @@
#include "timevar.h"
#include "tree.h"
#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/tilepro.c b/gcc/config/tilepro/tilepro.c
index d497f64125f..9fe1b104f57 100644
--- a/gcc/config/tilepro/tilepro.c
+++ b/gcc/config/tilepro/tilepro.c
@@ -42,6 +42,10 @@
#include "timevar.h"
#include "tree.h"
#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.c b/gcc/config/v850/v850-c.c
index 63ef368afc4..25158d50e09 100644
--- a/gcc/config/v850/v850-c.c
+++ b/gcc/config/v850/v850-c.c
@@ -24,6 +24,8 @@ along with GCC; see the file COPYING3. If not see
#include "tm.h"
#include "cpplib.h"
#include "tree.h"
+#include "stringpool.h"
+#include "attribs.h"
#include "c-family/c-pragma.h"
#include "diagnostic-core.h"
#include "ggc.h"
diff --git a/gcc/config/v850/v850.c b/gcc/config/v850/v850.c
index 006cff4bcdf..32fe73b1fa6 100644
--- a/gcc/config/v850/v850.c
+++ b/gcc/config/v850/v850.c
@@ -23,6 +23,10 @@
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stringpool.h"
+#include "stor-layout.h"
+#include "varasm.h"
+#include "calls.h"
#include "rtl.h"
#include "regs.h"
#include "hard-reg-set.h"
diff --git a/gcc/config/vax/vax.c b/gcc/config/vax/vax.c
index 6b643d1af5d..7aac7cb0554 100644
--- a/gcc/config/vax/vax.c
+++ b/gcc/config/vax/vax.c
@@ -24,6 +24,8 @@ along with GCC; see the file COPYING3. If not see
#include "rtl.h"
#include "df.h"
#include "tree.h"
+#include "calls.h"
+#include "varasm.h"
#include "regs.h"
#include "hard-reg-set.h"
#include "insn-config.h"
diff --git a/gcc/config/vms/vms.c b/gcc/config/vms/vms.c
index ba1e2a69798..3047cfde9fe 100644
--- a/gcc/config/vms/vms.c
+++ b/gcc/config/vms/vms.c
@@ -22,6 +22,7 @@ along with GCC; see the file COPYING3. If not see
#include "system.h"
#include "coretypes.h"
#include "tree.h"
+#include "stringpool.h"
#include "vms-protos.h"
#include "ggc.h"
#include "target.h"
diff --git a/gcc/config/vxworks.c b/gcc/config/vxworks.c
index 2900d9785ea..2940ea11933 100644
--- a/gcc/config/vxworks.c
+++ b/gcc/config/vxworks.c
@@ -26,6 +26,7 @@ along with GCC; see the file COPYING3. If not see
#include "output.h"
#include "tm.h"
#include "tree.h"
+#include "stringpool.h"
/* Like default_named_section_asm_out_constructor, except that even
constructors with DEFAULT_INIT_PRIORITY must go in a numbered
diff --git a/gcc/config/xtensa/xtensa.c b/gcc/config/xtensa/xtensa.c
index 6385c5df555..9e6bb23818f 100644
--- a/gcc/config/xtensa/xtensa.c
+++ b/gcc/config/xtensa/xtensa.c
@@ -34,6 +34,10 @@ along with GCC; see the file COPYING3. If not see
#include "recog.h"
#include "output.h"
#include "tree.h"
+#include "stringpool.h"
+#include "stor-layout.h"
+#include "calls.h"
+#include "varasm.h"
#include "expr.h"
#include "flags.h"
#include "reload.h"
diff --git a/gcc/convert.c b/gcc/convert.c
index a2f2a334dbf..4cf500197ae 100644
--- a/gcc/convert.c
+++ b/gcc/convert.c
@@ -26,6 +26,7 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stor-layout.h"
#include "flags.h"
#include "convert.h"
#include "diagnostic-core.h"
diff --git a/gcc/coverage.c b/gcc/coverage.c
index 3f4e334f078..f2ac5fcaa46 100644
--- a/gcc/coverage.c
+++ b/gcc/coverage.c
@@ -30,6 +30,8 @@ along with GCC; see the file COPYING3. If not see
#include "tm.h"
#include "rtl.h"
#include "tree.h"
+#include "stringpool.h"
+#include "stor-layout.h"
#include "flags.h"
#include "output.h"
#include "regs.h"
diff --git a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog
index 2906ed7a63a..1c0d9b7c121 100644
--- a/gcc/cp/ChangeLog
+++ b/gcc/cp/ChangeLog
@@ -83,6 +83,68 @@
* tree.c: Likewise.
* vtable-class-hierarchy.c: Likewise.
+2013-11-14 Diego Novillo <dnovillo@google.com>
+
+ * call.c: Include stor-layout.h.
+ Include trans-mem.h.
+ Include stringpool.h.
+ * class.c: Include stringpool.h.
+ Include stor-layout.h.
+ Include attribs.h.
+ * cp-gimplify.c: Include stor-layout.h.
+ * cvt.c: Include stor-layout.h.
+ * decl.c: Include stringpool.h.
+ Include stor-layout.h.
+ Include varasm.h.
+ Include attribs.h.
+ Include calls.h.
+ * decl2.c: Include stringpool.h.
+ Include varasm.h.
+ Include attribs.h.
+ Include stor-layout.h.
+ Include calls.h.
+ * error.c: Include stringpool.h.
+ * except.c: Include stringpool.h.
+ Include trans-mem.h.
+ Include attribs.h.
+ * init.c: Include stringpool.h.
+ Include varasm.h.
+ * lambda.c: Include stringpool.h.
+ * lex.c: Include stringpool.h.
+ * mangle.c: Include stor-layout.h.
+ Include stringpool.h.
+ * method.c: Include stringpool.h.
+ Include varasm.h.
+ * name-lookup.c: Include stringpool.h.
+ Include print-tree.h.
+ Include attribs.h.
+ * optimize.c: Include stringpool.h.
+ * parser.c: Include print-tree.h.
+ Include stringpool.h.
+ Include attribs.h.
+ Include trans-mem.h.
+ * pt.c: Include stringpool.h.
+ Include varasm.h.
+ Include attribs.h.
+ Include stor-layout.h.
+ * ptree.c: Include print-tree.h.
+ * repo.c: Include stringpool.h.
+ * rtti.c: Include stringpool.h.
+ Include stor-layout.h.
+ * semantics.c: Include stmt.h.
+ Include varasm.h.
+ Include stor-layout.h.
+ Include stringpool.h.
+ * tree.c: Include stor-layout.h.
+ Include print-tree.h.
+ Include tree-iterator.h.
+ * typeck.c: Include stor-layout.h.
+ Include varasm.h.
+ * typeck2.c: Include stor-layout.h.
+ Include varasm.h.
+ * vtable-class-hierarchy.c: Include stringpool.h.
+ Include stor-layout.h.
+
2013-11-12 Andrew MacLeod <amacleod@redhat.com>
* class.c: Include gimplify.h.
diff --git a/gcc/cp/call.c b/gcc/cp/call.c
index fd7b1cc78d4..c529c16bc74 100644
--- a/gcc/cp/call.c
+++ b/gcc/cp/call.c
@@ -27,6 +27,9 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "trans-mem.h"
+#include "stringpool.h"
#include "cp-tree.h"
#include "flags.h"
#include "toplev.h"
diff --git a/gcc/cp/class.c b/gcc/cp/class.c
index 39ff6a54fb0..00fec27a3d5 100644
--- a/gcc/cp/class.c
+++ b/gcc/cp/class.c
@@ -26,6 +26,10 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stringpool.h"
+#include "stor-layout.h"
+#include "attribs.h"
+#include "gimple.h"
#include "cp-tree.h"
#include "flags.h"
#include "toplev.h"
diff --git a/gcc/cp/cp-gimplify.c b/gcc/cp/cp-gimplify.c
index c464719ad42..e2629464dd9 100644
--- a/gcc/cp/cp-gimplify.c
+++ b/gcc/cp/cp-gimplify.c
@@ -24,6 +24,7 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stor-layout.h"
#include "cp-tree.h"
#include "c-family/c-common.h"
#include "tree-iterator.h"
diff --git a/gcc/cp/cvt.c b/gcc/cp/cvt.c
index 7dac108db95..5264c5df2a8 100644
--- a/gcc/cp/cvt.c
+++ b/gcc/cp/cvt.c
@@ -29,6 +29,7 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stor-layout.h"
#include "flags.h"
#include "cp-tree.h"
#include "intl.h"
diff --git a/gcc/cp/decl.c b/gcc/cp/decl.c
index e2aad9d54b3..500c81f79fc 100644
--- a/gcc/cp/decl.c
+++ b/gcc/cp/decl.c
@@ -31,6 +31,11 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stringpool.h"
+#include "stor-layout.h"
+#include "varasm.h"
+#include "attribs.h"
+#include "calls.h"
#include "flags.h"
#include "cp-tree.h"
#include "tree-iterator.h"
diff --git a/gcc/cp/decl2.c b/gcc/cp/decl2.c
index 18456848492..93c75cbf4d6 100644
--- a/gcc/cp/decl2.c
+++ b/gcc/cp/decl2.c
@@ -31,6 +31,12 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stringpool.h"
+#include "varasm.h"
+#include "attribs.h"
+#include "stor-layout.h"
+#include "calls.h"
+#include "gimple.h"
#include "flags.h"
#include "cp-tree.h"
#include "decl.h"
diff --git a/gcc/cp/error.c b/gcc/cp/error.c
index 0ad9f0722db..5481523868d 100644
--- a/gcc/cp/error.c
+++ b/gcc/cp/error.c
@@ -22,6 +22,7 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stringpool.h"
#include "cp-tree.h"
#include "flags.h"
#include "diagnostic.h"
diff --git a/gcc/cp/except.c b/gcc/cp/except.c
index ac2128d13b0..d7d009bdd69 100644
--- a/gcc/cp/except.c
+++ b/gcc/cp/except.c
@@ -26,6 +26,9 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stringpool.h"
+#include "trans-mem.h"
+#include "attribs.h"
#include "cp-tree.h"
#include "flags.h"
#include "tree-inline.h"
diff --git a/gcc/cp/init.c b/gcc/cp/init.c
index 7eac6f52d09..fd43a4fc87c 100644
--- a/gcc/cp/init.c
+++ b/gcc/cp/init.c
@@ -25,6 +25,8 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stringpool.h"
+#include "varasm.h"
#include "cp-tree.h"
#include "flags.h"
#include "target.h"
diff --git a/gcc/cp/lambda.c b/gcc/cp/lambda.c
index f39ce1a5ea6..24aa2c55cc0 100644
--- a/gcc/cp/lambda.c
+++ b/gcc/cp/lambda.c
@@ -25,6 +25,7 @@ along with GCC; see the file COPYING3. If not see
#include "system.h"
#include "coretypes.h"
#include "tree.h"
+#include "stringpool.h"
#include "cgraph.h"
#include "tree-iterator.h"
#include "cp-tree.h"
diff --git a/gcc/cp/lex.c b/gcc/cp/lex.c
index d6ed809d61d..5d8a313f38b 100644
--- a/gcc/cp/lex.c
+++ b/gcc/cp/lex.c
@@ -27,6 +27,7 @@ along with GCC; see the file COPYING3. If not see
#include "tm.h"
#include "input.h"
#include "tree.h"
+#include "stringpool.h"
#include "cp-tree.h"
#include "cpplib.h"
#include "flags.h"
diff --git a/gcc/cp/mangle.c b/gcc/cp/mangle.c
index 202fafceb03..8a24d6c8cfd 100644
--- a/gcc/cp/mangle.c
+++ b/gcc/cp/mangle.c
@@ -49,6 +49,8 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "stringpool.h"
#include "tm_p.h"
#include "cp-tree.h"
#include "obstack.h"
diff --git a/gcc/cp/method.c b/gcc/cp/method.c
index d15d0a4d6f6..740536573cb 100644
--- a/gcc/cp/method.c
+++ b/gcc/cp/method.c
@@ -26,6 +26,8 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stringpool.h"
+#include "varasm.h"
#include "cp-tree.h"
#include "flags.h"
#include "toplev.h"
diff --git a/gcc/cp/name-lookup.c b/gcc/cp/name-lookup.c
index ced596e310a..d0c024a120f 100644
--- a/gcc/cp/name-lookup.c
+++ b/gcc/cp/name-lookup.c
@@ -24,6 +24,9 @@ along with GCC; see the file COPYING3. If not see
#include "tm.h"
#include "flags.h"
#include "tree.h"
+#include "stringpool.h"
+#include "print-tree.h"
+#include "attribs.h"
#include "cp-tree.h"
#include "name-lookup.h"
#include "timevar.h"
diff --git a/gcc/cp/optimize.c b/gcc/cp/optimize.c
index c4ee8484bb9..b8df1347c33 100644
--- a/gcc/cp/optimize.c
+++ b/gcc/cp/optimize.c
@@ -23,6 +23,7 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stringpool.h"
#include "cp-tree.h"
#include "input.h"
#include "params.h"
diff --git a/gcc/cp/parser.c b/gcc/cp/parser.c
index d37924851ed..977adf6b791 100644
--- a/gcc/cp/parser.c
+++ b/gcc/cp/parser.c
@@ -25,6 +25,10 @@ along with GCC; see the file COPYING3. If not see
#include "timevar.h"
#include "cpplib.h"
#include "tree.h"
+#include "print-tree.h"
+#include "stringpool.h"
+#include "attribs.h"
+#include "trans-mem.h"
#include "cp-tree.h"
#include "intl.h"
#include "c-family/c-pragma.h"
diff --git a/gcc/cp/pt.c b/gcc/cp/pt.c
index 3bc8ccb0ee3..bbf8f550f3e 100644
--- a/gcc/cp/pt.c
+++ b/gcc/cp/pt.c
@@ -29,6 +29,10 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stringpool.h"
+#include "varasm.h"
+#include "attribs.h"
+#include "stor-layout.h"
#include "intl.h"
#include "pointer-set.h"
#include "flags.h"
diff --git a/gcc/cp/ptree.c b/gcc/cp/ptree.c
index f4ca003be98..3c37a2aed3e 100644
--- a/gcc/cp/ptree.c
+++ b/gcc/cp/ptree.c
@@ -24,6 +24,7 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "print-tree.h"
#include "cp-tree.h"
void
diff --git a/gcc/cp/repo.c b/gcc/cp/repo.c
index 7b6f7b8ce1b..47b91986582 100644
--- a/gcc/cp/repo.c
+++ b/gcc/cp/repo.c
@@ -29,6 +29,7 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stringpool.h"
#include "cp-tree.h"
#include "input.h"
#include "obstack.h"
diff --git a/gcc/cp/rtti.c b/gcc/cp/rtti.c
index 5827540c9b2..0bac87909a0 100644
--- a/gcc/cp/rtti.c
+++ b/gcc/cp/rtti.c
@@ -24,6 +24,8 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stringpool.h"
+#include "stor-layout.h"
#include "cp-tree.h"
#include "flags.h"
#include "convert.h"
diff --git a/gcc/cp/semantics.c b/gcc/cp/semantics.c
index dce2b3749fc..11f781288e9 100644
--- a/gcc/cp/semantics.c
+++ b/gcc/cp/semantics.c
@@ -28,6 +28,10 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stmt.h"
+#include "varasm.h"
+#include "stor-layout.h"
+#include "stringpool.h"
#include "cp-tree.h"
#include "c-family/c-common.h"
#include "c-family/c-objc.h"
diff --git a/gcc/cp/tree.c b/gcc/cp/tree.c
index d7af1d3a551..a990a79bbb3 100644
--- a/gcc/cp/tree.c
+++ b/gcc/cp/tree.c
@@ -23,6 +23,9 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "print-tree.h"
+#include "tree-iterator.h"
#include "cp-tree.h"
#include "flags.h"
#include "tree-inline.h"
diff --git a/gcc/cp/typeck.c b/gcc/cp/typeck.c
index bff7f17780f..c9ddbe9ba24 100644
--- a/gcc/cp/typeck.c
+++ b/gcc/cp/typeck.c
@@ -29,6 +29,9 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "varasm.h"
+#include "gimple.h"
#include "cp-tree.h"
#include "flags.h"
#include "diagnostic.h"
diff --git a/gcc/cp/typeck2.c b/gcc/cp/typeck2.c
index 5c4fdfa0162..0f3b01d9bc2 100644
--- a/gcc/cp/typeck2.c
+++ b/gcc/cp/typeck2.c
@@ -30,6 +30,8 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "varasm.h"
#include "intl.h"
#include "cp-tree.h"
#include "flags.h"
diff --git a/gcc/cp/vtable-class-hierarchy.c b/gcc/cp/vtable-class-hierarchy.c
index 5e78ec9d3a7..32f9541e43d 100644
--- a/gcc/cp/vtable-class-hierarchy.c
+++ b/gcc/cp/vtable-class-hierarchy.c
@@ -120,6 +120,8 @@ along with GCC; see the file COPYING3. If not see
#include "vtable-verify.h"
#include "gimple.h"
#include "gimplify.h"
+#include "stringpool.h"
+#include "stor-layout.h"
static int num_calls_to_regset = 0;
static int num_calls_to_regpair = 0;
diff --git a/gcc/dbxout.c b/gcc/dbxout.c
index 2e03c124ee8..88596a8d49c 100644
--- a/gcc/dbxout.c
+++ b/gcc/dbxout.c
@@ -72,6 +72,8 @@ along with GCC; see the file COPYING3. If not see
#include "tm.h"
#include "tree.h"
+#include "varasm.h"
+#include "stor-layout.h"
#include "rtl.h"
#include "flags.h"
#include "regs.h"
diff --git a/gcc/dojump.c b/gcc/dojump.c
index ee12d761eee..2aef34d307a 100644
--- a/gcc/dojump.c
+++ b/gcc/dojump.c
@@ -23,6 +23,7 @@ along with GCC; see the file COPYING3. If not see
#include "tm.h"
#include "rtl.h"
#include "tree.h"
+#include "stor-layout.h"
#include "flags.h"
#include "function.h"
#include "insn-config.h"
diff --git a/gcc/dse.c b/gcc/dse.c
index b602caa291f..9662da845ba 100644
--- a/gcc/dse.c
+++ b/gcc/dse.c
@@ -29,6 +29,7 @@ along with GCC; see the file COPYING3. If not see
#include "tm.h"
#include "rtl.h"
#include "tree.h"
+#include "stor-layout.h"
#include "tm_p.h"
#include "regs.h"
#include "hard-reg-set.h"
diff --git a/gcc/dwarf2asm.c b/gcc/dwarf2asm.c
index 69907f9fbf2..fc1b0825205 100644
--- a/gcc/dwarf2asm.c
+++ b/gcc/dwarf2asm.c
@@ -24,6 +24,8 @@ along with GCC; see the file COPYING3. If not see
#include "tm.h"
#include "flags.h"
#include "tree.h"
+#include "stringpool.h"
+#include "varasm.h"
#include "rtl.h"
#include "output.h"
#include "target.h"
diff --git a/gcc/dwarf2cfi.c b/gcc/dwarf2cfi.c
index e0f85edc61b..19276e23a20 100644
--- a/gcc/dwarf2cfi.c
+++ b/gcc/dwarf2cfi.c
@@ -25,6 +25,7 @@ along with GCC; see the file COPYING3. If not see
#include "flags.h"
#include "rtl.h"
#include "tree.h"
+#include "stor-layout.h"
#include "function.h"
#include "basic-block.h"
#include "dwarf2.h"
diff --git a/gcc/dwarf2out.c b/gcc/dwarf2out.c
index 0095507ee1a..8186b528872 100644
--- a/gcc/dwarf2out.c
+++ b/gcc/dwarf2out.c
@@ -59,10 +59,16 @@ along with GCC; see the file COPYING3. If not see
#include "system.h"
#include "coretypes.h"
#include "tm.h"
+#include "rtl.h"
#include "tree.h"
+#include "stringpool.h"
+#include "stor-layout.h"
+#include "varasm.h"
+#include "function.h"
+#include "emit-rtl.h"
+#include "gimple.h"
#include "version.h"
#include "flags.h"
-#include "rtl.h"
#include "hard-reg-set.h"
#include "regs.h"
#include "insn-config.h"
diff --git a/gcc/emit-rtl.c b/gcc/emit-rtl.c
index af228d94bd4..24e3c92151b 100644
--- a/gcc/emit-rtl.c
+++ b/gcc/emit-rtl.c
@@ -38,9 +38,12 @@ along with GCC; see the file COPYING3. If not see
#include "diagnostic-core.h"
#include "rtl.h"
#include "tree.h"
+#include "varasm.h"
+#include "gimple.h"
#include "tm_p.h"
#include "flags.h"
#include "function.h"
+#include "stringpool.h"
#include "expr.h"
#include "regs.h"
#include "hard-reg-set.h"
diff --git a/gcc/emit-rtl.h b/gcc/emit-rtl.h
index 726809097e7..301c67b3545 100644
--- a/gcc/emit-rtl.h
+++ b/gcc/emit-rtl.h
@@ -113,4 +113,7 @@ get_max_uid (void)
{
return crtl->emit.x_cur_insn_uid;
}
+
+extern void set_decl_incoming_rtl (tree, rtx, bool);
+
#endif /* GCC_EMIT_RTL_H */
diff --git a/gcc/except.c b/gcc/except.c
index 6043ef293e6..f8296b223bc 100644
--- a/gcc/except.c
+++ b/gcc/except.c
@@ -115,6 +115,8 @@ along with GCC; see the file COPYING3. If not see
#include "tm.h"
#include "rtl.h"
#include "tree.h"
+#include "stringpool.h"
+#include "stor-layout.h"
#include "flags.h"
#include "function.h"
#include "expr.h"
diff --git a/gcc/explow.c b/gcc/explow.c
index 3a78a651360..bc4f805323c 100644
--- a/gcc/explow.c
+++ b/gcc/explow.c
@@ -25,6 +25,7 @@ along with GCC; see the file COPYING3. If not see
#include "diagnostic-core.h"
#include "rtl.h"
#include "tree.h"
+#include "stor-layout.h"
#include "tm_p.h"
#include "flags.h"
#include "except.h"
diff --git a/gcc/expmed.c b/gcc/expmed.c
index 1617bc05aa1..c5123cbbe81 100644
--- a/gcc/expmed.c
+++ b/gcc/expmed.c
@@ -26,6 +26,7 @@ along with GCC; see the file COPYING3. If not see
#include "diagnostic-core.h"
#include "rtl.h"
#include "tree.h"
+#include "stor-layout.h"
#include "tm_p.h"
#include "flags.h"
#include "insn-config.h"
diff --git a/gcc/expr.c b/gcc/expr.c
index ece5d0fc443..53e85e503ee 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -24,6 +24,10 @@ along with GCC; see the file COPYING3. If not see
#include "machmode.h"
#include "rtl.h"
#include "tree.h"
+#include "stringpool.h"
+#include "stor-layout.h"
+#include "attribs.h"
+#include "varasm.h"
#include "flags.h"
#include "regs.h"
#include "hard-reg-set.h"
diff --git a/gcc/expr.h b/gcc/expr.h
index 422c75d3f59..a2cd6690bfe 100644
--- a/gcc/expr.h
+++ b/gcc/expr.h
@@ -748,4 +748,23 @@ extern void expand_case (gimple);
/* 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. */
+extern int can_move_by_pieces (unsigned HOST_WIDE_INT, unsigned int);
+
+extern unsigned HOST_WIDE_INT highest_pow2_factor (const_tree);
+bool array_at_struct_end_p (tree);
+
+/* Return a tree of sizetype representing the size, in bytes, of the element
+ of EXP, an ARRAY_REF or an ARRAY_RANGE_REF. */
+extern tree array_ref_element_size (tree);
+
+extern bool categorize_ctor_elements (const_tree, HOST_WIDE_INT *,
+ HOST_WIDE_INT *, bool *);
+
+/* Return a tree representing the offset, in bytes, of the field referenced
+ by EXP. This does not include any offset in DECL_FIELD_BIT_OFFSET. */
+extern tree component_ref_field_offset (tree);
+
#endif /* GCC_EXPR_H */
diff --git a/gcc/final.c b/gcc/final.c
index 1a6320f5195..2d206f1311a 100644
--- a/gcc/final.c
+++ b/gcc/final.c
@@ -48,6 +48,7 @@ along with GCC; see the file COPYING3. If not see
#include "tm.h"
#include "tree.h"
+#include "varasm.h"
#include "rtl.h"
#include "tm_p.h"
#include "regs.h"
diff --git a/gcc/fold-const.c b/gcc/fold-const.c
index 5a010234af5..fc18de56565 100644
--- a/gcc/fold-const.c
+++ b/gcc/fold-const.c
@@ -46,6 +46,9 @@ along with GCC; see the file COPYING3. If not see
#include "tm.h"
#include "flags.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "calls.h"
+#include "tree-iterator.h"
#include "realmpfr.h"
#include "rtl.h"
#include "expr.h"
diff --git a/gcc/fold-const.h b/gcc/fold-const.h
new file mode 100644
index 00000000000..1d458366951
--- /dev/null
+++ b/gcc/fold-const.h
@@ -0,0 +1,172 @@
+/* Fold a constant sub-tree into a single node for C-compiler
+ Copyright (C) 1987-2013 Free Software Foundation, Inc.
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 3, or (at your option) any later
+version.
+
+GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3. If not see
+<http://www.gnu.org/licenses/>. */
+
+#ifndef GCC_FOLD_CONST_H
+#define GCC_FOLD_CONST_H
+
+/* Non-zero if we are folding constants inside an initializer; zero
+ otherwise. */
+extern int folding_initializer;
+
+/* Convert between trees and native memory representation. */
+extern int native_encode_expr (const_tree, unsigned char *, int);
+extern tree native_interpret_expr (tree, const unsigned char *, int);
+
+/* Fold constants as much as possible in an expression.
+ Returns the simplified expression.
+ Acts only on the top level of the expression;
+ if the argument itself cannot be simplified, its
+ subexpressions are not changed. */
+
+extern tree fold (tree);
+#define fold_unary(CODE,T1,T2)\
+ fold_unary_loc (UNKNOWN_LOCATION, CODE, T1, T2)
+extern tree fold_unary_loc (location_t, enum tree_code, tree, tree);
+#define fold_unary_ignore_overflow(CODE,T1,T2)\
+ fold_unary_ignore_overflow_loc (UNKNOWN_LOCATION, CODE, T1, T2)
+extern tree fold_unary_ignore_overflow_loc (location_t, enum tree_code, tree, tree);
+#define fold_binary(CODE,T1,T2,T3)\
+ fold_binary_loc (UNKNOWN_LOCATION, CODE, T1, T2, T3)
+extern tree fold_binary_loc (location_t, enum tree_code, tree, tree, tree);
+#define fold_ternary(CODE,T1,T2,T3,T4)\
+ fold_ternary_loc (UNKNOWN_LOCATION, CODE, T1, T2, T3, T4)
+extern tree fold_ternary_loc (location_t, enum tree_code, tree, tree, tree, tree);
+#define fold_build1(c,t1,t2)\
+ fold_build1_stat_loc (UNKNOWN_LOCATION, c, t1, t2 MEM_STAT_INFO)
+#define fold_build1_loc(l,c,t1,t2)\
+ fold_build1_stat_loc (l, c, t1, t2 MEM_STAT_INFO)
+extern tree fold_build1_stat_loc (location_t, enum tree_code, tree,
+ tree MEM_STAT_DECL);
+#define fold_build2(c,t1,t2,t3)\
+ fold_build2_stat_loc (UNKNOWN_LOCATION, c, t1, t2, t3 MEM_STAT_INFO)
+#define fold_build2_loc(l,c,t1,t2,t3)\
+ fold_build2_stat_loc (l, c, t1, t2, t3 MEM_STAT_INFO)
+extern tree fold_build2_stat_loc (location_t, enum tree_code, tree, tree,
+ tree MEM_STAT_DECL);
+#define fold_build3(c,t1,t2,t3,t4)\
+ fold_build3_stat_loc (UNKNOWN_LOCATION, c, t1, t2, t3, t4 MEM_STAT_INFO)
+#define fold_build3_loc(l,c,t1,t2,t3,t4)\
+ fold_build3_stat_loc (l, c, t1, t2, t3, t4 MEM_STAT_INFO)
+extern tree fold_build3_stat_loc (location_t, enum tree_code, tree, tree, tree,
+ tree MEM_STAT_DECL);
+extern tree fold_build1_initializer_loc (location_t, enum tree_code, tree, tree);
+extern tree fold_build2_initializer_loc (location_t, enum tree_code, tree, tree, tree);
+#define fold_build_call_array(T1,T2,N,T4)\
+ fold_build_call_array_loc (UNKNOWN_LOCATION, T1, T2, N, T4)
+extern tree fold_build_call_array_loc (location_t, tree, tree, int, tree *);
+#define fold_build_call_array_initializer(T1,T2,N,T4)\
+ fold_build_call_array_initializer_loc (UNKNOWN_LOCATION, T1, T2, N, T4)
+extern tree fold_build_call_array_initializer_loc (location_t, tree, tree, int, tree *);
+extern bool fold_convertible_p (const_tree, const_tree);
+#define fold_convert(T1,T2)\
+ fold_convert_loc (UNKNOWN_LOCATION, T1, T2)
+extern tree fold_convert_loc (location_t, tree, tree);
+extern tree fold_single_bit_test (location_t, enum tree_code, tree, tree, tree);
+extern tree fold_ignored_result (tree);
+extern tree fold_abs_const (tree, tree);
+extern tree fold_indirect_ref_1 (location_t, tree, tree);
+extern void fold_defer_overflow_warnings (void);
+extern void fold_undefer_overflow_warnings (bool, const_gimple, int);
+extern void fold_undefer_and_ignore_overflow_warnings (void);
+extern bool fold_deferring_overflow_warnings_p (void);
+extern tree fold_fma (location_t, tree, tree, tree, tree);
+extern int operand_equal_p (const_tree, const_tree, unsigned int);
+extern int multiple_of_p (tree, const_tree, const_tree);
+#define omit_one_operand(T1,T2,T3)\
+ omit_one_operand_loc (UNKNOWN_LOCATION, T1, T2, T3)
+extern tree omit_one_operand_loc (location_t, tree, tree, tree);
+#define omit_two_operands(T1,T2,T3,T4)\
+ omit_two_operands_loc (UNKNOWN_LOCATION, T1, T2, T3, T4)
+extern tree omit_two_operands_loc (location_t, tree, tree, tree, tree);
+#define invert_truthvalue(T)\
+ invert_truthvalue_loc (UNKNOWN_LOCATION, T)
+extern tree invert_truthvalue_loc (location_t, tree);
+extern tree fold_unary_to_constant (enum tree_code, tree, tree);
+extern tree fold_binary_to_constant (enum tree_code, tree, tree, tree);
+extern tree fold_read_from_constant_string (tree);
+extern tree int_const_binop (enum tree_code, const_tree, const_tree);
+#define build_fold_addr_expr(T)\
+ build_fold_addr_expr_loc (UNKNOWN_LOCATION, (T))
+extern tree build_fold_addr_expr_loc (location_t, tree);
+#define build_fold_addr_expr_with_type(T,TYPE)\
+ build_fold_addr_expr_with_type_loc (UNKNOWN_LOCATION, (T), TYPE)
+extern tree build_fold_addr_expr_with_type_loc (location_t, tree, tree);
+extern tree fold_build_cleanup_point_expr (tree type, tree expr);
+extern tree fold_strip_sign_ops (tree);
+#define build_fold_indirect_ref(T)\
+ build_fold_indirect_ref_loc (UNKNOWN_LOCATION, T)
+extern tree build_fold_indirect_ref_loc (location_t, tree);
+#define fold_indirect_ref(T)\
+ fold_indirect_ref_loc (UNKNOWN_LOCATION, T)
+extern tree fold_indirect_ref_loc (location_t, tree);
+extern tree build_simple_mem_ref_loc (location_t, tree);
+#define build_simple_mem_ref(T)\
+ build_simple_mem_ref_loc (UNKNOWN_LOCATION, T)
+extern double_int mem_ref_offset (const_tree);
+extern tree build_invariant_address (tree, tree, HOST_WIDE_INT);
+extern tree constant_boolean_node (bool, tree);
+extern tree div_if_zero_remainder (enum tree_code, const_tree, const_tree);
+
+extern bool tree_swap_operands_p (const_tree, const_tree, bool);
+extern enum tree_code swap_tree_comparison (enum tree_code);
+
+extern bool ptr_difference_const (tree, tree, HOST_WIDE_INT *);
+extern enum tree_code invert_tree_comparison (enum tree_code, bool);
+
+extern bool tree_unary_nonzero_warnv_p (enum tree_code, tree, tree, bool *);
+extern bool tree_binary_nonzero_warnv_p (enum tree_code, tree, tree, tree op1,
+ bool *);
+extern bool tree_single_nonzero_warnv_p (tree, bool *);
+extern bool tree_unary_nonnegative_warnv_p (enum tree_code, tree, tree, bool *);
+extern bool tree_binary_nonnegative_warnv_p (enum tree_code, tree, tree, tree,
+ bool *);
+extern bool tree_single_nonnegative_warnv_p (tree t, bool *strict_overflow_p);
+extern bool tree_call_nonnegative_warnv_p (tree, tree, tree, tree, bool *);
+
+extern bool fold_real_zero_addition_p (const_tree, const_tree, int);
+extern tree combine_comparisons (location_t, enum tree_code, enum tree_code,
+ enum tree_code, tree, tree, tree);
+extern void debug_fold_checksum (const_tree);
+extern bool may_negate_without_overflow_p (const_tree);
+#define round_up(T,N) round_up_loc (UNKNOWN_LOCATION, T, N)
+extern tree round_up_loc (location_t, tree, int);
+#define round_down(T,N) round_down_loc (UNKNOWN_LOCATION, T, N)
+extern tree round_down_loc (location_t, tree, int);
+extern tree size_int_kind (HOST_WIDE_INT, enum size_type_kind);
+#define size_binop(CODE,T1,T2)\
+ size_binop_loc (UNKNOWN_LOCATION, CODE, T1, T2)
+extern tree size_binop_loc (location_t, enum tree_code, tree, tree);
+#define size_diffop(T1,T2)\
+ size_diffop_loc (UNKNOWN_LOCATION, T1, T2)
+extern tree size_diffop_loc (location_t, tree, tree);
+
+/* Return an expr equal to X but certainly not valid as an lvalue. */
+#define non_lvalue(T) non_lvalue_loc (UNKNOWN_LOCATION, T)
+extern tree non_lvalue_loc (location_t, tree);
+
+extern bool tree_expr_nonnegative_p (tree);
+extern bool tree_expr_nonnegative_warnv_p (tree, bool *);
+extern tree make_range (tree, int *, tree *, tree *, bool *);
+extern tree make_range_step (location_t, enum tree_code, tree, tree, tree,
+ tree *, tree *, int *, bool *);
+extern tree build_range_check (location_t, tree, tree, int, tree, tree);
+extern bool merge_ranges (int *, tree *, tree *, int, tree, tree, int,
+ tree, tree);
+
+#endif // GCC_FOLD_CONST_H
diff --git a/gcc/fortran/ChangeLog b/gcc/fortran/ChangeLog
index 16e8915c0c5..26e58bef0f0 100644
--- a/gcc/fortran/ChangeLog
+++ b/gcc/fortran/ChangeLog
@@ -7,6 +7,33 @@
* trans-expr.c: Include only gimplify.h and gimple.h as needed.
* trans-openmp.c: Likewise.
+2013-11-14 Diego Novillo <dnovillo@google.com>
+
+ * decl.c: Include stringpool.h.
+ * iresolve.c: Include stringpool.h.
+ * match.c: Include stringpool.h.
+ * module.c: Include stringpool.h.
+ * target-memory.c: Include stor-layout.h.
+ * trans-common.c: Include stringpool.h.
+ Include stor-layout.h.
+ Include varasm.h.
+ * trans-const.c: Include stor-layout.h.
+ * trans-decl.c: Include stringpool.h.
+ Include stor-layout.h.
+ Include varasm.h.
+ Include attribs.h.
+ * trans-expr.c: Include stringpool.h.
+ * trans-intrinsic.c: Include stringpool.h.
+ Include tree-nested.h.
+ Include stor-layout.h.
+ * trans-io.c: Include stringpool.h.
+ Include stor-layout.h.
+ * trans-openmp.c: Include stringpool.h.
+ * trans-stmt.c: Include stringpool.h.
+ * trans-types.c: Include stor-layout.h.
+ Include stringpool.h.
+ * trans.c: Include stringpool.h.
+
2013-11-12 Andrew MacLeod <amacleod@redhat.com>
* f95-lang.c: Don't include gimple.h.
diff --git a/gcc/fortran/decl.c b/gcc/fortran/decl.c
index 9c9fd4ffbf0..0a0f8e0f3b5 100644
--- a/gcc/fortran/decl.c
+++ b/gcc/fortran/decl.c
@@ -27,6 +27,7 @@ along with GCC; see the file COPYING3. If not see
#include "flags.h"
#include "constructor.h"
#include "tree.h"
+#include "stringpool.h"
/* Macros to access allocate memory for gfc_data_variable,
gfc_data_value and gfc_data. */
diff --git a/gcc/fortran/iresolve.c b/gcc/fortran/iresolve.c
index af452b32888..f31340f5d55 100644
--- a/gcc/fortran/iresolve.c
+++ b/gcc/fortran/iresolve.c
@@ -30,6 +30,7 @@ along with GCC; see the file COPYING3. If not see
#include "system.h"
#include "coretypes.h"
#include "tree.h"
+#include "stringpool.h"
#include "gfortran.h"
#include "intrinsic.h"
#include "constructor.h"
diff --git a/gcc/fortran/match.c b/gcc/fortran/match.c
index 71e3862189a..539780aaa24 100644
--- a/gcc/fortran/match.c
+++ b/gcc/fortran/match.c
@@ -26,6 +26,7 @@ along with GCC; see the file COPYING3. If not see
#include "match.h"
#include "parse.h"
#include "tree.h"
+#include "stringpool.h"
int gfc_matching_ptr_assignment = 0;
int gfc_matching_procptr_assignment = 0;
diff --git a/gcc/fortran/module.c b/gcc/fortran/module.c
index c390a95952e..0cd48018577 100644
--- a/gcc/fortran/module.c
+++ b/gcc/fortran/module.c
@@ -74,6 +74,7 @@ along with GCC; see the file COPYING3. If not see
#include "constructor.h"
#include "cpp.h"
#include "tree.h"
+#include "stringpool.h"
#include "scanner.h"
#include <zlib.h>
diff --git a/gcc/fortran/target-memory.c b/gcc/fortran/target-memory.c
index e905b3a67dc..d0ee41a089c 100644
--- a/gcc/fortran/target-memory.c
+++ b/gcc/fortran/target-memory.c
@@ -24,6 +24,7 @@ along with GCC; see the file COPYING3. If not see
#include "flags.h"
#include "machmode.h"
#include "tree.h"
+#include "stor-layout.h"
#include "gfortran.h"
#include "arith.h"
#include "constructor.h"
diff --git a/gcc/fortran/trans-common.c b/gcc/fortran/trans-common.c
index e2234b1ae0c..2266c1bfa56 100644
--- a/gcc/fortran/trans-common.c
+++ b/gcc/fortran/trans-common.c
@@ -98,6 +98,9 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stringpool.h"
+#include "stor-layout.h"
+#include "varasm.h"
#include "gfortran.h"
#include "trans.h"
#include "trans-types.h"
diff --git a/gcc/fortran/trans-const.c b/gcc/fortran/trans-const.c
index a217c471411..f5a2b18ecba 100644
--- a/gcc/fortran/trans-const.c
+++ b/gcc/fortran/trans-const.c
@@ -24,6 +24,7 @@ along with GCC; see the file COPYING3. If not see
#include "system.h"
#include "coretypes.h"
#include "tree.h"
+#include "stor-layout.h"
#include "realmpfr.h"
#include "diagnostic-core.h" /* For fatal_error. */
#include "double-int.h"
diff --git a/gcc/fortran/trans-decl.c b/gcc/fortran/trans-decl.c
index 1df3bb44e7a..f974c6e8107 100644
--- a/gcc/fortran/trans-decl.c
+++ b/gcc/fortran/trans-decl.c
@@ -25,6 +25,10 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stringpool.h"
+#include "stor-layout.h"
+#include "varasm.h"
+#include "attribs.h"
#include "tree-dump.h"
#include "gimple-expr.h" /* For create_tmp_var_raw. */
#include "ggc.h"
diff --git a/gcc/fortran/trans-expr.c b/gcc/fortran/trans-expr.c
index b932fa4d715..41b2f94679a 100644
--- a/gcc/fortran/trans-expr.c
+++ b/gcc/fortran/trans-expr.c
@@ -25,6 +25,7 @@ along with GCC; see the file COPYING3. If not see
#include "system.h"
#include "coretypes.h"
#include "tree.h"
+#include "stringpool.h"
#include "diagnostic-core.h" /* For fatal_error. */
#include "langhooks.h"
#include "flags.h"
diff --git a/gcc/fortran/trans-intrinsic.c b/gcc/fortran/trans-intrinsic.c
index 042911f8ea1..4acdc8dc756 100644
--- a/gcc/fortran/trans-intrinsic.c
+++ b/gcc/fortran/trans-intrinsic.c
@@ -26,6 +26,9 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h" /* For UNITS_PER_WORD. */
#include "tree.h"
+#include "stringpool.h"
+#include "tree-nested.h"
+#include "stor-layout.h"
#include "ggc.h"
#include "diagnostic-core.h" /* For internal_error. */
#include "toplev.h" /* For rest_of_decl_compilation. */
diff --git a/gcc/fortran/trans-io.c b/gcc/fortran/trans-io.c
index 5fa1cdc091e..9b46a4eef3e 100644
--- a/gcc/fortran/trans-io.c
+++ b/gcc/fortran/trans-io.c
@@ -23,6 +23,8 @@ along with GCC; see the file COPYING3. If not see
#include "system.h"
#include "coretypes.h"
#include "tree.h"
+#include "stringpool.h"
+#include "stor-layout.h"
#include "ggc.h"
#include "diagnostic-core.h" /* For internal_error. */
#include "gfortran.h"
diff --git a/gcc/fortran/trans-openmp.c b/gcc/fortran/trans-openmp.c
index 13c87058ddd..d23af17d81e 100644
--- a/gcc/fortran/trans-openmp.c
+++ b/gcc/fortran/trans-openmp.c
@@ -25,6 +25,7 @@ along with GCC; see the file COPYING3. If not see
#include "tree.h"
#include "gimple.h"
#include "gimplify.h" /* For create_tmp_var_raw. */
+#include "stringpool.h"
#include "diagnostic-core.h" /* For internal_error. */
#include "gfortran.h"
#include "trans.h"
diff --git a/gcc/fortran/trans-stmt.c b/gcc/fortran/trans-stmt.c
index 62e690d407c..4f211975581 100644
--- a/gcc/fortran/trans-stmt.c
+++ b/gcc/fortran/trans-stmt.c
@@ -24,6 +24,7 @@ along with GCC; see the file COPYING3. If not see
#include "system.h"
#include "coretypes.h"
#include "tree.h"
+#include "stringpool.h"
#include "gfortran.h"
#include "flags.h"
#include "trans.h"
diff --git a/gcc/fortran/trans-types.c b/gcc/fortran/trans-types.c
index fa84d5dab81..21d9f285d17 100644
--- a/gcc/fortran/trans-types.c
+++ b/gcc/fortran/trans-types.c
@@ -34,6 +34,8 @@ along with GCC; see the file COPYING3. If not see
FLOAT_TYPE_SIZE, DOUBLE_TYPE_SIZE,
LONG_DOUBLE_TYPE_SIZE and LIBGCC2_HAS_TF_MODE. */
#include "tree.h"
+#include "stor-layout.h"
+#include "stringpool.h"
#include "langhooks.h" /* For iso-c-bindings.def. */
#include "target.h"
#include "ggc.h"
diff --git a/gcc/fortran/trans.c b/gcc/fortran/trans.c
index ef20a20f018..204cbff3247 100644
--- a/gcc/fortran/trans.c
+++ b/gcc/fortran/trans.c
@@ -23,6 +23,8 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tree.h"
#include "gimple-expr.h" /* For create_tmp_var_raw. */
+#include "gimple.h"
+#include "stringpool.h"
#include "tree-iterator.h"
#include "diagnostic-core.h" /* For internal_error. */
#include "flags.h"
diff --git a/gcc/function.c b/gcc/function.c
index 724b9694917..87953e335c4 100644
--- a/gcc/function.c
+++ b/gcc/function.c
@@ -37,6 +37,9 @@ along with GCC; see the file COPYING3. If not see
#include "tm.h"
#include "rtl-error.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "varasm.h"
+#include "stringpool.h"
#include "flags.h"
#include "except.h"
#include "function.h"
diff --git a/gcc/function.h b/gcc/function.h
index 9bb6ff04c50..c00bfe2aa37 100644
--- a/gcc/function.h
+++ b/gcc/function.h
@@ -822,4 +822,25 @@ extern unsigned int emit_initial_value_sets (void);
extern bool optimize_function_for_size_p (struct function *);
extern bool optimize_function_for_speed_p (struct function *);
+/* In function.c */
+extern void expand_function_end (void);
+extern void expand_function_start (tree);
+extern void stack_protect_epilogue (void);
+extern void init_dummy_function_start (void);
+extern void expand_dummy_function_end (void);
+extern void allocate_struct_function (tree, bool);
+extern void push_struct_function (tree fndecl);
+extern void init_function_start (tree);
+extern bool use_register_for_decl (const_tree);
+extern void generate_setjmp_warnings (void);
+extern void init_temp_slots (void);
+extern void free_temp_slots (void);
+extern void pop_temp_slots (void);
+extern void push_temp_slots (void);
+extern void preserve_temp_slots (rtx);
+extern int aggregate_value_p (const_tree, const_tree);
+extern void push_function_context (void);
+extern void pop_function_context (void);
+extern gimple_seq gimplify_parameters (void);
+
#endif /* GCC_FUNCTION_H */
diff --git a/gcc/gcc-symtab.h b/gcc/gcc-symtab.h
new file mode 100644
index 00000000000..a5bbad265a3
--- /dev/null
+++ b/gcc/gcc-symtab.h
@@ -0,0 +1,28 @@
+/* Declarations for symtab.c.
+ FIXME - This file should be named symtab.h, but that name conflicts
+ with libcpp's symtab.h.
+
+ Copyright (C) 2013 Free Software Foundation, Inc.
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 3, or (at your option) any later
+version.
+
+GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3. If not see
+<http://www.gnu.org/licenses/>. */
+
+#ifndef GCC_SYMTAB_H
+#define GCC_SYMTAB_H
+
+extern void change_decl_assembler_name (tree, tree);
+
+#endif // GCC_SYMTAB_H
diff --git a/gcc/genattrtab.c b/gcc/genattrtab.c
index f79380d6e46..c0125d103b7 100644
--- a/gcc/genattrtab.c
+++ b/gcc/genattrtab.c
@@ -5101,6 +5101,9 @@ write_header (FILE *outf)
fprintf (outf, "#include \"coretypes.h\"\n");
fprintf (outf, "#include \"tm.h\"\n");
fprintf (outf, "#include \"tree.h\"\n");
+ fprintf (outf, "#include \"varasm.h\"\n");
+ fprintf (outf, "#include \"stor-layout.h\"\n");
+ fprintf (outf, "#include \"calls.h\"\n");
fprintf (outf, "#include \"rtl.h\"\n");
fprintf (outf, "#include \"insn-attr.h\"\n");
fprintf (outf, "#include \"tm_p.h\"\n");
diff --git a/gcc/genautomata.c b/gcc/genautomata.c
index f6c4b91c42e..3ab480428aa 100644
--- a/gcc/genautomata.c
+++ b/gcc/genautomata.c
@@ -9666,6 +9666,9 @@ main (int argc, char **argv)
"#include \"coretypes.h\"\n"
"#include \"tm.h\"\n"
"#include \"tree.h\"\n"
+ "#include \"varasm.h\"\n"
+ "#include \"stor-layout.h\"\n"
+ "#include \"calls.h\"\n"
"#include \"rtl.h\"\n"
"#include \"tm_p.h\"\n"
"#include \"insn-config.h\"\n"
diff --git a/gcc/genemit.c b/gcc/genemit.c
index 724a114da44..03831bfc9de 100644
--- a/gcc/genemit.c
+++ b/gcc/genemit.c
@@ -791,6 +791,9 @@ from the machine description file `md'. */\n\n");
printf ("#include \"coretypes.h\"\n");
printf ("#include \"tm.h\"\n");
printf ("#include \"tree.h\"\n");
+ printf ("#include \"varasm.h\"\n");
+ printf ("#include \"stor-layout.h\"\n");
+ printf ("#include \"calls.h\"\n");
printf ("#include \"rtl.h\"\n");
printf ("#include \"tm_p.h\"\n");
printf ("#include \"function.h\"\n");
diff --git a/gcc/gengtype.c b/gcc/gengtype.c
index ecf1ef00385..86e9ca22006 100644
--- a/gcc/gengtype.c
+++ b/gcc/gengtype.c
@@ -1770,7 +1770,7 @@ open_base_files (void)
"hard-reg-set.h", "basic-block.h", "cselib.h", "insn-addr.h",
"optabs.h", "libfuncs.h", "debug.h", "ggc.h", "cgraph.h",
"gimple.h", "gimple-iterator.h", "gimple-ssa.h", "tree-cfg.h",
- "tree-phinodes.h", "ssa-iterators.h", "tree-ssanames.h",
+ "tree-phinodes.h", "ssa-iterators.h", "stringpool.h", "tree-ssanames.h",
"tree-ssa-loop.h", "tree-ssa-loop-ivopts.h", "tree-ssa-loop-manip.h",
"tree-ssa-loop-niter.h", "tree-into-ssa.h", "tree-dfa.h",
"tree-ssa.h", "reload.h", "cpp-id-data.h", "tree-chrec.h",
diff --git a/gcc/genopinit.c b/gcc/genopinit.c
index 3efb71e249e..2e736ce687b 100644
--- a/gcc/genopinit.c
+++ b/gcc/genopinit.c
@@ -405,6 +405,9 @@ main (int argc, char **argv)
"#include \"coretypes.h\"\n"
"#include \"tm.h\"\n"
"#include \"tree.h\"\n"
+ "#include \"varasm.h\"\n"
+ "#include \"stor-layout.h\"\n"
+ "#include \"calls.h\"\n"
"#include \"rtl.h\"\n"
"#include \"tm_p.h\"\n"
"#include \"flags.h\"\n"
diff --git a/gcc/genoutput.c b/gcc/genoutput.c
index 2a7ee2391db..de8979bc726 100644
--- a/gcc/genoutput.c
+++ b/gcc/genoutput.c
@@ -239,6 +239,9 @@ output_prologue (void)
printf ("#include \"flags.h\"\n");
printf ("#include \"ggc.h\"\n");
printf ("#include \"tree.h\"\n");
+ printf ("#include \"varasm.h\"\n");
+ printf ("#include \"stor-layout.h\"\n");
+ printf ("#include \"calls.h\"\n");
printf ("#include \"rtl.h\"\n");
printf ("#include \"expr.h\"\n");
printf ("#include \"insn-codes.h\"\n");
diff --git a/gcc/genpeep.c b/gcc/genpeep.c
index 877fde3ec90..8d9d25dd772 100644
--- a/gcc/genpeep.c
+++ b/gcc/genpeep.c
@@ -360,6 +360,9 @@ from the machine description file `md'. */\n\n");
printf ("#include \"tm.h\"\n");
printf ("#include \"insn-config.h\"\n");
printf ("#include \"tree.h\"\n");
+ printf ("#include \"varasm.h\"\n");
+ printf ("#include \"stor-layout.h\"\n");
+ printf ("#include \"calls.h\"\n");
printf ("#include \"rtl.h\"\n");
printf ("#include \"tm_p.h\"\n");
printf ("#include \"regs.h\"\n");
diff --git a/gcc/genpreds.c b/gcc/genpreds.c
index f3d9dac9c55..c27ae88f1a0 100644
--- a/gcc/genpreds.c
+++ b/gcc/genpreds.c
@@ -1302,6 +1302,9 @@ write_insn_preds_c (void)
#include \"tm.h\"\n\
#include \"rtl.h\"\n\
#include \"tree.h\"\n\
+#include \"varasm.h\"\n\
+#include \"stor-layout.h\"\n\
+#include \"calls.h\"\n\
#include \"tm_p.h\"\n\
#include \"function.h\"\n\
#include \"insn-config.h\"\n\
diff --git a/gcc/gimple-builder.c b/gcc/gimple-builder.c
index 6b53221b6b3..17cd2e1b887 100644
--- a/gcc/gimple-builder.c
+++ b/gcc/gimple-builder.c
@@ -21,6 +21,7 @@ along with GCC; see the file COPYING3. If not see
#include "system.h"
#include "coretypes.h"
#include "tree.h"
+#include "stringpool.h"
#include "gimple.h"
#include "tree-ssanames.h"
diff --git a/gcc/gimple-expr.c b/gcc/gimple-expr.c
index 9156f952784..77660a34c6d 100644
--- a/gcc/gimple-expr.c
+++ b/gcc/gimple-expr.c
@@ -25,7 +25,9 @@ along with GCC; see the file COPYING3. If not see
#include "tm.h"
#include "tree.h"
#include "gimple.h"
+#include "stringpool.h"
#include "gimplify.h"
+#include "stor-layout.h"
#include "demangle.h"
#include "gimple-ssa.h"
diff --git a/gcc/gimple-fold.c b/gcc/gimple-fold.c
index a5277eb9b0f..5493c5f3ea0 100644
--- a/gcc/gimple-fold.c
+++ b/gcc/gimple-fold.c
@@ -23,6 +23,10 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stringpool.h"
+#include "expr.h"
+#include "stmt.h"
+#include "stor-layout.h"
#include "flags.h"
#include "function.h"
#include "dumpfile.h"
diff --git a/gcc/gimple-low.c b/gcc/gimple-low.c
index 3f9ac575e64..71f8dfec3f8 100644
--- a/gcc/gimple-low.c
+++ b/gcc/gimple-low.c
@@ -23,6 +23,8 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "tree-nested.h"
+#include "calls.h"
#include "gimple.h"
#include "gimple-iterator.h"
#include "tree-iterator.h"
diff --git a/gcc/gimple-pretty-print.c b/gcc/gimple-pretty-print.c
index b20d11ae3d4..cdf1dbd417e 100644
--- a/gcc/gimple-pretty-print.c
+++ b/gcc/gimple-pretty-print.c
@@ -24,6 +24,7 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stringpool.h"
#include "diagnostic.h"
#include "gimple-pretty-print.h"
#include "hashtab.h"
diff --git a/gcc/gimple-ssa-isolate-paths.c b/gcc/gimple-ssa-isolate-paths.c
index c42f112da8b..1b7e3ff7d76 100644
--- a/gcc/gimple-ssa-isolate-paths.c
+++ b/gcc/gimple-ssa-isolate-paths.c
@@ -30,6 +30,7 @@ along with GCC; see the file COPYING3. If not see
#include "gimple-iterator.h"
#include "gimple-walk.h"
#include "tree-ssa.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "gimple-ssa.h"
#include "tree-ssa-operands.h"
diff --git a/gcc/gimple-ssa-strength-reduction.c b/gcc/gimple-ssa-strength-reduction.c
index 51bf7c7c01f..4eb897fd40c 100644
--- a/gcc/gimple-ssa-strength-reduction.c
+++ b/gcc/gimple-ssa-strength-reduction.c
@@ -40,6 +40,8 @@ along with GCC; see the file COPYING3. If not see
#include "gimple.h"
#include "gimple-iterator.h"
#include "gimplify-me.h"
+#include "stor-layout.h"
+#include "expr.h"
#include "basic-block.h"
#include "tree-pass.h"
#include "cfgloop.h"
@@ -48,6 +50,7 @@ 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 "domwalk.h"
#include "pointer-set.h"
diff --git a/gcc/gimple-streamer-in.c b/gcc/gimple-streamer-in.c
index 6f8f51a18ce..f8106fc4e78 100644
--- a/gcc/gimple-streamer-in.c
+++ b/gcc/gimple-streamer-in.c
@@ -28,6 +28,7 @@ along with GCC; see the file COPYING3. If not see
#include "gimple-iterator.h"
#include "gimple-ssa.h"
#include "tree-phinodes.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "data-streamer.h"
#include "tree-streamer.h"
diff --git a/gcc/gimple-walk.c b/gcc/gimple-walk.c
index deb4673354a..22f4584a673 100644
--- a/gcc/gimple-walk.c
+++ b/gcc/gimple-walk.c
@@ -24,6 +24,7 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stmt.h"
#include "gimple.h"
#include "gimple-iterator.h"
#include "gimple-walk.h"
diff --git a/gcc/gimple.c b/gcc/gimple.c
index 10d7edc1a39..c0316981ef9 100644
--- a/gcc/gimple.c
+++ b/gcc/gimple.c
@@ -25,6 +25,9 @@ along with GCC; see the file COPYING3. If not see
#include "tm.h"
#include "target.h"
#include "tree.h"
+#include "calls.h"
+#include "stmt.h"
+#include "stor-layout.h"
#include "ggc.h"
#include "hard-reg-set.h"
#include "basic-block.h"
diff --git a/gcc/gimplify-me.c b/gcc/gimplify-me.c
index c4818fab756..a7e9387b648 100644
--- a/gcc/gimplify-me.c
+++ b/gcc/gimplify-me.c
@@ -25,11 +25,14 @@ along with GCC; see the file COPYING3. If not see
#include "system.h"
#include "coretypes.h"
#include "tree.h"
+#include "stmt.h"
+#include "stor-layout.h"
#include "gimple.h"
#include "gimple-iterator.h"
#include "gimplify.h"
#include "gimplify-me.h"
#include "gimple-ssa.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
diff --git a/gcc/gimplify.c b/gcc/gimplify.c
index a65d3d1ced6..8baa4dcc178 100644
--- a/gcc/gimplify.c
+++ b/gcc/gimplify.c
@@ -24,9 +24,16 @@ along with GCC; see the file COPYING3. If not see
#include "system.h"
#include "coretypes.h"
#include "tree.h"
+#include "expr.h"
#include "gimple.h"
#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"
#include "tree-pretty-print.h"
diff --git a/gcc/go/ChangeLog b/gcc/go/ChangeLog
index 6f6b53e58a0..918862ef8fe 100644
--- a/gcc/go/ChangeLog
+++ b/gcc/go/ChangeLog
@@ -12,6 +12,14 @@
* go-lang.c: Include only gimplify.h and gimple.h as needed.
+2013-11-14 Diego Novillo <dnovillo@google.com>
+
+ * go-backend.c: Include stor-layout.h.
+ * go-gcc.cc: Include stringpool.h.
+ Include stor-layout.h.
+ Include varasm.h.
+ * go-lang.c: Include stor-layout.h.
+
2013-11-12 Andrew MacLeod <amacleod@redhat.com>
* go-lang.c: Include gimplify.h.
diff --git a/gcc/go/go-backend.c b/gcc/go/go-backend.c
index c3ffa3b1dea..31d01221fd1 100644
--- a/gcc/go/go-backend.c
+++ b/gcc/go/go-backend.c
@@ -23,6 +23,7 @@ along with GCC; see the file COPYING3. If not see
#include "simple-object.h"
#include "tm.h"
#include "tree.h"
+#include "stor-layout.h"
#include "tm_p.h"
#include "intl.h"
#include "output.h" /* for assemble_string */
diff --git a/gcc/go/go-gcc.cc b/gcc/go/go-gcc.cc
index 5ff529fc62b..83f91d5daf5 100644
--- a/gcc/go/go-gcc.cc
+++ b/gcc/go/go-gcc.cc
@@ -25,6 +25,9 @@
#include <gmp.h>
#include "tree.h"
+#include "stringpool.h"
+#include "stor-layout.h"
+#include "varasm.h"
#include "tree-iterator.h"
#include "gimple.h"
#include "toplev.h"
diff --git a/gcc/go/go-lang.c b/gcc/go/go-lang.c
index aa1d80b5be2..93a0446efe6 100644
--- a/gcc/go/go-lang.c
+++ b/gcc/go/go-lang.c
@@ -25,6 +25,7 @@ along with GCC; see the file COPYING3. If not see
#include "tree.h"
#include "gimple.h"
#include "gimplify.h"
+#include "stor-layout.h"
#include "ggc.h"
#include "toplev.h"
#include "debug.h"
diff --git a/gcc/go/gofrontend/expressions.cc b/gcc/go/gofrontend/expressions.cc
index 823c5e1a4c8..14c10d66a04 100644
--- a/gcc/go/gofrontend/expressions.cc
+++ b/gcc/go/gofrontend/expressions.cc
@@ -11,6 +11,8 @@
#include "toplev.h"
#include "intl.h"
#include "tree.h"
+#include "stringpool.h"
+#include "stor-layout.h"
#include "gimple.h"
#include "gimplify.h"
#include "tree-iterator.h"
diff --git a/gcc/go/gofrontend/gogo-tree.cc b/gcc/go/gofrontend/gogo-tree.cc
index 12a0889397d..001d24d238d 100644
--- a/gcc/go/gofrontend/gogo-tree.cc
+++ b/gcc/go/gofrontend/gogo-tree.cc
@@ -8,6 +8,9 @@
#include "toplev.h"
#include "tree.h"
+#include "stringpool.h"
+#include "stor-layout.h"
+#include "varasm.h"
#include "gimple.h"
#include "gimplify.h"
#include "tree-iterator.h"
diff --git a/gcc/graphite-sese-to-poly.c b/gcc/graphite-sese-to-poly.c
index 1b2cd998f2c..7d705bb3394 100644
--- a/gcc/graphite-sese-to-poly.c
+++ b/gcc/graphite-sese-to-poly.c
@@ -42,6 +42,7 @@ 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-ssa-loop-manip.h"
#include "tree-ssa-loop-niter.h"
diff --git a/gcc/internal-fn.c b/gcc/internal-fn.c
index a4cf1d5c627..867747041ae 100644
--- a/gcc/internal-fn.c
+++ b/gcc/internal-fn.c
@@ -22,6 +22,7 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "internal-fn.h"
#include "tree.h"
+#include "stor-layout.h"
#include "expr.h"
#include "optabs.h"
#include "gimple.h"
diff --git a/gcc/ipa-devirt.c b/gcc/ipa-devirt.c
index 99fbfe7455a..38cf378d2d4 100644
--- a/gcc/ipa-devirt.c
+++ b/gcc/ipa-devirt.c
@@ -110,7 +110,10 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "print-tree.h"
+#include "calls.h"
#include "cgraph.h"
+#include "expr.h"
#include "tree-pass.h"
#include "ggc.h"
#include "pointer-set.h"
diff --git a/gcc/ipa-inline-analysis.c b/gcc/ipa-inline-analysis.c
index a558dbc75ff..662196f058b 100644
--- a/gcc/ipa-inline-analysis.c
+++ b/gcc/ipa-inline-analysis.c
@@ -69,6 +69,9 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "stringpool.h"
+#include "print-tree.h"
#include "tree-inline.h"
#include "langhooks.h"
#include "flags.h"
diff --git a/gcc/ipa-inline.c b/gcc/ipa-inline.c
index c9a373bc08f..fbb63da7dc8 100644
--- a/gcc/ipa-inline.c
+++ b/gcc/ipa-inline.c
@@ -94,6 +94,8 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "trans-mem.h"
+#include "calls.h"
#include "tree-inline.h"
#include "langhooks.h"
#include "flags.h"
diff --git a/gcc/ipa-prop.c b/gcc/ipa-prop.c
index 65f9da12e98..d122dd55539 100644
--- a/gcc/ipa-prop.c
+++ b/gcc/ipa-prop.c
@@ -22,6 +22,9 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tree.h"
#include "gimple.h"
+#include "expr.h"
+#include "stor-layout.h"
+#include "print-tree.h"
#include "gimplify.h"
#include "gimple-iterator.h"
#include "gimplify-me.h"
diff --git a/gcc/ipa-pure-const.c b/gcc/ipa-pure-const.c
index 52be4bf8869..a241a699c5c 100644
--- a/gcc/ipa-pure-const.c
+++ b/gcc/ipa-pure-const.c
@@ -36,6 +36,8 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "print-tree.h"
+#include "calls.h"
#include "gimple.h"
#include "gimple-iterator.h"
#include "gimple-walk.h"
diff --git a/gcc/ipa-reference.c b/gcc/ipa-reference.c
index 9f80086c747..27208deb519 100644
--- a/gcc/ipa-reference.c
+++ b/gcc/ipa-reference.c
@@ -41,6 +41,7 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "calls.h"
#include "gimple.h"
#include "tree-inline.h"
#include "tree-pass.h"
diff --git a/gcc/ipa-split.c b/gcc/ipa-split.c
index e55b3f59dbc..59d174220c3 100644
--- a/gcc/ipa-split.c
+++ b/gcc/ipa-split.c
@@ -79,6 +79,9 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tree.h"
#include "gimple.h"
+#include "stringpool.h"
+#include "expr.h"
+#include "calls.h"
#include "gimplify.h"
#include "gimple-iterator.h"
#include "gimplify-me.h"
@@ -89,6 +92,7 @@ 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"
diff --git a/gcc/ipa.c b/gcc/ipa.c
index e541090ee3a..3950d4eb856 100644
--- a/gcc/ipa.c
+++ b/gcc/ipa.c
@@ -22,6 +22,8 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "calls.h"
+#include "stringpool.h"
#include "cgraph.h"
#include "tree-pass.h"
#include "gimple.h"
diff --git a/gcc/java/ChangeLog b/gcc/java/ChangeLog
index 3ffa76da8c2..0e277e4bf40 100644
--- a/gcc/java/ChangeLog
+++ b/gcc/java/ChangeLog
@@ -12,6 +12,30 @@
* java-gimplify.c: Include only gimplify.h and gimple.h as needed.
+2013-11-14 Diego Novillo <dnovillo@google.com>
+
+ * builtins.c: Include stor-layout.h.
+ Include stringpool.h.
+ * class.c: Include stringpool.h.
+ Include stor-layout.h.
+ Include varasm.h.
+ * constants.c: Include stringpool.h.
+ Include stor-layout.h.
+ * decl.c: Include stor-layout.h.
+ Include stringpool.h.
+ Include varasm.h.
+ * except.c: Include stringpool.h.
+ Include stor-layout.h.
+ * expr.c: Include stringpool.h.
+ Include stor-layout.h.
+ * jcf-parse.c: Include stringpool.h.
+ * mangle.c: Include stringpool.h.
+ * resource.c: Include stringpool.h.
+ Include stor-layout.h.
+ * typeck.c: Include stor-layout.h.
+ Include stringpool.h.
+ * verify-glue.c: Include stringpool.h.
+
2013-11-12 Andrew MacLeod <amacleod@redhat.com>
* java-gimplify.c: Include gimplify.h.
diff --git a/gcc/java/builtins.c b/gcc/java/builtins.c
index c05543782ae..46d1d86820c 100644
--- a/gcc/java/builtins.c
+++ b/gcc/java/builtins.c
@@ -31,6 +31,8 @@ The Free Software Foundation is independent of Sun Microsystems, Inc. */
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "stringpool.h"
#include "ggc.h"
#include "flags.h"
#include "langhooks.h"
diff --git a/gcc/java/class.c b/gcc/java/class.c
index 251873e0811..58bc92f94d9 100644
--- a/gcc/java/class.c
+++ b/gcc/java/class.c
@@ -27,6 +27,9 @@ The Free Software Foundation is independent of Sun Microsystems, Inc. */
#include "system.h"
#include "coretypes.h"
#include "tree.h"
+#include "stringpool.h"
+#include "stor-layout.h"
+#include "varasm.h"
#include "flags.h"
#include "java-tree.h"
#include "jcf.h"
diff --git a/gcc/java/constants.c b/gcc/java/constants.c
index ca411b5f9ff..64f6e696403 100644
--- a/gcc/java/constants.c
+++ b/gcc/java/constants.c
@@ -26,6 +26,8 @@ The Free Software Foundation is independent of Sun Microsystems, Inc. */
#include "tm.h"
#include "jcf.h"
#include "tree.h"
+#include "stringpool.h"
+#include "stor-layout.h"
#include "java-tree.h"
#include "diagnostic-core.h"
#include "toplev.h"
diff --git a/gcc/java/decl.c b/gcc/java/decl.c
index 0a2cecc3fef..70e21b071f0 100644
--- a/gcc/java/decl.c
+++ b/gcc/java/decl.c
@@ -28,6 +28,9 @@ The Free Software Foundation is independent of Sun Microsystems, Inc. */
#include "system.h"
#include "coretypes.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "stringpool.h"
+#include "varasm.h"
#include "diagnostic-core.h"
#include "toplev.h"
#include "flags.h"
diff --git a/gcc/java/except.c b/gcc/java/except.c
index b6d0c8d6c0f..9674abac22c 100644
--- a/gcc/java/except.c
+++ b/gcc/java/except.c
@@ -26,6 +26,8 @@ The Free Software Foundation is independent of Sun Microsystems, Inc. */
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stringpool.h"
+#include "stor-layout.h"
#include "java-tree.h"
#include "javaop.h"
#include "java-opcodes.h"
diff --git a/gcc/java/expr.c b/gcc/java/expr.c
index 6dc00c6fc5d..c62d66dba02 100644
--- a/gcc/java/expr.c
+++ b/gcc/java/expr.c
@@ -33,6 +33,8 @@ The Free Software Foundation is independent of Sun Microsystems, Inc. */
PARM_BOUNDARY. */
#include "tree.h"
+#include "stringpool.h"
+#include "stor-layout.h"
#include "flags.h"
#include "java-tree.h"
#include "javaop.h"
diff --git a/gcc/java/jcf-parse.c b/gcc/java/jcf-parse.c
index fbd4e00e029..9799523f142 100644
--- a/gcc/java/jcf-parse.c
+++ b/gcc/java/jcf-parse.c
@@ -27,6 +27,7 @@ The Free Software Foundation is independent of Sun Microsystems, Inc. */
#include "system.h"
#include "coretypes.h"
#include "tree.h"
+#include "stringpool.h"
#include "obstack.h"
#include "flags.h"
#include "java-except.h"
diff --git a/gcc/java/mangle.c b/gcc/java/mangle.c
index 10557e94ebd..c4e088303c1 100644
--- a/gcc/java/mangle.c
+++ b/gcc/java/mangle.c
@@ -29,6 +29,7 @@ The Free Software Foundation is independent of Sun Microsystems, Inc. */
#include "coretypes.h"
#include "jcf.h"
#include "tree.h"
+#include "stringpool.h"
#include "java-tree.h"
#include "obstack.h"
#include "diagnostic-core.h"
diff --git a/gcc/java/resource.c b/gcc/java/resource.c
index 54403d9f187..17155b8c362 100644
--- a/gcc/java/resource.c
+++ b/gcc/java/resource.c
@@ -25,6 +25,8 @@ The Free Software Foundation is independent of Sun Microsystems, Inc. */
#include "system.h"
#include "coretypes.h"
#include "tree.h"
+#include "stringpool.h"
+#include "stor-layout.h"
#include "java-tree.h"
#include "jcf.h"
#include "diagnostic-core.h"
diff --git a/gcc/java/typeck.c b/gcc/java/typeck.c
index 9dbb3f0291b..3a0aa3960a2 100644
--- a/gcc/java/typeck.c
+++ b/gcc/java/typeck.c
@@ -27,6 +27,8 @@ The Free Software Foundation is independent of Sun Microsystems, Inc. */
#include "system.h"
#include "coretypes.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "stringpool.h"
#include "obstack.h"
#include "flags.h"
#include "java-tree.h"
diff --git a/gcc/java/verify-glue.c b/gcc/java/verify-glue.c
index 21acc4259df..022f4c4e058 100644
--- a/gcc/java/verify-glue.c
+++ b/gcc/java/verify-glue.c
@@ -28,6 +28,7 @@ The Free Software Foundation is independent of Sun Microsystems, Inc. */
#include "system.h"
#include "coretypes.h"
#include "tree.h"
+#include "stringpool.h"
#include "parse.h"
#include "verify.h"
diff --git a/gcc/langhooks.c b/gcc/langhooks.c
index ec0dd4d75ee..4b72f2a6238 100644
--- a/gcc/langhooks.c
+++ b/gcc/langhooks.c
@@ -25,6 +25,8 @@ along with GCC; see the file COPYING3. If not see
#include "tm.h"
#include "toplev.h"
#include "tree.h"
+#include "stringpool.h"
+#include "attribs.h"
#include "tree-inline.h"
#include "gimple.h"
#include "gimplify.h"
diff --git a/gcc/lto-cgraph.c b/gcc/lto-cgraph.c
index 99dbf96b7a5..d82759955d8 100644
--- a/gcc/lto-cgraph.c
+++ b/gcc/lto-cgraph.c
@@ -25,6 +25,7 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stringpool.h"
#include "gimple.h"
#include "expr.h"
#include "flags.h"
diff --git a/gcc/lto-streamer-in.c b/gcc/lto-streamer-in.c
index 98cf28ff917..7b9f4ca496e 100644
--- a/gcc/lto-streamer-in.c
+++ b/gcc/lto-streamer-in.c
@@ -26,6 +26,7 @@ along with GCC; see the file COPYING3. If not see
#include "tm.h"
#include "toplev.h"
#include "tree.h"
+#include "stringpool.h"
#include "expr.h"
#include "flags.h"
#include "params.h"
diff --git a/gcc/lto-streamer-out.c b/gcc/lto-streamer-out.c
index 5176e35b70d..5e264fceee0 100644
--- a/gcc/lto-streamer-out.c
+++ b/gcc/lto-streamer-out.c
@@ -25,6 +25,8 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "stringpool.h"
#include "expr.h"
#include "flags.h"
#include "params.h"
diff --git a/gcc/lto/ChangeLog b/gcc/lto/ChangeLog
index 266d00ff1e6..1b83f22046a 100644
--- a/gcc/lto/ChangeLog
+++ b/gcc/lto/ChangeLog
@@ -2,6 +2,13 @@
* lto-partition.c lto-symtab.c lto.c Adjust.
+2013-11-14 Diego Novillo <dnovillo@google.com>
+
+ * lto-lang.c: Include stringpool.h.
+ Include stor-layout.h.
+ * lto-partition.c: Include gcc-symtab.h.
+ * lto.c: Include stor-layout.h.
+
2013-10-31 David Malcolm <dmalcolm@redhat.com>
Automated part of renaming of symtab_node_base to symtab_node.
diff --git a/gcc/lto/lto-lang.c b/gcc/lto/lto-lang.c
index b56c22b8a87..cb15ce32fa7 100644
--- a/gcc/lto/lto-lang.c
+++ b/gcc/lto/lto-lang.c
@@ -24,6 +24,8 @@ along with GCC; see the file COPYING3. If not see
#include "flags.h"
#include "tm.h"
#include "tree.h"
+#include "stringpool.h"
+#include "stor-layout.h"
#include "target.h"
#include "langhooks.h"
#include "langhooks-def.h"
diff --git a/gcc/lto/lto-partition.c b/gcc/lto/lto-partition.c
index e0d020d30ec..42d78307ded 100644
--- a/gcc/lto/lto-partition.c
+++ b/gcc/lto/lto-partition.c
@@ -22,6 +22,7 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "toplev.h"
#include "tree.h"
+#include "gcc-symtab.h"
#include "gimple.h"
#include "tm.h"
#include "cgraph.h"
diff --git a/gcc/lto/lto.c b/gcc/lto/lto.c
index 6ecac0106e1..0211437d5f9 100644
--- a/gcc/lto/lto.c
+++ b/gcc/lto/lto.c
@@ -24,6 +24,7 @@ along with GCC; see the file COPYING3. If not see
#include "opts.h"
#include "toplev.h"
#include "tree.h"
+#include "stor-layout.h"
#include "diagnostic-core.h"
#include "tm.h"
#include "cgraph.h"
diff --git a/gcc/objc/ChangeLog b/gcc/objc/ChangeLog
index 881ac6ed341..000ba9e71b1 100644
--- a/gcc/objc/ChangeLog
+++ b/gcc/objc/ChangeLog
@@ -12,6 +12,19 @@
* objc-act.c: Include only gimplify.h and gimple.h as needed.
+2013-11-14 Diego Novillo <dnovillo@google.com>
+
+ * objc-act.c: Include stringpool.h.
+ Include stor-layout.h.
+ Include attribs.h.
+ * objc-encoding.c: Include stringpool.h.
+ Include stor-layout.h.
+ * objc-gnu-runtime-abi-01.c: Include stringpool.h.
+ * objc-next-runtime-abi-01.c:
+ Include stringpool.h.
+ * objc-next-runtime-abi-02.c: Include stringpool.h.
+ * objc-runtime-shared-support.c: Include stringpool.h.
+
2013-11-12 Andrew MacLeod <amacleod@redhat.com>
* objc-act.c: Include gimplify.h.
diff --git a/gcc/objc/objc-act.c b/gcc/objc/objc-act.c
index 9a640a3edd3..d7e8afb6acf 100644
--- a/gcc/objc/objc-act.c
+++ b/gcc/objc/objc-act.c
@@ -23,6 +23,9 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stringpool.h"
+#include "stor-layout.h"
+#include "attribs.h"
#ifdef OBJCPLUS
#include "cp/cp-tree.h"
diff --git a/gcc/objc/objc-encoding.c b/gcc/objc/objc-encoding.c
index 532725114a2..61d722a77b0 100644
--- a/gcc/objc/objc-encoding.c
+++ b/gcc/objc/objc-encoding.c
@@ -21,6 +21,8 @@ along with GCC; see the file COPYING3. If not see
#include "system.h"
#include "coretypes.h"
#include "tree.h"
+#include "stringpool.h"
+#include "stor-layout.h"
#ifdef OBJCPLUS
#include "cp/cp-tree.h"
diff --git a/gcc/objc/objc-gnu-runtime-abi-01.c b/gcc/objc/objc-gnu-runtime-abi-01.c
index f0116831e25..ef2e033b6dd 100644
--- a/gcc/objc/objc-gnu-runtime-abi-01.c
+++ b/gcc/objc/objc-gnu-runtime-abi-01.c
@@ -22,6 +22,7 @@ along with GCC; see the file COPYING3. If not see
#include "system.h"
#include "coretypes.h"
#include "tree.h"
+#include "stringpool.h"
#ifdef OBJCPLUS
#include "cp/cp-tree.h"
diff --git a/gcc/objc/objc-next-runtime-abi-01.c b/gcc/objc/objc-next-runtime-abi-01.c
index 000256d8311..9c7bf4529b1 100644
--- a/gcc/objc/objc-next-runtime-abi-01.c
+++ b/gcc/objc/objc-next-runtime-abi-01.c
@@ -27,6 +27,7 @@ along with GCC; see the file COPYING3. If not see
#include "system.h"
#include "coretypes.h"
#include "tree.h"
+#include "stringpool.h"
#ifdef OBJCPLUS
#include "cp/cp-tree.h"
diff --git a/gcc/objc/objc-next-runtime-abi-02.c b/gcc/objc/objc-next-runtime-abi-02.c
index 885047705d4..c7215a86682 100644
--- a/gcc/objc/objc-next-runtime-abi-02.c
+++ b/gcc/objc/objc-next-runtime-abi-02.c
@@ -30,6 +30,7 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stringpool.h"
#ifdef OBJCPLUS
#include "cp/cp-tree.h"
diff --git a/gcc/objc/objc-runtime-shared-support.c b/gcc/objc/objc-runtime-shared-support.c
index 45efb780c28..9278b39e11b 100644
--- a/gcc/objc/objc-runtime-shared-support.c
+++ b/gcc/objc/objc-runtime-shared-support.c
@@ -23,6 +23,7 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stringpool.h"
#ifdef OBJCPLUS
#include "cp/cp-tree.h"
diff --git a/gcc/omp-low.c b/gcc/omp-low.c
index f850f53e441..783b422a643 100644
--- a/gcc/omp-low.c
+++ b/gcc/omp-low.c
@@ -26,6 +26,8 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stringpool.h"
+#include "stor-layout.h"
#include "rtl.h"
#include "gimple.h"
#include "gimplify.h"
@@ -43,6 +45,7 @@ along with GCC; see the file COPYING3. If not see
#include "ssa-iterators.h"
#include "tree-ssanames.h"
#include "tree-into-ssa.h"
+#include "expr.h"
#include "tree-dfa.h"
#include "tree-ssa.h"
#include "flags.h"
diff --git a/gcc/optabs.c b/gcc/optabs.c
index 661ce58bf4d..dcef4809d8b 100644
--- a/gcc/optabs.c
+++ b/gcc/optabs.c
@@ -29,6 +29,9 @@ along with GCC; see the file COPYING3. If not see
#include "insn-config.h"
#include "rtl.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "stringpool.h"
+#include "varasm.h"
#include "tm_p.h"
#include "flags.h"
#include "function.h"
diff --git a/gcc/optabs.h b/gcc/optabs.h
index 4de4409342d..6a5ec19a539 100644
--- a/gcc/optabs.h
+++ b/gcc/optabs.h
@@ -551,5 +551,6 @@ extern void gen_satfract_conv_libfunc (convert_optab, const char *,
extern void gen_satfractuns_conv_libfunc (convert_optab, const char *,
enum machine_mode,
enum machine_mode);
+extern void init_tree_optimization_optabs (tree);
#endif /* GCC_OPTABS_H */
diff --git a/gcc/passes.c b/gcc/passes.c
index 55ec70f8962..fee1513b404 100644
--- a/gcc/passes.c
+++ b/gcc/passes.c
@@ -30,6 +30,7 @@ along with GCC; see the file COPYING3. If not see
#include "hash-table.h"
#include "input.h"
#include "tree.h"
+#include "varasm.h"
#include "rtl.h"
#include "tm_p.h"
#include "flags.h"
@@ -63,6 +64,7 @@ along with GCC; see the file COPYING3. If not see
#include "gimple.h"
#include "gimple-ssa.h"
#include "tree-cfg.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "tree-ssa-loop-manip.h"
#include "tree-into-ssa.h"
diff --git a/gcc/predict.c b/gcc/predict.c
index b9303e2883f..4adc5e44c9e 100644
--- a/gcc/predict.c
+++ b/gcc/predict.c
@@ -32,6 +32,7 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "calls.h"
#include "rtl.h"
#include "tm_p.h"
#include "hard-reg-set.h"
diff --git a/gcc/print-rtl.c b/gcc/print-rtl.c
index 7d712c1562d..833bee92f71 100644
--- a/gcc/print-rtl.c
+++ b/gcc/print-rtl.c
@@ -34,6 +34,7 @@ along with GCC; see the file COPYING3. If not see
generator programs. */
#ifndef GENERATOR_FILE
#include "tree.h"
+#include "print-tree.h"
#include "flags.h"
#include "hard-reg-set.h"
#include "basic-block.h"
diff --git a/gcc/print-rtl.h b/gcc/print-rtl.h
new file mode 100644
index 00000000000..3cb28d656fb
--- /dev/null
+++ b/gcc/print-rtl.h
@@ -0,0 +1,27 @@
+/* Print RTL for GCC.
+ Copyright (C) 1987-2013 Free Software Foundation, Inc.
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 3, or (at your option) any later
+version.
+
+GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3. If not see
+<http://www.gnu.org/licenses/>. */
+
+#ifndef GCC_PRINT_RTL_H
+#define GCC_PRINT_RTL_H
+
+#ifdef BUFSIZ
+extern void print_rtl (FILE *, const_rtx);
+#endif
+
+#endif // GCC_PRINT_RTL_H
diff --git a/gcc/print-tree.c b/gcc/print-tree.c
index 5916c523f9d..1f4bf222aa1 100644
--- a/gcc/print-tree.c
+++ b/gcc/print-tree.c
@@ -23,6 +23,9 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "varasm.h"
+#include "print-rtl.h"
+#include "stor-layout.h"
#include "ggc.h"
#include "langhooks.h"
#include "tree-iterator.h"
diff --git a/gcc/print-tree.h b/gcc/print-tree.h
new file mode 100644
index 00000000000..7d1a5c82bdc
--- /dev/null
+++ b/gcc/print-tree.h
@@ -0,0 +1,46 @@
+/* Declarations for printing trees in human readable form
+ Copyright (C) 2013 Free Software Foundation, Inc.
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 3, or (at your option) any later
+version.
+
+GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3. If not see
+<http://www.gnu.org/licenses/>. */
+
+#ifndef GCC_PRINT_TREE_H
+#define GCC_PRINT_TREE_H
+
+extern void debug_tree (tree);
+extern void debug_raw (const tree_node &ref);
+extern void debug_raw (const tree_node *ptr);
+extern void debug (const tree_node &ref);
+extern void debug (const tree_node *ptr);
+extern void debug_verbose (const tree_node &ref);
+extern void debug_verbose (const tree_node *ptr);
+extern void debug_head (const tree_node &ref);
+extern void debug_head (const tree_node *ptr);
+extern void debug_body (const tree_node &ref);
+extern void debug_body (const tree_node *ptr);
+extern void debug_vec_tree (vec<tree, va_gc> *);
+extern void debug (vec<tree, va_gc> &ref);
+extern void debug (vec<tree, va_gc> *ptr);
+extern void debug_raw (vec<tree, va_gc> &ref);
+extern void debug_raw (vec<tree, va_gc> *ptr);
+#ifdef BUFSIZ
+extern void dump_addr (FILE*, const char *, const void *);
+extern void print_node (FILE *, const char *, tree, int);
+extern void print_node_brief (FILE *, const char *, const_tree, int);
+extern void indent_to (FILE *, int);
+#endif
+
+#endif // GCC_PRINT_TREE_H
diff --git a/gcc/realmpfr.c b/gcc/realmpfr.c
index 34f77120c5d..b5c11206d6c 100644
--- a/gcc/realmpfr.c
+++ b/gcc/realmpfr.c
@@ -22,6 +22,7 @@
#include "coretypes.h"
#include "realmpfr.h"
#include "tree.h" /* For TYPE_MODE in real_from_mpfr. */
+#include "stor-layout.h"
/* Convert from REAL_VALUE_TYPE to MPFR. The caller is responsible
for initializing and clearing the MPFR parameter. */
diff --git a/gcc/reg-stack.c b/gcc/reg-stack.c
index 3740934b826..756d3bd586f 100644
--- a/gcc/reg-stack.c
+++ b/gcc/reg-stack.c
@@ -154,6 +154,7 @@
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "varasm.h"
#include "rtl-error.h"
#include "tm_p.h"
#include "function.h"
diff --git a/gcc/sdbout.c b/gcc/sdbout.c
index f10869922d7..8af0bc5af5b 100644
--- a/gcc/sdbout.c
+++ b/gcc/sdbout.c
@@ -45,6 +45,8 @@ AT&T C compiler. From the example below I would conclude the following:
#include "tm.h"
#include "debug.h"
#include "tree.h"
+#include "varasm.h"
+#include "stor-layout.h"
#include "ggc.h"
#include "vec.h"
diff --git a/gcc/sese.c b/gcc/sese.c
index d05b14afbb8..2fe77392bd4 100644
--- a/gcc/sese.c
+++ b/gcc/sese.c
@@ -33,6 +33,7 @@ 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-ssa-loop.h"
#include "tree-into-ssa.h"
diff --git a/gcc/simplify-rtx.c b/gcc/simplify-rtx.c
index 6e174e5575c..b91ae1ade3f 100644
--- a/gcc/simplify-rtx.c
+++ b/gcc/simplify-rtx.c
@@ -24,6 +24,7 @@ along with GCC; see the file COPYING3. If not see
#include "tm.h"
#include "rtl.h"
#include "tree.h"
+#include "varasm.h"
#include "tm_p.h"
#include "regs.h"
#include "hard-reg-set.h"
diff --git a/gcc/stmt.c b/gcc/stmt.c
index 28fbf7a6bc1..37b2de34482 100644
--- a/gcc/stmt.c
+++ b/gcc/stmt.c
@@ -30,6 +30,8 @@ along with GCC; see the file COPYING3. If not see
#include "rtl.h"
#include "hard-reg-set.h"
#include "tree.h"
+#include "varasm.h"
+#include "stor-layout.h"
#include "tm_p.h"
#include "flags.h"
#include "except.h"
diff --git a/gcc/stmt.h b/gcc/stmt.h
new file mode 100644
index 00000000000..514be23a239
--- /dev/null
+++ b/gcc/stmt.h
@@ -0,0 +1,34 @@
+/* Declarations and data structures for stmt.c.
+ Copyright (C) 2013 Free Software Foundation, Inc.
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 3, or (at your option) any later
+version.
+
+GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3. If not see
+<http://www.gnu.org/licenses/>. */
+
+#ifndef GCC_STMT_H
+#define GCC_STMT_H
+
+extern void expand_label (tree);
+extern bool parse_output_constraint (const char **, int, int, int,
+ bool *, bool *, bool *);
+extern bool parse_input_constraint (const char **, int, int, int, int,
+ const char * const *, bool *, bool *);
+extern tree resolve_asm_operand_names (tree, tree, tree, tree);
+#ifdef HARD_CONST
+/* Silly ifdef to avoid having all includers depend on hard-reg-set.h. */
+extern tree tree_overlaps_hard_reg_set (tree, HARD_REG_SET *);
+#endif
+
+#endif // GCC_STMT_H
diff --git a/gcc/stor-layout.c b/gcc/stor-layout.c
index 535b897f80c..0dece714bf8 100644
--- a/gcc/stor-layout.c
+++ b/gcc/stor-layout.c
@@ -23,6 +23,10 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "stringpool.h"
+#include "varasm.h"
+#include "print-tree.h"
#include "rtl.h"
#include "tm_p.h"
#include "flags.h"
diff --git a/gcc/stor-layout.h b/gcc/stor-layout.h
new file mode 100644
index 00000000000..706bed4992d
--- /dev/null
+++ b/gcc/stor-layout.h
@@ -0,0 +1,115 @@
+/* Definitions and declarations for stor-layout.c.
+ Copyright (C) 2013 Free Software Foundation, Inc.
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 3, or (at your option) any later
+version.
+
+GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3. If not see
+<http://www.gnu.org/licenses/>. */
+
+#ifndef GCC_STOR_LAYOUT_H
+#define GCC_STOR_LAYOUT_H
+
+extern void set_min_and_max_values_for_integral_type (tree, int, bool);
+extern void fixup_signed_type (tree);
+extern void internal_reference_types (void);
+extern unsigned int update_alignment_for_field (record_layout_info, tree,
+ unsigned int);
+extern record_layout_info start_record_layout (tree);
+extern tree bit_from_pos (tree, tree);
+extern tree byte_from_pos (tree, tree);
+extern void pos_from_bit (tree *, tree *, unsigned int, tree);
+extern void normalize_offset (tree *, tree *, unsigned int);
+extern tree rli_size_unit_so_far (record_layout_info);
+extern tree rli_size_so_far (record_layout_info);
+extern void normalize_rli (record_layout_info);
+extern void place_field (record_layout_info, tree);
+extern void compute_record_mode (tree);
+extern void finish_record_layout (record_layout_info, int);
+extern unsigned int element_precision (const_tree);
+extern void finalize_size_functions (void);
+extern void fixup_unsigned_type (tree);
+extern void initialize_sizetypes (void);
+
+/* Finish up a builtin RECORD_TYPE. Give it a name and provide its
+ fields. Optionally specify an alignment, and then lay it out. */
+extern void finish_builtin_struct (tree, const char *, tree, tree);
+
+/* Given a VAR_DECL, PARM_DECL, RESULT_DECL or FIELD_DECL node,
+ calculates the DECL_SIZE, DECL_SIZE_UNIT, DECL_ALIGN and DECL_MODE
+ fields. Call this only once for any given decl node.
+
+ Second argument is the boundary that this field can be assumed to
+ be starting at (in bits). Zero means it can be assumed aligned
+ on any boundary that may be needed. */
+extern void layout_decl (tree, unsigned);
+
+/* Given a ..._TYPE node, calculate the TYPE_SIZE, TYPE_SIZE_UNIT,
+ TYPE_ALIGN and TYPE_MODE fields. If called more than once on one
+ node, does nothing except for the first time. */
+extern void layout_type (tree);
+
+/* Construct various nodes representing fract or accum data types. */
+extern tree make_fract_type (int, int, int);
+extern tree make_accum_type (int, int, int);
+
+#define make_signed_fract_type(P) make_fract_type (P, 0, 0)
+#define make_unsigned_fract_type(P) make_fract_type (P, 1, 0)
+#define make_sat_signed_fract_type(P) make_fract_type (P, 0, 1)
+#define make_sat_unsigned_fract_type(P) make_fract_type (P, 1, 1)
+#define make_signed_accum_type(P) make_accum_type (P, 0, 0)
+#define make_unsigned_accum_type(P) make_accum_type (P, 1, 0)
+#define make_sat_signed_accum_type(P) make_accum_type (P, 0, 1)
+#define make_sat_unsigned_accum_type(P) make_accum_type (P, 1, 1)
+
+#define make_or_reuse_signed_fract_type(P) \
+ make_or_reuse_fract_type (P, 0, 0)
+#define make_or_reuse_unsigned_fract_type(P) \
+ make_or_reuse_fract_type (P, 1, 0)
+#define make_or_reuse_sat_signed_fract_type(P) \
+ make_or_reuse_fract_type (P, 0, 1)
+#define make_or_reuse_sat_unsigned_fract_type(P) \
+ make_or_reuse_fract_type (P, 1, 1)
+#define make_or_reuse_signed_accum_type(P) \
+ make_or_reuse_accum_type (P, 0, 0)
+#define make_or_reuse_unsigned_accum_type(P) \
+ make_or_reuse_accum_type (P, 1, 0)
+#define make_or_reuse_sat_signed_accum_type(P) \
+ make_or_reuse_accum_type (P, 0, 1)
+#define make_or_reuse_sat_unsigned_accum_type(P) \
+ make_or_reuse_accum_type (P, 1, 1)
+
+extern tree make_signed_type (int);
+extern tree make_unsigned_type (int);
+
+/* Return the mode for data of a given size SIZE and mode class CLASS.
+ If LIMIT is nonzero, then don't use modes bigger than MAX_FIXED_MODE_SIZE.
+ The value is BLKmode if no other mode is found. This is like
+ mode_for_size, but is passed a tree. */
+extern enum machine_mode mode_for_size_tree (const_tree, enum mode_class, int);
+
+/* Given a VAR_DECL, PARM_DECL or RESULT_DECL, clears the results of
+ a previous call to layout_decl and calls it again. */
+extern void relayout_decl (tree);
+
+/* variable_size (EXP) is like save_expr (EXP) except that it
+ is for the special case of something that is part of a
+ variable size for a data type. It makes special arrangements
+ to compute the value at the right time when the data type
+ belongs to a function parameter. */
+extern tree variable_size (tree);
+
+/* Vector types need to check target flags to determine type. */
+extern enum machine_mode vector_type_mode (const_tree);
+
+#endif // GCC_STOR_LAYOUT_H
diff --git a/gcc/stringpool.h b/gcc/stringpool.h
new file mode 100644
index 00000000000..55592aa3957
--- /dev/null
+++ b/gcc/stringpool.h
@@ -0,0 +1,43 @@
+/* Declarations and definitons for stringpool.c.
+ Copyright (C) 2013 Free Software Foundation, Inc.
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 3, or (at your option) any later
+version.
+
+GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3. If not see
+<http://www.gnu.org/licenses/>. */
+
+#ifndef GCC_STRINGPOOL_H
+#define GCC_STRINGPOOL_H
+
+/* Return the (unique) IDENTIFIER_NODE node for a given name.
+ The name is supplied as a char *. */
+extern tree get_identifier (const char *);
+
+/* If an identifier with the name TEXT (a null-terminated string) has
+ previously been referred to, return that node; otherwise return
+ NULL_TREE. */
+extern tree maybe_get_identifier (const char *);
+
+/* Identical to get_identifier, except that the length is assumed
+ known. */
+extern tree get_identifier_with_length (const char *, size_t);
+
+#if GCC_VERSION >= 3000
+#define get_identifier(str) \
+ (__builtin_constant_p (str) \
+ ? get_identifier_with_length ((str), strlen (str)) \
+ : get_identifier (str))
+#endif
+
+#endif // GCC_STRINGPOOL_H
diff --git a/gcc/symtab.c b/gcc/symtab.c
index 9426f75399d..851264d954a 100644
--- a/gcc/symtab.c
+++ b/gcc/symtab.c
@@ -22,7 +22,12 @@ along with GCC; see the file COPYING3. If not see
#include "system.h"
#include "coretypes.h"
#include "tm.h"
+#include "rtl.h"
#include "tree.h"
+#include "print-tree.h"
+#include "varasm.h"
+#include "function.h"
+#include "emit-rtl.h"
#include "gimple.h"
#include "tree-inline.h"
#include "langhooks.h"
@@ -32,7 +37,6 @@ along with GCC; see the file COPYING3. If not see
#include "diagnostic.h"
#include "timevar.h"
#include "lto-streamer.h"
-#include "rtl.h"
#include "output.h"
const char * const ld_plugin_symbol_resolution_names[]=
diff --git a/gcc/targhooks.c b/gcc/targhooks.c
index cddc439546f..533d9f3783e 100644
--- a/gcc/targhooks.c
+++ b/gcc/targhooks.c
@@ -53,6 +53,8 @@ along with GCC; see the file COPYING3. If not see
#include "machmode.h"
#include "rtl.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "varasm.h"
#include "expr.h"
#include "output.h"
#include "diagnostic-core.h"
@@ -70,6 +72,7 @@ along with GCC; see the file COPYING3. If not see
#include "opts.h"
#include "gimple.h"
#include "gimplify.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "tree-ssa-alias.h"
#include "insn-codes.h"
diff --git a/gcc/testsuite/ChangeLog b/gcc/testsuite/ChangeLog
index 5666ad239c8..7fd31dfa3d9 100644
--- a/gcc/testsuite/ChangeLog
+++ b/gcc/testsuite/ChangeLog
@@ -175,6 +175,11 @@
* g++.dg/cpp0x/nsdmi-template3.C: New.
* g++.dg/cpp0x/nsdmi-template4.C: Likewise.
+2013-11-14 Diego Novillo <dnovillo@google.com>
+
+ * gcc.dg/plugin/selfassign.c: Include stringpool.h.
+ * gcc.dg/plugin/start_unit_plugin.c: Likewise.
+
2013-11-14 Ulrich Weigand <Ulrich.Weigand@de.ibm.com>
* gcc.target/powerpc/ppc64-abi-1.c (stack_frame_t): Remove
diff --git a/gcc/testsuite/gcc.dg/plugin/selfassign.c b/gcc/testsuite/gcc.dg/plugin/selfassign.c
index 2498153a273..cdab74a19ae 100644
--- a/gcc/testsuite/gcc.dg/plugin/selfassign.c
+++ b/gcc/testsuite/gcc.dg/plugin/selfassign.c
@@ -8,6 +8,7 @@
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stringpool.h"
#include "toplev.h"
#include "basic-block.h"
#include "gimple.h"
diff --git a/gcc/testsuite/gcc.dg/plugin/start_unit_plugin.c b/gcc/testsuite/gcc.dg/plugin/start_unit_plugin.c
index 257aad85a8a..39f44626a55 100644
--- a/gcc/testsuite/gcc.dg/plugin/start_unit_plugin.c
+++ b/gcc/testsuite/gcc.dg/plugin/start_unit_plugin.c
@@ -11,6 +11,7 @@
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stringpool.h"
#include "toplev.h"
#include "basic-block.h"
#include "gimple.h"
diff --git a/gcc/toplev.c b/gcc/toplev.c
index 66477b651dc..5fedcea9002 100644
--- a/gcc/toplev.c
+++ b/gcc/toplev.c
@@ -29,6 +29,8 @@ along with GCC; see the file COPYING3. If not see
#include "line-map.h"
#include "input.h"
#include "tree.h"
+#include "varasm.h"
+#include "tree-inline.h"
#include "realmpfr.h" /* For GMP/MPFR/MPC versions, in print_version. */
#include "version.h"
#include "rtl.h"
diff --git a/gcc/trans-mem.c b/gcc/trans-mem.c
index 879f37b9177..24860054e6e 100644
--- a/gcc/trans-mem.c
+++ b/gcc/trans-mem.c
@@ -23,6 +23,10 @@
#include "hash-table.h"
#include "tree.h"
#include "gimple.h"
+#include "calls.h"
+#include "function.h"
+#include "rtl.h"
+#include "emit-rtl.h"
#include "gimplify.h"
#include "gimple-iterator.h"
#include "gimplify-me.h"
@@ -30,6 +34,7 @@
#include "gimple-ssa.h"
#include "cgraph.h"
#include "tree-cfg.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "tree-into-ssa.h"
#include "tree-pass.h"
diff --git a/gcc/trans-mem.h b/gcc/trans-mem.h
index 09f0b4d66e4..d68171fc4ea 100644
--- a/gcc/trans-mem.h
+++ b/gcc/trans-mem.h
@@ -17,6 +17,8 @@
along with GCC; see the file COPYING3. If not see
<http://www.gnu.org/licenses/>. */
+#ifndef GCC_TRANS_MEM_H
+#define GCC_TRANS_MEM_H
/* These defines must match the enumerations in libitm.h. */
#define PR_INSTRUMENTEDCODE 0x0001
@@ -37,3 +39,12 @@
extern void compute_transaction_bits (void);
extern bool is_tm_ending (gimple);
+extern tree build_tm_abort_call (location_t, bool);
+extern bool is_tm_safe (const_tree);
+extern bool is_tm_pure (const_tree);
+extern bool is_tm_may_cancel_outer (tree);
+extern bool is_tm_ending_fndecl (tree);
+extern void record_tm_replacement (tree, tree);
+extern void tm_malloc_replacement (tree);
+
+#endif // GCC_TRANS_MEM_H
diff --git a/gcc/tree-affine.c b/gcc/tree-affine.c
index 25fd7f287e0..9e3e1bf0657 100644
--- a/gcc/tree-affine.c
+++ b/gcc/tree-affine.c
@@ -21,6 +21,7 @@ along with GCC; see the file COPYING3. If not see
#include "system.h"
#include "coretypes.h"
#include "tree.h"
+#include "expr.h"
#include "tree-pretty-print.h"
#include "pointer-set.h"
#include "tree-affine.h"
diff --git a/gcc/tree-browser.c b/gcc/tree-browser.c
index dad06a5175a..c3483a7b3a7 100644
--- a/gcc/tree-browser.c
+++ b/gcc/tree-browser.c
@@ -24,6 +24,7 @@ along with GCC; see the file COPYING3. If not see
#include "hash-table.h"
#include "tree.h"
#include "tree-pretty-print.h"
+#include "print-tree.h"
#define TB_OUT_FILE stdout
#define TB_IN_FILE stdin
diff --git a/gcc/tree-call-cdce.c b/gcc/tree-call-cdce.c
index 8e636463dea..6f6b1171b92 100644
--- a/gcc/tree-call-cdce.c
+++ b/gcc/tree-call-cdce.c
@@ -24,11 +24,13 @@ along with GCC; see the file COPYING3. If not see
#include "tm.h"
#include "basic-block.h"
#include "tree.h"
+#include "stor-layout.h"
#include "gimple-pretty-print.h"
#include "gimple.h"
#include "gimple-iterator.h"
#include "gimple-ssa.h"
#include "tree-cfg.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "tree-into-ssa.h"
#include "tree-pass.h"
diff --git a/gcc/tree-cfg.c b/gcc/tree-cfg.c
index 751db306aab..a38dec3920f 100644
--- a/gcc/tree-cfg.c
+++ b/gcc/tree-cfg.c
@@ -24,6 +24,9 @@ along with GCC; see the file COPYING3. If not see
#include "hash-table.h"
#include "tm.h"
#include "tree.h"
+#include "trans-mem.h"
+#include "stor-layout.h"
+#include "print-tree.h"
#include "tm_p.h"
#include "basic-block.h"
#include "flags.h"
@@ -39,10 +42,12 @@ 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-ssa-loop-manip.h"
#include "tree-ssa-loop-niter.h"
#include "tree-into-ssa.h"
+#include "expr.h"
#include "tree-dfa.h"
#include "tree-ssa.h"
#include "tree-dump.h"
diff --git a/gcc/tree-cfgcleanup.c b/gcc/tree-cfgcleanup.c
index 0d4c63d4259..ec99ed0a111 100644
--- a/gcc/tree-cfgcleanup.c
+++ b/gcc/tree-cfgcleanup.c
@@ -36,8 +36,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-ssa-loop-manip.h"
+#include "expr.h"
#include "tree-dfa.h"
#include "tree-ssa.h"
#include "tree-pass.h"
diff --git a/gcc/tree-complex.c b/gcc/tree-complex.c
index 130674e673f..05f30e5afa2 100644
--- a/gcc/tree-complex.c
+++ b/gcc/tree-complex.c
@@ -22,6 +22,7 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stor-layout.h"
#include "flags.h"
#include "gimple.h"
#include "gimplify.h"
@@ -31,7 +32,9 @@ 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 "expr.h"
#include "tree-dfa.h"
#include "tree-ssa.h"
#include "tree-iterator.h"
diff --git a/gcc/tree-data-ref.c b/gcc/tree-data-ref.c
index dde08bb47eb..190b91ca752 100644
--- a/gcc/tree-data-ref.c
+++ b/gcc/tree-data-ref.c
@@ -77,6 +77,7 @@ along with GCC; see the file COPYING3. If not see
#include "system.h"
#include "coretypes.h"
#include "tree.h"
+#include "expr.h"
#include "gimple-pretty-print.h"
#include "gimple.h"
#include "gimple-iterator.h"
diff --git a/gcc/tree-dfa.c b/gcc/tree-dfa.c
index 678bbb9c4e3..0d1eb999ccb 100644
--- a/gcc/tree-dfa.c
+++ b/gcc/tree-dfa.c
@@ -25,6 +25,7 @@ along with GCC; see the file COPYING3. If not see
#include "hashtab.h"
#include "pointer-set.h"
#include "tree.h"
+#include "stor-layout.h"
#include "tm_p.h"
#include "basic-block.h"
#include "ggc.h"
@@ -38,7 +39,9 @@ along with GCC; see the file COPYING3. If not see
#include "gimple-ssa.h"
#include "tree-phinodes.h"
#include "ssa-iterators.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
+#include "expr.h"
#include "tree-dfa.h"
#include "tree-inline.h"
#include "tree-pass.h"
diff --git a/gcc/tree-eh.c b/gcc/tree-eh.c
index 656ba6f5cb3..77786787585 100644
--- a/gcc/tree-eh.c
+++ b/gcc/tree-eh.c
@@ -23,6 +23,8 @@ along with GCC; see the file COPYING3. If not see
#include "hash-table.h"
#include "tm.h"
#include "tree.h"
+#include "expr.h"
+#include "calls.h"
#include "flags.h"
#include "function.h"
#include "except.h"
@@ -34,6 +36,7 @@ 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-ssa.h"
diff --git a/gcc/tree-emutls.c b/gcc/tree-emutls.c
index 11337c0c127..7f0c0a1981a 100644
--- a/gcc/tree-emutls.c
+++ b/gcc/tree-emutls.c
@@ -21,6 +21,8 @@ along with GCC; see the file COPYING3. If not see
#include "system.h"
#include "coretypes.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "varasm.h"
#include "gimple.h"
#include "gimple-iterator.h"
#include "gimple-walk.h"
@@ -29,6 +31,7 @@ along with GCC; see the file COPYING3. If not see
#include "cgraph.h"
#include "tree-phinodes.h"
#include "ssa-iterators.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "langhooks.h"
#include "target.h"
diff --git a/gcc/tree-if-conv.c b/gcc/tree-if-conv.c
index 81403f25aa0..2dd073389f8 100644
--- a/gcc/tree-if-conv.c
+++ b/gcc/tree-if-conv.c
@@ -85,6 +85,7 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stor-layout.h"
#include "flags.h"
#include "basic-block.h"
#include "gimple-pretty-print.h"
@@ -96,6 +97,7 @@ 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-ssa.h"
diff --git a/gcc/tree-inline.c b/gcc/tree-inline.c
index d0eb27ba12c..0a39ee6f4e1 100644
--- a/gcc/tree-inline.c
+++ b/gcc/tree-inline.c
@@ -24,6 +24,8 @@ along with GCC; see the file COPYING3. If not see
#include "tm.h"
#include "diagnostic-core.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "calls.h"
#include "tree-inline.h"
#include "flags.h"
#include "params.h"
@@ -43,8 +45,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 "expr.h"
#include "tree-dfa.h"
#include "tree-ssa.h"
#include "function.h"
diff --git a/gcc/tree-inline.h b/gcc/tree-inline.h
index 50ccaab42fc..d871fc4e4b6 100644
--- a/gcc/tree-inline.h
+++ b/gcc/tree-inline.h
@@ -183,10 +183,9 @@ extern eni_weights eni_size_weights;
extern eni_weights eni_time_weights;
/* Function prototypes. */
-
+void init_inline_once (void);
extern tree copy_tree_body_r (tree *, int *, void *);
extern void insert_decl_map (copy_body_data *, tree, tree);
-
unsigned int optimize_inline_calls (tree);
tree maybe_inline_call_in_expr (tree);
bool tree_inlinable_function_p (tree);
@@ -197,9 +196,13 @@ int estimate_num_insns (gimple, eni_weights *);
int estimate_num_insns_fn (tree, eni_weights *);
int count_insns_seq (gimple_seq, eni_weights *);
bool tree_versionable_function_p (tree);
-
extern tree remap_decl (tree decl, copy_body_data *id);
extern tree remap_type (tree type, copy_body_data *id);
extern gimple_seq copy_gimple_seq_and_replace_locals (gimple_seq seq);
+extern bool debug_find_tree (tree, tree);
+
+/* This is in tree-inline.c since the routine uses
+ data structures from the inliner. */
+extern tree build_duplicate_type (tree);
#endif /* GCC_TREE_INLINE_H */
diff --git a/gcc/tree-into-ssa.c b/gcc/tree-into-ssa.c
index ee86f2cfa9d..b2b57992d55 100644
--- a/gcc/tree-into-ssa.c
+++ b/gcc/tree-into-ssa.c
@@ -35,8 +35,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 "expr.h"
#include "tree-dfa.h"
#include "tree-ssa.h"
#include "tree-inline.h"
diff --git a/gcc/tree-iterator.h b/gcc/tree-iterator.h
index f7593890713..b5217f77873 100644
--- a/gcc/tree-iterator.h
+++ b/gcc/tree-iterator.h
@@ -117,5 +117,7 @@ extern tree alloc_stmt_list (void);
extern void free_stmt_list (tree);
extern void append_to_statement_list (tree, tree *);
extern void append_to_statement_list_force (tree, tree *);
+extern tree expr_first (tree);
+extern tree expr_last (tree);
#endif /* GCC_TREE_ITERATOR_H */
diff --git a/gcc/tree-loop-distribution.c b/gcc/tree-loop-distribution.c
index 075487726f4..6f9462c4aec 100644
--- a/gcc/tree-loop-distribution.c
+++ b/gcc/tree-loop-distribution.c
@@ -48,10 +48,12 @@ along with GCC; see the file COPYING3. If not see
#include "gimple.h"
#include "gimple-iterator.h"
#include "gimplify-me.h"
+#include "stor-layout.h"
#include "gimple-ssa.h"
#include "tree-cfg.h"
#include "tree-phinodes.h"
#include "ssa-iterators.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "tree-ssa-loop-manip.h"
#include "tree-ssa-loop.h"
diff --git a/gcc/tree-nested.c b/gcc/tree-nested.c
index 9b4493bade0..868c8fd0e1f 100644
--- a/gcc/tree-nested.c
+++ b/gcc/tree-nested.c
@@ -22,6 +22,8 @@
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stringpool.h"
+#include "stor-layout.h"
#include "tm_p.h"
#include "function.h"
#include "tree-dump.h"
diff --git a/gcc/tree-nrv.c b/gcc/tree-nrv.c
index b333abf3956..035428aaec3 100644
--- a/gcc/tree-nrv.c
+++ b/gcc/tree-nrv.c
@@ -29,6 +29,7 @@ along with GCC; see the file COPYING3. If not see
#include "gimple-iterator.h"
#include "gimple-walk.h"
#include "gimple-ssa.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "tree-pass.h"
#include "langhooks.h"
diff --git a/gcc/tree-object-size.c b/gcc/tree-object-size.c
index 8dcd2aa5d9f..785f71eae29 100644
--- a/gcc/tree-object-size.c
+++ b/gcc/tree-object-size.c
@@ -23,12 +23,14 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "tree-object-size.h"
#include "diagnostic-core.h"
#include "gimple-pretty-print.h"
#include "bitmap.h"
#include "gimple.h"
#include "gimple-iterator.h"
#include "gimple-ssa.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "tree-pass.h"
#include "tree-ssa-propagate.h"
diff --git a/gcc/tree-object-size.h b/gcc/tree-object-size.h
new file mode 100644
index 00000000000..19029d89562
--- /dev/null
+++ b/gcc/tree-object-size.h
@@ -0,0 +1,26 @@
+/* Declarations for tree-object-size.c.
+ Copyright (C) 2013 Free Software Foundation, Inc.
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 3, or (at your option)
+any later version.
+
+GCC is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3. If not see
+<http://www.gnu.org/licenses/>. */
+
+#ifndef GCC_TREE_OBJECT_SIZE_H
+#define GCC_TREE_OBJECT_SIZE_H
+
+extern void init_object_sizes (void);
+extern unsigned HOST_WIDE_INT compute_builtin_object_size (tree, int);
+
+#endif // GCC_TREE_OBJECT_SIZE_H
diff --git a/gcc/tree-outof-ssa.c b/gcc/tree-outof-ssa.c
index eb11c883fb4..333ef767418 100644
--- a/gcc/tree-outof-ssa.c
+++ b/gcc/tree-outof-ssa.c
@@ -23,6 +23,7 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stor-layout.h"
#include "ggc.h"
#include "basic-block.h"
#include "gimple-pretty-print.h"
@@ -34,6 +35,7 @@ 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 "dumpfile.h"
#include "diagnostic-core.h"
diff --git a/gcc/tree-parloops.c b/gcc/tree-parloops.c
index 648331cc767..b7370f73c46 100644
--- a/gcc/tree-parloops.c
+++ b/gcc/tree-parloops.c
@@ -28,10 +28,13 @@ along with GCC; see the file COPYING3. If not see
#include "gimple-iterator.h"
#include "gimplify-me.h"
#include "gimple-walk.h"
+#include "stor-layout.h"
+#include "tree-nested.h"
#include "gimple-ssa.h"
#include "tree-cfg.h"
#include "tree-phinodes.h"
#include "ssa-iterators.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "tree-ssa-loop-ivopts.h"
#include "tree-ssa-loop-manip.h"
diff --git a/gcc/tree-phinodes.c b/gcc/tree-phinodes.c
index da7bf5be978..dffad686fd1 100644
--- a/gcc/tree-phinodes.c
+++ b/gcc/tree-phinodes.c
@@ -29,6 +29,7 @@ along with GCC; see the file COPYING3. If not see
#include "gimple-ssa.h"
#include "tree-phinodes.h"
#include "ssa-iterators.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "tree-ssa.h"
#include "diagnostic-core.h"
diff --git a/gcc/tree-predcom.c b/gcc/tree-predcom.c
index a43d19b08a9..830f82bc811 100644
--- a/gcc/tree-predcom.c
+++ b/gcc/tree-predcom.c
@@ -198,12 +198,14 @@ along with GCC; see the file COPYING3. If not see
#include "gimple-ssa.h"
#include "tree-phinodes.h"
#include "ssa-iterators.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "tree-ssa-loop-ivopts.h"
#include "tree-ssa-loop-manip.h"
#include "tree-ssa-loop-niter.h"
#include "tree-ssa-loop.h"
#include "tree-into-ssa.h"
+#include "expr.h"
#include "tree-dfa.h"
#include "tree-ssa.h"
#include "ggc.h"
diff --git a/gcc/tree-pretty-print.c b/gcc/tree-pretty-print.c
index 93dc9c20610..7ed48833fc3 100644
--- a/gcc/tree-pretty-print.c
+++ b/gcc/tree-pretty-print.c
@@ -23,6 +23,8 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "expr.h"
#include "tree-pretty-print.h"
#include "hashtab.h"
#include "gimple.h"
diff --git a/gcc/tree-profile.c b/gcc/tree-profile.c
index 132ce0d4d13..fb4df90b769 100644
--- a/gcc/tree-profile.c
+++ b/gcc/tree-profile.c
@@ -35,12 +35,15 @@ along with GCC; see the file COPYING3. If not see
#include "coverage.h"
#include "tree.h"
#include "gimple.h"
+#include "varasm.h"
+#include "tree-nested.h"
#include "gimplify.h"
#include "gimple-iterator.h"
#include "gimplify-me.h"
#include "gimple-ssa.h"
#include "cgraph.h"
#include "tree-cfg.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "tree-into-ssa.h"
#include "tree-pass.h"
diff --git a/gcc/tree-scalar-evolution.c b/gcc/tree-scalar-evolution.c
index 115683de833..e8b18f9df07 100644
--- a/gcc/tree-scalar-evolution.c
+++ b/gcc/tree-scalar-evolution.c
@@ -257,6 +257,7 @@ along with GCC; see the file COPYING3. If not see
#include "system.h"
#include "coretypes.h"
#include "tree.h"
+#include "expr.h"
#include "hash-table.h"
#include "gimple-pretty-print.h"
#include "gimple.h"
@@ -266,6 +267,7 @@ along with GCC; see the file COPYING3. If not see
#include "gimple-ssa.h"
#include "tree-cfg.h"
#include "tree-phinodes.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "tree-ssa-loop-ivopts.h"
#include "tree-ssa-loop-manip.h"
diff --git a/gcc/tree-sra.c b/gcc/tree-sra.c
index b4b17882d2a..ea1986cae7e 100644
--- a/gcc/tree-sra.c
+++ b/gcc/tree-sra.c
@@ -79,6 +79,7 @@ along with GCC; see the file COPYING3. If not see
#include "tm.h"
#include "tree.h"
#include "gimple.h"
+#include "stor-layout.h"
#include "gimplify.h"
#include "gimple-iterator.h"
#include "gimplify-me.h"
@@ -88,7 +89,9 @@ 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 "expr.h"
#include "tree-dfa.h"
#include "tree-ssa.h"
#include "tree-pass.h"
diff --git a/gcc/tree-ssa-address.c b/gcc/tree-ssa-address.c
index cf245675796..257d534a492 100644
--- a/gcc/tree-ssa-address.c
+++ b/gcc/tree-ssa-address.c
@@ -25,14 +25,17 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stor-layout.h"
#include "tm_p.h"
#include "basic-block.h"
#include "tree-pretty-print.h"
#include "gimple.h"
#include "gimple-iterator.h"
#include "gimplify-me.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "tree-ssa-loop-ivopts.h"
+#include "expr.h"
#include "tree-dfa.h"
#include "dumpfile.h"
#include "flags.h"
diff --git a/gcc/tree-ssa-alias.c b/gcc/tree-ssa-alias.c
index c1028fb7606..ef9fbfecdc9 100644
--- a/gcc/tree-ssa-alias.c
+++ b/gcc/tree-ssa-alias.c
@@ -35,7 +35,9 @@ along with GCC; see the file COPYING3. If not see
#include "dumpfile.h"
#include "gimple.h"
#include "gimple-ssa.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
+#include "expr.h"
#include "tree-dfa.h"
#include "tree-inline.h"
#include "params.h"
diff --git a/gcc/tree-ssa-ccp.c b/gcc/tree-ssa-ccp.c
index 06da6a2ec3e..d8ef822d4fb 100644
--- a/gcc/tree-ssa-ccp.c
+++ b/gcc/tree-ssa-ccp.c
@@ -114,6 +114,7 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stor-layout.h"
#include "flags.h"
#include "tm_p.h"
#include "basic-block.h"
@@ -126,6 +127,7 @@ 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-pass.h"
#include "tree-ssa-propagate.h"
diff --git a/gcc/tree-ssa-coalesce.c b/gcc/tree-ssa-coalesce.c
index 942602e5fe3..cc46370d1f9 100644
--- a/gcc/tree-ssa-coalesce.c
+++ b/gcc/tree-ssa-coalesce.c
@@ -32,6 +32,7 @@ along with GCC; see the file COPYING3. If not see
#include "gimple-ssa.h"
#include "tree-phinodes.h"
#include "ssa-iterators.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "hash-table.h"
#include "tree-ssa-live.h"
diff --git a/gcc/tree-ssa-copy.c b/gcc/tree-ssa-copy.c
index 0f70372c80e..def780650e0 100644
--- a/gcc/tree-ssa-copy.c
+++ b/gcc/tree-ssa-copy.c
@@ -33,6 +33,7 @@ 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-pass.h"
#include "tree-ssa-propagate.h"
diff --git a/gcc/tree-ssa-copyrename.c b/gcc/tree-ssa-copyrename.c
index d71802e7a1c..361b4c32fd7 100644
--- a/gcc/tree-ssa-copyrename.c
+++ b/gcc/tree-ssa-copyrename.c
@@ -31,7 +31,9 @@ along with GCC; see the file COPYING3. If not see
#include "tree-pretty-print.h"
#include "bitmap.h"
#include "gimple-ssa.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
+#include "expr.h"
#include "tree-dfa.h"
#include "tree-inline.h"
#include "hashtab.h"
diff --git a/gcc/tree-ssa-dce.c b/gcc/tree-ssa-dce.c
index d138f92f195..213bb51b3e2 100644
--- a/gcc/tree-ssa-dce.c
+++ b/gcc/tree-ssa-dce.c
@@ -48,6 +48,7 @@ along with GCC; see the file COPYING3. If not see
#include "tm.h"
#include "tree.h"
+#include "calls.h"
#include "gimple-pretty-print.h"
#include "basic-block.h"
#include "gimple.h"
@@ -57,9 +58,11 @@ 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-ssa-loop-niter.h"
#include "tree-into-ssa.h"
+#include "expr.h"
#include "tree-dfa.h"
#include "tree-pass.h"
#include "flags.h"
diff --git a/gcc/tree-ssa-dom.c b/gcc/tree-ssa-dom.c
index 0ce24df2abe..bfd865d09a7 100644
--- a/gcc/tree-ssa-dom.c
+++ b/gcc/tree-ssa-dom.c
@@ -24,6 +24,7 @@ along with GCC; see the file COPYING3. If not see
#include "hash-table.h"
#include "tm.h"
#include "tree.h"
+#include "stor-layout.h"
#include "flags.h"
#include "tm_p.h"
#include "basic-block.h"
@@ -36,6 +37,7 @@ 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 "domwalk.h"
diff --git a/gcc/tree-ssa-dse.c b/gcc/tree-ssa-dse.c
index 42e2380a0c8..905ef21761c 100644
--- a/gcc/tree-ssa-dse.c
+++ b/gcc/tree-ssa-dse.c
@@ -33,7 +33,9 @@ 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 "expr.h"
#include "tree-dfa.h"
#include "tree-pass.h"
#include "domwalk.h"
diff --git a/gcc/tree-ssa-forwprop.c b/gcc/tree-ssa-forwprop.c
index 817fa9f4614..a826137aabd 100644
--- a/gcc/tree-ssa-forwprop.c
+++ b/gcc/tree-ssa-forwprop.c
@@ -22,6 +22,7 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stor-layout.h"
#include "tm_p.h"
#include "basic-block.h"
#include "gimple-pretty-print.h"
@@ -33,7 +34,9 @@ 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 "expr.h"
#include "tree-dfa.h"
#include "tree-pass.h"
#include "langhooks.h"
diff --git a/gcc/tree-ssa-ifcombine.c b/gcc/tree-ssa-ifcombine.c
index 8ce4871e025..9d243753666 100644
--- a/gcc/tree-ssa-ifcombine.c
+++ b/gcc/tree-ssa-ifcombine.c
@@ -27,6 +27,7 @@ along with GCC; see the file COPYING3. If not see
#include "rtl.h"
#include "tm_p.h"
#include "tree.h"
+#include "stor-layout.h"
#include "basic-block.h"
#include "tree-pretty-print.h"
#include "gimple.h"
diff --git a/gcc/tree-ssa-live.c b/gcc/tree-ssa-live.c
index 1657f6f6ca5..5dc8d025f66 100644
--- a/gcc/tree-ssa-live.c
+++ b/gcc/tree-ssa-live.c
@@ -32,7 +32,9 @@ along with GCC; see the file COPYING3. If not see
#include "gimple-ssa.h"
#include "tree-phinodes.h"
#include "ssa-iterators.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
+#include "expr.h"
#include "tree-dfa.h"
#include "timevar.h"
#include "dumpfile.h"
diff --git a/gcc/tree-ssa-loop-im.c b/gcc/tree-ssa-loop-im.c
index 7f29ea2053c..79a0543a40f 100644
--- a/gcc/tree-ssa-loop-im.c
+++ b/gcc/tree-ssa-loop-im.c
@@ -33,6 +33,7 @@ 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-ssa-loop-manip.h"
#include "tree-ssa-loop.h"
diff --git a/gcc/tree-ssa-loop-ivcanon.c b/gcc/tree-ssa-loop-ivcanon.c
index 97b95ab2d31..ea0ab8ca80b 100644
--- a/gcc/tree-ssa-loop-ivcanon.c
+++ b/gcc/tree-ssa-loop-ivcanon.c
@@ -47,6 +47,7 @@ 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-ssa-loop-manip.h"
#include "tree-ssa-loop-niter.h"
diff --git a/gcc/tree-ssa-loop-ivopts.c b/gcc/tree-ssa-loop-ivopts.c
index f53fa2286f2..9bf12ebdc8e 100644
--- a/gcc/tree-ssa-loop-ivopts.c
+++ b/gcc/tree-ssa-loop-ivopts.c
@@ -66,6 +66,7 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stor-layout.h"
#include "tm_p.h"
#include "basic-block.h"
#include "gimple-pretty-print.h"
@@ -78,11 +79,13 @@ 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-ssa-loop-ivopts.h"
#include "tree-ssa-loop-manip.h"
#include "tree-ssa-loop-niter.h"
#include "tree-ssa-loop.h"
+#include "expr.h"
#include "tree-dfa.h"
#include "tree-ssa.h"
#include "cfgloop.h"
diff --git a/gcc/tree-ssa-loop-manip.c b/gcc/tree-ssa-loop-manip.c
index 31db43a2c05..fe2686d3037 100644
--- a/gcc/tree-ssa-loop-manip.c
+++ b/gcc/tree-ssa-loop-manip.c
@@ -32,6 +32,7 @@ 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-ssa-loop-ivopts.h"
#include "tree-ssa-loop-manip.h"
diff --git a/gcc/tree-ssa-loop-niter.c b/gcc/tree-ssa-loop-niter.c
index 97cad3de977..023f2a83356 100644
--- a/gcc/tree-ssa-loop-niter.c
+++ b/gcc/tree-ssa-loop-niter.c
@@ -22,6 +22,8 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "calls.h"
+#include "expr.h"
#include "tm_p.h"
#include "basic-block.h"
#include "gimple-pretty-print.h"
@@ -47,6 +49,7 @@ along with GCC; see the file COPYING3. If not see
#include "diagnostic-core.h"
#include "tree-inline.h"
#include "tree-pass.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
diff --git a/gcc/tree-ssa-loop-prefetch.c b/gcc/tree-ssa-loop-prefetch.c
index 3738f62fa09..6baf4abd319 100644
--- a/gcc/tree-ssa-loop-prefetch.c
+++ b/gcc/tree-ssa-loop-prefetch.c
@@ -22,6 +22,7 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stor-layout.h"
#include "tm_p.h"
#include "basic-block.h"
#include "tree-pretty-print.h"
diff --git a/gcc/tree-ssa-math-opts.c b/gcc/tree-ssa-math-opts.c
index 0c5dbb17aa5..67117bcc3f6 100644
--- a/gcc/tree-ssa-math-opts.c
+++ b/gcc/tree-ssa-math-opts.c
@@ -93,11 +93,14 @@ along with GCC; see the file COPYING3. If not see
#include "gimple.h"
#include "gimple-iterator.h"
#include "gimplify-me.h"
+#include "stor-layout.h"
#include "gimple-ssa.h"
#include "tree-cfg.h"
#include "tree-phinodes.h"
#include "ssa-iterators.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
+#include "expr.h"
#include "tree-dfa.h"
#include "tree-ssa.h"
#include "tree-pass.h"
diff --git a/gcc/tree-ssa-operands.c b/gcc/tree-ssa-operands.c
index 4e05d2df046..3508b34b77a 100644
--- a/gcc/tree-ssa-operands.c
+++ b/gcc/tree-ssa-operands.c
@@ -22,6 +22,8 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stmt.h"
+#include "print-tree.h"
#include "flags.h"
#include "function.h"
#include "gimple-pretty-print.h"
@@ -30,6 +32,7 @@ along with GCC; see the file COPYING3. If not see
#include "gimple-ssa.h"
#include "tree-phinodes.h"
#include "ssa-iterators.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "tree-inline.h"
#include "timevar.h"
diff --git a/gcc/tree-ssa-phiopt.c b/gcc/tree-ssa-phiopt.c
index a0d739881d6..54a981935fd 100644
--- a/gcc/tree-ssa-phiopt.c
+++ b/gcc/tree-ssa-phiopt.c
@@ -24,6 +24,7 @@ along with GCC; see the file COPYING3. If not see
#include "tm.h"
#include "ggc.h"
#include "tree.h"
+#include "stor-layout.h"
#include "flags.h"
#include "tm_p.h"
#include "basic-block.h"
@@ -35,7 +36,9 @@ 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 "expr.h"
#include "tree-dfa.h"
#include "tree-pass.h"
#include "langhooks.h"
diff --git a/gcc/tree-ssa-phiprop.c b/gcc/tree-ssa-phiprop.c
index 070b8ed3f0b..e7640409425 100644
--- a/gcc/tree-ssa-phiprop.c
+++ b/gcc/tree-ssa-phiprop.c
@@ -32,6 +32,7 @@ along with GCC; see the file COPYING3. If not see
#include "gimple-ssa.h"
#include "tree-phinodes.h"
#include "ssa-iterators.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "tree-pass.h"
#include "langhooks.h"
diff --git a/gcc/tree-ssa-pre.c b/gcc/tree-ssa-pre.c
index 6ab1b10d330..b16fd1704d1 100644
--- a/gcc/tree-ssa-pre.c
+++ b/gcc/tree-ssa-pre.c
@@ -35,9 +35,11 @@ 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-ssa-loop.h"
#include "tree-into-ssa.h"
+#include "expr.h"
#include "tree-dfa.h"
#include "tree-ssa.h"
#include "hash-table.h"
diff --git a/gcc/tree-ssa-propagate.c b/gcc/tree-ssa-propagate.c
index 078b04afdbc..bd33071303b 100644
--- a/gcc/tree-ssa-propagate.c
+++ b/gcc/tree-ssa-propagate.c
@@ -37,6 +37,7 @@
#include "tree-cfg.h"
#include "tree-phinodes.h"
#include "ssa-iterators.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "tree-ssa.h"
#include "tree-ssa-propagate.h"
diff --git a/gcc/tree-ssa-reassoc.c b/gcc/tree-ssa-reassoc.c
index 709b1c1ba63..eedccc6654b 100644
--- a/gcc/tree-ssa-reassoc.c
+++ b/gcc/tree-ssa-reassoc.c
@@ -26,6 +26,7 @@ along with GCC; see the file COPYING3. If not see
#include "rtl.h"
#include "tm_p.h"
#include "tree.h"
+#include "stor-layout.h"
#include "basic-block.h"
#include "gimple-pretty-print.h"
#include "tree-inline.h"
@@ -36,9 +37,11 @@ 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-ssa-loop-niter.h"
#include "tree-ssa-loop.h"
+#include "expr.h"
#include "tree-dfa.h"
#include "tree-ssa.h"
#include "tree-iterator.h"
diff --git a/gcc/tree-ssa-sccvn.c b/gcc/tree-ssa-sccvn.c
index 786cfaa0988..2b2d0e9b997 100644
--- a/gcc/tree-ssa-sccvn.c
+++ b/gcc/tree-ssa-sccvn.c
@@ -23,6 +23,7 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stor-layout.h"
#include "basic-block.h"
#include "gimple-pretty-print.h"
#include "tree-inline.h"
@@ -31,7 +32,9 @@ along with GCC; see the file COPYING3. If not see
#include "gimple-ssa.h"
#include "tree-phinodes.h"
#include "ssa-iterators.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
+#include "expr.h"
#include "tree-dfa.h"
#include "tree-ssa.h"
#include "dumpfile.h"
diff --git a/gcc/tree-ssa-sink.c b/gcc/tree-ssa-sink.c
index caf10bb522f..f0c831d113b 100644
--- a/gcc/tree-ssa-sink.c
+++ b/gcc/tree-ssa-sink.c
@@ -23,6 +23,7 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stor-layout.h"
#include "basic-block.h"
#include "gimple-pretty-print.h"
#include "tree-inline.h"
diff --git a/gcc/tree-ssa-strlen.c b/gcc/tree-ssa-strlen.c
index 04e9ef4a0e2..514b1b829e2 100644
--- a/gcc/tree-ssa-strlen.c
+++ b/gcc/tree-ssa-strlen.c
@@ -22,6 +22,7 @@ along with GCC; see the file COPYING3. If not see
#include "system.h"
#include "coretypes.h"
#include "tree.h"
+#include "stor-layout.h"
#include "hash-table.h"
#include "bitmap.h"
#include "gimple.h"
@@ -31,7 +32,9 @@ along with GCC; see the file COPYING3. If not see
#include "gimple-ssa.h"
#include "tree-phinodes.h"
#include "ssa-iterators.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
+#include "expr.h"
#include "tree-dfa.h"
#include "tree-pass.h"
#include "domwalk.h"
diff --git a/gcc/tree-ssa-structalias.c b/gcc/tree-ssa-structalias.c
index f1172e7f7c9..688f547d03a 100644
--- a/gcc/tree-ssa-structalias.c
+++ b/gcc/tree-ssa-structalias.c
@@ -29,12 +29,16 @@
#include "flags.h"
#include "basic-block.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "stmt.h"
#include "gimple.h"
#include "gimple-iterator.h"
#include "gimple-ssa.h"
#include "cgraph.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "tree-into-ssa.h"
+#include "expr.h"
#include "tree-dfa.h"
#include "tree-inline.h"
#include "diagnostic-core.h"
diff --git a/gcc/tree-ssa-tail-merge.c b/gcc/tree-ssa-tail-merge.c
index 79be2165693..35b8bbe0497 100644
--- a/gcc/tree-ssa-tail-merge.c
+++ b/gcc/tree-ssa-tail-merge.c
@@ -190,6 +190,8 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "trans-mem.h"
#include "tm_p.h"
#include "basic-block.h"
#include "flags.h"
diff --git a/gcc/tree-ssa-ter.c b/gcc/tree-ssa-ter.c
index df0c458e019..883f950c11a 100644
--- a/gcc/tree-ssa-ter.c
+++ b/gcc/tree-ssa-ter.c
@@ -31,6 +31,7 @@ along with GCC; see the file COPYING3. If not see
#include "gimple-ssa.h"
#include "tree-phinodes.h"
#include "ssa-iterators.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "dumpfile.h"
#include "tree-ssa-live.h"
diff --git a/gcc/tree-ssa-threadedge.c b/gcc/tree-ssa-threadedge.c
index cabfc824c62..b90ff23af5d 100644
--- a/gcc/tree-ssa-threadedge.c
+++ b/gcc/tree-ssa-threadedge.c
@@ -36,6 +36,7 @@ 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-ssa-propagate.h"
#include "tree-ssa-threadupdate.h"
diff --git a/gcc/tree-ssa-uncprop.c b/gcc/tree-ssa-uncprop.c
index e4b39986363..62ffe421f29 100644
--- a/gcc/tree-ssa-uncprop.c
+++ b/gcc/tree-ssa-uncprop.c
@@ -22,6 +22,7 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stor-layout.h"
#include "flags.h"
#include "tm_p.h"
#include "basic-block.h"
diff --git a/gcc/tree-ssa.c b/gcc/tree-ssa.c
index d2552361a66..1b4a383062b 100644
--- a/gcc/tree-ssa.c
+++ b/gcc/tree-ssa.c
@@ -22,6 +22,7 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stor-layout.h"
#include "flags.h"
#include "tm_p.h"
#include "target.h"
@@ -38,6 +39,7 @@ along with GCC; see the file COPYING3. If not see
#include "gimple-ssa.h"
#include "tree-phinodes.h"
#include "ssa-iterators.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "tree-ssa-loop-manip.h"
#include "tree-into-ssa.h"
diff --git a/gcc/tree-ssanames.c b/gcc/tree-ssanames.c
index 76358912569..9d88b4cf576 100644
--- a/gcc/tree-ssanames.c
+++ b/gcc/tree-ssanames.c
@@ -22,10 +22,12 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stor-layout.h"
#include "gimple.h"
#include "gimple-ssa.h"
#include "tree-phinodes.h"
#include "ssa-iterators.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "tree-into-ssa.h"
#include "tree-ssa.h"
diff --git a/gcc/tree-stdarg.c b/gcc/tree-stdarg.c
index 5cd845c0d52..221e7d705e0 100644
--- a/gcc/tree-stdarg.c
+++ b/gcc/tree-stdarg.c
@@ -34,6 +34,7 @@ along with GCC; see the file COPYING3. If not see
#include "gimple-ssa.h"
#include "tree-phinodes.h"
#include "ssa-iterators.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "sbitmap.h"
#include "tree-pass.h"
diff --git a/gcc/tree-streamer-in.c b/gcc/tree-streamer-in.c
index 92598e39941..560d4f8f4f7 100644
--- a/gcc/tree-streamer-in.c
+++ b/gcc/tree-streamer-in.c
@@ -24,6 +24,7 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "diagnostic.h"
#include "tree.h"
+#include "stringpool.h"
#include "gimple.h"
#include "tree-streamer.h"
#include "data-streamer.h"
diff --git a/gcc/tree-streamer-out.c b/gcc/tree-streamer-out.c
index ea1a0546516..275c22cd7aa 100644
--- a/gcc/tree-streamer-out.c
+++ b/gcc/tree-streamer-out.c
@@ -25,6 +25,7 @@ along with GCC; see the file COPYING3. If not see
#include "tm.h"
#include "diagnostic.h"
#include "tree.h"
+#include "stor-layout.h"
#include "gimple.h"
#include "tree-streamer.h"
#include "data-streamer.h"
diff --git a/gcc/tree-switch-conversion.c b/gcc/tree-switch-conversion.c
index fa31e22d525..494d48e5c46 100644
--- a/gcc/tree-switch-conversion.c
+++ b/gcc/tree-switch-conversion.c
@@ -30,6 +30,8 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
#include "params.h"
#include "flags.h"
#include "tree.h"
+#include "varasm.h"
+#include "stor-layout.h"
#include "basic-block.h"
#include "gimple.h"
#include "gimplify.h"
@@ -39,6 +41,7 @@ Software Foundation, 51 Franklin Street, Fifth Floor, Boston, MA
#include "cgraph.h"
#include "tree-cfg.h"
#include "tree-phinodes.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "tree-pass.h"
#include "gimple-pretty-print.h"
diff --git a/gcc/tree-tailcall.c b/gcc/tree-tailcall.c
index 185bf165149..33677ce1277 100644
--- a/gcc/tree-tailcall.c
+++ b/gcc/tree-tailcall.c
@@ -22,6 +22,7 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "stor-layout.h"
#include "tm_p.h"
#include "basic-block.h"
#include "function.h"
@@ -31,8 +32,10 @@ along with GCC; see the file COPYING3. If not see
#include "gimple-ssa.h"
#include "tree-cfg.h"
#include "tree-phinodes.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "tree-into-ssa.h"
+#include "expr.h"
#include "tree-dfa.h"
#include "gimple-pretty-print.h"
#include "except.h"
diff --git a/gcc/tree-vect-data-refs.c b/gcc/tree-vect-data-refs.c
index 83d1f4546bd..259a2846129 100644
--- a/gcc/tree-vect-data-refs.c
+++ b/gcc/tree-vect-data-refs.c
@@ -26,6 +26,7 @@ along with GCC; see the file COPYING3. If not see
#include "tm.h"
#include "ggc.h"
#include "tree.h"
+#include "stor-layout.h"
#include "tm_p.h"
#include "target.h"
#include "basic-block.h"
@@ -37,6 +38,7 @@ along with GCC; see the file COPYING3. If not see
#include "gimple-ssa.h"
#include "tree-phinodes.h"
#include "ssa-iterators.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "tree-ssa-loop-ivopts.h"
#include "tree-ssa-loop-manip.h"
diff --git a/gcc/tree-vect-generic.c b/gcc/tree-vect-generic.c
index 9fcab5d2a83..735689b4c18 100644
--- a/gcc/tree-vect-generic.c
+++ b/gcc/tree-vect-generic.c
@@ -21,6 +21,7 @@ along with GCC; see the file COPYING3. If not see
#include "system.h"
#include "coretypes.h"
#include "tree.h"
+#include "stor-layout.h"
#include "tm.h"
#include "langhooks.h"
#include "gimple.h"
@@ -28,6 +29,7 @@ along with GCC; see the file COPYING3. If not see
#include "gimplify-me.h"
#include "gimple-ssa.h"
#include "tree-cfg.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "tree-iterator.h"
#include "tree-pass.h"
diff --git a/gcc/tree-vect-loop-manip.c b/gcc/tree-vect-loop-manip.c
index 411adb9afca..5c149951b84 100644
--- a/gcc/tree-vect-loop-manip.c
+++ b/gcc/tree-vect-loop-manip.c
@@ -36,6 +36,7 @@ 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-ssa-loop-manip.h"
#include "tree-into-ssa.h"
diff --git a/gcc/tree-vect-loop.c b/gcc/tree-vect-loop.c
index 86ebbd226a7..4a277ae419a 100644
--- a/gcc/tree-vect-loop.c
+++ b/gcc/tree-vect-loop.c
@@ -26,6 +26,7 @@ along with GCC; see the file COPYING3. If not see
#include "tm.h"
#include "ggc.h"
#include "tree.h"
+#include "stor-layout.h"
#include "basic-block.h"
#include "gimple-pretty-print.h"
#include "gimple.h"
@@ -35,6 +36,7 @@ along with GCC; see the file COPYING3. If not see
#include "gimple-ssa.h"
#include "tree-phinodes.h"
#include "ssa-iterators.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "tree-ssa-loop-ivopts.h"
#include "tree-ssa-loop-manip.h"
diff --git a/gcc/tree-vect-patterns.c b/gcc/tree-vect-patterns.c
index 0992fbc9c73..de854e1a443 100644
--- a/gcc/tree-vect-patterns.c
+++ b/gcc/tree-vect-patterns.c
@@ -24,6 +24,7 @@ along with GCC; see the file COPYING3. If not see
#include "tm.h"
#include "ggc.h"
#include "tree.h"
+#include "stor-layout.h"
#include "target.h"
#include "basic-block.h"
#include "gimple-pretty-print.h"
@@ -33,6 +34,7 @@ along with GCC; see the file COPYING3. If not see
#include "gimple-ssa.h"
#include "tree-phinodes.h"
#include "ssa-iterators.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "cfgloop.h"
#include "expr.h"
diff --git a/gcc/tree-vect-slp.c b/gcc/tree-vect-slp.c
index 247bdfd6669..bd9e4e23e0d 100644
--- a/gcc/tree-vect-slp.c
+++ b/gcc/tree-vect-slp.c
@@ -26,6 +26,7 @@ along with GCC; see the file COPYING3. If not see
#include "tm.h"
#include "ggc.h"
#include "tree.h"
+#include "stor-layout.h"
#include "target.h"
#include "basic-block.h"
#include "gimple-pretty-print.h"
@@ -34,6 +35,7 @@ along with GCC; see the file COPYING3. If not see
#include "gimple-ssa.h"
#include "tree-phinodes.h"
#include "ssa-iterators.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "tree-pass.h"
#include "cfgloop.h"
diff --git a/gcc/tree-vect-stmts.c b/gcc/tree-vect-stmts.c
index 54d821af9c0..2116cec3cf9 100644
--- a/gcc/tree-vect-stmts.c
+++ b/gcc/tree-vect-stmts.c
@@ -26,6 +26,7 @@ along with GCC; see the file COPYING3. If not see
#include "tm.h"
#include "ggc.h"
#include "tree.h"
+#include "stor-layout.h"
#include "target.h"
#include "basic-block.h"
#include "gimple-pretty-print.h"
@@ -37,6 +38,7 @@ 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-ssa-loop-manip.h"
#include "cfgloop.h"
diff --git a/gcc/tree-vectorizer.c b/gcc/tree-vectorizer.c
index 9c2cf5d1ce2..5021c5b48cc 100644
--- a/gcc/tree-vectorizer.c
+++ b/gcc/tree-vectorizer.c
@@ -61,6 +61,7 @@ along with GCC; see the file COPYING3. If not see
#include "tm.h"
#include "ggc.h"
#include "tree.h"
+#include "stor-layout.h"
#include "tree-pretty-print.h"
#include "gimple.h"
#include "gimple-iterator.h"
diff --git a/gcc/tree-vrp.c b/gcc/tree-vrp.c
index 696cadba767..d250186a40b 100644
--- a/gcc/tree-vrp.c
+++ b/gcc/tree-vrp.c
@@ -25,6 +25,8 @@ along with GCC; see the file COPYING3. If not see
#include "ggc.h"
#include "flags.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "calls.h"
#include "basic-block.h"
#include "gimple.h"
#include "gimple-iterator.h"
@@ -33,6 +35,7 @@ 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-ssa-loop-manip.h"
#include "tree-ssa-loop-niter.h"
diff --git a/gcc/tree.c b/gcc/tree.c
index ea106cee375..25aa3e2a356 100644
--- a/gcc/tree.c
+++ b/gcc/tree.c
@@ -33,6 +33,10 @@ along with GCC; see the file COPYING3. If not see
#include "tm.h"
#include "flags.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "calls.h"
+#include "attribs.h"
+#include "varasm.h"
#include "tm_p.h"
#include "function.h"
#include "obstack.h"
@@ -54,7 +58,9 @@ along with GCC; see the file COPYING3. If not see
#include "gimple-ssa.h"
#include "cgraph.h"
#include "tree-phinodes.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
+#include "expr.h"
#include "tree-dfa.h"
#include "params.h"
#include "pointer-set.h"
diff --git a/gcc/tree.h b/gcc/tree.h
index f63672c0897..c485c3f8a88 100644
--- a/gcc/tree.h
+++ b/gcc/tree.h
@@ -22,6 +22,12 @@ along with GCC; see the file COPYING3. If not see
#include "tree-core.h"
+/* These includes are required here because they provide declarations
+ used by inline functions in this file.
+
+ FIXME - Move these users elsewhere? */
+#include "fold-const.h"
+
/* Macros for initializing `tree_contains_struct'. */
#define MARK_TS_BASE(C) \
do { \
@@ -568,7 +574,6 @@ extern void omp_clause_range_check_failed (const_tree, const char *, int,
#define COMPLETE_OR_UNBOUND_ARRAY_TYPE_P(NODE) \
(COMPLETE_TYPE_P (TREE_CODE (NODE) == ARRAY_TYPE ? TREE_TYPE (NODE) : (NODE)))
-
/* Define many boolean fields that all tree nodes have. */
/* In VAR_DECL, PARM_DECL and RESULT_DECL nodes, nonzero means address
@@ -882,7 +887,7 @@ extern void omp_clause_range_check_failed (const_tree, const char *, int,
(TREE_NOT_CHECK2 (NODE, TREE_VEC, SSA_NAME)->base.u.bits.lang_flag_5)
#define TREE_LANG_FLAG_6(NODE) \
(TREE_NOT_CHECK2 (NODE, TREE_VEC, SSA_NAME)->base.u.bits.lang_flag_6)
-
+
/* Define additional fields and accessors for nodes representing constants. */
/* In an INTEGER_CST node. These two together make a 2-word integer.
@@ -1519,8 +1524,6 @@ extern void protected_set_expr_location (tree, location_t);
#define TYPE_MAIN_VARIANT(NODE) (TYPE_CHECK (NODE)->type_common.main_variant)
#define TYPE_CONTEXT(NODE) (TYPE_CHECK (NODE)->type_common.context)
-/* Vector types need to check target flags to determine type. */
-extern enum machine_mode vector_type_mode (const_tree);
#define TYPE_MODE(NODE) \
(VECTOR_TYPE_P (TYPE_CHECK (NODE)) \
? vector_type_mode (NODE) : (NODE)->type_common.mode)
@@ -2692,8 +2695,6 @@ extern vec<tree, va_gc> **decl_debug_args_insert (tree);
/* Return a tree node that encapsulates the optimization options in OPTS. */
extern tree build_optimization_node (struct gcc_options *opts);
-extern void init_tree_optimization_optabs (tree);
-
#define TREE_TARGET_OPTION(NODE) \
(&TARGET_OPTION_NODE_CHECK (NODE)->target_option.opts)
@@ -3438,30 +3439,6 @@ extern tree make_tree_vec_stat (int MEM_STAT_DECL);
extern tree grow_tree_vec_stat (tree v, int MEM_STAT_DECL);
#define grow_tree_vec(v, t) grow_tree_vec_stat (v, t MEM_STAT_INFO)
-/* Return the (unique) IDENTIFIER_NODE node for a given name.
- The name is supplied as a char *. */
-
-extern tree get_identifier (const char *);
-
-#if GCC_VERSION >= 3000
-#define get_identifier(str) \
- (__builtin_constant_p (str) \
- ? get_identifier_with_length ((str), strlen (str)) \
- : get_identifier (str))
-#endif
-
-
-/* Identical to get_identifier, except that the length is assumed
- known. */
-
-extern tree get_identifier_with_length (const char *, size_t);
-
-/* If an identifier with the name TEXT (a null-terminated string) has
- previously been referred to, return that node; otherwise return
- NULL_TREE. */
-
-extern tree maybe_get_identifier (const char *);
-
/* Construct various types of nodes. */
extern tree build_nt (enum tree_code, ...);
@@ -3612,14 +3589,10 @@ extern tree build_call_vec (tree, tree, vec<tree, va_gc> *);
/* Construct various nodes representing data types. */
-extern tree make_signed_type (int);
-extern tree make_unsigned_type (int);
extern tree signed_or_unsigned_type_for (int, tree);
extern tree signed_type_for (tree);
extern tree unsigned_type_for (tree);
extern tree truth_type_for (tree);
-extern void initialize_sizetypes (void);
-extern void fixup_unsigned_type (tree);
extern tree build_pointer_type_for_mode (tree, enum machine_mode, bool);
extern tree build_pointer_type (tree);
extern tree build_reference_type_for_mode (tree, enum machine_mode, bool);
@@ -3687,51 +3660,17 @@ tree_to_uhwi (const_tree t)
extern int tree_int_cst_sgn (const_tree);
extern int tree_int_cst_sign_bit (const_tree);
extern unsigned int tree_int_cst_min_precision (tree, bool);
-extern bool tree_expr_nonnegative_p (tree);
-extern bool tree_expr_nonnegative_warnv_p (tree, bool *);
-extern bool may_negate_without_overflow_p (const_tree);
extern tree strip_array_types (tree);
extern tree excess_precision_type (tree);
extern bool valid_constant_size_p (const_tree);
-extern unsigned int element_precision (const_tree);
-
-/* Construct various nodes representing fract or accum data types. */
-
-extern tree make_fract_type (int, int, int);
-extern tree make_accum_type (int, int, int);
-
-#define make_signed_fract_type(P) make_fract_type (P, 0, 0)
-#define make_unsigned_fract_type(P) make_fract_type (P, 1, 0)
-#define make_sat_signed_fract_type(P) make_fract_type (P, 0, 1)
-#define make_sat_unsigned_fract_type(P) make_fract_type (P, 1, 1)
-#define make_signed_accum_type(P) make_accum_type (P, 0, 0)
-#define make_unsigned_accum_type(P) make_accum_type (P, 1, 0)
-#define make_sat_signed_accum_type(P) make_accum_type (P, 0, 1)
-#define make_sat_unsigned_accum_type(P) make_accum_type (P, 1, 1)
-
-#define make_or_reuse_signed_fract_type(P) \
- make_or_reuse_fract_type (P, 0, 0)
-#define make_or_reuse_unsigned_fract_type(P) \
- make_or_reuse_fract_type (P, 1, 0)
-#define make_or_reuse_sat_signed_fract_type(P) \
- make_or_reuse_fract_type (P, 0, 1)
-#define make_or_reuse_sat_unsigned_fract_type(P) \
- make_or_reuse_fract_type (P, 1, 1)
-#define make_or_reuse_signed_accum_type(P) \
- make_or_reuse_accum_type (P, 0, 0)
-#define make_or_reuse_unsigned_accum_type(P) \
- make_or_reuse_accum_type (P, 1, 0)
-#define make_or_reuse_sat_signed_accum_type(P) \
- make_or_reuse_accum_type (P, 0, 1)
-#define make_or_reuse_sat_unsigned_accum_type(P) \
- make_or_reuse_accum_type (P, 1, 1)
+
/* From expmed.c. Since rtl.h is included after tree.h, we can't
put the prototype here. Rtl.h does declare the prototype if
tree.h had been included. */
extern tree make_tree (tree, rtx);
-
+
/* Return a type like TTYPE except that its TYPE_ATTRIBUTES
is ATTRIBUTE.
@@ -3850,30 +3789,6 @@ extern tree build_aligned_type (tree, unsigned int);
extern tree build_distinct_type_copy (tree);
extern tree build_variant_type_copy (tree);
-/* Finish up a builtin RECORD_TYPE. Give it a name and provide its
- fields. Optionally specify an alignment, and then lay it out. */
-
-extern void finish_builtin_struct (tree, const char *,
- tree, tree);
-
-/* Given a ..._TYPE node, calculate the TYPE_SIZE, TYPE_SIZE_UNIT,
- TYPE_ALIGN and TYPE_MODE fields. If called more than once on one
- node, does nothing except for the first time. */
-
-extern void layout_type (tree);
-
-extern record_layout_info start_record_layout (tree);
-extern tree bit_from_pos (tree, tree);
-extern tree byte_from_pos (tree, tree);
-extern void pos_from_bit (tree *, tree *, unsigned int, tree);
-extern void normalize_offset (tree *, tree *, unsigned int);
-extern tree rli_size_unit_so_far (record_layout_info);
-extern tree rli_size_so_far (record_layout_info);
-extern void normalize_rli (record_layout_info);
-extern void place_field (record_layout_info, tree);
-extern void compute_record_mode (tree);
-extern void finish_record_layout (record_layout_info, int);
-
/* Given a hashcode and a ..._TYPE node (for which the hashcode was made),
return a canonicalized ..._TYPE node, so that duplicates are not made.
How the hash code is computed is up to the caller, as long as any two
@@ -3881,37 +3796,8 @@ extern void finish_record_layout (record_layout_info, int);
extern tree type_hash_canon (unsigned int, tree);
-/* Given a VAR_DECL, PARM_DECL, RESULT_DECL or FIELD_DECL node,
- calculates the DECL_SIZE, DECL_SIZE_UNIT, DECL_ALIGN and DECL_MODE
- fields. Call this only once for any given decl node.
-
- Second argument is the boundary that this field can be assumed to
- be starting at (in bits). Zero means it can be assumed aligned
- on any boundary that may be needed. */
-
-extern void layout_decl (tree, unsigned);
-
-/* Given a VAR_DECL, PARM_DECL or RESULT_DECL, clears the results of
- a previous call to layout_decl and calls it again. */
-
-extern void relayout_decl (tree);
-
-/* Return the mode for data of a given size SIZE and mode class CLASS.
- If LIMIT is nonzero, then don't use modes bigger than MAX_FIXED_MODE_SIZE.
- The value is BLKmode if no other mode is found. This is like
- mode_for_size, but is passed a tree. */
-
-extern enum machine_mode mode_for_size_tree (const_tree, enum mode_class, int);
-
-/* Return an expr equal to X but certainly not valid as an lvalue. */
-
-#define non_lvalue(T) non_lvalue_loc (UNKNOWN_LOCATION, T)
-extern tree non_lvalue_loc (location_t, tree);
-
extern tree convert (tree, tree);
extern unsigned int expr_align (const_tree);
-extern tree expr_first (tree);
-extern tree expr_last (tree);
extern tree size_in_bytes (const_tree);
extern HOST_WIDE_INT int_size_in_bytes (const_tree);
extern HOST_WIDE_INT max_int_size_in_bytes (const_tree);
@@ -3924,26 +3810,11 @@ extern HOST_WIDE_INT int_byte_position (const_tree);
#define bitsizetype sizetype_tab[(int) stk_bitsizetype]
#define ssizetype sizetype_tab[(int) stk_ssizetype]
#define sbitsizetype sizetype_tab[(int) stk_sbitsizetype]
-
-extern tree size_int_kind (HOST_WIDE_INT, enum size_type_kind);
-#define size_binop(CODE,T1,T2)\
- size_binop_loc (UNKNOWN_LOCATION, CODE, T1, T2)
-extern tree size_binop_loc (location_t, enum tree_code, tree, tree);
-#define size_diffop(T1,T2)\
- size_diffop_loc (UNKNOWN_LOCATION, T1, T2)
-extern tree size_diffop_loc (location_t, tree, tree);
-
#define size_int(L) size_int_kind (L, stk_sizetype)
#define ssize_int(L) size_int_kind (L, stk_ssizetype)
#define bitsize_int(L) size_int_kind (L, stk_bitsizetype)
#define sbitsize_int(L) size_int_kind (L, stk_sbitsizetype)
-#define round_up(T,N) round_up_loc (UNKNOWN_LOCATION, T, N)
-extern tree round_up_loc (location_t, tree, int);
-#define round_down(T,N) round_down_loc (UNKNOWN_LOCATION, T, N)
-extern tree round_down_loc (location_t, tree, int);
-extern void finalize_size_functions (void);
-
/* Type for sizes of data-type. */
#define BITS_PER_UNIT_LOG \
@@ -3993,11 +3864,6 @@ extern tree uniform_vector_p (const_tree);
extern vec<tree, va_gc> *ctor_to_vec (tree);
-extern bool categorize_ctor_elements (const_tree, HOST_WIDE_INT *,
- HOST_WIDE_INT *, bool *);
-
-extern bool complete_ctor_at_level_p (const_tree, HOST_WIDE_INT, const_tree);
-
/* integer_zerop (tree x) is nonzero if X is an integer constant of value 0. */
extern int integer_zerop (const_tree);
@@ -4121,13 +3987,6 @@ extern tree substitute_placeholder_in_expr (tree, tree);
((EXP) == 0 || TREE_CONSTANT (EXP) ? (EXP) \
: substitute_placeholder_in_expr (EXP, OBJ))
-/* variable_size (EXP) is like save_expr (EXP) except that it
- is for the special case of something that is part of a
- variable size for a data type. It makes special arrangements
- to compute the value at the right time when the data type
- belongs to a function parameter. */
-
-extern tree variable_size (tree);
/* stabilize_reference (EXP) returns a reference equivalent to EXP
but it can be used multiple times
@@ -4170,36 +4029,6 @@ handled_component_p (const_tree t)
}
}
-/* Given an expression EXP that is a handled_component_p,
- look for the ultimate containing object, which is returned and specify
- the access position and size. */
-
-extern tree get_inner_reference (tree, HOST_WIDE_INT *, HOST_WIDE_INT *,
- tree *, enum machine_mode *, int *, int *,
- bool);
-
-/* Return a tree of sizetype representing the size, in bytes, of the element
- of EXP, an ARRAY_REF or an ARRAY_RANGE_REF. */
-
-extern tree array_ref_element_size (tree);
-
-bool array_at_struct_end_p (tree);
-
-/* Return a tree representing the lower bound of the array mentioned in
- EXP, an ARRAY_REF or an ARRAY_RANGE_REF. */
-
-extern tree array_ref_low_bound (tree);
-
-/* Return a tree representing the upper bound of the array mentioned in
- EXP, an ARRAY_REF or an ARRAY_RANGE_REF. */
-
-extern tree array_ref_up_bound (tree);
-
-/* Return a tree representing the offset, in bytes, of the field referenced
- by EXP. This does not include any offset in DECL_FIELD_BIT_OFFSET. */
-
-extern tree component_ref_field_offset (tree);
-
/* Given a DECL or TYPE, return the scope in which it was declared, or
NUL_TREE if there is no containing scope. */
@@ -4274,8 +4103,6 @@ inlined_function_outer_scope_p (const_tree block)
(TREE = function_args_iter_cond (&(ITER))) != NULL_TREE; \
function_args_iter_next (&(ITER)))
-
-
/* In tree.c */
extern unsigned crc32_string (unsigned, const char *);
extern unsigned crc32_byte (unsigned, char);
@@ -4306,14 +4133,6 @@ extern void assign_assembler_name_if_neeeded (tree);
extern void warn_deprecated_use (tree, tree);
extern void cache_integer_cst (tree);
-
-/* In cgraph.c */
-extern void change_decl_assembler_name (tree, tree);
-
-/* In stmt.c */
-
-extern void expand_label (tree);
-
/* Compare and hash for any structure which begins with a canonical
pointer. Assumes all pointers are interchangeable, which is sort
of already assumed by gcc elsewhere IIRC. */
@@ -4333,132 +4152,6 @@ struct_ptr_hash (const void *a)
return (intptr_t)*x >> 4;
}
-/* In fold-const.c */
-
-/* Non-zero if we are folding constants inside an initializer; zero
- otherwise. */
-extern int folding_initializer;
-
-/* Convert between trees and native memory representation. */
-extern int native_encode_expr (const_tree, unsigned char *, int);
-extern tree native_interpret_expr (tree, const unsigned char *, int);
-
-/* Fold constants as much as possible in an expression.
- Returns the simplified expression.
- Acts only on the top level of the expression;
- if the argument itself cannot be simplified, its
- subexpressions are not changed. */
-
-extern tree fold (tree);
-#define fold_unary(CODE,T1,T2)\
- fold_unary_loc (UNKNOWN_LOCATION, CODE, T1, T2)
-extern tree fold_unary_loc (location_t, enum tree_code, tree, tree);
-#define fold_unary_ignore_overflow(CODE,T1,T2)\
- fold_unary_ignore_overflow_loc (UNKNOWN_LOCATION, CODE, T1, T2)
-extern tree fold_unary_ignore_overflow_loc (location_t, enum tree_code, tree, tree);
-#define fold_binary(CODE,T1,T2,T3)\
- fold_binary_loc (UNKNOWN_LOCATION, CODE, T1, T2, T3)
-extern tree fold_binary_loc (location_t, enum tree_code, tree, tree, tree);
-#define fold_ternary(CODE,T1,T2,T3,T4)\
- fold_ternary_loc (UNKNOWN_LOCATION, CODE, T1, T2, T3, T4)
-extern tree fold_ternary_loc (location_t, enum tree_code, tree, tree, tree, tree);
-#define fold_build1(c,t1,t2)\
- fold_build1_stat_loc (UNKNOWN_LOCATION, c, t1, t2 MEM_STAT_INFO)
-#define fold_build1_loc(l,c,t1,t2)\
- fold_build1_stat_loc (l, c, t1, t2 MEM_STAT_INFO)
-extern tree fold_build1_stat_loc (location_t, enum tree_code, tree,
- tree MEM_STAT_DECL);
-#define fold_build2(c,t1,t2,t3)\
- fold_build2_stat_loc (UNKNOWN_LOCATION, c, t1, t2, t3 MEM_STAT_INFO)
-#define fold_build2_loc(l,c,t1,t2,t3)\
- fold_build2_stat_loc (l, c, t1, t2, t3 MEM_STAT_INFO)
-extern tree fold_build2_stat_loc (location_t, enum tree_code, tree, tree,
- tree MEM_STAT_DECL);
-#define fold_build3(c,t1,t2,t3,t4)\
- fold_build3_stat_loc (UNKNOWN_LOCATION, c, t1, t2, t3, t4 MEM_STAT_INFO)
-#define fold_build3_loc(l,c,t1,t2,t3,t4)\
- fold_build3_stat_loc (l, c, t1, t2, t3, t4 MEM_STAT_INFO)
-extern tree fold_build3_stat_loc (location_t, enum tree_code, tree, tree, tree,
- tree MEM_STAT_DECL);
-extern tree fold_build1_initializer_loc (location_t, enum tree_code, tree, tree);
-extern tree fold_build2_initializer_loc (location_t, enum tree_code, tree, tree, tree);
-#define fold_build_call_array(T1,T2,N,T4)\
- fold_build_call_array_loc (UNKNOWN_LOCATION, T1, T2, N, T4)
-extern tree fold_build_call_array_loc (location_t, tree, tree, int, tree *);
-#define fold_build_call_array_initializer(T1,T2,N,T4)\
- fold_build_call_array_initializer_loc (UNKNOWN_LOCATION, T1, T2, N, T4)
-extern tree fold_build_call_array_initializer_loc (location_t, tree, tree, int, tree *);
-extern bool fold_convertible_p (const_tree, const_tree);
-#define fold_convert(T1,T2)\
- fold_convert_loc (UNKNOWN_LOCATION, T1, T2)
-extern tree fold_convert_loc (location_t, tree, tree);
-extern tree fold_single_bit_test (location_t, enum tree_code, tree, tree, tree);
-extern tree fold_ignored_result (tree);
-extern tree fold_abs_const (tree, tree);
-extern tree fold_indirect_ref_1 (location_t, tree, tree);
-extern void fold_defer_overflow_warnings (void);
-extern void fold_undefer_overflow_warnings (bool, const_gimple, int);
-extern void fold_undefer_and_ignore_overflow_warnings (void);
-extern bool fold_deferring_overflow_warnings_p (void);
-extern tree fold_fma (location_t, tree, tree, tree, tree);
-extern int operand_equal_p (const_tree, const_tree, unsigned int);
-extern int multiple_of_p (tree, const_tree, const_tree);
-#define omit_one_operand(T1,T2,T3)\
- omit_one_operand_loc (UNKNOWN_LOCATION, T1, T2, T3)
-extern tree omit_one_operand_loc (location_t, tree, tree, tree);
-#define omit_two_operands(T1,T2,T3,T4)\
- omit_two_operands_loc (UNKNOWN_LOCATION, T1, T2, T3, T4)
-extern tree omit_two_operands_loc (location_t, tree, tree, tree, tree);
-#define invert_truthvalue(T)\
- invert_truthvalue_loc (UNKNOWN_LOCATION, T)
-extern tree invert_truthvalue_loc (location_t, tree);
-extern tree fold_unary_to_constant (enum tree_code, tree, tree);
-extern tree fold_binary_to_constant (enum tree_code, tree, tree, tree);
-extern tree fold_read_from_constant_string (tree);
-extern tree int_const_binop (enum tree_code, const_tree, const_tree);
-#define build_fold_addr_expr(T)\
- build_fold_addr_expr_loc (UNKNOWN_LOCATION, (T))
-extern tree build_fold_addr_expr_loc (location_t, tree);
-#define build_fold_addr_expr_with_type(T,TYPE)\
- build_fold_addr_expr_with_type_loc (UNKNOWN_LOCATION, (T), TYPE)
-extern tree build_fold_addr_expr_with_type_loc (location_t, tree, tree);
-extern tree fold_build_cleanup_point_expr (tree type, tree expr);
-extern tree fold_strip_sign_ops (tree);
-#define build_fold_indirect_ref(T)\
- build_fold_indirect_ref_loc (UNKNOWN_LOCATION, T)
-extern tree build_fold_indirect_ref_loc (location_t, tree);
-#define fold_indirect_ref(T)\
- fold_indirect_ref_loc (UNKNOWN_LOCATION, T)
-extern tree fold_indirect_ref_loc (location_t, tree);
-extern tree build_simple_mem_ref_loc (location_t, tree);
-#define build_simple_mem_ref(T)\
- build_simple_mem_ref_loc (UNKNOWN_LOCATION, T)
-extern double_int mem_ref_offset (const_tree);
-extern tree build_invariant_address (tree, tree, HOST_WIDE_INT);
-extern tree constant_boolean_node (bool, tree);
-extern tree div_if_zero_remainder (enum tree_code, const_tree, const_tree);
-
-extern bool tree_swap_operands_p (const_tree, const_tree, bool);
-extern enum tree_code swap_tree_comparison (enum tree_code);
-
-extern bool ptr_difference_const (tree, tree, HOST_WIDE_INT *);
-extern enum tree_code invert_tree_comparison (enum tree_code, bool);
-
-extern bool tree_unary_nonzero_warnv_p (enum tree_code, tree, tree, bool *);
-extern bool tree_binary_nonzero_warnv_p (enum tree_code, tree, tree, tree op1,
- bool *);
-extern bool tree_single_nonzero_warnv_p (tree, bool *);
-extern bool tree_unary_nonnegative_warnv_p (enum tree_code, tree, tree, bool *);
-extern bool tree_binary_nonnegative_warnv_p (enum tree_code, tree, tree, tree,
- bool *);
-extern bool tree_single_nonnegative_warnv_p (tree t, bool *strict_overflow_p);
-extern bool tree_call_nonnegative_warnv_p (tree, tree, tree, tree, bool *);
-
-extern bool fold_real_zero_addition_p (const_tree, const_tree, int);
-extern tree combine_comparisons (location_t, enum tree_code, enum tree_code,
- enum tree_code, tree, tree, tree);
-extern void debug_fold_checksum (const_tree);
-
/* Return nonzero if CODE is a tree code that represents a truth value. */
static inline bool
truth_value_p (enum tree_code code)
@@ -4508,56 +4201,7 @@ fold_build_pointer_plus_hwi_loc (location_t loc, tree ptr, HOST_WIDE_INT off)
#define fold_build_pointer_plus_hwi(p,o) \
fold_build_pointer_plus_hwi_loc (UNKNOWN_LOCATION, p, o)
-/* In builtins.c */
-
-/* Non-zero if __builtin_constant_p should be folded right away. */
-extern bool force_folding_builtin_constant_p;
-
-extern bool avoid_folding_inline_builtin (tree);
-extern tree fold_call_expr (location_t, tree, bool);
-extern tree fold_builtin_fputs (location_t, tree, tree, bool, bool, tree);
-extern tree fold_builtin_strcpy (location_t, tree, tree, tree, tree);
-extern tree fold_builtin_strncpy (location_t, tree, tree, tree, tree, tree);
-extern tree fold_builtin_memory_chk (location_t, tree, tree, tree, tree, tree, tree, bool,
- enum built_in_function);
-extern tree fold_builtin_stxcpy_chk (location_t, tree, tree, tree, tree, tree, bool,
- enum built_in_function);
-extern tree fold_builtin_stxncpy_chk (location_t, tree, tree, tree, tree, tree, bool,
- enum built_in_function);
-extern bool fold_builtin_next_arg (tree, bool);
-extern enum built_in_function builtin_mathfn_code (const_tree);
-extern tree fold_builtin_call_array (location_t, tree, tree, int, tree *);
-extern tree build_call_expr_loc_array (location_t, tree, int, tree *);
-extern tree build_call_expr_loc_vec (location_t, tree, vec<tree, va_gc> *);
-extern tree build_call_expr_loc (location_t, tree, int, ...);
-extern tree build_call_expr (tree, int, ...);
-extern tree mathfn_built_in (tree, enum built_in_function fn);
-extern tree c_strlen (tree, int);
-extern tree build_string_literal (int, const char *);
-extern rtx builtin_memset_read_str (void *, HOST_WIDE_INT, enum machine_mode);
-extern bool is_builtin_fn (tree);
-extern bool get_object_alignment_1 (tree, unsigned int *,
- unsigned HOST_WIDE_INT *);
-extern unsigned int get_object_alignment (tree);
-extern bool get_pointer_alignment_1 (tree, unsigned int *,
- unsigned HOST_WIDE_INT *);
-extern unsigned int get_pointer_alignment (tree);
-extern tree fold_call_stmt (gimple, bool);
-extern tree gimple_fold_builtin_snprintf_chk (gimple, tree, enum built_in_function);
-extern tree make_range (tree, int *, tree *, tree *, bool *);
-extern tree make_range_step (location_t, enum tree_code, tree, tree, tree,
- tree *, tree *, int *, bool *);
-extern tree build_range_check (location_t, tree, tree, int, tree, tree);
-extern bool merge_ranges (int *, tree *, tree *, int, tree, tree, int,
- tree, tree);
-extern void set_builtin_user_assembler_name (tree decl, const char *asmspec);
-extern bool is_simple_builtin (tree);
-extern bool is_inexpensive_builtin (tree);
-
-/* In convert.c */
extern tree strip_float_extensions (tree);
-
-/* In tree.c */
extern int really_constant_p (const_tree);
extern bool decl_address_invariant_p (const_tree);
extern bool decl_address_ip_invariant_p (const_tree);
@@ -4581,7 +4225,6 @@ extern void dump_tree_statistics (void);
extern void recompute_tree_invariant_for_addr_expr (tree);
extern bool needs_to_live_in_memory (const_tree);
extern tree reconstruct_complex_type (tree, tree);
-
extern int real_onep (const_tree);
extern int real_minus_onep (const_tree);
extern void init_ttree (void);
@@ -4593,14 +4236,11 @@ extern tree build_nonshared_range_type (tree, tree, tree);
extern bool subrange_type_for_debug_p (const_tree, tree *, tree *);
extern HOST_WIDE_INT int_cst_value (const_tree);
extern HOST_WIDEST_INT widest_int_cst_value (const_tree);
-
extern tree tree_block (tree);
extern void tree_set_block (tree, tree);
extern location_t *block_nonartificial_location (tree);
extern location_t tree_nonartificial_location (tree);
-
extern tree block_ultimate_origin (const_tree);
-
extern tree get_binfo_at_offset (tree, HOST_WIDE_INT, tree);
extern bool virtual_method_call_p (tree);
extern tree obj_type_ref_class (tree ref);
@@ -4610,163 +4250,8 @@ extern bool type_in_anonymous_namespace_p (tree);
extern bool block_may_fallthru (const_tree);
extern void using_eh_for_cleanups (void);
extern bool using_eh_for_cleanups_p (void);
-
extern const char *get_tree_code_name (enum tree_code);
-
-/* In function.c */
-extern void expand_function_end (void);
-extern void expand_function_start (tree);
-extern void stack_protect_epilogue (void);
-extern void init_dummy_function_start (void);
-extern void expand_dummy_function_end (void);
-extern void allocate_struct_function (tree, bool);
-extern void push_struct_function (tree fndecl);
-extern void init_function_start (tree);
-extern bool use_register_for_decl (const_tree);
-extern void generate_setjmp_warnings (void);
-extern void init_temp_slots (void);
-extern void free_temp_slots (void);
-extern void pop_temp_slots (void);
-extern void push_temp_slots (void);
-extern void preserve_temp_slots (rtx);
-extern int aggregate_value_p (const_tree, const_tree);
-extern void push_function_context (void);
-extern void pop_function_context (void);
-extern gimple_seq gimplify_parameters (void);
-
-/* In print-rtl.c */
-#ifdef BUFSIZ
-extern void print_rtl (FILE *, const_rtx);
-#endif
-
-/* In print-tree.c */
-extern void debug_tree (tree);
-extern void debug_raw (const tree_node &ref);
-extern void debug_raw (const tree_node *ptr);
-extern void debug (const tree_node &ref);
-extern void debug (const tree_node *ptr);
-extern void debug_verbose (const tree_node &ref);
-extern void debug_verbose (const tree_node *ptr);
-extern void debug_head (const tree_node &ref);
-extern void debug_head (const tree_node *ptr);
-extern void debug_body (const tree_node &ref);
-extern void debug_body (const tree_node *ptr);
-extern void debug_vec_tree (vec<tree, va_gc> *);
-extern void debug (vec<tree, va_gc> &ref);
-extern void debug (vec<tree, va_gc> *ptr);
-extern void debug_raw (vec<tree, va_gc> &ref);
-extern void debug_raw (vec<tree, va_gc> *ptr);
-#ifdef BUFSIZ
-extern void dump_addr (FILE*, const char *, const void *);
-extern void print_node (FILE *, const char *, tree, int);
-extern void print_node_brief (FILE *, const char *, const_tree, int);
-extern void indent_to (FILE *, int);
-#endif
-
-/* In tree-inline.c: */
-extern bool debug_find_tree (tree, tree);
-/* This is in tree-inline.c since the routine uses
- data structures from the inliner. */
-extern tree build_duplicate_type (tree);
-
-/* In calls.c */
-extern int flags_from_decl_or_type (const_tree);
-extern int call_expr_flags (const_tree);
extern void set_call_expr_flags (tree, int);
-
-extern int setjmp_call_p (const_tree);
-extern bool gimple_alloca_call_p (const_gimple);
-extern bool alloca_call_p (const_tree);
-extern bool must_pass_in_stack_var_size (enum machine_mode, const_tree);
-extern bool must_pass_in_stack_var_size_or_pad (enum machine_mode, const_tree);
-
-/* In attribs.c. */
-
-extern const struct attribute_spec *lookup_attribute_spec (const_tree);
-extern void init_attributes (void);
-
-/* Process the attributes listed in ATTRIBUTES and install them in *NODE,
- which is either a DECL (including a TYPE_DECL) or a TYPE. If a DECL,
- it should be modified in place; if a TYPE, a copy should be created
- unless ATTR_FLAG_TYPE_IN_PLACE is set in FLAGS. FLAGS gives further
- information, in the form of a bitwise OR of flags in enum attribute_flags
- from tree.h. Depending on these flags, some attributes may be
- returned to be applied at a later stage (for example, to apply
- a decl attribute to the declaration rather than to its type). */
-extern tree decl_attributes (tree *, tree, int);
-
-extern bool cxx11_attribute_p (const_tree);
-
-extern tree get_attribute_name (const_tree);
-
-extern void apply_tm_attr (tree, tree);
-
-/* In stor-layout.c */
-extern void set_min_and_max_values_for_integral_type (tree, int, bool);
-extern void fixup_signed_type (tree);
-extern void internal_reference_types (void);
-extern unsigned int update_alignment_for_field (record_layout_info, tree,
- unsigned int);
-/* varasm.c */
-extern tree tree_output_constant_def (tree);
-extern void make_decl_rtl (tree);
-extern rtx make_decl_rtl_for_debug (tree);
-extern void make_decl_one_only (tree, tree);
-extern int supports_one_only (void);
-extern void resolve_unique_section (tree, int, int);
-extern void mark_referenced (tree);
-extern void mark_decl_referenced (tree);
-extern void notice_global_symbol (tree);
-extern void set_user_assembler_name (tree, const char *);
-extern void process_pending_assemble_externals (void);
-extern bool decl_replaceable_p (tree);
-extern bool decl_binds_to_current_def_p (tree);
-extern enum tls_model decl_default_tls_model (const_tree);
-
-/* Declare DECL to be a weak symbol. */
-extern void declare_weak (tree);
-/* Merge weak status. */
-extern void merge_weak (tree, tree);
-/* Make one symbol an alias for another. */
-extern void assemble_alias (tree, tree);
-
-/* Return nonzero if VALUE is a valid constant-valued expression
- for use in initializing a static variable; one that can be an
- element of a "constant" initializer.
-
- Return null_pointer_node if the value is absolute;
- if it is relocatable, return the variable that determines the relocation.
- We assume that VALUE has been folded as much as possible;
- therefore, we do not need to check for such things as
- arithmetic-combinations of integers. */
-extern tree initializer_constant_valid_p (tree, tree);
-
-/* Return true if VALUE is a valid constant-valued expression
- for use in initializing a static bit-field; one that can be
- an element of a "constant" initializer. */
-extern bool initializer_constant_valid_for_bitfield_p (tree);
-
-/* Whether a constructor CTOR is a valid static constant initializer if all
- its elements are. This used to be internal to initializer_constant_valid_p
- and has been exposed to let other functions like categorize_ctor_elements
- evaluate the property while walking a constructor for other purposes. */
-
-extern bool constructor_static_from_elts_p (const_tree);
-
-/* In stmt.c */
-extern bool parse_output_constraint (const char **, int, int, int,
- bool *, bool *, bool *);
-extern bool parse_input_constraint (const char **, int, int, int, int,
- const char * const *, bool *, bool *);
-extern tree resolve_asm_operand_names (tree, tree, tree, tree);
-#ifdef HARD_CONST
-/* Silly ifdef to avoid having all includers depend on hard-reg-set.h. */
-extern tree tree_overlaps_hard_reg_set (tree, HARD_REG_SET *);
-#endif
-
-
-/* In tree-inline.c */
-
extern tree walk_tree_1 (tree*, walk_tree_fn, void*, struct pointer_set_t*,
walk_tree_lh);
extern tree walk_tree_without_duplicates_1 (tree*, walk_tree_fn, void*,
@@ -4776,16 +4261,7 @@ extern tree walk_tree_without_duplicates_1 (tree*, walk_tree_fn, void*,
#define walk_tree_without_duplicates(a,b,c) \
walk_tree_without_duplicates_1 (a, b, c, NULL)
-/* In emit-rtl.c */
-/* Assign the RTX to declaration. */
-
-extern void set_decl_rtl (tree, rtx);
-extern void set_decl_incoming_rtl (tree, rtx, bool);
-
-/* In gimple.c. */
extern tree get_base_address (tree t);
-
-/* In tree.c. */
extern tree drop_tree_overflow (tree);
extern int tree_map_base_eq (const void *, const void *);
extern unsigned int tree_map_base_hash (const void *);
@@ -4811,33 +4287,6 @@ extern unsigned int tree_decl_map_hash (const void *);
#define tree_vec_map_hash tree_decl_map_hash
#define tree_vec_map_marked_p tree_map_base_marked_p
-/* In tree-object-size.c. */
-extern void init_object_sizes (void);
-extern unsigned HOST_WIDE_INT compute_builtin_object_size (tree, int);
-
-/* In expr.c. */
-
-/* Determine whether the LEN bytes can be moved by using several move
- instructions. Return nonzero if a call to move_by_pieces should
- succeed. */
-extern int can_move_by_pieces (unsigned HOST_WIDE_INT, unsigned int);
-
-extern unsigned HOST_WIDE_INT highest_pow2_factor (const_tree);
-extern tree build_personality_function (const char *);
-
-/* In trans-mem.c. */
-extern tree build_tm_abort_call (location_t, bool);
-extern bool is_tm_safe (const_tree);
-extern bool is_tm_pure (const_tree);
-extern bool is_tm_may_cancel_outer (tree);
-extern bool is_tm_ending_fndecl (tree);
-extern void record_tm_replacement (tree, tree);
-extern void tm_malloc_replacement (tree);
-
-/* In tree-inline.c. */
-
-void init_inline_once (void);
-
/* Initialize the abstract argument list iterator object ITER with the
arguments from CALL_EXPR node EXP. */
static inline void
@@ -5045,5 +4494,70 @@ may_be_aliased (const_tree var)
#endif /* NO_DOLLAR_IN_LABEL */
#endif /* NO_DOT_IN_LABEL */
+/* FIXME - These declarations belong in builtins.h, expr.h and emit-rtl.h,
+ but none of these files are allowed to be included from front ends.
+ They should be split in two. One suitable for the FEs, the other suitable
+ for the BE. */
+
+/* Assign the RTX to declaration. */
+extern void set_decl_rtl (tree, rtx);
+extern bool complete_ctor_at_level_p (const_tree, HOST_WIDE_INT, const_tree);
+
+/* Return a tree representing the upper bound of the array mentioned in
+ EXP, an ARRAY_REF or an ARRAY_RANGE_REF. */
+extern tree array_ref_up_bound (tree);
+
+extern tree build_personality_function (const char *);
+
+/* Given an expression EXP that is a handled_component_p,
+ look for the ultimate containing object, which is returned and specify
+ the access position and size. */
+extern tree get_inner_reference (tree, HOST_WIDE_INT *, HOST_WIDE_INT *,
+ tree *, enum machine_mode *, int *, int *,
+ bool);
+
+/* Return a tree representing the lower bound of the array mentioned in
+ EXP, an ARRAY_REF or an ARRAY_RANGE_REF. */
+extern tree array_ref_low_bound (tree);
+
+/* In builtins.c. */
+
+/* Non-zero if __builtin_constant_p should be folded right away. */
+extern bool force_folding_builtin_constant_p;
+
+extern bool avoid_folding_inline_builtin (tree);
+extern tree fold_call_expr (location_t, tree, bool);
+extern tree fold_builtin_fputs (location_t, tree, tree, bool, bool, tree);
+extern tree fold_builtin_strcpy (location_t, tree, tree, tree, tree);
+extern tree fold_builtin_strncpy (location_t, tree, tree, tree, tree, tree);
+extern tree fold_builtin_memory_chk (location_t, tree, tree, tree, tree, tree, tree, bool,
+ enum built_in_function);
+extern tree fold_builtin_stxcpy_chk (location_t, tree, tree, tree, tree, tree, bool,
+ enum built_in_function);
+extern tree fold_builtin_stxncpy_chk (location_t, tree, tree, tree, tree, tree, bool,
+ enum built_in_function);
+extern bool fold_builtin_next_arg (tree, bool);
+extern enum built_in_function builtin_mathfn_code (const_tree);
+extern tree fold_builtin_call_array (location_t, tree, tree, int, tree *);
+extern tree build_call_expr_loc_array (location_t, tree, int, tree *);
+extern tree build_call_expr_loc_vec (location_t, tree, vec<tree, va_gc> *);
+extern tree build_call_expr_loc (location_t, tree, int, ...);
+extern tree build_call_expr (tree, int, ...);
+extern tree mathfn_built_in (tree, enum built_in_function fn);
+extern tree c_strlen (tree, int);
+extern tree build_string_literal (int, const char *);
+extern rtx builtin_memset_read_str (void *, HOST_WIDE_INT, enum machine_mode);
+extern bool is_builtin_fn (tree);
+extern bool get_object_alignment_1 (tree, unsigned int *,
+ unsigned HOST_WIDE_INT *);
+extern unsigned int get_object_alignment (tree);
+extern bool get_pointer_alignment_1 (tree, unsigned int *,
+ unsigned HOST_WIDE_INT *);
+extern unsigned int get_pointer_alignment (tree);
+extern tree fold_call_stmt (gimple, bool);
+extern tree gimple_fold_builtin_snprintf_chk (gimple, tree, enum built_in_function);
+extern void set_builtin_user_assembler_name (tree decl, const char *asmspec);
+extern bool is_simple_builtin (tree);
+extern bool is_inexpensive_builtin (tree);
#endif /* GCC_TREE_H */
diff --git a/gcc/tsan.c b/gcc/tsan.c
index b8f65af6541..42730f07f84 100644
--- a/gcc/tsan.c
+++ b/gcc/tsan.c
@@ -23,6 +23,7 @@ along with GCC; see the file COPYING3. If not see
#include "system.h"
#include "coretypes.h"
#include "tree.h"
+#include "expr.h"
#include "intl.h"
#include "tm.h"
#include "basic-block.h"
@@ -33,6 +34,7 @@ along with GCC; see the file COPYING3. If not see
#include "gimple-ssa.h"
#include "cgraph.h"
#include "tree-cfg.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "tree-pass.h"
#include "tree-iterator.h"
diff --git a/gcc/ubsan.c b/gcc/ubsan.c
index 62894d9687e..de5dc40d659 100644
--- a/gcc/ubsan.c
+++ b/gcc/ubsan.c
@@ -22,6 +22,8 @@ along with GCC; see the file COPYING3. If not see
#include "system.h"
#include "coretypes.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "stringpool.h"
#include "cgraph.h"
#include "tree-pass.h"
#include "gimple.h"
diff --git a/gcc/value-prof.c b/gcc/value-prof.c
index f21ff00f2cb..2fe12b603f2 100644
--- a/gcc/value-prof.c
+++ b/gcc/value-prof.c
@@ -22,6 +22,8 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "tree-nested.h"
+#include "calls.h"
#include "rtl.h"
#include "expr.h"
#include "hard-reg-set.h"
@@ -40,6 +42,7 @@ 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 "diagnostic.h"
#include "gimple-pretty-print.h"
diff --git a/gcc/var-tracking.c b/gcc/var-tracking.c
index fc3fc93ca5b..a569d468ec3 100644
--- a/gcc/var-tracking.c
+++ b/gcc/var-tracking.c
@@ -91,6 +91,9 @@
#include "tm.h"
#include "rtl.h"
#include "tree.h"
+#include "varasm.h"
+#include "stor-layout.h"
+#include "gimple.h"
#include "tm_p.h"
#include "hard-reg-set.h"
#include "basic-block.h"
diff --git a/gcc/varasm.c b/gcc/varasm.c
index 1fd53f0457f..475d196063c 100644
--- a/gcc/varasm.c
+++ b/gcc/varasm.c
@@ -31,6 +31,10 @@ along with GCC; see the file COPYING3. If not see
#include "tm.h"
#include "rtl.h"
#include "tree.h"
+#include "stor-layout.h"
+#include "stringpool.h"
+#include "gcc-symtab.h"
+#include "varasm.h"
#include "flags.h"
#include "function.h"
#include "expr.h"
diff --git a/gcc/varasm.h b/gcc/varasm.h
new file mode 100644
index 00000000000..d2a01a700ab
--- /dev/null
+++ b/gcc/varasm.h
@@ -0,0 +1,69 @@
+/* Declarations for varasm.h.
+ Copyright (C) 2013 Free Software Foundation, Inc.
+
+This file is part of GCC.
+
+GCC is free software; you can redistribute it and/or modify it under
+the terms of the GNU General Public License as published by the Free
+Software Foundation; either version 3, or (at your option) any later
+version.
+
+GCC is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or
+FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License
+along with GCC; see the file COPYING3. If not see
+<http://www.gnu.org/licenses/>. */
+
+#ifndef GCC_VARASM_H
+#define GCC_VARASM_H
+
+extern tree tree_output_constant_def (tree);
+extern void make_decl_rtl (tree);
+extern rtx make_decl_rtl_for_debug (tree);
+extern void make_decl_one_only (tree, tree);
+extern int supports_one_only (void);
+extern void resolve_unique_section (tree, int, int);
+extern void mark_referenced (tree);
+extern void mark_decl_referenced (tree);
+extern void notice_global_symbol (tree);
+extern void set_user_assembler_name (tree, const char *);
+extern void process_pending_assemble_externals (void);
+extern bool decl_replaceable_p (tree);
+extern bool decl_binds_to_current_def_p (tree);
+extern enum tls_model decl_default_tls_model (const_tree);
+
+/* Declare DECL to be a weak symbol. */
+extern void declare_weak (tree);
+
+/* Merge weak status. */
+extern void merge_weak (tree, tree);
+
+/* Make one symbol an alias for another. */
+extern void assemble_alias (tree, tree);
+
+/* Return nonzero if VALUE is a valid constant-valued expression
+ for use in initializing a static variable; one that can be an
+ element of a "constant" initializer.
+
+ Return null_pointer_node if the value is absolute;
+ if it is relocatable, return the variable that determines the relocation.
+ We assume that VALUE has been folded as much as possible;
+ therefore, we do not need to check for such things as
+ arithmetic-combinations of integers. */
+extern tree initializer_constant_valid_p (tree, tree);
+
+/* Return true if VALUE is a valid constant-valued expression
+ for use in initializing a static bit-field; one that can be
+ an element of a "constant" initializer. */
+extern bool initializer_constant_valid_for_bitfield_p (tree);
+
+/* Whether a constructor CTOR is a valid static constant initializer if all
+ its elements are. This used to be internal to initializer_constant_valid_p
+ and has been exposed to let other functions like categorize_ctor_elements
+ evaluate the property while walking a constructor for other purposes. */
+extern bool constructor_static_from_elts_p (const_tree);
+
+#endif // GCC_VARASM_H
diff --git a/gcc/varpool.c b/gcc/varpool.c
index 4521caf2b10..06b93a30d5f 100644
--- a/gcc/varpool.c
+++ b/gcc/varpool.c
@@ -23,6 +23,7 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "varasm.h"
#include "cgraph.h"
#include "langhooks.h"
#include "diagnostic-core.h"
diff --git a/gcc/vmsdbgout.c b/gcc/vmsdbgout.c
index 9f308a6fdf2..7972dd7a93e 100644
--- a/gcc/vmsdbgout.c
+++ b/gcc/vmsdbgout.c
@@ -26,6 +26,7 @@ along with GCC; see the file COPYING3. If not see
#ifdef VMS_DEBUGGING_INFO
#include "tree.h"
+#include "varasm.h"
#include "version.h"
#include "flags.h"
#include "rtl.h"
diff --git a/gcc/vtable-verify.c b/gcc/vtable-verify.c
index ecf1dc25e84..8d692e62e11 100644
--- a/gcc/vtable-verify.c
+++ b/gcc/vtable-verify.c
@@ -143,6 +143,7 @@ along with GCC; see the file COPYING3. If not see
#include "gimple-ssa.h"
#include "tree-phinodes.h"
#include "ssa-iterators.h"
+#include "stringpool.h"
#include "tree-ssanames.h"
#include "tree-pass.h"
#include "cfgloop.h"
diff --git a/gcc/xcoffout.c b/gcc/xcoffout.c
index 8a9093c10c2..c14f01424f3 100644
--- a/gcc/xcoffout.c
+++ b/gcc/xcoffout.c
@@ -27,6 +27,7 @@ along with GCC; see the file COPYING3. If not see
#include "coretypes.h"
#include "tm.h"
#include "tree.h"
+#include "varasm.h"
#include "rtl.h"
#include "flags.h"
#include "diagnostic-core.h"