aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-cfg.c
diff options
context:
space:
mode:
authorZdenek Dvorak <ook@ucw.cz>2007-08-01 13:41:25 +0200
committerZdenek Dvorak <rakdver@gcc.gnu.org>2007-08-01 11:41:25 +0000
commit7c8eb2939314e32030ac3aa1ed273589c8044cf8 (patch)
tree4429f1d87e4566df2983221bc468a3f711b3f0e1 /gcc/tree-cfg.c
parent592c303da820745055bf6fd1521e2b2bf1318652 (diff)
downloadgcc-7c8eb2939314e32030ac3aa1ed273589c8044cf8.zip
gcc-7c8eb2939314e32030ac3aa1ed273589c8044cf8.tar.gz
gcc-7c8eb2939314e32030ac3aa1ed273589c8044cf8.tar.bz2
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
Diffstat (limited to 'gcc/tree-cfg.c')
-rw-r--r--gcc/tree-cfg.c5
1 files changed, 3 insertions, 2 deletions
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)