[llvm-commits] CVS: llvm/lib/Transforms/IPO/InlineSimple.cpp
Chris Lattner
sabre at nondot.org
Mon Jun 25 14:50:30 PDT 2007
Changes in directory llvm/lib/Transforms/IPO:
InlineSimple.cpp updated: 1.86 -> 1.87
---
Log message:
fix Transforms/Inline/2007-06-25-WeakInline.ll by not inlining functions
with weak linkage.
---
Diffs of the changes: (+8 -4)
InlineSimple.cpp | 12 ++++++++----
1 files changed, 8 insertions(+), 4 deletions(-)
Index: llvm/lib/Transforms/IPO/InlineSimple.cpp
diff -u llvm/lib/Transforms/IPO/InlineSimple.cpp:1.86 llvm/lib/Transforms/IPO/InlineSimple.cpp:1.87
--- llvm/lib/Transforms/IPO/InlineSimple.cpp:1.86 Tue Jun 19 17:29:50 2007
+++ llvm/lib/Transforms/IPO/InlineSimple.cpp Mon Jun 25 16:50:09 2007
@@ -195,10 +195,14 @@
const Function *Caller = TheCall->getParent()->getParent();
// Don't inline a directly recursive call.
- if (Caller == Callee) return 2000000000;
-
- // Don't inline functions marked noinline
- if (NeverInline.count(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.
+ 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
More information about the llvm-commits
mailing list