From ed63fcb232b409310a33dcebe46f5f9c893223e3 Mon Sep 17 00:00:00 2001 From: Nikita Popov Date: Wed, 8 Jun 2022 10:00:31 +0200 Subject: [PATCH] [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 --- llvm/lib/Analysis/GlobalsModRef.cpp | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) 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(&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(Call))