[llvm-commits] [llvm] r147037 - /llvm/trunk/lib/Analysis/InlineCost.cpp
Devang Patel
dpatel at apple.com
Wed Dec 21 11:20:13 PST 2011
On Dec 20, 2011, at 10:06 PM, Nick Lewycky wrote:
> Author: nicholas
> Date: Wed Dec 21 00:06:30 2011
> New Revision: 147037
>
> URL: http://llvm.org/viewvc/llvm-project?rev=147037&view=rev
> Log:
> A call to a function marked 'noinline' is not an inline candidate.
> The sole call site of an intrinsic is also not an inline candidate.
Really ?
-
Devang
> While here, make it
> more obvious that this code ignores all intrinsics. Noticed by inspection!
>
> Modified:
> llvm/trunk/lib/Analysis/InlineCost.cpp
>
> Modified: llvm/trunk/lib/Analysis/InlineCost.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Analysis/InlineCost.cpp?rev=147037&r1=147036&r2=147037&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Analysis/InlineCost.cpp (original)
> +++ llvm/trunk/lib/Analysis/InlineCost.cpp Wed Dec 21 00:06:30 2011
> @@ -63,8 +63,8 @@
>
> // Special handling for calls.
> if (isa<CallInst>(II) || isa<InvokeInst>(II)) {
> - if (isa<DbgInfoIntrinsic>(II))
> - continue; // Debug intrinsics don't count as size.
> + if (isa<IntrinsicInst>(II))
> + continue; // Intrinsics have no argument setup and can't be inlined.
>
> ImmutableCallSite CS(cast<Instruction>(II));
>
> @@ -72,7 +72,7 @@
> // If a function is both internal and has a single use, then it is
> // extremely likely to get inlined in the future (it was probably
> // exposed by an interleaved devirtualization pass).
> - if (F->hasInternalLinkage() && F->hasOneUse())
> + if (!CS.isNoInline() && F->hasInternalLinkage() && F->hasOneUse())
> ++NumInlineCandidates;
>
> // If this call is to function itself, then the function is recursive.
> @@ -83,7 +83,7 @@
> isRecursive = true;
> }
>
> - if (!isa<IntrinsicInst>(II) && !callIsSmall(CS.getCalledFunction())) {
> + if (!callIsSmall(CS.getCalledFunction())) {
> // Each argument to a call takes on average one instruction to set up.
> NumInsts += CS.arg_size();
>
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
More information about the llvm-commits
mailing list