[PATCH] D9151: Loop Versioning for LICM

Adam Nemet via llvm-commits llvm-commits at lists.llvm.org
Fri Jan 15 11:57:20 PST 2016


anemet added inline comments.

================
Comment at: lib/Transforms/IPO/PassManagerBuilder.cpp:346-349
@@ -341,2 +345,6 @@
 
+  if (UseLoopVersioningLICM) {
+    MPM.add(createLoopVersioningLICMPass());    // Do LoopVersioningLICM
+    MPM.add(createLICMPass());                  // Hoist loop invariants
+  }
   if (!DisableUnitAtATime && OptLevel > 1 && !PrepareForLTO) {
----------------
@ashutosh.nema, We should document the outcome of the above discussion in a comment here.  E.g.:

The reason we run LICMLVer right after the CGSCC pass manager so that later patches can take advantage of the new non-alias annotations.

And the reason we actually schedule an LICM at this point so that invariant access to global could be hoisted out of the loop which could allow further vectorizations.

@hfinkel, Please let me know if any of this is inaccurate.


Repository:
  rL LLVM

http://reviews.llvm.org/D9151





More information about the llvm-commits mailing list