[PATCH] D28848: [PM] Teach LoopUnroll to update the LPM infrastructure as it unrolls loops.
Chandler Carruth via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Jan 24 18:45:19 PST 2017
chandlerc added a comment.
Thanks, landing!
================
Comment at: lib/Transforms/Scalar/LoopPassManager.cpp:47-49
+ L.verifyLoop();
+ assert(L.isRecursivelyLCSSAForm(AR.DT, AR.LI) &&
+ "Loops must remain in LCSSA form!");
----------------
mzolotukhin wrote:
> AFAIR, we have `lcssa-verification` pass now (see rL285394). Aren't we redoing it here?
>
> I don't know if we want to keep that pass with the new pass manager, but still we probably want to have one or the other.
I feel like a non-pass solution is more clean with the new PM, but I'm completely open to alternatives. The reason why is because the loop PM is now *directly* forming and maintaining LCSSA rather than relying on cross-pass dependencies. That (IMO) makes it much more reasonable to have the PM itself *enforce* LCSSA.
But maybe there are reasons to prefer the pass approach I don't see, so I'm happy to revisit as necessary.
https://reviews.llvm.org/D28848
More information about the llvm-commits
mailing list