[PATCH] D65464: [LoopFusion] Add ability to fuse guarded loops

Kit Barton via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Jul 30 11:37:23 PDT 2019


kbarton created this revision.
kbarton added reviewers: jdoerfert, Meinersbur, dmgreen, etiotto, Whitney.
Herald added subscribers: llvm-commits, hiraditya.
Herald added a project: LLVM.

This patch extends the current capabilities in loop fusion to fuse guarded loops
(as defined in https://reviews.llvm.org/D63885). The patch adds the necessary
safety checks to ensure that it safe to fuse the guarded loops (control flow
equivalent, no intervening code, and same guard conditions). It also provides an
alternative method to perform the actual fusion of guarded loops. The mechanics
to fuse guarded loops are slightly different then fusing non-guarded loops, so I
opted to keep them separate methods. I will be cleaning this up in later
patches, and hope to converge on a single method to fuse both guarded and
non-guarded loops, but for now I think the review will be easier to keep them
separate.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D65464

Files:
  llvm/lib/Transforms/Scalar/LoopFuse.cpp
  llvm/test/Transforms/LoopFusion/guarded.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D65464.212397.patch
Type: text/x-patch
Size: 26922 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190730/4afd20b0/attachment.bin>


More information about the llvm-commits mailing list