[llvm] [LAA] Support different strides & non constant dep distances using SCEV. (PR #88039)
Florian Hahn via llvm-commits
llvm-commits at lists.llvm.org
Wed Apr 17 13:19:47 PDT 2024
================
@@ -2028,68 +2029,105 @@ MemoryDepChecker::Dependence::DepType MemoryDepChecker::isDependent(
if (std::holds_alternative<Dependence::DepType>(Res))
return std::get<Dependence::DepType>(Res);
- const auto &[Dist, Stride, TypeByteSize, AIsWrite, BIsWrite] =
+ const auto &[Dist, StrideA, StrideB, TypeByteSize, AIsWrite, BIsWrite] =
std::get<DepDistanceStrideAndSizeInfo>(Res);
bool HasSameSize = TypeByteSize > 0;
+ uint64_t CommonStride = StrideA == StrideB ? StrideA : 0;
----------------
fhahn wrote:
At the moment, both strides need to be != 0 I think (`getDependenceDistanceStrideAndSize` returns `Unknown` dependence if any stride is == 0).
But using std::optional makes this future proof (I am planning to also remove that restriction as follow up), updated, thanks!
https://github.com/llvm/llvm-project/pull/88039
More information about the llvm-commits
mailing list