[PATCH] D124926: [LoopInterchange] New cost model for loop interchange

Congzhe Cao via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Jun 21 11:27:57 PDT 2022


congzhe updated this revision to Diff 438771.
congzhe added a comment.

After D127342 <https://reviews.llvm.org/D127342> is merged, we could try to reland this patch, by providing `-cache-line-size=64` for each loop interchange test case. I've updated the patch accordingly.

I did not remove the `target datalayout` lines for the moment. As Michael pointed out, it represents the pointer size and so on. I actually tried to remove those lines but I hit one test failure in `phi-ordering.ll` (a SCEV crash in loop cache analysis). As Florian mentioned earlier, there should be some bug within loop cache analysis, and I'll look into it in my next patch as promised. For now I'm thinking we could try to get this patch landed firstly.

Comments are appreciated :)


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

https://reviews.llvm.org/D124926

Files:
  llvm/lib/Transforms/Scalar/LoopInterchange.cpp
  llvm/test/Transforms/LICM/lnicm.ll
  llvm/test/Transforms/LoopInterchange/call-instructions.ll
  llvm/test/Transforms/LoopInterchange/currentLimitation.ll
  llvm/test/Transforms/LoopInterchange/debuginfo.ll
  llvm/test/Transforms/LoopInterchange/inner-indvar-depend-on-outer-indvar.ll
  llvm/test/Transforms/LoopInterchange/inner-only-reductions.ll
  llvm/test/Transforms/LoopInterchange/innermost-latch-uses-values-in-middle-header.ll
  llvm/test/Transforms/LoopInterchange/interchange-flow-dep-outer.ll
  llvm/test/Transforms/LoopInterchange/interchange-insts-between-indvar.ll
  llvm/test/Transforms/LoopInterchange/interchange-no-deps.ll
  llvm/test/Transforms/LoopInterchange/interchangeable-innerloop-multiple-indvars.ll
  llvm/test/Transforms/LoopInterchange/interchangeable-outerloop-multiple-indvars.ll
  llvm/test/Transforms/LoopInterchange/interchangeable.ll
  llvm/test/Transforms/LoopInterchange/interchanged-loop-nest-3.ll
  llvm/test/Transforms/LoopInterchange/lcssa-preheader.ll
  llvm/test/Transforms/LoopInterchange/lcssa.ll
  llvm/test/Transforms/LoopInterchange/loop-interchange-optimization-remarks.ll
  llvm/test/Transforms/LoopInterchange/not-interchanged-dependencies-1.ll
  llvm/test/Transforms/LoopInterchange/not-interchanged-loop-nest-3.ll
  llvm/test/Transforms/LoopInterchange/not-interchanged-tightly-nested.ll
  llvm/test/Transforms/LoopInterchange/outer-header-jump-to-inner-latch.ll
  llvm/test/Transforms/LoopInterchange/outer-only-reductions.ll
  llvm/test/Transforms/LoopInterchange/perserve-lcssa.ll
  llvm/test/Transforms/LoopInterchange/phi-ordering.ll
  llvm/test/Transforms/LoopInterchange/pr43176-move-to-new-latch.ll
  llvm/test/Transforms/LoopInterchange/pr43326-ideal-access-pattern.ll
  llvm/test/Transforms/LoopInterchange/pr43326.ll
  llvm/test/Transforms/LoopInterchange/pr43473-invalid-lcssa-phis-in-inner-exit.ll
  llvm/test/Transforms/LoopInterchange/pr43797-lcssa-for-multiple-outer-loop-blocks.ll
  llvm/test/Transforms/LoopInterchange/pr45743-move-from-inner-preheader.ll
  llvm/test/Transforms/LoopInterchange/pr48212.ll
  llvm/test/Transforms/LoopInterchange/profitability.ll
  llvm/test/Transforms/LoopInterchange/reductions-across-inner-and-outer-loop.ll
  llvm/test/Transforms/LoopInterchange/update-condbranch-duplicate-successors.ll
  llvm/test/Transforms/LoopInterchange/vector-gep-operand.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D124926.438771.patch
Type: text/x-patch
Size: 57144 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20220621/49b1cd37/attachment-0001.bin>


More information about the llvm-commits mailing list