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



_______________________________________________
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits

Reply via email to