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();
161161RegAllocPriorityAdvisorAnalysisLegacy *
162162createDevelopmentModePriorityAdvisorAnalysis ();
163163
164+ LLVM_ATTRIBUTE_RETURNS_NONNULL RegAllocPriorityAdvisorProvider *
165+ createReleaseModePriorityAdvisorProvider ();
166+
167+ LLVM_ATTRIBUTE_RETURNS_NONNULL RegAllocPriorityAdvisorProvider *
168+ createDevelopmentModePriorityAdvisorProvider (LLVMContext &Ctx);
169+
164170} // namespace llvm
165171
166172#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 {
388388 return static_cast <unsigned >(Prio);
389389}
390390
391+ RegAllocPriorityAdvisorProvider *
392+ llvm::createDevelopmentModePriorityAdvisorProvider (LLVMContext &Ctx) {
393+ return new DevelopmentModePriorityAdvisorProvider (Ctx);
394+ }
395+
391396#endif // #ifdef LLVM_HAVE_TFLITE
392397
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 ();
409401}
Original file line number Diff line number Diff line change @@ -136,16 +136,27 @@ class DummyPriorityAdvisorAnalysis final
136136void RegAllocPriorityAdvisorAnalysis::initializeProvider (LLVMContext &Ctx) {
137137 if (Provider)
138138 return ;
139- if (Mode == RegAllocPriorityAdvisorProvider::AdvisorMode::Dummy)
139+ switch (Mode) {
140+ case RegAllocPriorityAdvisorProvider::AdvisorMode::Dummy:
140141 Provider.reset (new DummyPriorityAdvisorProvider ());
141- else if (Mode == RegAllocPriorityAdvisorProvider::AdvisorMode::Default)
142+ return ;
143+ case RegAllocPriorityAdvisorProvider::AdvisorMode::Default:
142144 Provider.reset (
143145 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
147151 Provider.reset (
148152 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+ }
149160}
150161
151162AnalysisKey RegAllocPriorityAdvisorAnalysis::Key;
You can’t perform that action at this time.
0 commit comments