public inbox for gcc-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* Flatten tree.h and tree-core.h
@ 2014-12-19  1:19 Michael Collison
  0 siblings, 0 replies; 10+ messages in thread
From: Michael Collison @ 2014-12-19  1:19 UTC (permalink / raw)
  To: gcc- >> GCC Patches

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

This patch flattens tree.h and tree-core.h. This work is part of the GCC 
Re-Architecture effort being led by Andrew MacLeod.

I removed the includes in tree.h and tree-core.h except for the include 
of tree-core.h in tree.h.

I modified genattrtab.c, genautomata.c, genemit.c, gengtype.c, 
gengtype.c, genoptinit.c, genoutput.c,
genpeep.c, genpreds.c, and optc-save-gen-awk to include the the 
necessary include files removed from
tree.h and tree-core.h when generating their respective files.

All other changes include the necessary include files removed from 
tree.h and tree-core.h. Note the patches modifies all the front-ends.

I bootstrapped on x86 with all languages. I also bootstrapped on all 
targets listed in contrib/config-list.mk with c and c++ enabled.

Is this okay for trunk?

2014-12-18  Michael Collison  <michael.collison@linaro.org>

     * genattrtab.c (write_header): Include hash-set.h, machmode.h,
     vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
     tree-core.h, fold-const.h, wide-int.h, and inchash.h when generating
     insn-attrtab.c.
     * genautomata.c (main) : Include hash-set.h, macInclude hash-set.h, 
machmode.h,
     vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
     tree-core.h, fold-const.h, wide-int.h, and inchash.h when generating
     insn-automata.c.
     * genemit.c (main): Include hash-set.h, machmode.h,
     vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
     tree-core.h, fold-const.h, wide-int.h, and inchash.h when generating
     insn-emit.c.
     * gengtype.c (open_base_files): Include hash-set.h, machmode.h,
     vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
     tree-core.h, fold-const.h, wide-int.h, and inchash.h when generating
     gtype-desc.c.
     * genopinit.c (main): Include hash-set.h, machmode.h,
     vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
     tree-core.h, fold-const.h, wide-int.h, and inchash.h when generating
     insn-opinit.c.
     * genoutput.c (output_prologue): Include hash-set.h, machmode.h,
     vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
     tree-core.h, fold-const.h, wide-int.h, and inchash.h when generating
     insn-output.c.
     * genpeep.c (main): Include hash-set.h, machmode.h,
     vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
     tree-core.h, fold-const.h, wide-int.h, and inchash.h when generating
     insn-peep.c.
     * genpreds.c (write_insn_preds_c): Include hash-set.h, machmode.h,
     vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
     tree-core.h, fold-const.h, wide-int.h, and inchash.h when generating
     insn-preds.c.
     * optc-save-gen-awk: Include hash-set.h, machmode.h,
     vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
     tree-core.h, fold-const.h, wide-int.h, and inchash.h when generating
     options-save.c.
     * opth-gen.awk: Change include guard from GCC_C_COMMON_H to 
GCC_C_COMMON_C
     when generating options.h.

2014-12-18  Michael Collison  <michael.collison@linaro.org>

     * ada/gcc-interface/cuintp.c: Include hash-set.h, machmode.h,
     vec.h, double-int.h, input.h, alias.h, symtab.h,
     tree-core.h, fold-const.h, wide-int.h, and inchash.h due to
     flattening of tree.h.
     * ada/gcc-interface/decl.c: ditto.
     * ada/gcc-interface/misc.c: ditto.
     * ada/gcc-interface/targtyps.c: Include hash-set.h, machmode.h,
     vec.h, double-int.h, input.h, alias.h, symtab.h, options.h,
     tree-core.h, fold-const.h, wide-int.h, and inchash.h due to
     flattening of tree.h.
     * ada/gcc-interface/trans.c: Include hash-set.h, machmode.h,
     vec.h, double-int.h, input.h, alias.h, symtab.h, real.h,
     tree-core.h, fold-const.h, wide-int.h, inchash.h due to
     flattening of tree.h.
     * ada/gcc-interface/utils.c: Include hash-set.h, machmode.h,
     vec.h, double-int.h, input.h, alias.h, symtab.h,
     tree-core.h, fold-const.h, wide-int.h, and inchash.h due to
     flattening of tree.h.
     * ada/gcc-interface/utils2.c: ditto.
     * alias.c: Include hash-set.h, machmode.h,
     vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
     tree-core.h, fold-const.h, wide-int.h, and inchash.h due to
     flattening of tree.h.
     * asan.c: ditto.
     * attribs.c: ditto.
     * auto-inc-dec.c: ditto.
     * auto-profile.c: ditto
     * bb-reorder.c: ditto.
     * bt-load.c: Include symtab.h due to flattening of tree.h.
     * builtins.c: Include hash-set.h, machmode.h,
     vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
     tree-core.h, fold-const.h, wide-int.h, and inchash.h due to
     flattening of tree.h.
     * c/c-array-notation.c: ditto.
     * c/c-aux-info.c: ditto.
     * c/c-convert.c: ditto.
     * c/c-decl.c: ditto.
     * c/c-errors.c: ditto.
     * c/c-lang.c: dittoxs.
     * c/c-objc-common.c: ditto.
     * c/c-parser.c: ditto.
     * c/c-typeck.c: Include hash-set.h, machmode.h,
     vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
     tree-core.h, fold-const.h, wide-int.h, inchash.h, real.h and
     fixed-value.h due to flattening of tree.h.
     * calls.c: Include hash-set.h, machmode.h,
     vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
     tree-core.h, fold-const.h, wide-int.h, and inchash.h due to
     flattening of tree.h.
     * ccmp.c: ditto.
     * c-family/array-notation-common.c: ditto.
     * c-family/c-ada-spec.c: ditto.
     * c-family/c-cilkplus.c: ditto.
     * c-family/c-common.c: Include input.h due to flattening of tree.h.
     Define macro GCC_C_COMMON_C.
     * c-family/c-common.h: Flatten tree.h header files into c-common.h.
     * c-family/c-cppbuiltin.c: Include hash-set.h, machmode.h,
     vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
     tree-core.h, fold-const.h, wide-int.h, and inchash.h due to
     flattening of tree.h.
     * c-family/c-dump.c: ditto.
     * c-family/c-format.c: Flatten tree.h header files into c-common.h.
     * c-family/c-cppbuiltin.c: Include hash-set.h, machmode.h,
     vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
     tree-core.h, fold-const.h, wide-int.h, and inchash.h due to
     flattening of tree.h.
     * c-family/c-dump.c: Include hash-set.h, machmode.h,
     vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
     tree-core.h, fold-const.h, wide-int.h, and inchash.h due to
     flattening of tree.h.
     * c-family/c-format.c: Include hash-set.h, machmode.h,
     vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
     tree-core.h, fold-const.h, wide-int.h, inchash.h and real.h due to
     flattening of tree.h.
     * c-family/c-gimplify.c: Include hash-set.h, machmode.h,
     vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
     tree-core.h, fold-const.h, wide-int.h, and inchash.h due to
     flattening of tree.h.
     * c-family/cilk.c: ditto.
     * c-family/c-lex.c: ditto.
     * c-family/c-omp.c: ditto.
     * c-family/c-opts.c: ditto.
     * c-family/c-pch.c: ditto.
     * c-family/c-ppoutput.c: ditto.
     * c-family/c-pragma.c: ditto.
     * c-family/c-pretty-print.c: ditto.
     * c-family/c-semantics.c: ditto.
     * c-family/c-ubsan.c: ditto.
     * c-family/stub-objc.c: ditto.
     * cfgbuild.c: ditto.
     * cfg.c: ditto.
     * cfgcleanup.c: ditto.
     * cfgexpand.c: ditto.
     * cfghooks.c: ditto.
     * cfgloop.c: Include symtab.h, tree-core.h, fold-const.h, and
     inchash.h due to flattening of tree.h.
     * cfgloopmanip.c: ditto.
     * cfgrtl.c:  Include hash-set.h, machmode.h,
     vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
     tree-core.h, fold-const.h, wide-int.h, and inchash.h due to
     flattening of tree.h.
     * cgraphbuild.c: ditto.
     * cgraph.c: ditto.
     * cgraphclones.c: ditto.
     * cgraphunit.c: ditto.
     * cilk-common.c: ditto.
     * combine.c: ditto.
     * combine-stack-adj.c: Include symbol.h due to flattening of tree.h.
     * config/aarch64/aarch64-builtins.c:  Include hash-set.h, machmode.h,
     vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
     tree-core.h, fold-const.h, wide-int.h, and inchash.h due to
     flattening of tree.h.
     * config/aarch64/aarch64.c: ditto.
     * config/alpha/alpha.c: ditto.
     * config/arc/arc.c: ditto.
     * config/arm/aarch-common.c: ditto.
     * config/arm/arm-builtins.c: ditto.
     * config/arm/arm.c: ditto.
     * config/arm/arm-c.c: ditto.
     * config/avr/avr.c: ditto.
     * config/avr/avr-c.c: ditto.
     * config/avr/avr-log.c: ditto.
     * config/bfin/bfin.c: ditto.
     * config/c6x/c6x.c: ditto.
     * config/cr16/cr16.c: ditto.
     * config/cris/cris.c: ditto.
     * config/darwin.c: ditto.
     * config/darwin-c.c: ditto.
     * config/default-c.c: ditto.
     * config/epiphany/epiphany.c: ditto.
     * config/fr30/fr30.c: ditto.
     * config/frv/frv.c: ditto.
     * config/glibc-c.c: ditto.
     * config/h8300/h8300.c: ditto.
     * config/i386/i386.c: ditto.
     * config/i386/i386-c.c: ditto.
     * config/i386/msformat.c: ditto.
     * config/i386/winnt.c: ditto.
     * config/i386/winnt-cxx.c: ditto.
     * config/i386/winnt-stubs.c: ditto.
     * config/ia64/ia64.c: ditto.
     * config/ia64/ia64-c.c: ditto.
     * config/iq2000/iq2000.c: ditto.
     * config/lm32/lm32.c: Include symtab.h, tree-core.h, fold-const.h,
     wide-int.h, and inchash.h due to flattening of tree.h.
     * config/m32c/m32c.c: Include hash-set.h, machmode.h,
     vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
     tree-core.h, fold-const.h, wide-int.h, and inchash.h due to
     flattening of tree.h.
     * config/m32c/m32c-pragma.c: ditto.
     * config/m32c/m32cr.c: ditto.
     * config/m68/m68k.c: ditto.
     * config/mcore/mcore.c: ditto.
     * config/mep/mep.c: ditto.
     * config/mep/mep-pragma.c: ditto.
     * config/microblaze/microblaze.c: ditto.
     * config/microblaze/microblaze-c.c: ditto.
     * config/mips/mips.c: ditto.
     * config/mmix/mmix.c: Include symtab.h, tree-core.h, fold-const.h,
     wide-int.h, and inchash.h due to flattening of tree.h.
     * config/mn10300/mn10300.c: Include hash-set.h, machmode.h,
     vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
     tree-core.h, fold-const.h, wide-int.h, and inchash.h due to
     flattening of tree.h.
     * config/moxie/moxie.c: ditto.
     * config/msp430/msp430.c: ditto.
     * config/msp430/msp430-c.c: ditto.
     * config/nds32/nds32.c: ditto.
     * config/nds32/nds32-cost.c: ditto.
     * config/nds32/nds32-fp-as-gp.c: ditto.
     * config/nds32/nds32-intrinsic.c: ditto.
     * config/nds32/nds32-isr.c: ditto.
     * config/nds32/nds32-md-auxillary.c: ditto.
     * config/nds32/nds32-memory-manipulationx.c: ditto.
     * config/nds32/nds32-pipelines-auxillary.c: ditto.
     * config/nds32/nds32-predicates.c: ditto.
     * config/nios2/nios2.c: ditto.
     * config/nvptx/nvptx.c: ditto.
     * config/pa/pa.c: ditto.
     * config/pdp11/pdp11x.c: Include symtab.h, tree-core.h, fold-const.h,
     wide-int.h, and inchash.h due to flattening of tree.h.
     * config/rl78/rl78.c: Include hash-set.h, machmode.h,
     vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
     tree-core.h, fold-const.h, wide-int.h, and inchash.h due to
     flattening of tree.h.
     * config/rl78/rl78-cx.c: ditto.
     * config/rs6000/rs6000.c: ditto.
     * config/rs6000/rs6000-c.c: ditto.
     * config/rx/rx.c: ditto.
     * config/s390/s390.c: ditto.
     * config/sh/sh.c: ditto.
     * config/sh/sc.c: ditto.
     * config/sh/sh-mem.cc: ditto.
     * config/sh/sh_treg_combine.cc: Include symtab.h due to flattening
     of tree.h.
     * config/sol2.c: Include hash-set.h, machmode.h,
     vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
     tree-core.h, fold-const.h, wide-int.h, and inchash.h due to
     flattening of tree.h.
     * config/sol2-c.c: ditto.
     * config/sol2-cxx.c: ditto.
     * config/sol2-stubs.c: ditto.
     * config/sparc/sparc.c: ditto.
     * config/sparc/sparc-cx.c: ditto.
     * config/spu/spu.c: ditto.
     * config/spu/spu-c.c: ditto
     * config/storym16/stormy16.c: ditto.
     * config/tilegx/tilegx.c: Include symtab.h, tree-core.h, fold-const.h,
     wide-int.h, and inchash.h due to flattening of tree.h.
     * config/tilegx/tilegx-c.c: Include hash-set.h, machmode.h,
     vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
     tree-core.h, fold-const.h, wide-int.h, and inchash.h due to
     flattening of tree.h.
     * config/tilepro/tilepro.c: Include symtab.h, tree-core.h, 
fold-const.h,
     wide-int.h, and inchash.h due to flattening of tree.h.
     * config/tilepro/tilepro-c.c: Include hash-set.h, machmode.h,
     vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
     tree-core.h, fold-const.h, wide-int.h, and inchash.h due to
     flattening of tree.h.
     * config/v850/v850.c: ditto.
     * config/v850/v850-c.c: ditto.
     * config/vax/vax.c: ditto.
     * config/vms/vms.c: ditto.
     * config/vms/vms-c.c: ditto.
     * config/vxworks.c: ditto.
     * config/winnt-c.c: ditto.
     * config/xtensa/xtensa.c: Include symtab.h, tree-core.h, fold-const.h,
     wide-int.h, and inchash.h due to flattening of tree.h.
     * convert.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
     input.h, alias.h, symtab.h, options.h, tree-core.h, fold-const.h,
     wide-int.h, and inchash.h due to flattening of tree.h.
     * coverage.c: ditto.
     * cp/call.c: ditto.
     * cp/class.c: ditto.
     * cp/constexpr.c: ditto.
     * cp/cp-array-notation.c: ditto.
     * cp/cp-gimplify.c: ditto.
     * cp/cp-lang.c: ditto.
     * cp/cp-objcp-common.c: ditto.
     * cp/cvt.c: ditto.
     * cp/decl2.c: ditto.
     * cp/decl.c: ditto.
     * cp/dump.c: ditto.
     * cp/error.c: ditto.
     * cp/except.c: ditto.
     * cp/expr.c: ditto.
     * cp/friend.c: ditto.
     * cp/init.c: ditto.
     * cp/lambda.c: ditto.
     * cp/lex.c: ditto.
     * cp/mangle.c: ditto.
     * cp/name-lookup.c: ditto.
     * cp/optimize.c: ditto.
     * cp/parser.c: ditto.
     * cp/pt.c: ditto.
     * cp/ptree.c: ditto.
     * cp/repo.c: ditto.
     * cp/rtti.c: ditto.
     * cp/search.c: ditto.
     * cp/semantics.c: ditto.
     * cp/tree.c: ditto.
     * cp/typeck2.c: ditto.
     * cp/typeck.c: ditto.
     * cppbuiltin.c: ditto.
     * cprop.c: ditto.
     * cse.c: Add include of symtab.h due to flattening of tree.h.
     * cselib.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
     input.h, alias.h, symtab.h, options.h, tree-core.h, fold-const.h,
     wide-int.h, and inchash.h due to flattening of tree.h.
     * data-streamer.c: ditto.
     * data-streamer-in.c: ditto.
     * data-streamer-out.c: ditto.
     * dbxout.c: ditto.
     * dce.c: ditto.
     * ddg.c: Add include of symtab.h due to flattening of tree.h.
     * debug.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
     input.h, alias.h, symtab.h, options.h, tree-core.h, fold-const.h,
     wide-int.h, and inchash.h due to flattening of tree.h.
     * dfp.c: ditto.
     * df-scan.c: ditto.
     * dojump.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
     input.h, alias.h, symtab.h, options.h, tree-core.h, fold-const.h,
     wide-int.h, inchash.h and real.h due to flattening of tree.h.
     * double-int.c: ditto.
     * dse.c: ditto.
     * dumpfile.c: ditto.
     * dwarf2asm.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
     input.h, alias.h, symtab.h, tree-core.h, fold-const.h,
     wide-int.h, inchash.h and real.h due to flattening of tree.h.
     * dwarf2cfi.c: ditto.
     * dwarf2out.c: ditto.
     * emit-rtl.c: ditto.
     * except.c: ditto.
     * explow.c: ditto.
     * expmed.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
     input.h, alias.h, symtab.h, tree-core.h, fold-const.h,
     wide-int.h, and inchash.h due to flattening of tree.h.
     * expr.c: ditto.
     * final.c: ditto.
     * fixed-value.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
     input.h, alias.h, symtab.h, tree-core.h, fold-const.h,
     wide-int.h, inchash.h and fixed-value.h due to flattening of tree.h.
     * fold-const.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
     input.h, alias.h, symtab.h, tree-core.h, fold-const.h,
     wide-int.h, and inchash.h due to flattening of tree.h.
     * fortran/convert.c: Include hash-set.h, machmode.h, vec.h, 
double-int.h,
     input.h, alias.h, symtab.h, options.h, tree-core.h, fold-const.h,
     wide-int.h, and inchash.h due to flattening of tree.h.
     * fortran/cpp.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
     input.h, alias.h, symtab.h, tree-core.h, fold-const.h,
     wide-int.h, and inchash.h due to flattening of tree.h.
     * fortran/decl.c: ditto.
     * fortran/f95.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
     input.h, alias.h, symtab.h, options.h, tree-core.h, fold-const.h,
     wide-int.h, and inchash.h due to flattening of tree.h.
     * fortran/iresolve.c: ditto.
     * fortran/match.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
     input.h, alias.h, symtab.h, tree-core.h, fold-const.h,
     wide-int.h, and inchash.h due to flattening of tree.h.
     * fortran/module.c: Include hash-set.h, machmode.h, vec.h, 
double-int.h,
     input.h, alias.h, symtab.h, options.h, tree-core.h, fold-const.h,
     wide-int.h, and inchash.h due to flattening of tree.h.
     * fortran/options.c: ditto.
     * fortran/target-memory.c: Include hash-set.h, vec.h,
     double-int.h, input.h, alias.h, symtab.h, tree-core.h, fold-const.h,
     wide-int.h, and inchash.h due to flattening of tree.h.
     * fortran/trans-array.c: Include hash-set.h, machmode.h, vec.h, 
double-int.h,
     input.h, alias.h, symtab.h, options.h, tree-core.h, fold-const.h,
     wide-int.h, and inchash.h due to flattening of tree.h.
     * fortran/trans.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
     input.h, alias.h, symtab.h, options.h, tree-core.h, fold-const.h,
     wide-int.h, and inchash.h due to flattening of tree.h.
     * fortran/trans-common.c: Include hash-set.h, machmode.h, vec.h, 
double-int.h,
     input.h, alias.h, symtab.h, tree-core.h, fold-const.h,
     wide-int.h, and inchash.h due to flattening of tree.h.
     * fortran/trans-const.c: ditto.
     * fortran/trans-decl.c: ditto.
     * fortran/trans-expr.c: Include hash-set.h, machmode.h, vec.h, 
double-int.h,
     input.h, alias.h, symtab.h, options.h, tree-core.h, fold-const.h,
     wide-int.h, and inchash.h due to flattening of tree.h.
     * fortran/trans-intrinsic.c: Include hash-set.h, machmode.h, vec.h, 
double-int.h,
     input.h, alias.h, symtab.h, tree-core.h, fold-const.h,
     wide-int.h, inchash.h and real.h due to flattening of tree.h.
     * fortran/trans-io.c: Include hash-set.h, machmode.h, vec.h, 
double-int.h,
     input.h, alias.h, symtab.h, options.h, tree-core.h, fold-const.h,
     wide-int.h, and inchash.h due to flattening of tree.h.
     * fortran/trans-openmp.c: ditto.
     * fortran/trans-stmt.c: ditto.
     * fortran/trans-types.c: Include hash-set.h, machmode.h, vec.h, 
double-int.h,
     input.h, alias.h, symtab.h, tree-core.h, fold-const.h,
     wide-int.h, inchash.h and real.h due to flattening of tree.h.
     * function.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
     input.h, alias.h, symtab.h, tree-core.h, fold-const.h,
     wide-int.h, and inchash.h due to flattening of tree.h.
     * gcse.c: ditto.
     * generic-match-head.c:  Include hash-set.h, machmode.h, vec.h, 
double-int.h,
     input.h, alias.h, symtab.h, options.h, tree-core.h, fold-const.h,
     wide-int.h, and inchash.h due to flattening of tree.h.
     * ggc-page.c:  Include hash-set.h, machmode.h, vec.h, double-int.h,
     input.h, alias.h, symtab.h, tree-core.h, fold-const.h,
     wide-int.h, and inchash.h due to flattening of tree.h.
     * gimple-builder.c: ditto.
     * gimple.c: ditto.
     * gimple-expr.c: ditto.
     * gimple-fold.c: ditto.
     * gimple-iterator.c: ditto.
     * gimple-low.c: ditto.
     * gimple-match-head.c: ditto.
     * gimple-pretty-print.c: ditto.
     * generic-ssa-isolate-paths.c:  Include hash-set.h, machmode.h, 
vec.h, double-int.h,
     input.h, alias.h, symtab.h, options.h, tree-core.h, fold-const.h,
     wide-int.h, and inchash.h due to flattening of tree.h.
     * gimple-ssa-strength-reduction.c: ditto.
     * gimple-streamer-in.c: ditto.
     * gimple-streamer-out.c: ditto.
     * gimple-walk.c:  Include hash-set.h, machmode.h, vec.h, double-int.h,
     input.h, alias.h, symtab.h, tree-core.h, fold-const.h,
     wide-int.h, and inchash.h due to flattening of tree.h.
     * gimplify.c:  Include hash-set.h, machmode.h, vec.h, double-int.h,
     input.h, alias.h, symtab.h, options.h, tree-core.h, fold-const.h,
     wide-int.h, and inchash.h due to flattening of tree.h.
     * gimplify-me.c: ditto.
     * go/go-gcc.cc: ditto.
     * go/go-lang.c: ditto.
     * go/gdump.c: ditto.
     * graphite-blocking.c: ditto.
     * graphite.c: ditto.
     * graphite-dependencies.c: ditto.
     * graphite-interchange.c: ditto.
     * graphite-isl-ast-to-gimple.c: ditto.
     * graphite-optimize-isl.c: ditto.
     * graphite-poly.c: ditto.
     * graphite-scop-detection.c: ditto.
     * graphite-sese-to-poly.c: ditto.
     * hw-doloop.c: Include symtab.h due to flattening of tree.h.
     * ifcvt.c: ditto.
     * init-regs.c:  Include hash-set.h, machmode.h, vec.h, double-int.h,
     input.h, alias.h, symtab.h, tree-core.h, fold-const.h,
     wide-int.h, and inchash.h due to flattening of tree.h.
     * internal-fc.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
     input.h, alias.h, symtab.h,options.h, tree-core.h, fold-const.h,
     wide-int.h, and inchash.h due to flattening of tree.h.
     * ipa.c: ditto.
     * ipa-chkp.c: ditto.
     * ipa-comdats.c:  Include hash-set.h, machmode.h, vec.h, double-int.h,
     input.h, alias.h, symtab.h, tree-core.h, fold-const.h,
     wide-int.h, and inchash.h due to flattening of tree.h.
     * ipa-cp.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
     input.h, alias.h, symtab.h,options.h, tree-core.h, fold-const.h,
     wide-int.h, and inchash.h due to flattening of tree.h.
     * ipa-devirt.c:  Include hash-set.h, machmode.h, vec.h, double-int.h,
     input.h, alias.h, symtab.h, tree-core.h, fold-const.h,
     wide-int.h, and inchash.h due to flattening of tree.h.
     * ipa-icf.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
     input.h, alias.h, symtab.h,options.h, tree-core.h, fold-const.h,
     wide-int.h, and inchash.h due to flattening of tree.h.
     * ipa-icf-gimple.c: ditto.
     * ipa-inline-analysis.c:  Include hash-set.h, machmode.h, vec.h, 
double-int.h,
     input.h, alias.h, symtab.h, tree-core.h, fold-const.h,
     wide-int.h, and inchash.h due to flattening of tree.h.
     * ipa-inline.c: ditto.
     * ipa-inline-transform.c: ditto.
     * ipa-polymorhpic-call.c: ditto.
     * ipa-profile.c: ditto.
     * ipa-prop.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
     input.h, alias.h, symtab.h, options.h, tree-core.h, fold-const.h,
     wide-int.h, and inchash.h due to flattening of tree.h.
     * ipa-pure-const.c: Include hash-set.h, machmode.h, vec.h, 
double-int.h,
     input.h, alias.h, symtab.h, tree-core.h, fold-const.h,
     wide-int.h, and inchash.h due to flattening of tree.h.
     * ipa-ref.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
     input.h, alias.h, symtab.h, options.h, tree-core.h, fold-const.h,
     wide-int.h, and inchash.h due to flattening of tree.h.
     * ipa-reference.c: ditto.
     * ipa-split.c: ditto.
     * ipa-utils.c: ditto.
     * ipa-visbility.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
     input.h, alias.h, symtab.h, tree-core.h, fold-const.h,
     wide-int.h, and inchash.h due to flattening of tree.h.
     * ira.c: ditto.
     * ira-color.c: Include hash-set.h due to flattening of tree.h.
     * ira-costs.c: ditto.
     * ira-emit.c: ditto.
     * java/boehm.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
     input.h, alias.h, symtab.h, options.h, tree-core.h, fold-const.h,
     wide-int.h, and inchash.h due to flattening of tree.h.
     * java/builtins.c: ditto.
     * java/class.c: ditto.
     * java/constants.c: Include hash-set.h, machmode.h, vec.h, 
double-int.h,
     input.h, alias.h, symtab.h, options.h, tree-core.h, fold-const.h,
     wide-int.h, and inchash.h due to flattening of tree.h.
     * java/decl.c: ditto.
     * java/except.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
     input.h, alias.h, symtab.h, tree-core.h, fold-const.h,
     wide-int.h, and inchash.h due to flattening of tree.h.
     * java/expr.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
     input.h, alias.h, symtab.h, tree-core.h, fold-const.h,
     wide-int.h,inchash.h and real.h due to flattening of tree.h.
     * java/gimplify.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
     input.h, alias.h, symtab.h, options.h, tree-core.h, fold-const.h,
     wide-int.h, and inchash.h due to flattening of tree.h.
     * java/jcf-dump.c: ditto.
     * java/jcf-io.c: ditto.
     * java/jcf-parse.c: ditto.
     * java/jvgenmain.c: ditto.
     * java/lang.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
     input.h, alias.h, symtab.h, tree-core.h, fold-const.h,
     wide-int.h, and inchash.h due to flattening of tree.h.
     * java/mangle.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
     input.h, alias.h, symtab.h, options.h, tree-core.h, fold-const.h,
     wide-int.h, and inchash.h due to flattening of tree.h.
     * java/mangle_name.c: ditto.
     * java/resource.c: ditto.
     * java/typeck.c: ditto.
     * java/verify-glue.c: ditto.
     * java/verify-impl.c: ditto.
     * jump.c: Include symtab.h due to flattening of tree.h.
     * langhooks.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
     input.h, alias.h, symtab.h, tree-core.h, fold-const.h,
     wide-int.h, and inchash.h due to flattening of tree.h.
     * loop-doloop.c: Include symtab.h due to flattening of tree.h.
     * loop-init.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
     input.h, alias.h, symtab.h, tree-core.h, fold-const.h,
     wide-int.h, and inchash.h due to flattening of tree.h.
     * loop-invariant.c: Include symtab.h due to flattening of tree.h.
     * loop-iv.c: ditto.
     * loop-unroll.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
     input.h, alias.h, symtab.h, tree-core.h, fold-const.h,
     wide-int.h, and inchash.h due to flattening of tree.h.
     * lower-subreg.c: ditto.
     * lra-assigns.c: Include symtab.h due to flattening of tree.h.
     * lra.c: Include symtab.h, fold-const.h, wide-int.h and inchash.h
     due to flattening of tree.h.
     * lra-coalesce.c: Include symtab.h due to flattening of tree.h.
     * lra-constraints.c: ditto.
     * lra-eliminations.c: ditto.
     * lra-livesc: ditto.
     * lra-remat.c: ditto.
     * lra-spills.c: ditto.
     * lto/lto.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
     input.h, alias.h, symtab.h, options, tree-core.h, fold-const.h,
     wide-int.h, and inchash.h due to flattening of tree.h.
     * lto/lto-lang.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
     input.h, alias.h, symtab.h, tree-core.h, fold-const.h,
     wide-int.h, and inchash.h due to flattening of tree.h.
     * lto/lto-object.c: Include hash-set.h, machmode.h, vec.h, 
double-int.h,
     input.h, alias.h, symtab.h, options, tree-core.h, fold-const.h,
     wide-int.h, and inchash.h due to flattening of tree.h.
     * lto/lto-partition.c: ditto.
     * lto/lto-symtab.c: ditto.
     * lto-cgraph.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
     input.h, alias.h, symtab.h, tree-core.h, fold-const.h,
     wide-int.h, and inchash.h due to flattening of tree.h.
     * lto-compress.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
     input.h, alias.h, symtab.h, options, tree-core.h, fold-const.h,
     wide-int.h, and inchash.h due to flattening of tree.h.
     * lto-opts.c: ditto.
     * lto-section-in.c: Include hash-set.h, machmode.h, vec.h, 
double-int.h,
     input.h, alias.h, symtab.h, tree-core.h, fold-const.h,
     wide-int.h, and inchash.h due to flattening of tree.h.
     * lto-section-out.c: ditto.
     * lto-streamer.c: ditto.
     * lto-streamer-in.c: ditto.
     * lto-streamer-out.c: ditto.
     * modulo-sched.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
     input.h, alias.h, symtab.h, fold-const.h, wide-int.h, and
     inchash.h due to flattening of tree.h.
     * objc/objc-act.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
     input.h, alias.h, symtab.h, options, tree-core.h, fold-const.h,
     wide-int.h, and inchash.h due to flattening of tree.h.
     * objc/objc-encoding.c: ditto.
     * objc/objc-gnu-runtime-abi-01.c: ditto.
     * objc/objc-lang.c: ditto.
     * objc/objc-map.c: ditto.
     * objc/objc-next-runtime-abi-01.c: ditto.
     * objc/objc-next-runtime-abi-02.c: ditto.
     * objc/objc-runtime-shared-support.c: ditto.
     * objcp/objcp-decl.c: ditto.
     * objcp/objcp-lang.c: ditto.
     * omega.c: ditto.
     * omega-low.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
     input.h, alias.h, symtab.h, fold-const.h, wide-int.h, and
     inchash.h due to flattening of tree.h.
     * optabs.c: ditto.
     * opts-global.c: ditto.
     * passes.c: ditto.
     * plugin.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
     input.h, alias.h, symtab.h, options.h, fold-const.h, wide-int.h, and
     inchash.h due to flattening of tree.h.
     * postreload.c: Include symtab.h due to flattening of tree.h.
     * postreload-gcse.c: Include hash-set.h, machmode.h, vec.h, 
double-int.h,
     input.h, alias.h, symtab.h, fold-const.h, wide-int.h, and
     inchash.h due to flattening of tree.h.
     * predict.c: ditto.
     * print-rtl.c: ditto.
     * print-tree.c: ditto.
     * profile.c: Include symtab.h, tree-core, fold-const.h
     and inchash.h due to flattening of tree.h.
     * real.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
     input.h, alias.h, symtab.h, fold-const.h, wide-int.h, and
     inchash.h due to flattening of tree.h.
     * realmpfr.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
     input.h, alias.h, symtab.h, options.h, fold-const.h, wide-int.h, and
     inchash.h due to flattening of tree.h.
     * recog.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
     input.h, alias.h, symtab.h, fold-const.h, wide-int.h, and
     inchash.h due to flattening of tree.h.
     * ree.c: ditto.
     * reginfo.c: ditto.
     * reg-stack.c: ditto.
     * reload1.c: Include symtab.h, tree-core, fold-const.h, wide-int.h
     and inchash.h due to flattening of tree.h.
     * reload.c: Include symtab.h due to flattening of tree.h.
     * reorg.c: ditto.
     * rtlanal.c: Include symtab.h, tree-core, fold-const.h, wide-int.h
     and inchash.h due to flattening of tree.h.
     * rtl-chkp.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
     input.h, alias.h, symtab.h, fold-const.h, wide-int.h, and
     inchash.h due to flattening of tree.h.
     * rtlhooks.c: Include symtab.h due to flattening of tree.h.
     * sanopt.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
     input.h, alias.h, symtab.h, options.h, fold-const.h, wide-int.h, and
     inchash.h due to flattening of tree.h.
     * sched-deps.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
     input.h, alias.h, symtab.h, options.h, fold-const.h, wide-int.h, and
     inchash.h due to flattening of tree.h.
     * sched-vis.c: ditto.
     * sdbout.c: ditto.
     * sel-sched.c: Include symtab.h, tree-core, fold-const.h, wide-int.h
     and inchash.h due to flattening of tree.h.
     * sel-sched-ir.c: ditto.
     * sese.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
     input.h, alias.h, symtab.h, options.h, fold-const.h, wide-int.h, and
     inchash.h due to flattening of tree.h.
     * shrink-wrap.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
     input.h, alias.h, symtab.h, options.h, fold-const.h, wide-int.h, and
     inchash.h due to flattening of tree.h.
     * simplify-rtx.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
     input.h, alias.h, symtab.h, options.h, fold-const.h, wide-int.h, and
     inchash.h due to flattening of tree.h.
     * stack-ptr-mod.c: ditto.
     * stmt.c: ditto.
     * store-motion.c: ditto.
     * store-layout.c: ditto.
     * stringpool.c: ditto.
     * symtab.c: ditto.
     * target-globals.c: ditto.
     * targhooks.c: ditto.
     * toplev.c: ditto.
     * tracer.c: ditto.
     * trans-mem.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
     input.h, alias.h, symtab.h, options.h, fold-const.h, wide-int.h, and
     inchash.h due to flattening of tree.h.
     * tree-affine.c: ditto.
     * tree-browser.c: ditto.
     * tree.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
     input.h, alias.h, symtab.h, options.h, fold-const.h, wide-int.h, and
     inchash.h due to flattening of tree.h.
     * tree-call-cdce.c: Include symtab.h, alias.h, double-int.h,
     tree-core.h, fold-const.h, wide-int.h, inchash.h and real.h due to
     flattening of tree.h.
     * tree-cfg.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
     input.h, alias.h, symtab.h, fold-const.h, wide-int.h, and
     inchash.h due to flattening of tree.h.
     * tree-cfgcleanup.c: ditto.
     * tree-chkp.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
     input.h, alias.h, symtab.h, options.h, fold-const.h, wide-int.h, and
     inchash.h due to flattening of tree.h.
     * tree-chkp-opt.c: ditto.
     * tree-chrec.c: ditto.
     * tree-chkp-opt.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
     input.h, alias.h, symtab.h, fold-const.h, wide-int.h, inchash.h and
     real.h due to flattening of tree.h.
     * tree-core.h: Flatten header file by removing all #include statements.
     * tree-data-ref.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
     input.h, alias.h, symtab.h, options.h, fold-const.h, wide-int.h, and
     inchash.h due to flattening of tree.h.
     * tree-dfa.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
     input.h, alias.h, symtab.h, fold-const.h, wide-int.h, inchash.h and
     real.h due to flattening of tree.h.
     * tree-diagnostic.c: ditto.
     * tree-dump.c: * tree-dfa.c: Include hash-set.h, machmode.h, vec.h, 
double-int.h,
     input.h, alias.h, symtab.h, fold-const.h, wide-int.h, inchash.h, 
real.h and
     fixed-value.h due to flattening of tree.h.
     * tree-eh.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
     input.h, alias.h, symtab.h, fold-const.h, wide-int.h, inchash.h and
     real.h due to flattening of tree.h.
     * tree-emutls.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
     input.h, alias.h, symtab.h, options.h, fold-const.h, wide-int.h, and
     inchash.h due to flattening of tree.h.
     * tree.h: Flatten header files by removing all includes except 
tree-core.h.
     * tree-if-conv.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
     input.h, alias.h, symtab.h, fold-const.h, wide-int.h, inchash.h, 
real.h and
     fixed-value.h due to flattening of tree.h.
     * tree-inline.c: ditto.
     * tree-into-ssa.c: ditto.
     * tree-iterator.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
     input.h, alias.h, symtab.h, options.h, fold-const.h, wide-int.h, and
     inchash.h due to flattening of tree.h.
     * tree-loop-distribution.c: ditto.
     * tree-nested.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
     input.h, alias.h, symtab.h, fold-const.h, wide-int.h and inchash.h
     due to flattening of tree.h.
     * tree-nrv.c: ditto.
     * tree-object-size.c: ditto.
     * tree-outof-ssa.c: ditto.
     * tree-parloops.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
     input.h, alias.h, symtab.h, options.h, fold-const.h, wide-int.h, and
     inchash.h due to flattening of tree.h.
     * tree-phinodes.c: ditto.
     * tree-predcom.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
     input.h, alias.h, symtab.h, fold-const.h, wide-int.h and inchash.h
     due to flattening of tree.h.
     * tree-pretty-print.c: ditto.
     * tree-profile.c: double-int.h, input.h, alias.h, symtab.h,
     fold-const.h, wide-int.h and inchash.h due to flattening of tree.h.
     * tree-scalar-evolution.c: Include hash-set.h, machmode.h, vec.h,
     double-int.h, input.h, alias.h, symtab.h, options.h, fold-const.h,
     wide-int.h and inchash.h due to flattening of tree.h.
     * tree-sra.c: Include  vec.h, double-int.h,
     input.h, alias.h, symtab.h, fold-const.h, wide-int.h, and
     inchash.h due to flattening of tree.h.
     * tree-ssa-alias.c: Include hash-set.h, machmode.h, vec.h, 
double-int.h,
     input.h, alias.h, symtab.h, fold-const.h, wide-int.h and inchash.h
     due to flattening of tree.h.
     * tree-ssa.c: ditto.
     * tree-ssa-ccp.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
     input.h, alias.h, symtab.h, fold-const.h, wide-int.h, inchash.h
     and real.h due to flattening of tree.h.
     * tree-ssa-coalesce.c: Include hash-set.h, machmode.h, vec.h, 
double-int.h,
     input.h, alias.h, symtab.h, fold-const.h, wide-int.h and inchash.h
     due to flattening of tree.h.
     * tree-ssa-copy.c: ditto.
     * tree-ssa-copyrename.c: ditto.
     * tree-ssa-dce.c: ditto.
     * tree-ssa-dom.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
     input.h, alias.h, symtab.h, fold-const.h, wide-int.h, inchash.h
     and real.h due to flattening of tree.h.
     * tree-ssa-dse.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
     input.h, alias.h, symtab.h, fold-const.h, wide-int.h and inchash.h
     due to flattening of tree.h.
     * tree-ssa-forwprop.c: ditto.
     * tree-ssa-ifcombine.c: ditto.
     * tree-ssa-live.c: ditto.
     * tree-ssa-loop.c: ditto.
     * tree-ssa-loop-ch.c: ditto.
     * tree-ssa-loop-im.c: ditto.
     * tree-ssa-loop-ivcanon.c: ditto.
     * tree-ssa-loop-ivopts.c: ditto.
     * tree-ssa-loop-manip.c: ditto.
     * tree-ssa-loop-niter.c: ditto.
     * tree-ssa-loop-prefetch.c: ditto.
     * tree-ssa-loop-unswitch.c: ditto.
     * tree-ssa-loop-math-opts.c: ditto.
     * tree-ssanames.c: ditto.
     * tree-ssa-operands.c: ditto.
     * tree-ssa-phiopt.c: ditto.
     * tree-ssa-phiprop.c: ditto.
     * tree-ssa-pre.c: ditto.
     * tree-ssa-propagate.c: ditto.
     * tree-ssa-reassoc.c: ditto.
     * tree-ssa-sccvn.c: ditto.
     * tree-ssa-sink.c: ditto.
     * tree-ssa-strlen.c: Include hash-set.h, machmode.h, vec.h,
     double-int.h, input.h, alias.h, symtab.h, options.h, fold-const.h,
     wide-int.h and inchash.h due to flattening of tree.h.
     * tree-ssa-structalias.c: double-int.h, input.h, alias.h, symtab.h,
     fold-const.h, wide-int.h and inchash.h due to flattening of tree.h.
     * tree-ssa-tail-merge.c: Include hash-set.h, machmode.h, vec.h,
     double-int.h, input.h, alias.h, symtab.h, fold-const.h,
     wide-int.h and inchash.h due to flattening of tree.h.
     * tree-ssa-ter.c: ditto.
     * tree-ssa-threadedge.c: ditto.
     * tree-ssa-threadupdate.c: Include hash-set.h, machmode.h, vec.h,
     double-int.h, input.h, alias.h, symtab.h, options.h, fold-const.h,
     wide-int.h and inchash.h due to flattening of tree.h.
     * tree-ssa-uncprop.c: Include hash-set.h, machmode.h, vec.h,
     double-int.h, input.h, alias.h, symtab.h, fold-const.h,
     wide-int.h and inchash.h due to flattening of tree.h.
     * tree-ssa-uninit.c: ditto.
     * tree-stdarg.c: Include vec.h, double-int.h, input.h, alias.h,
     symtab.h, fold-const.h, wide-int.h and inchash.h due to flattening
     of tree.h.
     * tree-streamer.c: Include vec.h, double-int.h, input.h, alias.h,
     symtab.h, options.h, tree-core.h, fold-const.h, wide-int.h and
     inchash.h due to flattening of tree.h.
     * tree-streamer-in.c: Include hash-set.h, machmode.h, vec.h,
     double-int.h, input.h, alias.h, symtab.h, options.h, fold-const.h,
     wide-int.h, inchash.h, real.h and fixed-value.h due to flattening
     of tree.h.
     * tree-streamer-out.c: dittoo.
     * tree-switch-conversion.c: Include hash-set.h, machmode.h, vec.h, 
double-int.h,
     input.h, alias.h, symtab.h, fold-const.h, wide-int.h and inchash.h
     due to flattening of tree.h.
     * tree-tailcall.c: ditto.
     * tree-vect-data-refs.c: ditto.
     * tree-vect-generic.c: Include hash-set.h, machmode.h, vec.h, 
double-int.h,
     input.h, alias.h, symtab.h, options.h, fold-const.h, wide-int.h and 
inchash.h
     due to flattening of tree.h.
     * tree-vect-loop.c: Include hash-set.h, machmode.h, vec.h, 
double-int.h,
     input.h, alias.h, symtab.h, fold-const.h, wide-int.h and inchash.h
     due to flattening of tree.h.
     * tree-vect-loop-manip.c: ditto.
     * tree-vectorizer.c: ditto.
     * tree-vect-patterns.c: ditto.
     * tree-vect-slp.c: ditto.
     * tree-vect-stmts.c: ditto.
     * tree-vrp.c: ditto.
     * tsan.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
     input.h, alias.h, symtab.h, options.h, fold-const.h, wide-int.h and 
inchash.h
     due to flattening of tree.h.
     * ubsan.c: ditto.
     * value-prof.c.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
     input.h, alias.h, symtab.h, fold-const.h, wide-int.h and inchash.h
     due to flattening of tree.h.
     * varasm.c: ditto.
     * varpool.c: ditto.
     * var-tracking.c: ditto.
     * vmsdbgout.c: ditto.
     * vtable-verify.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
     input.h, alias.h, symtab.h, options.h, fold-const.h, wide-int.h and 
inchash.h
     due to flattening of tree.h.
     * wide-int.cc: Include hash-set.h, machmode.h, vec.h, double-int.h,
     input.h, alias.h, symtab.h, fold-const.h, wide-int.h and inchash.h
     due to flattening of tree.h.
     * xcoffout.c: ditto.
     * libcc1/plugin.cc: Include hash-set.h, machmode.h, vec.h, 
double-int.h,
     input.h, alias.h, symtab.h, options.h, fold-const.h, wide-int.h and 
inchash.h
     due to flattening of tree.h.

-- 
Michael Collison
Linaro Toolchain Working Group
michael.collison@linaro.org


[-- Attachment #2: flatten-tree-patch.txt.gz --]
[-- Type: application/gzip, Size: 30972 bytes --]

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

* Re: Flatten tree.h and tree-core.h
  2014-12-19 21:24           ` Andrew MacLeod
@ 2014-12-19 21:27             ` Michael Collison
  0 siblings, 0 replies; 10+ messages in thread
From: Michael Collison @ 2014-12-19 21:27 UTC (permalink / raw)
  To: Andrew MacLeod, Richard Biener
  Cc: gcc Patches, prathamesh.kulkarni, Jeff Law, Prathamesh Kulkarni

Andrew,

Yes it appears those are the three offenders. I like the approach of 
moving them to fold-const.c and exporting from fold-const.h. I will try 
that approach.

On 12/19/2014 02:10 PM, Andrew MacLeod wrote:
> On 12/19/2014 03:46 PM, Michael Collison wrote:
>> The reason I included tree-core.h in all the .c files was the 
>> requirement in tree.h (now flattened to the .c files) for 
>> fold-const.h. In tree.h there are inline functions such as 
>> fold_build_pointer_plus_hwi_loc which reference functions in 
>> fold-const.h. The moment you include fold-const.h you require the 
>> 'enum tree_code' definition from tree-core.h for fold-const.h.
>>
>> How would you suggest I get around this?
>
> Its only the 3 functions right?
> convert_to_ptrofftype_loc(),  fold_build_pointer_plus_loc(), and 
> fold_build_pointer_plus_hwi_loc() ?
>
> And its just because they are lnlines.
>
> The direct approach is to move them to tree.c, then exported via 
> tree.h...  When I look at what they do and where they are called 
> from,  the better solution might be to move the functions to 
> fold-const.c, and export from fold-const.h.   All they are doing are 
> acting as wrappers and calling a fold_* routine...  They are also 
> called from within fold-const.c as well...  Seems like maybe they 
> belong there.  (And move the accompanying #defines that don't require 
> the _loc extention to fold_const.h.)
>
> This will also break the annoying dependency of tree.h needing 
> fold-const.h to compile...
>
> Andrew
>

-- 
Michael Collison
Linaro Toolchain Working Group
michael.collison@linaro.org

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

* Re: Flatten tree.h and tree-core.h
  2014-12-19 21:01         ` Michael Collison
  2014-12-19 21:10           ` Prathamesh Kulkarni
@ 2014-12-19 21:24           ` Andrew MacLeod
  2014-12-19 21:27             ` Michael Collison
  1 sibling, 1 reply; 10+ messages in thread
From: Andrew MacLeod @ 2014-12-19 21:24 UTC (permalink / raw)
  To: Michael Collison, Richard Biener
  Cc: gcc Patches, Jeff Law, Prathamesh Kulkarni

On 12/19/2014 03:46 PM, Michael Collison wrote:
> The reason I included tree-core.h in all the .c files was the 
> requirement in tree.h (now flattened to the .c files) for 
> fold-const.h. In tree.h there are inline functions such as 
> fold_build_pointer_plus_hwi_loc which reference functions in 
> fold-const.h. The moment you include fold-const.h you require the 
> 'enum tree_code' definition from tree-core.h for fold-const.h.
>
> How would you suggest I get around this?

Its only the 3 functions right?
convert_to_ptrofftype_loc(),  fold_build_pointer_plus_loc(), and 
fold_build_pointer_plus_hwi_loc() ?

And its just because they are lnlines.

The direct approach is to move them to tree.c, then exported via 
tree.h...  When I look at what they do and where they are called from,  
the better solution might be to move the functions to fold-const.c, and 
export from fold-const.h.   All they are doing are acting as wrappers 
and calling a fold_* routine...  They are also called from within 
fold-const.c as well...  Seems like maybe they belong there.  (And move 
the accompanying #defines that don't require the _loc extention to 
fold_const.h.)

This will also break the annoying dependency of tree.h needing 
fold-const.h to compile...

Andrew

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

* Re: Flatten tree.h and tree-core.h
  2014-12-19 21:01         ` Michael Collison
@ 2014-12-19 21:10           ` Prathamesh Kulkarni
  2014-12-19 21:24           ` Andrew MacLeod
  1 sibling, 0 replies; 10+ messages in thread
From: Prathamesh Kulkarni @ 2014-12-19 21:10 UTC (permalink / raw)
  To: Michael Collison; +Cc: Andrew MacLeod, Richard Biener, gcc Patches, Jeff Law

On 20 December 2014 at 02:16, Michael Collison
<michael.collison@linaro.org> wrote:
> The reason I included tree-core.h in all the .c files was the requirement in
> tree.h (now flattened to the .c files) for fold-const.h. In tree.h there are
> inline functions such as fold_build_pointer_plus_hwi_loc which reference
> functions in fold-const.h. The moment you include fold-const.h you require
> the 'enum tree_code' definition from tree-core.h for fold-const.h.
>
> How would you suggest I get around this?
Could you put a forward declaration for enum tree_code in fold-const.h:
enum tree_code;
I believe tree and const_tree are in coretypes.h

Thanks,
Prathamesh
>
>
> On 12/19/2014 11:24 AM, Andrew MacLeod wrote:
>>
>> On 12/19/2014 01:12 PM, Richard Biener wrote:
>>>
>>> On December 19, 2014 2:44:00 PM CET, Andrew MacLeod <amacleod@redhat.com>
>>> wrote:
>>>>
>>>> On 12/19/2014 06:20 AM, Richard Biener wrote:
>>>>>
>>>>> On Fri, Dec 19, 2014 at 1:37 AM, Michael Collison
>>>>> <michael.collison@linaro.org>  wrote:
>>>>>>
>>>>>> This patch flattens tree.h and tree-core.h. This work is part of the
>>>>
>>>> GCC
>>>>>>
>>>>>> Re-Architecture effort being led by Andrew MacLeod.
>>>>>>
>>>>>> I removed the includes in tree.h and tree-core.h except for the
>>>>
>>>> include of
>>>>>>
>>>>>> tree-core.h in tree.h.
>>>>>>
>>>>>> I modified genattrtab.c, genautomata.c, genemit.c, gengtype.c,
>>>>
>>>> gengtype.c,
>>>>>>
>>>>>> genoptinit.c, genoutput.c,
>>>>>> genpeep.c, genpreds.c, and optc-save-gen-awk to include the the
>>>>
>>>> necessary
>>>>>>
>>>>>> include files removed from
>>>>>> tree.h and tree-core.h when generating their respective files.
>>>>>>
>>>>>> All other changes include the necessary include files removed from
>>>>
>>>> tree.h
>>>>>>
>>>>>> and tree-core.h. Note the patches modifies all the front-ends.
>>>>>>
>>>>>> I bootstrapped on x86 with all languages. I also bootstrapped on all
>>>>
>>>> targets
>>>>>>
>>>>>> listed in contrib/config-list.mk with c and c++ enabled.
>>>>>>
>>>>>> Is this okay for trunk?
>>>>>
>>>>> No - you need to rework it (substantially?).  Nothing but tree.h (and
>>>>
>>>> gimple.h)
>>>>>
>>>>> may include tree-core.h directly. Instead where you added includes
>>>>
>>>> of
>>>>>
>>>>> tree-core.h you need to include tree.h.  Basically tree-core.h is an
>>>>> implementation
>>>>> detail introduced to hide layer violations where we understand them
>>>>
>>>> (gimple.h).
>>>> Hmm, yeah. tree-core.h is included in tree.h as planned, but then it's
>>>> copy out to all the include locations anyway... maybe you just have to
>>>> remove the #include "tree-core.h"'s?
>>>>
>>>> It also looks to me like the include ordering is still "off". ie:
>>>>
>>>> tree.h:
>>>>
>>>>   #include "tree-core.h"
>>>> -#include "hash-set.h"    <--- 1
>>>> -#include "wide-int.h"    <--- 2
>>>> -#include "inchash.h"    <---3
>>>> -
>>>> -/* 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"    <--- 4
>>>>
>>>> and when the includes are flattened:
>>>>
>>>> --- a/gcc/varasm.c
>>>> +++ b/gcc/varasm.c
>>>> @@ -30,15 +30,22 @@ along with GCC; see the file COPYING3.  If not see
>>>>   #include "coretypes.h"
>>>>   #include "tm.h"
>>>>   #include "rtl.h"
>>>> +#include "hash-set.h"    <--- 1  included earlier by tree-core.h,
>>>> ordering still OK
>>>> +#include "machmode.h"
>>>> +#include "vec.h"
>>>> +#include "double-int.h"
>>>> +#include "input.h"
>>>> +#include "alias.h"
>>>> +#include "symtab.h"
>>>> +#include "tree-core.h"
>>>> +#include "fold-const.h"    <--- 4    included earlier
>>>> +#include "wide-int.h"    <--- 2
>>>> +#include "inchash.h"     <---3
>>>>   #include "tree.h"
>>>>   #include "stor-layout.h"
>>>>
>>>>
>>>> Now it may not matter for these particular includes since I doubt there
>>>>
>>>> are any cross dependencies, but the net result is this will see files
>>>> included in a different order. I raise the point because for some files
>>>>
>>>> going forward it does matter...  tm.h in particular is critical since
>>>> other files do condition compilation on macros defined in that file.
>>>> We
>>>> don't eliminate unnecessary include files any more because we haven't
>>>> done the analysis to know which ones are "important" yet and changing
>>>> their order may change code generation, but not compilation success.
>>>>
>>>> we really need to get that tool going so we can reduce the include
>>>> list... :-)
>>>>
>>>> Maybe there is a small bug in the include replicating tool? Just
>>>> wondering why the ordering is arbitrarily different here.
>>>>
>>>> That said, we wont be able to keep it exact around tree-core.h.   if we
>>>>
>>>> remove the #include "tree-core.h" from varasm.c those 3 includes I
>>>> tagged will be seen *before* any of the code in tree-core.h is seen,
>>>> but
>>>> that case should be OK.  Before we split tree-core.h from tree.h they
>>>> were all included before the contents were seen, so we are in fact just
>>>>
>>>> restoring the previous ordering :-)
>>>>
>>>>> I suppose we should add
>>>>>
>>>>> #ifndef I_MAY_INCLUDE_TREE_CORE_H
>>>>> #error Bad guy!
>>>>> #endif
>>>>>
>>>>> to tree-core.h and define/undef that around the very few includes of
>>>>
>>>> tree-core.h
>>>>>
>>>>> we want to allow.  I see we already include it in more places than
>>>>
>>>> desired.
>>>>>
>>>>> So - can you do a preparatory patch doing that and removing the
>>>>
>>>> tree-core.h
>>>>>
>>>>> include from everything but tree.h (allow it from expr.h until that
>>>>> got flattened)?
>>>>>
>>>>> Andrew, I suppose my recollection of how we architected tree.h and
>>>>
>>>> tree-core.h
>>>>>
>>>>> is correct?
>>>>
>>>> Pretty much.  tree-core.h was simply a split of tree.h to separate the
>>>> structure definitions away from the accessors macros so we could
>>>> provide
>>>> alternative means of getting at the bits.  It was never intended to be
>>>> used directly, although I suppose there are occasions where it could be
>>>>
>>>> useful....  In theory those places that include tree-core.h directly
>>>> now, and don't include tree.h could simply include tree.h.   I guess a
>>>> good question would be why are those files caring about the contents of
>>>>
>>>> tree-core.h but not tree.h... there might be something that could be
>>>> factored out so they don't even need tree-core.h.  (maybe they don't
>>>> now....?! )  using tree.h ought to be fine tho.
>>>>
>>>> gimple.h doesnt need to include tree-core.h either.
>>>
>>> That's because it still exposes interfaces with trees, thus tree.h is
>>> needed anyways.
>>> Your idea was to abstract that away.
>>> My point then was that we should disallow tree.h from files using
>>> gimple.h.
>>> For that to work without actually implementing non-tree data structures
>>> Gimple.h needs to be able to look at tree
>>> Implementation details. Thus tree-core.h.
>>>
>>> At least if that still us your plan..
>>
>>
>> Yes, I mean for the time being gimple.h doesn't need to look at
>> tree-core.h directly.   The day it is, we can add the appropriate check to
>> tree-core.h to allow it... But that is some time away yet.   Until then,
>> tree.h is the only thing that really needs to be looking at tree-core.h...
>>
>> Andrew
>>
>
> --
> Michael Collison
> Linaro Toolchain Working Group
> michael.collison@linaro.org
>

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

* Re: Flatten tree.h and tree-core.h
  2014-12-19 18:32       ` Andrew MacLeod
@ 2014-12-19 21:01         ` Michael Collison
  2014-12-19 21:10           ` Prathamesh Kulkarni
  2014-12-19 21:24           ` Andrew MacLeod
  0 siblings, 2 replies; 10+ messages in thread
From: Michael Collison @ 2014-12-19 21:01 UTC (permalink / raw)
  To: Andrew MacLeod, Richard Biener; +Cc: gcc Patches, Jeff Law, Prathamesh Kulkarni

The reason I included tree-core.h in all the .c files was the 
requirement in tree.h (now flattened to the .c files) for fold-const.h. 
In tree.h there are inline functions such as 
fold_build_pointer_plus_hwi_loc which reference functions in 
fold-const.h. The moment you include fold-const.h you require the 'enum 
tree_code' definition from tree-core.h for fold-const.h.

How would you suggest I get around this?

On 12/19/2014 11:24 AM, Andrew MacLeod wrote:
> On 12/19/2014 01:12 PM, Richard Biener wrote:
>> On December 19, 2014 2:44:00 PM CET, Andrew MacLeod 
>> <amacleod@redhat.com> wrote:
>>> On 12/19/2014 06:20 AM, Richard Biener wrote:
>>>> On Fri, Dec 19, 2014 at 1:37 AM, Michael Collison
>>>> <michael.collison@linaro.org>  wrote:
>>>>> This patch flattens tree.h and tree-core.h. This work is part of the
>>> GCC
>>>>> Re-Architecture effort being led by Andrew MacLeod.
>>>>>
>>>>> I removed the includes in tree.h and tree-core.h except for the
>>> include of
>>>>> tree-core.h in tree.h.
>>>>>
>>>>> I modified genattrtab.c, genautomata.c, genemit.c, gengtype.c,
>>> gengtype.c,
>>>>> genoptinit.c, genoutput.c,
>>>>> genpeep.c, genpreds.c, and optc-save-gen-awk to include the the
>>> necessary
>>>>> include files removed from
>>>>> tree.h and tree-core.h when generating their respective files.
>>>>>
>>>>> All other changes include the necessary include files removed from
>>> tree.h
>>>>> and tree-core.h. Note the patches modifies all the front-ends.
>>>>>
>>>>> I bootstrapped on x86 with all languages. I also bootstrapped on all
>>> targets
>>>>> listed in contrib/config-list.mk with c and c++ enabled.
>>>>>
>>>>> Is this okay for trunk?
>>>> No - you need to rework it (substantially?).  Nothing but tree.h (and
>>> gimple.h)
>>>> may include tree-core.h directly. Instead where you added includes
>>> of
>>>> tree-core.h you need to include tree.h.  Basically tree-core.h is an
>>>> implementation
>>>> detail introduced to hide layer violations where we understand them
>>> (gimple.h).
>>> Hmm, yeah. tree-core.h is included in tree.h as planned, but then it's
>>> copy out to all the include locations anyway... maybe you just have to
>>> remove the #include "tree-core.h"'s?
>>>
>>> It also looks to me like the include ordering is still "off". ie:
>>>
>>> tree.h:
>>>
>>>   #include "tree-core.h"
>>> -#include "hash-set.h"    <--- 1
>>> -#include "wide-int.h"    <--- 2
>>> -#include "inchash.h"    <---3
>>> -
>>> -/* 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"    <--- 4
>>>
>>> and when the includes are flattened:
>>>
>>> --- a/gcc/varasm.c
>>> +++ b/gcc/varasm.c
>>> @@ -30,15 +30,22 @@ along with GCC; see the file COPYING3.  If not see
>>>   #include "coretypes.h"
>>>   #include "tm.h"
>>>   #include "rtl.h"
>>> +#include "hash-set.h"    <--- 1  included earlier by tree-core.h,
>>> ordering still OK
>>> +#include "machmode.h"
>>> +#include "vec.h"
>>> +#include "double-int.h"
>>> +#include "input.h"
>>> +#include "alias.h"
>>> +#include "symtab.h"
>>> +#include "tree-core.h"
>>> +#include "fold-const.h"    <--- 4    included earlier
>>> +#include "wide-int.h"    <--- 2
>>> +#include "inchash.h"     <---3
>>>   #include "tree.h"
>>>   #include "stor-layout.h"
>>>
>>>
>>> Now it may not matter for these particular includes since I doubt there
>>>
>>> are any cross dependencies, but the net result is this will see files
>>> included in a different order. I raise the point because for some files
>>>
>>> going forward it does matter...  tm.h in particular is critical since
>>> other files do condition compilation on macros defined in that file.
>>> We
>>> don't eliminate unnecessary include files any more because we haven't
>>> done the analysis to know which ones are "important" yet and changing
>>> their order may change code generation, but not compilation success.
>>>
>>> we really need to get that tool going so we can reduce the include
>>> list... :-)
>>>
>>> Maybe there is a small bug in the include replicating tool? Just
>>> wondering why the ordering is arbitrarily different here.
>>>
>>> That said, we wont be able to keep it exact around tree-core.h.   if we
>>>
>>> remove the #include "tree-core.h" from varasm.c those 3 includes I
>>> tagged will be seen *before* any of the code in tree-core.h is seen,
>>> but
>>> that case should be OK.  Before we split tree-core.h from tree.h they
>>> were all included before the contents were seen, so we are in fact just
>>>
>>> restoring the previous ordering :-)
>>>
>>>> I suppose we should add
>>>>
>>>> #ifndef I_MAY_INCLUDE_TREE_CORE_H
>>>> #error Bad guy!
>>>> #endif
>>>>
>>>> to tree-core.h and define/undef that around the very few includes of
>>> tree-core.h
>>>> we want to allow.  I see we already include it in more places than
>>> desired.
>>>> So - can you do a preparatory patch doing that and removing the
>>> tree-core.h
>>>> include from everything but tree.h (allow it from expr.h until that
>>>> got flattened)?
>>>>
>>>> Andrew, I suppose my recollection of how we architected tree.h and
>>> tree-core.h
>>>> is correct?
>>> Pretty much.  tree-core.h was simply a split of tree.h to separate the
>>> structure definitions away from the accessors macros so we could
>>> provide
>>> alternative means of getting at the bits.  It was never intended to be
>>> used directly, although I suppose there are occasions where it could be
>>>
>>> useful....  In theory those places that include tree-core.h directly
>>> now, and don't include tree.h could simply include tree.h.   I guess a
>>> good question would be why are those files caring about the contents of
>>>
>>> tree-core.h but not tree.h... there might be something that could be
>>> factored out so they don't even need tree-core.h.  (maybe they don't
>>> now....?! )  using tree.h ought to be fine tho.
>>>
>>> gimple.h doesnt need to include tree-core.h either.
>> That's because it still exposes interfaces with trees, thus tree.h is 
>> needed anyways.
>> Your idea was to abstract that away.
>> My point then was that we should disallow tree.h from files using 
>> gimple.h.
>> For that to work without actually implementing non-tree data structures
>> Gimple.h needs to be able to look at tree
>> Implementation details. Thus tree-core.h.
>>
>> At least if that still us your plan..
>
> Yes, I mean for the time being gimple.h doesn't need to look at 
> tree-core.h directly.   The day it is, we can add the appropriate 
> check to tree-core.h to allow it... But that is some time away yet.   
> Until then, tree.h is the only thing that really needs to be looking 
> at tree-core.h...
>
> Andrew
>

-- 
Michael Collison
Linaro Toolchain Working Group
michael.collison@linaro.org

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

* Re: Flatten tree.h and tree-core.h
  2014-12-19 18:23     ` Richard Biener
@ 2014-12-19 18:32       ` Andrew MacLeod
  2014-12-19 21:01         ` Michael Collison
  0 siblings, 1 reply; 10+ messages in thread
From: Andrew MacLeod @ 2014-12-19 18:32 UTC (permalink / raw)
  To: Richard Biener, Michael Collison
  Cc: gcc Patches, Jeff Law, Prathamesh Kulkarni

On 12/19/2014 01:12 PM, Richard Biener wrote:
> On December 19, 2014 2:44:00 PM CET, Andrew MacLeod <amacleod@redhat.com> wrote:
>> On 12/19/2014 06:20 AM, Richard Biener wrote:
>>> On Fri, Dec 19, 2014 at 1:37 AM, Michael Collison
>>> <michael.collison@linaro.org>  wrote:
>>>> This patch flattens tree.h and tree-core.h. This work is part of the
>> GCC
>>>> Re-Architecture effort being led by Andrew MacLeod.
>>>>
>>>> I removed the includes in tree.h and tree-core.h except for the
>> include of
>>>> tree-core.h in tree.h.
>>>>
>>>> I modified genattrtab.c, genautomata.c, genemit.c, gengtype.c,
>> gengtype.c,
>>>> genoptinit.c, genoutput.c,
>>>> genpeep.c, genpreds.c, and optc-save-gen-awk to include the the
>> necessary
>>>> include files removed from
>>>> tree.h and tree-core.h when generating their respective files.
>>>>
>>>> All other changes include the necessary include files removed from
>> tree.h
>>>> and tree-core.h. Note the patches modifies all the front-ends.
>>>>
>>>> I bootstrapped on x86 with all languages. I also bootstrapped on all
>> targets
>>>> listed in contrib/config-list.mk with c and c++ enabled.
>>>>
>>>> Is this okay for trunk?
>>> No - you need to rework it (substantially?).  Nothing but tree.h (and
>> gimple.h)
>>> may include tree-core.h directly.  Instead where you added includes
>> of
>>> tree-core.h you need to include tree.h.  Basically tree-core.h is an
>>> implementation
>>> detail introduced to hide layer violations where we understand them
>> (gimple.h).
>> Hmm, yeah. tree-core.h is included in tree.h as planned, but then it's
>> copy out to all the include locations anyway... maybe you just have to
>> remove the #include "tree-core.h"'s?
>>
>> It also looks to me like the include ordering is still "off".  ie:
>>
>> tree.h:
>>
>>   #include "tree-core.h"
>> -#include "hash-set.h"    <--- 1
>> -#include "wide-int.h"    <--- 2
>> -#include "inchash.h"    <---3
>> -
>> -/* 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"    <--- 4
>>
>> and when the includes are flattened:
>>
>> --- a/gcc/varasm.c
>> +++ b/gcc/varasm.c
>> @@ -30,15 +30,22 @@ along with GCC; see the file COPYING3.  If not see
>>   #include "coretypes.h"
>>   #include "tm.h"
>>   #include "rtl.h"
>> +#include "hash-set.h"    <--- 1  included earlier by tree-core.h,
>> ordering still OK
>> +#include "machmode.h"
>> +#include "vec.h"
>> +#include "double-int.h"
>> +#include "input.h"
>> +#include "alias.h"
>> +#include "symtab.h"
>> +#include "tree-core.h"
>> +#include "fold-const.h"    <--- 4    included earlier
>> +#include "wide-int.h"    <--- 2
>> +#include "inchash.h"     <---3
>>   #include "tree.h"
>>   #include "stor-layout.h"
>>
>>
>> Now it may not matter for these particular includes since I doubt there
>>
>> are any cross dependencies, but the net result is this will see files
>> included in a different order. I raise the point because for some files
>>
>> going forward it does matter...  tm.h in particular is critical since
>> other files do condition compilation on macros defined in that file.
>> We
>> don't eliminate unnecessary include files any more because we haven't
>> done the analysis to know which ones are "important" yet and changing
>> their order may change code generation, but not compilation success.
>>
>> we really need to get that tool going so we can reduce the include
>> list... :-)
>>
>> Maybe there is a small bug in the include replicating tool?  Just
>> wondering why the ordering is arbitrarily different here.
>>
>> That said, we wont be able to keep it exact around tree-core.h.   if we
>>
>> remove the #include "tree-core.h" from varasm.c those 3 includes I
>> tagged will be seen *before* any of the code in tree-core.h is seen,
>> but
>> that case should be OK.  Before we split tree-core.h from tree.h they
>> were all included before the contents were seen, so we are in fact just
>>
>> restoring the previous ordering :-)
>>
>>> I suppose we should add
>>>
>>> #ifndef I_MAY_INCLUDE_TREE_CORE_H
>>> #error Bad guy!
>>> #endif
>>>
>>> to tree-core.h and define/undef that around the very few includes of
>> tree-core.h
>>> we want to allow.  I see we already include it in more places than
>> desired.
>>> So - can you do a preparatory patch doing that and removing the
>> tree-core.h
>>> include from everything but tree.h (allow it from expr.h until that
>>> got flattened)?
>>>
>>> Andrew, I suppose my recollection of how we architected tree.h and
>> tree-core.h
>>> is correct?
>> Pretty much.  tree-core.h was simply a split of tree.h to separate the
>> structure definitions away from the accessors macros so we could
>> provide
>> alternative means of getting at the bits.  It was never intended to be
>> used directly, although I suppose there are occasions where it could be
>>
>> useful....  In theory those places that include tree-core.h directly
>> now, and don't include tree.h could simply include tree.h.   I guess a
>> good question would be why are those files caring about the contents of
>>
>> tree-core.h but not tree.h... there might be something that could be
>> factored out so they don't even need tree-core.h.  (maybe they don't
>> now....?! )  using tree.h ought to be fine tho.
>>
>> gimple.h doesnt need to include tree-core.h either.
> That's because it still exposes interfaces with trees, thus tree.h is needed anyways.
> Your idea was to abstract that away.
> My point then was that we should disallow tree.h from files using gimple.h.
> For that to work without actually implementing non-tree data structures
> Gimple.h needs to be able to look at tree
> Implementation details. Thus tree-core.h.
>
> At least if that still us your plan..

Yes, I mean for the time being gimple.h doesn't need to look at 
tree-core.h directly.   The day it is, we can add the appropriate check 
to tree-core.h to allow it... But that is some time away yet.   Until 
then, tree.h is the only thing that really needs to be looking at 
tree-core.h...

Andrew

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

* Re: Flatten tree.h and tree-core.h
  2014-12-19 13:51   ` Andrew MacLeod
  2014-12-19 15:06     ` Andrew MacLeod
@ 2014-12-19 18:23     ` Richard Biener
  2014-12-19 18:32       ` Andrew MacLeod
  1 sibling, 1 reply; 10+ messages in thread
From: Richard Biener @ 2014-12-19 18:23 UTC (permalink / raw)
  To: Andrew MacLeod, Michael Collison
  Cc: gcc Patches, Jeff Law, Prathamesh Kulkarni

On December 19, 2014 2:44:00 PM CET, Andrew MacLeod <amacleod@redhat.com> wrote:
>On 12/19/2014 06:20 AM, Richard Biener wrote:
>> On Fri, Dec 19, 2014 at 1:37 AM, Michael Collison
>> <michael.collison@linaro.org>  wrote:
>>> This patch flattens tree.h and tree-core.h. This work is part of the
>GCC
>>> Re-Architecture effort being led by Andrew MacLeod.
>>>
>>> I removed the includes in tree.h and tree-core.h except for the
>include of
>>> tree-core.h in tree.h.
>>>
>>> I modified genattrtab.c, genautomata.c, genemit.c, gengtype.c,
>gengtype.c,
>>> genoptinit.c, genoutput.c,
>>> genpeep.c, genpreds.c, and optc-save-gen-awk to include the the
>necessary
>>> include files removed from
>>> tree.h and tree-core.h when generating their respective files.
>>>
>>> All other changes include the necessary include files removed from
>tree.h
>>> and tree-core.h. Note the patches modifies all the front-ends.
>>>
>>> I bootstrapped on x86 with all languages. I also bootstrapped on all
>targets
>>> listed in contrib/config-list.mk with c and c++ enabled.
>>>
>>> Is this okay for trunk?
>> No - you need to rework it (substantially?).  Nothing but tree.h (and
>gimple.h)
>> may include tree-core.h directly.  Instead where you added includes
>of
>> tree-core.h you need to include tree.h.  Basically tree-core.h is an
>> implementation
>> detail introduced to hide layer violations where we understand them
>(gimple.h).
>Hmm, yeah. tree-core.h is included in tree.h as planned, but then it's 
>copy out to all the include locations anyway... maybe you just have to 
>remove the #include "tree-core.h"'s?
>
>It also looks to me like the include ordering is still "off".  ie:
>
>tree.h:
>
>  #include "tree-core.h"
>-#include "hash-set.h"    <--- 1
>-#include "wide-int.h"    <--- 2
>-#include "inchash.h"    <---3
>-
>-/* 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"    <--- 4
>
>and when the includes are flattened:
>
>--- a/gcc/varasm.c
>+++ b/gcc/varasm.c
>@@ -30,15 +30,22 @@ along with GCC; see the file COPYING3.  If not see
>  #include "coretypes.h"
>  #include "tm.h"
>  #include "rtl.h"
>+#include "hash-set.h"    <--- 1  included earlier by tree-core.h, 
>ordering still OK
>+#include "machmode.h"
>+#include "vec.h"
>+#include "double-int.h"
>+#include "input.h"
>+#include "alias.h"
>+#include "symtab.h"
>+#include "tree-core.h"
>+#include "fold-const.h"    <--- 4    included earlier
>+#include "wide-int.h"    <--- 2
>+#include "inchash.h"     <---3
>  #include "tree.h"
>  #include "stor-layout.h"
>
>
>Now it may not matter for these particular includes since I doubt there
>
>are any cross dependencies, but the net result is this will see files 
>included in a different order. I raise the point because for some files
>
>going forward it does matter...  tm.h in particular is critical since 
>other files do condition compilation on macros defined in that file. 
>We 
>don't eliminate unnecessary include files any more because we haven't 
>done the analysis to know which ones are "important" yet and changing 
>their order may change code generation, but not compilation success.   
>
>we really need to get that tool going so we can reduce the include 
>list... :-)
>
>Maybe there is a small bug in the include replicating tool?  Just 
>wondering why the ordering is arbitrarily different here.
>
>That said, we wont be able to keep it exact around tree-core.h.   if we
>
>remove the #include "tree-core.h" from varasm.c those 3 includes I 
>tagged will be seen *before* any of the code in tree-core.h is seen,
>but 
>that case should be OK.  Before we split tree-core.h from tree.h they 
>were all included before the contents were seen, so we are in fact just
>
>restoring the previous ordering :-)
>
>> I suppose we should add
>>
>> #ifndef I_MAY_INCLUDE_TREE_CORE_H
>> #error Bad guy!
>> #endif
>>
>> to tree-core.h and define/undef that around the very few includes of
>tree-core.h
>> we want to allow.  I see we already include it in more places than
>desired.
>>
>> So - can you do a preparatory patch doing that and removing the
>tree-core.h
>> include from everything but tree.h (allow it from expr.h until that
>> got flattened)?
>>
>> Andrew, I suppose my recollection of how we architected tree.h and
>tree-core.h
>> is correct?
>Pretty much.  tree-core.h was simply a split of tree.h to separate the 
>structure definitions away from the accessors macros so we could
>provide 
>alternative means of getting at the bits.  It was never intended to be 
>used directly, although I suppose there are occasions where it could be
>
>useful....  In theory those places that include tree-core.h directly 
>now, and don't include tree.h could simply include tree.h.   I guess a 
>good question would be why are those files caring about the contents of
>
>tree-core.h but not tree.h... there might be something that could be 
>factored out so they don't even need tree-core.h.  (maybe they don't 
>now....?! )  using tree.h ought to be fine tho.
>
>gimple.h doesnt need to include tree-core.h either. 

That's because it still exposes interfaces with trees, thus tree.h is needed anyways.
Your idea was to abstract that away.
My point then was that we should disallow tree.h from files using gimple.h.
For that to work without actually implementing non-tree data structures
Gimple.h needs to be able to look at tree
Implementation details. Thus tree-core.h.

At least if that still us your plan..

Richard.

 At the moment, no 
>one except tree.h should have to.   maybe we just clamp on that?
>#ifndef GCC_TREE_H
>#error tree-core.h should only be included from tree.h
>#endif
>
>That doesn't actually prevent someone from including it, but if it is 
>included, it would have to be included after tree.h, making it a no-op 
>anyway.  we ought to be able to police ourselves for those.
>
>If we allow it in a few other places temporarily like expr.h until 
>flattened, just code that into the #ifndef.. ie
>#if  !defined GCC_TREE_H && !defined GCC_EXPR_H
>and remove the clause when flattening happens.
>
>Hows that seem? It just leaves all the onus in tree-core.h instead of 
>pushing it out to the place(s) that use it.
>
>Andrew


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

* Re: Flatten tree.h and tree-core.h
  2014-12-19 13:51   ` Andrew MacLeod
@ 2014-12-19 15:06     ` Andrew MacLeod
  2014-12-19 18:23     ` Richard Biener
  1 sibling, 0 replies; 10+ messages in thread
From: Andrew MacLeod @ 2014-12-19 15:06 UTC (permalink / raw)
  To: Richard Biener, Michael Collison
  Cc: gcc Patches, Jeff Law, Prathamesh Kulkarni

On 12/19/2014 08:44 AM, Andrew MacLeod wrote:
> On 12/19/2014 06:20 AM, Richard Biener wrote:
>> On Fri, Dec 19, 2014 at 1:37 AM, Michael Collison
>> <michael.collison@linaro.org>  wrote:
>>> This patch flattens tree.h and tree-core.h. This work is part of the 
>>> GCC
>>> Re-Architecture effort being led by Andrew MacLeod.
>>>
>>> I removed the includes in tree.h and tree-core.h except for the 
>>> include of
>>> tree-core.h in tree.h.
>>>
>>> I modified genattrtab.c, genautomata.c, genemit.c, gengtype.c, 
>>> gengtype.c,
>>> genoptinit.c, genoutput.c,
>>> genpeep.c, genpreds.c, and optc-save-gen-awk to include the the 
>>> necessary
>>> include files removed from
>>> tree.h and tree-core.h when generating their respective files.
>>>
>>> All other changes include the necessary include files removed from 
>>> tree.h
>>> and tree-core.h. Note the patches modifies all the front-ends.
>>>
>>> I bootstrapped on x86 with all languages. I also bootstrapped on all 
>>> targets
>>> listed in contrib/config-list.mk with c and c++ enabled.
>>>
>>> Is this okay for trunk?
>> No - you need to rework it (substantially?).  Nothing but tree.h (and 
>> gimple.h)
>> may include tree-core.h directly.  Instead where you added includes of
>> tree-core.h you need to include tree.h.  Basically tree-core.h is an
>> implementation
>> detail introduced to hide layer violations where we understand them 
>> (gimple.h).

I also meant to mention that I've been trying to make flattening 
plugin-neutral these days too. so when a file is flattened, replicate 
any includes that are removed to gcc-plugin.h as well.. if possible.  
We're truning it into a giant accumulator that a plugin can use across 
releases to shield them from include restructuring as much as possible.

Anyway, it looks like tree-core.h provided a few that aren't currently 
in gcc-plugin.h:

#include "statistics.h"
#include "double-int.h"
#include "real.h"
#include "fixed-value.h"
#include "alias.h"
#include "flags.h"
#include "symtab.h"

and tree.h provided:

#include "wide-int.h"
#include "inchash.h"
#include "fold-const.h"

Maybe add those to gcc-plugin.h and make sure it compiles OK?

That way any plugin that use to include tree.h will still compile 
without having to figure out what include files are missing again. I'm a 
bit surprised the plugin testcases worked, presumably some of the 
includes weren't critical to parsing  tree.h or were included elsewhere.

Thanks
Andrew

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

* Re: Flatten tree.h and tree-core.h
  2014-12-19 11:26 ` Richard Biener
@ 2014-12-19 13:51   ` Andrew MacLeod
  2014-12-19 15:06     ` Andrew MacLeod
  2014-12-19 18:23     ` Richard Biener
  0 siblings, 2 replies; 10+ messages in thread
From: Andrew MacLeod @ 2014-12-19 13:51 UTC (permalink / raw)
  To: Richard Biener, Michael Collison
  Cc: gcc Patches, Jeff Law, Prathamesh Kulkarni

On 12/19/2014 06:20 AM, Richard Biener wrote:
> On Fri, Dec 19, 2014 at 1:37 AM, Michael Collison
> <michael.collison@linaro.org>  wrote:
>> This patch flattens tree.h and tree-core.h. This work is part of the GCC
>> Re-Architecture effort being led by Andrew MacLeod.
>>
>> I removed the includes in tree.h and tree-core.h except for the include of
>> tree-core.h in tree.h.
>>
>> I modified genattrtab.c, genautomata.c, genemit.c, gengtype.c, gengtype.c,
>> genoptinit.c, genoutput.c,
>> genpeep.c, genpreds.c, and optc-save-gen-awk to include the the necessary
>> include files removed from
>> tree.h and tree-core.h when generating their respective files.
>>
>> All other changes include the necessary include files removed from tree.h
>> and tree-core.h. Note the patches modifies all the front-ends.
>>
>> I bootstrapped on x86 with all languages. I also bootstrapped on all targets
>> listed in contrib/config-list.mk with c and c++ enabled.
>>
>> Is this okay for trunk?
> No - you need to rework it (substantially?).  Nothing but tree.h (and gimple.h)
> may include tree-core.h directly.  Instead where you added includes of
> tree-core.h you need to include tree.h.  Basically tree-core.h is an
> implementation
> detail introduced to hide layer violations where we understand them (gimple.h).
Hmm, yeah. tree-core.h is included in tree.h as planned, but then it's 
copy out to all the include locations anyway... maybe you just have to 
remove the #include "tree-core.h"'s?

It also looks to me like the include ordering is still "off".  ie:

tree.h:

  #include "tree-core.h"
-#include "hash-set.h"    <--- 1
-#include "wide-int.h"    <--- 2
-#include "inchash.h"    <---3
-
-/* 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"    <--- 4

and when the includes are flattened:

--- a/gcc/varasm.c
+++ b/gcc/varasm.c
@@ -30,15 +30,22 @@ along with GCC; see the file COPYING3.  If not see
  #include "coretypes.h"
  #include "tm.h"
  #include "rtl.h"
+#include "hash-set.h"    <--- 1  included earlier by tree-core.h, 
ordering still OK
+#include "machmode.h"
+#include "vec.h"
+#include "double-int.h"
+#include "input.h"
+#include "alias.h"
+#include "symtab.h"
+#include "tree-core.h"
+#include "fold-const.h"    <--- 4    included earlier
+#include "wide-int.h"    <--- 2
+#include "inchash.h"     <---3
  #include "tree.h"
  #include "stor-layout.h"


Now it may not matter for these particular includes since I doubt there 
are any cross dependencies, but the net result is this will see files 
included in a different order. I raise the point because for some files 
going forward it does matter...  tm.h in particular is critical since 
other files do condition compilation on macros defined in that file.  We 
don't eliminate unnecessary include files any more because we haven't 
done the analysis to know which ones are "important" yet and changing 
their order may change code generation, but not compilation success.    
we really need to get that tool going so we can reduce the include 
list... :-)

Maybe there is a small bug in the include replicating tool?  Just 
wondering why the ordering is arbitrarily different here.

That said, we wont be able to keep it exact around tree-core.h.   if we 
remove the #include "tree-core.h" from varasm.c those 3 includes I 
tagged will be seen *before* any of the code in tree-core.h is seen, but 
that case should be OK.  Before we split tree-core.h from tree.h they 
were all included before the contents were seen, so we are in fact just 
restoring the previous ordering :-)

> I suppose we should add
>
> #ifndef I_MAY_INCLUDE_TREE_CORE_H
> #error Bad guy!
> #endif
>
> to tree-core.h and define/undef that around the very few includes of tree-core.h
> we want to allow.  I see we already include it in more places than desired.
>
> So - can you do a preparatory patch doing that and removing the tree-core.h
> include from everything but tree.h (allow it from expr.h until that
> got flattened)?
>
> Andrew, I suppose my recollection of how we architected tree.h and tree-core.h
> is correct?
Pretty much.  tree-core.h was simply a split of tree.h to separate the 
structure definitions away from the accessors macros so we could provide 
alternative means of getting at the bits.  It was never intended to be 
used directly, although I suppose there are occasions where it could be 
useful....  In theory those places that include tree-core.h directly 
now, and don't include tree.h could simply include tree.h.   I guess a 
good question would be why are those files caring about the contents of 
tree-core.h but not tree.h... there might be something that could be 
factored out so they don't even need tree-core.h.  (maybe they don't 
now....?! )  using tree.h ought to be fine tho.

gimple.h doesnt need to include tree-core.h either.  At the moment, no 
one except tree.h should have to.   maybe we just clamp on that?
#ifndef GCC_TREE_H
#error tree-core.h should only be included from tree.h
#endif

That doesn't actually prevent someone from including it, but if it is 
included, it would have to be included after tree.h, making it a no-op 
anyway.  we ought to be able to police ourselves for those.

If we allow it in a few other places temporarily like expr.h until 
flattened, just code that into the #ifndef.. ie
#if  !defined GCC_TREE_H && !defined GCC_EXPR_H
and remove the clause when flattening happens.

Hows that seem? It just leaves all the onus in tree-core.h instead of 
pushing it out to the place(s) that use it.

Andrew

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

* Re: Flatten tree.h and tree-core.h
       [not found] <54937330.5040602@linaro.org>
@ 2014-12-19 11:26 ` Richard Biener
  2014-12-19 13:51   ` Andrew MacLeod
  0 siblings, 1 reply; 10+ messages in thread
From: Richard Biener @ 2014-12-19 11:26 UTC (permalink / raw)
  To: Michael Collison
  Cc: gcc Patches, Andrew MacLeod, Jeff Law, Prathamesh Kulkarni

On Fri, Dec 19, 2014 at 1:37 AM, Michael Collison
<michael.collison@linaro.org> wrote:
> This patch flattens tree.h and tree-core.h. This work is part of the GCC
> Re-Architecture effort being led by Andrew MacLeod.
>
> I removed the includes in tree.h and tree-core.h except for the include of
> tree-core.h in tree.h.
>
> I modified genattrtab.c, genautomata.c, genemit.c, gengtype.c, gengtype.c,
> genoptinit.c, genoutput.c,
> genpeep.c, genpreds.c, and optc-save-gen-awk to include the the necessary
> include files removed from
> tree.h and tree-core.h when generating their respective files.
>
> All other changes include the necessary include files removed from tree.h
> and tree-core.h. Note the patches modifies all the front-ends.
>
> I bootstrapped on x86 with all languages. I also bootstrapped on all targets
> listed in contrib/config-list.mk with c and c++ enabled.
>
> Is this okay for trunk?

No - you need to rework it (substantially?).  Nothing but tree.h (and gimple.h)
may include tree-core.h directly.  Instead where you added includes of
tree-core.h you need to include tree.h.  Basically tree-core.h is an
implementation
detail introduced to hide layer violations where we understand them (gimple.h).

I suppose we should add

#ifndef I_MAY_INCLUDE_TREE_CORE_H
#error Bad guy!
#endif

to tree-core.h and define/undef that around the very few includes of tree-core.h
we want to allow.  I see we already include it in more places than desired.

So - can you do a preparatory patch doing that and removing the tree-core.h
include from everything but tree.h (allow it from expr.h until that
got flattened)?

Andrew, I suppose my recollection of how we architected tree.h and tree-core.h
is correct?

Thanks,
Richard.

> 2014-12-18  Michael Collison  <michael.collison@linaro.org>
>
>     * genattrtab.c (write_header): Include hash-set.h, machmode.h,
>     vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
>     tree-core.h, fold-const.h, wide-int.h, and inchash.h when generating
>     insn-attrtab.c.
>     * genautomata.c (main) : Include hash-set.h, macInclude hash-set.h,
> machmode.h,
>     vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
>     tree-core.h, fold-const.h, wide-int.h, and inchash.h when generating
>     insn-automata.c.
>     * genemit.c (main): Include hash-set.h, machmode.h,
>     vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
>     tree-core.h, fold-const.h, wide-int.h, and inchash.h when generating
>     insn-emit.c.
>     * gengtype.c (open_base_files): Include hash-set.h, machmode.h,
>     vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
>     tree-core.h, fold-const.h, wide-int.h, and inchash.h when generating
>     gtype-desc.c.
>     * genopinit.c (main): Include hash-set.h, machmode.h,
>     vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
>     tree-core.h, fold-const.h, wide-int.h, and inchash.h when generating
>     insn-opinit.c.
>     * genoutput.c (output_prologue): Include hash-set.h, machmode.h,
>     vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
>     tree-core.h, fold-const.h, wide-int.h, and inchash.h when generating
>     insn-output.c.
>     * genpeep.c (main): Include hash-set.h, machmode.h,
>     vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
>     tree-core.h, fold-const.h, wide-int.h, and inchash.h when generating
>     insn-peep.c.
>     * genpreds.c (write_insn_preds_c): Include hash-set.h, machmode.h,
>     vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
>     tree-core.h, fold-const.h, wide-int.h, and inchash.h when generating
>     insn-preds.c.
>     * optc-save-gen-awk: Include hash-set.h, machmode.h,
>     vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
>     tree-core.h, fold-const.h, wide-int.h, and inchash.h when generating
>     options-save.c.
>     * opth-gen.awk: Change include guard from GCC_C_COMMON_H to
> GCC_C_COMMON_C
>     when generating options.h.
>
> 2014-12-18  Michael Collison  <michael.collison@linaro.org>
>
>     * ada/gcc-interface/cuintp.c: Include hash-set.h, machmode.h,
>     vec.h, double-int.h, input.h, alias.h, symtab.h,
>     tree-core.h, fold-const.h, wide-int.h, and inchash.h due to
>     flattening of tree.h.
>     * ada/gcc-interface/decl.c: ditto.
>     * ada/gcc-interface/misc.c: ditto.
>     * ada/gcc-interface/targtyps.c: Include hash-set.h, machmode.h,
>     vec.h, double-int.h, input.h, alias.h, symtab.h, options.h,
>     tree-core.h, fold-const.h, wide-int.h, and inchash.h due to
>     flattening of tree.h.
>     * ada/gcc-interface/trans.c: Include hash-set.h, machmode.h,
>     vec.h, double-int.h, input.h, alias.h, symtab.h, real.h,
>     tree-core.h, fold-const.h, wide-int.h, inchash.h due to
>     flattening of tree.h.
>     * ada/gcc-interface/utils.c: Include hash-set.h, machmode.h,
>     vec.h, double-int.h, input.h, alias.h, symtab.h,
>     tree-core.h, fold-const.h, wide-int.h, and inchash.h due to
>     flattening of tree.h.
>     * ada/gcc-interface/utils2.c: ditto.
>     * alias.c: Include hash-set.h, machmode.h,
>     vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
>     tree-core.h, fold-const.h, wide-int.h, and inchash.h due to
>     flattening of tree.h.
>     * asan.c: ditto.
>     * attribs.c: ditto.
>     * auto-inc-dec.c: ditto.
>     * auto-profile.c: ditto
>     * bb-reorder.c: ditto.
>     * bt-load.c: Include symtab.h due to flattening of tree.h.
>     * builtins.c: Include hash-set.h, machmode.h,
>     vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
>     tree-core.h, fold-const.h, wide-int.h, and inchash.h due to
>     flattening of tree.h.
>     * c/c-array-notation.c: ditto.
>     * c/c-aux-info.c: ditto.
>     * c/c-convert.c: ditto.
>     * c/c-decl.c: ditto.
>     * c/c-errors.c: ditto.
>     * c/c-lang.c: dittoxs.
>     * c/c-objc-common.c: ditto.
>     * c/c-parser.c: ditto.
>     * c/c-typeck.c: Include hash-set.h, machmode.h,
>     vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
>     tree-core.h, fold-const.h, wide-int.h, inchash.h, real.h and
>     fixed-value.h due to flattening of tree.h.
>     * calls.c: Include hash-set.h, machmode.h,
>     vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
>     tree-core.h, fold-const.h, wide-int.h, and inchash.h due to
>     flattening of tree.h.
>     * ccmp.c: ditto.
>     * c-family/array-notation-common.c: ditto.
>     * c-family/c-ada-spec.c: ditto.
>     * c-family/c-cilkplus.c: ditto.
>     * c-family/c-common.c: Include input.h due to flattening of tree.h.
>     Define macro GCC_C_COMMON_C.
>     * c-family/c-common.h: Flatten tree.h header files into c-common.h.
>     * c-family/c-cppbuiltin.c: Include hash-set.h, machmode.h,
>     vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
>     tree-core.h, fold-const.h, wide-int.h, and inchash.h due to
>     flattening of tree.h.
>     * c-family/c-dump.c: ditto.
>     * c-family/c-format.c: Flatten tree.h header files into c-common.h.
>     * c-family/c-cppbuiltin.c: Include hash-set.h, machmode.h,
>     vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
>     tree-core.h, fold-const.h, wide-int.h, and inchash.h due to
>     flattening of tree.h.
>     * c-family/c-dump.c: Include hash-set.h, machmode.h,
>     vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
>     tree-core.h, fold-const.h, wide-int.h, and inchash.h due to
>     flattening of tree.h.
>     * c-family/c-format.c: Include hash-set.h, machmode.h,
>     vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
>     tree-core.h, fold-const.h, wide-int.h, inchash.h and real.h due to
>     flattening of tree.h.
>     * c-family/c-gimplify.c: Include hash-set.h, machmode.h,
>     vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
>     tree-core.h, fold-const.h, wide-int.h, and inchash.h due to
>     flattening of tree.h.
>     * c-family/cilk.c: ditto.
>     * c-family/c-lex.c: ditto.
>     * c-family/c-omp.c: ditto.
>     * c-family/c-opts.c: ditto.
>     * c-family/c-pch.c: ditto.
>     * c-family/c-ppoutput.c: ditto.
>     * c-family/c-pragma.c: ditto.
>     * c-family/c-pretty-print.c: ditto.
>     * c-family/c-semantics.c: ditto.
>     * c-family/c-ubsan.c: ditto.
>     * c-family/stub-objc.c: ditto.
>     * cfgbuild.c: ditto.
>     * cfg.c: ditto.
>     * cfgcleanup.c: ditto.
>     * cfgexpand.c: ditto.
>     * cfghooks.c: ditto.
>     * cfgloop.c: Include symtab.h, tree-core.h, fold-const.h, and
>     inchash.h due to flattening of tree.h.
>     * cfgloopmanip.c: ditto.
>     * cfgrtl.c:  Include hash-set.h, machmode.h,
>     vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
>     tree-core.h, fold-const.h, wide-int.h, and inchash.h due to
>     flattening of tree.h.
>     * cgraphbuild.c: ditto.
>     * cgraph.c: ditto.
>     * cgraphclones.c: ditto.
>     * cgraphunit.c: ditto.
>     * cilk-common.c: ditto.
>     * combine.c: ditto.
>     * combine-stack-adj.c: Include symbol.h due to flattening of tree.h.
>     * config/aarch64/aarch64-builtins.c:  Include hash-set.h, machmode.h,
>     vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
>     tree-core.h, fold-const.h, wide-int.h, and inchash.h due to
>     flattening of tree.h.
>     * config/aarch64/aarch64.c: ditto.
>     * config/alpha/alpha.c: ditto.
>     * config/arc/arc.c: ditto.
>     * config/arm/aarch-common.c: ditto.
>     * config/arm/arm-builtins.c: ditto.
>     * config/arm/arm.c: ditto.
>     * config/arm/arm-c.c: ditto.
>     * config/avr/avr.c: ditto.
>     * config/avr/avr-c.c: ditto.
>     * config/avr/avr-log.c: ditto.
>     * config/bfin/bfin.c: ditto.
>     * config/c6x/c6x.c: ditto.
>     * config/cr16/cr16.c: ditto.
>     * config/cris/cris.c: ditto.
>     * config/darwin.c: ditto.
>     * config/darwin-c.c: ditto.
>     * config/default-c.c: ditto.
>     * config/epiphany/epiphany.c: ditto.
>     * config/fr30/fr30.c: ditto.
>     * config/frv/frv.c: ditto.
>     * config/glibc-c.c: ditto.
>     * config/h8300/h8300.c: ditto.
>     * config/i386/i386.c: ditto.
>     * config/i386/i386-c.c: ditto.
>     * config/i386/msformat.c: ditto.
>     * config/i386/winnt.c: ditto.
>     * config/i386/winnt-cxx.c: ditto.
>     * config/i386/winnt-stubs.c: ditto.
>     * config/ia64/ia64.c: ditto.
>     * config/ia64/ia64-c.c: ditto.
>     * config/iq2000/iq2000.c: ditto.
>     * config/lm32/lm32.c: Include symtab.h, tree-core.h, fold-const.h,
>     wide-int.h, and inchash.h due to flattening of tree.h.
>     * config/m32c/m32c.c: Include hash-set.h, machmode.h,
>     vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
>     tree-core.h, fold-const.h, wide-int.h, and inchash.h due to
>     flattening of tree.h.
>     * config/m32c/m32c-pragma.c: ditto.
>     * config/m32c/m32cr.c: ditto.
>     * config/m68/m68k.c: ditto.
>     * config/mcore/mcore.c: ditto.
>     * config/mep/mep.c: ditto.
>     * config/mep/mep-pragma.c: ditto.
>     * config/microblaze/microblaze.c: ditto.
>     * config/microblaze/microblaze-c.c: ditto.
>     * config/mips/mips.c: ditto.
>     * config/mmix/mmix.c: Include symtab.h, tree-core.h, fold-const.h,
>     wide-int.h, and inchash.h due to flattening of tree.h.
>     * config/mn10300/mn10300.c: Include hash-set.h, machmode.h,
>     vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
>     tree-core.h, fold-const.h, wide-int.h, and inchash.h due to
>     flattening of tree.h.
>     * config/moxie/moxie.c: ditto.
>     * config/msp430/msp430.c: ditto.
>     * config/msp430/msp430-c.c: ditto.
>     * config/nds32/nds32.c: ditto.
>     * config/nds32/nds32-cost.c: ditto.
>     * config/nds32/nds32-fp-as-gp.c: ditto.
>     * config/nds32/nds32-intrinsic.c: ditto.
>     * config/nds32/nds32-isr.c: ditto.
>     * config/nds32/nds32-md-auxillary.c: ditto.
>     * config/nds32/nds32-memory-manipulationx.c: ditto.
>     * config/nds32/nds32-pipelines-auxillary.c: ditto.
>     * config/nds32/nds32-predicates.c: ditto.
>     * config/nios2/nios2.c: ditto.
>     * config/nvptx/nvptx.c: ditto.
>     * config/pa/pa.c: ditto.
>     * config/pdp11/pdp11x.c: Include symtab.h, tree-core.h, fold-const.h,
>     wide-int.h, and inchash.h due to flattening of tree.h.
>     * config/rl78/rl78.c: Include hash-set.h, machmode.h,
>     vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
>     tree-core.h, fold-const.h, wide-int.h, and inchash.h due to
>     flattening of tree.h.
>     * config/rl78/rl78-cx.c: ditto.
>     * config/rs6000/rs6000.c: ditto.
>     * config/rs6000/rs6000-c.c: ditto.
>     * config/rx/rx.c: ditto.
>     * config/s390/s390.c: ditto.
>     * config/sh/sh.c: ditto.
>     * config/sh/sc.c: ditto.
>     * config/sh/sh-mem.cc: ditto.
>     * config/sh/sh_treg_combine.cc: Include symtab.h due to flattening
>     of tree.h.
>     * config/sol2.c: Include hash-set.h, machmode.h,
>     vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
>     tree-core.h, fold-const.h, wide-int.h, and inchash.h due to
>     flattening of tree.h.
>     * config/sol2-c.c: ditto.
>     * config/sol2-cxx.c: ditto.
>     * config/sol2-stubs.c: ditto.
>     * config/sparc/sparc.c: ditto.
>     * config/sparc/sparc-cx.c: ditto.
>     * config/spu/spu.c: ditto.
>     * config/spu/spu-c.c: ditto
>     * config/storym16/stormy16.c: ditto.
>     * config/tilegx/tilegx.c: Include symtab.h, tree-core.h, fold-const.h,
>     wide-int.h, and inchash.h due to flattening of tree.h.
>     * config/tilegx/tilegx-c.c: Include hash-set.h, machmode.h,
>     vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
>     tree-core.h, fold-const.h, wide-int.h, and inchash.h due to
>     flattening of tree.h.
>     * config/tilepro/tilepro.c: Include symtab.h, tree-core.h, fold-const.h,
>     wide-int.h, and inchash.h due to flattening of tree.h.
>     * config/tilepro/tilepro-c.c: Include hash-set.h, machmode.h,
>     vec.h, double-int.h, input.h, alias.h, symtab.h, options.h
>     tree-core.h, fold-const.h, wide-int.h, and inchash.h due to
>     flattening of tree.h.
>     * config/v850/v850.c: ditto.
>     * config/v850/v850-c.c: ditto.
>     * config/vax/vax.c: ditto.
>     * config/vms/vms.c: ditto.
>     * config/vms/vms-c.c: ditto.
>     * config/vxworks.c: ditto.
>     * config/winnt-c.c: ditto.
>     * config/xtensa/xtensa.c: Include symtab.h, tree-core.h, fold-const.h,
>     wide-int.h, and inchash.h due to flattening of tree.h.
>     * convert.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
>     input.h, alias.h, symtab.h, options.h, tree-core.h, fold-const.h,
>     wide-int.h, and inchash.h due to flattening of tree.h.
>     * coverage.c: ditto.
>     * cp/call.c: ditto.
>     * cp/class.c: ditto.
>     * cp/constexpr.c: ditto.
>     * cp/cp-array-notation.c: ditto.
>     * cp/cp-gimplify.c: ditto.
>     * cp/cp-lang.c: ditto.
>     * cp/cp-objcp-common.c: ditto.
>     * cp/cvt.c: ditto.
>     * cp/decl2.c: ditto.
>     * cp/decl.c: ditto.
>     * cp/dump.c: ditto.
>     * cp/error.c: ditto.
>     * cp/except.c: ditto.
>     * cp/expr.c: ditto.
>     * cp/friend.c: ditto.
>     * cp/init.c: ditto.
>     * cp/lambda.c: ditto.
>     * cp/lex.c: ditto.
>     * cp/mangle.c: ditto.
>     * cp/name-lookup.c: ditto.
>     * cp/optimize.c: ditto.
>     * cp/parser.c: ditto.
>     * cp/pt.c: ditto.
>     * cp/ptree.c: ditto.
>     * cp/repo.c: ditto.
>     * cp/rtti.c: ditto.
>     * cp/search.c: ditto.
>     * cp/semantics.c: ditto.
>     * cp/tree.c: ditto.
>     * cp/typeck2.c: ditto.
>     * cp/typeck.c: ditto.
>     * cppbuiltin.c: ditto.
>     * cprop.c: ditto.
>     * cse.c: Add include of symtab.h due to flattening of tree.h.
>     * cselib.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
>     input.h, alias.h, symtab.h, options.h, tree-core.h, fold-const.h,
>     wide-int.h, and inchash.h due to flattening of tree.h.
>     * data-streamer.c: ditto.
>     * data-streamer-in.c: ditto.
>     * data-streamer-out.c: ditto.
>     * dbxout.c: ditto.
>     * dce.c: ditto.
>     * ddg.c: Add include of symtab.h due to flattening of tree.h.
>     * debug.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
>     input.h, alias.h, symtab.h, options.h, tree-core.h, fold-const.h,
>     wide-int.h, and inchash.h due to flattening of tree.h.
>     * dfp.c: ditto.
>     * df-scan.c: ditto.
>     * dojump.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
>     input.h, alias.h, symtab.h, options.h, tree-core.h, fold-const.h,
>     wide-int.h, inchash.h and real.h due to flattening of tree.h.
>     * double-int.c: ditto.
>     * dse.c: ditto.
>     * dumpfile.c: ditto.
>     * dwarf2asm.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
>     input.h, alias.h, symtab.h, tree-core.h, fold-const.h,
>     wide-int.h, inchash.h and real.h due to flattening of tree.h.
>     * dwarf2cfi.c: ditto.
>     * dwarf2out.c: ditto.
>     * emit-rtl.c: ditto.
>     * except.c: ditto.
>     * explow.c: ditto.
>     * expmed.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
>     input.h, alias.h, symtab.h, tree-core.h, fold-const.h,
>     wide-int.h, and inchash.h due to flattening of tree.h.
>     * expr.c: ditto.
>     * final.c: ditto.
>     * fixed-value.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
>     input.h, alias.h, symtab.h, tree-core.h, fold-const.h,
>     wide-int.h, inchash.h and fixed-value.h due to flattening of tree.h.
>     * fold-const.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
>     input.h, alias.h, symtab.h, tree-core.h, fold-const.h,
>     wide-int.h, and inchash.h due to flattening of tree.h.
>     * fortran/convert.c: Include hash-set.h, machmode.h, vec.h,
> double-int.h,
>     input.h, alias.h, symtab.h, options.h, tree-core.h, fold-const.h,
>     wide-int.h, and inchash.h due to flattening of tree.h.
>     * fortran/cpp.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
>     input.h, alias.h, symtab.h, tree-core.h, fold-const.h,
>     wide-int.h, and inchash.h due to flattening of tree.h.
>     * fortran/decl.c: ditto.
>     * fortran/f95.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
>     input.h, alias.h, symtab.h, options.h, tree-core.h, fold-const.h,
>     wide-int.h, and inchash.h due to flattening of tree.h.
>     * fortran/iresolve.c: ditto.
>     * fortran/match.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
>     input.h, alias.h, symtab.h, tree-core.h, fold-const.h,
>     wide-int.h, and inchash.h due to flattening of tree.h.
>     * fortran/module.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
>     input.h, alias.h, symtab.h, options.h, tree-core.h, fold-const.h,
>     wide-int.h, and inchash.h due to flattening of tree.h.
>     * fortran/options.c: ditto.
>     * fortran/target-memory.c: Include hash-set.h, vec.h,
>     double-int.h, input.h, alias.h, symtab.h, tree-core.h, fold-const.h,
>     wide-int.h, and inchash.h due to flattening of tree.h.
>     * fortran/trans-array.c: Include hash-set.h, machmode.h, vec.h,
> double-int.h,
>     input.h, alias.h, symtab.h, options.h, tree-core.h, fold-const.h,
>     wide-int.h, and inchash.h due to flattening of tree.h.
>     * fortran/trans.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
>     input.h, alias.h, symtab.h, options.h, tree-core.h, fold-const.h,
>     wide-int.h, and inchash.h due to flattening of tree.h.
>     * fortran/trans-common.c: Include hash-set.h, machmode.h, vec.h,
> double-int.h,
>     input.h, alias.h, symtab.h, tree-core.h, fold-const.h,
>     wide-int.h, and inchash.h due to flattening of tree.h.
>     * fortran/trans-const.c: ditto.
>     * fortran/trans-decl.c: ditto.
>     * fortran/trans-expr.c: Include hash-set.h, machmode.h, vec.h,
> double-int.h,
>     input.h, alias.h, symtab.h, options.h, tree-core.h, fold-const.h,
>     wide-int.h, and inchash.h due to flattening of tree.h.
>     * fortran/trans-intrinsic.c: Include hash-set.h, machmode.h, vec.h,
> double-int.h,
>     input.h, alias.h, symtab.h, tree-core.h, fold-const.h,
>     wide-int.h, inchash.h and real.h due to flattening of tree.h.
>     * fortran/trans-io.c: Include hash-set.h, machmode.h, vec.h,
> double-int.h,
>     input.h, alias.h, symtab.h, options.h, tree-core.h, fold-const.h,
>     wide-int.h, and inchash.h due to flattening of tree.h.
>     * fortran/trans-openmp.c: ditto.
>     * fortran/trans-stmt.c: ditto.
>     * fortran/trans-types.c: Include hash-set.h, machmode.h, vec.h,
> double-int.h,
>     input.h, alias.h, symtab.h, tree-core.h, fold-const.h,
>     wide-int.h, inchash.h and real.h due to flattening of tree.h.
>     * function.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
>     input.h, alias.h, symtab.h, tree-core.h, fold-const.h,
>     wide-int.h, and inchash.h due to flattening of tree.h.
>     * gcse.c: ditto.
>     * generic-match-head.c:  Include hash-set.h, machmode.h, vec.h,
> double-int.h,
>     input.h, alias.h, symtab.h, options.h, tree-core.h, fold-const.h,
>     wide-int.h, and inchash.h due to flattening of tree.h.
>     * ggc-page.c:  Include hash-set.h, machmode.h, vec.h, double-int.h,
>     input.h, alias.h, symtab.h, tree-core.h, fold-const.h,
>     wide-int.h, and inchash.h due to flattening of tree.h.
>     * gimple-builder.c: ditto.
>     * gimple.c: ditto.
>     * gimple-expr.c: ditto.
>     * gimple-fold.c: ditto.
>     * gimple-iterator.c: ditto.
>     * gimple-low.c: ditto.
>     * gimple-match-head.c: ditto.
>     * gimple-pretty-print.c: ditto.
>     * generic-ssa-isolate-paths.c:  Include hash-set.h, machmode.h, vec.h,
> double-int.h,
>     input.h, alias.h, symtab.h, options.h, tree-core.h, fold-const.h,
>     wide-int.h, and inchash.h due to flattening of tree.h.
>     * gimple-ssa-strength-reduction.c: ditto.
>     * gimple-streamer-in.c: ditto.
>     * gimple-streamer-out.c: ditto.
>     * gimple-walk.c:  Include hash-set.h, machmode.h, vec.h, double-int.h,
>     input.h, alias.h, symtab.h, tree-core.h, fold-const.h,
>     wide-int.h, and inchash.h due to flattening of tree.h.
>     * gimplify.c:  Include hash-set.h, machmode.h, vec.h, double-int.h,
>     input.h, alias.h, symtab.h, options.h, tree-core.h, fold-const.h,
>     wide-int.h, and inchash.h due to flattening of tree.h.
>     * gimplify-me.c: ditto.
>     * go/go-gcc.cc: ditto.
>     * go/go-lang.c: ditto.
>     * go/gdump.c: ditto.
>     * graphite-blocking.c: ditto.
>     * graphite.c: ditto.
>     * graphite-dependencies.c: ditto.
>     * graphite-interchange.c: ditto.
>     * graphite-isl-ast-to-gimple.c: ditto.
>     * graphite-optimize-isl.c: ditto.
>     * graphite-poly.c: ditto.
>     * graphite-scop-detection.c: ditto.
>     * graphite-sese-to-poly.c: ditto.
>     * hw-doloop.c: Include symtab.h due to flattening of tree.h.
>     * ifcvt.c: ditto.
>     * init-regs.c:  Include hash-set.h, machmode.h, vec.h, double-int.h,
>     input.h, alias.h, symtab.h, tree-core.h, fold-const.h,
>     wide-int.h, and inchash.h due to flattening of tree.h.
>     * internal-fc.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
>     input.h, alias.h, symtab.h,options.h, tree-core.h, fold-const.h,
>     wide-int.h, and inchash.h due to flattening of tree.h.
>     * ipa.c: ditto.
>     * ipa-chkp.c: ditto.
>     * ipa-comdats.c:  Include hash-set.h, machmode.h, vec.h, double-int.h,
>     input.h, alias.h, symtab.h, tree-core.h, fold-const.h,
>     wide-int.h, and inchash.h due to flattening of tree.h.
>     * ipa-cp.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
>     input.h, alias.h, symtab.h,options.h, tree-core.h, fold-const.h,
>     wide-int.h, and inchash.h due to flattening of tree.h.
>     * ipa-devirt.c:  Include hash-set.h, machmode.h, vec.h, double-int.h,
>     input.h, alias.h, symtab.h, tree-core.h, fold-const.h,
>     wide-int.h, and inchash.h due to flattening of tree.h.
>     * ipa-icf.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
>     input.h, alias.h, symtab.h,options.h, tree-core.h, fold-const.h,
>     wide-int.h, and inchash.h due to flattening of tree.h.
>     * ipa-icf-gimple.c: ditto.
>     * ipa-inline-analysis.c:  Include hash-set.h, machmode.h, vec.h,
> double-int.h,
>     input.h, alias.h, symtab.h, tree-core.h, fold-const.h,
>     wide-int.h, and inchash.h due to flattening of tree.h.
>     * ipa-inline.c: ditto.
>     * ipa-inline-transform.c: ditto.
>     * ipa-polymorhpic-call.c: ditto.
>     * ipa-profile.c: ditto.
>     * ipa-prop.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
>     input.h, alias.h, symtab.h, options.h, tree-core.h, fold-const.h,
>     wide-int.h, and inchash.h due to flattening of tree.h.
>     * ipa-pure-const.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
>     input.h, alias.h, symtab.h, tree-core.h, fold-const.h,
>     wide-int.h, and inchash.h due to flattening of tree.h.
>     * ipa-ref.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
>     input.h, alias.h, symtab.h, options.h, tree-core.h, fold-const.h,
>     wide-int.h, and inchash.h due to flattening of tree.h.
>     * ipa-reference.c: ditto.
>     * ipa-split.c: ditto.
>     * ipa-utils.c: ditto.
>     * ipa-visbility.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
>     input.h, alias.h, symtab.h, tree-core.h, fold-const.h,
>     wide-int.h, and inchash.h due to flattening of tree.h.
>     * ira.c: ditto.
>     * ira-color.c: Include hash-set.h due to flattening of tree.h.
>     * ira-costs.c: ditto.
>     * ira-emit.c: ditto.
>     * java/boehm.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
>     input.h, alias.h, symtab.h, options.h, tree-core.h, fold-const.h,
>     wide-int.h, and inchash.h due to flattening of tree.h.
>     * java/builtins.c: ditto.
>     * java/class.c: ditto.
>     * java/constants.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
>     input.h, alias.h, symtab.h, options.h, tree-core.h, fold-const.h,
>     wide-int.h, and inchash.h due to flattening of tree.h.
>     * java/decl.c: ditto.
>     * java/except.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
>     input.h, alias.h, symtab.h, tree-core.h, fold-const.h,
>     wide-int.h, and inchash.h due to flattening of tree.h.
>     * java/expr.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
>     input.h, alias.h, symtab.h, tree-core.h, fold-const.h,
>     wide-int.h,inchash.h and real.h due to flattening of tree.h.
>     * java/gimplify.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
>     input.h, alias.h, symtab.h, options.h, tree-core.h, fold-const.h,
>     wide-int.h, and inchash.h due to flattening of tree.h.
>     * java/jcf-dump.c: ditto.
>     * java/jcf-io.c: ditto.
>     * java/jcf-parse.c: ditto.
>     * java/jvgenmain.c: ditto.
>     * java/lang.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
>     input.h, alias.h, symtab.h, tree-core.h, fold-const.h,
>     wide-int.h, and inchash.h due to flattening of tree.h.
>     * java/mangle.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
>     input.h, alias.h, symtab.h, options.h, tree-core.h, fold-const.h,
>     wide-int.h, and inchash.h due to flattening of tree.h.
>     * java/mangle_name.c: ditto.
>     * java/resource.c: ditto.
>     * java/typeck.c: ditto.
>     * java/verify-glue.c: ditto.
>     * java/verify-impl.c: ditto.
>     * jump.c: Include symtab.h due to flattening of tree.h.
>     * langhooks.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
>     input.h, alias.h, symtab.h, tree-core.h, fold-const.h,
>     wide-int.h, and inchash.h due to flattening of tree.h.
>     * loop-doloop.c: Include symtab.h due to flattening of tree.h.
>     * loop-init.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
>     input.h, alias.h, symtab.h, tree-core.h, fold-const.h,
>     wide-int.h, and inchash.h due to flattening of tree.h.
>     * loop-invariant.c: Include symtab.h due to flattening of tree.h.
>     * loop-iv.c: ditto.
>     * loop-unroll.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
>     input.h, alias.h, symtab.h, tree-core.h, fold-const.h,
>     wide-int.h, and inchash.h due to flattening of tree.h.
>     * lower-subreg.c: ditto.
>     * lra-assigns.c: Include symtab.h due to flattening of tree.h.
>     * lra.c: Include symtab.h, fold-const.h, wide-int.h and inchash.h
>     due to flattening of tree.h.
>     * lra-coalesce.c: Include symtab.h due to flattening of tree.h.
>     * lra-constraints.c: ditto.
>     * lra-eliminations.c: ditto.
>     * lra-livesc: ditto.
>     * lra-remat.c: ditto.
>     * lra-spills.c: ditto.
>     * lto/lto.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
>     input.h, alias.h, symtab.h, options, tree-core.h, fold-const.h,
>     wide-int.h, and inchash.h due to flattening of tree.h.
>     * lto/lto-lang.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
>     input.h, alias.h, symtab.h, tree-core.h, fold-const.h,
>     wide-int.h, and inchash.h due to flattening of tree.h.
>     * lto/lto-object.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
>     input.h, alias.h, symtab.h, options, tree-core.h, fold-const.h,
>     wide-int.h, and inchash.h due to flattening of tree.h.
>     * lto/lto-partition.c: ditto.
>     * lto/lto-symtab.c: ditto.
>     * lto-cgraph.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
>     input.h, alias.h, symtab.h, tree-core.h, fold-const.h,
>     wide-int.h, and inchash.h due to flattening of tree.h.
>     * lto-compress.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
>     input.h, alias.h, symtab.h, options, tree-core.h, fold-const.h,
>     wide-int.h, and inchash.h due to flattening of tree.h.
>     * lto-opts.c: ditto.
>     * lto-section-in.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
>     input.h, alias.h, symtab.h, tree-core.h, fold-const.h,
>     wide-int.h, and inchash.h due to flattening of tree.h.
>     * lto-section-out.c: ditto.
>     * lto-streamer.c: ditto.
>     * lto-streamer-in.c: ditto.
>     * lto-streamer-out.c: ditto.
>     * modulo-sched.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
>     input.h, alias.h, symtab.h, fold-const.h, wide-int.h, and
>     inchash.h due to flattening of tree.h.
>     * objc/objc-act.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
>     input.h, alias.h, symtab.h, options, tree-core.h, fold-const.h,
>     wide-int.h, and inchash.h due to flattening of tree.h.
>     * objc/objc-encoding.c: ditto.
>     * objc/objc-gnu-runtime-abi-01.c: ditto.
>     * objc/objc-lang.c: ditto.
>     * objc/objc-map.c: ditto.
>     * objc/objc-next-runtime-abi-01.c: ditto.
>     * objc/objc-next-runtime-abi-02.c: ditto.
>     * objc/objc-runtime-shared-support.c: ditto.
>     * objcp/objcp-decl.c: ditto.
>     * objcp/objcp-lang.c: ditto.
>     * omega.c: ditto.
>     * omega-low.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
>     input.h, alias.h, symtab.h, fold-const.h, wide-int.h, and
>     inchash.h due to flattening of tree.h.
>     * optabs.c: ditto.
>     * opts-global.c: ditto.
>     * passes.c: ditto.
>     * plugin.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
>     input.h, alias.h, symtab.h, options.h, fold-const.h, wide-int.h, and
>     inchash.h due to flattening of tree.h.
>     * postreload.c: Include symtab.h due to flattening of tree.h.
>     * postreload-gcse.c: Include hash-set.h, machmode.h, vec.h,
> double-int.h,
>     input.h, alias.h, symtab.h, fold-const.h, wide-int.h, and
>     inchash.h due to flattening of tree.h.
>     * predict.c: ditto.
>     * print-rtl.c: ditto.
>     * print-tree.c: ditto.
>     * profile.c: Include symtab.h, tree-core, fold-const.h
>     and inchash.h due to flattening of tree.h.
>     * real.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
>     input.h, alias.h, symtab.h, fold-const.h, wide-int.h, and
>     inchash.h due to flattening of tree.h.
>     * realmpfr.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
>     input.h, alias.h, symtab.h, options.h, fold-const.h, wide-int.h, and
>     inchash.h due to flattening of tree.h.
>     * recog.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
>     input.h, alias.h, symtab.h, fold-const.h, wide-int.h, and
>     inchash.h due to flattening of tree.h.
>     * ree.c: ditto.
>     * reginfo.c: ditto.
>     * reg-stack.c: ditto.
>     * reload1.c: Include symtab.h, tree-core, fold-const.h, wide-int.h
>     and inchash.h due to flattening of tree.h.
>     * reload.c: Include symtab.h due to flattening of tree.h.
>     * reorg.c: ditto.
>     * rtlanal.c: Include symtab.h, tree-core, fold-const.h, wide-int.h
>     and inchash.h due to flattening of tree.h.
>     * rtl-chkp.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
>     input.h, alias.h, symtab.h, fold-const.h, wide-int.h, and
>     inchash.h due to flattening of tree.h.
>     * rtlhooks.c: Include symtab.h due to flattening of tree.h.
>     * sanopt.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
>     input.h, alias.h, symtab.h, options.h, fold-const.h, wide-int.h, and
>     inchash.h due to flattening of tree.h.
>     * sched-deps.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
>     input.h, alias.h, symtab.h, options.h, fold-const.h, wide-int.h, and
>     inchash.h due to flattening of tree.h.
>     * sched-vis.c: ditto.
>     * sdbout.c: ditto.
>     * sel-sched.c: Include symtab.h, tree-core, fold-const.h, wide-int.h
>     and inchash.h due to flattening of tree.h.
>     * sel-sched-ir.c: ditto.
>     * sese.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
>     input.h, alias.h, symtab.h, options.h, fold-const.h, wide-int.h, and
>     inchash.h due to flattening of tree.h.
>     * shrink-wrap.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
>     input.h, alias.h, symtab.h, options.h, fold-const.h, wide-int.h, and
>     inchash.h due to flattening of tree.h.
>     * simplify-rtx.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
>     input.h, alias.h, symtab.h, options.h, fold-const.h, wide-int.h, and
>     inchash.h due to flattening of tree.h.
>     * stack-ptr-mod.c: ditto.
>     * stmt.c: ditto.
>     * store-motion.c: ditto.
>     * store-layout.c: ditto.
>     * stringpool.c: ditto.
>     * symtab.c: ditto.
>     * target-globals.c: ditto.
>     * targhooks.c: ditto.
>     * toplev.c: ditto.
>     * tracer.c: ditto.
>     * trans-mem.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
>     input.h, alias.h, symtab.h, options.h, fold-const.h, wide-int.h, and
>     inchash.h due to flattening of tree.h.
>     * tree-affine.c: ditto.
>     * tree-browser.c: ditto.
>     * tree.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
>     input.h, alias.h, symtab.h, options.h, fold-const.h, wide-int.h, and
>     inchash.h due to flattening of tree.h.
>     * tree-call-cdce.c: Include symtab.h, alias.h, double-int.h,
>     tree-core.h, fold-const.h, wide-int.h, inchash.h and real.h due to
>     flattening of tree.h.
>     * tree-cfg.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
>     input.h, alias.h, symtab.h, fold-const.h, wide-int.h, and
>     inchash.h due to flattening of tree.h.
>     * tree-cfgcleanup.c: ditto.
>     * tree-chkp.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
>     input.h, alias.h, symtab.h, options.h, fold-const.h, wide-int.h, and
>     inchash.h due to flattening of tree.h.
>     * tree-chkp-opt.c: ditto.
>     * tree-chrec.c: ditto.
>     * tree-chkp-opt.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
>     input.h, alias.h, symtab.h, fold-const.h, wide-int.h, inchash.h and
>     real.h due to flattening of tree.h.
>     * tree-core.h: Flatten header file by removing all #include statements.
>     * tree-data-ref.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
>     input.h, alias.h, symtab.h, options.h, fold-const.h, wide-int.h, and
>     inchash.h due to flattening of tree.h.
>     * tree-dfa.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
>     input.h, alias.h, symtab.h, fold-const.h, wide-int.h, inchash.h and
>     real.h due to flattening of tree.h.
>     * tree-diagnostic.c: ditto.
>     * tree-dump.c: * tree-dfa.c: Include hash-set.h, machmode.h, vec.h,
> double-int.h,
>     input.h, alias.h, symtab.h, fold-const.h, wide-int.h, inchash.h, real.h
> and
>     fixed-value.h due to flattening of tree.h.
>     * tree-eh.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
>     input.h, alias.h, symtab.h, fold-const.h, wide-int.h, inchash.h and
>     real.h due to flattening of tree.h.
>     * tree-emutls.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
>     input.h, alias.h, symtab.h, options.h, fold-const.h, wide-int.h, and
>     inchash.h due to flattening of tree.h.
>     * tree.h: Flatten header files by removing all includes except
> tree-core.h.
>     * tree-if-conv.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
>     input.h, alias.h, symtab.h, fold-const.h, wide-int.h, inchash.h, real.h
> and
>     fixed-value.h due to flattening of tree.h.
>     * tree-inline.c: ditto.
>     * tree-into-ssa.c: ditto.
>     * tree-iterator.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
>     input.h, alias.h, symtab.h, options.h, fold-const.h, wide-int.h, and
>     inchash.h due to flattening of tree.h.
>     * tree-loop-distribution.c: ditto.
>     * tree-nested.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
>     input.h, alias.h, symtab.h, fold-const.h, wide-int.h and inchash.h
>     due to flattening of tree.h.
>     * tree-nrv.c: ditto.
>     * tree-object-size.c: ditto.
>     * tree-outof-ssa.c: ditto.
>     * tree-parloops.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
>     input.h, alias.h, symtab.h, options.h, fold-const.h, wide-int.h, and
>     inchash.h due to flattening of tree.h.
>     * tree-phinodes.c: ditto.
>     * tree-predcom.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
>     input.h, alias.h, symtab.h, fold-const.h, wide-int.h and inchash.h
>     due to flattening of tree.h.
>     * tree-pretty-print.c: ditto.
>     * tree-profile.c: double-int.h, input.h, alias.h, symtab.h,
>     fold-const.h, wide-int.h and inchash.h due to flattening of tree.h.
>     * tree-scalar-evolution.c: Include hash-set.h, machmode.h, vec.h,
>     double-int.h, input.h, alias.h, symtab.h, options.h, fold-const.h,
>     wide-int.h and inchash.h due to flattening of tree.h.
>     * tree-sra.c: Include  vec.h, double-int.h,
>     input.h, alias.h, symtab.h, fold-const.h, wide-int.h, and
>     inchash.h due to flattening of tree.h.
>     * tree-ssa-alias.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
>     input.h, alias.h, symtab.h, fold-const.h, wide-int.h and inchash.h
>     due to flattening of tree.h.
>     * tree-ssa.c: ditto.
>     * tree-ssa-ccp.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
>     input.h, alias.h, symtab.h, fold-const.h, wide-int.h, inchash.h
>     and real.h due to flattening of tree.h.
>     * tree-ssa-coalesce.c: Include hash-set.h, machmode.h, vec.h,
> double-int.h,
>     input.h, alias.h, symtab.h, fold-const.h, wide-int.h and inchash.h
>     due to flattening of tree.h.
>     * tree-ssa-copy.c: ditto.
>     * tree-ssa-copyrename.c: ditto.
>     * tree-ssa-dce.c: ditto.
>     * tree-ssa-dom.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
>     input.h, alias.h, symtab.h, fold-const.h, wide-int.h, inchash.h
>     and real.h due to flattening of tree.h.
>     * tree-ssa-dse.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
>     input.h, alias.h, symtab.h, fold-const.h, wide-int.h and inchash.h
>     due to flattening of tree.h.
>     * tree-ssa-forwprop.c: ditto.
>     * tree-ssa-ifcombine.c: ditto.
>     * tree-ssa-live.c: ditto.
>     * tree-ssa-loop.c: ditto.
>     * tree-ssa-loop-ch.c: ditto.
>     * tree-ssa-loop-im.c: ditto.
>     * tree-ssa-loop-ivcanon.c: ditto.
>     * tree-ssa-loop-ivopts.c: ditto.
>     * tree-ssa-loop-manip.c: ditto.
>     * tree-ssa-loop-niter.c: ditto.
>     * tree-ssa-loop-prefetch.c: ditto.
>     * tree-ssa-loop-unswitch.c: ditto.
>     * tree-ssa-loop-math-opts.c: ditto.
>     * tree-ssanames.c: ditto.
>     * tree-ssa-operands.c: ditto.
>     * tree-ssa-phiopt.c: ditto.
>     * tree-ssa-phiprop.c: ditto.
>     * tree-ssa-pre.c: ditto.
>     * tree-ssa-propagate.c: ditto.
>     * tree-ssa-reassoc.c: ditto.
>     * tree-ssa-sccvn.c: ditto.
>     * tree-ssa-sink.c: ditto.
>     * tree-ssa-strlen.c: Include hash-set.h, machmode.h, vec.h,
>     double-int.h, input.h, alias.h, symtab.h, options.h, fold-const.h,
>     wide-int.h and inchash.h due to flattening of tree.h.
>     * tree-ssa-structalias.c: double-int.h, input.h, alias.h, symtab.h,
>     fold-const.h, wide-int.h and inchash.h due to flattening of tree.h.
>     * tree-ssa-tail-merge.c: Include hash-set.h, machmode.h, vec.h,
>     double-int.h, input.h, alias.h, symtab.h, fold-const.h,
>     wide-int.h and inchash.h due to flattening of tree.h.
>     * tree-ssa-ter.c: ditto.
>     * tree-ssa-threadedge.c: ditto.
>     * tree-ssa-threadupdate.c: Include hash-set.h, machmode.h, vec.h,
>     double-int.h, input.h, alias.h, symtab.h, options.h, fold-const.h,
>     wide-int.h and inchash.h due to flattening of tree.h.
>     * tree-ssa-uncprop.c: Include hash-set.h, machmode.h, vec.h,
>     double-int.h, input.h, alias.h, symtab.h, fold-const.h,
>     wide-int.h and inchash.h due to flattening of tree.h.
>     * tree-ssa-uninit.c: ditto.
>     * tree-stdarg.c: Include vec.h, double-int.h, input.h, alias.h,
>     symtab.h, fold-const.h, wide-int.h and inchash.h due to flattening
>     of tree.h.
>     * tree-streamer.c: Include vec.h, double-int.h, input.h, alias.h,
>     symtab.h, options.h, tree-core.h, fold-const.h, wide-int.h and
>     inchash.h due to flattening of tree.h.
>     * tree-streamer-in.c: Include hash-set.h, machmode.h, vec.h,
>     double-int.h, input.h, alias.h, symtab.h, options.h, fold-const.h,
>     wide-int.h, inchash.h, real.h and fixed-value.h due to flattening
>     of tree.h.
>     * tree-streamer-out.c: dittoo.
>     * tree-switch-conversion.c: Include hash-set.h, machmode.h, vec.h,
> double-int.h,
>     input.h, alias.h, symtab.h, fold-const.h, wide-int.h and inchash.h
>     due to flattening of tree.h.
>     * tree-tailcall.c: ditto.
>     * tree-vect-data-refs.c: ditto.
>     * tree-vect-generic.c: Include hash-set.h, machmode.h, vec.h,
> double-int.h,
>     input.h, alias.h, symtab.h, options.h, fold-const.h, wide-int.h and
> inchash.h
>     due to flattening of tree.h.
>     * tree-vect-loop.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
>     input.h, alias.h, symtab.h, fold-const.h, wide-int.h and inchash.h
>     due to flattening of tree.h.
>     * tree-vect-loop-manip.c: ditto.
>     * tree-vectorizer.c: ditto.
>     * tree-vect-patterns.c: ditto.
>     * tree-vect-slp.c: ditto.
>     * tree-vect-stmts.c: ditto.
>     * tree-vrp.c: ditto.
>     * tsan.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
>     input.h, alias.h, symtab.h, options.h, fold-const.h, wide-int.h and
> inchash.h
>     due to flattening of tree.h.
>     * ubsan.c: ditto.
>     * value-prof.c.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
>     input.h, alias.h, symtab.h, fold-const.h, wide-int.h and inchash.h
>     due to flattening of tree.h.
>     * varasm.c: ditto.
>     * varpool.c: ditto.
>     * var-tracking.c: ditto.
>     * vmsdbgout.c: ditto.
>     * vtable-verify.c: Include hash-set.h, machmode.h, vec.h, double-int.h,
>     input.h, alias.h, symtab.h, options.h, fold-const.h, wide-int.h and
> inchash.h
>     due to flattening of tree.h.
>     * wide-int.cc: Include hash-set.h, machmode.h, vec.h, double-int.h,
>     input.h, alias.h, symtab.h, fold-const.h, wide-int.h and inchash.h
>     due to flattening of tree.h.
>     * xcoffout.c: ditto.
>     * libcc1/plugin.cc: Include hash-set.h, machmode.h, vec.h, double-int.h,
>     input.h, alias.h, symtab.h, options.h, fold-const.h, wide-int.h and
> inchash.h
>     due to flattening of tree.h.
>
> --
> Michael Collison
> Linaro Toolchain Working Group
> michael.collison@linaro.org
>

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

end of thread, other threads:[~2014-12-19 21:24 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-12-19  1:19 Flatten tree.h and tree-core.h Michael Collison
     [not found] <54937330.5040602@linaro.org>
2014-12-19 11:26 ` Richard Biener
2014-12-19 13:51   ` Andrew MacLeod
2014-12-19 15:06     ` Andrew MacLeod
2014-12-19 18:23     ` Richard Biener
2014-12-19 18:32       ` Andrew MacLeod
2014-12-19 21:01         ` Michael Collison
2014-12-19 21:10           ` Prathamesh Kulkarni
2014-12-19 21:24           ` Andrew MacLeod
2014-12-19 21:27             ` Michael Collison

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