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

LivetimeAnalysisPass. More...

Inheritance diagram for cacao::jit::compiler2::LivetimeAnalysisPass:
cacao::jit::compiler2::Pass cacao::jit::compiler2::memory::ManagerMixin< LivetimeAnalysisPass >

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 PassUsageget_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
 
LivetimeIntervalget (MachineOperand *operand)
 
OStreamprint (OStream &OS) const
 
- Public Member Functions inherited from cacao::jit::compiler2::Pass
 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
 
MachineInstructionScheduleMIS
 

Additional Inherited Members

- Static Public Member Functions inherited from cacao::jit::compiler2::memory::ManagerMixin< LivetimeAnalysisPass >
static voidoperator new (std::size_t size) throw (std::bad_alloc)
 normal new More...
 
static voidoperator new (std::size_t size, void *ptr) throw ()
 placement new More...
 
static voidoperator 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 voidoperator new[] (std::size_t size) throw (std::bad_alloc)
 normal new[] More...
 
static voidoperator new[] (std::size_t size, void *ptr) throw ()
 placement new[] More...
 
static voidoperator 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...
 

Detailed Description

LivetimeAnalysisPass.

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.

Member Typedef Documentation

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.

Definition at line 51 of file LivetimeAnalysisPass.hpp.

Definition at line 50 of file LivetimeAnalysisPass.hpp.

Definition at line 46 of file LivetimeAnalysisPass.hpp.

Constructor & Destructor Documentation

cacao::jit::compiler2::LivetimeAnalysisPass::LivetimeAnalysisPass ( )
inline

Definition at line 59 of file LivetimeAnalysisPass.hpp.

Member Function Documentation

const_iterator cacao::jit::compiler2::LivetimeAnalysisPass::begin ( ) const
inline

Definition at line 66 of file LivetimeAnalysisPass.hpp.

iterator cacao::jit::compiler2::LivetimeAnalysisPass::begin ( )
inline

Definition at line 72 of file LivetimeAnalysisPass.hpp.

const_iterator cacao::jit::compiler2::LivetimeAnalysisPass::end ( ) const
inline

Definition at line 69 of file LivetimeAnalysisPass.hpp.

iterator cacao::jit::compiler2::LivetimeAnalysisPass::end ( )
inline

Definition at line 75 of file LivetimeAnalysisPass.hpp.

LivetimeInterval& cacao::jit::compiler2::LivetimeAnalysisPass::get ( MachineOperand operand)
inline

Definition at line 81 of file LivetimeAnalysisPass.hpp.

PassUsage & cacao::jit::compiler2::LivetimeAnalysisPass::get_PassUsage ( PassUsage PU) const
virtual

Set the requirements for the pass.

Reimplemented from cacao::jit::compiler2::Pass.

Definition at line 403 of file LivetimeAnalysisPass.cpp.

void cacao::jit::compiler2::LivetimeAnalysisPass::initialize ( )
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.

OStream & cacao::jit::compiler2::LivetimeAnalysisPass::print ( OStream OS) const

Definition at line 342 of file LivetimeAnalysisPass.cpp.

bool cacao::jit::compiler2::LivetimeAnalysisPass::run ( JITData JD)
virtual

Run the Pass.

This method implements the compiler pass.

Returns
false if a problem occurred, true otherwise

Implements cacao::jit::compiler2::Pass.

Definition at line 251 of file LivetimeAnalysisPass.cpp.

std::size_t cacao::jit::compiler2::LivetimeAnalysisPass::size ( ) const
inline

Definition at line 78 of file LivetimeAnalysisPass.hpp.

bool cacao::jit::compiler2::LivetimeAnalysisPass::verify ( ) const
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.

Field Documentation

char cacao::jit::compiler2::LivetimeAnalysisPass::ID = 0
static

Definition at line 58 of file LivetimeAnalysisPass.hpp.

LivetimeIntervalMapTy cacao::jit::compiler2::LivetimeAnalysisPass::lti_map
private

Definition at line 55 of file LivetimeAnalysisPass.hpp.

MachineInstructionSchedule* cacao::jit::compiler2::LivetimeAnalysisPass::MIS
private

Definition at line 56 of file LivetimeAnalysisPass.hpp.


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