[PATCH] D17203: [LICM] Hoist and sink entire inner loops.

Chris Diamand via llvm-commits llvm-commits at lists.llvm.org
Wed Feb 17 03:54:18 PST 2016


chrisdiamand_arm updated the summary for this revision.
chrisdiamand_arm updated this revision to Diff 48169.
chrisdiamand_arm marked 19 inline comments as done.
chrisdiamand_arm added a comment.

Hopefully this address all your feedback, James.

- I've completed removed the `replaceSuccessor` helper function, and `replacePhiUses` now no longer requires a predicate (as it's only used for one thing).
- It also now uses splitBasicBlock during sinking, and inserts the loop between the two parts of the original exit block. The loop over the outer loop's exit block's phi nodes is still required, although I've updated the comment to explain it more clearly.
- Style issues should be fixed.

Thanks!
Chris


http://reviews.llvm.org/D17203

Files:
  include/llvm/Analysis/LoopInfo.h
  include/llvm/Transforms/Utils/LoopUtils.h
  lib/Analysis/LoopInfo.cpp
  lib/Transforms/Scalar/LICM.cpp
  test/Analysis/ScalarEvolution/2012-03-26-LoadConstant.ll
  test/Transforms/LICM/inner-loop-dont-sink.ll
  test/Transforms/LICM/inner-loop-hoist.ll
  test/Transforms/LICM/inner-loop-sink-multiple-phi.ll
  test/Transforms/LICM/sinking.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D17203.48169.patch
Type: text/x-patch
Size: 29430 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160217/0c7f0964/attachment.bin>


More information about the llvm-commits mailing list