diff options
author | Chris Lattner <sabre@nondot.org> | 2005-03-18 23:19:47 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2005-03-18 23:19:47 +0000 |
commit | bed1c18a443505c2af689045e7bbb6b1ba200150 (patch) | |
tree | 944e6fee6d263d51fd329effac8a43ba0a557556 /llvm/lib/Analysis/DataStructure/BottomUpClosure.cpp | |
parent | 30525a04c1a3a5be02e914674f9383c21cbe37d1 (diff) | |
download | bcm5719-llvm-bed1c18a443505c2af689045e7bbb6b1ba200150.tar.gz bcm5719-llvm-bed1c18a443505c2af689045e7bbb6b1ba200150.zip |
do not bother inlining nullary functions without return values. The only
effect these calls can have is due to global variables, and these passes
all use the globals graph to capture their effect anyway. This speeds up
the BU pass very slightly on perlbmk, reducing the number of dsnodes
allocated from 98913 to 96423.
llvm-svn: 20676
Diffstat (limited to 'llvm/lib/Analysis/DataStructure/BottomUpClosure.cpp')
-rw-r--r-- | llvm/lib/Analysis/DataStructure/BottomUpClosure.cpp | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/llvm/lib/Analysis/DataStructure/BottomUpClosure.cpp b/llvm/lib/Analysis/DataStructure/BottomUpClosure.cpp index 91cfc7c14eb..7ab7d805643 100644 --- a/llvm/lib/Analysis/DataStructure/BottomUpClosure.cpp +++ b/llvm/lib/Analysis/DataStructure/BottomUpClosure.cpp @@ -305,6 +305,13 @@ void BUDataStructures::calculateGraph(DSGraph &Graph) { CalledFuncs.clear(); + // Fast path for noop calls. Note that we don't care about merging globals + // in the callee with nodes in the caller here. + if (CS.getRetVal().isNull() && CS.getNumPtrArgs() == 0) { + TempFCs.erase(TempFCs.begin()); + continue; + } + if (CS.isDirectCall()) { Function *F = CS.getCalleeFunc(); if (isResolvableFunc(F)) |