From 78d9be35e4b4e0bc5d1127b805779470c0c13988 Mon Sep 17 00:00:00 2001 From: Kazu Hirata Date: Sat, 15 Feb 2025 19:59:37 -0800 Subject: [PATCH] [Analysis] Remove unused functions in CallGraphNode The last uses of these functions were removed in: commit 58bc98cd3abd72226cdbaa05bd92af9598d491db Author: Arthur Eubanks Date: Fri Jul 12 10:02:50 2024 -0700 --- llvm/include/llvm/Analysis/CallGraph.h | 16 ---------- llvm/lib/Analysis/CallGraph.cpp | 43 -------------------------- 2 files changed, 59 deletions(-) diff --git a/llvm/include/llvm/Analysis/CallGraph.h b/llvm/include/llvm/Analysis/CallGraph.h index f5ce2322b76d9..7f977db161c20 100644 --- a/llvm/include/llvm/Analysis/CallGraph.h +++ b/llvm/include/llvm/Analysis/CallGraph.h @@ -129,10 +129,6 @@ class CallGraph { return CallsExternalNode.get(); } - /// Old node has been deleted, and New is to be used in its place, update the - /// ExternalCallingNode. - void ReplaceExternalCallEdge(CallGraphNode *Old, CallGraphNode *New); - //===--------------------------------------------------------------------- // Functions to keep a call graph up to date with a function that has been // modified. @@ -251,18 +247,6 @@ class CallGraphNode { CalledFunctions.pop_back(); } - /// Removes the edge in the node for the specified call site. - /// - /// Note that this method takes linear time, so it should be used sparingly. - void removeCallEdgeFor(CallBase &Call); - - /// Removes all call edges from this node to the specified callee - /// function. - /// - /// This takes more time to execute than removeCallEdgeTo, so it should not - /// be used unless necessary. - void removeAnyCallEdgeTo(CallGraphNode *Callee); - /// Removes one edge associated with a null callsite from this node to /// the specified callee function. void removeOneAbstractEdgeTo(CallGraphNode *Callee); diff --git a/llvm/lib/Analysis/CallGraph.cpp b/llvm/lib/Analysis/CallGraph.cpp index ed9cd84bb8e9b..01344ee154fa5 100644 --- a/llvm/lib/Analysis/CallGraph.cpp +++ b/llvm/lib/Analysis/CallGraph.cpp @@ -138,16 +138,6 @@ void CallGraph::print(raw_ostream &OS) const { LLVM_DUMP_METHOD void CallGraph::dump() const { print(dbgs()); } #endif -void CallGraph::ReplaceExternalCallEdge(CallGraphNode *Old, - CallGraphNode *New) { - for (auto &CR : ExternalCallingNode->CalledFunctions) - if (CR.second == Old) { - CR.second->DropRef(); - CR.second = New; - CR.second->AddRef(); - } -} - // removeFunctionFromModule - Unlink the function from this module, returning // it. Because this removes the function from the module, the call graph node // is destroyed. This is only valid if the function does not call any other @@ -203,39 +193,6 @@ void CallGraphNode::print(raw_ostream &OS) const { LLVM_DUMP_METHOD void CallGraphNode::dump() const { print(dbgs()); } #endif -/// removeCallEdgeFor - This method removes the edge in the node for the -/// specified call site. Note that this method takes linear time, so it -/// should be used sparingly. -void CallGraphNode::removeCallEdgeFor(CallBase &Call) { - for (CalledFunctionsVector::iterator I = CalledFunctions.begin(); ; ++I) { - assert(I != CalledFunctions.end() && "Cannot find callsite to remove!"); - if (I->first && *I->first == &Call) { - I->second->DropRef(); - *I = CalledFunctions.back(); - CalledFunctions.pop_back(); - - // Remove all references to callback functions if there are any. - forEachCallbackFunction(Call, [=](Function *CB) { - removeOneAbstractEdgeTo(CG->getOrInsertFunction(CB)); - }); - return; - } - } -} - -// removeAnyCallEdgeTo - This method removes any call edges from this node to -// the specified callee function. This takes more time to execute than -// removeCallEdgeTo, so it should not be used unless necessary. -void CallGraphNode::removeAnyCallEdgeTo(CallGraphNode *Callee) { - for (unsigned i = 0, e = CalledFunctions.size(); i != e; ++i) - if (CalledFunctions[i].second == Callee) { - Callee->DropRef(); - CalledFunctions[i] = CalledFunctions.back(); - CalledFunctions.pop_back(); - --i; --e; - } -} - /// removeOneAbstractEdgeTo - Remove one edge associated with a null callsite /// from this node to the specified callee function. void CallGraphNode::removeOneAbstractEdgeTo(CallGraphNode *Callee) {