diff options
author | Florian Hahn <florian.hahn@arm.com> | 2017-12-06 19:47:24 +0000 |
---|---|---|
committer | Florian Hahn <florian.hahn@arm.com> | 2017-12-06 19:47:24 +0000 |
commit | 115d99162c23ad85811efc44d2b743ec4283d0d6 (patch) | |
tree | 7cebd2ba602aeaad82e295b618cc8adf74c39b83 /llvm/lib/Transforms/Utils/InlineFunction.cpp | |
parent | 3e069f57248f3c72d1c82e3005e8d21961b283d1 (diff) | |
download | bcm5719-llvm-115d99162c23ad85811efc44d2b743ec4283d0d6.tar.gz bcm5719-llvm-115d99162c23ad85811efc44d2b743ec4283d0d6.zip |
[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
llvm-svn: 319947
Diffstat (limited to 'llvm/lib/Transforms/Utils/InlineFunction.cpp')
-rw-r--r-- | llvm/lib/Transforms/Utils/InlineFunction.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/llvm/lib/Transforms/Utils/InlineFunction.cpp b/llvm/lib/Transforms/Utils/InlineFunction.cpp index 15a8bf22922..c69ff12b6b9 100644 --- a/llvm/lib/Transforms/Utils/InlineFunction.cpp +++ b/llvm/lib/Transforms/Utils/InlineFunction.cpp @@ -1860,7 +1860,8 @@ bool llvm::InlineFunction(CallSite CS, InlineFunctionInfo &IFI, 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); |