[PATCH] D84977: [NewPM] Only verify loop for nonskipped user loop pass
Evgeniy via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Jul 30 22:26:34 PDT 2020
ebrevnov added a comment.
In D84977#2186550 <https://reviews.llvm.org/D84977#2186550>, @aeubanks wrote:
> It seems like the verification is to check either that on the first round, `LoopCanonicalizationFPM` worked, or on iterations after the first, the loop pass maintained whatever loop invariants.
> Since the `LoopPassManager` itself doesn't check for `L->isRecursivelyLCSSAForm(LAR.DT, LI)`, I don't think we should guard the check with `!isSpecialPass(Pass.name(), {"PassManager"})`.
If I'm not mistaken LoopPassManager does check loop invariant after each pass (lines 63-68 in LoopPassManager.cpp). If it didn't we would need to fix that, right? I think FunctionToLoopPassAdaptor should redirect to LoopPassManager for running loop passes instead of duplicating its functionality. Ideas?
> Maybe it makes more sense to mark `LoopSimplifyPass` and `LCSSAPass` as required? Since we don't know ahead of time if any loop passes in the pass manager are required (well we could, but that's a different issue).
But that would affect much more places than needed. Instead LoopPassManager could run canonicalization passes before first non-skipped pass. Should be easy to support.
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D84977/new/
https://reviews.llvm.org/D84977
More information about the llvm-commits
mailing list