[llvm] c77a5c2 - [BasicAA] Use base of decomposed GEP in recursive queries (NFC)

Nikita Popov via llvm-commits llvm-commits at lists.llvm.org
Thu Oct 7 13:08:50 PDT 2021


Author: Nikita Popov
Date: 2021-10-07T22:08:41+02:00
New Revision: c77a5c21bbf061bdfdfa90a62aa60679c5810306

URL: https://github.com/llvm/llvm-project/commit/c77a5c21bbf061bdfdfa90a62aa60679c5810306
DIFF: https://github.com/llvm/llvm-project/commit/c77a5c21bbf061bdfdfa90a62aa60679c5810306.diff

LOG: [BasicAA] Use base of decomposed GEP in recursive queries (NFC)

DecompGEP.Base and UnderlyingV are currently always the same.
However, logically DecompGEP.Base is the right value to use here,
because the decomposed offset is relative to that base.

Added: 
    

Modified: 
    llvm/lib/Analysis/BasicAliasAnalysis.cpp

Removed: 
    


################################################################################
diff  --git a/llvm/lib/Analysis/BasicAliasAnalysis.cpp b/llvm/lib/Analysis/BasicAliasAnalysis.cpp
index 6064bd6d995d..84e7683b9624 100644
--- a/llvm/lib/Analysis/BasicAliasAnalysis.cpp
+++ b/llvm/lib/Analysis/BasicAliasAnalysis.cpp
@@ -1168,14 +1168,14 @@ AliasResult BasicAAResult::aliasGEP(
   // For GEPs with identical offsets, we can preserve the size and AAInfo
   // when performing the alias check on the underlying objects.
   if (DecompGEP1.Offset == 0 && DecompGEP1.VarIndices.empty())
-    return getBestAAResults().alias(
-        MemoryLocation(UnderlyingV1, V1Size),
-        MemoryLocation(UnderlyingV2, V2Size), AAQI);
+    return getBestAAResults().alias(MemoryLocation(DecompGEP1.Base, V1Size),
+                                    MemoryLocation(DecompGEP2.Base, V2Size),
+                                    AAQI);
 
   // Do the base pointers alias?
   AliasResult BaseAlias = getBestAAResults().alias(
-      MemoryLocation::getBeforeOrAfter(UnderlyingV1),
-      MemoryLocation::getBeforeOrAfter(UnderlyingV2), AAQI);
+      MemoryLocation::getBeforeOrAfter(DecompGEP1.Base),
+      MemoryLocation::getBeforeOrAfter(DecompGEP2.Base), AAQI);
 
   // If we get a No or May, then return it immediately, no amount of analysis
   // will improve this situation.


        


More information about the llvm-commits mailing list