fix Transforms/Inline/2007-06-25-WeakInline.ll by not inlining functions

with weak linkage.

llvm-svn: 37723
This commit is contained in:
Chris Lattner 2007-06-25 21:50:09 +00:00
parent b2a9048dc4
commit ea5c4bd51c
1 changed files with 8 additions and 4 deletions

View File

@ -195,10 +195,14 @@ int SimpleInliner::getInlineCost(CallSite CS) {
const Function *Caller = TheCall->getParent()->getParent();
// Don't inline a directly recursive call.
if (Caller == Callee) return 2000000000;
if (Caller == Callee ||
// Don't inline functions which can be redefined at link-time to mean
// something else. link-once linkage is ok though.
Callee->hasWeakLinkage() ||
// Don't inline functions marked noinline
if (NeverInline.count(Callee)) return 2000000000;
// Don't inline functions marked noinline.
NeverInline.count(Callee))
return 2000000000;
// InlineCost - This value measures how good of an inline candidate this call
// site is to inline. A lower inline cost make is more likely for the call to