I don't understand the motivation for this change (test case?), although it seems fine. <br><br>Do we still need to compute the NeverInline set in InlineAlways.cpp though?<br><br> - Daniel<br><br><div class="gmail_quote">
On Tue, Nov 4, 2008 at 5:37 PM, Devang Patel <span dir="ltr"><<a href="mailto:dpatel@apple.com">dpatel@apple.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Author: dpatel<br>
Date: Tue Nov  4 19:37:05 2008<br>
New Revision: 58742<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=58742&view=rev" target="_blank">http://llvm.org/viewvc/llvm-project?rev=58742&view=rev</a><br>
Log:<br>
Check Attribute::NoInline.<br>
<br>
Modified:<br>
    llvm/trunk/lib/Transforms/Utils/InlineCost.cpp<br>
<br>
Modified: llvm/trunk/lib/Transforms/Utils/InlineCost.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Utils/InlineCost.cpp?rev=58742&r1=58741&r2=58742&view=diff" target="_blank">http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Utils/InlineCost.cpp?rev=58742&r1=58741&r2=58742&view=diff</a><br>

<br>
==============================================================================<br>
--- llvm/trunk/lib/Transforms/Utils/InlineCost.cpp (original)<br>
+++ llvm/trunk/lib/Transforms/Utils/InlineCost.cpp Tue Nov  4 19:37:05 2008<br>
@@ -182,11 +182,9 @@<br>
       // FIXME: We allow link-once linkage since in practice all versions of<br>
       // the function have the same body (C++ ODR) - but the LLVM definition<br>
       // of LinkOnceLinkage doesn't require this.<br>
-      (Callee->mayBeOverridden() && !Callee->hasLinkOnceLinkage()<br>
-       ) ||<br>
-<br>
+      (Callee->mayBeOverridden() && !Callee->hasLinkOnceLinkage()) ||<br>
       // Don't inline functions marked noinline.<br>
-      NeverInline.count(Callee))<br>
+      Callee->hasFnAttr(Attribute::NoInline) || NeverInline.count(Callee))<br>
     return llvm::InlineCost::getNever();<br>
<br>
   // InlineCost - This value measures how good of an inline candidate this call<br>
<br>
<br>
_______________________________________________<br>
llvm-commits mailing list<br>
<a href="mailto:llvm-commits@cs.uiuc.edu">llvm-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits</a><br>
</blockquote></div><br>