aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSilviu Baranga <silviu.baranga@arm.com>2016-05-10 12:28:49 +0000
committerSilviu Baranga <silviu.baranga@arm.com>2016-05-10 12:28:49 +0000
commitadf4b739eac40feee28bd6fcd89ebafa0f2247e1 (patch)
tree4c6a08bda32aee1f705e5b9200336f01533bad5a
parentaa1d638800b28e1de11daf6a340f8810ba2e07ac (diff)
downloadllvm-adf4b739eac40feee28bd6fcd89ebafa0f2247e1.zip
llvm-adf4b739eac40feee28bd6fcd89ebafa0f2247e1.tar.gz
llvm-adf4b739eac40feee28bd6fcd89ebafa0f2247e1.tar.bz2
[LAA] Use re-written SCEV expressions when computing distances
This removes a redundant stride versioning step (we already do it in getPtrStride, so it has no effect) and uses PSE to get the SCEV expressions for the source and destination (this might have changed when getPtrStride was called). I discovered this through code inspection, and couldn't produce a regression test for it. llvm-svn: 269052
-rw-r--r--llvm/lib/Analysis/LoopAccessAnalysis.cpp9
1 files changed, 2 insertions, 7 deletions
diff --git a/llvm/lib/Analysis/LoopAccessAnalysis.cpp b/llvm/lib/Analysis/LoopAccessAnalysis.cpp
index 630ff76..173b031 100644
--- a/llvm/lib/Analysis/LoopAccessAnalysis.cpp
+++ b/llvm/lib/Analysis/LoopAccessAnalysis.cpp
@@ -1158,20 +1158,15 @@ MemoryDepChecker::isDependent(const MemAccessInfo &A, unsigned AIdx,
BPtr->getType()->getPointerAddressSpace())
return Dependence::Unknown;
- const SCEV *AScev = replaceSymbolicStrideSCEV(PSE, Strides, APtr);
- const SCEV *BScev = replaceSymbolicStrideSCEV(PSE, Strides, BPtr);
-
int StrideAPtr = getPtrStride(PSE, APtr, InnermostLoop, Strides, true);
int StrideBPtr = getPtrStride(PSE, BPtr, InnermostLoop, Strides, true);
- const SCEV *Src = AScev;
- const SCEV *Sink = BScev;
+ const SCEV *Src = PSE.getSCEV(APtr);
+ const SCEV *Sink = PSE.getSCEV(BPtr);
// If the induction step is negative we have to invert source and sink of the
// dependence.
if (StrideAPtr < 0) {
- //Src = BScev;
- //Sink = AScev;
std::swap(APtr, BPtr);
std::swap(Src, Sink);
std::swap(AIsWrite, BIsWrite);