aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/gimple-loop-interchange.cc2
-rw-r--r--gcc/tree-vectorizer.c6
2 files changed, 7 insertions, 1 deletions
diff --git a/gcc/gimple-loop-interchange.cc b/gcc/gimple-loop-interchange.cc
index 2379848..1656004 100644
--- a/gcc/gimple-loop-interchange.cc
+++ b/gcc/gimple-loop-interchange.cc
@@ -2084,6 +2084,8 @@ pass_linterchange::execute (function *fun)
loop_nest.release ();
}
+ if (changed_p)
+ scev_reset ();
return changed_p ? (TODO_update_ssa_only_virtuals) : 0;
}
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. */