Otawa
0.10
|
This class allows to exploit the result of a CLP analysis. More...
#include <otawa/data/clp/features.h>
Public Types | |
typedef t::uint32 | step_t |
Public Member Functions | |
Manager (WorkSpace *ws) | |
Create a manager for the current workspace. More... | |
step_t | start (BasicBlock *bb) |
Start the interpretation of a basic block. More... | |
step_t | next (void) |
Go to the next step in the interpretation of the basic block. More... | |
sem::inst | sem (void) |
Get the last interpreted semantic instruction. More... | |
Inst * | inst (void) |
Get the current interpreted machine instruction. More... | |
State * | state (void) |
Get the state result of the last interpretation. More... | |
int | ipc (void) |
Get the current semantic instruction PC. More... | |
Static Public Member Functions | |
static bool | newSem (step_t s) |
Test if the given step result contains the flag Manager::NEW_SEM. More... | |
static bool | newPath (step_t s) |
Test if the given step result contains the flag Manager::NEW_PATH. More... | |
static bool | newInst (step_t s) |
Test if the given step result contains the flag Manager::NEW_INST. More... | |
static bool | isEnded (step_t s) |
Static Public Attributes | |
static const step_t | NEW_SEM = 0x01 |
static const step_t | NEW_PATH = 0x02 |
static const step_t | NEW_INST = 0x04 |
static const step_t | ENDED = 0 |
Private Attributes | |
ClpProblem * | p |
BasicBlock::InstIter | mi |
clp::State | s |
clp::State * | cs |
int | i |
bool | new_path |
This class allows to exploit the result of a CLP analysis.
Basically, it provide facility to traverse a basic block, semantic instruction by semantic instruction and to lookup the state.
typedef t::uint32 otawa::clp::Manager::step_t |
otawa::clp::Manager::Manager | ( | WorkSpace * | ws | ) |
Create a manager for the current workspace.
ws | Workspace to work with. |
References p, and otawa::WorkSpace::process().
Inst * otawa::clp::Manager::inst | ( | void | ) |
Get the current interpreted machine instruction.
References mi.
Referenced by otawa::dcache::CLPBlockBuilder::processBB().
|
inline |
Get the current semantic instruction PC.
References i.
Referenced by otawa::dcache::CLPBlockBuilder::processBB().
|
inlinestatic |
Test if the given step result contains the flag Manager::NEW_INST.
References NEW_INST.
Referenced by otawa::dcache::CLPBlockBuilder::processBB().
|
inlinestatic |
Test if the given step result contains the flag Manager::NEW_PATH.
References NEW_PATH.
|
inlinestatic |
Test if the given step result contains the flag Manager::NEW_SEM.
References NEW_SEM.
Manager::step_t otawa::clp::Manager::next | ( | void | ) |
Go to the next step in the interpretation of the basic block.
This may causes:
References cs, mi, NEW_INST, NEW_PATH, NEW_SEM, p, and s.
Referenced by otawa::dcache::CLPBlockBuilder::processBB().
sem::inst otawa::clp::Manager::sem | ( | void | ) |
Get the last interpreted semantic instruction.
References p.
Referenced by otawa::dcache::CLPBlockBuilder::processBB().
Manager::step_t otawa::clp::Manager::start | ( | BasicBlock * | bb | ) |
Start the interpretation of a basic block.
bb | Basic block to interpret. |
References cs, mi, NEW_INST, NEW_PATH, NEW_SEM, p, s, and otawa::clp::STATE_IN.
Referenced by otawa::dcache::CLPBlockBuilder::processBB().
State * otawa::clp::Manager::state | ( | void | ) |
Get the state result of the last interpretation.
References cs.
Referenced by otawa::dcache::CLPBlockBuilder::processBB().
|
private |
|
static |
|
private |
Referenced by ipc().
|
private |
|
static |
|
static |
|
private |
|
static |
|
private |