Otawa  0.10
otawa::ParamExeGraph Class Reference

#include <otawa/exegraph/ParamExeGraph.h>

Inheritance diagram for otawa::ParamExeGraph:
otawa::ExeGraph< ParamExeNode >

Classes

class  ExternalConflictIterator
 
class  ExternalConflictResource
 
class  FuResource
 
struct  input_t
 
class  InternalConflictIterator
 
class  InternalConflictResource
 
class  QueueResource
 
class  RegResource
 
class  Resource
 
class  ResourceIterator
 
class  StageResource
 
class  StartResource
 

Public Types

enum  resource_type_t {
  STAGE, FU, QUEUE, REG,
  EXTERNAL_CONFLICT, INTERNAL_CONFLICT, BLOCK_START, RES_TYPE_NUM
}
 
typedef class ParamExeNode Node
 
typedef struct
otawa::ParamExeGraph::input_t 
input_t
 
enum  code_part_t
 
typedef enum
otawa::ExeGraph::code_part_t 
code_part_t
 
enum  time_bound_t
 
enum  time_step_t
 
typedef GenGraph< ParamExeNode,
typename ExeGraph
< ParamExeNode >::ExeEdge > 
Graph
 

Public Member Functions

 ParamExeGraph (WorkSpace *fw, Microprocessor< ParamExeNode > *microprocessor, ExeSequence< ParamExeNode > *sequence, bool has_pred, Trace *_trace)
 
virtual void propagate ()
 
virtual void initDelays ()
 
virtual int Delta (ParamExeNode *a, Resource *res)
 
virtual void analyzeContentions ()
 
void clearTimesChanged ()
 
void setTimesChanged ()
 
bool timesChanged ()
 
void dump (elm::io::Output &dotFile)
 
void dumpSimple (elm::io::Output &dotFile)
 
int resourceCount ()
 
int instructionCount ()
 
int analyze ()
 
virtual int cost ()
 
int latestResourceIndex ()
 
elm::String delayName (int delay)
 
GenGraph< ParamExeNode,
typename ExeGraph
< ParamExeNode >::ExeEdge > * 
graph ()
 
void setEntryNode (ParamExeNode *node)
 Sets the entry node (used for topological graph exploration). More...
 
ParamExeNodeentryNode (void)
 
virtual void build (WorkSpace *fw, Microprocessor< ParamExeNode > *microprocessor, ExeSequence< ParamExeNode > *sequence)
 
elm::String partName (code_part_t part)
 
void setFirstNode (code_part_t part, ParamExeNode *node)
 
void setLastNode (code_part_t part, ParamExeNode *node)
 
ParamExeNodefirstNode (code_part_t part)
 
ParamExeNodelastNode (code_part_t part)
 

Protected Types

typedef struct
otawa::ExeGraph::rename_table_t 
rename_table_t
 

Protected Attributes

bool _times_changed
 
int _resource_count
 
int _capacity
 
elm::genstruct::Vector
< Resource * > 
_resources
 
elm::genstruct::Vector
< Resource * > 
_internal_conflicts
 
elm::genstruct::Vector
< Resource * > 
_external_conflicts
 
int _latest_resource_index
 
int _last_resource_index
 
bool _has_pred
 
ExeSequence< ParamExeNode > * _sequence
 
elm::genstruct::Vector
< ParamExeNode * > 
_contending_nodes
 
bool res_dep [RES_TYPE_NUM]
 
int res_dep_impact [RES_TYPE_NUM]
 
ParamExeNode_entry_node
 
ParamExeNode_first_node [CODE_PARTS_NUMBER]
 
ParamExeNode_last_node [CODE_PARTS_NUMBER]
 
Microprocessor< ParamExeNode > * _microprocessor
 
elm::String _part_name [CODE_PARTS_NUMBER]
 
GenGraph< ParamExeNode, ExeEdge > _graph
 

Private Attributes

Trace_trace
 

Member Typedef Documentation

typedef GenGraph<ParamExeNode ,typename ExeGraph<ParamExeNode >::ExeEdge> otawa::ExeGraph< ParamExeNode >::Graph
inherited

Member Enumeration Documentation

Enumerator
STAGE 
FU 
QUEUE 
REG 
EXTERNAL_CONFLICT 
INTERNAL_CONFLICT 
BLOCK_START 
RES_TYPE_NUM 

Constructor & Destructor Documentation

Member Function Documentation

virtual void otawa::ExeGraph< ParamExeNode >::build ( WorkSpace fw,
Microprocessor< ParamExeNode > *  microprocessor,
ExeSequence< ParamExeNode > *  sequence 
)
virtualinherited
Parameters
fwThe framework.
microprocessorThe microprocessor.
sequenceThe sequence of instructions the graph should represent.
void otawa::ParamExeGraph::clearTimesChanged ( )
inline

References _times_changed.

elm::String otawa::ParamExeGraph::delayName ( int  delay)
inline
ParamExeNode * otawa::ExeGraph< ParamExeNode >::entryNode ( void  )
inlineinherited
Returns
The entry node.
ParamExeNode * otawa::ExeGraph< ParamExeNode >::firstNode ( code_part_t  part)
inlineinherited
Parameters
partThe code part.
Returns
The first node of the specified code part.
GenGraph<ParamExeNode , typename ExeGraph<ParamExeNode >::ExeEdge>* otawa::ExeGraph< ParamExeNode >::graph ( void  )
inlineinherited
Returns
The graph.
int otawa::ParamExeGraph::instructionCount ( )
inline
ParamExeNode * otawa::ExeGraph< ParamExeNode >::lastNode ( code_part_t  part)
inlineinherited
Parameters
partThe code part.
Returns
The last node of the specified code part.
int otawa::ParamExeGraph::latestResourceIndex ( )
inline
elm::String otawa::ExeGraph< ParamExeNode >::partName ( code_part_t  part)
inlineinherited
Returns
The name of the code part (BEFORE_PROLOGUE, PROLOGUE, BODY or EPILOGUE).
void ParamExeGraph::propagate ( )
virtual
int otawa::ParamExeGraph::resourceCount ( )
inline
void otawa::ExeGraph< ParamExeNode >::setEntryNode ( ParamExeNode node)
inlineinherited

Sets the entry node (used for topological graph exploration).

Parameters
nodeThe entry node.
void otawa::ExeGraph< ParamExeNode >::setFirstNode ( code_part_t  part,
ParamExeNode node 
)
inlineinherited
Parameters
partThe code part.
nodeThe first node of this code part. Sets the first node of the specified code part.
void otawa::ExeGraph< ParamExeNode >::setLastNode ( code_part_t  part,
ParamExeNode node 
)
inlineinherited
Parameters
partThe code part.
nodeThe last node of this code part. Sets the last node of the specified code part.
void otawa::ParamExeGraph::setTimesChanged ( )
inline
bool otawa::ParamExeGraph::timesChanged ( )
inline

References _times_changed.

Member Data Documentation

int otawa::ParamExeGraph::_capacity
protected

Referenced by analyze(), and analyzeContentions().

elm::genstruct::Vector<ParamExeNode *> otawa::ParamExeGraph::_contending_nodes
protected
ParamExeNode * otawa::ExeGraph< ParamExeNode >::_entry_node
protectedinherited

Referenced by propagate().

elm::genstruct::Vector<Resource *> otawa::ParamExeGraph::_external_conflicts
protected

Referenced by dump(), ParamExeGraph(), and resourceCount().

ParamExeNode * otawa::ExeGraph< ParamExeNode >::_first_node[CODE_PARTS_NUMBER]
protectedinherited

Referenced by initDelays().

GenGraph<ParamExeNode , ExeEdge> otawa::ExeGraph< ParamExeNode >::_graph
protectedinherited
bool otawa::ParamExeGraph::_has_pred
protected

Referenced by ParamExeGraph().

elm::genstruct::Vector<Resource *> otawa::ParamExeGraph::_internal_conflicts
protected

Referenced by dump(), ParamExeGraph(), and resourceCount().

ParamExeNode * otawa::ExeGraph< ParamExeNode >::_last_node[CODE_PARTS_NUMBER]
protectedinherited
int otawa::ParamExeGraph::_last_resource_index
protected

Referenced by ParamExeGraph(), and propagate().

int otawa::ParamExeGraph::_latest_resource_index
protected
Microprocessor<ParamExeNode >* otawa::ExeGraph< ParamExeNode >::_microprocessor
protectedinherited

Referenced by analyze(), and analyzeContentions().

elm::String otawa::ExeGraph< ParamExeNode >::_part_name[CODE_PARTS_NUMBER]
protectedinherited
int otawa::ParamExeGraph::_resource_count
protected
elm::genstruct::Vector<Resource *> otawa::ParamExeGraph::_resources
protected

Referenced by dump(), ParamExeGraph(), and resourceCount().

ExeSequence<ParamExeNode>* otawa::ParamExeGraph::_sequence
protected
bool otawa::ParamExeGraph::_times_changed
protected
Trace* otawa::ParamExeGraph::_trace
private
bool otawa::ParamExeGraph::res_dep[RES_TYPE_NUM]
protected

Referenced by analyze().

int otawa::ParamExeGraph::res_dep_impact[RES_TYPE_NUM]
protected

Referenced by analyze().


The documentation for this class was generated from the following files: