This is the mail archive of the
gcc-cvs@gcc.gnu.org
mailing list for the GCC project.
gcc/gcc ChangeLog.lno Makefile.in cfghooks.h c ...
- From: rakdver at gcc dot gnu dot org
- To: gcc-cvs at gcc dot gnu dot org
- Date: 3 Jan 2004 20:25:31 -0000
- Subject: gcc/gcc ChangeLog.lno Makefile.in cfghooks.h c ...
CVSROOT: /cvs/gcc
Module name: gcc
Branch: lno-branch
Changes by: rakdver@gcc.gnu.org 2004-01-03 20:25:31
Modified files:
gcc : ChangeLog.lno Makefile.in cfghooks.h cfgloop.c
cfgloop.h cfgloopanal.c cfgloopmanip.c cfgrtl.c
jump.c loop-unswitch.c params.def rtl.h
toplev.c tree-cfg.c tree-dump.c tree-flow.h
tree-mudflap.c tree-optimize.c tree-sra.c
tree-ssa-loop.c tree-ssa.c tree-tailcall.c
tree.c tree.h
gcc/doc : invoke.texi
gcc/testsuite/gcc.dg/tree-ssa: 20030711-1.c 20030714-2.c
Added files:
gcc : tree-ssa-loop-im.c
gcc/testsuite/gcc.dg/tree-ssa: copy-headers.c
Log message:
* cfghooks.h (struct cfg_hooks): New fields split_block_after_labels
and move_block_after, type of cfgh_make_forwarder_block field changed.
(HEADER_BLOCK, LATCH_EDGE): Moved to cfgloop.c.
(split_block_after_labels, move_block_after): New macros.
(make_forwarder_block): Changed.
* cfgloop.c (HEADER_BLOCK, LATCH_EDGE): Moved from cfghooks.h.
(update_latch_info, mfb_keep_just, mfb_keep_nonlatch,
fill_sons_in_loop): New functions.
(canonicalize_loop_headers): Changed due to changes in
make_forwarder_block.
* cfgloopmanip.c (split_loop_bb): Don't update dominators.
(create_preheader): Use make_forwarder_block.
(mfb_keep_just, mfb_update_loops): New.
* cfgrtl.c (rtl_split_block_after_labels): New.
(redirect_edge_with_latch_update): Removed.
(rtl_make_forwarder_block): New sematics.
(rtl_split_block): Update dominators.
(rtl_cfg_hooks, cfg_layout_rtl_cfg_hooks):
Add rtl_split_block_after_labels.
* tree-cfg.c (tree_make_forwarder_block): Changed semantics.
(create_blocks_annotations): Removed.
(build_tree_cfg): Don't call create_blocks_annotations.
(create_bb): Create annotations for a new block.
(tree_split_edge): Don't call create_block_annotation.
Update irreducible loop information.
(tree_loop_optimizer_finalize): Add loop structure check.
(tree_redirect_edge_and_branch_1): Return the original edge if
no redirecting is neccessary.
(tree_split_block): Make the semantics same as for rtl_split_block.
(tree_split_block_after_labels, tree_move_block_after): New.
(tree_cfg_hooks): Add tree_split_block_after_labels and
tree_move_block_after.
* cfgloopanal.c (mark_irreducible_loops): Fix.
* loop-unswitch.c (unswitch_loop): Fix.
* Makefile.in (tree-ssa-loop.o): Add cfgloop.h and tree-inline.h
dependency.
* jump.c (next_nonnote_insn_in_loop, duplicate_loop_exit_test,
copy_loop_headers): Removed.
* rtl.h (copy_loop_headers): Declaration removed.
* toplev.c (rest_of_compilation): Do not call loop header copying.
* tree-dump.c (dump_files): Add .ch dump.
* tree-flow.h (tree_duplicate_bb, copy_loop_headers): Declare.
* tree-optimize.c (optimize_function_tree): Add loop header copying
pass.
* tree-ssa-loop.c: Include cfgloop.h and tree-inline.h.
(dump_file, dump_flags): Renamed to loop_dump_file and
loop_dump_flags.
(call_expr_p, should_duplicate_loop_header_p, copy_loop_headers):
New.
* tree.h (enum tree_dump_index): Add ch dump.
* doc/invoke.texi (-fdump-tree-copy-headers): Document.
* testsuite/gcc.dg/tree-ssa/20030711-1.c: Update test outcome.
* testsuite/gcc.dg/tree-ssa/20030714-2.c: Ditto.
* testsuite/gcc.dg/tree-ssa/copy-headers.c: New test.
* tree-cfg.c (tree_duplicate_bb): New function.
* tree-ssa-loop-im.c: New file.
* Makefile.in (tree-ssa-loop-im.o): Add.
* params.def (PARAM_LIM_EXPENSIVE): New parameter.
* tree-dump.c (dump_files): Move .loop dump.
* cfgloop.h (superloop_at_depth, get_loop_body_in_dom_order): Declare.
(loop_dump_file, loop_dump_flags): Declare variables.
* cfgloop.c (superloop_at_depth, get_loop_body_in_dom_order): New
functions.
* tree-flow.h (struct stmt_ann_d): Add aux field.
(bsi_commit_edge_inserts): Declaration changed.
(tree_ssa_lim): Declare.
* tree-mudflap.c (mf_xform_derefs_1): Use in_array_bounds_p.
* tree-optimize.c (optimize_function_tree): Move loop optimization
pass.
* tree-sra.c (scalarize_structures): Modified due to
bsi_commit_edge_inserts change.
* tree-ssa-loop.c (tree_ssa_loop_opt): Call tree_ssa_lim.
* tree-ssa.c (rewrite_trees, rewrite_vars_out_of_ssa): Modified due to
bsi_commit_edge_inserts change.
* tree.c (in_array_bounds_p): New function.
* tree.h (in_array_bounds_p): Declare.
(enum tree_dump_index): Move loop dump.
* tree-cfg.c (bsi_commit_edge_inserts): Don't take update_annotations
argument.
* tree-ssa.c (rewrite_into_ssa, rewrite_out_of_ssa): Ensure that the
closed files are not used.
* tree-tailcall.c (find_tail_calls, eliminate_tail_call): Update
phi nodes for vdefs of the eliminated call.
Patches:
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-ssa-loop-im.c.diff?cvsroot=gcc&only_with_tag=lno-branch&r1=NONE&r2=1.1.2.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/ChangeLog.lno.diff?cvsroot=gcc&only_with_tag=lno-branch&r1=1.1.2.13&r2=1.1.2.14
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/Makefile.in.diff?cvsroot=gcc&only_with_tag=lno-branch&r1=1.903.2.158.2.2&r2=1.903.2.158.2.3
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cfghooks.h.diff?cvsroot=gcc&only_with_tag=lno-branch&r1=1.1.2.6&r2=1.1.2.6.2.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cfgloop.c.diff?cvsroot=gcc&only_with_tag=lno-branch&r1=1.14.2.12&r2=1.14.2.12.2.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cfgloop.h.diff?cvsroot=gcc&only_with_tag=lno-branch&r1=1.2.4.9.2.1&r2=1.2.4.9.2.2
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cfgloopanal.c.diff?cvsroot=gcc&only_with_tag=lno-branch&r1=1.2.4.9&r2=1.2.4.9.2.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cfgloopmanip.c.diff?cvsroot=gcc&only_with_tag=lno-branch&r1=1.3.2.11&r2=1.3.2.11.2.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/cfgrtl.c.diff?cvsroot=gcc&only_with_tag=lno-branch&r1=1.57.2.21&r2=1.57.2.21.2.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/jump.c.diff?cvsroot=gcc&only_with_tag=lno-branch&r1=1.210.2.17&r2=1.210.2.17.2.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/loop-unswitch.c.diff?cvsroot=gcc&only_with_tag=lno-branch&r1=1.2.2.6&r2=1.2.2.6.2.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/params.def.diff?cvsroot=gcc&only_with_tag=lno-branch&r1=1.15.2.15&r2=1.15.2.15.2.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/rtl.h.diff?cvsroot=gcc&only_with_tag=lno-branch&r1=1.362.2.30&r2=1.362.2.30.2.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/toplev.c.diff?cvsroot=gcc&only_with_tag=lno-branch&r1=1.654.2.84.2.2&r2=1.654.2.84.2.3
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-cfg.c.diff?cvsroot=gcc&only_with_tag=lno-branch&r1=1.1.4.244&r2=1.1.4.244.2.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-dump.c.diff?cvsroot=gcc&only_with_tag=lno-branch&r1=1.6.2.61.2.2&r2=1.6.2.61.2.3
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-flow.h.diff?cvsroot=gcc&only_with_tag=lno-branch&r1=1.1.4.177.2.1&r2=1.1.4.177.2.2
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-mudflap.c.diff?cvsroot=gcc&only_with_tag=lno-branch&r1=1.1.2.60&r2=1.1.2.60.2.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-optimize.c.diff?cvsroot=gcc&only_with_tag=lno-branch&r1=1.1.4.98.2.3&r2=1.1.4.98.2.4
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-sra.c.diff?cvsroot=gcc&only_with_tag=lno-branch&r1=1.1.2.9&r2=1.1.2.9.2.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-ssa-loop.c.diff?cvsroot=gcc&only_with_tag=lno-branch&r1=1.1.2.3&r2=1.1.2.3.2.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-ssa.c.diff?cvsroot=gcc&only_with_tag=lno-branch&r1=1.1.4.180&r2=1.1.4.180.2.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree-tailcall.c.diff?cvsroot=gcc&only_with_tag=lno-branch&r1=1.1.2.12&r2=1.1.2.12.2.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree.c.diff?cvsroot=gcc&only_with_tag=lno-branch&r1=1.263.2.75.2.1&r2=1.263.2.75.2.2
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/tree.h.diff?cvsroot=gcc&only_with_tag=lno-branch&r1=1.342.2.154.2.4&r2=1.342.2.154.2.5
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/doc/invoke.texi.diff?cvsroot=gcc&only_with_tag=lno-branch&r1=1.152.2.63.2.2&r2=1.152.2.63.2.3
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/tree-ssa/copy-headers.c.diff?cvsroot=gcc&only_with_tag=lno-branch&r1=NONE&r2=1.1.2.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/tree-ssa/20030711-1.c.diff?cvsroot=gcc&only_with_tag=lno-branch&r1=1.1.2.4&r2=1.1.2.4.2.1
http://gcc.gnu.org/cgi-bin/cvsweb.cgi/gcc/gcc/testsuite/gcc.dg/tree-ssa/20030714-2.c.diff?cvsroot=gcc&only_with_tag=lno-branch&r1=1.1.2.2&r2=1.1.2.2.2.1