aboutsummaryrefslogtreecommitdiff
path: root/lib/Target/SparcV9/ModuloScheduling/MSchedGraph.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Target/SparcV9/ModuloScheduling/MSchedGraph.cpp')
-rw-r--r--lib/Target/SparcV9/ModuloScheduling/MSchedGraph.cpp9
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());