CACAO
|
Public Types | |
typedef alloc::map < MachineOperand *, LivetimeInterval, MachineOperandComp >::type | LivetimeIntervalMapTy |
typedef LivetimeIntervalMapTy::const_iterator | const_iterator |
typedef LivetimeIntervalMapTy::iterator | iterator |
typedef alloc::set < MachineOperand * >::type | LiveInSetTy |
typedef alloc::map < MachineBasicBlock *, LiveInSetTy >::type | LiveInMapTy |
Public Member Functions | |
LivetimeAnalysisPass () | |
virtual bool | run (JITData &JD) |
Run the Pass. More... | |
virtual PassUsage & | get_PassUsage (PassUsage &PA) const |
Set the requirements for the pass. More... | |
virtual bool | verify () const |
Verify the Result. More... | |
virtual void | initialize () |
Initialize the Pass. More... | |
const_iterator | begin () const |
const_iterator | end () const |
iterator | begin () |
iterator | end () |
std::size_t | size () const |
LivetimeInterval & | get (MachineOperand *operand) |
OStream & | print (OStream &OS) const |
![]() | |
Pass () | |
void | set_PassManager (PassManager *PM) |
template<class _PassClass > | |
_PassClass * | get_Pass () const |
Get the result of a previous compiler pass. More... | |
template<class _PassClass > | |
_PassClass * | get_Pass_if_available () const |
Get the result of a previous compiler pass. More... | |
virtual void | finalize () |
Finalize the Pass. More... | |
virtual | ~Pass () |
Destructor. More... | |
Static Public Attributes | |
static char | ID = 0 |
Private Attributes | |
LivetimeIntervalMapTy | lti_map |
MachineInstructionSchedule * | MIS |
Additional Inherited Members | |
![]() | |
static void * | operator new (std::size_t size) throw (std::bad_alloc) |
normal new More... | |
static void * | operator new (std::size_t size, void *ptr) throw () |
placement new More... | |
static void * | operator new (std::size_t size, const std::nothrow_t &nt) throw () |
nothrow new More... | |
static void | operator delete (void *pMemory) throw () |
normal delete More... | |
static void | operator delete (void *pMemory, void *ptr) throw () |
placement delete More... | |
static void | operator delete (void *pMemory, const std::nothrow_t &) throw () |
nothrow delete More... | |
static void * | operator new[] (std::size_t size) throw (std::bad_alloc) |
normal new[] More... | |
static void * | operator new[] (std::size_t size, void *ptr) throw () |
placement new[] More... | |
static void * | operator new[] (std::size_t size, const std::nothrow_t &nt) throw () |
nothrow new[] More... | |
static void | operator delete[] (void *pMemory) throw () |
normal delete[] More... | |
static void | operator delete[] (void *pMemory, void *ptr) throw () |
placement delete[] More... | |
static void | operator delete[] (void *pMemory, const std::nothrow_t &) throw () |
nothrow delete[] More... | |
Based on the approach from "Linear scan register allocation on SSA form" by Wimmer and Franz [11].
Definition at line 44 of file LivetimeAnalysisPass.hpp.
typedef LivetimeIntervalMapTy::const_iterator cacao::jit::compiler2::LivetimeAnalysisPass::const_iterator |
Definition at line 47 of file LivetimeAnalysisPass.hpp.
typedef LivetimeIntervalMapTy::iterator cacao::jit::compiler2::LivetimeAnalysisPass::iterator |
Definition at line 48 of file LivetimeAnalysisPass.hpp.
typedef alloc::map<MachineBasicBlock*,LiveInSetTy>::type cacao::jit::compiler2::LivetimeAnalysisPass::LiveInMapTy |
Definition at line 51 of file LivetimeAnalysisPass.hpp.
Definition at line 50 of file LivetimeAnalysisPass.hpp.
typedef alloc::map<MachineOperand*,LivetimeInterval,MachineOperandComp>::type cacao::jit::compiler2::LivetimeAnalysisPass::LivetimeIntervalMapTy |
Definition at line 46 of file LivetimeAnalysisPass.hpp.
|
inline |
Definition at line 59 of file LivetimeAnalysisPass.hpp.
|
inline |
Definition at line 66 of file LivetimeAnalysisPass.hpp.
|
inline |
Definition at line 72 of file LivetimeAnalysisPass.hpp.
|
inline |
Definition at line 69 of file LivetimeAnalysisPass.hpp.
|
inline |
Definition at line 75 of file LivetimeAnalysisPass.hpp.
|
inline |
Definition at line 81 of file LivetimeAnalysisPass.hpp.
|
virtual |
Set the requirements for the pass.
Reimplemented from cacao::jit::compiler2::Pass.
Definition at line 403 of file LivetimeAnalysisPass.cpp.
|
virtual |
Initialize the Pass.
This method is called by the PassManager before the pass is started. It should be used to initialize e.g. data structures. A Pass object might be reused so the construtor can not be used in some cases.
Reimplemented from cacao::jit::compiler2::Pass.
Definition at line 42 of file LivetimeAnalysisPass.cpp.
Definition at line 342 of file LivetimeAnalysisPass.cpp.
|
virtual |
Run the Pass.
This method implements the compiler pass.
Implements cacao::jit::compiler2::Pass.
Definition at line 251 of file LivetimeAnalysisPass.cpp.
|
inline |
Definition at line 78 of file LivetimeAnalysisPass.hpp.
|
virtual |
Verify the Result.
This method is used to verify the result of the pass. It has the same motivation than the assert() statement. It should be only used for debugging purposes and might not be called in release builds.
Reimplemented from cacao::jit::compiler2::Pass.
Definition at line 374 of file LivetimeAnalysisPass.cpp.
|
static |
Definition at line 58 of file LivetimeAnalysisPass.hpp.
|
private |
Definition at line 55 of file LivetimeAnalysisPass.hpp.
|
private |
Definition at line 56 of file LivetimeAnalysisPass.hpp.