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

Chris Diamand via llvm-commits llvm-commits at lists.llvm.org
Fri Feb 12 09:36:05 PST 2016


chrisdiamand_arm created this revision.
chrisdiamand_arm added reviewers: sanjoy, majnemer, reames.
chrisdiamand_arm added a subscriber: llvm-commits.
Herald added a subscriber: mzolotukhin.

This patch teaches the LICM pass to hoist or sink an entire inner loop
out of its parent loop.

The patch is mostly complete, although I'd like to tidy a few things
up (mostly factoring shared bits out of sinking and hoisting). I'd
appreciate it if anyone could have a look over it and check I'm
not approaching this in completely the wrong way though.

Thanks!

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.47813.patch
Type: text/x-patch
Size: 30235 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20160212/fdc2aaed/attachment.bin>


More information about the llvm-commits mailing list