Otawa  0.10
Event Time Module

This module aims to make more generic how events (cache hits/misses, branch prediction, etc) are processed to generate block time. More...

Classes

class  otawa::etime::EdgeTimeBuilder
 Compute execution time by edge using the parametric exegraph approach. More...
 
class  otawa::etime::Event
 An event represents a time variation in the execution of an instruction. More...
 
class  otawa::etime::StandardEventBuilder
 Build standard events. More...
 

Functions

p::feature otawa::etime::STANDARD_EVENTS_FEATURE ("otawa::etime::STANDARD_EVENTS_FEATURE", new Maker< StandardEventBuilder >())
 This feature ensures that events of the following analyses has been hooked to the task basic blocks: More...
 
p::feature otawa::etime::EVENTS_FEATURE ("otawa::etime::EVENTS_FEATURE", new Maker< StandardEventBuilder >())
 This feature ensures that all timing events on pipeline has been recorded. More...
 
Identifier< Event * > otawa::etime::EVENT ("otawa::etime::EVENT", 0)
 Allows to hook an event to a basic block. More...
 

Variables

p::feature otawa::etime::STANDARD_EVENTS_FEATURE
 This feature ensures that events of the following analyses has been hooked to the task basic blocks: More...
 
p::feature otawa::etime::EVENTS_FEATURE
 This feature ensures that all timing events on pipeline has been recorded. More...
 
Identifier< Event * > otawa::etime::EVENT
 Allows to hook an event to a basic block. More...
 

Detailed Description

This module aims to make more generic how events (cache hits/misses, branch prediction, etc) are processed to generate block time.

The basic idea is that each analysis contributes to the WCET by defining the events (changes of the execution time) applying to instruction or a block. As a result, these events are hooked to the basic block they apply to and design (a) which instruction is concerned, (b) which part of the instruction execution they apply to (memory access, stage, functional unit, etc) and (c) how they contribute to the time.

In addition, a event may a contribution to the constraints of the ILP system and may be asked to provide a overestimation or an underestimation of their occurrence according to their contribution (worst case time or best case time) to the WCET.

From the events, several policies may be applied to compute the times, to select the granularity and the precision of the computed time or to choose a way to split the CFG into blocks.

Function Documentation

Identifier<Event *> otawa::etime::EVENT ( "otawa::etime::EVENT"  ,
 
)

Allows to hook an event to a basic block.

Feature
Hooks
p::feature otawa::etime::EVENTS_FEATURE ( "otawa::etime::EVENTS_FEATURE"  ,
new Maker< StandardEventBuilder >  () 
)

This feature ensures that all timing events on pipeline has been recorded.

Properties
Default Processor
p::feature otawa::etime::STANDARD_EVENTS_FEATURE ( "otawa::etime::STANDARD_EVENTS_FEATURE"  ,
new Maker< StandardEventBuilder >  () 
)

This feature ensures that events of the following analyses has been hooked to the task basic blocks:

  • L1 instruction cache by category,
  • L1 data cache by category,
  • branch prediction by categrory.
Properties

Variable Documentation

Identifier<Event *> otawa::etime::EVENT("otawa::etime::EVENT", 0)
p::feature otawa::etime::EVENTS_FEATURE("otawa::etime::EVENTS_FEATURE", new Maker< StandardEventBuilder >())

This feature ensures that all timing events on pipeline has been recorded.

Properties
Default Processor
p::feature otawa::etime::STANDARD_EVENTS_FEATURE("otawa::etime::STANDARD_EVENTS_FEATURE", new Maker< StandardEventBuilder >())

This feature ensures that events of the following analyses has been hooked to the task basic blocks:

  • L1 instruction cache by category,
  • L1 data cache by category,
  • branch prediction by categrory.
Properties