[PATCH] D99149: [LoopUnrollAndJam] Change LoopUnrollAndJamPass to LoopNest pass

toshiki maekawa via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Mar 25 23:49:14 PDT 2021


uint256_t added a comment.

> Does it work, in general, to have a loop pass that creates and destroys loops? Even if the outer loop is completely unrolled?

I should have added code like

  if (Result == LoopUnrollResult::FullyUnrolled)
        LPM.markLoopAsDeleted(*L);

after calling tryToUnrollAndJamLoop.

> And does unroll and jam preserve memory-ssa correctly?

I'm not sure, but according to https://reviews.llvm.org/D72230, I think

  OptimizePM.addPass(createFunctionToLoopPassAdaptor(
          std::move(LPM), EnableMSSALoopDependency,
          /*UseBlockFrequencyInfo=*/true, DebugLogging));

should be simply like

  OptimizePM.addPass(createFunctionToLoopPassAdaptor(std::move(LPM));


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

https://reviews.llvm.org/D99149



More information about the llvm-commits mailing list