diff options
author | Florian Hahn <flo@fhahn.com> | 2023-11-21 14:27:50 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-11-21 14:27:50 +0000 |
commit | 2d39cb49833abaf7a67110149a010940d7790d7e (patch) | |
tree | c92a18a43a2c13a0e5d18262751c3462fb60d7d8 /llvm/lib/Analysis/BasicAliasAnalysis.cpp | |
parent | 42cd9aeec286a6928da59dce1134fdced0f0462a (diff) | |
download | llvm-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.cpp | 3 |
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) { |