This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug regression/16266] [3.5 regression] gcc.dg/c99-intconst-1.c compilation is very slow


------- Additional Comments From joern dot rennecke at superh dot com  2004-06-29 17:03 -------
Subject: Re:  [3.5 regression] gcc.dg/c99-intconst-1.c compilation is very slow

> 
> 
> ------- Additional Comments From pinskia at gcc dot gnu dot org  2004-06-29 14:26 -------
> Can you try to pin point the patch which caused this?

It appears to be the tree-ssa merge:

bash-2.05$ time /swbuild/nightly/2004-05-12/sh-elf/gcc/cc1  -v -iprefix /swbuild
/nightly/2004-06-28/sh-elf/gcc/../lib/gcc/sh-elf/3.5.0/ -isystem /swbuild/nightl
y/2004-06-28/sh-elf/gcc/include -DSTACK_SIZE=16384 -isystem /swbuild/nightly/200
4-06-28/sh-elf/sh-elf/./newlib/targ-include -isystem /swbuild/nightly/2004-06-28
/srcw/newlib/libc/include /swbuild/nightly/2004-06-28/srcw/gcc/testsuite/gcc.dg/
c99-intconst-1.c  -dumpbase c99-intconst-1.c -auxbase-strip c99-intconst-1.s -pe
dantic-errors -std=iso9899:1999 -version -o c99-intconst-1.s --param ggc-min-exp
and=100 --param ggc-min-heapsize=131072
ignoring nonexistent directory "/swbuild/nightly/2004-06-28/sh-elf/gcc/../lib/gc
c/sh-elf/3.5.0/include"
ignoring nonexistent directory "/swbuild/nightly/2004-06-28/sh-elf/gcc/../lib/gc
c/sh-elf/3.5.0/../../../../sh-elf/sys-include"
ignoring nonexistent directory "/swbuild/nightly/2004-06-28/sh-elf/gcc/../lib/gc
c/sh-elf/3.5.0/../../../../sh-elf/include"
ignoring nonexistent directory "/usr/local/lib/gcc/sh-elf/3.5.0/include"
ignoring nonexistent directory "/usr/local/lib/../sh-elf/sys-include"
ignoring nonexistent directory "/usr/local/lib/../sh-elf/include"
#include "..." search starts here:
#include <...> search starts here:
 /swbuild/nightly/2004-06-28/sh-elf/gcc/include
 /swbuild/nightly/2004-06-28/sh-elf/sh-elf/./newlib/targ-include
 /swbuild/nightly/2004-06-28/srcw/newlib/libc/include
End of search list.
GNU C version 3.5.0 20040512 (experimental) (sh-elf)
        compiled by GNU C version 2.96 20000731 (Red Hat Linux 7.1 2.96-98).
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
options passed:  -v -iprefix -isystem -DSTACK_SIZE=16384 -isystem -isystem
 -auxbase-strip -pedantic-errors -std=iso9899:1999 --param --param
options enabled:  -feliminate-unused-debug-types -fpeephole -ffunction-cse
 -fkeep-static-consts -freg-struct-return -fgcse-lm -fgcse-sm -fgcse-las
 -fsched-interblock -fsched-spec -fsched-stalled-insns
 -fsched-stalled-insns-dep -fbranch-count-reg -fcommon -fargument-alias
 -fzero-initialized-in-bss -fident -fmath-errno -ftrapping-math -m1
 foo

Execution times (seconds)
 cfg construction      :   0.08 ( 1%) usr   0.00 ( 0%) sys   0.09 ( 1%) wall
 cfg cleanup           :   0.02 ( 0%) usr   0.00 ( 0%) sys   0.03 ( 0%) wall
 CFG verifier          :   0.23 ( 3%) usr   0.00 ( 0%) sys   0.23 ( 3%) wall
 trivially dead code   :   0.04 ( 1%) usr   0.00 ( 0%) sys   0.03 ( 0%) wall
 life analysis         :   0.11 ( 1%) usr   0.00 ( 0%) sys   0.12 ( 1%) wall
 life info update      :   0.06 ( 1%) usr   0.00 ( 0%) sys   0.05 ( 1%) wall
 register scan         :   0.04 ( 1%) usr   0.01 ( 1%) sys   0.06 ( 1%) wall
 rebuild jump labels   :   0.05 ( 1%) usr   0.00 ( 0%) sys   0.05 ( 1%) wall
 preprocessing         :   0.91 (11%) usr   0.11 (14%) sys   1.20 (14%) wall
 lexical analysis      :   0.83 (10%) usr   0.38 (47%) sys   1.27 (14%) wall
 parser                :   2.58 (32%) usr   0.24 (30%) sys   2.58 (29%) wall
 expand                :   0.51 ( 6%) usr   0.00 ( 0%) sys   0.52 ( 6%) wall
 jump                  :   0.03 ( 0%) usr   0.00 ( 0%) sys   0.02 ( 0%) wall
 flow analysis         :   0.03 ( 0%) usr   0.00 ( 0%) sys   0.02 ( 0%) wall
 local alloc           :   0.85 (11%) usr   0.02 ( 2%) sys   0.86 (10%) wall
 global alloc          :   0.55 ( 7%) usr   0.03 ( 4%) sys   0.58 ( 7%) wall
 flow 2                :   0.02 ( 0%) usr   0.00 ( 0%) sys   0.02 ( 0%) wall
 machine dep reorg     :   0.20 ( 3%) usr   0.00 ( 0%) sys   0.19 ( 2%) wall
 shorten branches      :   0.16 ( 2%) usr   0.00 ( 0%) sys   0.16 ( 2%) wall
 final                 :   0.23 ( 3%) usr   0.01 ( 1%) sys   0.24 ( 3%) wall
 rest of compilation   :   0.40 ( 5%) usr   0.01 ( 1%) sys   0.44 ( 5%) wall
 TOTAL                 :   7.94             0.81             8.77
Extra diagnostic checks enabled; compiler may run slowly.
Configure with --disable-checking to disable checks.

real    0m8.792s
user    0m7.940s
sys     0m0.830s
bash-2.05$ time /swbuild/nightly/2004-05-13/sh-elf/gcc/cc1  -v -iprefix /swbuild
/nightly/2004-06-28/sh-elf/gcc/../lib/gcc/sh-elf/3.5.0/ -isystem /swbuild/nightl
y/2004-06-28/sh-elf/gcc/include -DSTACK_SIZE=16384 -isystem /swbuild/nightly/200
4-06-28/sh-elf/sh-elf/./newlib/targ-include -isystem /swbuild/nightly/2004-06-28
/srcw/newlib/libc/include /swbuild/nightly/2004-06-28/srcw/gcc/testsuite/gcc.dg/
c99-intconst-1.c  -dumpbase c99-intconst-1.c -auxbase-strip c99-intconst-1.s -pe
dantic-errors -std=iso9899:1999 -version -o c99-intconst-1.s --param ggc-min-exp
and=100 --param ggc-min-heapsize=131072
ignoring nonexistent directory "/swbuild/nightly/2004-06-28/sh-elf/gcc/../lib/gc
c/sh-elf/3.5.0/include"
ignoring nonexistent directory "/swbuild/nightly/2004-06-28/sh-elf/gcc/../lib/gc
c/sh-elf/3.5.0/../../../../sh-elf/sys-include"
ignoring nonexistent directory "/swbuild/nightly/2004-06-28/sh-elf/gcc/../lib/gc
c/sh-elf/3.5.0/../../../../sh-elf/include"
ignoring nonexistent directory "/usr/local/lib/gcc/sh-elf/3.5.0/include"
ignoring nonexistent directory "/usr/local/lib/../sh-elf/sys-include"
ignoring nonexistent directory "/usr/local/lib/../sh-elf/include"
#include "..." search starts here:
#include <...> search starts here:
 /swbuild/nightly/2004-06-28/sh-elf/gcc/include
 /swbuild/nightly/2004-06-28/sh-elf/sh-elf/./newlib/targ-include
 /swbuild/nightly/2004-06-28/srcw/newlib/libc/include
End of search list.
GNU C version 3.5.0 20040513 (experimental) (sh-elf)
        compiled by GNU C version 2.96 20000731 (Red Hat Linux 7.1 2.96-98).
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
options passed:  -v -iprefix -isystem -DSTACK_SIZE=16384 -isystem -isystem
 -auxbase-strip -pedantic-errors -std=iso9899:1999 --param --param
options enabled:  -feliminate-unused-debug-types -fpeephole -ffunction-cse
 -fkeep-static-consts -freg-struct-return -fgcse-lm -fgcse-sm -fgcse-las
 -fsched-interblock -fsched-spec -fsched-stalled-insns
 -fsched-stalled-insns-dep -fbranch-count-reg -fcommon -fargument-alias
 -fzero-initialized-in-bss -fident -fmath-errno -ftrapping-math -m1
 foo

Execution times (seconds)
 cfg construction      :   0.10 ( 0%) usr   0.00 ( 0%) sys   0.10 ( 0%) wall
 CFG verifier          :   0.56 ( 0%) usr   0.01 ( 0%) sys   0.57 ( 0%) wall
 trivially dead code   :   0.09 ( 0%) usr   0.00 ( 0%) sys   0.09 ( 0%) wall
 life analysis         :   0.33 ( 0%) usr   0.00 ( 0%) sys   0.35 ( 0%) wall
 life info update      :   0.16 ( 0%) usr   0.00 ( 0%) sys   0.16 ( 0%) wall
 register scan         :   0.14 ( 0%) usr   0.01 ( 0%) sys   0.15 ( 0%) wall
 rebuild jump labels   :   0.10 ( 0%) usr   0.00 ( 0%) sys   0.10 ( 0%) wall
 preprocessing         :   1.08 ( 0%) usr   0.19 ( 3%) sys   1.19 ( 0%) wall
 lexical analysis      :   0.92 ( 0%) usr   0.45 ( 8%) sys   1.24 ( 0%) wall
 parser                :   2.40 ( 0%) usr   0.20 ( 3%) sys   2.84 ( 1%) wall
 tree gimplify         :   0.66 ( 0%) usr   0.02 ( 0%) sys   0.68 ( 0%) wall
 tree eh               :   0.01 ( 0%) usr   0.00 ( 0%) sys   0.01 ( 0%) wall
 expand                : 393.19 (79%) usr   2.55 (43%) sys 396.13 (78%) wall
 jump                  :   0.05 ( 0%) usr   0.00 ( 0%) sys   0.05 ( 0%) wall
 flow analysis         :   0.09 ( 0%) usr   0.00 ( 0%) sys   0.09 ( 0%) wall
 local alloc           :   2.45 ( 0%) usr   0.08 ( 1%) sys   2.53 ( 0%) wall
 global alloc          :  94.88 (19%) usr   1.52 (25%) sys  97.72 (19%) wall
 flow 2                :   0.04 ( 0%) usr   0.00 ( 0%) sys   0.04 ( 0%) wall
 machine dep reorg     :   1.02 ( 0%) usr   0.06 ( 1%) sys   1.07 ( 0%) wall
 shorten branches      :   0.51 ( 0%) usr   0.00 ( 0%) sys   0.50 ( 0%) wall
 final                 :   0.73 ( 0%) usr   0.90 (15%) sys   1.65 ( 0%) wall
 symout                :   0.00 ( 0%) usr   0.00 ( 0%) sys   0.01 ( 0%) wall
 rest of compilation   :   0.83 ( 0%) usr   0.00 ( 0%) sys   0.86 ( 0%) wall
 TOTAL                 : 500.36             5.99           508.14
Extra diagnostic checks enabled; compiler may run slowly.
Configure with --disable-checking to disable checks.

real    8m28.328s
user    8m20.360s
sys     0m6.060s


bash-2.05$ diff /swbuild/nightly/2004-05-1[23]/srcw/gcc/ChangeLog
0a1,1176
> 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
> 
> 	* final.c (shorten_branches): Free uid_shuid before
> 	reallocating it.
> 
> 	* bb-reoder.c (connect_traces): Free cold_traces at the end.
> 
> 2004-05-13  Jeff Law  <law@redhat.com>
> 
> 	* tree-ssa-forwprop.c (record_single_argument_cond_exprs): Accept
> 	new parameters for the statement and variable worklist as well
> 	as a bitmap of interesting SSA_NAMEs.  Walk over the statement
> 	worklist recording interesting variables in the variable worklist
> 	and bitmap.  Handle casts between integral and boolean types.
> 	(substitute_single_use_vars): Accept new parameters for the statement
> 	and variable worklist.  When a substitution is made add a new
> 	entry to the statement worklist.  Handle casts between integral
> 	and boolean types.
> 	(tree_ssa_forward_propagate_single_use_vars): Rework to pass
> 	worklists to children.  Iterate until the statement worklist
> 	is empty.
> 
> 2004-05-13  Andrew Pinski  <pinskia@physics.uc.edu>
> 
> 	* tree-outof-ssa.c (rewrite_vars_out_of_ssa): Free map at
> 	the end of the block.
> 
> 	* tree-into-ssa.c (def_blocks_free): XFREE bitmaps allocated
> 	with BITMAP_XMALLOC.
> 
> 	* tree-ssa-alias.c (delete_alias_info): XFREE bitmaps allocated
> 	with BITMAP_XMALLOC.
> 
> 	* tree-ssa-dom.c (tree_ssa_dominator_optimize):
> 	Free nonzero_vars at the end of the function.
> 
> 	* convert.c (convert_to_integer): Make a CONVERT_EXPR when there is a
> 	need to generate code instead of a NOP_EXPR.
> 
> 2004-05-13  Ian Lance Taylor  <ian@wasabisystems.com>
> 
> 	* gcc.c (default_compilers): Fill out initializers for new Fortran
> 	entries.
> 
> 2004-05-13  Paul Brook  <paul@codesourcery.com>
> 
> 	* config/arm/arm.h (PCC_BITFIELD_TYPE_MATTERS): Define.
> 
> 2004-05-13  Paul Brook  <paul@codesourcery.com>
> 
> 	* config/arm/arm.c (arm_default_short_enums): New function.
> 	(TARGET_DEFAULT_SHORT_ENUMS): Define.
> 
> 2004-05-13  Diego Novillo  <dnovillo@redhat.com>
> 
> 	Merge from tree-ssa-20020619-branch.
> 
> 	* Makefile.in (reload1.o-warn): Add.
> 	(tree-alias-ander.o-warn): Add.
> 	(GMPLIBS): Define.
> 	(GMPINC): Define.
> 	(BANSHEELIB): Define.
> 	(BANSHEEINC): Define.
> 	(TREE_DUMP_H): Define.
> 	(TREE_SIMPLE_H): Define.
> 	(TREE_FLOW_H): Define.
> 	(LIBDEPS): Add BANSHEELIB.
> 	(INCLUDES): Add BANSHEEINC and GMPINC.
> 	(C_AND_OBJC_OBJS): Add c-simplify.o, tree-mudflap.o,
> 	c-mudflap.o and c-pretty-print.o.
> 	(C_OBJS): Remove c-pretty-print.o.
> 	(OBJS-common): Remove sibcall.o.
> 	Add tree-cfg.o, tree-dfa.o, tree-eh.o,
> 	tree-ssa.o, tree-optimize.o, tree-simple.o,
> 	tree-alias-type.o, gimplify.o, tree-pretty-print.o,
> 	tree-into-ssa.o, tree-outof-ssa.o, tree-alias-common.o,
> 	tree-ssa-ccp.o, @ANDER@, tree-ssa-dce.o, tree-ssa-copy.o,
> 	tree-nrv.o, tree-ssa-copyrename.o, tree-ssa-pre.o,
> 	tree-ssa-live.o, tree-ssa-operands.o, tree-ssa-alias.o,
> 	tree-ssa-phiopt.o, tree-ssa-forwprop.o, tree-nested.o,
> 	tree-ssa-dse.o, tree-ssa-dom.o, domwalk.o,
> 	tree-tailcall.o, gimple-low.o, tree-iterator.o,
> 	tree-phinodes.o, tree-ssanames.o, tree-sra.o,
> 	tree-complex.o, tree-ssa-loop.o, rtl-profile.o and
> 	tree-profile.o.
> 	(OBJC-archive): Add tree-nomudflap.o.
> 	(cc1): Add dependency on @TREEBROWSER@.
> 	(c-decl.o): Add dependency on TREE_DUMP_H.
> 	(c-dump.o): Likewise.
> 	(c-common.o): Add dependency on tree-iterator.h
> 	(c-pretty-print.o): Add dependency on DIAGNOSTIC_H.
> 	(gtype-desc.o): Add dependency on TREE_FLOW_H.
> 	(tree.o): Add dependency on tree-iterator.h,
> 	BASIC_BLOCK_H and TREE_FLOW_H.
> 	(tree-dump.o): Depend on TREE_DUMP_H instead of tree-dump.h.
> 	(langhooks.o): Add dependency on TREE_SIMPLE_H.
> 	(tree-alias-type.o, tree-alias-ander.o,
> 	tree-alias-common.o, tree-ssa.o, tree-into-ssa.o,
> 	tree-outof-ssa.o, tree-ssa-dse.o, tree-ssa-forwprop.o,
> 	tree-ssa-phiopt.o, tree-nrv.o, tree-ssa-copy.o,
> 	tree-ssa-dom.o, tree-ssanames.o, tree-phinodes.o,
> 	domwalk.o, tree-ssa-live.o, tree-ssa-copyrename.o,
> 	tree-ssa-pre.o, tree-cfg.o, tree-tailcall.o,
> 	tree-nested.o, tree-iterator.o, tree-dfa.o,
> 	tree-ssa-operands.o, tree-eh.o, tree-ssa-loop.o,
> 	tree-ssa-alias.o, tree-optimize.o, c-simplify.o,
> 	gimplify.o, gimple-low.o, tree-browser.o, tree-simple.o,
> 	tree-mudflap.o, c-mudflap.o, tree-nomudflap.o,
> 	tree-pretty-print.o, tree-ssa-dce.o, tree-ssa-ccp.o,
> 	tree-sra.o, tree-complex.o, tree-profile.o,
> 	rtl-profile.o): New rules.
> 	(function.o): Add dependency on basic-block.h
> 	(expr.o): Add dependency on tree-iterator.h.
> 	(sibcall.o): Remove.
> 	(profile.o): Depend on TREE_FLOW_H instead of TREE_H.
> 	(cfg.o): Add dependency on TIMEVAR_H.
> 	(cfghooks.o): Add dependency on TREE_FLOW_H.
> 	(reg-stack.o): Add dependency on basic-block.h.
> 	(GTFILES): Add hwint.h, tree-mudflaph.c, tree-flow.h,
> 	c-objc-common.c, c-common.c, c-parse.in, tree-ssanames.c,
> 	tree-eh.c, tree-phinodes.c, tree-cfg.c, tree-dfa.c,
> 	tree-ssa-ccp.c, tree-iterator.c, gimplify.c,
> 	tree-alias-type.h, tree-alias-common.h,
> 	tree-alias-type.c, tree-alias-common.c,
> 	tree-ssa-operands.h, tree-ssa-operands.c, tree-profile.c,
> 	rtl-profile.c and tree-nested.c.
> 	(gt-tree-alias-common.h, gt-tree-mudflap.h,
> 	gt-tree-ssa-ccp.h, gt-tree-eh.h, gt-tree-ssanames.h,
> 	gt-tree-iterator.h, gt-gimplify.h, gt-tree-phinodes.h,
> 	gt-tree-cfg.h, gt-tree-nested.h): New rules.
> 	(TEXI_GCCINT_FILES): Add cfg.texi and tree-ssa.texi.
> 	* basic-block.h: Include predict.h
> 	(struct edge_def): Add GTY marker.
> 	Change field 'insns' to be a union of tree and rtx.
> 	(EDGE_TRUE_VALUE): Define.
> 	(EDGE_FALSE_VALUE): Define.
> 	(EDGE_EXECUTABLE): Define.
> 	(struct bb_ann_d): Forward declare.
> 	(struct basic_block_def): Add GTY marker.
> 	Remove fields head_tree and end_tree.
> 	Add fields stmt_list, rbi and tree_annotations.
> 	(struct reorder_block_def): Define.
> 	(basic_block_info): Add GTY marker.
> 	(ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Change to global
> 	variables instead of macros.
> 	(flow_call_edges_add): Remove declaration.
> 	(make_eh_edge): Remove declaration.
> 	(brief_dump_cfg, find_edge, tree_predicted_by_p,
> 	rtl_predicted_by_p, tree_predict_edge, rtl_predict_edge,
> 	predict_edge_def, rtl_make_eh_edge, find_basic_blocks,
> 	cleanup_cfg, delete_unreachable_blocks, merge_seq_blocks,
> 	alloc_rbi_pool, initialize_bb_rbi, free_rbi_pool): Declare.
> 	(try_redirect_by_replacing_jump): Modfiy return type to
> 	edge instead of bool.
> 	* bb-reorder.c (copy_bb): Call duplicate_block
> 	instead of cfg_layout_duplicate_bb.
> 	(copy_bb_p): Call can_duplicate_block_p instead of
> 	cfg_layout_can_duplicate_bb_p.
> 	* bitmap.c (bitmap_first_set_bit): Abort if word
> 	wasn't found.
> 	(bitmap_last_set_bit): Likewise.
> 	* builtin-types.def (DEF_FUNCTION_TYPE_2): Add
> 	(DEF_FUNCTION_TYPE_3): Add.
> 	* builtins.c (c_strlen): Make extern.
> 	(builtin_save_expr): New.
> 	(expand_builtin_nonlocal_goto): New.
> 	(expand_builtin_constant_p): Remove.
> 	(expand_builtin_mathfn): Call builtin_save_expr instead
> 	of save_expr.
> 	(expand_builtin_mathfn_2): Likewise.
> 	(expand_builtin_strcmp): Likewise.
> 	(expand_builtin_strncmp): Likewise.
> 	(expand_builtin_strcat): Likewise.
> 	(fold_builtin_cabs): Likewise.
> 	(expand_builtin_alloca): Don't trigger if -fmudflap is
> 	given.
> 	(build_string_literal): Set TREE_INVARIANT on new node.
> 	(expand_builtin_profile_fun): New.
> 	(round_trampoline_addr): New.
> 	(expand_builtin_init_trampoline): New.
> 	(expand_builtin_adjust_trampoline): New.
> 	(expand_builtin) <BUILT_IN_NEXT_ARG>: Call simplify_builtin_next_arg.
> 	<BUILT_IN_CONSTANT_P>: Return const0_rtx;
> 	<BUILT_IN_STACK_ALLOC, BUILT_IN_STACK_SAVE,
> 	BUILT_IN_STACK_RESTORE, BUILT_IN_NONLOCAL_GOTO,
> 	BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT,
> 	BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE>:
> 	Handle.
> 	(fold_builtin_expect): New.
> 	(fold_builtin_isascii): Don't return non-constant results
> 	in GIMPLE form.
> 	(fold_builtin_isdigit): Likewise.
> 	(fold_builtin_1): New.
> 	(fold_builtin): Call it.
> 	(build_function_call_expr): Update call to build a new
> 	CALL_EXPR.
> 	(purge_builtin_constant_p): Remove.
> 	(simplify_builtin, simplify_builtin_memcmp,
> 	simplify_builtin_strcmp, simplify_builtin_strncmp,
> 	simplify_builtin_strpbrk, simplify_builtin_strstr,
> 	simplify_builtin_strchr, simplify_builtin_strrchr,
> 	simplify_builtin_strcat, simplify_builtin_strncat,
> 	simplify_builtin_strspn, simplify_builtin_strcspn,
> 	simplify_builtin_next_arg, simplify_builtin_va_start,
> 	simplify_builtin_sprintf): New.
> 	* builtins.def (BUILT_IN_STACK_ALLOC,
> 	BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE,
> 	BUILT_IN_INIT_TRAMPOLINE, BUILT_IN_ADJUST_TRAMPOLINE,
> 	BUILT_IN_NONLOCAL_GOTO, BUILT_IN_PROFILE_FUNC_ENTER,
> 	BUILT_IN_PROFILE_FUNC_EXIT): Define.
> 	* c-common.c: Include tree-iterator.h and hashtab.h.
> 	(lang_statement_code_p): Declare.
> 	(lang_gimplify_stmt): Declare.
> 	(fix_string_type): Set TREE_INVARIANT for value.
> 	(pointer_int_sum): Rely on build to set TREE_CONSTANT.
> 	(c_type_hash): New.
> 	(c_common_get_alias_set): Handle multiple type nodes
> 	referring to "the same" type, currently for C90 only.
> 	(c_add_case_label): Use create_artificial_label.
> 	(finish_label_address_expr): Don't set TREE_CONSTANT on
> 	result.
> 	(c_expand_expr): Don't handle STMT_EXPR.
> 	(handle_alias_attribute): Marke aliased variables to be
> 	TREE_STATIC.
> 	(handle_nonnull_attribute): Initialize arg_num.
> 	(check_function_nonnull): Likewise.
> 	(c_walk_subtrees): New.
> 	(c_estimate_num_insns_1): Don't handle
> 	EXPR_WITH_FILE_LOCATION nor FILE_STMT.
> 	(c_decl_uninit_1): Remove.
> 	(c_decl_uninit): Remove.
> 	(c_warn_unused_result): New.
> 	* c-common.def (ASM_STMT): Change number of operands
> 	to 4.
> 	(FILE_STMT): Remove.
> 	* c-common.h (lang_expand_stmt, lang_expand_decl_stmt):
> 	Remove.
> 	(lang_gimplify_stmt): Add.
> 	(expand_stmt): Remove.
> 	(ASM_CV_QUAL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
> 	ASM_CLOBBERS, STMT_EXPR_WARN_UNUSED_RESULT,
> 	ASM_VOLATILE_P, FILE_STMT_FILENAME_NODE,
> 	FILE_STMT_FILENAME, STMT_LINENO, STMT_LINENO_FOR_FN_P,
> 	ASM_INPUT_P, DECL_C_HARD_REGISTER): Remove.
> 	(genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
> 	genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
> 	genrtl_while_stmt, genrtl_do_stmt, genrtl_return_stmt,
> 	genrtl_for_stmt, genrtl_break_stmt, genrtl_continue_stmt,
> 	genrtl_scope_stmt, genrtl_switch_stmt, genrtl_case_label,
> 	genrtl_compound_stmt, genrtl_asm_stmt,
> 	genrtl_cleanup_stmt, c_decl_uninit): Remove.
> 	(c_do_switch_warnings, c_gimplify_expr, c_walk_subtrees,
> 	c_tree_chain_matters_p, c_warn_unused_result,
> 	c_genericize, c_gimplify_stmt, stmt_expr_last_stmt):
> 	Declare.
> 	* c-convert.c (convert): Make convert work when
> 	converting to compatible types across translation unit.
> 	* c-decl.c: Include langhooks.h, tree-mudflap.h,
> 	tree-simple.h, diagnostic.h and tree-dump.h
> 	(merge_decls): Initialize oldtype to NULL.
> 	(finish_decl): Use DECL_HARD_REGISTER instead of
> 	DECL_C_HARD_REGISTER.
> 	(check_bitfield_type_and_width): Check for null
> 	lang_type_specific when check the precision of an enum.
> 	(grokdeclarator): Immediately layout an ARRAY_TYPE used
> 	in a pointer-to-array declarator.
> 	(finish_struct): Clear allocated struct lang_type.
> 	(finish_enum): Set enum_min and enum_max.  Set
> 	TYPE_MIN/MAX_VALUE to the limits of the compatible type,
> 	not to the enumerators.
> 	(set_decl_nonlocal): New.
> 	(store_parm_decls): Use it via walk_tree.
> 	(c_finalize): New.
> 	(finish_function): When !targetm.have_ctors_dtors,
> 	record static constructors and destructors here...
> 	(c_expand_body_1): ... not here.
> 	(c_expand_decl): Rename from c_expand_decl_stmt.
> 	Handle all C-specific expansion semantics.
> 	* c-dump.c (dump_stmt): Use EXPR_LOCUS instead of
> 	STMT_LINENO.
> 	* c-format.c (handle_format_arg_attribute): Initialize
> 	format_num.
> 	* c-lang.c: Include tree-inline.h
> 	(LANG_HOOKS_EXPAND_DECL,
> 	LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
> 	LANG_HOOKS_TREE_INLINING_WALK_SUBTREES,
> 	LANG_HOOKS_TREE_INLINING_TREE_CHAIN_MATTERS_P,
> 	LANG_HOOKS_GIMPLIFY_EXPR, LANG_HOOKS_TYPES_COMPATIBLE_P): Define.
> 	(LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_STMT,
> 	LANG_HOOKS_TREE_INLINING_ESTIMATE_NUM_INSNS): Remove.
> 	(c_types_compatible_p): New.
> 	* c-mudflap.c: New file.
> 	* c-objc-common.c: Include tree-mudflap.h
> 	(start_cdtor, finish_cdtor): Collapse
> 	together into
> 	(build_cdtor): ...here.  Update to construct a complete tree
> 	for the function.  No need to call push_scope, pop_scope, or
> 	clear_last_expr, or set current_function_cannot_inline.
> 	(c_missing_noreturn_ok_p): Change prototype to return
> 	bool.
> 	(c_objc_common_init): Don't set lang_missing_noreturn_ok_p.
> 	* c-opts.c (c_common_handle_option): Move handling of -fdump- to
> 	opts.c.
> 	(c_common_post_options): Don't ever use rtl inlining.
> 	* c-parse.in: Use EXPR_LOCUS instead of STMT_LINENO.
> 	* c-pragma.c (handle_pragma_redefine_extname): Define
> 	always.
> 	(init_pragma): Activate #pragma redefine_extname for mudflap.
> 	* c-pretty-print.c (pp_c_statement): Remove FILE_STMT.
> 	(pp_c_initializer): Accept any type CONSTRUCTOR.
> 	(pp_c_initializer_list): Fix code expectations for VECTOR_TYPE and
> 	COMPLEX_TYPE.
> 	(decl_name_str): New local function.
> 	(pp_c_direct_declarator): Call it.
> 	(pp_c_primary_expression): Call it.
> 	(pp_c_id_expression): Call it.
> 	(pp_c_statement): Call it.
> 	(print_c_tree): Create new pp object.
> 	* c-pretty-print.h (pp_c_tree_decl_identifier,
> 	print_c_tree): Declare.
> 	* c-semantics.c: Include langhooks.h
> 	(lang_expand_stmt, lang_expand_decl_stmt,
> 	find_reachable_label_1, find_reachable_label,
> 	expand_unreachable_if_stmt, expand_unreachable_stmt,
> 	genrtl_do_stmt_1): Remove.
> 	(begin_stmt_tree): Don't check for changed filename.
> 	Call annotate_with_locus.
> 	(finish_stmt_tree): Don't set line for end of function.
> 	(build_stmt): Don't check type nodes for
> 	side effects.
> 	(build_stmt): Set TREE_SIDE_EFFECTS.
> 	Set EXPR_LOCUS instead of STMT_LINENO.
> 	(lang_expand_stmt, lang_expand_decl_stmt,
> 	expand_cond, genrtl_do_pushlevel, genrtl_goto_stmt, genrtl_expr_stmt,
> 	genrtl_expr_stmt_value, genrtl_decl_stmt, genrtl_if_stmt,
> 	genrtl_while_stmt, genrtl_do_stmt_1, genrtl_do_stmt,
> 	genrtl_return_stmt, genrtl_for_stmt, genrtl_break_stmt,
> 	genrtl_continue_stmt, genrtl_scope_stmt, genrtl_switch_stmt,
> 	genrtl_case_label, genrtl_compound_stmt, genrtl_asm_stmt,
> 	genrtl_cleanup_stmt, expand_stmt, find_reachable_label,
> 	find_reachable_label_1, expand_unreachable_if_stmt,
> 	expand_unreachable_stmt): Remove.
> 	(prep_stmt): Use EXPR_LOCUS instead of STMT_LINENO.
> 	* c-simplify.c: New file.
> 	* c-tree.h (C_LANG_TREE_NODE_CHAIN_NEXT): Define.
> 	(struct lang_type): Add fields enum_min and enum_max.
> 	(c_expand_decl_stmt, c_missing_noreturn_ok_p): Remove.
> 	(c_expand_decl, c_missing_noreturn_ok_p,
> 	c_types_compatible_p): Declare.
> 	* c-typeck.c (tagged_types_tu_compatible_p): Allow for
> 	compiler-generated TYPE_DECLs without a DECL_ORIGINAL_TYPE.
> 	(default_function_array_conversion): Rely on build to
> 	set TREE_CONSTANT.
> 	(parser_build_binary_op, pointer_diff): Likewise.
> 	(build_unary_op, build_binary_op): Likewise.
> 	(build_array_ref):
> 	(build_external_ref): Set TREE_INVARIANT.
> 	(build_c_cast, pop_init_level): Likewise.
> 	(process_init_element): Use ASM_VOLATILE_P.
> 	(build_asm_expr): Adapt to GENERIC/GIMPLE syntax.
> 	(c_finish_case): Call c_do_switch_warnings.
> 	* c.opt (fdump-): Remove.
> 	* calls.c (try_to_integrate): Remove.
> 	(prepare_call_address): Replace fndecl arg with a
> 	precomputed static chain value.
> 	(emit_call_1): New argument for full call expr.
> 	(flags_from_decl_or_type): Call special_function_p.
> 	(initialize_argument_information): Add argument
> 	may_tailcall.
> 	(purge_reg_equiv_notes): New.
> 	(expand_call): Do not try to expand calls inline.
> 	(fixup_tail_calls): New.
> 	* cfg.c: Include timevar.h and ggc.h.
> 	(bb_pool, edge_pool): Remove.
> 	(ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Declare.
> 	(entry_exit_blocks): Remove.
> 	(rbi_pool): Declare.
> 	(init_flow): Do not create pools.
> 	Allocate entry/exit block.
> 	(free_edge, alloc_block, expunge_block, unchecked_make_edge): Use GGC.
> 	(alloc_rbi_pool, free_rbi_pool, initialize_bb_rbi): New.
> 	(unlink_block): Clear b->prev_bb and b->next_bb.
> 	(compact_blocks): Clear all slots of BASIC_BLOCK array.
> 	(dump_flow_info): Work on trees too.
> 	(dump_cfg_bb_info): New.
> 	(brief_dump_cfg): New.
> 	* cfganal.c (need_fake_edge_p, flow_call_edges_add): Remove.
> 	(find_edge): New.
> 	* cfgbuild.c (rtl_make_eh_edge): Rename from
> 	make_eh_edge.  Update all users.
> 	(find_basic_blocks): Don't call VARRAY_FREE on
> 	basic_block_info.
> 	* cfgcleanup.c (outgoing_edges_match): Initialize newpos1
> 	and newpos2.
> 	(delete_unreachable_blocks): Return changed status.
> 	(merge_seq_blocks): New.
> 	* cfghooks.c: Include tree-flow.h
> 	(tree_register_cfg_hooks, ir_type): New.
> 	(redirect_edge_and_branch): Change return type to edge.
> 	(predict_edge, predicted_by_p, can_duplicate_block_p,
> 	duplicate_block, block_ends_with_call_p,
> 	block_ends_with_condjump_p, flow_call_edges_add): New.
> 	* cfghooks.h (redirect_edge_and_branch): Change return
> 	type to edge.
> 	(predict_edge, predicted_by_p, can_duplicate_block_p,
> 	duplicate_block, block_ends_with_call_p,
> 	block_ends_with_condjump_p, flow_call_edges_add): Declare.
> 	(redirect_edge_and_branch): Change return type to edge.
> 	(struct cfg_hooks): Add fields block_ends_with_call_p,
> 	block_ends_with_condjump_p, flow_call_edges_add,
> 	predict_edge, predicted_by_p, can_duplicate_block_p and
> 	duplicate_block.
> 	(tree_cfg_hooks, ir_type, tree_register_cfg_hooks): Declare.
> 	* cfglayout.c (cfg_layout_pool, cfg_layout_initialize_rbi): Removed.
> 	(fixup_reorder_chain): Use initialize_bb_rbi.
> 	(cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Hookized.
> 	(cfg_layout_initialize): Use cfg.c rbi pool manipulation functions.
> 	(can_copy_bbs_p, copy_bbs): Use cfghooks for bb duplication.
> 	(insn_locators_initialize): Use new info about blocks.
> 	* cfglayout.h (typedef struct reorder_block_def): Moved to
> 	basic_block.h.
> 	(cfg_layout_can_duplicate_bb_p, cfg_layout_duplicate_bb): Declaration
> 	removed.
> 	* cfgloop.c: Include tree.h and tree-flow.h.
> 	* cfgloop.h (create_loop_notes): Declare.
> 	* cfgloopmanip.c (create_loop_notes): New.
> 	* cfgrtl.c (cfg_layout_create_basic_block): Use initialize_bb_rbi.
> 	(rtl_cfg_hooks, cfg_layout_rtl_cfg_hook): Fill in can_duplicate_block_p
> 	and duplicate_block fields.
> 	(create_basic_block_structure): Don't look at
> 	RTX_INTEGRATED_P.
> 	(rtl_block_ends_with_call_p): New.
> 	(rtl_block_ends_with_condjump_p): New.
> 	(need_fake_edge_p): Moved from cfganal.c.
> 	(rtl_flow_call_edges_add): Moved from cfganal.c (flow_call_edges_add).
> 	(rtl_cfg_hooks): Add rtl_block_ends_with_call_p,
> 	rtl_block_ends_with_condjump_p, rtl_flow_call_edges_add.
> 	(cfg_layout_rtl_cfg_hooks): Ditto.
> 	* cgraph.c (cgraph_mark_reachable_node): Don't force nested
> 	functions to be reachable.
> 	* cgraphunit.c (decide_is_function_needed):
> 	* cgraphunit.c (decide_is_function_needed): Nested functions of extern
> 	inline functions don't need to be output.
> 	(cgraph_assemble_pending_functions): Don't do anything
> 	special for nested functions.
> 	(cgraph_mark_functions_to_output): Likewise.
> 	(cgraph_finalize_function): Don't zap DECL_STRUCT_FUNCTION.
> 	(cgraph_analyze_function): Use estimate_num_insns.
> 	(cgraph_mark_functions_to_output): Likewise.
> 	(cgraph_estimate_growth, cgraph_clone_inlined_nodes): Likewise.
> 	(cgraph_expand_function): Allow functions to not be
> 	emitted.
> 	(cgraph_remove_unreachable_nodes):
> 	(cgraph_recursive_inlining_p): Simplify.
> 	(lookup_recursive_calls,
> 	cgraph_decide_recursive_inlining): New.
> 	(cgraph_decide_inlining_*): Update calls of
> 	cgraph_mark_inline.
> 	* combine.c (get_pos_from_mask): Always set *plen.
> 	* common.opt (fdump-, fmudflap, fmudflapth, fmudflapir,
> 	ftree-based-profiling, ftree-ccp, ftree-ch,
> 	ftree-combine-temps, ftree-copyrename, ftree-dce,
> 	ftree-dominator-opts, ftree-dse, ftree-loop-optimize,
> 	ftree-points-to, ftree-pre, ftree-sra, ftree-ter,
> 	ftree-lrs): Add.
> 	* config.in (HAVE_LD_PIE, HAVE_BANSHEE, PREFIX_INCLUDE_DIR):
> 	Undefine.
> 	* configure.ac: Add --enable-tree-browser option.
> 	Add --with-libbanshee option.
> 	Add GMPLIBS and GMPINC.
> 	* configure: Regenerate.
> 	* coverage.c (tree_ctr_tables): New.
> 	(coverage_counter_alloc): Use it.
> 	(build_ctr_info_value): Ditto.
> 	(coverage_counter_ref): Ditto.  Rename to rtl_coverage_counter_ref.
> 	(tree_coverage_counter_ref): New.
> 	* coverage.h (coverage_counter_ref): Remove declaration.
> 	(rtl_coverage_counter_ref): Declare.
> 	(tree_coverage_counter_ref): Declare.
> 	* cppexp.c (append_digit): Rearrange unsignedp/overflow setting.
> 	(eval_token, num_binary_op, num_part_mul, num_div_op): Likewise.
> 	* cse.c (fold_rtx): Do not handle CONSTANT_P_RTX.
> 	(struct cse_basic_block_data): Rename enum values to not
> 	conflict with profile.h; update all uses.
> 	* dbxout.c (dbxout_symbol_location): Don't mention integrate.c
> 	in comments.
> 	* defaults.h (TRAMPOLINE_ALIGNMENT): Move from function.c.
> 	* diagnostic.h (debug_output_buffer, dump_generic_node,
> 	print_generic_stmt, print_generic_stmt_indented,
> 	print_generic_expr, print_generic_decl,
> 	debug_generic_expr, debug_generic_stmt, debug_c_tree):
> 	Declare.
> 	* dominance.c: Cache immediate dominators.
> 	* domwalk.c: New file.
> 	* domwalk.h: New file.
> 	* dwarf2out.c (is_fortran): Support DW_LANG_Fortran95.
> 	(gen_subprogram_die): Generate a DIE for a named
> 	return value.
> 	(loc_descriptor_from_tree): Treat RESULT_DECL like VAR_DECL.
> 	(add_location_or_const_value_attribute): Likewise.
> 	(add_bound_info): Likewise.
> 	(gen_decl_die): Likewise.
> 	* emit-rtl.c (maybe_set_first_label_num): New.
> 	(copy_most_rtx): Don't copy the integrated flag.
> 	Copy the new return_val flag.
> 	* et-forest.c (MAX_NODES): Define.
> 	(record_path_before_1): Abort if len is greater than
> 	MAX_NODES.
> 	* except.c (gen_eh_region, gen_eh_region_cleanup, gen_eh_region_try,
> 	gen_eh_region_catch, gen_eh_region_allowed,
> 	gen_eh_region_must_not_throw, get_eh_region_number,
> 	get_eh_region_may_contain_throw, get_eh_region_tree_label,
> 	set_eh_region_tree_label, expand_resx_expr): New.
> 	(expand_eh_region_start, expand_start_catch): Use them.
> 	(expand_end_catch): Tidy.
> 	(note_eh_region_may_contain_throw): Take region argument.
> 	(note_current_region_may_contain_throw): New.
> 	(get_exception_filter): Export.
> 	(collect_eh_region_array): Export.
> 	(remove_unreachable_regions): Check ERT_TRY based on reachability
> 	of catches, not reachability of continue_label.  Never remove
> 	ERT_MUST_NOT_THROW regions.
> 	(collect_rtl_labels_from_trees): New.
> 	(convert_from_eh_region_ranges): Use it.
> 	(connect_post_landing_pads): Handle dying cleanups.
> 	(struct reachable_info): Add callback data.
> 	(add_reachable_handler): Invoke the callback.
> 	(foreach_reachable_handler): New.
> 	(reachable_handlers): Use it.
> 	(arh_to_landing_pad, arh_to_label): New.
> 	(can_throw_internal_1): Split out from can_throw_internal.
> 	(can_throw_external_1): Similarly.
> 	* except.h: Update.
> 	* explow.c (emit_stack_save): Remove savearea mode check.
> 	(update_nonlocal_goto_save_area): New.
> 	(allocate_dynamic_stack_space): Use it.
> 	(probe_stack_range): Never emit loop notes.
> 	* expmed.c (extract_fixed_bit_field): Always propagate the
> 	target for the shift if it is a REG.
> 	* expr.c: Include tree-iterator.h
> 	(is_zeros_p): Remove.
> 	(categorize_ctor_elements_1, categorize_ctor_elements): New.
> 	(count_type_elements): New.
> 	(mostly_zeros_p): Use them.
> 	(expr_wfl_stack): Remove.
> 	(convert_move): Do nothing if to and from are the same.
> 	(emit_block_move_via_loop): Don't emit LOOP notes.
> 	(emit_move_insn): Don't handle CONSTANT_P_RTX.
> 	(emit_move_insn_1): Don't generate inline warnings.
> 	(expand_vars, expand_var): Split from ...
> 	(expand_expr_1): ... here.
> 	(expand_expr_real, expand_expr_real_1):  Use new macros
> 	EXPR_LOCATION and EXPR_HAS_LOCATION.
> 	* expr.h (simplify_builtin_fputs,
> 	simplify_builtin_strcpy, simplify_builtin_strncpy,
> 	expand_var, fixup_tail_calls,
> 	update_nonlocal_goto_save_area): Declare.
> 	(lookup_static_chain, expand_inline_function,
> 	mark_seen_cases): Remove.
> 	(prepare_call_address): Change type of 2nd argument to
> 	rtx.
> 	* final.c (profile_function): Update static chain test.
> 	(final): Don't look at RTX_INTEGRATED_P.
> 	* flags.h (flag_mudflap, flag_mudflap_threads,
> 	flag_mudflap_ignore_reads, flag_tree_pre, flag_tree_ccp,
> 	flag_tree_dce, flag_tree_combine_temps,
> 	flag_tree_live_range_split, flag_tree_dom, flag_tree_ch,
> 	flag_tree_dse, flag_tree_sra, flag_tree_copyrename,
> 	flag_tree_points_to): Declare.
> 	(enum pta_type): Declare.
> 	* flow.c (lang_missing_noreturn_ok_p): Remove.
> 	(check_function_return_warnings): Remove.
> 	(update_life_info): Update comments.
> 	(free_basic_block_vars): Don't call VARRAY_FREE for
> 	basic_block_info.
> 	(regno_uninitialized): Remove.
> 	* fold-const.c (int_const_binop): Make extern.
> 	(non_lvalue): Rely on build to set TREE_CONSTANT.
> 	(operand_equal_p): Replace only_const argument with
> 	flags.  Allow pure functions if OEP_PURE_SAME.
> 	(fold): Use OEP_ONLY_CONST.
> 	(invert_truthvalue) <NOP_EXPR> Break if argument is of
> 	boolean type.
> 	(fold_relational_hi_lo,
> 	nondestructive_fold_binary_to_constant,
> 	nondestructive_fold_unary_to_constant,
> 	fold_read_from_constant_string): New.
> 	* function.c (struct function): Remove calls_constant_p.
> 	(current_function_calls_constant_p): Remove.
> 	(inline_function_decl): Remove.
> 	(put_var_into_stack): Don't use it.
> 	(fix_lexical_addr): Likewise.
> 	(inline_function_decl): Remove extern declaration.
> 	(TRAMPOLINE_ALIGNMENT): Move to defaults.h.
> 	(trampolines_created): Move to varasm.c.
> 	(free_after_compilation): Update for removed fields.
> 	(allocate_struct_function): Likewise.
> 	(delete_handlers, lookup_static_chain): Remove.
> 	(fix_lexical_addr): Don't consider non-local variable refs.
> 	(trampoline_address): Remove.
> 	(round_trampoline_addr): Move to builtins.c.
> 	(adjust_trampoline_addr): Remove.
> 	(expand_function_start): Update for changes to static chain
> 	and nonlocal goto handling.
> 	(initial_trampoline): Move to varasm.c.
> 	(expand_function_end): Don't build trampolines or kill
> 	unreferenced nonlocal goto labels.
> 	(free_after_compilation): Don't set it.
> 	(expand_function_end): Likewise.
> 	(setjmp_vars_warning): Rename from
> 	uninitialized_vars_warning, remove uninitialized vars warning.
> 	(uninitialized_vars_warning): Remove old comment
> 	and check for DECL_INITIAL, replace with a check of TREE_NO_WARNING
> 	and do not call the langhook.
> 	(expand_function_start, expand_function_end): Don't do
> 	function instrumentation here.
> 	(clear_block_marks): Rename from reorder_blocks_0, export.
> 	(blocks_nreverse): Export.
> 	(uninitialized_vars_warning): Use DECL_RTL_SET_P to test for presence
> 	of rtl.
> 	(reset_block_changes, record_block_change, finalize_block_changes,
> 	check_block_change, free_block_changes): New functions.
> 	(assign_parms): Setting of current_function_stdarg
> 	moved ...
> 	(allocate_struct_function): ... here.
> 	* function.h (struct function): Remove x_nonlocal_labels,
> 	x_nonlocal_goto_handler_slots, x_nonlocal_goto_stack_level,
> 	x_context_display, x_trampoline_list, needs_context.
> 	Add static_chain_decl, nonlocal_goto_save_area.
> 	(struct function): Remove x_clobber_return_insn.
> 	Add tail_call_emit field, last_label_uid,
> 	unexpanded_var_list, dont_emit_block_notes,
> 	ib_boundaries_block, function_end_locus and saved_tree/saved_args.
> 	(clear_block_marks): Declare.
> 	* gcc.c (MFWRAP_SPEC, MFLIB_SPEC): Add -fmudflapth support.
> 	(mfwrap_spec, mflib_spec): Declare.
> 	(cpp_unique_options, cc1_options): Ditto.
> 	(default_compilers): Add .F and .f90.
> 	(static_specs): Add mfwrap and mflib.
> 	* gcse.c (want_to_gcse_p, gcse_constant_p): Don't handle
> 	CONSTANT_RTX_P.
> 	(reg_used_on_edge, reg_killed_on_edge, bypass_block):
> 	Update to match insns field in struct edge_def.
> 	* gdbinit.in (pgs, pge): Define.
> 	* genattrtab.c (ATTR_PERMANENT_P): Use the return_val flag
> 	instead of the integrated flag.
> 	* gengtype-lex.l (IWOrD): Add HOST_WIDEST_INT
> 	* gengtype-yacc.y (bitfieldlen): Add empty action.
> 	(struct_fields): Accept unnamed bitfields.
> 	(bitfieldlen): Split from ...
> 	(bitfieldopt): ... here.
> 	* gengtype.c (ifiles): Add tree-alias-type.h and
> 	tree-flow.h.
> 	* genrecog.c (validate_pattern): Do not handle
> 	CONSTANT_P_RTX.
> 	* gimple-low.c: New file.
> 	* gimplify.c: New file.
> 	* haifa-sched.c (priority): Do not handle CONSTANT_P_RTX.
> 	(restore_line_notes): Do not set RTX_INTEGRATED_P.
> 	* ifcvt.c (dead_or_predicable): Initialize local variable
> 	'earliest'.
> 	* input.h (expr_wfl_stack): Remove.
> 	* integrate.c (INTEGRATE_THRESHOLD): Remove.
> 	(setup_initial_hard_reg_value_integration): Likewise.
> 	(initialize_for_inline): Likewise.
> 	(note_modified_parmregs): Likewise.
> 	(integrate_parm_decls): Likewise.
> 	(process_reg_param): Likewise.
> 	(save_parm_insns): Likewise.
> 	(copy_insn_list): Likewise.
> 	(copy_insn_notes): Likewise.
> 	(compare_blocks): Likewise.
> 	(find_block): Likewise.
> 	(inlining): Likewise.
> 	(function_cannot_inline_p): Likewise.
> 	(parmdecl_map): Likewise.
> 	(in_nonparam_insns): Likewise.
> 	(save_for_inline): Likewise.
> 	(FIXED_BASE_PLUS): Likewise.
> 	(expand_inline_function): Likewise.
> 	(copy_rtx_and_substitute): Don't look at map->integrating,
> 	map->inline_target, and inlining, since we are never copying
> 	for integrating.
> 	Don't abort on RTX_INTEGRATED_P.
> 	(old_fun): Remove.
> 	(output_inline_function): Remove.
> 	* integrate.h (struct inline_map): Remove fields integrating,
> 	block_map, leaf_reg_map, inline_target, and local_return_label.
> 	* jump.c (next_nonnote_insn_in_loop, duplicate_loop_exit_test,
> 	copy_loop_headers, never_reached_warning): Removed.
> 	(any_uncondjump_p): Reject nonlocal goto.
> 	* langhooks-def.h (lhd_types_compatible_p,
> 	lhd_expand_decl, lhd_gimplify_expr): Declare.
> 	(LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
> 	LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
> 	LANG_HOOKS_FUNCTION_LEAVE_NESTED,
> 	LANG_HOOKS_FUNCTION_MISSING_NORETURN_OK_P,
> 	LANG_HOOKS_GIMPLIFY_EXPR,
> 	LANG_HOOKS_GIMPLE_BEFORE_INLINING,
> 	LANG_HOOKS_EXPAND_DECL, LANG_HOOKS_TYPES_COMPATIBLE_P,
> 	LANG_HOOKS_GIMPLIFY_EXPR,
> 	LANG_HOOKS_GIMPLE_BEFORE_INLINING): Define.
> 	(LANG_HOOKS_DECL_UNINIT, LANG_HOOKS_RTL_EXPAND_START,
> 	LANG_HOOKS_RTL_EXPAND_STMT, LANG_HOOKS_RTL_EXPAND_END,
> 	LANG_HOOKS_FUNCTION_LEAVE_NESTED,
> 	LANG_HOOKS_RTL_EXPAND_INITIALIZER,
> 	LANG_HOOKS_DECL_UNINIT,
> 	LANG_HOOKS_RTL_EXPAND_INITIALIZER): Remove.
> 	* langhooks.c: Include tree-simple.h.
> 	(lhd_expand_decl): New.
> 	(lhd_types_compatible_p): New.
> 	(lhd_decl_uninit): Remove.
> 	(lhd_gimplify_expr): New.
> 	* langhooks.h (struct lang_hooks_for_rtl_expansion):
> 	Remove.
> 	(struct lang_hooks_for_functions): Add field
> 	missing_noreturn_ok_p.
> 	(struct lang_hooks): Add field expand_decl,
> 	types_compatible_p, gimplify_expr and
> 	gimple_before_inlining.
> 	Remove fields decl_uninit and rtl_expand
> 	* opts.c (decode_options): Set flag_tree_ccp,
> 	flag_tree_dce, flag_tree_dom, flag_tree_dse,
> 	flag_tree_pre, flag_tree_ter,
> 	flag_tree_live_range_split, flag_tree_sra,
> 	flag_tree_copyrename and flag_tree_ch at -O1 and higher.
> 	(common_handle_option): Handle OPT_fdump_, OPT_fmudflap,
> 	OPT_fmudflapth, OPT_fmudflapir,
> 	OPT_ftree_based_profiling, OPT_ftree_ccp, OPT_ftree_dce,
> 	OPT_ftree_combine_temps, OPT_ftree_ter, OPT_ftree_lrs,
> 	OPT_ftree_dominator_opts, OPT_ftree_copyrename,
> 	OPT_ftree_ch, OPT_ftree_dse, OPT_ftree_sra,
> 	OPT_ftree_points_to_ and OPT_ftree_pre.
> 	* output.h (regno_uninitialized, find_basic_blocks,
> 	cleanup_cfg, delete_unreachable_blocks,
> 	check_function_return_warnings): Remove.
> 	* params.def (PARAM_MAX_INLINE_INSNS_RECURSIVE,
> 	PARAM_MAX_INLINE_INSNS_RECURSIVE_AUTO,
> 	PARAM_MAX_INLINE_RECURSIVE_DEPTH,
> 	PARAM_MAX_INLINE_RECURSIVE_DEPTH_AUTO,
> 	PARAM_GLOBAL_VAR_THRESHOLD, PARAM_MAX_ALIASED_VOPS):
> 	* params.h (GLOBAL_VAR_THRESHOLD, MAX_ALIASED_VOPS):
> 	Define.
> 	* passes.c (rest_of_decl_compilation):
> 	(rest_of_handle_sibling_calls): Remove.
> 	(rest_of_handle_inlining): Remove.
> 	(rest_of_handle_gcse): Do not run
> 	purge_builtin_constant_p.
> 	(rest_of_compilation): Update.
> 	Do not call copy_loop_headers.
> 	Do rtl-based profiling only when
> 	!flag_tree_based_profiling.  Register rtl-based profiling
> 	hooks.
> 	* predict.c:  Include tree-flow.h, ggc.h, tree-dump.h
> 	(predicted_by_p): Rename to ...
> 	(rtl_predicted_by_p): .. this one; make global
> 	(tree_predicted_by_p): New.
> 	(dump_prediction): Add FILE argument.
> 	(predict_edge): Rename to ...
> 	(rtl_predict_edge): .. this one.
> 	(tree_predict_edge): New.
> 	(combine_predictions_for_insn): Update calls of predict_edge.
> 	(predict_loops): Break out from ...
> 	(estimate_probability): ... here; update comments; move updating
> 	of unknown probabilities from ...
> 	(estimate_bb_frequencies): ... here.
> 	(combine_predictions_for_bb): New.
> 	(tree_predict_by_opcode): New.
> 	(tree_estimate_probability): New.
> 	* predict.def (PRED_TREE_POINTER, PRED_TREE_OPCODE_POSITIVE,
> 	PRED_TREE_OPCODE_NONEQUAL, PRED_TREE_FPOPCODE): New predictors.
> 	* predict.h: Add include guard.
> 	(predict_edge, predict_edge_def): Move prototypes to basic_block.h
> 	* pretty-print.c (pp_write_text_to_stream): Make extern.
> 	* pretty-print.h (pp_write_text_to_stream): Declare.
> 	* print-rtl.c (print_rtx): Don't print the integrated flag.
> 	Print the return_val flag.
> 	* print-tree.c: Use TREE_FILENAME and TREE_LINENO instead
> 	of DECL_SOURCE_FILE and DECL_SOURCE_LINE respectively.
> 	Remove support for EXPR_WITH_FILE_LOCATION nodes.
> 	(print_node): Print TREE_INVARIANT and TREE_VISITED.
> 	* profile.c: Include cfghooks.h, tree-flow.h.
> 	(profile_hooks): New.
> 	(profile_dump_file): New.
> 	(instrument_edges): Use hooks instead of RTL-specific code.
> 	(instrument_values): Ditto.
> 	(get_exec_counts): Ditto.
> 	(compute_branch_probabilities): Ditto.
> 	(compute_value_histograms): Ditto.
> 	(branch_prob): Ditto.
> 	(find_spanning_tree): Ditto.
> 	(end_branch_prob): Ditto.
> 	(gen_edge_profiler): Move to rtl-profile.c (rtl_gen_edge_profiler).
> 	(gen_interval_profiler): Ditto (rtl_gen_interval_profiler).
> 	(gen_pow2_profiler): Ditto (rtl_gen_pow2_profiler).
> 	(gen_one_value_profiler): Ditto (rtl_gen_one_value_profiler).
> 	(tree_register_profile_hooks): New.
> 	(rtl_register_profile_hooks): New.
> 	* ra-rewrite.c (rewrite_program): Clear variable info.
> 	* recog.c (immediate_operand): Do not handle CONSTANT_P_RTX.
> 	* regs.h: Add include guards.
> 	* reload.c (decompose): Clear val using memset.
> 	* rtl.def (CONSTANT_P_RTX): Remove.
> 	* rtl.h (CONSTANT_P): Do not handle CONSTANT_P_RTX.
> 	(copy_loop_headers): Remove.
> 	(struct rtx_def): Replace the integrated flag with the
> 	return_val flag.
> 	(maybe_set_first_label_num): Declare.
> 	(init_branch_prob): Move declaration to value-prof.h.
> 	(end_branch_prob): Ditto.
> 	(branch_prob): Ditto.
> 	(never_reached_warning): Don't declare it.
> 	* rtlanal.c (get_related_value): Initialize get_jump_table_offset
> 	(hoist_insn_to_edge): Update to match field insns in
> 	struct edge_def.
> 	* sbitmap.c (sbitmap_realloc): New.
> 	* sbitmap.h (sbitmap_realloc): Declare.
> 	* sibcall.c: Remove file.
> 	* simplify-rtx.c (simplify_rtx): Do not handle
> 	CONSTANT_P_RTX.
> 	* stmt.c (parse_output_constraint): Don't warn for read-write
>         memory operand.
> 	(tail_recursion_args): Use types_compatible_p langhook.
> 	(force_label_rtx): Don't look at inline_function_decl.
> 	(label_rtx): Set LABEL_PRESERVE_P appropriately.
> 	(expand_label): Handle DECL_NONLOCAL and FORCED_LABEL.
> 	(declare_nonlocal_label): Remove.
> 	(expand_goto): Don't handle nonlocal gotos.
> 	(expand_nl_handler_label): Remove.
> 	(expand_nl_goto_receivers): Remove.
> 	(expand_end_bindings): Don't expand_nl_goto_receivers.  Use
> 	update_nonlocal_goto_save_area.
> 	(expand_expr_stmt_value): Check TREE_NO_WARNING.
> 	(warn_if_unused_value): Likewise.
> 	(expand_start_loop, expand_loop_continue_here,
> 	expand_end_loop): Don't create loop notes.
> 	(all_cases_count, BITARRAY_TEST, BITARRAY_SET,
> 	mark_seen_cases, check_for_full_enumeration_handling): Remove.
> 	(expand_end_case_type): Don't do warn_switch handling.
> 	(pushcase, pushcase_range) Update add_case_node calls.
> 	(add_case_node): Add dont_expand_label argument.
> 	(same_case_target_p): Don't search rtl.
> 	(expand_start_bindings_and_block, expand_end_bindings):
> 	Don't emit block notes when dont_emit_block_notes.
> 	(using_eh_for_cleanups_p): Export.
> 	(expand_return): Allow any typed rhs.
> 	(expand_stack_alloc): New.
> 	(expand_stack_save, expand_stack_restore): New.
> 	(containing_blocks_have_cleanups_or_stack_level): New
> 	function.
> 	(asm_op_is_mem_input): New fn.
> 	(expand_asm_expr): New fn.
> 	(warn_if_unused_value): Check operand 0 of SAVE_EXPR
> 	nodes.
> 	* stor-layout.c (layout_type): Just return if type is
> 	error_mark_node.
> 	(update_alignment_for_field): Export.
> 	(variable_size): We don't care about global_bindings_p if
> 	the frontend doesn't want a list of the expressions.
> 	* system.h: Poison INTEGRATE_THRESHOLD.
> 	* timevar.def (TV_TREE_GIMPLIFY, TV_TREE_EH, TV_TREE_CFG,
> 	TV_TREE_CLEANUP_CFG, TV_TREE_PTA, TV_TREE_MAY_ALIAS,
> 	TV_TREE_INSERT_PHI_NODES, TV_TREE_SSA_REWRITE_BLOCKS,
> 	TV_TREE_SSA_OTHER, TV_TREE_OPS,
> 	TV_TREE_SSA_DOMINATOR_OPTS, TV_TREE_SRA, TV_TREE_CCP,
> 	TV_TREE_SPLIT_EDGES, TV_TREE_PRE, TV_TREE_PHIOPT,
> 	TV_TREE_FORWPROP, TV_TREE_DCE, TV_TREE_CD_DCE,
> 	TV_TREE_DSE, TV_TREE_LOOP, TV_TREE_CH,
> 	TV_TREE_SSA_TO_NORMAL, TV_TREE_SSA_TO_NORMAL,
> 	TV_TREE_NRV, TV_TREE_COPY_RENAME, TV_TREE_SSA_VERIFY,
> 	TV_TREE_STMT_VERIFY, TV_DOM_FRONTIERS,
> 	TV_CONTROL_DEPENDENCES): Define.
> 	* toplev.c: Include tree-alias-common.h
> 	(current_file_decl, flag_mudflap, flag_mudflap_threads,
> 	flag_mudflap_ignore_reads, flag_tree_based_profiling,
> 	flag_tree_gvn, flag_tree_points_to, flag_tree_ccp,
> 	flag_tree_dce, flag_tree_ch, flag_tree_sra,
> 	flag_tree_combine_temps, flag_tree_ter,
> 	flag_tree_live_range_split, flag_tree_dom,
> 	flag_tree_copyrename, flag_tree_dse): Declare.
> 	(f_options): Add tree-based-profiling, tree-gvn,
> 	tree-pre, tree-ccp, tree-dce,
> 	tree-dominator-opts, tree-copyrename, tree-dse,
> 	tree-combine-temps, tree-ter, tree-lrs and tree-ch.
> 	(wrapup_global_declarations): Don't output nested inlined functions.
> 	(general_init): Call init_tree_optimization_passes.
> 	(process_options): Sorry for -ftree-based-profiling plus
> 	-ftest-coverage or -fprofile-values.
> 	* toplev.h (init_tree_optimization_passes,
> 	flag_tree_based_profiling): Declare.
> 	* tracer.c (tail_duplicate): Use cfghooks for bb duplication.
> 	* tree-alias-ander.c: New file.
> 	* tree-alias-ander.h: New file.
> 	* tree-alias-common.c: New file.
> 	* tree-alias-common.h: New file.
> 	* tree-alias-type.c: New file.
> 	* tree-alias-type.h: New file.
> 	* tree-browser.c: New file.
> 	* tree-browser.def: New file.
> 	* tree-cfg.c: New file.
> 	* tree-complex.c: New file.
> 	* tree-dfa.c: New file.
> 	* tree-dump.c (dump_enable_all): New.
> 	(dequeue_and_dump): Do not handle EXPR_WITH_FILE_LOCATION.
> 	(dump_node): Remove const from field suffix and swtch.
> 	(dump_files): Add null entry, .generic, .nested, .vcg,
> 	.xml and a match-all entry.
> 	(extra_dump_files, extra_dump_files_in_use,
> 	extra_dump_files_alloced): Declare
> 	(dump_option_value_info): Add raw, details, stats,
> 	blocks, vops, lineno, uid and all.
> 	(dump_register): New.
> 	(get_dump_file_info): New.
> 	(dump_begin): Call it.
> 	Do nothing for TDI_none.
> 	(dump_begin): Include phase number in dump filename.
> 	(dump_enable_all): New.
> 	(dump_switch_p_1): Split out from dump_switch_p.
> 	(dump_switch_p): Handle extra_dump_files.
> 	Start our scan at TDI_none + 1.
> 	If -fdump-tree-all was given, call dump_enable_all.
> 	* tree-dump.h: Include splay-tree.h.
> 	(dump_function, dump_function_to_file, dump_register):
> 	Declare.
> 	* tree-eh.c: New file.
> 	* tree-flow-inline.h: New file.
> 	* tree-flow.h: New file.
> 	* tree-inline.c: Re-write to handle inlining on GIMPLE.
> 	* tree-inline.h (walk_tree,
> 	walk_tree_without_duplicates): Move to tree.h.
> 	(estimate_num_insns): Declare.
> 	* tree-into-ssa.c: New file.
> 	* tree-iterator.c: New file.
> 	* tree-iterator.h: New file.
> 	* tree-mudflap.c: New file.
> 	* tree-mudflap.h: New file.
> 	* tree-nested.c: New file.
> 	* tree-nomudflap.c: New file.
> 	* tree-nrv.c: New file.
> 	* tree-optimize.c (dump_flags, vars_to_rename,
> 	in_gimple_form, all_passes, pass_gimple,
> 	pass_rebuild_bind, pass_all_optimizations, pass_del_cfg): Declare.
> 	(execute_gimple, execute_rebuild_bind,
> 	gate_all_optimizations, execute_del_cfg,
> 	register_one_dump_file, register_dump_files, dup_pass_1,
> 	init_tree_optimization_passes, execute_todo,
> 	execute_one_pass, execute_pass_list): New.
> 	(clear_decl_rtl): Remove.
> 	(tree_rest_of_compilation): Update to use tree
> 	optimizers.
> 	* tree-outof-ssa.c: New file.
> 	* tree-pass.h: New file.
> 	* tree-phinodes.c: New file.
> 	* tree-pretty-print.c: New file.
> 	* tree-profile.c: New file.
> 	* tree-simple.c: New file.
> 	* tree-simple.h: New file.
> 	* tree-sra.c: New file.
> 	* tree-ssa-alias.c: New file.
> 	* tree-ssa-ccp.c: New file.
> 	* tree-ssa-copy.c: New file.
> 	* tree-ssa-copyrename.c: New file.
> 	* tree-ssa-dce.c: New file.
> 	* tree-ssa-dom.c: New file.
> 	* tree-ssa-dse.c: New file.
> 	* tree-ssa-forwprop.c: New file.
> 	* tree-ssa-live.c: New file.
> 	* tree-ssa-live.h: New file.
> 	* tree-ssa-loop.c: New file.
> 	* tree-ssa-operands.c: New file.
> 	* tree-ssa-operands.h: New file.
> 	* tree-ssa-phiopt.c: New file.
> 	* tree-ssa-pre.c: New file.
> 	* tree-ssa.c: New file.
> 	* tree-ssanames.c: New file.
> 	* tree-tailcall.c: New file.
> 	* tree.c: Include tree-iterator.h, basic-block.h and
> 	tree-flow.h.
> 	(tree_node_kind): Add phi_nodes and ssa names.
> 	(tree_size): Handle PHI_NODE, EPHI_NODE, SSA_NAME,
> 	EUSE_NODE, EKILL_NODE, EEXIT_NODE and STATEMENT_LIST.
> 	(make_node_stat): Handle PHI_NODE and SSA_NAME.
> 	<'c'> Set TREE_INVARIANT.
> 	(copy_node_stat): Abort if trying to copy a
> 	STATEMENT_LIST.
> 	Clear TREE_VISITED.
> 	Clear annotation field.
> 	(build_constructor): Copy TREE_INVARIANT from vals.
> 	Don't clear TREE_CONSTANT.
> 	(expr_first, expr_last, expr_length): Remove.
> 	(staticp): Pass unknown component references to the language.
> 	(save_expr): Check TREE_INVARIANT instead of TREE_CONSTANT.
> 	(skip_simple_arithmetic): Likewise.
> 	(stabilize_reference_1): Likewise.
> 	(tree_node_structure): Handle PHI_NODE, EPHI_NODE,
> 	EUSE_NODE, EKILL_NODE, EEXIT_NODE, SSA_NAME and
> 	STATEMENT_LIST.
> 	(lhd_unsave_expr_now): Remove.
> 	(unsafe_for_reeval): Handle LABEL_EXPR and BIND_EXPR.
> 	(recompute_tree_invarant_for_addr_expr): New.
> 	(build1_stat): Clear EXPR_LOCUS and TREE_BLOCK.
> 	Call recompute_tree_invarant_for_addr_expr.
> 	Set TREE_INVARIANT accordingly.
> 	(build2_stat): Don't handle CALL_EXPR.
> 	(build3_stat): Don't call build2_stat for CALL_EXPRs.
> 	(build_expr_wfl): Remove.
> 	(annotate_with_file_line, annotate_with_locus): New.
> 	(simple_cst_equal): Call simple_cst_list_equal to compare
> 	CONSTRUCTOR_ELTS pointers.
> 	(iterative_hash_expr): Don't hash types associated
> 	with conversions.  Instead hash on the signedness of the
> 	toplevel object and the operand of the conversion.
> 	(dump_tree_statistics): Call ssanames_print_statistics
> 	and phinodes_print_statistics.
> 	(ephi_node_elt_check_failed, phi_node_elt_check_failed,
> 	add_var_to_bind_expr, build_empty_stmt, is_essa_node,
> 	needs_to_live_in_memory): New.
> 	(initializer_zerop): Handle VECTOR_CST.  Don't check
> 	AGGREGATE_TYPE_P for CONSTRUCTOR.
> 	* tree.def (FILTER_EXPR, CASE_LABEL_EXPR, RESX_EXPR,
> 	SSA_NAME, EUSE_NODE, EKILL_NODE, EPHI_NODE, EEXIT_NODE,
> 	PHI_NODE, CATCH_EXPR, EH_FILTER_EXPR, STATEMENT_LIST): Define.
> 	(GOTO_SUBROUTINE_EXPR): Change type to 's'.
> 	(CALL_EXPR): Add another operand.
> 	(EXPR_WITH_FILE_LOCATION): Remove.
> 	(SWITCH_EXPR): Add another operand.
> 	* tree.h: Update various comments.
> 	(union tree_ann_d): Forward declare.
> 	(struct tree_common): Add fields nowarning_flag,
> 	invariant_flag and visited.
> 	(EREF_NODE_CHECK, EPHI_NODE_ELT_CHECK,
> 	PHI_NODE_ELT_CHECK, EREF_NODE_CHECK, PHI_NODE_ELT_CHECK,
> 	EPHI_NODE_ELT_CHECK, TREE_BLOCK,
> 	STRIP_USELESS_TYPE_CONVERSION, CALL_EXPR_TAILCALL,
> 	TREE_NO_WARNING, FORCED_LABEL, TREE_INVARIANT,
> 	IS_EMPTY_STMT, EXPR_LOCUS, SET_EXPR_LOCUS, EXPR_FILENAME,
> 	EXPR_LINENO, EXPR_LOCATION, EXPR_HAS_LOCATION,
> 	EXIT_EXPR_COND, SWITCH_COND, SWITCH_BODY, SWITCH_LABELS,
> 	CASE_LOW, CASE_HIGH, CASE_LABEL, BIND_EXPR_VARS,
> 	BIND_EXPR_BODY, BIND_EXPR_BLOCK, GOTO_DESTINATION,
> 	ASM_STRING, ASM_OUTPUTS, ASM_INPUTS, ASM_CLOBBERS,
> 	ASM_INPUT_P, ASM_VOLATILE_P, COND_EXPR_COND,
> 	COND_EXPR_THEN, COND_EXPR_ELSE, LABEL_EXPR_LABEL,
> 	CATCH_TYPES, CATCH_BODY, EH_FILTER_TYPES,
> 	EH_FILTER_FAILURE, EH_FILTER_MUST_NOT_THROW,
> 	SSA_NAME_VAR, SSA_NAME_DEF_STMT, SSA_NAME_VERSION,
> 	SSA_NAME_OCCURS_IN_ABNORMAL_PHI, SSA_NAME_IN_FREE_LIST,
> 	PHI_RESULT, PHI_REWRITTEN, PHI_NUM_ARGS,
> 	PHI_ARG_CAPACITY, PHI_ARG_ELT, PHI_ARG_EDGE, PHI_ARG_DEF,
> 	EREF_PROCESSED, EREF_ID, EREF_NAME, EREF_STMT,
> 	EREF_RELOAD, EREF_SAVE, EREF_CLASS, EREF_INJURED,
> 	EREF_TEMP, EUSE_DEF, EUSE_PHIOP, EUSE_INSERTED,
> 	EUSE_LVAL, EPHI_NUM_ARGS, EPHI_ARG_CAPACITY,
> 	EPHI_ARG_ELT, EPHI_ARG_EDGE, EPHI_ARG_PRED, EPHI_ARG_DEF,
> 	EPHI_ARG_INJURED, EPHI_ARG_DELAYED_RENAME,
> 	EPHI_ARG_HAS_REAL_USE, EPHI_ARG_STOPS,
> 	EPHI_ARG_PROCESSED2, EPHI_IDENTITY, EPHI_IDENT_INJURED,
> 	EPHI_REP_OCCUR_KNOWN, EPHI_IDENTICAL_TO, EPHI_DOWNSAFE,
> 	EPHI_CANT_BE_AVAIL, EPHI_DEAD, EPHI_USES, EPHI_STOPS,
> 	TREE_VISITED, SSA_VAR_P, DECL_NUM_STMTS,
> 	DECL_HARD_REGISTER, DECL_PTA_ALIASVAR, LABEL_DECL_UID,
> 	DECL_NEEDS_TO_LIVE_IN_MEMORY_INTERNAL,
> 	STATEMENT_LIST_HEAD, STATEMENT_LIST_TAIL, TDF_RAW,
> 	TDF_DETAILS, TDF_STATS, TDF_BLOCKS, TDF_VOPS, TDF_LINENO,
> 	TDF_UID,): Define.
> 	(TREE_NO_UNUSED_WARNING, EXPR_WFL_EMIT_LINE_NOTE,
> 	EXPR_WFL_NODE, EXPR_WFL_FILENAME_NODE, EXPR_WFL_FILENAME,
> 	EXPR_WFL_LINECOL, EXPR_WFL_LINENO, EXPR_WFL_COLNO,
> 	EXPR_WFL_SET_LINECOL): Remove.
> 	(phi_node_elt_check_failed, ephi_node_elt_check_failed,
> 	make_phi_node, init_phinodes, fini_phinodes,
> 	release_phi_node, phinodes_print_statistics,
> 	init_ssanames, fini_ssanames, make_ssa_name,
> 	release_ssa_name, ssanames_print_statistics,
> 	annotate_with_file_line, build_empty_stmt,
> 	annotate_with_locus, expr_only, categorize_ctor_elements,
> 	count_type_elements, add_var_to_bind_expr, is_essa_node,
> 	expand_stack_alloc, expand_stack_save,
> 	expand_stack_restore, add_case_node, operand_equal_p,
> 	nondestructive_fold_unary_to_constant,
> 	nondestructive_fold_binary_to_constant,
> 	fold_read_from_constant_string, int_const_binop,
> 	strip_float_extensions, simplify_builtin, c_strlen,
> 	recompute_tree_invarant_for_addr_expr,
> 	needs_to_live_in_memory, make_vector,
> 	setjmp_vars_warning, update_alignment_for_field,
> 	expand_asm_expr, asm_op_is_mem_input,
> 	containing_blocks_have_cleanups_or_stack_level,
> 	create_artificial_label, gimplify_function_tree,
> 	get_name, unshare_expr, walk_tree,
> 	walk_tree_without_duplicates, in_gimple_form): Declare.
> 	(struct tree_exp): Add fields locus and block.
> 	(struct tree_ssa_name, struct edge_def, struct
> 	tree_phi_node, struct tree_eref_common, struct
> 	tree_euse_node, struct ephi_arg_d, struct tree_ephi_node,
> 	union alias_var_def, struct tree_statement_list_node,
> 	struct tree_statement_list, enum operand_equal_flag): Declare.
> 	(enum tree_node_structure_enum): Add TS_SSA_NAME,
> 	TS_PHI_NODE, TS_EPHI_NODE, TS_EUSE_NODE, TS_EREF_NODE,
> 	TS_STATEMENT_LIST.
> 	(union tree_node): Add fields ssa_name, phi, eref, ephi,
> 	euse and stmt_list.
> 	(function_cannot_inline_p, uninitialized_vars_warning,
> 	save_for_inline, output_inline_function, all_cases_count,
> 	check_for_full_enumeration_handling,
> 	declare_nonlocal_label): Remove.
> 	(enum tree_dump_index): Add TDI_none, TDI_tu,
> 	TDI_generic, TDI_nested, TDI_vcg, TDI_xml.
> 	* unroll.c (unroll_loop): Don't clear map->inline_target.
> 	* unwind-sjlj.c (uw_install_context): Make a proper static inline
> 	function.
> 	* value-prof.c (value_prof_hooks): New.
> 	(find_values_to_profile): Rename to rtl_find_values_to_profile.
> 	Move rtl-specific bits in from branch_prob.
> 	(value_profile_transformations): Rename to
> 	rtl_value_profile_transformations.
> 	(struct value_prof_hooks): New.
> 	(rtl_value_prof_hooks): New.
> 	(rtl_register_value_prof_hooks): New.
> 	(tree_find_values_to_profile): New stub.
> 	(tree_value_profile_transformations): New stub.
> 	(tree_value_prof_hooks): New stub.
> 	(tree_register_value_prof_hooks): New stub.
> 	(find_values_to_profile): New.
> 	(value_profile_transformations): New.
> 	* value-prof.h: Add multiple inclusion guard.
> 	(struct histogram_value): Change rtx fields to void *.
> 	(rtl_register_value_prof_hooks): New declaration.
> 	(tree_register_value_prof_hooks): New declaration.
> 	(find_values_to_profile): New declaration.
> 	(free_profiled_values): New declaration.
> 	(value_profile_transformations): New declaration.
> 	(struct profile_hooks): New declaration.
> 	(init_branch_prob): Declaration moved from rtl.h.
> 	(branch_prob): Declaration moved from rtl.h.
> 	(end_branch_prob): Declaration mooved from rtl.h.
> 	(tree_register_profile_hooks): New declaration.
> 	(rtl_register_profile_hooks): New declaration.
> 	(tree_profile_hooks): New declaration.
> 	(rtl_profile_hooks): New declaration.
> 	* varasm.c: Include tree-mudflap.h.
> 	(TRAMPOLINE_ALIGNMENT): Remove.
> 	(make_decl_rtl): Call mudflap_enqueue_decl.
> 	(assemble_static_space):
> 	(assemble_trampoline_template): Set and return
> 	TRAMPOLINE_ALIGNMENT.
> 	* varray.c (element): Add GENERIC_PTR_NOGC entry.
> 	Add entry for 'tree *'.
> 	Add entry for struct edge_def *.
> 	(varray_copy): New.
> 	* varray.h (enum varray_data_enum): Add
> 	VARRAY_DATA_GENERIC_NOGC, VARRAY_DATA_EDGE and
> 	VARRAY_DATA_TREE_PTR.
> 	(union varray_data_tag): Corresponding changes.
> 	(VARRAY_GENERIC_PTR_NOGC_INIT, VARRAY_EDGE_INIT,
> 	VARRAY_TREE_PTR_INIT, VARRAY_GENERIC_PTR_NOGC,
> 	VARRAY_EDGE, VARRAY_TREE_PTR,
> 	VARRAY_PUSH_GENERIC_PTR_NOGC, VARRAY_PUSH_EDGE,
> 	VARRAY_PUSH_TREE_PTR, VARRAY_TOP_GENERIC_PTR_NOGC,
> 	VARRAY_TOP_EDGE, VARRAY_TOP_TREE_PTR): Define.
> 
> 	* config/*/*: Various updates for changed macros, tree
> 	codes, etc.  Check ChangeLog.tree-ssa.
> 
> 	* doc/cfg.texi: New file.
> 	* doc/tree-ssa.texi: New file.
> 	* doc/c-tree.texi: Document new codes.
> 	* doc/gccint.texi: Include new files.
> 	* doc/install.texi: Document new features.
> 	* doc/invoke.texi: Document new switches.
> 	* doc/passes.texi: Document new passes.
> 	* doc/rtl.texi: Update changed RTL codes.
> 	* doc/sourcebuild.texi: Update build instructions.
> 	* doc/standards.texi: Document Fortran changes.
> 	* doc/tm.texi: Update.
> 


-- 


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=16266


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]