Otawa  0.10
IPET Method

OTAWA provides many code processors supporting IPET approach: More...

Functions

Identifier< ot::time > otawa::ipet::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< ilp::Var * > otawa::ipet::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 > otawa::ipet::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...
 
Identifier< bool > otawa::ipet::EXPLICIT ("otawa::ipet::EXPLICIT", false)
 Identifier of a boolean property requiring that explicit names must be used. More...
 
Identifier< ot::time > otawa::ipet::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< int > otawa::ipet::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...
 
Feature< NoProcessor > otawa::ipet::INTERBLOCK_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...
 

Variables

Identifier< ot::time > otawa::ipet::TIME
 This identifier is used for storing the time of execution in cycles (int) of the program area it applies to. More...
 
Identifier< ilp::Var * > otawa::ipet::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 > otawa::ipet::WCET
 Identifier of annotation used for storing for storing the WCET value (int) in the CFG of the computed function. More...
 
Identifier< bool > otawa::ipet::EXPLICIT
 Identifier of a boolean property requiring that explicit names must be used. More...
 
Identifier< ot::time > otawa::ipet::TIME_DELTA
 This property is used to store time delta on edges. More...
 
Identifier< int > otawa::ipet::COUNT
 This property is put on basic blocks and edge to record the execution count of these object on the WCET path. More...
 
Feature< NoProcessor > otawa::ipet::INTERBLOCK_SUPPORT_FEATURE
 This feature ensures that effects of the inter-block have been modelized in the current ILP system. More...
 

Detailed Description

OTAWA provides many code processors supporting IPET approach:

Some processors are dedicated to pipeline-level analyses:

Some processors are dedicated to cache analyses:

These processors interacts using the following properties:

Function Documentation

Identifier<int> otawa::ipet::COUNT ( "otawa::ipet::COUNT"  ,
1,
idLabel("execution count")  ,
idDesc("execution count in WCET")  ,
 
)

This property is put on basic blocks and edge to record the execution count of these object on the WCET path.

Feature
Hooks
Identifier<bool> otawa::ipet::EXPLICIT ( "otawa::ipet::EXPLICIT"  ,
false   
)

Identifier of a boolean property requiring that explicit names must be used.

The generation of explicit names for variables may be time-consuming and must only be activated for debugging purposes.

Feature<NoProcessor> otawa::ipet::INTERBLOCK_SUPPORT_FEATURE ( "otawa::ipet::INTERBLOCK_SUPPORT_FEATURE"  )

This feature ensures that effects of the inter-block have been modelized in the current ILP system.

Currently, there is no default processor to get it cause the heterogeneity of solutions to this problem.

Implementing Processors
  • Delta
Identifier<ot::time> otawa::ipet::TIME ( "otawa::ipet::TIME"  ,
1,
idLabel("time")  ,
idDesc("execution time (in cycles)")  ,
 
)

This identifier is used for storing the time of execution in cycles (int) of the program area it applies to.

Identifier<ot::time> otawa::ipet::TIME_DELTA ( "otawa::ipet::TIME_DELTA"  ,
,
idLabel("time delta")  ,
idDesc("time fix for an edge traversal (in cycles)")  ,
 
)

This property is used to store time delta on edges.

This time may be used to improve accuracy of the IPET system with a time modifier based on edges (use the TimeDeltaObjectFunctionModifier to add time deltas to the object function).

Identifier<ilp::Var *> otawa::ipet::VAR ( "otawa::ipet::VAR"  ,
,
idLabel("variable")  ,
idDesc("variable in ILP system for IPET resolution")  ,
 
)

This identifier is used for storing in basic blocks and edges the variables (otawa::ilp::Var *) used in ILP resolution.

Identifier<ot::time> otawa::ipet::WCET ( "otawa::ipet::WCET"  ,
1,
idLabel("WCET")  ,
idDesc("WCET (in cycles)")  ,
 
)

Identifier of annotation used for storing for storing the WCET value (int) in the CFG of the computed function.

Variable Documentation

Identifier<int> otawa::ipet::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.

Feature
Hooks

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

Feature<NoProcessor> otawa::ipet::INTERBLOCK_SUPPORT_FEATURE("otawa::ipet::INTERBLOCK_SUPPORT_FEATURE")

This feature ensures that effects of the inter-block have been modelized in the current ILP system.

Currently, there is no default processor to get it cause the heterogeneity of solutions to this problem.

Implementing Processors
  • Delta
Identifier<ot::time> otawa::ipet::TIME("otawa::ipet::TIME",-1, idLabel("time"), idDesc("execution time (in cycles)"), 0)
Identifier<ot::time> otawa::ipet::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.

This time may be used to improve accuracy of the IPET system with a time modifier based on edges (use the TimeDeltaObjectFunctionModifier to add time deltas to the object function).

Referenced by otawa::tsim::TimeDeltaObjectFunctionModifier::processBB().

Identifier<ilp::Var *> otawa::ipet::VAR("otawa::ipet::VAR", 0, idLabel("variable"), idDesc("variable in ILP system for IPET resolution"), 0)
Identifier<ot::time> otawa::ipet::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.

Referenced by otawa::ipet::WCETComputation::processWorkSpace(), otawa::display::ILPSystemDisplayer::processWorkSpace(), and otawa::BBRatioDisplayer::setup().