diff --git a/llvm/include/llvm/Analysis/InlineOrder.h b/llvm/include/llvm/Analysis/InlineOrder.h --- a/llvm/include/llvm/Analysis/InlineOrder.h +++ b/llvm/include/llvm/Analysis/InlineOrder.h @@ -21,8 +21,6 @@ class CallBase; class Function; -enum class InlinePriorityMode : int { Size, Cost, OptRatio }; - template class InlineOrder { public: using reference = T &; @@ -44,8 +42,7 @@ }; std::unique_ptr>> -getInlineOrder(InlinePriorityMode UseInlinePriority, - FunctionAnalysisManager &FAM, const InlineParams &Params); +getInlineOrder(FunctionAnalysisManager &FAM, const InlineParams &Params); } // namespace llvm #endif // LLVM_ANALYSIS_INLINEORDER_H diff --git a/llvm/lib/Analysis/InlineOrder.cpp b/llvm/lib/Analysis/InlineOrder.cpp --- a/llvm/lib/Analysis/InlineOrder.cpp +++ b/llvm/lib/Analysis/InlineOrder.cpp @@ -16,11 +16,22 @@ #include "llvm/Analysis/ProfileSummaryInfo.h" #include "llvm/Analysis/TargetLibraryInfo.h" #include "llvm/Analysis/TargetTransformInfo.h" +#include "llvm/Support/CommandLine.h" using namespace llvm; #define DEBUG_TYPE "inline-order" +enum class InlinePriorityMode : int { Size, Cost, OptRatio }; + +static cl::opt UseInlinePriority( + "inline-priority-mode", cl::init(InlinePriorityMode::Size), cl::Hidden, + cl::desc("Choose the priority mode to use in module inline"), + cl::values(clEnumValN(InlinePriorityMode::Size, "size", + "Use callee size priority."), + clEnumValN(InlinePriorityMode::Cost, "cost", + "Use inline cost priority."))); + namespace { class InlinePriority { @@ -213,8 +224,7 @@ } std::unique_ptr>> -llvm::getInlineOrder(InlinePriorityMode UseInlinePriority, - FunctionAnalysisManager &FAM, const InlineParams &Params) { +llvm::getInlineOrder(FunctionAnalysisManager &FAM, const InlineParams &Params) { switch (UseInlinePriority) { case InlinePriorityMode::Size: LLVM_DEBUG(dbgs() << " Current used priority: Size priority ---- \n"); 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 @@ -49,14 +49,6 @@ STATISTIC(NumInlined, "Number of functions inlined"); STATISTIC(NumDeleted, "Number of functions deleted because all callers found"); -static cl::opt UseInlinePriority( - "inline-priority-mode", cl::init(InlinePriorityMode::Size), cl::Hidden, - cl::desc("Choose the priority mode to use in module inline"), - cl::values(clEnumValN(InlinePriorityMode::Size, "size", - "Use callee size priority."), - clEnumValN(InlinePriorityMode::Cost, "cost", - "Use inline cost priority."))); - /// Return true if the specified inline history ID /// indicates an inline history that includes the specified function. static bool inlineHistoryIncludes( @@ -147,7 +139,7 @@ // // TODO: Here is a huge amount duplicate code between the module inliner and // the SCC inliner, which need some refactoring. - auto Calls = getInlineOrder(UseInlinePriority, FAM, Params); + auto Calls = getInlineOrder(FAM, Params); assert(Calls != nullptr && "Expected an initialized InlineOrder"); // Populate the initial list of calls in this module.