[PATCH] D99249: [PassManager] Run additional LICM before LoopRotate

Thomas Preud'homme via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Mar 24 10:19:27 PDT 2021


thopre added inline comments.


================
Comment at: llvm/lib/Passes/PassBuilder.cpp:579
   // TODO: Investigate promotion cap for O1.
   LPM1.addPass(LICMPass(PTO.LicmMssaOptCap, PTO.LicmMssaNoAccForPromotionCap));
   LPM1.addPass(SimpleLoopUnswitchPass());
----------------
mkazantsev wrote:
> Theroretically LICM should move all invariants out of loop, and loop rotation should not create any new invariants. Do we really need this again?
Load of size >4 whose base pointer is derived from the `this` pointer fail the isSafeToExecuteUnconditionally() in LICM because the alignment of the `this` is 1.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D99249



More information about the llvm-commits mailing list