diff options
author | Chris Lattner <sabre@nondot.org> | 2003-07-02 04:37:48 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2003-07-02 04:37:48 +0000 |
commit | 744f93996e183be6328d9536745b1cb9d25e94ec (patch) | |
tree | 900f85b88cc45487ecbf6cb7081f450dcaaa9944 /lib/Analysis | |
parent | 3051419036b518275afac9b57570429736254bdc (diff) | |
download | external_llvm-744f93996e183be6328d9536745b1cb9d25e94ec.zip external_llvm-744f93996e183be6328d9536745b1cb9d25e94ec.tar.gz external_llvm-744f93996e183be6328d9536745b1cb9d25e94ec.tar.bz2 |
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
Diffstat (limited to 'lib/Analysis')
-rw-r--r-- | lib/Analysis/DataStructure/BottomUpClosure.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/lib/Analysis/DataStructure/BottomUpClosure.cpp b/lib/Analysis/DataStructure/BottomUpClosure.cpp index e2c44c8..c449997 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 |