[PATCH] D62607: LoopDistribute/LAA: Respect convergent

Matt Arsenault via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed May 29 09:08:23 PDT 2019


arsenm created this revision.
arsenm added reviewers: anemet, silviu.baranga, fhahn, hfinkel, kbarton, jdoerfert, Meinersbur, anna.
Herald added a subscriber: wdng.

This case is slightly tricky, because loop distribution should be
allowed in some cases, and not others. As long as runtime dependency
checks don't need to be introduced, this should be OK. This is further
complicated by the fact that LoopDistribute partially ignores if LAA
says that vectorization is safe, and then does its own runtime pointer
legality checks.

      

Note this pass still does not handle noduplicate correctly, as this
should always be forbidden with it. I'm not going to bother trying to
fix it, as it would require more effort and I think noduplicate should
be removed.


https://reviews.llvm.org/D62607

Files:
  include/llvm/Analysis/LoopAccessAnalysis.h
  lib/Analysis/LoopAccessAnalysis.cpp
  lib/Transforms/Scalar/LoopDistribute.cpp
  test/Analysis/LoopAccessAnalysis/unsafe-and-rt-checks-convergent.ll
  test/Transforms/LoopDistribute/basic-with-memchecks.ll
  test/Transforms/LoopDistribute/basic.ll
  test/Transforms/LoopDistribute/diagnostics.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D62607.201953.patch
Type: text/x-patch
Size: 15944 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190529/7c9239f2/attachment.bin>


More information about the llvm-commits mailing list