Otawa  0.10
otawa::ipet Namespace Reference

Classes

class  BasicConstraintsBuilder
 
class  BasicObjectFunctionBuilder
 This processor is used for building the basic object function function to maximize for resolving the IPET system, that is, Then, it set the object function as maximizing the following expression: t1 * n1 + t2 * n2 + ... More...
 
class  CachePenaltiesObjectFunctionBuilder
 This processor is used for building the basic object function function in case of a L1 instruction cache. More...
 
class  ConstraintLoader
 This code processor allows loading IPET constraint from an external file. More...
 
class  FlowFactConstraintBuilder
 This processor allows using extern flow facts in an IPET system. More...
 
class  FlowFactLoader
 This processor allows using extern flow facts in an IPET system. More...
 
class  ILPSystemGetter
 This processor looks for an ILP plugin and build a new system that will be used by other IPET processor. More...
 
class  TrivialBBTime
 This processor is used for computing execution of basic blocks in a trivial way, that is, the multiplication of basic block instruction count by the pipeline depth. More...
 
class  TrivialDataCacheManager
 This processor apply a simple method for managing data cache in IPET method. More...
 
class  TrivialInstCacheManager
 This processor is a trivial manager of instruction cache for IPET approach. More...
 
class  VarAssignment
 This processor ensures that each basic block and each edge of the CFG has a variable associated with a ipet::VAR annotation. More...
 
class  WCETComputation
 This class is used for computing the WCET from the system found in the root CFG. More...
 
class  WCETCountRecorder
 This class may be used to record back in the CFG the execution count of each basic block and of each edge for the WCET path. More...
 

Functions

Identifier< Constraint * > CALLING_CONSTRAINT ("otawa::ipet::CALLING_CONSTRAINT", 0)
 Used to record the constraint of a called CFG. 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...
 
SilentFeature OBJECT_FUNCTION_FEATURE ("otawa::ipet::OBJECT_FUNCTION_FEATURE", maker)
 This feature ensures that the object function of the ILP system to solve has been built. More...
 
p::feature INST_CACHE_SUPPORT_FEATURE ("otawa::ipet::INST_CACHE_SUPPORT_FEATURE", new Maker< TrivialInstCacheManager >)
 This feature ensurers that the instruction cache has been modelled in the IPET approach. More...
 
p::feature DATA_CACHE_SUPPORT_FEATURE ("otawa::ipet::DATA_CACHE_SUPPORT_FEATURE", new Maker< TrivialDataCacheManager >())
 This feature ensures that the first-level data cache has been taken in account in the basic block timing. 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...
 
SilentFeature FLOW_FACTS_CONSTRAINTS_FEATURE ("otawa::ipet::FLOW_FACTS_CONSTRAINTS_FEATURE", maker)
 This feature asserts that constraints tied to the flow fact information has been added to the ILP system. More...
 
SilentFeature FLOW_FACTS_FEATURE ("otawa::ipet::FLOW_FACTS_FEATURE", maker)
 This feature ensures that flow facts information (at less the loop bounds) has been put on the CFG of the current task. More...
 
Identifier< stringILP_PLUGIN_NAME ("otawa::ipet::ILP_PLUGIN_NAME","default")
 Select the name of the plugin to use as the ILP solver. More...
 
Identifier< ilp::System * > SYSTEM ("otawa::ipet::SYSTEM", 0)
 Link the curerently ILP system. More...
 
SilentFeature ILP_SYSTEM_FEATURE ("otawa::ipet::ILP_SYSTEM_FEATURE", maker)
 This feature assert that an ILP is available for IPET computation. More...
 
Identifier< ot::timeTIME ("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< 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::timeWCET ("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...
 
Identifier< bool > EXPLICIT ("otawa::ipet::EXPLICIT", false)
 Identifier of a boolean property requiring that explicit names must be used. More...
 
Identifier< ot::timeTIME_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< 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...
 
ilp::SystemgetSystem (WorkSpace *fw, CFG *cfg)
 Get the system tied with the given CFG. More...
 
Feature< NoProcessorINTERBLOCK_SUPPORT_FEATURE ("otawa::ipet::INTERBLOCK_SUPPORT_FEATURE")
 This feature ensures that effects of the inter-block have been modelized in the current ILP system. More...
 
Identifier< unsigned > PIPELINE_DEPTH ("otawa::ipet::PIPELINE_DEPTH", 5)
 This property is used to configure the TrivialBBTime processor with the depth of the used pipeline. More...
 
SilentFeature BB_TIME_FEATURE ("otawa::ipet::BB_TIME_FEATURE", maker)
 This feature ensures that the execution time of each basic block has been computed. More...
 
Identifier< String * > FORCE_NAME ("otawa::FORCE_NAME", 0)
 Force the ilp variable name of an edge or basic block. More...
 
SilentFeature ASSIGNED_VARS_FEATURE ("otawa::ipet::ASSIGNED_VARS_FEATURE", maker)
 This feature asserts that each block and each edge has a variable name asserted. More...
 
SilentFeature WCET_FEATURE ("otawa::ipet::WCET_FEATURE", maker)
 This feature ensures that the WCET has been computed using IPET approach. 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...
 

Variables

Identifier< bool > EXPLICIT
 Identifier of a boolean property requiring that explicit names must be used. More...
 
Identifier< stringILP_PLUGIN_NAME
 Select the name of the plugin to use as the ILP solver. More...
 
Feature< NoProcessorINTERBLOCK_SUPPORT_FEATURE
 This feature ensures that effects of the inter-block have been modelized in the current ILP system. More...
 
SilentFeature BB_TIME_FEATURE
 This feature ensures that the execution time of each basic block has been computed. More...
 
Identifier< ot::timeTIME
 This identifier is used for storing the time of execution in cycles (int) of the program area it applies to. More...
 
Identifier< ot::timeTIME_DELTA
 This property is used to store time delta on edges. 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...
 
SilentFeature ASSIGNED_VARS_FEATURE
 This feature asserts that each block and each edge has a variable name asserted. 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...
 
SilentFeature WCET_FEATURE
 This feature ensures that the WCET has been computed using IPET approach. More...
 
Identifier< ot::timeWCET
 Identifier of annotation used for storing for storing the WCET value (int) in the CFG of the computed function. More...
 
SilentFeature OBJECT_FUNCTION_FEATURE
 This feature ensures that the object function of the ILP system to solve has been built. More...
 
p::feature CONTROL_CONSTRAINTS_FEATURE
 This feature ensures that control constraints has been added to the current ILP system. More...
 
Identifier
< otawa::ilp::Constraint * > 
CALLING_CONSTRAINT
 Used to record the constraint of a called CFG. More...
 
SilentFeature FLOW_FACTS_CONSTRAINTS_FEATURE
 This feature asserts that constraints tied to the flow fact information has been added to the ILP system. More...
 
SilentFeature 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...
 
SilentFeature ILP_SYSTEM_FEATURE
 This feature assert that an ILP is available for IPET computation. More...
 
Identifier< ilp::System * > SYSTEM
 Link the curerently ILP system. 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...
 
p::feature INST_CACHE_SUPPORT_FEATURE
 This feature ensurers that the instruction cache has been modelled in the IPET approach. More...
 
p::feature CACHE_SUPPORT_FEATURE
 This feature ensures that analysis for the cache configuration has been performed. More...
 
p::feature WCET_COUNT_RECORDED_FEATURE
 This feature asserts that WCET execution count of basic block and of edge have been recorded. More...
 
Identifier< unsigned > PIPELINE_DEPTH
 This property is used to configure the TrivialBBTime processor with the depth of the used pipeline. More...
 
Identifier< String * > FORCE_NAME
 Force the ilp variable name of an edge or basic block. More...
 

Function Documentation

SilentFeature otawa::ipet::ASSIGNED_VARS_FEATURE ( "otawa::ipet::ASSIGNED_VARS_FEATURE"  ,
maker   
)

This feature asserts that each block and each edge has a variable name asserted.

Properties

Referenced by otawa::ipet::VarAssignment::cleanup().

SilentFeature otawa::ipet::BB_TIME_FEATURE ( "otawa::ipet::BB_TIME_FEATURE"  ,
maker   
)

This feature ensures that the execution time of each basic block has been computed.

Properties
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"  ,
 
)
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.

Properties
p::feature otawa::ipet::DATA_CACHE_SUPPORT_FEATURE ( "otawa::ipet::DATA_CACHE_SUPPORT_FEATURE"  ,
new Maker< TrivialDataCacheManager >  () 
)

This feature ensures that the first-level data cache has been taken in account in the basic block timing.

SilentFeature otawa::ipet::FLOW_FACTS_CONSTRAINTS_FEATURE ( "otawa::ipet::FLOW_FACTS_CONSTRAINTS_FEATURE"  ,
maker   
)

This feature asserts that constraints tied to the flow fact information has been added to the ILP system.

SilentFeature otawa::ipet::FLOW_FACTS_FEATURE ( "otawa::ipet::FLOW_FACTS_FEATURE"  ,
maker   
)

This feature ensures that flow facts information (at less the loop bounds) has been put on the CFG of the current task.

Properties
  • ipet::MAX_ITERATION
  • ipet::MIN_ITERATION
  • ipet::TOTAL_ITERATION
Identifier<String* > otawa::ipet::FORCE_NAME ( "otawa::FORCE_NAME"  ,
 
)

Force the ilp variable name of an edge or basic block.

Referenced by otawa::ipet::VarAssignment::processBB().

ilp::System* otawa::ipet::getSystem ( WorkSpace *  fw,
CFG *  cfg 
)

Get the system tied with the given CFG.

If none exists, create ones.

Parameters
fwCurrent workspace.
cfgCurrent CFG. CFG ILP system.

References SYSTEM.

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.

Processor Configuration
SilentFeature otawa::ipet::ILP_SYSTEM_FEATURE ( "otawa::ipet::ILP_SYSTEM_FEATURE"  ,
maker   
)

This feature assert that an ILP is available for IPET computation.

Properties
Default Processor
ILPSystemGetter
p::feature otawa::ipet::INST_CACHE_SUPPORT_FEATURE ( "otawa::ipet::INST_CACHE_SUPPORT_FEATURE"  ,
new Maker< TrivialInstCacheManager >   
)

This feature ensurers that the instruction cache has been modelled in the IPET approach.

SilentFeature otawa::ipet::OBJECT_FUNCTION_FEATURE ( "otawa::ipet::OBJECT_FUNCTION_FEATURE"  ,
maker   
)

This feature ensures that the object function of the ILP system to solve has been built.

Identifier<unsigned> otawa::ipet::PIPELINE_DEPTH ( "otawa::ipet::PIPELINE_DEPTH"  ,
 
)

This property is used to configure the TrivialBBTime processor with the depth of the used pipeline.

Hooks
Identifier<ilp::System *> otawa::ipet::SYSTEM ( "otawa::ipet::SYSTEM"  ,
 
)

Link the curerently ILP system.

Hooks
Features
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.

Properties
SilentFeature otawa::ipet::WCET_FEATURE ( "otawa::ipet::WCET_FEATURE"  ,
maker   
)

This feature ensures that the WCET has been computed using IPET approach.

Properties

Variable Documentation

SilentFeature otawa::ipet::ASSIGNED_VARS_FEATURE("otawa::ipet::ASSIGNED_VARS_FEATURE", maker)
SilentFeature otawa::ipet::BB_TIME_FEATURE("otawa::ipet::BB_TIME_FEATURE", maker)

This feature ensures that the execution time of each basic block has been computed.

Properties

Referenced by otawa::ExeGraphBBTime< G >::ExeGraphBBTime(), otawa::ExeGraphBBTime< ParamExeGraph >::ExeGraphBBTime(), and otawa::ipet::TrivialDataCacheManager::TrivialDataCacheManager().

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.

Properties

Referenced by otawa::ipet::BasicConstraintsBuilder::BasicConstraintsBuilder().

p::feature otawa::ipet::DATA_CACHE_SUPPORT_FEATURE("otawa::ipet::DATA_CACHE_SUPPORT_FEATURE", new Maker< TrivialDataCacheManager >())

This feature ensures that the first-level data cache has been taken in account in the basic block timing.

Referenced by otawa::ipet::TrivialDataCacheManager::TrivialDataCacheManager().

SilentFeature otawa::ipet::FLOW_FACTS_CONSTRAINTS_FEATURE("otawa::ipet::FLOW_FACTS_CONSTRAINTS_FEATURE", maker)

This feature asserts that constraints tied to the flow fact information has been added to the ILP system.

Referenced by otawa::ipet::FlowFactConstraintBuilder::FlowFactConstraintBuilder().

SilentFeature otawa::ipet::FLOW_FACTS_FEATURE("otawa::ipet::FLOW_FACTS_FEATURE", maker)

This feature ensures that flow facts information (at less the loop bounds) has been put on the CFG of the current task.

Properties
  • ipet::MAX_ITERATION
  • ipet::MIN_ITERATION
  • ipet::TOTAL_ITERATION

Referenced by otawa::ipet::FlowFactConstraintBuilder::FlowFactConstraintBuilder().

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.

Processor Configuration

Referenced by otawa::ipet::ILPSystemGetter::configure().

SilentFeature otawa::ipet::ILP_SYSTEM_FEATURE("otawa::ipet::ILP_SYSTEM_FEATURE", maker)
p::feature otawa::ipet::INST_CACHE_SUPPORT_FEATURE("otawa::ipet::INST_CACHE_SUPPORT_FEATURE", new Maker< TrivialInstCacheManager >)

This feature ensurers that the instruction cache has been modelled in the IPET approach.

Referenced by otawa::CAT2OnlyConstraintBuilder::collectStats(), and otawa::EdgeCAT2ConstraintBuilder::EdgeCAT2ConstraintBuilder().

SilentFeature otawa::ipet::OBJECT_FUNCTION_FEATURE("otawa::ipet::OBJECT_FUNCTION_FEATURE", maker)

This feature ensures that the object function of the ILP system to solve has been built.

Identifier<unsigned> otawa::ipet::PIPELINE_DEPTH("otawa::ipet::PIPELINE_DEPTH", 5)

This property is used to configure the TrivialBBTime processor with the depth of the used pipeline.

Hooks

Referenced by otawa::ipet::TrivialBBTime::configure().

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.

Properties
SilentFeature otawa::ipet::WCET_FEATURE("otawa::ipet::WCET_FEATURE", maker)

This feature ensures that the WCET has been computed using IPET approach.

Properties

Referenced by otawa::ipet::WCETComputation::collectStats().