Otawa  0.10
otawa::etime Namespace Reference

Classes

class  Config
 Represents a configuration for computing cost of a BB. More...
 
class  ConfigSet
 Set of configurations with the same or with a maximum of time. More...
 
class  EdgeTimeBuilder
 Compute execution time by edge using the parametric exegraph approach. More...
 
class  Event
 An event represents a time variation in the execution of an instruction. More...
 
class  EventCollector
 Collects variables linking events with blocks in ILP. More...
 
class  StandardEventBuilder
 Build standard events. More...
 

Typedefs

typedef enum otawa::etime::type_t type_t
 

Enumerations

enum  kind_t {
  NONE, FETCH, MEM, BRANCH,
  STAGE, FU
}
 
enum  occurrence_t { NEVER = 0, SOMETIMES = 1, ALWAYS = 2 }
 
enum  type_t { EDGE, BLOCK }
 

Functions

io::Outputoperator<< (io::Output &out, EdgeTimeBuilder::place_t p)
 
string maskToString (t::uint32 mask, int len)
 Convert an event mask to a string. More...
 
p::feature EDGE_TIME_FEATURE ("otawa::etime::EDGE_TIME_FEATURE", new Maker< EdgeTimeBuilder >())
 This feature ensures that block cost has been computed according to the context of edges. More...
 
Identifier< bool > PREDUMP ("otawa::etime::PREDUMP", false)
 This property is used to configure the EDGE_TIME_FEATURE and ask to dump the generated execution graphs. More...
 
Identifier< int > EVENT_THRESHOLD ("otawa::etime::EVENT_THRESHOLD", 12)
 This property is used to configure the EDGE_TIME_FEATURE and determine the maximum number of events to consider to time a block. More...
 
p::feature 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 EVENTS_FEATURE ("otawa::etime::EVENTS_FEATURE", new Maker< StandardEventBuilder >())
 This feature ensures that all timing events on pipeline has been recorded. More...
 
Identifier< Event * > EVENT ("otawa::etime::EVENT", 0)
 Allows to hook an event to a basic block. More...
 

Variables

p::feature STANDARD_EVENTS_FEATURE
 This feature ensures that events of the following analyses has been hooked to the task basic blocks: More...
 
p::feature EVENTS_FEATURE
 This feature ensures that all timing events on pipeline has been recorded. More...
 
Identifier< Event * > EVENT
 Allows to hook an event to a basic block. More...
 
Identifier< bool > PREDUMP
 This property is used to configure the EDGE_TIME_FEATURE and ask to dump the generated execution graphs. More...
 
Identifier< int > EVENT_THRESHOLD
 This property is used to configure the EDGE_TIME_FEATURE and determine the maximum number of events to consider to time a block. More...
 
p::feature EDGE_TIME_FEATURE
 This feature ensures that block cost has been computed according to the context of edges. More...
 

Typedef Documentation

Enumeration Type Documentation

Enumerator
NONE 
FETCH 
MEM 
BRANCH 
STAGE 
FU 
Enumerator
NEVER 
SOMETIMES 
ALWAYS 
Enumerator
EDGE 
BLOCK 

Function Documentation

p::feature otawa::etime::EDGE_TIME_FEATURE ( "otawa::etime::EDGE_TIME_FEATURE"  ,
new Maker< EdgeTimeBuilder >  () 
)

This feature ensures that block cost has been computed according to the context of edges.

Basically, this means that both the objective function and the constraint of events has been added to the ILP system.

Identifier<int> otawa::etime::EVENT_THRESHOLD ( "otawa::etime::EVENT_THRESHOLD"  ,
12   
)

This property is used to configure the EDGE_TIME_FEATURE and determine the maximum number of events to consider to time a block.

If a value of n is passed, at most 2^n times will be computed and if a block gets a bigger number of events, it will be split.

string otawa::etime::maskToString ( t::uint32  mask,
int  len 
)

Convert an event mask to a string.

Parameters
maskEvent mask.
lenNumber of events.
Returns
String representing the event mask.

References buf, and elm::StringBuffer::toString().

Referenced by otawa::etime::EdgeTimeBuilder::applyFloppySplit(), otawa::etime::EdgeTimeBuilder::applyStrictSplit(), and otawa::etime::EdgeTimeBuilder::applyWeightedSplit().

io::Output& otawa::etime::operator<< ( io::Output out,
EdgeTimeBuilder::place_t  p 
)
Identifier<bool> otawa::etime::PREDUMP ( "otawa::etime::PREDUMP"  ,
false   
)

This property is used to configure the EDGE_TIME_FEATURE and ask to dump the generated execution graphs.

Variable Documentation

p::feature otawa::etime::EDGE_TIME_FEATURE("otawa::etime::EDGE_TIME_FEATURE", new Maker< EdgeTimeBuilder >())

This feature ensures that block cost has been computed according to the context of edges.

Basically, this means that both the objective function and the constraint of events has been added to the ILP system.

Identifier<int> otawa::etime::EVENT_THRESHOLD("otawa::etime::EVENT_THRESHOLD", 12)

This property is used to configure the EDGE_TIME_FEATURE and determine the maximum number of events to consider to time a block.

If a value of n is passed, at most 2^n times will be computed and if a block gets a bigger number of events, it will be split.

Referenced by otawa::etime::EdgeTimeBuilder::configure().

Identifier<bool> otawa::etime::PREDUMP("otawa::etime::PREDUMP", false)

This property is used to configure the EDGE_TIME_FEATURE and ask to dump the generated execution graphs.

Referenced by otawa::etime::EdgeTimeBuilder::configure().