Make SchedGraph::dump() use SchedGraphNodeCommon's const_iterator
authorBrian Gaeke <gaeke@uiuc.edu>
Mon, 9 Feb 2004 18:42:05 +0000 (18:42 +0000)
committerBrian Gaeke <gaeke@uiuc.edu>
Mon, 9 Feb 2004 18:42:05 +0000 (18:42 +0000)
instead of randomly groping about inside its outEdges array.
Make SchedGraph::addDummyEdges() use getNumOutEdges() instead of
outEdges.size().
Get rid of ifdefed-out code in SchedGraph::buildGraph().

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11238 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/InstrSched/SchedGraph.cpp
lib/Target/SparcV9/InstrSched/SchedGraph.cpp

index 2dafe62c7244bb265b6c96d114a1f9c23b70da71..65f1511e9608af3d77bce9b89acfcc028274e62d 100644 (file)
@@ -100,26 +100,24 @@ SchedGraph::~SchedGraph() {
 }
 
 void SchedGraph::dump() const {
-  std::cerr << "  Sched Graph for Basic Block: ";
-  std::cerr << MBB.getBasicBlock()->getName()
-            << " (" << MBB.getBasicBlock() << ")";
-  
-  std::cerr << "\n\n    Actual Root nodes : ";
-  for (unsigned i=0, N=graphRoot->outEdges.size(); i < N; i++)
-    std::cerr << graphRoot->outEdges[i]->getSink()->getNodeId()
-              << ((i == N-1)? "" : ", ");
-  
+  std::cerr << "  Sched Graph for Basic Block: "
+            << MBB.getBasicBlock()->getName()
+            << " (" << MBB.getBasicBlock() << ")"
+            << "\n\n    Actual Root nodes: ";
+  for (SchedGraphNodeCommon::const_iterator I = graphRoot->beginOutEdges(),
+                                            E = graphRoot->endOutEdges();
+       I != E; ++I) {
+    std::cerr << (*I)->getSink ()->getNodeId ();
+    if (I + 1 != E) { std::cerr << ", "; }
+  }
   std::cerr << "\n    Graph Nodes:\n";
-  for (const_iterator I=begin(); I != end(); ++I)
+  for (const_iterator I = begin(), E = end(); I != E; ++I)
     std::cerr << "\n" << *I->second;
-  
   std::cerr << "\n";
 }
 
-
-
 void SchedGraph::addDummyEdges() {
-  assert(graphRoot->outEdges.size() == 0);
+  assert(graphRoot->getNumOutEdges() == 0);
   
   for (const_iterator I=begin(); I != end(); ++I) {
     SchedGraphNode* node = (*I).second;
@@ -635,19 +633,10 @@ void SchedGraph::buildGraph(const TargetMachine& target) {
   // Then add incoming def-use (SSA) edges for each machine instruction.
   for (unsigned i=0, N=MBB.size(); i < N; i++)
     addEdgesForInstruction(*MBB[i], valueToDefVecMap, target);
-  
-#ifdef NEED_SEPARATE_NONSSA_EDGES_CODE
-  // Then add non-SSA edges for all VM instructions in the block.
-  // We assume that all machine instructions that define a value are
-  // generated from the VM instruction corresponding to that value.
-  // TODO: This could probably be done much more efficiently.
-  for (BasicBlock::const_iterator II = bb->begin(); II != bb->end(); ++II)
-    this->addNonSSAEdgesForValue(*II, target);
-#endif //NEED_SEPARATE_NONSSA_EDGES_CODE
-  
+
   // Then add edges for dependences on machine registers
   this->addMachineRegEdges(regToRefVecMap, target);
-  
+
   // Finally, add edges from the dummy root and to dummy leaf
   this->addDummyEdges();               
 }
index 2dafe62c7244bb265b6c96d114a1f9c23b70da71..65f1511e9608af3d77bce9b89acfcc028274e62d 100644 (file)
@@ -100,26 +100,24 @@ SchedGraph::~SchedGraph() {
 }
 
 void SchedGraph::dump() const {
-  std::cerr << "  Sched Graph for Basic Block: ";
-  std::cerr << MBB.getBasicBlock()->getName()
-            << " (" << MBB.getBasicBlock() << ")";
-  
-  std::cerr << "\n\n    Actual Root nodes : ";
-  for (unsigned i=0, N=graphRoot->outEdges.size(); i < N; i++)
-    std::cerr << graphRoot->outEdges[i]->getSink()->getNodeId()
-              << ((i == N-1)? "" : ", ");
-  
+  std::cerr << "  Sched Graph for Basic Block: "
+            << MBB.getBasicBlock()->getName()
+            << " (" << MBB.getBasicBlock() << ")"
+            << "\n\n    Actual Root nodes: ";
+  for (SchedGraphNodeCommon::const_iterator I = graphRoot->beginOutEdges(),
+                                            E = graphRoot->endOutEdges();
+       I != E; ++I) {
+    std::cerr << (*I)->getSink ()->getNodeId ();
+    if (I + 1 != E) { std::cerr << ", "; }
+  }
   std::cerr << "\n    Graph Nodes:\n";
-  for (const_iterator I=begin(); I != end(); ++I)
+  for (const_iterator I = begin(), E = end(); I != E; ++I)
     std::cerr << "\n" << *I->second;
-  
   std::cerr << "\n";
 }
 
-
-
 void SchedGraph::addDummyEdges() {
-  assert(graphRoot->outEdges.size() == 0);
+  assert(graphRoot->getNumOutEdges() == 0);
   
   for (const_iterator I=begin(); I != end(); ++I) {
     SchedGraphNode* node = (*I).second;
@@ -635,19 +633,10 @@ void SchedGraph::buildGraph(const TargetMachine& target) {
   // Then add incoming def-use (SSA) edges for each machine instruction.
   for (unsigned i=0, N=MBB.size(); i < N; i++)
     addEdgesForInstruction(*MBB[i], valueToDefVecMap, target);
-  
-#ifdef NEED_SEPARATE_NONSSA_EDGES_CODE
-  // Then add non-SSA edges for all VM instructions in the block.
-  // We assume that all machine instructions that define a value are
-  // generated from the VM instruction corresponding to that value.
-  // TODO: This could probably be done much more efficiently.
-  for (BasicBlock::const_iterator II = bb->begin(); II != bb->end(); ++II)
-    this->addNonSSAEdgesForValue(*II, target);
-#endif //NEED_SEPARATE_NONSSA_EDGES_CODE
-  
+
   // Then add edges for dependences on machine registers
   this->addMachineRegEdges(regToRefVecMap, target);
-  
+
   // Finally, add edges from the dummy root and to dummy leaf
   this->addDummyEdges();               
 }