CACAO
Public Types | Public Member Functions | Static Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes | Friends
cacao::jit::compiler2::PassManager Class Reference

Manage the execution of compiler passes. More...

Public Types

typedef alloc::unordered_set
< PassInfo::IDTy >::type 
PassListTy
 
typedef alloc::vector
< PassInfo::IDTy >::type 
ScheduleListTy
 
typedef alloc::unordered_map
< PassInfo::IDTy, Pass * >
::type 
PassMapTy
 
typedef alloc::unordered_map
< PassInfo::IDTy, bool >::type 
ResultReadyMapTy
 
typedef alloc::unordered_map
< PassInfo::IDTy, PassInfo * >
::type 
PassInfoMapTy
 

Public Member Functions

const char * get_Pass_name (PassInfo::IDTy ID)
 
 PassManager ()
 
 ~PassManager ()
 
void initializePasses ()
 run pass initializers More...
 
void runPasses (JITData &JD)
 run passes More...
 
void finalizePasses ()
 run pass finalizers More...
 
template<class _PassClass >
void add_Pass ()
 add a compiler pass More...
 
PassMapTy::const_iterator initialized_begin () const
 
PassMapTy::const_iterator initialized_end () const
 
PassInfoMapTy::const_iterator registered_begin () const
 
PassInfoMapTy::const_iterator registered_end () const
 

Static Public Member Functions

static void register_Pass (PassInfo *PI)
 DO NOT CALL THIS MANUALLY. More...
 

Private Member Functions

Passget_initialized_Pass (PassInfo::IDTy ID)
 
template<class _PassClass >
_PassClass * get_Pass_result ()
 
void schedulePasses ()
 

Static Private Member Functions

static PassInfoMapTyregistered_passes ()
 

Private Attributes

PassMapTy initialized_passes
 This stores the initialized passes. More...
 
ScheduleListTy schedule
 This variable contains a schedule of the passes. More...
 
PassListTy passes
 The list of passed that should be performed. More...
 
ResultReadyMapTy result_ready
 Map of ready results. More...
 

Friends

class Pass
 

Detailed Description

Manage the execution of compiler passes.

Todo:

handle modified (timestamp?)

conditionally reevaluate

Definition at line 75 of file PassManager.hpp.

Member Typedef Documentation

Definition at line 81 of file PassManager.hpp.

Definition at line 77 of file PassManager.hpp.

Definition at line 79 of file PassManager.hpp.

Definition at line 80 of file PassManager.hpp.

Definition at line 78 of file PassManager.hpp.

Constructor & Destructor Documentation

cacao::jit::compiler2::PassManager::PassManager ( )
inline

Definition at line 122 of file PassManager.hpp.

cacao::jit::compiler2::PassManager::~PassManager ( )

Definition at line 80 of file PassManager.cpp.

Member Function Documentation

template<class _PassClass >
void cacao::jit::compiler2::PassManager::add_Pass ( )
inline

add a compiler pass

Definition at line 155 of file PassManager.hpp.

void cacao::jit::compiler2::PassManager::finalizePasses ( )

run pass finalizers

Definition at line 140 of file PassManager.cpp.

Pass * cacao::jit::compiler2::PassManager::get_initialized_Pass ( PassInfo::IDTy  ID)
private

Definition at line 62 of file PassManager.cpp.

const char* cacao::jit::compiler2::PassManager::get_Pass_name ( PassInfo::IDTy  ID)
inline

Definition at line 117 of file PassManager.hpp.

template<class _PassClass >
_PassClass* cacao::jit::compiler2::PassManager::get_Pass_result ( )
inlineprivate

Definition at line 110 of file PassManager.hpp.

PassMapTy::const_iterator cacao::jit::compiler2::PassManager::initialized_begin ( ) const
inline

Definition at line 162 of file PassManager.hpp.

PassMapTy::const_iterator cacao::jit::compiler2::PassManager::initialized_end ( ) const
inline

Definition at line 163 of file PassManager.hpp.

void cacao::jit::compiler2::PassManager::initializePasses ( )

run pass initializers

Definition at line 88 of file PassManager.cpp.

static void cacao::jit::compiler2::PassManager::register_Pass ( PassInfo PI)
inlinestatic

DO NOT CALL THIS MANUALLY.

ONLY INVOKE VIA RegisterPass.

Definition at line 131 of file PassManager.hpp.

PassInfoMapTy::const_iterator cacao::jit::compiler2::PassManager::registered_begin ( ) const
inline

Definition at line 164 of file PassManager.hpp.

PassInfoMapTy::const_iterator cacao::jit::compiler2::PassManager::registered_end ( ) const
inline

Definition at line 165 of file PassManager.hpp.

static PassInfoMapTy& cacao::jit::compiler2::PassManager::registered_passes ( )
inlinestaticprivate

Definition at line 102 of file PassManager.hpp.

void cacao::jit::compiler2::PassManager::runPasses ( JITData JD)

run passes

Definition at line 91 of file PassManager.cpp.

void cacao::jit::compiler2::PassManager::schedulePasses ( )
private

Definition at line 331 of file PassManager.cpp.

Friends And Related Function Documentation

friend class Pass
friend

Definition at line 167 of file PassManager.hpp.

Field Documentation

PassMapTy cacao::jit::compiler2::PassManager::initialized_passes
private

This stores the initialized passes.

Every Pass can only occur once.

Definition at line 87 of file PassManager.hpp.

PassListTy cacao::jit::compiler2::PassManager::passes
private

The list of passed that should be performed.

Definition at line 96 of file PassManager.hpp.

ResultReadyMapTy cacao::jit::compiler2::PassManager::result_ready
private

Map of ready results.

Definition at line 100 of file PassManager.hpp.

ScheduleListTy cacao::jit::compiler2::PassManager::schedule
private

This variable contains a schedule of the passes.

A pass may occur more than once.

Definition at line 92 of file PassManager.hpp.


The documentation for this class was generated from the following files: