Otawa
0.10
|
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... | |
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.
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.
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:
Identifier<Event *> otawa::etime::EVENT("otawa::etime::EVENT", 0) |
Allows to hook an event to a basic block.
Referenced by otawa::etime::StandardEventBuilder::handleVariableBranchPred(), otawa::etime::StandardEventBuilder::processBB(), and otawa::etime::EdgeTimeBuilder::sortEvents().
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.
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: