[PATCH] D62607: LoopDistribute/LAA: Respect convergent

Matt Arsenault via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed May 29 13:15:59 PDT 2019

arsenm marked an inline comment as done.
arsenm added inline comments.

Comment at: lib/Transforms/Scalar/LoopDistribute.cpp:694
+    if (!LAI->canInsertRuntimeCheck() &&
+        LAI->getNumRuntimePointerChecks() != 0) {
+      return fail("RuntimeCheckWithConvergent",
arsenm wrote:
> Meinersbur wrote:
> > [serious] Isn't `PredicatedScalarEvolution` another source of runtime checks? We should ensure that it's predicate is always true. That is, LoopDistribute's condition is `!Pred.isAlwaysTrue() || !Checks.empty()`.
> I haven't heard of PredicatedScalarEvolution. It seems if I set loop-distribute-scev-check-threshold=0, the only test that fails is symbolic-stride.ll, in the run line where  -enable-mem-access-versioning=1. It seems like there are missing tests here?
I've spent a while trying to break this with no success. Any ideas on how to make SCEV need a check that wouldn't also have a corresponding memory dependency?



More information about the llvm-commits mailing list