[polly] r238643 - Add indvar pass to canonicalization sequence

Tobias Grosser tobias at grosser.es
Fri May 29 23:16:41 PDT 2015


Author: grosser
Date: Sat May 30 01:16:41 2015
New Revision: 238643

URL: http://llvm.org/viewvc/llvm-project?rev=238643&view=rev
Log:
Add indvar pass to canonicalization sequence

Running indvar before Polly is useful as this eliminates zexts as they commonly
appear when a 32 bit induction variable (type int) was used on a 64 bit system.
These zexts confuse our delinearization and prevent for example the successful
delinearization of the nussinov kernel in polybench-c-4.1.

This fixes http://llvm.org/PR23426

Suggested-by: Xing Su <xsu.llvm at outlook.com>

Modified:
    polly/trunk/lib/Transform/Canonicalization.cpp

Modified: polly/trunk/lib/Transform/Canonicalization.cpp
URL: http://llvm.org/viewvc/llvm-project/polly/trunk/lib/Transform/Canonicalization.cpp?rev=238643&r1=238642&r2=238643&view=diff
==============================================================================
--- polly/trunk/lib/Transform/Canonicalization.cpp (original)
+++ polly/trunk/lib/Transform/Canonicalization.cpp Sat May 30 01:16:41 2015
@@ -29,6 +29,7 @@ void polly::registerCanonicalicationPass
   PM.add(llvm::createReassociatePass());
   PM.add(llvm::createLoopRotatePass());
   PM.add(llvm::createInstructionCombiningPass());
+  PM.add(llvm::createIndVarSimplifyPass());
   PM.add(polly::createCodePreparationPass());
 }
 





More information about the llvm-commits mailing list