[llvm] r319947 - [InlineFunction] Only replace call if there are VarArgs to forward.

Florian Hahn via llvm-commits llvm-commits at lists.llvm.org
Wed Dec 6 11:47:24 PST 2017


Author: fhahn
Date: Wed Dec  6 11:47:24 2017
New Revision: 319947

URL: http://llvm.org/viewvc/llvm-project?rev=319947&view=rev
Log:
[InlineFunction] Only replace call if there are VarArgs to forward.

Summary:
There is no need to replace the original call instruction if no
 VarArgs need to be forwarded. 

Reviewers: davide, rnk, majnemer, efriedma

Reviewed By: efriedma

Subscribers: eraman, llvm-commits

Differential Revision: https://reviews.llvm.org/D40412

Modified:
    llvm/trunk/lib/Transforms/Utils/InlineFunction.cpp

Modified: llvm/trunk/lib/Transforms/Utils/InlineFunction.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Transforms/Utils/InlineFunction.cpp?rev=319947&r1=319946&r2=319947&view=diff
==============================================================================
--- llvm/trunk/lib/Transforms/Utils/InlineFunction.cpp (original)
+++ llvm/trunk/lib/Transforms/Utils/InlineFunction.cpp Wed Dec  6 11:47:24 2017
@@ -1860,7 +1860,8 @@ bool llvm::InlineFunction(CallSite CS, I
         if (MarkNoUnwind)
           CI->setDoesNotThrow();
 
-        if (ForwardVarArgsTo && CI->getCalledFunction() == ForwardVarArgsTo) {
+        if (ForwardVarArgsTo && !VarArgsToForward.empty() &&
+            CI->getCalledFunction() == ForwardVarArgsTo) {
           SmallVector<Value*, 6> Params(CI->arg_operands());
           Params.append(VarArgsToForward.begin(), VarArgsToForward.end());
           CallInst *Call = CallInst::Create(CI->getCalledFunction(), Params, "", CI);




More information about the llvm-commits mailing list