aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree-vectorizer.c
diff options
context:
space:
mode:
authorRichard Biener <rguenther@suse.de>2020-07-29 12:30:59 +0200
committerRichard Biener <rguenther@suse.de>2020-07-29 12:35:56 +0200
commit883eec6653b4dd89f7ed0cdad2b0b1010e045e12 (patch)
tree8bffd221b670054abefd0389470f02bb4c323139 /gcc/tree-vectorizer.c
parent8e8792a347c87dbb82b4cf75ec3452bc5cd1d3db (diff)
downloadgcc-883eec6653b4dd89f7ed0cdad2b0b1010e045e12.zip
gcc-883eec6653b4dd89f7ed0cdad2b0b1010e045e12.tar.gz
gcc-883eec6653b4dd89f7ed0cdad2b0b1010e045e12.tar.bz2
more SCEV cache clearing
This fixes two more places, in loop interchange and in the vectorizer where the SCEV verifier sees stale entries. 2020-07-29 Richard Biener <rguenther@suse.de> * tree-vectorizer.c (vectorize_loops): Reset the SCEV cache if we removed any SIMD UID SSA defs. * gimple-loop-interchange.cc (pass_linterchange::execute): Reset the scev cache if we interchanged a loop.
Diffstat (limited to 'gcc/tree-vectorizer.c')
-rw-r--r--gcc/tree-vectorizer.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/gcc/tree-vectorizer.c b/gcc/tree-vectorizer.c
index 26a1846..2a60d37 100644
--- a/gcc/tree-vectorizer.c
+++ b/gcc/tree-vectorizer.c
@@ -1283,7 +1283,11 @@ vectorize_loops (void)
/* Fold IFN_GOMP_SIMD_{VF,LANE,LAST_LANE,ORDERED_{START,END}} builtins. */
if (cfun->has_simduid_loops)
- adjust_simduid_builtins (simduid_to_vf_htab);
+ {
+ adjust_simduid_builtins (simduid_to_vf_htab);
+ /* Avoid stale SCEV cache entries for the SIMD_LANE defs. */
+ scev_reset ();
+ }
/* Shrink any "omp array simd" temporary arrays to the
actual vectorization factors. */