diff options
author | Zdenek Dvorak <dvorakz@suse.cz> | 2006-08-31 21:33:56 +0200 |
---|---|---|
committer | Zdenek Dvorak <rakdver@gcc.gnu.org> | 2006-08-31 19:33:56 +0000 |
commit | 1e5787ef86dd68d1e332eee116d1bc92c17aae44 (patch) | |
tree | e7746b9aad7f941d889dd157949c58c54a052970 /gcc/tree-into-ssa.c | |
parent | 6a10f7b36203b8e6ff277d64a78110c98c7c5744 (diff) | |
download | gcc-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.c | 7 |
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); } |