aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Analysis/BasicAliasAnalysis.cpp
diff options
context:
space:
mode:
authorFlorian Hahn <flo@fhahn.com>2023-11-21 14:27:50 +0000
committerGitHub <noreply@github.com>2023-11-21 14:27:50 +0000
commit2d39cb49833abaf7a67110149a010940d7790d7e (patch)
treec92a18a43a2c13a0e5d18262751c3462fb60d7d8 /llvm/lib/Analysis/BasicAliasAnalysis.cpp
parent42cd9aeec286a6928da59dce1134fdced0f0462a (diff)
downloadllvm-2d39cb49833abaf7a67110149a010940d7790d7e.zip
llvm-2d39cb49833abaf7a67110149a010940d7790d7e.tar.gz
llvm-2d39cb49833abaf7a67110149a010940d7790d7e.tar.bz2
[BasicAA] Don't use MinAbsVarIndex = 1. (#72993)
The current code incorrectly assumed that the absolute variable index needs to be at least 1, if the variable is != 0. This is incorrect, in case multiplying with Scale wraps. The code below already checks for wrapping properly, so just remove the incorrect assignment. Fixes https://github.com/llvm/llvm-project/issues/72831.
Diffstat (limited to 'llvm/lib/Analysis/BasicAliasAnalysis.cpp')
-rw-r--r--llvm/lib/Analysis/BasicAliasAnalysis.cpp3
1 files changed, 0 insertions, 3 deletions
diff --git a/llvm/lib/Analysis/BasicAliasAnalysis.cpp b/llvm/lib/Analysis/BasicAliasAnalysis.cpp
index bf766ee..4d2f81e 100644
--- a/llvm/lib/Analysis/BasicAliasAnalysis.cpp
+++ b/llvm/lib/Analysis/BasicAliasAnalysis.cpp
@@ -1230,9 +1230,6 @@ AliasResult BasicAAResult::aliasGEP(
const VariableGEPIndex &Var = DecompGEP1.VarIndices[0];
if (Var.Val.TruncBits == 0 &&
isKnownNonZero(Var.Val.V, DL, 0, &AC, Var.CxtI, DT)) {
- // If V != 0, then abs(VarIndex) > 0.
- MinAbsVarIndex = APInt(Var.Scale.getBitWidth(), 1);
-
// Check if abs(V*Scale) >= abs(Scale) holds in the presence of
// potentially wrapping math.
auto MultiplyByScaleNoWrap = [](const VariableGEPIndex &Var) {