Do not canonicalize indvars with scev based codegen
authorTobias Grosser <grosser@fim.uni-passau.de>
Thu, 21 Mar 2013 16:14:53 +0000 (16:14 +0000)
committerTobias Grosser <grosser@fim.uni-passau.de>
Thu, 21 Mar 2013 16:14:53 +0000 (16:14 +0000)
Scev code generation can now handle scops with non canonical induction
variables. Hence there is no need to introduce canonical ones any more.

llvm-svn: 177644

polly/lib/RegisterPasses.cpp

index a4e49dd..50a7b13 100644 (file)
@@ -18,6 +18,7 @@
 #include "polly/ScopDetection.h"
 #include "polly/ScopInfo.h"
 #include "polly/TempScopInfo.h"
+#include "polly/CodeGen/BlockGenerators.h"
 #include "polly/CodeGen/CodeGeneration.h"
 
 #include "llvm/Analysis/Passes.h"
@@ -202,7 +203,9 @@ static void registerPollyPreoptPasses(llvm::PassManagerBase &PM) {
   PM.add(llvm::createReassociatePass());           // Reassociate expressions
   PM.add(llvm::createLoopRotatePass());            // Rotate Loop
   PM.add(llvm::createInstructionCombiningPass());
-  PM.add(polly::createIndVarSimplifyPass());        // Canonicalize indvars
+
+  if (!SCEVCodegen)
+    PM.add(polly::createIndVarSimplifyPass());
 
   PM.add(polly::createCodePreparationPass());
   PM.add(polly::createRegionSimplifyPass());