CACAO
Public Types | Public Member Functions | Private Member Functions | Static Private Member Functions | Private Attributes
cacao::jit::compiler2::LivetimeIntervalImpl Class Reference
Inheritance diagram for cacao::jit::compiler2::LivetimeIntervalImpl:
cacao::jit::compiler2::memory::ManagerMixin< LivetimeIntervalImpl >

Public Types

typedef
LivetimeInterval::IntervalListTy 
IntervalListTy
 
typedef
LivetimeInterval::const_iterator 
const_iterator
 
typedef LivetimeInterval::iterator iterator
 
typedef LivetimeInterval::State State
 
typedef std::multiset< UseDefUseListTy
 TODO: doc me! More...
 
typedef std::multiset< UseDefDefListTy
 
typedef UseListTy::const_iterator const_use_iterator
 
typedef DefListTy::const_iterator const_def_iterator
 
typedef UseListTy::iterator use_iterator
 
typedef DefListTy::iterator def_iterator
 

Public Member Functions

 LivetimeIntervalImpl (MachineOperand *op)
 construtor More...
 
void add_range (UseDef first, UseDef last)
 A range the range [first, last] to the interval. More...
 
void set_from (UseDef from, UseDef to)
 
State get_State (MIIterator pos) const
 
State get_State (UseDef pos) const
 
bool is_use_at (MIIterator pos) const
 
bool is_def_at (MIIterator pos) const
 
MachineOperandget_operand () const
 
void set_operand (MachineOperand *op)
 
MachineOperandget_init_operand () const
 
MachineOperandget_hint () const
 
void set_hint (MachineOperand *op)
 
LivetimeInterval get_next () const
 
bool has_next () const
 
LivetimeInterval split_active (MIIterator pos, UseDef *current=NULL)
 
LivetimeInterval split_inactive (UseDef pos, MachineOperand *MO)
 
LivetimeInterval split_phi_active (MIIterator pos, MachineOperand *MO)
 
MachineOperandget_operand (MIIterator pos) const
 
UseDef next_usedef_after (UseDef, UseDef) const
 
const_iterator begin () const
 
const_iterator end () const
 
std::size_t size () const
 
bool empty () const
 
LivetimeRange front () const
 
LivetimeRange back () const
 
const_use_iterator use_begin () const
 
const_use_iterator use_end () const
 
std::size_t use_size () const
 
const_def_iterator def_begin () const
 
const_def_iterator def_end () const
 
std::size_t def_size () const
 

Private Member Functions

void insert_usedef (const UseDef &usedef)
 

Static Private Member Functions

static void move_use_def (LivetimeIntervalImpl *from, LivetimeIntervalImpl *to, UseDef pos)
 

Private Attributes

IntervalListTy intervals
 
UseListTy uses
 
DefListTy defs
 
MachineOperandoperand
 store for the interval More...
 
MachineOperandinit_operand
 initial operand for the interval More...
 
MachineOperandhint
 hint for the interval More...
 
LivetimeIntervalnext
 

Additional Inherited Members

- Static Public Member Functions inherited from cacao::jit::compiler2::memory::ManagerMixin< LivetimeIntervalImpl >
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

Definition at line 200 of file LivetimeInterval.hpp.

Member Typedef Documentation

Definition at line 218 of file LivetimeInterval.hpp.

Definition at line 203 of file LivetimeInterval.hpp.

Definition at line 217 of file LivetimeInterval.hpp.

Definition at line 220 of file LivetimeInterval.hpp.

Definition at line 216 of file LivetimeInterval.hpp.

Definition at line 202 of file LivetimeInterval.hpp.

Definition at line 204 of file LivetimeInterval.hpp.

Definition at line 206 of file LivetimeInterval.hpp.

Definition at line 219 of file LivetimeInterval.hpp.

TODO: doc me!

C++11:
this could be changed to std::set where erase returns an iterator.

Definition at line 215 of file LivetimeInterval.hpp.

Constructor & Destructor Documentation

cacao::jit::compiler2::LivetimeIntervalImpl::LivetimeIntervalImpl ( MachineOperand op)
inline

construtor

Definition at line 239 of file LivetimeInterval.hpp.

Member Function Documentation

void cacao::jit::compiler2::LivetimeIntervalImpl::add_range ( UseDef  first,
UseDef  last 
)

A range the range [first, last] to the interval.

Definition at line 36 of file LivetimeInterval.cpp.

LivetimeRange cacao::jit::compiler2::LivetimeIntervalImpl::back ( ) const
inline

Definition at line 268 of file LivetimeInterval.hpp.

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

Definition at line 263 of file LivetimeInterval.hpp.

const_def_iterator cacao::jit::compiler2::LivetimeIntervalImpl::def_begin ( ) const
inline

Definition at line 274 of file LivetimeInterval.hpp.

const_def_iterator cacao::jit::compiler2::LivetimeIntervalImpl::def_end ( ) const
inline

Definition at line 275 of file LivetimeInterval.hpp.

std::size_t cacao::jit::compiler2::LivetimeIntervalImpl::def_size ( ) const
inline

Definition at line 276 of file LivetimeInterval.hpp.

bool cacao::jit::compiler2::LivetimeIntervalImpl::empty ( ) const
inline

Definition at line 266 of file LivetimeInterval.hpp.

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

Definition at line 264 of file LivetimeInterval.hpp.

LivetimeRange cacao::jit::compiler2::LivetimeIntervalImpl::front ( ) const
inline

Definition at line 267 of file LivetimeInterval.hpp.

MachineOperand* cacao::jit::compiler2::LivetimeIntervalImpl::get_hint ( ) const
inline

Definition at line 252 of file LivetimeInterval.hpp.

MachineOperand* cacao::jit::compiler2::LivetimeIntervalImpl::get_init_operand ( ) const
inline

Definition at line 251 of file LivetimeInterval.hpp.

LivetimeInterval cacao::jit::compiler2::LivetimeIntervalImpl::get_next ( ) const
inline

Definition at line 254 of file LivetimeInterval.hpp.

MachineOperand* cacao::jit::compiler2::LivetimeIntervalImpl::get_operand ( ) const
inline

Definition at line 249 of file LivetimeInterval.hpp.

MachineOperand * cacao::jit::compiler2::LivetimeIntervalImpl::get_operand ( MIIterator  pos) const

Definition at line 140 of file LivetimeInterval.cpp.

LivetimeIntervalImpl::State cacao::jit::compiler2::LivetimeIntervalImpl::get_State ( MIIterator  pos) const

Definition at line 92 of file LivetimeInterval.cpp.

LivetimeIntervalImpl::State cacao::jit::compiler2::LivetimeIntervalImpl::get_State ( UseDef  pos) const

Definition at line 75 of file LivetimeInterval.cpp.

bool cacao::jit::compiler2::LivetimeIntervalImpl::has_next ( ) const
inline

Definition at line 255 of file LivetimeInterval.hpp.

void cacao::jit::compiler2::LivetimeIntervalImpl::insert_usedef ( const UseDef usedef)
inlineprivate

Definition at line 230 of file LivetimeInterval.hpp.

bool cacao::jit::compiler2::LivetimeIntervalImpl::is_def_at ( MIIterator  pos) const

Definition at line 113 of file LivetimeInterval.cpp.

bool cacao::jit::compiler2::LivetimeIntervalImpl::is_use_at ( MIIterator  pos) const

Definition at line 109 of file LivetimeInterval.cpp.

void cacao::jit::compiler2::LivetimeIntervalImpl::move_use_def ( LivetimeIntervalImpl from,
LivetimeIntervalImpl to,
UseDef  pos 
)
inlinestaticprivate

Definition at line 182 of file LivetimeInterval.cpp.

UseDef cacao::jit::compiler2::LivetimeIntervalImpl::next_usedef_after ( UseDef  pos,
UseDef  end 
) const

Definition at line 162 of file LivetimeInterval.cpp.

void cacao::jit::compiler2::LivetimeIntervalImpl::set_from ( UseDef  from,
UseDef  to 
)

Definition at line 66 of file LivetimeInterval.cpp.

void cacao::jit::compiler2::LivetimeIntervalImpl::set_hint ( MachineOperand op)
inline

Definition at line 253 of file LivetimeInterval.hpp.

void cacao::jit::compiler2::LivetimeIntervalImpl::set_operand ( MachineOperand op)
inline

Definition at line 250 of file LivetimeInterval.hpp.

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

Definition at line 265 of file LivetimeInterval.hpp.

LivetimeInterval cacao::jit::compiler2::LivetimeIntervalImpl::split_active ( MIIterator  pos,
UseDef current = NULL 
)

Definition at line 213 of file LivetimeInterval.cpp.

LivetimeInterval cacao::jit::compiler2::LivetimeIntervalImpl::split_inactive ( UseDef  pos,
MachineOperand MO 
)

Definition at line 270 of file LivetimeInterval.cpp.

LivetimeInterval cacao::jit::compiler2::LivetimeIntervalImpl::split_phi_active ( MIIterator  pos,
MachineOperand MO 
)

Definition at line 306 of file LivetimeInterval.cpp.

const_use_iterator cacao::jit::compiler2::LivetimeIntervalImpl::use_begin ( ) const
inline

Definition at line 270 of file LivetimeInterval.hpp.

const_use_iterator cacao::jit::compiler2::LivetimeIntervalImpl::use_end ( ) const
inline

Definition at line 271 of file LivetimeInterval.hpp.

std::size_t cacao::jit::compiler2::LivetimeIntervalImpl::use_size ( ) const
inline

Definition at line 272 of file LivetimeInterval.hpp.

Field Documentation

DefListTy cacao::jit::compiler2::LivetimeIntervalImpl::defs
private

Definition at line 224 of file LivetimeInterval.hpp.

MachineOperand* cacao::jit::compiler2::LivetimeIntervalImpl::hint
private

hint for the interval

Definition at line 227 of file LivetimeInterval.hpp.

MachineOperand* cacao::jit::compiler2::LivetimeIntervalImpl::init_operand
private

initial operand for the interval

Definition at line 226 of file LivetimeInterval.hpp.

IntervalListTy cacao::jit::compiler2::LivetimeIntervalImpl::intervals
private

Definition at line 222 of file LivetimeInterval.hpp.

LivetimeInterval* cacao::jit::compiler2::LivetimeIntervalImpl::next
private

Definition at line 228 of file LivetimeInterval.hpp.

MachineOperand* cacao::jit::compiler2::LivetimeIntervalImpl::operand
private

store for the interval

Definition at line 225 of file LivetimeInterval.hpp.

UseListTy cacao::jit::compiler2::LivetimeIntervalImpl::uses
private

Definition at line 223 of file LivetimeInterval.hpp.


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