[llvm-commits] CVS: llvm/lib/CodeGen/InstrSched/SchedGraph.cpp
Brian Gaeke
gaeke at cs.uiuc.edu
Mon Feb 9 12:43:01 PST 2004
Changes in directory llvm/lib/CodeGen/InstrSched:
SchedGraph.cpp updated: 1.54 -> 1.55
---
Log message:
Make SchedGraph::dump() use SchedGraphNodeCommon's const_iterator
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().
---
Diffs of the changes: (+14 -25)
Index: llvm/lib/CodeGen/InstrSched/SchedGraph.cpp
diff -u llvm/lib/CodeGen/InstrSched/SchedGraph.cpp:1.54 llvm/lib/CodeGen/InstrSched/SchedGraph.cpp:1.55
--- llvm/lib/CodeGen/InstrSched/SchedGraph.cpp:1.54 Sun Dec 14 07:24:16 2003
+++ llvm/lib/CodeGen/InstrSched/SchedGraph.cpp Mon Feb 9 12:42:05 2004
@@ -100,26 +100,24 @@
}
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 @@
// 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();
}
More information about the llvm-commits
mailing list