CACAO
|
Manages pass registry and scheduling. More...
Public Types | |
using | ScheduleListTy = alloc::vector< PassInfo::IDTy >::type |
using | PassInfoMapTy = alloc::unordered_map< PassInfo::IDTy, PassInfo * >::type |
Public Member Functions | |
const char * | get_Pass_name (PassInfo::IDTy ID) |
ScheduleListTy::const_iterator | schedule_begin () |
ScheduleListTy::const_iterator | schedule_end () const |
PassInfoMapTy::const_iterator | registered_begin () const |
PassInfoMapTy::const_iterator | registered_end () const |
Static Public Member Functions | |
static PassManager & | get () |
static void | register_Pass (PassInfo *PI) |
DO NOT CALL THIS MANUALLY. More... | |
Private Member Functions | |
void | schedulePasses () |
PassUPtrTy | create_Pass (PassInfo::IDTy ID) const |
PassManager () | |
Static Private Member Functions | |
static PassInfoMapTy & | registered_passes () |
Private Attributes | |
ScheduleListTy | schedule |
This is the pass schedule. More... | |
bool | passes_are_scheduled |
Friends | |
class | PassRunner |
Manages pass registry and scheduling.
PassManager is implemented as a singleton. It holds a list of registered passes and knows how to construct them.
Passes are scheduled the first time the schedule is accessed and the schedule does not change after that.
Running passes and propagating results between passes is handled by the PassRunner.
Definition at line 87 of file PassManager.hpp.
using cacao::jit::compiler2::PassManager::PassInfoMapTy = alloc::unordered_map<PassInfo::IDTy, PassInfo*>::type |
Definition at line 90 of file PassManager.hpp.
Definition at line 89 of file PassManager.hpp.
|
inlineexplicitprivate |
Definition at line 107 of file PassManager.hpp.
|
private |
Definition at line 63 of file PassManager.cpp.
|
inlinestatic |
Definition at line 110 of file PassManager.hpp.
|
inline |
Definition at line 124 of file PassManager.hpp.
DO NOT CALL THIS MANUALLY.
ONLY INVOKE VIA RegisterPass.
Definition at line 119 of file PassManager.hpp.
|
inline |
Definition at line 139 of file PassManager.hpp.
|
inline |
Definition at line 140 of file PassManager.hpp.
|
inlinestaticprivate |
Definition at line 99 of file PassManager.hpp.
|
inline |
Definition at line 130 of file PassManager.hpp.
|
inline |
Definition at line 137 of file PassManager.hpp.
|
private |
Definition at line 324 of file PassManager.cpp.
|
friend |
Definition at line 142 of file PassManager.hpp.
|
private |
Definition at line 97 of file PassManager.hpp.
|
private |
This is the pass schedule.
A pass may occur more than once.
Definition at line 95 of file PassManager.hpp.