Reintroduce InlineCostAnalyzer::getInlineCost() variant with explicit callee

parameter until we have a more sensible API for doing the same thing.

Reviewed by Chandler.

llvm-svn: 154180
This commit is contained in:
David Chisnall 2012-04-06 17:27:41 +00:00
parent 49da93396e
commit c1c9cdab23
2 changed files with 13 additions and 1 deletions

View File

@ -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,

View File

@ -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.