CACAO
|
Public Types | |
enum | State { Unhandled, Active, Inactive, Handled } |
typedef alloc::list < LivetimeRange >::type | IntervalListTy |
typedef IntervalListTy::const_iterator | const_iterator |
typedef IntervalListTy::iterator | iterator |
typedef std::multiset< UseDef > | UseListTy |
typedef std::multiset< UseDef > | DefListTy |
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 | |
LivetimeInterval (MachineOperand *) | |
constructor More... | |
LivetimeInterval (const LivetimeInterval &other) | |
copy constructor More... | |
LivetimeInterval & | operator= (const LivetimeInterval &other) |
copy assignment operator 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) |
Set from. If no interval available add range from to. More... | |
State | get_State (MIIterator pos) const |
State | get_State (UseDef pos) const |
bool | is_use_at (MIIterator pos) const |
Is use position. More... | |
bool | is_def_at (MIIterator pos) const |
Is def position. More... | |
MachineOperand * | get_operand () const |
Get the current store of the interval. More... | |
MachineOperand * | get_operand (MIIterator pos) const |
Get the store of the interval at position pos. More... | |
void | set_operand (MachineOperand *op) |
Set the current store of the interval. More... | |
MachineOperand * | get_hint () const |
Get the hint for the interval. More... | |
void | set_hint (MachineOperand *op) |
Set the hit for the interval. More... | |
MachineOperand * | get_init_operand () const |
Get the initial operand. More... | |
LivetimeInterval | split_active (MIIterator pos, UseDef *current=NULL) |
Split interval at active pos. More... | |
LivetimeInterval | split_inactive (UseDef pos, MachineOperand *MO) |
Split interval at inactive pos. More... | |
LivetimeInterval | split_phi_active (MIIterator pos, MachineOperand *MO) |
Split a phi input operand. More... | |
UseDef | next_usedef_after (UseDef pos, UseDef end) const |
get next use def after pos (if not found return end) More... | |
LivetimeInterval | get_next () const |
get next split interval More... | |
bool | has_next () 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 Attributes | |
std::shared_ptr < LivetimeIntervalImpl > | pimpl |
Friends | |
class | LivetimeIntervalImpl |
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... | |
Definition at line 105 of file LivetimeInterval.hpp.
typedef DefListTy::const_iterator cacao::jit::compiler2::LivetimeInterval::const_def_iterator |
Definition at line 114 of file LivetimeInterval.hpp.
typedef IntervalListTy::const_iterator cacao::jit::compiler2::LivetimeInterval::const_iterator |
Definition at line 108 of file LivetimeInterval.hpp.
typedef UseListTy::const_iterator cacao::jit::compiler2::LivetimeInterval::const_use_iterator |
Definition at line 113 of file LivetimeInterval.hpp.
typedef DefListTy::iterator cacao::jit::compiler2::LivetimeInterval::def_iterator |
Definition at line 116 of file LivetimeInterval.hpp.
typedef std::multiset<UseDef> cacao::jit::compiler2::LivetimeInterval::DefListTy |
Definition at line 112 of file LivetimeInterval.hpp.
Definition at line 107 of file LivetimeInterval.hpp.
typedef IntervalListTy::iterator cacao::jit::compiler2::LivetimeInterval::iterator |
Definition at line 109 of file LivetimeInterval.hpp.
typedef UseListTy::iterator cacao::jit::compiler2::LivetimeInterval::use_iterator |
Definition at line 115 of file LivetimeInterval.hpp.
typedef std::multiset<UseDef> cacao::jit::compiler2::LivetimeInterval::UseListTy |
Definition at line 111 of file LivetimeInterval.hpp.
|
inlineexplicit |
constructor
Definition at line 280 of file LivetimeInterval.hpp.
|
inline |
copy constructor
Definition at line 281 of file LivetimeInterval.hpp.
A range the range [first, last] to the interval.
Definition at line 286 of file LivetimeInterval.hpp.
|
inline |
Definition at line 320 of file LivetimeInterval.hpp.
|
inline |
Definition at line 305 of file LivetimeInterval.hpp.
|
inline |
Definition at line 371 of file LivetimeInterval.hpp.
|
inline |
Definition at line 374 of file LivetimeInterval.hpp.
|
inline |
Definition at line 377 of file LivetimeInterval.hpp.
|
inline |
Definition at line 314 of file LivetimeInterval.hpp.
|
inline |
Definition at line 308 of file LivetimeInterval.hpp.
|
inline |
Definition at line 317 of file LivetimeInterval.hpp.
|
inline |
Get the hint for the interval.
Definition at line 335 of file LivetimeInterval.hpp.
|
inline |
Get the initial operand.
This is needed to identify phi instructions as they do not have an MIIterator associated with them.
Definition at line 329 of file LivetimeInterval.hpp.
|
inline |
get next split interval
Definition at line 353 of file LivetimeInterval.hpp.
|
inline |
Get the current store of the interval.
Definition at line 323 of file LivetimeInterval.hpp.
|
inline |
Get the store of the interval at position pos.
Definition at line 326 of file LivetimeInterval.hpp.
|
inline |
Definition at line 292 of file LivetimeInterval.hpp.
|
inline |
Definition at line 295 of file LivetimeInterval.hpp.
|
inline |
Definition at line 356 of file LivetimeInterval.hpp.
|
inline |
Is def position.
Definition at line 301 of file LivetimeInterval.hpp.
|
inline |
Is use position.
Definition at line 298 of file LivetimeInterval.hpp.
|
inline |
get next use def after pos (if not found return end)
Definition at line 341 of file LivetimeInterval.hpp.
|
inline |
copy assignment operator
Definition at line 282 of file LivetimeInterval.hpp.
Set from. If no interval available add range from to.
Definition at line 289 of file LivetimeInterval.hpp.
|
inline |
Set the hit for the interval.
Definition at line 338 of file LivetimeInterval.hpp.
|
inline |
Set the current store of the interval.
Definition at line 332 of file LivetimeInterval.hpp.
|
inline |
Definition at line 311 of file LivetimeInterval.hpp.
|
inline |
Split interval at active pos.
pos | Must be a move/copy instruction with one input and one output |
current | move UseDef's after current. If NULL, move UseDef's after pos |
Definition at line 344 of file LivetimeInterval.hpp.
|
inline |
Split interval at inactive pos.
Definition at line 347 of file LivetimeInterval.hpp.
|
inline |
Split a phi input operand.
Definition at line 350 of file LivetimeInterval.hpp.
|
inline |
Definition at line 361 of file LivetimeInterval.hpp.
|
inline |
Definition at line 364 of file LivetimeInterval.hpp.
|
inline |
Definition at line 367 of file LivetimeInterval.hpp.
|
friend |
Definition at line 196 of file LivetimeInterval.hpp.
|
private |
Definition at line 195 of file LivetimeInterval.hpp.