![]() |
OTAWA
2.0
Framework to perform machine analysis and compute WCET.
|
Classes | |
class | BasicConstraintsBuilder |
class | BasicObjectFunctionBuilder |
class | CachePenaltiesObjectFunctionBuilder |
class | ConflictType |
class | ConstraintLoader |
class | EdgeAnnotation |
class | EdgeInfoConflict |
class | EdgeInfoOfBB |
class | FlowFactConflictConstraintBuilder |
class | FlowFactConstraintBuilder |
class | FlowFactLoader |
class | ILPSystemGetter |
class | ListOfEdgeInfoOfBB |
class | TimeStat |
class | VarAssignment |
class | WCETComputation |
class | WCETCountRecorder |
Typedefs | |
typedef Pair< Block *, int > | bbInfo |
typedef Vector< Block * > | BBList |
typedef Pair< EdgeInfoConflict, LoopInfo > | EdgeInfoIntoLoop |
typedef Vector< EdgeInfoIntoLoop > | EdgeInfoIntoLoopList |
typedef Pair< Block *, LockPtr< ListOfEndConflict > > | endInfo |
typedef Pair< int, LoopOfConflict::conflictLoopQualifier > | LoopInfo |
Functions | |
p::feature | ASSIGNED_VARS_FEATURE ("otawa::ipet::ASSIGNED_VARS_FEATURE", p::make< VarAssignment >()) |
This feature asserts that each block and each edge has a variable name asserted. More... | |
p::feature | BB_TIME_FEATURE ("otawa::ipet::BB_TIME_FEATURE", new DelayedMaker("otawa::trivial::BlockTime")) |
This feature ensures that the execution time of each basic block has been computed. More... | |
p::feature | CACHE_SUPPORT_FEATURE ("otawa::ipet::CACHE_SUPPORT_FEATURE", new Maker< CacheSupport >()) |
This feature ensures that analysis for the cache configuration has been performed. More... | |
Identifier< Constraint * > | CALLING_CONSTRAINT ("otawa::ipet::CALLING_CONSTRAINT", 0) |
Used to record the constraint of a called CFG. More... | |
void | consCurrentContextualPath (const Pair< ContextualPath, ContextualPath > ¤t, const ContextualPath &path, ContextualPath ¤tIncomplet) |
One edge may be present on many conflict and be anotated for several contextual path (partial. More... | |
p::feature | CONTROL_CONSTRAINTS_FEATURE ("otawa::ipet::CONTROL_CONSTRAINTS_FEATURE", new Maker< BasicConstraintsBuilder >()) |
This feature ensures that control constraints has been added to the current ILP system. More... | |
Identifier< int > | COUNT ("otawa::ipet::COUNT", -1, idLabel("execution count"), idDesc("execution count in WCET"), 0) |
This property is put on basic blocks and edge to record the execution count of these object on the WCET path. More... | |
p::feature | DATA_CACHE_SUPPORT_FEATURE ("otawa::ipet::DATA_CACHE_SUPPORT_FEATURE", new DelayedMaker("otawa::trivial::NoDCacheTime")) |
This feature ensures that the first-level data cache has been taken in account in the basic block timing. More... | |
bool | evalSequence (EdgeInfoConflict &seq, EdgeInfoIntoLoopList &subLoopConflict, EdgeInfoConflict &conflictListEvalTohead) |
Pascal Raymond algo implementation for eval seq, L(body1, b1,c1) , L(body2, b2,c2) …, L(bodyl, bl,cl) More... | |
Identifier< bool > | EXPLICIT ("otawa::ipet::EXPLICIT", false) |
Identifier of a boolean property requiring that explicit names must be used. More... | |
p::feature | FLOW_FACTS_CONFLICT_CONSTRAINTS_FEATURE ("otawa::ipet::FLOW_FACTS_CONFLICT_CONSTRAINTS_FEATURE", p::make< FlowFactConflictConstraintBuilder >()) |
This feature asserts that constraints tied to the flow fact information has been added to the ILP system. More... | |
p::feature | FLOW_FACTS_CONSTRAINTS_FEATURE ("otawa::ipet::FLOW_FACTS_CONSTRAINTS_FEATURE", p::make< FlowFactConstraintBuilder >()) |
This feature asserts that constraints tied to the flow fact information has been added to the ILP system. More... | |
p::feature | FLOW_FACTS_FEATURE ("otawa::ipet::FLOW_FACTS_FEATURE", new Maker< FlowFactLoader >()) |
This feature ensures that flow facts information (at less the loop bounds) has been put on the CFG of the current task. More... | |
Identifier< String * > | FORCE_NAME ("otawa::FORCE_NAME", 0) |
Force the ilp variable name of an edge or basic block. More... | |
Vector< Pair< ContextualPath, ContextualPath > > | getListOfCompatiblePath (const ContextualPath &path, Vector< Pair< ContextualPath, ContextualPath > > &ListOfPathOfBenginingOfConstraint) |
One edge may be present on many conflict and be anotated for several contextual path (partial. More... | |
Block * | getLoopInnerHeader (Block *source) |
get the loop header of a block if it exist or NULL More... | |
Block * | getSynthCalleCaller (Block *initnext) |
ilp::System * | getSystem (WorkSpace *fw, CFG *cfg) |
Get the system tied with the given CFG. More... | |
Identifier< string > | ILP_PLUGIN_NAME ("otawa::ipet::ILP_PLUGIN_NAME", "default") |
Select the name of the plugin to use as the ILP solver. More... | |
p::feature | ILP_SYSTEM_FEATURE ("otawa::ipet::ILP_SYSTEM_FEATURE", new Maker< ILPSystemGetter >()) |
This feature assert that an ILP is available for IPET computation. More... | |
p::feature | INST_CACHE_SUPPORT_FEATURE ("otawa::ipet::INST_CACHE_SUPPORT_FEATURE", new DelayedMaker("otawa::trivial::AllMissICacheTime")) |
This feature ensurers that the instruction cache has been modeled in the IPET approach. More... | |
p::feature | INTERBLOCK_SUPPORT_FEATURE ("otawa::ipet::INTERBLOCK_SUPPORT_FEATURE", new Maker< NoProcessor >()) |
This feature ensures that effects of the inter-block have been modelized in the current ILP system. More... | |
bool | isSynthCalleCaller (Block *initnext) |
p::id< bool > | MAXIMIZE ("otawa::ipet::MAXIMIZE", true) |
This property is used to configure ILP_SYSTEM_FEATURE. More... | |
p::feature | OBJECT_FUNCTION_FEATURE ("otawa::ipet::OBJECT_FUNCTION_FEATURE", new Maker< BasicObjectFunctionBuilder >()) |
This feature ensures that the object function of the ILP system to solve has been built. More... | |
Identifier< ilp::System * > | SYSTEM ("otawa::ipet::SYSTEM", 0) |
Link the curerently ILP system. More... | |
Identifier< ot::time > | TIME ("otawa::ipet::TIME", -1, idLabel("time"), idDesc("execution time (in cycles)"), 0) |
This identifier is used for storing the time of execution in cycles (int) of the program area it applies to. More... | |
Identifier< ot::time > | TIME_DELTA ("otawa::ipet::TIME_DELTA", 0, idLabel("time delta"), idDesc("time fix for an edge traversal (in cycles)"), 0) |
This property is used to store time delta on edges. More... | |
Identifier< ilp::Var * > | VAR ("otawa::ipet::VAR", 0, idLabel("variable"), idDesc("variable in ILP system for IPET resolution"), 0) |
This identifier is used for storing in basic blocks and edges the variables (otawa::ilp::Var *) used in ILP resolution. More... | |
Identifier< ot::time > | WCET ("otawa::ipet::WCET", -1, idLabel("WCET"), idDesc("WCET (in cycles)"), 0) |
Identifier of annotation used for storing for storing the WCET value (int) in the CFG of the computed function. More... | |
p::feature | WCET_COUNT_RECORDED_FEATURE ("otawa::ipet::WCET_COUNT_RECORDED_FEATURE", new Maker< WCETCountRecorder >()) |
This feature asserts that WCET execution count of basic block and of edge have been recorded. More... | |
p::feature | WCET_FEATURE ("otawa::ipet::WCET_FEATURE", new Maker< WCETComputation >()) |
This feature ensures that the WCET has been computed using IPET approach. More... | |
Variables | |
p::feature | ASSIGNED_VARS_FEATURE |
This feature asserts that each block and each edge has a variable name asserted. More... | |
p::feature | BB_TIME_FEATURE |
This feature ensures that the execution time of each basic block has been computed. More... | |
p::feature | CACHE_SUPPORT_FEATURE |
This feature ensures that analysis for the cache configuration has been performed. More... | |
Identifier< otawa::ilp::Constraint * > | CALLING_CONSTRAINT |
Used to record the constraint of a called CFG. More... | |
p::feature | CONTROL_CONSTRAINTS_FEATURE |
This feature ensures that control constraints has been added to the current ILP system. More... | |
Identifier< int > | COUNT |
This property is put on basic blocks and edge to record the execution count of these object on the WCET path. More... | |
p::feature | DATA_CACHE_SUPPORT_FEATURE |
This feature ensures that the first-level data cache has been taken in account in the basic block timing. More... | |
Identifier< bool > | EXPLICIT |
Identifier of a boolean property requiring that explicit names must be used. More... | |
p::feature | FLOW_FACTS_CONFLICT_CONSTRAINTS_FEATURE |
This feature asserts that constraints tied to the flow fact information has been added to the ILP system. More... | |
p::feature | FLOW_FACTS_CONSTRAINTS_FEATURE |
This feature asserts that constraints tied to the flow fact information has been added to the ILP system. More... | |
p::feature | FLOW_FACTS_FEATURE |
This feature ensures that flow facts information (at less the loop bounds) has been put on the CFG of the current task. More... | |
Identifier< String * > | FORCE_NAME |
Force the ilp variable name of an edge or basic block. More... | |
Identifier< string > | ILP_PLUGIN_NAME |
Select the name of the plugin to use as the ILP solver. More... | |
p::feature | ILP_SYSTEM_FEATURE |
This feature assert that an ILP is available for IPET computation. More... | |
p::feature | INST_CACHE_SUPPORT_FEATURE |
This feature ensurers that the instruction cache has been modeled in the IPET approach. More... | |
p::feature | INTERBLOCK_SUPPORT_FEATURE |
This feature ensures that effects of the inter-block have been modelized in the current ILP system. More... | |
p::id< bool > | MAXIMIZE |
This property is used to configure ILP_SYSTEM_FEATURE. More... | |
p::feature | OBJECT_FUNCTION_FEATURE |
This feature ensures that the object function of the ILP system to solve has been built. More... | |
Identifier< ilp::System * > | SYSTEM |
Link the curerently ILP system. More... | |
Identifier< ot::time > | TIME |
This identifier is used for storing the time of execution in cycles (int) of the program area it applies to. More... | |
Identifier< ot::time > | TIME_DELTA |
This property is used to store time delta on edges. More... | |
Identifier< ilp::Var * > | VAR |
This identifier is used for storing in basic blocks and edges the variables (otawa::ilp::Var *) used in ILP resolution. More... | |
Identifier< ot::time > | WCET |
Identifier of annotation used for storing for storing the WCET value (int) in the CFG of the computed function. More... | |
p::feature | WCET_COUNT_RECORDED_FEATURE |
This feature asserts that WCET execution count of basic block and of edge have been recorded. More... | |
p::feature | WCET_FEATURE |
This feature ensures that the WCET has been computed using IPET approach. More... | |
typedef Pair<Block *, int> otawa::ipet::bbInfo |
typedef Vector<Block *> otawa::ipet::BBList |
typedef Pair<Block *, LockPtr<ListOfEndConflict> > otawa::ipet::endInfo |
typedef Pair<int, LoopOfConflict::conflictLoopQualifier> otawa::ipet::LoopInfo |
p::feature otawa::ipet::ASSIGNED_VARS_FEATURE | ( | "otawa::ipet::ASSIGNED_VARS_FEATURE" | , |
p::make< VarAssignment > | () | ||
) |
This feature asserts that each block and each edge has a variable name asserted.
Referenced by otawa::ipet::VarAssignment::cleanup().
p::feature otawa::ipet::BB_TIME_FEATURE | ( | "otawa::ipet::BB_TIME_FEATURE" | , |
new | DelayedMaker"otawa::trivial::BlockTime" | ||
) |
This feature ensures that the execution time of each basic block has been computed.
p::feature otawa::ipet::CACHE_SUPPORT_FEATURE | ( | "otawa::ipet::CACHE_SUPPORT_FEATURE" | , |
new Maker< CacheSupport > | () | ||
) |
This feature ensures that analysis for the cache configuration has been performed.
Identifier<Constraint *> otawa::ipet::CALLING_CONSTRAINT | ( | "otawa::ipet::CALLING_CONSTRAINT" | , |
0 | |||
) |
Used to record the constraint of a called CFG.
void otawa::ipet::consCurrentContextualPath | ( | const Pair< ContextualPath, ContextualPath > & | current, |
const ContextualPath & | path, | ||
ContextualPath & | currentIncomplet | ||
) |
One edge may be present on many conflict and be anotated for several contextual path (partial.
current | one of compatible path |
path | currnt complet path |
currentIncomplet | created partial path from the precedents one |
p::feature otawa::ipet::CONTROL_CONSTRAINTS_FEATURE | ( | "otawa::ipet::CONTROL_CONSTRAINTS_FEATURE" | , |
new Maker< BasicConstraintsBuilder > | () | ||
) |
This feature ensures that control constraints has been added to the current ILP system.
p::feature otawa::ipet::DATA_CACHE_SUPPORT_FEATURE | ( | "otawa::ipet::DATA_CACHE_SUPPORT_FEATURE" | , |
new | DelayedMaker"otawa::trivial::NoDCacheTime" | ||
) |
This feature ensures that the first-level data cache has been taken in account in the basic block timing.
Default Analysis:
bool otawa::ipet::evalSequence | ( | EdgeInfoConflict & | seq, |
EdgeInfoIntoLoopList & | subLoopConflict, | ||
EdgeInfoConflict & | conflictListEvalTohead | ||
) |
Pascal Raymond algo implementation for eval seq, L(body1, b1,c1) , L(body2, b2,c2) …, L(bodyl, bl,cl)
seq,the | |
subLoopConflict | |
conflictListEvalTohead | partial result of eval |
References otawa::ipet::EdgeInfoConflict::addAnnotation(), otawa::LoopOfConflict::ALL_IT, elm::Pair< class, class >::fst, elm::Vector< class, class, class >::get(), otawa::ipet::EdgeAnnotation::getMe(), otawa::ipet::EdgeAnnotation::getPe(), elm::Vector< class, class, class >::isEmpty(), otawa::ipet::EdgeInfoConflict::isMemEdge(), elm::Vector< class, class, class >::length(), otawa::ipet::EdgeInfoConflict::nbEdges(), elm::Vector< class, class, class >::pop(), otawa::ipet::EdgeInfoConflict::popEdge(), otawa::ipet::EdgeAnnotation::setMe(), otawa::ipet::EdgeAnnotation::setPe(), otawa::ipet::EdgeInfoConflict::setS(), and elm::Pair< class, class >::snd.
p::feature otawa::ipet::FLOW_FACTS_CONFLICT_CONSTRAINTS_FEATURE | ( | "otawa::ipet::FLOW_FACTS_CONFLICT_CONSTRAINTS_FEATURE" | , |
p::make< FlowFactConflictConstraintBuilder > | () | ||
) |
This feature asserts that constraints tied to the flow fact information has been added to the ILP system.
p::feature otawa::ipet::FLOW_FACTS_CONSTRAINTS_FEATURE | ( | "otawa::ipet::FLOW_FACTS_CONSTRAINTS_FEATURE" | , |
p::make< FlowFactConstraintBuilder > | () | ||
) |
This feature asserts that constraints tied to the flow fact information has been added to the ILP system.
p::feature otawa::ipet::FLOW_FACTS_FEATURE | ( | "otawa::ipet::FLOW_FACTS_FEATURE" | , |
new Maker< FlowFactLoader > | () | ||
) |
This feature ensures that flow facts information (at less the loop bounds) has been put on the CFG of the current task.
Identifier<String* > otawa::ipet::FORCE_NAME | ( | "otawa::FORCE_NAME" | , |
0 | |||
) |
Force the ilp variable name of an edge or basic block.
Vector< Pair<ContextualPath,ContextualPath > > otawa::ipet::getListOfCompatiblePath | ( | const ContextualPath & | path, |
Vector< Pair< ContextualPath, ContextualPath > > & | ListOfPathOfBenginingOfConstraint | ||
) |
One edge may be present on many conflict and be anotated for several contextual path (partial.
path | current path |
ListOfPathOfBenginingOfConstraint |
get the loop header of a block if it exist or NULL
source | first bb. |
initnext | a bb. |
ilp::System* otawa::ipet::getSystem | ( | WorkSpace * | fw, |
CFG * | cfg | ||
) |
Identifier<string> otawa::ipet::ILP_PLUGIN_NAME | ( | "otawa::ipet::ILP_PLUGIN_NAME" | , |
"default" | |||
) |
Select the name of the plugin to use as the ILP solver.
p::feature otawa::ipet::INST_CACHE_SUPPORT_FEATURE | ( | "otawa::ipet::INST_CACHE_SUPPORT_FEATURE" | , |
new | DelayedMaker"otawa::trivial::AllMissICacheTime" | ||
) |
This feature ensurers that the instruction cache has been modeled in the IPET approach.
Default Analysis:
initnext | a bb.yyyyyyyy |
p::feature otawa::ipet::OBJECT_FUNCTION_FEATURE | ( | "otawa::ipet::OBJECT_FUNCTION_FEATURE" | , |
new Maker< BasicObjectFunctionBuilder > | () | ||
) |
This feature ensures that the object function of the ILP system to solve has been built.
p::feature otawa::ipet::WCET_COUNT_RECORDED_FEATURE | ( | "otawa::ipet::WCET_COUNT_RECORDED_FEATURE" | , |
new Maker< WCETCountRecorder > | () | ||
) |
This feature asserts that WCET execution count of basic block and of edge have been recorded.
p::feature otawa::ipet::WCET_FEATURE | ( | "otawa::ipet::WCET_FEATURE" | , |
new Maker< WCETComputation > | () | ||
) |
This feature ensures that the WCET has been computed using IPET approach.
p::feature otawa::ipet::ASSIGNED_VARS_FEATURE("otawa::ipet::ASSIGNED_VARS_FEATURE", p::make< VarAssignment >()) |
This feature asserts that each block and each edge has a variable name asserted.
Referenced by otawa::ipet::BasicConstraintsBuilder::BasicConstraintsBuilder(), otawa::EdgeCAT2ConstraintBuilder::EdgeCAT2ConstraintBuilder(), and otawa::LinkedBlocksDetector::LinkedBlocksDetector().
p::feature otawa::ipet::BB_TIME_FEATURE("otawa::ipet::BB_TIME_FEATURE", new DelayedMaker("otawa::trivial::BlockTime")) |
This feature ensures that the execution time of each basic block has been computed.
p::feature otawa::ipet::CACHE_SUPPORT_FEATURE("otawa::ipet::CACHE_SUPPORT_FEATURE", new Maker< CacheSupport >()) |
This feature ensures that analysis for the cache configuration has been performed.
Identifier<Constraint *> otawa::ipet::CALLING_CONSTRAINT("otawa::ipet::CALLING_CONSTRAINT", 0) |
Used to record the constraint of a called CFG.
p::feature otawa::ipet::CONTROL_CONSTRAINTS_FEATURE("otawa::ipet::CONTROL_CONSTRAINTS_FEATURE", new Maker< BasicConstraintsBuilder >()) |
This feature ensures that control constraints has been added to the current ILP system.
Referenced by otawa::ipet::BasicConstraintsBuilder::BasicConstraintsBuilder().
p::feature otawa::ipet::DATA_CACHE_SUPPORT_FEATURE("otawa::ipet::DATA_CACHE_SUPPORT_FEATURE", new DelayedMaker("otawa::trivial::NoDCacheTime")) |
This feature ensures that the first-level data cache has been taken in account in the basic block timing.
Default Analysis:
p::feature otawa::ipet::FLOW_FACTS_CONFLICT_CONSTRAINTS_FEATURE("otawa::ipet::FLOW_FACTS_CONFLICT_CONSTRAINTS_FEATURE", p::make< FlowFactConflictConstraintBuilder >()) |
This feature asserts that constraints tied to the flow fact information has been added to the ILP system.
p::feature otawa::ipet::FLOW_FACTS_CONSTRAINTS_FEATURE("otawa::ipet::FLOW_FACTS_CONSTRAINTS_FEATURE", p::make< FlowFactConstraintBuilder >()) |
This feature asserts that constraints tied to the flow fact information has been added to the ILP system.
p::feature otawa::ipet::FLOW_FACTS_FEATURE("otawa::ipet::FLOW_FACTS_FEATURE", new Maker< FlowFactLoader >()) |
This feature ensures that flow facts information (at less the loop bounds) has been put on the CFG of the current task.
Identifier<String* > otawa::ipet::FORCE_NAME("otawa::FORCE_NAME", 0) |
Force the ilp variable name of an edge or basic block.
Identifier<string> otawa::ipet::ILP_PLUGIN_NAME("otawa::ipet::ILP_PLUGIN_NAME", "default") |
Select the name of the plugin to use as the ILP solver.
Referenced by otawa::ipet::ILPSystemGetter::configure().
p::feature otawa::ipet::INST_CACHE_SUPPORT_FEATURE("otawa::ipet::INST_CACHE_SUPPORT_FEATURE", new DelayedMaker("otawa::trivial::AllMissICacheTime")) |
This feature ensurers that the instruction cache has been modeled in the IPET approach.
Default Analysis:
Referenced by otawa::CAT2OnlyConstraintBuilder::collectStats(), and otawa::EdgeCAT2ConstraintBuilder::EdgeCAT2ConstraintBuilder().
p::feature otawa::ipet::OBJECT_FUNCTION_FEATURE("otawa::ipet::OBJECT_FUNCTION_FEATURE", new Maker< BasicObjectFunctionBuilder >()) |
This feature ensures that the object function of the ILP system to solve has been built.
p::feature otawa::ipet::WCET_COUNT_RECORDED_FEATURE("otawa::ipet::WCET_COUNT_RECORDED_FEATURE", new Maker< WCETCountRecorder >()) |
This feature asserts that WCET execution count of basic block and of edge have been recorded.
p::feature otawa::ipet::WCET_FEATURE("otawa::ipet::WCET_FEATURE", new Maker< WCETComputation >()) |
This feature ensures that the WCET has been computed using IPET approach.