aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-loop-manip.c
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2013-01-31 08:53:43 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2013-01-31 08:53:43 +0000
commit636f59cfb37b743bf162e42d79e10385f44e0f9b (patch)
tree1816685276eef9d8ecda39d62c24870c6c84440a /gcc/tree-ssa-loop-manip.c
parentfcfa87ac3dbb62b8cb32a919711e00d17557fe05 (diff)
downloadgcc-636f59cfb37b743bf162e42d79e10385f44e0f9b.zip
gcc-636f59cfb37b743bf162e42d79e10385f44e0f9b.tar.gz
gcc-636f59cfb37b743bf162e42d79e10385f44e0f9b.tar.bz2
re PR tree-optimization/56150 (ICE segfault in do_pre / tail_merge_optimize)
2013-01-31 Richard Biener <rguenther@suse.de> PR tree-optimization/56150 * tree-ssa-loop-manip.c (find_uses_to_rename_stmt): Do not visit virtual operands. (find_uses_to_rename_bb): Likewise. From-SVN: r195609
Diffstat (limited to 'gcc/tree-ssa-loop-manip.c')
-rw-r--r--gcc/tree-ssa-loop-manip.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/gcc/tree-ssa-loop-manip.c b/gcc/tree-ssa-loop-manip.c
index 3601ece..4645588 100644
--- a/gcc/tree-ssa-loop-manip.c
+++ b/gcc/tree-ssa-loop-manip.c
@@ -402,7 +402,7 @@ find_uses_to_rename_stmt (gimple stmt, bitmap *use_blocks, bitmap need_phis)
if (is_gimple_debug (stmt))
return;
- FOR_EACH_SSA_TREE_OPERAND (var, stmt, iter, SSA_OP_ALL_USES)
+ FOR_EACH_SSA_TREE_OPERAND (var, stmt, iter, SSA_OP_USE)
find_uses_to_rename_use (bb, var, use_blocks, need_phis);
}
@@ -422,8 +422,9 @@ find_uses_to_rename_bb (basic_block bb, bitmap *use_blocks, bitmap need_phis)
for (bsi = gsi_start_phis (e->dest); !gsi_end_p (bsi); gsi_next (&bsi))
{
gimple phi = gsi_stmt (bsi);
- find_uses_to_rename_use (bb, PHI_ARG_DEF_FROM_EDGE (phi, e),
- use_blocks, need_phis);
+ if (! virtual_operand_p (gimple_phi_result (phi)))
+ find_uses_to_rename_use (bb, PHI_ARG_DEF_FROM_EDGE (phi, e),
+ use_blocks, need_phis);
}
for (bsi = gsi_start_bb (bb); !gsi_end_p (bsi); gsi_next (&bsi))