This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug regression/16266] [3.5 regression] gcc.dg/c99-intconst-1.c compilation is very slow
- From: "joern dot rennecke at superh dot com" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: 29 Jun 2004 17:03:56 -0000
- Subject: [Bug regression/16266] [3.5 regression] gcc.dg/c99-intconst-1.c compilation is very slow
- References: <20040629130803.16266.amylaar@gcc.gnu.org>
- Reply-to: gcc-bugzilla at gcc dot gnu dot org
------- 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