mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-11-01 15:11:24 +00:00
remove CallGraphNode::replaceCallSite, it is redundant with other APIs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@80708 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
8a3198b770
commit
da230cb876
@ -270,11 +270,6 @@ public:
|
||||
/// removeOneAbstractEdgeTo - Remove one edge associated with a null callsite
|
||||
/// from this node to the specified callee function.
|
||||
void removeOneAbstractEdgeTo(CallGraphNode *Callee);
|
||||
|
||||
/// replaceCallSite - Make the edge in the node for Old CallSite be for
|
||||
/// New CallSite instead. Note that this method takes linear time, so it
|
||||
/// should be used sparingly.
|
||||
void replaceCallSite(CallSite Old, CallSite New, CallGraphNode *NewCallee);
|
||||
};
|
||||
|
||||
//===----------------------------------------------------------------------===//
|
||||
|
@ -279,27 +279,5 @@ void CallGraphNode::removeOneAbstractEdgeTo(CallGraphNode *Callee) {
|
||||
}
|
||||
}
|
||||
|
||||
/// replaceCallSite - Make the edge in the node for Old CallSite be for
|
||||
/// New CallSite instead. Note that this method takes linear time, so it
|
||||
/// should be used sparingly.
|
||||
void CallGraphNode::replaceCallSite(CallSite Old, CallSite New,
|
||||
CallGraphNode *NewCallee) {
|
||||
for (CalledFunctionsVector::iterator I = CalledFunctions.begin(); ; ++I) {
|
||||
assert(I != CalledFunctions.end() && "Cannot find callsite to replace!");
|
||||
if (I->first != Old.getInstruction()) continue;
|
||||
|
||||
I->first = New.getInstruction();
|
||||
|
||||
// If the callee is changing, not just the callsite, then update it as
|
||||
// well.
|
||||
if (NewCallee) {
|
||||
I->second->DropRef();
|
||||
I->second = NewCallee;
|
||||
I->second->AddRef();
|
||||
}
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
// Enuse that users of CallGraph.h also link with this file
|
||||
DEFINING_FILE_FOR(CallGraph)
|
||||
|
@ -228,7 +228,7 @@ void CGPassManager::RefreshCallGraph(std::vector<CallGraphNode*> &CurSCC,
|
||||
else
|
||||
CalleeNode = CG.getCallsExternalNode();
|
||||
|
||||
CGN->replaceCallSite(CS, CS, CalleeNode);
|
||||
ExistingIt->second = CalleeNode;
|
||||
MadeChange = true;
|
||||
continue;
|
||||
}
|
||||
|
@ -728,7 +728,9 @@ CallGraphNode *ArgPromotion::DoPromotion(Function *F,
|
||||
AA.replaceWithNewValue(Call, New);
|
||||
|
||||
// Update the callgraph to know that the callsite has been transformed.
|
||||
CG[Call->getParent()->getParent()]->replaceCallSite(Call, New, NF_CGN);
|
||||
CallGraphNode *CalleeNode = CG[Call->getParent()->getParent()];
|
||||
CalleeNode->removeCallEdgeFor(Call);
|
||||
CalleeNode->addCalledFunction(New, NF_CGN);
|
||||
|
||||
if (!Call->use_empty()) {
|
||||
Call->replaceAllUsesWith(New);
|
||||
|
@ -321,7 +321,9 @@ CallGraphNode *SRETPromotion::updateCallSites(Function *F, Function *NF) {
|
||||
New->takeName(Call);
|
||||
|
||||
// Update the callgraph to know that the callsite has been transformed.
|
||||
CG[Call->getParent()->getParent()]->replaceCallSite(Call, New, NF_CGN);
|
||||
CallGraphNode *CalleeNode = CG[Call->getParent()->getParent()];
|
||||
CalleeNode->removeCallEdgeFor(Call);
|
||||
CalleeNode->addCalledFunction(New, NF_CGN);
|
||||
|
||||
// Update all users of sret parameter to extract value using extractvalue.
|
||||
for (Value::use_iterator UI = FirstCArg->use_begin(),
|
||||
|
Loading…
Reference in New Issue
Block a user