[llvm] 5faf4bf - [ModuleInliner] Move UseInlinePriority to InlineOrder.cpp (NFC)
Kazu Hirata via llvm-commits
llvm-commits at lists.llvm.org
Sat Sep 17 11:41:38 PDT 2022
Author: Kazu Hirata
Date: 2022-09-17T11:41:28-07:00
New Revision: 5faf4bf19572ed84c020e7c1289e853ac2b94827
URL: https://github.com/llvm/llvm-project/commit/5faf4bf19572ed84c020e7c1289e853ac2b94827
DIFF: https://github.com/llvm/llvm-project/commit/5faf4bf19572ed84c020e7c1289e853ac2b94827.diff
LOG: [ModuleInliner] Move UseInlinePriority to InlineOrder.cpp (NFC)
UseInlinePriority specifies the priority function. This patch
simplifies the code by moving UseInlinePriority closer to the actual
consumer -- the switch statement inside getInlineOrder.
Differential Revision: https://reviews.llvm.org/D134100
Added:
Modified:
llvm/include/llvm/Analysis/InlineOrder.h
llvm/lib/Analysis/InlineOrder.cpp
llvm/lib/Transforms/IPO/ModuleInliner.cpp
Removed:
################################################################################
diff --git a/llvm/include/llvm/Analysis/InlineOrder.h b/llvm/include/llvm/Analysis/InlineOrder.h
index 1ce920e06256d..dfea512dc11e0 100644
--- a/llvm/include/llvm/Analysis/InlineOrder.h
+++ b/llvm/include/llvm/Analysis/InlineOrder.h
@@ -21,8 +21,6 @@ namespace llvm {
class CallBase;
class Function;
-enum class InlinePriorityMode : int { Size, Cost, OptRatio };
-
template <typename T> class InlineOrder {
public:
using reference = T &;
@@ -44,8 +42,7 @@ template <typename T> class InlineOrder {
};
std::unique_ptr<InlineOrder<std::pair<CallBase *, int>>>
-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
index 295983b1f8e88..457e3bc24ecbf 100644
--- 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<InlinePriorityMode> 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 @@ static llvm::InlineCost getInlineCostWrapper(CallBase &CB,
}
std::unique_ptr<InlineOrder<std::pair<CallBase *, int>>>
-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
index eddccbb0bf587..6197a9b3cedec 100644
--- a/llvm/lib/Transforms/IPO/ModuleInliner.cpp
+++ b/llvm/lib/Transforms/IPO/ModuleInliner.cpp
@@ -49,14 +49,6 @@ using namespace llvm;
STATISTIC(NumInlined, "Number of functions inlined");
STATISTIC(NumDeleted, "Number of functions deleted because all callers found");
-static cl::opt<InlinePriorityMode> 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 @@ PreservedAnalyses ModuleInlinerPass::run(Module &M,
//
// 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.
More information about the llvm-commits
mailing list