[PATCH] D55851: Implement basic loop fusion pass

Kit Barton via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Mon Mar 25 20:24:45 PDT 2019


kbarton updated this revision to Diff 192242.
kbarton marked 2 inline comments as done.
kbarton added a comment.

Address review comments as follows:

1. Strengthen dependence checks between any value used in Loop 1 to ensure it is not defined in loop 0.
2. Do not add a tree update to insert an edge between FC0.Latch and FC1.Header when FC0.ExitingBlock is the same as FC0.Latch. This edge has already been inserted into the tree updates earlier and will cause an assertion to fail while performing the updates.
3. Rename ExitingBlocks to ExitingBlock since we are only concerned with loops with a single exiting block.


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

https://reviews.llvm.org/D55851

Files:
  llvm/include/llvm/InitializePasses.h
  llvm/include/llvm/Transforms/Scalar.h
  llvm/include/llvm/Transforms/Scalar/LoopFuse.h
  llvm/lib/Passes/PassBuilder.cpp
  llvm/lib/Passes/PassRegistry.def
  llvm/lib/Transforms/Scalar/CMakeLists.txt
  llvm/lib/Transforms/Scalar/LoopFuse.cpp
  llvm/lib/Transforms/Scalar/Scalar.cpp
  llvm/test/Transforms/LoopFusion/cannot_fuse.ll
  llvm/test/Transforms/LoopFusion/four_loops.ll
  llvm/test/Transforms/LoopFusion/inner_loops.ll
  llvm/test/Transforms/LoopFusion/loop_nest.ll
  llvm/test/Transforms/LoopFusion/simple.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D55851.192242.patch
Type: text/x-patch
Size: 93566 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190326/66a7288e/attachment.bin>


More information about the llvm-commits mailing list