diff --git a/llvm/include/llvm/Transforms/Utils/Cloning.h b/llvm/include/llvm/Transforms/Utils/Cloning.h --- a/llvm/include/llvm/Transforms/Utils/Cloning.h +++ b/llvm/include/llvm/Transforms/Utils/Cloning.h @@ -264,10 +264,10 @@ /// The callee's function attributes are merged into the callers' if /// MergeAttributes is set to true. InlineResult InlineFunction(CallBase &CB, InlineFunctionInfo &IFI, + bool MergeAttributes = false, AAResults *CalleeAAR = nullptr, bool InsertLifetime = true, - Function *ForwardVarArgsTo = nullptr, - bool MergeAttributes = false); + Function *ForwardVarArgsTo = nullptr); /// Clones a loop \p OrigLoop. Returns the loop and the blocks in \p /// Blocks. diff --git a/llvm/lib/Transforms/IPO/AlwaysInliner.cpp b/llvm/lib/Transforms/IPO/AlwaysInliner.cpp --- a/llvm/lib/Transforms/IPO/AlwaysInliner.cpp +++ b/llvm/lib/Transforms/IPO/AlwaysInliner.cpp @@ -70,10 +70,9 @@ &FAM.getResult(*Caller), &FAM.getResult(F)); - InlineResult Res = InlineFunction( - *CB, IFI, &FAM.getResult(F), InsertLifetime, - /*ForwardVarArgsTo=*/nullptr, - /*MergeAttributes=*/true); + InlineResult Res = + InlineFunction(*CB, IFI, /*MergeAttributes=*/true, + &FAM.getResult(F), InsertLifetime); if (!Res.isSuccess()) { ORE.emit([&]() { return OptimizationRemarkMissed(DEBUG_TYPE, "NotInlined", DLoc, diff --git a/llvm/lib/Transforms/IPO/Inliner.cpp b/llvm/lib/Transforms/IPO/Inliner.cpp --- a/llvm/lib/Transforms/IPO/Inliner.cpp +++ b/llvm/lib/Transforms/IPO/Inliner.cpp @@ -315,9 +315,9 @@ // Try to inline the function. Get the list of static allocas that were // inlined. - InlineResult IR = InlineFunction(CB, IFI, &AAR, InsertLifetime, - /*ForwardVarArgsTo=*/nullptr, - /*MergeAttributes=*/true); + InlineResult IR = + InlineFunction(CB, IFI, + /*MergeAttributes=*/true, &AAR, InsertLifetime); if (!IR.isSuccess()) return IR; @@ -915,10 +915,8 @@ &FAM.getResult(Callee)); InlineResult IR = - InlineFunction(*CB, IFI, &FAM.getResult(*CB->getCaller()), - /*InsertLifetime=*/true, - /*ForwardVarArgsTo=*/nullptr, - /*MergeAttributes=*/true); + InlineFunction(*CB, IFI, /*MergeAttributes=*/true, + &FAM.getResult(*CB->getCaller())); if (!IR.isSuccess()) { Advice->recordUnsuccessfulInlining(IR); continue; diff --git a/llvm/lib/Transforms/IPO/ModuleInliner.cpp b/llvm/lib/Transforms/IPO/ModuleInliner.cpp --- a/llvm/lib/Transforms/IPO/ModuleInliner.cpp +++ b/llvm/lib/Transforms/IPO/ModuleInliner.cpp @@ -218,10 +218,8 @@ &FAM.getResult(Callee)); InlineResult IR = - InlineFunction(*CB, IFI, &FAM.getResult(*CB->getCaller()), - /*InsertLifetime=*/true, - /*ForwardVarArgsTo=*/nullptr, - /*MergeAttributes=*/true); + InlineFunction(*CB, IFI, /*MergeAttributes=*/true, + &FAM.getResult(*CB->getCaller())); if (!IR.isSuccess()) { Advice->recordUnsuccessfulInlining(IR); continue; diff --git a/llvm/lib/Transforms/IPO/PartialInlining.cpp b/llvm/lib/Transforms/IPO/PartialInlining.cpp --- a/llvm/lib/Transforms/IPO/PartialInlining.cpp +++ b/llvm/lib/Transforms/IPO/PartialInlining.cpp @@ -1434,7 +1434,7 @@ InlineFunctionInfo IFI(nullptr, GetAssumptionCache, &PSI); // We can only forward varargs when we outlined a single region, else we // bail on vararg functions. - if (!InlineFunction(*CB, IFI, nullptr, true, + if (!InlineFunction(*CB, IFI, /*MergeAttributes=*/false, nullptr, true, (Cloner.ClonedOI ? Cloner.OutlinedFunctions.back().first : nullptr)) .isSuccess()) diff --git a/llvm/lib/Transforms/IPO/SampleProfile.cpp b/llvm/lib/Transforms/IPO/SampleProfile.cpp --- a/llvm/lib/Transforms/IPO/SampleProfile.cpp +++ b/llvm/lib/Transforms/IPO/SampleProfile.cpp @@ -1222,9 +1222,6 @@ InlineFunctionInfo IFI(nullptr, GetAC); IFI.UpdateProfile = false; InlineResult IR = InlineFunction(CB, IFI, - /*CalleeAAR=*/nullptr, - /*InsertLifetime=*/true, - /*ForwardVarArgsTo=*/nullptr, /*MergeAttributes=*/true); if (!IR.isSuccess()) return false; diff --git a/llvm/lib/Transforms/Utils/InlineFunction.cpp b/llvm/lib/Transforms/Utils/InlineFunction.cpp --- a/llvm/lib/Transforms/Utils/InlineFunction.cpp +++ b/llvm/lib/Transforms/Utils/InlineFunction.cpp @@ -1784,10 +1784,10 @@ /// exists in the instruction stream. Similarly this will inline a recursive /// function by one level. llvm::InlineResult llvm::InlineFunction(CallBase &CB, InlineFunctionInfo &IFI, + bool MergeAttributes, AAResults *CalleeAAR, bool InsertLifetime, - Function *ForwardVarArgsTo, - bool MergeAttributes) { + Function *ForwardVarArgsTo) { assert(CB.getParent() && CB.getFunction() && "Instruction not in function!"); // FIXME: we don't inline callbr yet.