From 3e77d145631d250583669a73d690ee8b4f46617d Mon Sep 17 00:00:00 2001 From: Tobias Grosser Date: Sat, 30 May 2015 06:16:41 +0000 Subject: [PATCH] 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 llvm-svn: 238643 --- polly/lib/Transform/Canonicalization.cpp | 1 + 1 file changed, 1 insertion(+) diff --git a/polly/lib/Transform/Canonicalization.cpp b/polly/lib/Transform/Canonicalization.cpp index d396001..0e74675 100644 --- a/polly/lib/Transform/Canonicalization.cpp +++ b/polly/lib/Transform/Canonicalization.cpp @@ -29,6 +29,7 @@ void polly::registerCanonicalicationPasses(llvm::legacy::PassManagerBase &PM) { PM.add(llvm::createReassociatePass()); PM.add(llvm::createLoopRotatePass()); PM.add(llvm::createInstructionCombiningPass()); + PM.add(llvm::createIndVarSimplifyPass()); PM.add(polly::createCodePreparationPass()); } -- 2.7.4