[llvm] r202051 - LTO: Add the loop vectorizer to the LTO pipeline.

Arnold Schwaighofer aschwaighofer at apple.com
Mon Feb 24 10:19:31 PST 2014


Author: arnolds
Date: Mon Feb 24 12:19:31 2014
New Revision: 202051

URL: http://llvm.org/viewvc/llvm-project?rev=202051&view=rev
Log:
LTO: Add the loop vectorizer to the LTO pipeline.

During the LTO phase LICM will move loop invariant global variables out of loops
(informed by GlobalModRef). This makes more loops countable presenting
opportunity for the loop vectorizer.

Adding the loop vectorizer improves some TSVC benchmarks and twolf/ref dataset
(5%) on x86-64.

radar://15970632

Modified:
    llvm/trunk/lib/Transforms/IPO/PassManagerBuilder.cpp

Modified: llvm/trunk/lib/Transforms/IPO/PassManagerBuilder.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/IPO/PassManagerBuilder.cpp?rev=202051&r1=202050&r2=202051&view=diff
==============================================================================
--- llvm/trunk/lib/Transforms/IPO/PassManagerBuilder.cpp (original)
+++ llvm/trunk/lib/Transforms/IPO/PassManagerBuilder.cpp Mon Feb 24 12:19:31 2014
@@ -331,6 +331,9 @@ void PassManagerBuilder::populateLTOPass
   // Nuke dead stores.
   PM.add(createDeadStoreEliminationPass());
 
+  // More loops are countable try to vectorize them.
+  PM.add(createLoopVectorizePass(true, true));
+
   // Cleanup and simplify the code after the scalar optimizations.
   PM.add(createInstructionCombiningPass());
 





More information about the llvm-commits mailing list