Otawa  0.10
otawa::LiExeGraph Class Reference

#include <otawa/exegraph/LiExeGraph.h>

Inheritance diagram for otawa::LiExeGraph:
otawa::ExeGraph< LiExeNode >

Public Types

typedef class LiExeNode Node
 
enum  code_part_t
 
typedef enum
otawa::ExeGraph::code_part_t 
code_part_t
 
enum  time_bound_t
 
enum  time_step_t
 
typedef GenGraph< LiExeNode,
typename ExeGraph< LiExeNode >
::ExeEdge > 
Graph
 

Public Member Functions

 LiExeGraph (WorkSpace *fw, Microprocessor< LiExeNode > *microprocessor, ExeSequence< LiExeNode > *sequence)
 
int analyze ()
 
void setTimesChanged ()
 
void dump (elm::io::Output &dotFile)
 
GenGraph< LiExeNode, typename
ExeGraph< LiExeNode >::ExeEdge > * 
graph ()
 
void setEntryNode (LiExeNode *node)
 Sets the entry node (used for topological graph exploration). More...
 
LiExeNodeentryNode (void)
 
virtual void build (WorkSpace *fw, Microprocessor< LiExeNode > *microprocessor, ExeSequence< LiExeNode > *sequence)
 
elm::String partName (code_part_t part)
 
void setFirstNode (code_part_t part, LiExeNode *node)
 
void setLastNode (code_part_t part, LiExeNode *node)
 
LiExeNodefirstNode (code_part_t part)
 
LiExeNodelastNode (code_part_t part)
 

Protected Types

typedef struct
otawa::ExeGraph::rename_table_t 
rename_table_t
 

Protected Attributes

LiExeNode_entry_node
 
LiExeNode_first_node [CODE_PARTS_NUMBER]
 
LiExeNode_last_node [CODE_PARTS_NUMBER]
 
ExeSequence< LiExeNode > * _sequence
 
Microprocessor< LiExeNode > * _microprocessor
 
elm::String _part_name [CODE_PARTS_NUMBER]
 
GenGraph< LiExeNode, ExeEdge > _graph
 

Private Member Functions

void latestTimes ()
 
void earliestTimes ()
 
bool maxTimeToNode (LiExeNode *source, LiExeNode *target, int *time)
 
void shadeNodes (LiExeNode *node)
 
void nodeLatestTimes (LiExeNode *node)
 
void nodeEarliestTimes (LiExeNode *node)
 
bool separated (LiExeNode *u, LiExeNode *v)
 
elm::String timeName (int time)
 

Private Attributes

bool _times_changed
 

Member Typedef Documentation

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

Member Enumeration Documentation

Constructor & Destructor Documentation

otawa::LiExeGraph::LiExeGraph ( WorkSpace fw,
Microprocessor< LiExeNode > *  microprocessor,
ExeSequence< LiExeNode > *  sequence 
)
inline

Member Function Documentation

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

Referenced by LiExeGraph().

LiExeNode * otawa::ExeGraph< LiExeNode >::entryNode ( void  )
inlineinherited
Returns
The entry node.
LiExeNode * otawa::ExeGraph< LiExeNode >::firstNode ( code_part_t  part)
inlineinherited
Parameters
partThe code part.
Returns
The first node of the specified code part.

Referenced by analyze().

GenGraph<LiExeNode , typename ExeGraph<LiExeNode >::ExeEdge>* otawa::ExeGraph< LiExeNode >::graph ( void  )
inlineinherited
Returns
The graph.
LiExeNode * otawa::ExeGraph< LiExeNode >::lastNode ( code_part_t  part)
inlineinherited
Parameters
partThe code part.
Returns
The last node of the specified code part.

Referenced by analyze(), latestTimes(), and nodeLatestTimes().

bool LiExeGraph::maxTimeToNode ( LiExeNode source,
LiExeNode target,
int *  time 
)
private
elm::String otawa::ExeGraph< LiExeNode >::partName ( code_part_t  part)
inlineinherited
Returns
The name of the code part (BEFORE_PROLOGUE, PROLOGUE, BODY or EPILOGUE).
void otawa::ExeGraph< LiExeNode >::setEntryNode ( LiExeNode node)
inlineinherited

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

Parameters
nodeThe entry node.
void otawa::ExeGraph< LiExeNode >::setFirstNode ( code_part_t  part,
LiExeNode 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< LiExeNode >::setLastNode ( code_part_t  part,
LiExeNode node 
)
inlineinherited
Parameters
partThe code part.
nodeThe last node of this code part. Sets the last node of the specified code part.
void otawa::LiExeGraph::setTimesChanged ( )
inline

References _times_changed.

Referenced by otawa::LiExeNode::setTime().

elm::String LiExeGraph::timeName ( int  time)
inlineprivate

References EPSILON, INFINITE_TIME, and elm::StringBuffer::toString().

Referenced by dump().

Member Data Documentation

LiExeNode * otawa::ExeGraph< LiExeNode >::_entry_node
protectedinherited

Referenced by earliestTimes(), and latestTimes().

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

Referenced by earliestTimes(), and latestTimes().

GenGraph<LiExeNode , ExeEdge> otawa::ExeGraph< LiExeNode >::_graph
protectedinherited
LiExeNode * otawa::ExeGraph< LiExeNode >::_last_node[CODE_PARTS_NUMBER]
protectedinherited
Microprocessor<LiExeNode >* otawa::ExeGraph< LiExeNode >::_microprocessor
protectedinherited
elm::String otawa::ExeGraph< LiExeNode >::_part_name[CODE_PARTS_NUMBER]
protectedinherited
ExeSequence<LiExeNode >* otawa::ExeGraph< LiExeNode >::_sequence
protectedinherited

Referenced by dump().

bool otawa::LiExeGraph::_times_changed
private

Referenced by analyze(), and setTimesChanged().


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