Otawa  0.10
otawa::BasicBlock::Bundle Class Reference

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

Instfi
 
Instli
 

Friends

class BundleIter
 Null constructor. More...
 

Detailed Description

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.

See also
VLIW Support

Member Function Documentation

Address otawa::BasicBlock::Bundle::address ( void  ) const
inline

Get the base address of the bundle.

Returns
Bundle base address.

References otawa::ProgItem::address(), and fi.

Referenced by size().

void otawa::BasicBlock::Bundle::end ( void  )
inlineprivate

Mark the bundle as empty.

References fi, and li.

Referenced by otawa::BasicBlock::BundleIter::next().

InstIter otawa::BasicBlock::Bundle::insts ( void  ) const
inline

Get an iterator on instructions composing the bundle.

Returns
Bundle instruction iterator.

References fi, li, and otawa::ProgItem::topAddress().

Referenced by semInsts().

void otawa::BasicBlock::Bundle::move ( Inst inst,
Address  top 
)
inlineprivate

Move the bundle to a next bundle in program image.

Parameters
instFirst instruction of new bundle.
topTop 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)

Get the set of registers read by the bundle.

Parameters
setRegister set filled with read registers.
See also
RegSet, RegIter.
void otawa::BasicBlock::Bundle::semInsts ( sem::Block block)

Get the semantic instruction to perform semantic analysis on the bundle.

Parameters
blockSemantic instruction block to fill in.

References insts().

t::uint32 otawa::BasicBlock::Bundle::size ( void  ) const
inline

Get the size of the bundle.

Returns
Bundle size (in bytes).

References address(), and topAddress().

Address otawa::BasicBlock::Bundle::topAddress ( void  ) const
inline

Get the top address of the bundle.

Returns
Bundle top address.

References li, and otawa::ProgItem::topAddress().

Referenced by size().

void otawa::BasicBlock::Bundle::writeRegSet ( RegSet set)

Get the set of registers written by the bundle.

Parameters
setRegister set filled with written registers.
See also
RegSet, RegIter.

Friends And Related Function Documentation

otawa::BasicBlock::Bundle::BundleIter
friend

Null constructor.

Build an iterator to traverse bundles of a basic block.

Parameters
bbBasic block to look bundles in.

Member Data Documentation

Inst* otawa::BasicBlock::Bundle::fi
private

Referenced by address(), end(), insts(), and move().


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