[PATCH] D138265: [PowerPC] move ctrloop pass before tail duplication

ChenZheng via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Nov 17 23:22:50 PST 2022


shchenz created this revision.
shchenz added reviewers: lkail, PowerPC.
Herald added subscribers: kbarton, hiraditya, nemanjai.
Herald added a project: All.
shchenz requested review of this revision.
Herald added a project: LLVM.
Herald added a subscriber: llvm-commits.

Tail duplication may modify the loop to a "non-canonical" form that CTR Loop pass can not
recognize. We fixed one issue in D135846 <https://reviews.llvm.org/D135846>. And we found in some other case, the loop is 
changed to irreducible form. It is hard to fix this case in CTR loop pass, instead we reorder the
CTR loop pass before tail duplication pass and just after final-isel pass to avoid any unexpected
change to the loop form.

This patch:
1: reverted the change in d135846
2: move the ctrloop pass before tail duplication


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D138265

Files:
  llvm/lib/Target/PowerPC/PPCCTRLoops.cpp
  llvm/lib/Target/PowerPC/PPCTargetMachine.cpp
  llvm/test/CodeGen/PowerPC/O3-pipeline.ll
  llvm/test/CodeGen/PowerPC/ctrloop-header-multiple-preds.mir

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D138265.476349.patch
Type: text/x-patch
Size: 12870 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20221118/e728b764/attachment.bin>


More information about the llvm-commits mailing list