|
CACAO
|
A basic block of (scheduled) machine instructions. More...
Public Types | |
| typedef alloc::ordered_list < MachineInstruction * >::type | Container |
| typedef Container::iterator | iterator |
| typedef Container::const_iterator | const_iterator |
| typedef Container::reference | reference |
| typedef Container::const_reference | const_reference |
| typedef Container::pointer | pointer |
| typedef Container::const_pointer | const_pointer |
| typedef Container::reverse_iterator | reverse_iterator |
| typedef Container::const_reverse_iterator | const_reverse_iterator |
| typedef alloc::list < MachinePhiInst * >::type | PhiListTy |
| typedef PhiListTy::const_iterator | const_phi_iterator |
| typedef alloc::vector < MachineBasicBlock * >::type | PredListTy |
| typedef PredListTy::const_iterator | const_pred_iterator |
| typedef PredListTy::iterator | pred_iterator |
Public Member Functions | |
| MachineBasicBlock (const MBBIterator &my_it) | |
| construct an empty MachineBasicBlock More... | |
| bool | empty () const |
| checks if the basic block has no elements. More... | |
| std::size_t | size () const |
| returns the number of elements More... | |
| void | push_back (MachineInstruction *value) |
| Appends the given element value to the end of the container. More... | |
| void | push_front (MachineInstruction *value) |
| inserts value to the beginning More... | |
| iterator | insert_before (iterator pos, MachineInstruction *value) |
| inserts value before the element pointed to by pos More... | |
| iterator | insert (iterator pos, MachineInstruction *value) |
| inserts value before the element pointed to by pos More... | |
| iterator | insert_after (iterator pos, MachineInstruction *value) |
| inserts value after the element pointed to by pos More... | |
| template<class InputIt > | |
| void | insert_before (iterator pos, InputIt first, InputIt last) |
| inserts elements from range [first, last) before pos More... | |
| template<class InputIt > | |
| void | insert_after (iterator pos, InputIt first, InputIt last) |
| inserts elements from range [first, last) after pos More... | |
| iterator | erase (iterator pos) |
| erases element More... | |
| iterator | erase (iterator first, iterator last) |
| erases elements More... | |
| iterator | begin () |
| returns an iterator to the beginning More... | |
| iterator | end () |
| returns an iterator to the end More... | |
| const_iterator | begin () const |
| returns an const iterator to the beginning More... | |
| const_iterator | end () const |
| returns an const iterator to the end More... | |
| reverse_iterator | rbegin () |
| returns an reverse_iterator to the beginning More... | |
| reverse_iterator | rend () |
| returns an reverse_iterator to the end More... | |
| const_reverse_iterator | rbegin () const |
| returns an const reverse_iterator to the beginning More... | |
| const_reverse_iterator | rend () const |
| returns an const reverse_iterator to the end More... | |
| const_reference | front () const |
| access the first element More... | |
| const_reference | back () const |
| access the last element More... | |
| reference | front () |
| access the first element More... | |
| reference | back () |
| access the last element More... | |
| void | insert_phi (MachinePhiInst *value) |
| Appends the given element value to the list of phis. More... | |
| const_phi_iterator | phi_begin () const |
| returns an const iterator to the phi instructions More... | |
| const_phi_iterator | phi_end () const |
| returns an const iterator to the phi instructions More... | |
| std::size_t | phi_size () const |
| returns the number of phi nodes More... | |
| void | phi_clear () |
| removes all phi nodes More... | |
| void | insert_pred (MachineBasicBlock *value) |
| Appends the given element value to the list of predecessors. More... | |
| const_pred_iterator | pred_begin () const |
| returns an const iterator to the predecessors More... | |
| const_pred_iterator | pred_end () const |
| returns an const iterator to the predecessors More... | |
| pred_iterator | pred_begin () |
| returns an iterator to the predecessors More... | |
| pred_iterator | pred_end () |
| returns an iterator to the predecessors More... | |
| std::size_t | pred_size () const |
| returns the number of predecessor nodes More... | |
| MachineBasicBlock * | get_predecessor (std::size_t i) const |
| Get the i'th predecessor. More... | |
| std::size_t | get_predecessor_index (MachineBasicBlock *MBB) const |
| Get predecessor index. More... | |
| MIIterator | convert (iterator pos) |
| get a MIIterator form a iterator More... | |
| MIIterator | convert (reverse_iterator pos) |
| get a MIIterator form a iterator More... | |
| MIIterator | mi_first () |
| returns an MIIterator to the first element More... | |
| MIIterator | mi_last () |
| returns an MIIterator to the last element (included) More... | |
| MBBIterator | self_iterator () const |
| get self iterator More... | |
| MachineInstructionSchedule * | get_parent () const |
| get parent More... | |
| OStream & | print (OStream &OS) const |
| print More... | |
| bool | operator== (const MachineBasicBlock &other) const |
| equality operator More... | |
Static Public Member Functions | |
| static iterator | convert (MIIterator pos) |
| get a iterator form a MIIterator More... | |
Static Public Member Functions inherited from cacao::jit::compiler2::memory::ManagerMixin< MachineBasicBlock > | |
| 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... | |
Private Member Functions | |
| void | update (MachineInstruction *MI) |
| update instruction block More... | |
| MachineBasicBlock () | |
| empty constructor More... | |
Private Attributes | |
| std::size_t | id |
| MBBIterator | my_it |
| Container | list |
| PhiListTy | phi |
| PredListTy | predecessors |
Static Private Attributes | |
| static std::size_t | id_counter = 0 |
Friends | |
| class | MBBBuilder |
| class | MachineInstructionSchedule |
A basic block of (scheduled) machine instructions.
A MachineBasicBlock contains an ordered collection of MachineInstructions. These MachineInstructions can be accessed via MIIterators. These "smart-iterators" are not only used for access but also for ordering MachineInstructions.
Once a MachineInstruction is added, the MachineBasicBlock takes over the responsability for deleting it.
Definition at line 143 of file MachineBasicBlock.hpp.
Definition at line 147 of file MachineBasicBlock.hpp.
| typedef PhiListTy::const_iterator cacao::jit::compiler2::MachineBasicBlock::const_phi_iterator |
Definition at line 157 of file MachineBasicBlock.hpp.
Definition at line 151 of file MachineBasicBlock.hpp.
| typedef PredListTy::const_iterator cacao::jit::compiler2::MachineBasicBlock::const_pred_iterator |
Definition at line 160 of file MachineBasicBlock.hpp.
Definition at line 149 of file MachineBasicBlock.hpp.
| typedef Container::const_reverse_iterator cacao::jit::compiler2::MachineBasicBlock::const_reverse_iterator |
Definition at line 154 of file MachineBasicBlock.hpp.
| typedef alloc::ordered_list<MachineInstruction*>::type cacao::jit::compiler2::MachineBasicBlock::Container |
Definition at line 145 of file MachineBasicBlock.hpp.
Definition at line 146 of file MachineBasicBlock.hpp.
Definition at line 156 of file MachineBasicBlock.hpp.
Definition at line 150 of file MachineBasicBlock.hpp.
| typedef PredListTy::iterator cacao::jit::compiler2::MachineBasicBlock::pred_iterator |
Definition at line 161 of file MachineBasicBlock.hpp.
| typedef alloc::vector<MachineBasicBlock*>::type cacao::jit::compiler2::MachineBasicBlock::PredListTy |
Definition at line 159 of file MachineBasicBlock.hpp.
Definition at line 148 of file MachineBasicBlock.hpp.
Definition at line 153 of file MachineBasicBlock.hpp.
|
inline |
construct an empty MachineBasicBlock
Definition at line 164 of file MachineBasicBlock.hpp.
|
inlineprivate |
empty constructor
Definition at line 279 of file MachineBasicBlock.hpp.
|
inline |
access the last element
Definition at line 413 of file MachineBasicBlock.hpp.
|
inline |
access the last element
Definition at line 419 of file MachineBasicBlock.hpp.
|
inline |
returns an iterator to the beginning
Definition at line 386 of file MachineBasicBlock.hpp.
|
inline |
returns an const iterator to the beginning
Definition at line 392 of file MachineBasicBlock.hpp.
|
inline |
get a MIIterator form a iterator
Definition at line 422 of file MachineBasicBlock.hpp.
|
inline |
get a MIIterator form a iterator
Definition at line 428 of file MachineBasicBlock.hpp.
|
inlinestatic |
get a iterator form a MIIterator
Definition at line 431 of file MachineBasicBlock.hpp.
|
inline |
checks if the basic block has no elements.
Definition at line 328 of file MachineBasicBlock.hpp.
|
inline |
returns an iterator to the end
Definition at line 389 of file MachineBasicBlock.hpp.
|
inline |
returns an const iterator to the end
Definition at line 395 of file MachineBasicBlock.hpp.
|
inline |
erases element
Definition at line 379 of file MachineBasicBlock.hpp.
|
inline |
erases elements
Definition at line 383 of file MachineBasicBlock.hpp.
|
inline |
access the first element
Definition at line 410 of file MachineBasicBlock.hpp.
|
inline |
access the first element
Definition at line 416 of file MachineBasicBlock.hpp.
|
inline |
get parent
Definition at line 445 of file MachineBasicBlock.hpp.
|
inline |
Get the i'th predecessor.
Definition at line 486 of file MachineBasicBlock.hpp.
|
inline |
Get predecessor index.
Definition at line 491 of file MachineBasicBlock.hpp.
|
inline |
inserts value before the element pointed to by pos
Definition at line 350 of file MachineBasicBlock.hpp.
|
inline |
inserts value after the element pointed to by pos
Definition at line 356 of file MachineBasicBlock.hpp.
|
inline |
inserts elements from range [first, last) after pos
Definition at line 371 of file MachineBasicBlock.hpp.
|
inline |
inserts value before the element pointed to by pos
Definition at line 344 of file MachineBasicBlock.hpp.
|
inline |
inserts elements from range [first, last) before pos
Definition at line 363 of file MachineBasicBlock.hpp.
|
inline |
Appends the given element value to the list of phis.
Definition at line 452 of file MachineBasicBlock.hpp.
|
inline |
Appends the given element value to the list of predecessors.
Definition at line 468 of file MachineBasicBlock.hpp.
|
inline |
returns an MIIterator to the first element
Definition at line 434 of file MachineBasicBlock.hpp.
|
inline |
returns an MIIterator to the last element (included)
Definition at line 438 of file MachineBasicBlock.hpp.
|
inline |
equality operator
Definition at line 501 of file MachineBasicBlock.hpp.
|
inline |
returns an const iterator to the phi instructions
Definition at line 455 of file MachineBasicBlock.hpp.
|
inline |
removes all phi nodes
Definition at line 464 of file MachineBasicBlock.hpp.
|
inline |
returns an const iterator to the phi instructions
Definition at line 458 of file MachineBasicBlock.hpp.
|
inline |
returns the number of phi nodes
Definition at line 461 of file MachineBasicBlock.hpp.
|
inline |
returns an const iterator to the predecessors
Definition at line 471 of file MachineBasicBlock.hpp.
|
inline |
returns an iterator to the predecessors
Definition at line 477 of file MachineBasicBlock.hpp.
|
inline |
returns an const iterator to the predecessors
Definition at line 474 of file MachineBasicBlock.hpp.
|
inline |
returns an iterator to the predecessors
Definition at line 480 of file MachineBasicBlock.hpp.
|
inline |
returns the number of predecessor nodes
Definition at line 483 of file MachineBasicBlock.hpp.
Definition at line 44 of file MachineBasicBlock.cpp.
|
inline |
Appends the given element value to the end of the container.
Definition at line 334 of file MachineBasicBlock.hpp.
|
inline |
inserts value to the beginning
Definition at line 339 of file MachineBasicBlock.hpp.
|
inline |
returns an reverse_iterator to the beginning
Definition at line 398 of file MachineBasicBlock.hpp.
|
inline |
returns an const reverse_iterator to the beginning
Definition at line 404 of file MachineBasicBlock.hpp.
|
inline |
returns an reverse_iterator to the end
Definition at line 401 of file MachineBasicBlock.hpp.
|
inline |
returns an const reverse_iterator to the end
Definition at line 407 of file MachineBasicBlock.hpp.
|
inline |
get self iterator
Definition at line 442 of file MachineBasicBlock.hpp.
|
inline |
returns the number of elements
Definition at line 331 of file MachineBasicBlock.hpp.
|
private |
update instruction block
Definition at line 48 of file MachineBasicBlock.cpp.
|
friend |
Definition at line 285 of file MachineBasicBlock.hpp.
|
friend |
Definition at line 284 of file MachineBasicBlock.hpp.
|
private |
Definition at line 276 of file MachineBasicBlock.hpp.
|
staticprivate |
Definition at line 275 of file MachineBasicBlock.hpp.
|
private |
Definition at line 280 of file MachineBasicBlock.hpp.
|
private |
Definition at line 277 of file MachineBasicBlock.hpp.
|
private |
Definition at line 281 of file MachineBasicBlock.hpp.
|
private |
Definition at line 282 of file MachineBasicBlock.hpp.
1.8.5