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 ();
|
loop_nest.release ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (changed_p)
|
||||||
|
scev_reset ();
|
||||||
return changed_p ? (TODO_update_ssa_only_virtuals) : 0;
|
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. */
|
/* Fold IFN_GOMP_SIMD_{VF,LANE,LAST_LANE,ORDERED_{START,END}} builtins. */
|
||||||
if (cfun->has_simduid_loops)
|
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
|
/* Shrink any "omp array simd" temporary arrays to the
|
||||||
actual vectorization factors. */
|
actual vectorization factors. */
|
||||||
|
|
Loading…
Reference in New Issue