[PATCH] D11051: Extend LICM to hoist loop invariant GEP out

Lawrence Hu lawrence at codeaurora.org
Tue Jul 14 11:36:14 PDT 2015


hulx2000 updated this revision to Diff 29689.
hulx2000 added a comment.

Thanks Hal & Andrew for your valuable comments.

I uploaded the full content diff.

Plus:

1. This patches originally is developed as part of Splitting GEP, later I moved it into LICM because I can reuse loopinfo in LICM and it save an extra loop to collect information (won't increase compile time much, but should avoid if possible anyway), and avoid some mess check to avoid performance regression. It completely ok to move it back to Splitting GEP if needed, as long as very one agrees.

2. For the pattern originated this, inbound is set to false by Splitting GEP.

3. If we want to do it in InstCombine, then we must make sure there is one pass of Splitting GEP, InstCombine, LICM happen in sequence, I will check that.

I will not change the design of this patch for now, will do it after most of the people reach an agreement.

Regards

Lawrence Hu


Repository:
  rL LLVM

http://reviews.llvm.org/D11051

Files:
  include/llvm/Transforms/Utils/LoopUtils.h
  lib/Transforms/Scalar/LICM.cpp
  test/Transforms/LICM/hoist-gep.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D11051.29689.patch
Type: text/x-patch
Size: 11345 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20150714/8b125c3f/attachment.bin>


More information about the llvm-commits mailing list