[PATCH] D28921: [PM] Port LoopSink to the new pass manager.
Sanjoy Das via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Jan 19 14:58:56 PST 2017
sanjoy added inline comments.
================
Comment at: lib/Transforms/Scalar/LoopSink.cpp:317
+ SmallVector<Loop *, 4> PreOrderLoops, PreOrderWorklist;
+ for (Loop *RootL : LI) {
+ assert(PreOrderWorklist.empty() &&
----------------
Don't you need to traverse `LI` in reverse? That way you'll push to `PreOrderLoops` in program order, and pop from it in reverse program order (which is what the pass expects).
================
Comment at: lib/Transforms/Scalar/LoopSink.cpp:345
+ PA.preserve<GlobalsAA>();
+ PA.preserve<SCEVAA>();
+ return PA;
----------------
Didn't you invalidate SCEV? Can you still preserve SCEVAA?
https://reviews.llvm.org/D28921
More information about the llvm-commits
mailing list