aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-ssa-copy.c
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2013-05-28 10:54:33 +0000
committerRichard Biener <rguenth@gcc.gnu.org>2013-05-28 10:54:33 +0000
commitbd388c2a87709ba917054a7450a4d39d2d97635d (patch)
tree34763bca901a18ba611246d8dcc7815e94f98701 /gcc/tree-ssa-copy.c
parent95f803bd9be56121561ca21da8063dcf8a368d74 (diff)
downloadgcc-bd388c2a87709ba917054a7450a4d39d2d97635d.zip
gcc-bd388c2a87709ba917054a7450a4d39d2d97635d.tar.gz
gcc-bd388c2a87709ba917054a7450a4d39d2d97635d.tar.bz2
re PR tree-optimization/57411 (ICE: verify_ssa failed: definition in block 4 does not dominate use in block 11 with -fno-tree-dce -ftree-vectorize)
2013-05-28 Richard Biener <rguenther@suse.de> PR tree-optimization/57411 * tree-ssa-copy.c (may_propagate_copy): Cannot propagate virtual operands. * tree-ssa-dom.c (eliminate_const_or_copy): Special-case virtual operand propagation. * g++.dg/opt/pr57411.C: New testcase. From-SVN: r199374
Diffstat (limited to 'gcc/tree-ssa-copy.c')
-rw-r--r--gcc/tree-ssa-copy.c10
1 files changed, 3 insertions, 7 deletions
diff --git a/gcc/tree-ssa-copy.c b/gcc/tree-ssa-copy.c
index f58f7b3..625f46e 100644
--- a/gcc/tree-ssa-copy.c
+++ b/gcc/tree-ssa-copy.c
@@ -73,14 +73,10 @@ may_propagate_copy (tree dest, tree orig)
if (!useless_type_conversion_p (type_d, type_o))
return false;
- /* Propagating virtual operands is always ok. */
+ /* Generally propagating virtual operands is not ok as that may
+ create overlapping life-ranges. */
if (TREE_CODE (dest) == SSA_NAME && virtual_operand_p (dest))
- {
- /* But only between virtual operands. */
- gcc_assert (TREE_CODE (orig) == SSA_NAME && virtual_operand_p (orig));
-
- return true;
- }
+ return false;
/* Anything else is OK. */
return true;