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.
This commit is contained in:
parent
8e8792a347
commit
883eec6653
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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. */
|
||||
|
Loading…
Reference in New Issue
Block a user