aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-into-ssa.c
diff options
context:
space:
mode:
authorZdenek Dvorak <dvorakz@suse.cz>2006-08-31 21:33:56 +0200
committerZdenek Dvorak <rakdver@gcc.gnu.org>2006-08-31 19:33:56 +0000
commit1e5787ef86dd68d1e332eee116d1bc92c17aae44 (patch)
treee7746b9aad7f941d889dd157949c58c54a052970 /gcc/tree-into-ssa.c
parent6a10f7b36203b8e6ff277d64a78110c98c7c5744 (diff)
downloadgcc-1e5787ef86dd68d1e332eee116d1bc92c17aae44.zip
gcc-1e5787ef86dd68d1e332eee116d1bc92c17aae44.tar.gz
gcc-1e5787ef86dd68d1e332eee116d1bc92c17aae44.tar.bz2
re PR tree-optimization/28839 (ICE in tree-vectorizer.c with -O2 -ftree-vectorize -funswitch-loops)
PR tree-optimization/28839 * tree-into-ssa.c (prune_unused_phi_nodes): Take into account kills in blocks in that phi arguments appear. * gcc.dg/pr28839.c: New test. From-SVN: r116605
Diffstat (limited to 'gcc/tree-into-ssa.c')
-rw-r--r--gcc/tree-into-ssa.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc/tree-into-ssa.c b/gcc/tree-into-ssa.c
index 38f338a..14a50b6 100644
--- a/gcc/tree-into-ssa.c
+++ b/gcc/tree-into-ssa.c
@@ -977,6 +977,13 @@ prune_unused_phi_nodes (bitmap phis, bitmap kills, bitmap uses)
if (bitmap_bit_p (uses, u))
continue;
+ /* In case there is a kill directly in the use block, do not record
+ the use (this is also necessary for correctness, as we assume that
+ uses dominated by a def directly in their block have been filtered
+ out before). */
+ if (bitmap_bit_p (kills, u))
+ continue;
+
bitmap_set_bit (uses, u);
VEC_safe_push (int, heap, worklist, u);
}