[llvm] bc0976e - [LAA] Strip non-inbounds offset in getPointerDiff() (NFC) (#118665)
via llvm-commits
llvm-commits at lists.llvm.org
Tue Dec 10 04:05:39 PST 2024
Author: Nikita Popov
Date: 2024-12-10T13:05:34+01:00
New Revision: bc0976ed1f96c20546796d4aa18abf3acfc0850f
URL: https://github.com/llvm/llvm-project/commit/bc0976ed1f96c20546796d4aa18abf3acfc0850f
DIFF: https://github.com/llvm/llvm-project/commit/bc0976ed1f96c20546796d4aa18abf3acfc0850f.diff
LOG: [LAA] Strip non-inbounds offset in getPointerDiff() (NFC) (#118665)
I believe that this code doesn't care whether the offsets are known to
be inbounds a priori. For the same reason the change is not testable, as
the SCEV based fallback code will look through non-inbounds offsets
anyway. So make it clear that there is no special inbounds requirement
here.
Added:
Modified:
llvm/lib/Analysis/LoopAccessAnalysis.cpp
Removed:
################################################################################
diff --git a/llvm/lib/Analysis/LoopAccessAnalysis.cpp b/llvm/lib/Analysis/LoopAccessAnalysis.cpp
index 71582d5d86549b..2c75d5625cb66d 100644
--- a/llvm/lib/Analysis/LoopAccessAnalysis.cpp
+++ b/llvm/lib/Analysis/LoopAccessAnalysis.cpp
@@ -1566,10 +1566,10 @@ std::optional<int> llvm::getPointersDiff(Type *ElemTyA, Value *PtrA,
unsigned IdxWidth = DL.getIndexSizeInBits(ASA);
APInt OffsetA(IdxWidth, 0), OffsetB(IdxWidth, 0);
- const Value *PtrA1 =
- PtrA->stripAndAccumulateInBoundsConstantOffsets(DL, OffsetA);
- const Value *PtrB1 =
- PtrB->stripAndAccumulateInBoundsConstantOffsets(DL, OffsetB);
+ const Value *PtrA1 = PtrA->stripAndAccumulateConstantOffsets(
+ DL, OffsetA, /*AllowNonInbounds=*/true);
+ const Value *PtrB1 = PtrB->stripAndAccumulateConstantOffsets(
+ DL, OffsetB, /*AllowNonInbounds=*/true);
int Val;
if (PtrA1 == PtrB1) {
More information about the llvm-commits
mailing list