From 7c8eb2939314e32030ac3aa1ed273589c8044cf8 Mon Sep 17 00:00:00 2001 From: Zdenek Dvorak Date: Wed, 1 Aug 2007 13:41:25 +0200 Subject: [PATCH] tree-cfg.c (tree_merge_blocks): Preserve loop exit phi nodes only in loop closed ssa. * tree-cfg.c (tree_merge_blocks): Preserve loop exit phi nodes only in loop closed ssa. From-SVN: r127119 --- gcc/ChangeLog | 5 +++++ gcc/tree-cfg.c | 5 +++-- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 46efc5d..6736648 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,10 @@ 2007-08-01 Zdenek Dvorak + * tree-cfg.c (tree_merge_blocks): Preserve loop exit phi nodes only + in loop closed ssa. + +2007-08-01 Zdenek Dvorak + * tree-ssa-threadupdate.c (thread_through_all_blocks): Record that the loop structures may need fixing. * tree-cfgcleanup.c (cleanup_tree_cfg_noloop, repair_loop_structures): diff --git a/gcc/tree-cfg.c b/gcc/tree-cfg.c index d0c8fe9..c24b1c6 100644 --- a/gcc/tree-cfg.c +++ b/gcc/tree-cfg.c @@ -1274,9 +1274,10 @@ tree_merge_blocks (basic_block a, basic_block b) tree copy; bool may_replace_uses = may_propagate_copy (def, use); - /* In case we have loops to care about, do not propagate arguments of - loop closed ssa phi nodes. */ + /* In case we maintain loop closed ssa form, do not propagate arguments + of loop exit phi nodes. */ if (current_loops + && (current_loops->state & LOOP_CLOSED_SSA) && is_gimple_reg (def) && TREE_CODE (use) == SSA_NAME && a->loop_father != b->loop_father) -- 2.7.4