[PATCH] D17203: [LICM] Hoist and sink entire inner loops.

Philip Reames via llvm-commits llvm-commits at lists.llvm.org
Mon Feb 22 14:50:37 PST 2016

reames added a comment.

I'm still going over the code, but the subloop management looks highly suspect.  I'm deeply suspicions that this is not interacting properly with the LoopPassManager.  Good places to look for inspiration are LoopUnswitch and LoopDeletion since they both manipulate the loop nest structure.

Comment at: lib/Transforms/Scalar/LICM.cpp:720
@@ +719,3 @@
+        Changed = true;
+        // runOnLoop uses the subloop list to find out what to free. Because
+        // SubLoop is no longer in that list, free it here instead.
FYI, this part in particular looks really really suspect.  I'm not quite sure what the right way to solve this is, but this probably isn't it.  :)


More information about the llvm-commits mailing list