Don't give a massive inlining cost bonus to available_externally

functions with a single use; eliminating the single use may eliminate 
the function from the current module, but usually doesn't eliminate 
it from the final program.



git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76730 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Eli Friedman
2009-07-22 08:12:59 +00:00
parent 756da12ae4
commit 6dae757a07

View File

@ -201,8 +201,7 @@ InlineCost InlineCostAnalyzer::getInlineCost(CallSite CS,
// If there is only one call of the function, and it has internal linkage, // If there is only one call of the function, and it has internal linkage,
// make it almost guaranteed to be inlined. // make it almost guaranteed to be inlined.
// //
if ((Callee->hasLocalLinkage() || Callee->hasAvailableExternallyLinkage()) && if (Callee->hasLocalLinkage() && Callee->hasOneUse())
Callee->hasOneUse())
InlineCost -= 15000; InlineCost -= 15000;
// If this function uses the coldcc calling convention, prefer not to inline // If this function uses the coldcc calling convention, prefer not to inline