diff options
Diffstat (limited to 'llvm/lib/Analysis/LoopAccessAnalysis.cpp')
-rw-r--r-- | llvm/lib/Analysis/LoopAccessAnalysis.cpp | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/llvm/lib/Analysis/LoopAccessAnalysis.cpp b/llvm/lib/Analysis/LoopAccessAnalysis.cpp index e92aa02..4ba2e15 100644 --- a/llvm/lib/Analysis/LoopAccessAnalysis.cpp +++ b/llvm/lib/Analysis/LoopAccessAnalysis.cpp @@ -1991,9 +1991,6 @@ getDependenceDistanceStrideAndSize( return MemoryDepChecker::Dependence::Unknown; } - if (!isa<SCEVConstant, SCEVCouldNotCompute>(Dist)) - Dist = SE.applyLoopGuards(Dist, InnermostLoop); - uint64_t TypeByteSize = DL.getTypeAllocSize(ATy); bool HasSameSize = DL.getTypeStoreSizeInBits(ATy) == DL.getTypeStoreSizeInBits(BTy); @@ -2019,7 +2016,7 @@ MemoryDepChecker::Dependence::DepType MemoryDepChecker::isDependent( if (std::holds_alternative<Dependence::DepType>(Res)) return std::get<Dependence::DepType>(Res); - const auto &[Dist, StrideA, StrideB, TypeByteSize, AIsWrite, BIsWrite] = + auto &[Dist, StrideA, StrideB, TypeByteSize, AIsWrite, BIsWrite] = std::get<DepDistanceStrideAndSizeInfo>(Res); bool HasSameSize = TypeByteSize > 0; @@ -2062,7 +2059,8 @@ MemoryDepChecker::Dependence::DepType MemoryDepChecker::isDependent( LLVM_DEBUG(dbgs() << "LAA: Strided accesses are independent\n"); return Dependence::NoDep; } - } + } else + Dist = SE.applyLoopGuards(Dist, InnermostLoop); // Negative distances are not plausible dependencies. if (SE.isKnownNonPositive(Dist)) { |