[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