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().


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11238 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Brian Gaeke committed 2004-02-09 18:42:05 +00:00
1 parent 0cdaf94a5e
commit 0dc5753f2b
2 files changed
+24 -46

No files matched your search

+12 -23
View File
@@ -100,26 +100,24 @@ SchedGraph::~SchedGraph() {
} }
void SchedGraph::dump() const { void SchedGraph::dump() const {
std::cerr << " Sched Graph for Basic Block: "; std::cerr << " Sched Graph for Basic Block: "
std::cerr << MBB.getBasicBlock()->getName() << MBB.getBasicBlock()->getName()
<< " (" << MBB.getBasicBlock() << ")"; << " (" << MBB.getBasicBlock() << ")"
<< "\n\n Actual Root nodes: ";
std::cerr << "\n\n Actual Root nodes : "; for (SchedGraphNodeCommon::const_iterator I = graphRoot->beginOutEdges(),
for (unsigned i=0, N=graphRoot->outEdges.size(); i < N; i++) E = graphRoot->endOutEdges();
std::cerr << graphRoot->outEdges[i]->getSink()->getNodeId() I != E; ++I) {
<< ((i == N-1)? "" : ", "); std::cerr << (*I)->getSink ()->getNodeId ();
if (I + 1 != E) { std::cerr << ", "; }
}
std::cerr << "\n Graph Nodes:\n"; 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" << *I->second;
std::cerr << "\n"; std::cerr << "\n";
} }
void SchedGraph::addDummyEdges() { void SchedGraph::addDummyEdges() {
assert(graphRoot->outEdges.size() == 0); assert(graphRoot->getNumOutEdges() == 0);
for (const_iterator I=begin(); I != end(); ++I) { for (const_iterator I=begin(); I != end(); ++I) {
SchedGraphNode* node = (*I).second; SchedGraphNode* node = (*I).second;
@@ -636,15 +634,6 @@ void SchedGraph::buildGraph(const TargetMachine& target) {
for (unsigned i=0, N=MBB.size(); i < N; i++) for (unsigned i=0, N=MBB.size(); i < N; i++)
addEdgesForInstruction(*MBB[i], valueToDefVecMap, target); 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 // Then add edges for dependences on machine registers
this->addMachineRegEdges(regToRefVecMap, target); this->addMachineRegEdges(regToRefVecMap, target);
+12 -23
View File
@@ -100,26 +100,24 @@ SchedGraph::~SchedGraph() {
} }
void SchedGraph::dump() const { void SchedGraph::dump() const {
std::cerr << " Sched Graph for Basic Block: "; std::cerr << " Sched Graph for Basic Block: "
std::cerr << MBB.getBasicBlock()->getName() << MBB.getBasicBlock()->getName()
<< " (" << MBB.getBasicBlock() << ")"; << " (" << MBB.getBasicBlock() << ")"
<< "\n\n Actual Root nodes: ";
std::cerr << "\n\n Actual Root nodes : "; for (SchedGraphNodeCommon::const_iterator I = graphRoot->beginOutEdges(),
for (unsigned i=0, N=graphRoot->outEdges.size(); i < N; i++) E = graphRoot->endOutEdges();
std::cerr << graphRoot->outEdges[i]->getSink()->getNodeId() I != E; ++I) {
<< ((i == N-1)? "" : ", "); std::cerr << (*I)->getSink ()->getNodeId ();
if (I + 1 != E) { std::cerr << ", "; }
}
std::cerr << "\n Graph Nodes:\n"; 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" << *I->second;
std::cerr << "\n"; std::cerr << "\n";
} }
void SchedGraph::addDummyEdges() { void SchedGraph::addDummyEdges() {
assert(graphRoot->outEdges.size() == 0); assert(graphRoot->getNumOutEdges() == 0);
for (const_iterator I=begin(); I != end(); ++I) { for (const_iterator I=begin(); I != end(); ++I) {
SchedGraphNode* node = (*I).second; SchedGraphNode* node = (*I).second;
@@ -636,15 +634,6 @@ void SchedGraph::buildGraph(const TargetMachine& target) {
for (unsigned i=0, N=MBB.size(); i < N; i++) for (unsigned i=0, N=MBB.size(); i < N; i++)
addEdgesForInstruction(*MBB[i], valueToDefVecMap, target); 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 // Then add edges for dependences on machine registers
this->addMachineRegEdges(regToRefVecMap, target); this->addMachineRegEdges(regToRefVecMap, target);