OpenASIP  2.0
Public Types | Public Member Functions | Protected Member Functions | Private Attributes | Friends | List of all members
ProgramDependenceNode Class Reference

#include <ProgramDependenceNode.hh>

Inheritance diagram for ProgramDependenceNode:
Inheritance graph
Collaboration diagram for ProgramDependenceNode:
Collaboration graph

Public Types

enum  NodeType {
  PDG_NODE_REGION, PDG_NODE_PREDICATE, PDG_NODE_MOVE, PDG_NODE_LOOPENTRY,
  PDG_NODE_LOOPCLOSE
}
 
typedef std::set< ProgramDependenceNode * > NodesInfo
 

Public Member Functions

 ProgramDependenceNode (NodeType type=PDG_NODE_REGION)
 
 ProgramDependenceNode (ControlDependenceNode &cdgNode, NodeType type=PDG_NODE_REGION)
 
 ProgramDependenceNode (MoveNode &mNode, NodeType type=PDG_NODE_MOVE)
 
virtual ~ProgramDependenceNode ()
 
bool isRegionNode () const
 
bool isPredicateMoveNode () const
 
bool isMoveNode () const
 
bool isLoopEntryNode () const
 
bool isLoopEntryNode (int component) const
 
bool isLoopCloseNode () const
 
bool isLastNode () const
 
void setLoopEntryNode (int component)
 
void setComponent (int component)
 
void setLastNode ()
 
int component () const
 
MoveNodemoveNode ()
 
const MoveNodemoveNode () const
 
ControlDependenceNodecdgNode ()
 
const ControlDependenceNodecdgNode () const
 
std::string dotString () const
 
std::string toString () const
 
const NodesInforegion ()
 
const NodesInfoeec ()
 
void printRelations () const
 
BasicBlockNodenewFirstBB ()
 
void setNewFirstBB (BasicBlockNode *newBB)
 
std::vector< BasicBlockNode * > leafBlocks ()
 
void addLeafBlock (BasicBlockNode *newLeaf)
 
void addLeafBlocks (std::vector< BasicBlockNode * > newLeafs)
 
- Public Member Functions inherited from GraphNode
 GraphNode (int nodeID)
 
 GraphNode ()
 
virtual ~GraphNode ()
 
virtual GraphNodeclone () const
 
int nodeID () const
 

Protected Member Functions

void setPredicateMoveNode ()
 
void addToRegion (ProgramDependenceNode &node)
 
void addToEEC (ProgramDependenceNode &node)
 

Private Attributes

MoveNodemNode_
 
ControlDependenceNodecdgNode_
 
NodeType type_
 
NodesInfo region_
 Stores "region" information for computing serialization information. More...
 
NodesInfo eec_
 Stores "eec" information for computing serialization information. More...
 
int component_
 Number of strong component the node belongs to. Node can be part of several strong components so this value have practical meaning only for loop close nodes - close just one loop, and loop entry nodes - marks a component in which node is loop entry. Still can be regular region of larger loop Full list of nodes that belongs to actual components is available in strongComponents_ vector in PDG. More...
 
BasicBlockNodenewFirstBB_
 First basic block of a subgraph of a region. More...
 
std::vector< BasicBlockNode * > leafBlocks_
 Vector of basic blocks of a subgraph that do not have outgoing edged and will need to get connected. More...
 
bool lastNode_
 Indicates that node must be scheduled last between it's siblings because it's subgraph contains close node and it's parent is entry. More...
 

Friends

class ProgramDependenceGraph
 

Detailed Description

Definition at line 43 of file ProgramDependenceNode.hh.

Member Typedef Documentation

◆ NodesInfo

Definition at line 64 of file ProgramDependenceNode.hh.

Member Enumeration Documentation

◆ NodeType

Enumerator
PDG_NODE_REGION 
PDG_NODE_PREDICATE 
PDG_NODE_MOVE 
PDG_NODE_LOOPENTRY 
PDG_NODE_LOOPCLOSE 

Definition at line 45 of file ProgramDependenceNode.hh.

45  {
46  PDG_NODE_REGION, // Region nodes of PDG
47  PDG_NODE_PREDICATE, // Predicate nodes of PDG
48  PDG_NODE_MOVE, // Single statements nodes
49  PDG_NODE_LOOPENTRY, // Region that is loop entry node
50  PDG_NODE_LOOPCLOSE // Region that is loop entry node
51  };

Constructor & Destructor Documentation

◆ ProgramDependenceNode() [1/3]

ProgramDependenceNode::ProgramDependenceNode ( NodeType  type = PDG_NODE_REGION)

Constructor creating Program Dependence Node which is empty. Does not have related CDG node. For example Loop Close node.

Parameters
typeType of the node

Definition at line 45 of file ProgramDependenceNode.cc.

47  : GraphNode(), type_(type), component_(-1), newFirstBB_(NULL),
48  lastNode_(false) {
49  mNode_ = NULL;
50  cdgNode_ = NULL;
51 }

References cdgNode_, and mNode_.

◆ ProgramDependenceNode() [2/3]

ProgramDependenceNode::ProgramDependenceNode ( ControlDependenceNode cdgNode,
NodeType  type = PDG_NODE_REGION 
)

Constructor creating Program Dependence Node from Control Dependence region node.

Parameters
cdgNodenode of CDG
typeType of the node

Definition at line 59 of file ProgramDependenceNode.cc.

62  : GraphNode(), cdgNode_(&cdgNode), type_(type), component_(-1),
63  newFirstBB_(NULL), lastNode_(false) {
64  mNode_ = NULL;
65 }

References mNode_.

◆ ProgramDependenceNode() [3/3]

ProgramDependenceNode::ProgramDependenceNode ( MoveNode mNode,
NodeType  type = PDG_NODE_MOVE 
)

Constructor creating Program Dependence Node from Data Dependence node.

Parameters
mNodeMoveNode of DDG
typeType of the node

Definition at line 72 of file ProgramDependenceNode.cc.

75  : GraphNode(), mNode_(&mNode), type_(type), component_(-1),
76  newFirstBB_(NULL), lastNode_(false) {
77  cdgNode_ = NULL;
78 }

References cdgNode_.

◆ ~ProgramDependenceNode()

ProgramDependenceNode::~ProgramDependenceNode ( )
virtual

Empty destructor.

Definition at line 83 of file ProgramDependenceNode.cc.

83  {
84  region_.clear();
85  eec_.clear();
86 }

References eec_, and region_.

Member Function Documentation

◆ addLeafBlock()

void ProgramDependenceNode::addLeafBlock ( BasicBlockNode newLeaf)
inline

Definition at line 90 of file ProgramDependenceNode.hh.

90  {
91  leafBlocks_.push_back(newLeaf); }

References leafBlocks_.

Referenced by ProgramDependenceGraph::processPredicate(), and ProgramDependenceGraph::processRegion().

◆ addLeafBlocks()

void ProgramDependenceNode::addLeafBlocks ( std::vector< BasicBlockNode * >  newLeafs)
inline

Definition at line 92 of file ProgramDependenceNode.hh.

92  {
93  leafBlocks_.insert(leafBlocks_.end(), newLeafs.begin(), newLeafs.end());
94  }

References leafBlocks_.

Referenced by ProgramDependenceGraph::processRegion().

◆ addToEEC()

void ProgramDependenceNode::addToEEC ( ProgramDependenceNode node)
protected

Add node to "eec" set for computing serialization information

Parameters
nodeNode to add to the set

Definition at line 270 of file ProgramDependenceNode.cc.

270  {
271  eec_.insert(&node);
272 }

References eec_.

Referenced by ProgramDependenceGraph::computeEECInfo(), ProgramDependenceGraph::copyRegionEECComponent(), and ProgramDependenceGraph::serializePDG().

◆ addToRegion()

void ProgramDependenceNode::addToRegion ( ProgramDependenceNode node)
protected

Add node to "region" set for computing serialization information

Parameters
nodeNode to add to the set

Definition at line 250 of file ProgramDependenceNode.cc.

250  {
251  region_.insert(&node);
252 }

References region_.

Referenced by ProgramDependenceGraph::computeRegionInfo(), ProgramDependenceGraph::copyRegionEECComponent(), ProgramDependenceGraph::regionHelper(), and ProgramDependenceGraph::serializePDG().

◆ cdgNode() [1/2]

const ControlDependenceNode & ProgramDependenceNode::cdgNode ( )

Returns CDGNode corresponding to given node in CDG.

Returns
CDGNode corresponding to given node in CDG

Returns CDGNode corresponding to given node in CDG as constant.

Returns
CDGNode corresponding to given node in CDG as constant

Definition at line 214 of file ProgramDependenceNode.cc.

214  {
215  if ((type_ == PDG_NODE_REGION
218  && cdgNode_ != NULL) {
219  return *cdgNode_;
220  } else {
221  TCEString msg = "ControlNode type does not contain CDGNode in ";
222  msg += toString() + "!";
223  throw InvalidData(__FILE__, __LINE__, __func__, msg);
224  }
225 }

References __func__, cdgNode_, PDG_NODE_LOOPCLOSE, PDG_NODE_LOOPENTRY, PDG_NODE_REGION, toString(), and type_.

Referenced by ProgramDependenceGraph::copyRegionEECComponent().

Here is the call graph for this function:

◆ cdgNode() [2/2]

const ControlDependenceNode& ProgramDependenceNode::cdgNode ( ) const

◆ component()

int ProgramDependenceNode::component ( ) const
inline

◆ dotString()

std::string ProgramDependenceNode::dotString ( ) const
virtual

Returns content of a node as a string in .dot format.

Returns
string representing content of a node in .dot format

Reimplemented from GraphNode.

Definition at line 140 of file ProgramDependenceNode.cc.

140  {
141  if (isPredicateMoveNode()) {
142  return TCEString("label=\"") +
143  toString() + "\",shape=box,color=green";
144  }
145  if (isRegionNode()) {
146  return TCEString("label=\"")
147  + toString() + "\",shape=box,color=blue";
148  }
149  if (isMoveNode() && moveNode().isMove() && moveNode().move().isCall()) {
150  return TCEString("label=\"")
151  + toString() + "\",shape=box,color=red";
152  }
153  if (isLoopEntryNode()) {
154  return TCEString("label=\"")
155  + toString() + "\",shape=box,color=red";
156  }
157  if (isLoopCloseNode()) {
158  return TCEString("label=\"")
159  + toString() + "\",shape=box,color=yellow";
160  }
161 
162  return TCEString("label=\"") + toString() + "\"";
163 }

References isLoopCloseNode(), isLoopEntryNode(), isMoveNode(), isPredicateMoveNode(), isRegionNode(), moveNode(), and toString().

Here is the call graph for this function:

◆ eec()

const ProgramDependenceNode::NodesInfo & ProgramDependenceNode::eec ( )

Returns the "eec" set for given node

Returns
the "eec" set for given node

Definition at line 281 of file ProgramDependenceNode.cc.

281  {
282  return eec_;
283 }

References eec_.

Referenced by ProgramDependenceGraph::compareSiblings(), and ProgramDependenceGraph::computeEECInfo().

◆ isLastNode()

bool ProgramDependenceNode::isLastNode ( ) const
inline

Definition at line 72 of file ProgramDependenceNode.hh.

72 { return lastNode_;}

References lastNode_.

Referenced by ProgramDependenceGraph::compareSiblings(), and toString().

◆ isLoopCloseNode()

bool ProgramDependenceNode::isLoopCloseNode ( ) const
inline

◆ isLoopEntryNode() [1/2]

bool ProgramDependenceNode::isLoopEntryNode ( ) const
inline

◆ isLoopEntryNode() [2/2]

bool ProgramDependenceNode::isLoopEntryNode ( int  component) const
inline

Definition at line 69 of file ProgramDependenceNode.hh.

69  {

References component(), component_, PDG_NODE_LOOPENTRY, and type_.

Here is the call graph for this function:

◆ isMoveNode()

bool ProgramDependenceNode::isMoveNode ( ) const
inline

◆ isPredicateMoveNode()

bool ProgramDependenceNode::isPredicateMoveNode ( ) const
inline

◆ isRegionNode()

bool ProgramDependenceNode::isRegionNode ( ) const
inline

◆ leafBlocks()

std::vector<BasicBlockNode*> ProgramDependenceNode::leafBlocks ( )
inline

Definition at line 89 of file ProgramDependenceNode.hh.

89 { return leafBlocks_;}

References leafBlocks_.

Referenced by ProgramDependenceGraph::processRegion().

◆ moveNode() [1/2]

const MoveNode & ProgramDependenceNode::moveNode ( )

Returns MoveNode corresponding to given node in DDG.

Returns
MoveNode corresponding to given node in DDG

Returns MoveNode corresponding to given node in DDG as constant.

Returns
MoveNode corresponding to given node in DDG as constant

Definition at line 182 of file ProgramDependenceNode.cc.

182  {
184  && mNode_ != NULL) {
185  return *mNode_;
186  } else {
187  TCEString msg = "MoveNode type does not contain move in ";
188  msg += toString() + "!";
189  throw InvalidData(__FILE__, __LINE__, __func__, msg);
190  }
191 }

References __func__, mNode_, PDG_NODE_MOVE, PDG_NODE_PREDICATE, toString(), and type_.

Referenced by ProgramDependenceGraph::copyRegionEECComponent(), dotString(), ProgramDependenceGraph::processPredicate(), ProgramDependenceGraph::processRegion(), ProgramDependenceGraph::ProgramDependenceGraph(), and ProgramDependenceGraph::removeGuardedJump().

Here is the call graph for this function:

◆ moveNode() [2/2]

const MoveNode& ProgramDependenceNode::moveNode ( ) const

◆ newFirstBB()

BasicBlockNode* ProgramDependenceNode::newFirstBB ( )
inline

◆ printRelations()

void ProgramDependenceNode::printRelations ( ) const

Definition at line 297 of file ProgramDependenceNode.cc.

297  {
298  Application::logStream() << "Relations: ";
299  for (NodesInfo::const_iterator iter = region_.begin();
300  iter != region_.end();
301  iter ++) {
302  Application::logStream() << (*iter)->toString() << ", ";
303  }
304  Application::logStream() << std::endl;
305  Application::logStream() << "EEC: ";
306  for (NodesInfo::const_iterator iter = eec_.begin();
307  iter != eec_.end();
308  iter ++) {
309  Application::logStream() << (*iter)->toString() << ", ";
310  }
311  Application::logStream() << std::endl;
312 
313 }

References eec_, Application::logStream(), and region_.

Referenced by ProgramDependenceGraph::processRegion().

Here is the call graph for this function:

◆ region()

const ProgramDependenceNode::NodesInfo & ProgramDependenceNode::region ( )

Returns the "region" set for given node

Returns
the "region" set for given node

Definition at line 260 of file ProgramDependenceNode.cc.

260  {
261  return region_;
262 }

References region_.

Referenced by ProgramDependenceGraph::computeEECInfo(), ProgramDependenceGraph::computeRegionInfo(), and ProgramDependenceGraph::regionHelper().

◆ setComponent()

void ProgramDependenceNode::setComponent ( int  component)
inline

Definition at line 74 of file ProgramDependenceNode.hh.

References component(), and component_.

Referenced by ProgramDependenceGraph::copyRegionEECComponent(), and ProgramDependenceGraph::detectStrongComponents().

Here is the call graph for this function:

◆ setLastNode()

void ProgramDependenceNode::setLastNode ( )
inline

◆ setLoopEntryNode()

void ProgramDependenceNode::setLoopEntryNode ( int  component)

Sets the node to be loop entry node of a given component (loop)

Parameters
componentComponent of which the node is loop entry node

Definition at line 292 of file ProgramDependenceNode.cc.

292  {
295 }

References component(), component_, PDG_NODE_LOOPENTRY, and type_.

Referenced by ProgramDependenceGraph::detectStrongComponents().

Here is the call graph for this function:

◆ setNewFirstBB()

void ProgramDependenceNode::setNewFirstBB ( BasicBlockNode newBB)
inline

◆ setPredicateMoveNode()

void ProgramDependenceNode::setPredicateMoveNode ( )
protected

Sets node to be predicate node

Definition at line 168 of file ProgramDependenceNode.cc.

168  {
170  TCEString msg = "Trying to create predicate move from Region in ";
171  msg += toString() + "!";
172  throw InvalidData(__FILE__, __LINE__, __func__, msg);
173  }
175 }

References __func__, PDG_NODE_MOVE, PDG_NODE_PREDICATE, toString(), and type_.

Referenced by ProgramDependenceGraph::removeGuardedJump().

Here is the call graph for this function:

◆ toString()

std::string ProgramDependenceNode::toString ( ) const
virtual

Returns content of a node as a string.

Returns
string representing content of a node

Node added during strong components detection to collect edges pointing to loop entry from outside the loop. Do not have cdg equivalent if analysis was done directly on pdg

Loop entry is region node converted during detection of loops Exists in CDG even if loop detection was done on PDG

Node added during strong components detection to collect edges pointing to loop entry from inside the loop. Do not have cdg equivalent if analysis was done directly on pdg

Reimplemented from GraphNode.

Definition at line 93 of file ProgramDependenceNode.cc.

93  {
94  TCEString result;
95  if (isRegionNode()) {
96  if (cdgNode_ != NULL) {
97  result += cdgNode_->toString() + ": " +
99  } else {
100  /// Node added during strong components detection
101  /// to collect edges pointing to loop entry from outside the loop.
102  /// Do not have cdg equivalent if analysis was done directly on pdg
103  result += "Collect_" + Conversion::toString(nodeID());
104  }
105  }
106  if (isLoopEntryNode()) {
107  /// Loop entry is region node converted during detection of loops
108  /// Exists in CDG even if loop detection was done on PDG
109  result += "LoopEntry_" + Conversion::toString(nodeID()) +
110  ": " + cdgNode_->toString();
111  }
112  if (isLoopCloseNode()) {
113  /// Node added during strong components detection
114  /// to collect edges pointing to loop entry from inside the loop.
115  /// Do not have cdg equivalent if analysis was done directly on pdg
116  if (cdgNode_ != NULL) {
117  result += "LoopClose_" + Conversion::toString(nodeID()) +
118  ": " + cdgNode_->toString();
119  } else {
120  result += "LoopClose_" + Conversion::toString(nodeID());
121  }
122  }
123  if (isPredicateMoveNode()) {
124  result += "Predicate: " + mNode_->toString() + ": " +
126  }
127  if (isLastNode()) {
128  result += "_LAST";
129  }
130  if (mNode_ != NULL && !isPredicateMoveNode()) {
131  result+= mNode_->toString() + ": " + Conversion::toString(nodeID());
132  }
133  return result;
134 }

References cdgNode_, isLastNode(), isLoopCloseNode(), isLoopEntryNode(), isPredicateMoveNode(), isRegionNode(), mNode_, GraphNode::nodeID(), Conversion::toString(), ControlDependenceNode::toString(), and MoveNode::toString().

Referenced by cdgNode(), ProgramDependenceGraph::computeEECInfo(), ProgramDependenceGraph::detectStrongComponents(), dotString(), moveNode(), ProgramDependenceGraph::processPredicate(), ProgramDependenceGraph::processRegion(), ProgramDependenceGraph::removeGuardedJump(), and setPredicateMoveNode().

Here is the call graph for this function:

Friends And Related Function Documentation

◆ ProgramDependenceGraph

friend class ProgramDependenceGraph
friend

Definition at line 97 of file ProgramDependenceNode.hh.

Member Data Documentation

◆ cdgNode_

ControlDependenceNode* ProgramDependenceNode::cdgNode_
private

Definition at line 103 of file ProgramDependenceNode.hh.

Referenced by cdgNode(), ProgramDependenceNode(), and toString().

◆ component_

int ProgramDependenceNode::component_
private

Number of strong component the node belongs to. Node can be part of several strong components so this value have practical meaning only for loop close nodes - close just one loop, and loop entry nodes - marks a component in which node is loop entry. Still can be regular region of larger loop Full list of nodes that belongs to actual components is available in strongComponents_ vector in PDG.

Definition at line 116 of file ProgramDependenceNode.hh.

Referenced by component(), isLoopEntryNode(), setComponent(), and setLoopEntryNode().

◆ eec_

NodesInfo ProgramDependenceNode::eec_
private

Stores "eec" information for computing serialization information.

Definition at line 108 of file ProgramDependenceNode.hh.

Referenced by addToEEC(), eec(), printRelations(), and ~ProgramDependenceNode().

◆ lastNode_

bool ProgramDependenceNode::lastNode_
private

Indicates that node must be scheduled last between it's siblings because it's subgraph contains close node and it's parent is entry.

Definition at line 124 of file ProgramDependenceNode.hh.

Referenced by isLastNode(), and setLastNode().

◆ leafBlocks_

std::vector<BasicBlockNode*> ProgramDependenceNode::leafBlocks_
private

Vector of basic blocks of a subgraph that do not have outgoing edged and will need to get connected.

Definition at line 121 of file ProgramDependenceNode.hh.

Referenced by addLeafBlock(), addLeafBlocks(), and leafBlocks().

◆ mNode_

MoveNode* ProgramDependenceNode::mNode_
private

Definition at line 102 of file ProgramDependenceNode.hh.

Referenced by moveNode(), ProgramDependenceNode(), and toString().

◆ newFirstBB_

BasicBlockNode* ProgramDependenceNode::newFirstBB_
private

First basic block of a subgraph of a region.

Definition at line 118 of file ProgramDependenceNode.hh.

Referenced by newFirstBB(), and setNewFirstBB().

◆ region_

NodesInfo ProgramDependenceNode::region_
private

Stores "region" information for computing serialization information.

Definition at line 106 of file ProgramDependenceNode.hh.

Referenced by addToRegion(), printRelations(), region(), and ~ProgramDependenceNode().

◆ type_

NodeType ProgramDependenceNode::type_
private

The documentation for this class was generated from the following files:
ProgramDependenceNode::isRegionNode
bool isRegionNode() const
Definition: ProgramDependenceNode.hh:65
ProgramDependenceNode::isPredicateMoveNode
bool isPredicateMoveNode() const
Definition: ProgramDependenceNode.hh:66
ProgramDependenceNode::toString
std::string toString() const
Definition: ProgramDependenceNode.cc:93
ProgramDependenceNode::PDG_NODE_PREDICATE
@ PDG_NODE_PREDICATE
Definition: ProgramDependenceNode.hh:47
ProgramDependenceNode::type_
NodeType type_
Definition: ProgramDependenceNode.hh:104
MoveNode::toString
std::string toString() const
Definition: MoveNode.cc:576
ProgramDependenceNode::isLoopEntryNode
bool isLoopEntryNode() const
Definition: ProgramDependenceNode.hh:68
ProgramDependenceNode::PDG_NODE_REGION
@ PDG_NODE_REGION
Definition: ProgramDependenceNode.hh:46
ProgramDependenceNode::PDG_NODE_LOOPENTRY
@ PDG_NODE_LOOPENTRY
Definition: ProgramDependenceNode.hh:49
GraphNode::nodeID
int nodeID() const
ControlDependenceNode::toString
std::string toString() const
Definition: ControlDependenceNode.cc:72
Application::logStream
static std::ostream & logStream()
Definition: Application.cc:155
ProgramDependenceNode::moveNode
MoveNode & moveNode()
Definition: ProgramDependenceNode.cc:182
Conversion::toString
static std::string toString(const T &source)
InvalidData
Definition: Exception.hh:149
ProgramDependenceNode::leafBlocks_
std::vector< BasicBlockNode * > leafBlocks_
Vector of basic blocks of a subgraph that do not have outgoing edged and will need to get connected.
Definition: ProgramDependenceNode.hh:121
ProgramDependenceNode::component
int component() const
Definition: ProgramDependenceNode.hh:76
ProgramDependenceNode::component_
int component_
Number of strong component the node belongs to. Node can be part of several strong components so this...
Definition: ProgramDependenceNode.hh:116
ProgramDependenceNode::cdgNode
ControlDependenceNode & cdgNode()
Definition: ProgramDependenceNode.cc:214
ProgramDependenceNode::region_
NodesInfo region_
Stores "region" information for computing serialization information.
Definition: ProgramDependenceNode.hh:106
__func__
#define __func__
Definition: Application.hh:67
ProgramDependenceNode::isMoveNode
bool isMoveNode() const
Definition: ProgramDependenceNode.hh:67
ProgramDependenceNode::cdgNode_
ControlDependenceNode * cdgNode_
Definition: ProgramDependenceNode.hh:103
ProgramDependenceNode::PDG_NODE_LOOPCLOSE
@ PDG_NODE_LOOPCLOSE
Definition: ProgramDependenceNode.hh:50
GraphNode::GraphNode
GraphNode()
Definition: GraphNode.cc:37
ProgramDependenceNode::isLastNode
bool isLastNode() const
Definition: ProgramDependenceNode.hh:72
TCEString
Definition: TCEString.hh:53
ProgramDependenceNode::isLoopCloseNode
bool isLoopCloseNode() const
Definition: ProgramDependenceNode.hh:71
ProgramDependenceNode::newFirstBB_
BasicBlockNode * newFirstBB_
First basic block of a subgraph of a region.
Definition: ProgramDependenceNode.hh:118
ProgramDependenceNode::mNode_
MoveNode * mNode_
Definition: ProgramDependenceNode.hh:102
ProgramDependenceNode::eec_
NodesInfo eec_
Stores "eec" information for computing serialization information.
Definition: ProgramDependenceNode.hh:108
ProgramDependenceNode::lastNode_
bool lastNode_
Indicates that node must be scheduled last between it's siblings because it's subgraph contains close...
Definition: ProgramDependenceNode.hh:124
ProgramDependenceNode::PDG_NODE_MOVE
@ PDG_NODE_MOVE
Definition: ProgramDependenceNode.hh:48