diff options
author | Richard Biener <rguenther@suse.de> | 2013-05-28 10:54:33 +0000 |
---|---|---|
committer | Richard Biener <rguenth@gcc.gnu.org> | 2013-05-28 10:54:33 +0000 |
commit | bd388c2a87709ba917054a7450a4d39d2d97635d (patch) | |
tree | 34763bca901a18ba611246d8dcc7815e94f98701 /gcc/tree-ssa-copy.c | |
parent | 95f803bd9be56121561ca21da8063dcf8a368d74 (diff) | |
download | gcc-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.c | 10 |
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; |