OTAWA  2.0
Framework to perform machine analysis and compute WCET.
Event Management

In OTAWA, an event is an internal effecy (usually from the hardware) causing variable execution time. Common events include cache accesses, branch prediction, variable duration instructions, etc). More...

Classes

class  otawa::StandardEventBuilder
 

Enumerations

enum  otawa::Event::kind_t {
  otawa::Event::NONE = 0, otawa::Event::FETCH = 1, otawa::Event::MEM = 2, otawa::Event::BRANCH = 3,
  otawa::Event::CUSTOM = 4
}
 

Functions

p::id< Event * > otawa::EVENT ("otawa::EVENT", 0)
 Allows to hook an event to a basic block or to an edge. More...
 
Event::occurrence_t otawa::operator| (Event::occurrence_t x, Event::occurrence_t y)
 Combines two event occcurrences according to the partial order (getting the maximu of x and y). More...
 
p::id< Event * > otawa::PREFIX_EVENT ("otawa::PREFIX_EVENT", 0)
 Allows to hook an event to an edge and consider it as part of the prefix of the edge time. More...
 

Variables

p::id< Event * > otawa::EVENT
 Allows to hook an event to a basic block or to an edge. More...
 
p::id< Event * > otawa::PREFIX_EVENT
 Allows to hook an event to an edge and consider it as part of the prefix of the edge time. More...
 

Detailed Description

In OTAWA, an event is an internal effecy (usually from the hardware) causing variable execution time. Common events include cache accesses, branch prediction, variable duration instructions, etc).

Events are defined by:

Events provides a very open and flexible system to relates the global hardware effects produced by global analyses with the microarchitecture time calculation algorithms.

Enumeration Type Documentation

◆ kind_t

Defines the type of events, mainly which hardware feature causes the event.

Enumerator
NONE 

Special null event kind.

FETCH 

Event arising on the fetch stage of the instruction.

MEM 

Event arising on the stage performing access to memory for data.

BRANCH 

Event arising on the stage performing the branch.

CUSTOM 

Event arising on a particular stage / functional unit provided by Event::unit().

Function Documentation

◆ EVENT()

p::id<Event *> otawa::EVENT ( "otawa::EVENT"  ,
 
)

Allows to hook an event to a basic block or to an edge.

Feature
  • STANDARD_EVENTS_FEATURE
Hooks

◆ operator|()

Combines two event occcurrences according to the partial order (getting the maximu of x and y).

  • for x in occurrence_t, NO_OCCURRENCE <= x
  • for x in occurence_t, x <= SOMETIMES.
Parameters
xFirst occurrence to combine.
ySecond occurrence to combine.
Returns
Maximum of x and y.

References otawa::Event::ALWAYS, otawa::Event::NEVER, otawa::Event::NO_OCCURRENCE, otawa::Event::SOMETIMES, and otawa::ilp::x().

◆ PREFIX_EVENT()

p::id<Event *> otawa::PREFIX_EVENT ( "otawa::PREFIX_EVENT"  ,
 
)

Allows to hook an event to an edge and consider it as part of the prefix of the edge time.

Feature
  • STANDARD_EVENTS_FEATURE
Hooks

Variable Documentation

◆ EVENT

p::id<Event *> otawa::EVENT("otawa::EVENT", 0)

Allows to hook an event to a basic block or to an edge.

Feature
  • STANDARD_EVENTS_FEATURE
Hooks

Referenced by otawa::StandardEventBuilder::dumpBB().

◆ PREFIX_EVENT

p::id<Event *> otawa::PREFIX_EVENT("otawa::PREFIX_EVENT", 0)

Allows to hook an event to an edge and consider it as part of the prefix of the edge time.

Feature
  • STANDARD_EVENTS_FEATURE
Hooks