Skip to content

Commit 8e5a3b3

Browse files
committed
Remove createProvider*(), add new method in ML.cpp
1 parent 2b814aa commit 8e5a3b3

File tree

3 files changed

+29
-28
lines changed

3 files changed

+29
-28
lines changed

llvm/include/llvm/CodeGen/RegAllocEvictionAdvisor.h

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -233,11 +233,6 @@ class RegAllocEvictionAdvisorProvider {
233233
const AdvisorMode Mode;
234234
};
235235

236-
RegAllocEvictionAdvisorProvider *
237-
createReleaseModeAdvisorProvider(LLVMContext &Ctx);
238-
RegAllocEvictionAdvisorProvider *
239-
createDevelopmentModeAdvisorProvider(LLVMContext &Ctx);
240-
241236
/// A MachineFunction analysis for fetching the Eviction Advisor.
242237
/// This sets up the Provider lazily and caches it.
243238
/// - in the ML implementation case, the evaluator is stateless but (especially
@@ -276,7 +271,13 @@ class RegAllocEvictionAdvisorAnalysis
276271
Result run(MachineFunction &MF, MachineFunctionAnalysisManager &MAM);
277272

278273
private:
279-
void initializeProvider(LLVMContext &Ctx);
274+
void
275+
initializeProvider(RegAllocEvictionAdvisorAnalysisLegacy::AdvisorMode Mode,
276+
LLVMContext &Ctx);
277+
void
278+
initializeMLProvider(RegAllocEvictionAdvisorAnalysisLegacy::AdvisorMode Mode,
279+
LLVMContext &Ctx);
280+
280281
std::unique_ptr<RegAllocEvictionAdvisorProvider> Provider;
281282
};
282283

llvm/lib/CodeGen/MLRegAllocEvictAdvisor.cpp

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1192,11 +1192,6 @@ void llvm::extractMBBFrequency(
11921192
// Development mode-specific implementations
11931193
#ifdef LLVM_HAVE_TFLITE
11941194

1195-
RegAllocEvictionAdvisorProvider *
1196-
llvm::createDevelopmentModeAdvisorProvider(LLVMContext &Ctx) {
1197-
return new DevelopmentModeEvictionAdvisorProvider(Ctx);
1198-
}
1199-
12001195
RegAllocEvictionAdvisorAnalysisLegacy *
12011196
llvm::createDevelopmentModeAdvisorAnalysisLegacy() {
12021197
return new DevelopmentModeEvictionAdvisorAnalysisLegacy();
@@ -1273,9 +1268,22 @@ bool RegAllocScoring::runOnMachineFunction(MachineFunction &MF) {
12731268
}
12741269
#endif // #ifdef LLVM_HAVE_TFLITE
12751270

1276-
RegAllocEvictionAdvisorProvider *
1277-
llvm::createReleaseModeAdvisorProvider(LLVMContext &Ctx) {
1278-
return new ReleaseModeEvictionAdvisorProvider(Ctx);
1271+
void RegAllocEvictionAdvisorAnalysis::initializeMLProvider(
1272+
RegAllocEvictionAdvisorAnalysisLegacy::AdvisorMode Mode, LLVMContext &Ctx) {
1273+
if (Provider)
1274+
return;
1275+
switch (Mode) {
1276+
case RegAllocEvictionAdvisorAnalysisLegacy::AdvisorMode::Development:
1277+
#if defined(LLVM_HAVE_TFLITE)
1278+
Provider.reset(new DevelopmentModeEvictionAdvisorProvider(Ctx));
1279+
#endif
1280+
break;
1281+
case RegAllocEvictionAdvisorAnalysisLegacy::AdvisorMode::Release:
1282+
Provider.reset(new ReleaseModeEvictionAdvisorProvider(Ctx));
1283+
break;
1284+
default:
1285+
break;
1286+
}
12791287
}
12801288

12811289
RegAllocEvictionAdvisorAnalysisLegacy *

llvm/lib/CodeGen/RegAllocEvictionAdvisor.cpp

Lines changed: 6 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -120,23 +120,15 @@ class DefaultEvictionAdvisorAnalysisLegacy final
120120

121121
AnalysisKey RegAllocEvictionAdvisorAnalysis::Key;
122122

123-
void RegAllocEvictionAdvisorAnalysis::initializeProvider(LLVMContext &Ctx) {
123+
void RegAllocEvictionAdvisorAnalysis::initializeProvider(
124+
RegAllocEvictionAdvisorAnalysisLegacy::AdvisorMode Mode, LLVMContext &Ctx) {
124125
if (Provider)
125126
return;
126-
switch (Mode) {
127-
case RegAllocEvictionAdvisorAnalysisLegacy::AdvisorMode::Default:
127+
if (Mode == RegAllocEvictionAdvisorAnalysisLegacy::AdvisorMode::Default)
128128
Provider.reset(
129129
new DefaultEvictionAdvisorProvider(/*NotAsRequested*/ false, Ctx));
130-
break;
131-
case RegAllocEvictionAdvisorAnalysisLegacy::AdvisorMode::Development:
132-
#if defined(LLVM_HAVE_TFLITE)
133-
Provider.reset(createDevelopmentModeAdvisorProvider(Ctx));
134-
#endif
135-
break;
136-
case RegAllocEvictionAdvisorAnalysisLegacy::AdvisorMode::Release:
137-
Provider.reset(createReleaseModeAdvisorProvider(Ctx));
138-
break;
139-
}
130+
else
131+
initializeMLProvider(Mode, Ctx);
140132
if (!Provider)
141133
Provider.reset(
142134
new DefaultEvictionAdvisorProvider(/*NotAsRequested*/ true, Ctx));
@@ -146,7 +138,7 @@ RegAllocEvictionAdvisorAnalysis::Result
146138
RegAllocEvictionAdvisorAnalysis::run(MachineFunction &MF,
147139
MachineFunctionAnalysisManager &MFAM) {
148140
// Lazy initialization of the provider.
149-
initializeProvider(MF.getFunction().getContext());
141+
initializeProvider(::Mode, MF.getFunction().getContext());
150142
auto *MBFI = &MFAM.getResult<MachineBlockFrequencyAnalysis>(MF);
151143
auto *Loops = &MFAM.getResult<MachineLoopAnalysis>(MF);
152144
Provider->setAnalyses(MBFI, Loops);

0 commit comments

Comments
 (0)