[PATCH] D115238: [LoopInterchange] Remove a limitation in legality

Congzhe Cao via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Dec 7 04:47:35 PST 2021


congzhe created this revision.
congzhe added reviewers: bmahjour, Whitney.
congzhe added projects: LLVM, LoopOptWG.
Herald added a subscriber: hiraditya.
congzhe requested review of this revision.
Herald added a subscriber: llvm-commits.

There was a limitation that in the inner loop latch, no instruction was allowed between induction variable increment and branch in the inner loop latch. This is because we used to split the inner latch at the induction variable increment instruction. Since now we have split at the inner latch branch instruction and have moved instructions properly, we remove this limitation.

As an example, please refer to interchange_10() for the interchanged loop generated after loop interchange.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D115238

Files:
  llvm/lib/Transforms/Scalar/LoopInterchange.cpp
  llvm/test/Transforms/LoopInterchange/currentLimitation.ll
  llvm/test/Transforms/LoopInterchange/interchangeable.ll
  llvm/test/Transforms/LoopInterchange/loop-interchange-optimization-remarks.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D115238.392355.patch
Type: text/x-patch
Size: 7829 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20211207/737f0556/attachment.bin>


More information about the llvm-commits mailing list