Otawa
0.10
|
A bundle, in a VLIW processors, is a group of instructions executed in parallel. More...
#include <otawa/cfg/BasicBlock.h>
Public Member Functions | |
Address | address (void) const |
Get the base address of the bundle. More... | |
Address | topAddress (void) const |
Get the top address of the bundle. More... | |
t::uint32 | size (void) const |
Get the size of the bundle. More... | |
InstIter | insts (void) const |
Get an iterator on instructions composing the bundle. More... | |
void | semInsts (sem::Block &block) |
Get the semantic instruction to perform semantic analysis on the bundle. More... | |
void | readRegSet (RegSet &set) |
Get the set of registers read by the bundle. More... | |
void | writeRegSet (RegSet &set) |
Get the set of registers written by the bundle. More... | |
Private Member Functions | |
Bundle (void) | |
Simple bundle constructor. More... | |
void | move (Inst *inst, Address top) |
Move the bundle to a next bundle in program image. More... | |
void | end (void) |
Mark the bundle as empty. More... | |
Private Attributes | |
Inst * | fi |
Inst * | li |
Friends | |
class | BundleIter |
Null constructor. More... | |
A bundle, in a VLIW processors, is a group of instructions executed in parallel.
When used with a non-VLIW instruction set, a bundle is equivalent to an instruction.
|
inline |
Get the base address of the bundle.
References otawa::ProgItem::address(), and fi.
Referenced by size().
|
inlineprivate |
Mark the bundle as empty.
Referenced by otawa::BasicBlock::BundleIter::next().
|
inline |
Get an iterator on instructions composing the bundle.
References fi, li, and otawa::ProgItem::topAddress().
Referenced by semInsts().
Move the bundle to a next bundle in program image.
inst | First instruction of new bundle. |
top | Top address of the block containing the bundle. |
References fi, otawa::Inst::isBundleEnd(), li, otawa::Inst::nextInst(), and otawa::ProgItem::topAddress().
Referenced by otawa::BasicBlock::BundleIter::BundleIter(), and otawa::BasicBlock::BundleIter::next().
void otawa::BasicBlock::Bundle::readRegSet | ( | RegSet & | set | ) |
void otawa::BasicBlock::Bundle::semInsts | ( | sem::Block & | block | ) |
Get the semantic instruction to perform semantic analysis on the bundle.
block | Semantic instruction block to fill in. |
References insts().
|
inline |
|
inline |
Get the top address of the bundle.
References li, and otawa::ProgItem::topAddress().
Referenced by size().
void otawa::BasicBlock::Bundle::writeRegSet | ( | RegSet & | set | ) |
|
friend |
Null constructor.
Build an iterator to traverse bundles of a basic block.
bb | Basic block to look bundles in. |
|
private |
Referenced by end(), otawa::BasicBlock::BundleIter::ended(), insts(), move(), otawa::BasicBlock::BundleIter::next(), and topAddress().