diff options
Diffstat (limited to 'lib/Target/SparcV9/ModuloScheduling/MSchedGraph.cpp')
-rw-r--r-- | lib/Target/SparcV9/ModuloScheduling/MSchedGraph.cpp | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/lib/Target/SparcV9/ModuloScheduling/MSchedGraph.cpp b/lib/Target/SparcV9/ModuloScheduling/MSchedGraph.cpp index 376cbfdf09..9ac38b4dd3 100644 --- a/lib/Target/SparcV9/ModuloScheduling/MSchedGraph.cpp +++ b/lib/Target/SparcV9/ModuloScheduling/MSchedGraph.cpp @@ -112,11 +112,12 @@ void MSchedGraph::addNode(const MachineInstr *MI, void MSchedGraph::deleteNode(MSchedGraphNode *node) { //Delete the edge to this node from all predecessors - for(MSchedGraphNode::pred_iterator P = node->pred_begin(), PE = node->pred_end(); - P != PE; ++P) { - (*P)->deleteSuccessor(node); + while(node->pred_size() > 0) { + //DEBUG(std::cerr << "Delete edge from: " << **P << " to " << *node << "\n"); + MSchedGraphNode *pred = *(node->pred_begin()); + pred->deleteSuccessor(node); } - + //Remove this node from the graph GraphMap.erase(node->getInst()); |