File tree Expand file tree Collapse file tree 3 files changed +30
-21
lines changed Expand file tree Collapse file tree 3 files changed +30
-21
lines changed Original file line number Diff line number Diff line change @@ -161,6 +161,12 @@ createReleaseModePriorityAdvisorAnalysis();
161
161
RegAllocPriorityAdvisorAnalysisLegacy *
162
162
createDevelopmentModePriorityAdvisorAnalysis ();
163
163
164
+ LLVM_ATTRIBUTE_RETURNS_NONNULL RegAllocPriorityAdvisorProvider *
165
+ createReleaseModePriorityAdvisorProvider ();
166
+
167
+ LLVM_ATTRIBUTE_RETURNS_NONNULL RegAllocPriorityAdvisorProvider *
168
+ createDevelopmentModePriorityAdvisorProvider (LLVMContext &Ctx);
169
+
164
170
} // namespace llvm
165
171
166
172
#endif // LLVM_CODEGEN_REGALLOCPRIORITYADVISOR_H
Original file line number Diff line number Diff line change @@ -388,22 +388,14 @@ DevelopmentModePriorityAdvisor::getPriority(const LiveInterval &LI) const {
388
388
return static_cast <unsigned >(Prio);
389
389
}
390
390
391
+ RegAllocPriorityAdvisorProvider *
392
+ llvm::createDevelopmentModePriorityAdvisorProvider (LLVMContext &Ctx) {
393
+ return new DevelopmentModePriorityAdvisorProvider (Ctx);
394
+ }
395
+
391
396
#endif // #ifdef LLVM_HAVE_TFLITE
392
397
393
- void RegAllocPriorityAdvisorAnalysis::initializeMLProvider (
394
- RegAllocPriorityAdvisorProvider::AdvisorMode Mode, LLVMContext &Ctx) {
395
- if (Provider)
396
- return ;
397
- switch (Mode) {
398
- case RegAllocPriorityAdvisorProvider::AdvisorMode::Development:
399
- #if defined(LLVM_HAVE_TFLITE)
400
- Provider.reset (new DevelopmentModePriorityAdvisorProvider (Ctx));
401
- #endif
402
- break ;
403
- case RegAllocPriorityAdvisorProvider::AdvisorMode::Release:
404
- Provider.reset (new ReleaseModePriorityAdvisorProvider ());
405
- break ;
406
- default :
407
- break ;
408
- }
398
+ RegAllocPriorityAdvisorProvider *
399
+ llvm::createReleaseModePriorityAdvisorProvider () {
400
+ return new ReleaseModePriorityAdvisorProvider ();
409
401
}
Original file line number Diff line number Diff line change @@ -136,16 +136,27 @@ class DummyPriorityAdvisorAnalysis final
136
136
void RegAllocPriorityAdvisorAnalysis::initializeProvider (LLVMContext &Ctx) {
137
137
if (Provider)
138
138
return ;
139
- if (Mode == RegAllocPriorityAdvisorProvider::AdvisorMode::Dummy)
139
+ switch (Mode) {
140
+ case RegAllocPriorityAdvisorProvider::AdvisorMode::Dummy:
140
141
Provider.reset (new DummyPriorityAdvisorProvider ());
141
- else if (Mode == RegAllocPriorityAdvisorProvider::AdvisorMode::Default)
142
+ return ;
143
+ case RegAllocPriorityAdvisorProvider::AdvisorMode::Default:
142
144
Provider.reset (
143
145
new DefaultPriorityAdvisorProvider (/* NotAsRequested=*/ false , Ctx));
144
- else
145
- initializeMLProvider (Mode, Ctx);
146
- if (!Provider)
146
+ return ;
147
+ case RegAllocPriorityAdvisorProvider::AdvisorMode::Development:
148
+ #if defined(LLVM_HAVE_TFLITE)
149
+ Provider.reset (createDevelopmentModePriorityAdvisorProvider (Ctx));
150
+ #else
147
151
Provider.reset (
148
152
new DefaultPriorityAdvisorProvider (/* NotAsRequested=*/ true , Ctx));
153
+ #endif
154
+ assert (Provider && " PriorityAdvisorProvider cannot be null" );
155
+ return ;
156
+ case RegAllocPriorityAdvisorProvider::AdvisorMode::Release:
157
+ Provider.reset (createReleaseModePriorityAdvisorProvider ());
158
+ return ;
159
+ }
149
160
}
150
161
151
162
AnalysisKey RegAllocPriorityAdvisorAnalysis::Key;
You can’t perform that action at this time.
0 commit comments