[PATCH] D62607: LoopDistribute/LAA: Respect convergent

Matt Arsenault via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Jun 12 06:31:32 PDT 2019


arsenm closed this revision.
arsenm marked 2 inline comments as done.
arsenm added a comment.

r363160



================
Comment at: lib/Transforms/Scalar/LoopDistribute.cpp:694
+    if (!LAI->canInsertRuntimeCheck() &&
+        LAI->getNumRuntimePointerChecks() != 0) {
+      return fail("RuntimeCheckWithConvergent",
----------------
Meinersbur wrote:
> arsenm wrote:
> > 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?
> `test/Analysis/ScalarEvolution/predicated-trip-count.ll` has a case.
I found an example and based r362854 on this


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D62607/new/

https://reviews.llvm.org/D62607





More information about the llvm-commits mailing list