[llvm] ed63fcb - [GlobalsModRef] Remove check for allocator calls

Nikita Popov via llvm-commits llvm-commits at lists.llvm.org
Tue Jun 21 05:24:24 PDT 2022


Author: Nikita Popov
Date: 2022-06-21T14:24:13+02:00
New Revision: ed63fcb232b409310a33dcebe46f5f9c893223e3

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

LOG: [GlobalsModRef] Remove check for allocator calls

As the FIXME already indicates, I don't see why this code would be
necessary. If there's a call to an allocator function, that should
get treated just like any other function call -- usually it will be
a declaration and handled conservatively based on memory attributes
only. There should be no need to explicitly force it to be modref.
No test failures either, so I think this is just dead code.

Differential Revision: https://reviews.llvm.org/D127273

Added: 
    

Modified: 
    llvm/lib/Analysis/GlobalsModRef.cpp

Removed: 
    


################################################################################
diff  --git a/llvm/lib/Analysis/GlobalsModRef.cpp b/llvm/lib/Analysis/GlobalsModRef.cpp
index c179fd383de2..e82d2fae9356 100644
--- a/llvm/lib/Analysis/GlobalsModRef.cpp
+++ b/llvm/lib/Analysis/GlobalsModRef.cpp
@@ -597,12 +597,7 @@ void GlobalsAAResult::AnalyzeCallGraph(CallGraph &CG, Module &M) {
         // We handle calls specially because the graph-relevant aspects are
         // handled above.
         if (auto *Call = dyn_cast<CallBase>(&I)) {
-          auto &TLI = GetTLI(*Node->getFunction());
-          if (isAllocationFn(Call, &TLI) || isFreeCall(Call, &TLI)) {
-            // FIXME: It is completely unclear why this is necessary and not
-            // handled by the above graph code.
-            FI.addModRefInfo(ModRefInfo::ModRef);
-          } else if (Function *Callee = Call->getCalledFunction()) {
+          if (Function *Callee = Call->getCalledFunction()) {
             // The callgraph doesn't include intrinsic calls.
             if (Callee->isIntrinsic()) {
               if (isa<DbgInfoIntrinsic>(Call))


        


More information about the llvm-commits mailing list