diff options
author | Chris Lattner <sabre@nondot.org> | 2003-02-05 21:59:58 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2003-02-05 21:59:58 +0000 |
commit | 923fc05b3a95efad270b283f97b2670152a41efb (patch) | |
tree | f57c34bd5de4a4e4b59c46847c9da54894f2bf9e /lib/Analysis/DataStructure/DataStructureStats.cpp | |
parent | bbe5ac1458f3719fd51785f086e9166ccbb0c464 (diff) |
Implement optimization for direct function call case. This dramatically
reduces the number of function nodes created and speeds up analysis by
about 10% overall.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5495 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Analysis/DataStructure/DataStructureStats.cpp')
-rw-r--r-- | lib/Analysis/DataStructure/DataStructureStats.cpp | 18 |
1 files changed, 7 insertions, 11 deletions
diff --git a/lib/Analysis/DataStructure/DataStructureStats.cpp b/lib/Analysis/DataStructure/DataStructureStats.cpp index 36d060edd5..c2ca7ea37c 100644 --- a/lib/Analysis/DataStructure/DataStructureStats.cpp +++ b/lib/Analysis/DataStructure/DataStructureStats.cpp @@ -48,9 +48,7 @@ static bool isIndirectCallee(Value *V) { } -void DSGraphStats::countCallees(const Function& F, - const DSGraph& tdGraph) -{ +void DSGraphStats::countCallees(const Function& F, const DSGraph& tdGraph) { unsigned numIndirectCalls = 0, totalNumCallees = 0; const std::vector<DSCallSite>& callSites = tdGraph.getFunctionCalls(); @@ -58,12 +56,11 @@ void DSGraphStats::countCallees(const Function& F, if (isIndirectCallee(callSites[i].getCallInst().getCalledValue())) { // This is an indirect function call std::vector<GlobalValue*> Callees = - callSites[i].getCallee().getNode()->getGlobals(); - if (Callees.size() > 0) - { - totalNumCallees += Callees.size(); - ++numIndirectCalls; - } + callSites[i].getCalleeNode()->getGlobals(); + if (Callees.size() > 0) { + totalNumCallees += Callees.size(); + ++numIndirectCalls; + } #ifndef NDEBUG else std::cerr << "WARNING: No callee in Function " << F.getName() @@ -81,8 +78,7 @@ void DSGraphStats::countCallees(const Function& F, } -bool DSGraphStats::runOnFunction(Function& F) -{ +bool DSGraphStats::runOnFunction(Function& F) { const DSGraph& tdGraph = getAnalysis<TDDataStructures>().getDSGraph(F); countCallees(F, tdGraph); return true; |