[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