From 744f93996e183be6328d9536745b1cb9d25e94ec Mon Sep 17 00:00:00 2001 From: Chris Lattner Date: Wed, 2 Jul 2003 04:37:48 +0000 Subject: [PATCH] Make the BU closure keep track of which actual calls happen Minor cleanups git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7059 91177308-0d34-0410-b5e6-96231b3b80d8 --- lib/Analysis/DataStructure/BottomUpClosure.cpp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/lib/Analysis/DataStructure/BottomUpClosure.cpp b/lib/Analysis/DataStructure/BottomUpClosure.cpp index e2c44c8caab..c449997e740 100644 --- a/lib/Analysis/DataStructure/BottomUpClosure.cpp +++ b/lib/Analysis/DataStructure/BottomUpClosure.cpp @@ -173,6 +173,9 @@ unsigned BUDataStructures::calculateGraphs(Function *F, } } + // Clean up the graph before we start inlining a bunch again... + SCCGraph->removeTriviallyDeadNodes(); + // Now that we have one big happy family, resolve all of the call sites in // the graph... calculateGraph(*SCCGraph); @@ -232,8 +235,7 @@ void BUDataStructures::calculateGraph(DSGraph &Graph) { // Resolve the current call... Function *Callee = *I; - const DSCallSite &CS = I.getCallSite(); - ActualCallees.insert(std::make_pair(&CS.getCallInst(), Callee)); + DSCallSite CS = I.getCallSite(); if (Callee->isExternal()) { // Ignore this case, simple varargs functions we cannot stub out! @@ -246,6 +248,8 @@ void BUDataStructures::calculateGraph(DSGraph &Graph) { Graph.mergeInGraph(CS, *Callee, Graph, 0); } else { + ActualCallees.insert(std::make_pair(&CS.getCallInst(), Callee)); + // Get the data structure graph for the called function. // DSGraph &GI = getDSGraph(*Callee); // Graph to inline