aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Transforms/Scalar/LoopInterchange.cpp
diff options
context:
space:
mode:
authorElena Demikhovsky <elena.demikhovsky@intel.com>2016-07-24 07:24:54 +0000
committerElena Demikhovsky <elena.demikhovsky@intel.com>2016-07-24 07:24:54 +0000
commit376a18bd92be99385d3f9b2c159775b22603fd6f (patch)
tree8a614e329fe0f00624605a3574bd8327de9b60d6 /llvm/lib/Transforms/Scalar/LoopInterchange.cpp
parent93ea19b9a63f6c3f5d60d211b518051e2c714803 (diff)
downloadllvm-376a18bd92be99385d3f9b2c159775b22603fd6f.zip
llvm-376a18bd92be99385d3f9b2c159775b22603fd6f.tar.gz
llvm-376a18bd92be99385d3f9b2c159775b22603fd6f.tar.bz2
[Loop Vectorizer] Handling loops FP induction variables.
Allowed loop vectorization with secondary FP IVs. Like this: float *A; float x = init; for (int i=0; i < N; ++i) { A[i] = x; x -= fp_inc; } The auto-vectorization is possible when the induction binary operator is "fast" or the function has "unsafe" attribute. Differential Revision: https://reviews.llvm.org/D21330 llvm-svn: 276554
Diffstat (limited to 'llvm/lib/Transforms/Scalar/LoopInterchange.cpp')
-rw-r--r--llvm/lib/Transforms/Scalar/LoopInterchange.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/llvm/lib/Transforms/Scalar/LoopInterchange.cpp b/llvm/lib/Transforms/Scalar/LoopInterchange.cpp
index 9241ec3..70d014f 100644
--- a/llvm/lib/Transforms/Scalar/LoopInterchange.cpp
+++ b/llvm/lib/Transforms/Scalar/LoopInterchange.cpp
@@ -703,7 +703,7 @@ bool LoopInterchangeLegality::findInductionAndReductions(
RecurrenceDescriptor RD;
InductionDescriptor ID;
PHINode *PHI = cast<PHINode>(I);
- if (InductionDescriptor::isInductionPHI(PHI, SE, ID))
+ if (InductionDescriptor::isInductionPHI(PHI, L, SE, ID))
Inductions.push_back(PHI);
else if (RecurrenceDescriptor::isReductionPHI(PHI, L, RD))
Reductions.push_back(PHI);