diff options
author | David Chisnall <csdavec@swan.ac.uk> | 2012-04-06 17:27:41 +0000 |
---|---|---|
committer | David Chisnall <csdavec@swan.ac.uk> | 2012-04-06 17:27:41 +0000 |
commit | b381578fcb5fea988f661dbbee9747b8fd55c5fb (patch) | |
tree | 7d93ff26b1e2a738d77e91edfc5443eb1c25949b | |
parent | 9ceebb7e92e980340d199b550e3a2110c80ea871 (diff) | |
download | external_llvm-b381578fcb5fea988f661dbbee9747b8fd55c5fb.zip external_llvm-b381578fcb5fea988f661dbbee9747b8fd55c5fb.tar.gz external_llvm-b381578fcb5fea988f661dbbee9747b8fd55c5fb.tar.bz2 |
Reintroduce InlineCostAnalyzer::getInlineCost() variant with explicit callee
parameter until we have a more sensible API for doing the same thing.
Reviewed by Chandler.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@154180 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/llvm/Analysis/InlineCost.h | 9 | ||||
-rw-r--r-- | lib/Analysis/InlineCost.cpp | 5 |
2 files changed, 13 insertions, 1 deletions
diff --git a/include/llvm/Analysis/InlineCost.h b/include/llvm/Analysis/InlineCost.h index f5784a7..691c2d1 100644 --- a/include/llvm/Analysis/InlineCost.h +++ b/include/llvm/Analysis/InlineCost.h @@ -117,6 +117,15 @@ namespace llvm { /// bound the computation necessary to determine whether the cost is /// sufficiently low to warrant inlining. InlineCost getInlineCost(CallSite CS, int Threshold); + /// getCalledFunction - The heuristic used to determine if we should inline + /// the function call or not. The callee is explicitly specified, to allow + /// you to calculate the cost of inlining a function via a pointer. This + /// behaves exactly as the version with no explicit callee parameter in all + /// other respects. + // + // Note: This is used by out-of-tree passes, please do not remove without + // adding a replacement API. + InlineCost getInlineCost(CallSite CS, Function *Callee, int Threshold); }; /// callIsSmall - If a call is likely to lower to a single target instruction, diff --git a/lib/Analysis/InlineCost.cpp b/lib/Analysis/InlineCost.cpp index 246e679..c4599c8 100644 --- a/lib/Analysis/InlineCost.cpp +++ b/lib/Analysis/InlineCost.cpp @@ -988,8 +988,11 @@ void CallAnalyzer::dump() { } InlineCost InlineCostAnalyzer::getInlineCost(CallSite CS, int Threshold) { - Function *Callee = CS.getCalledFunction(); + return getInlineCost(CS, CS.getCalledFunction(), Threshold); +} +InlineCost InlineCostAnalyzer::getInlineCost(CallSite CS, Function *Callee, + int Threshold) { // Don't inline functions which can be redefined at link-time to mean // something else. Don't inline functions marked noinline or call sites // marked noinline. |