[llvm-commits] CVS: llvm/lib/CodeGen/SelectionDAG/ScheduleDAG.cpp

Evan Cheng evan.cheng at apple.com
Mon Aug 7 15:12:29 PDT 2006



Changes in directory llvm/lib/CodeGen/SelectionDAG:

ScheduleDAG.cpp updated: 1.99 -> 1.100
---
Log message:

Reverse the FlaggedNodes after scanning up for flagged preds or else the order would be reversed.

---
Diffs of the changes:  (+10 -5)

 ScheduleDAG.cpp |   15 ++++++++++-----
 1 files changed, 10 insertions(+), 5 deletions(-)


Index: llvm/lib/CodeGen/SelectionDAG/ScheduleDAG.cpp
diff -u llvm/lib/CodeGen/SelectionDAG/ScheduleDAG.cpp:1.99 llvm/lib/CodeGen/SelectionDAG/ScheduleDAG.cpp:1.100
--- llvm/lib/CodeGen/SelectionDAG/ScheduleDAG.cpp:1.99	Fri Jul 21 15:57:35 2006
+++ llvm/lib/CodeGen/SelectionDAG/ScheduleDAG.cpp	Mon Aug  7 17:12:12 2006
@@ -55,11 +55,16 @@
     
     // Scan up, adding flagged preds to FlaggedNodes.
     SDNode *N = NI;
-    while (N->getNumOperands() &&
-           N->getOperand(N->getNumOperands()-1).getValueType() == MVT::Flag) {
-      N = N->getOperand(N->getNumOperands()-1).Val;
-      NodeSUnit->FlaggedNodes.push_back(N);
-      SUnitMap[N] = NodeSUnit;
+    if (N->getNumOperands() &&
+        N->getOperand(N->getNumOperands()-1).getValueType() == MVT::Flag) {
+      do {
+        N = N->getOperand(N->getNumOperands()-1).Val;
+        NodeSUnit->FlaggedNodes.push_back(N);
+        SUnitMap[N] = NodeSUnit;
+      } while (N->getNumOperands() &&
+               N->getOperand(N->getNumOperands()-1).getValueType()== MVT::Flag);
+      std::reverse(NodeSUnit->FlaggedNodes.begin(),
+                   NodeSUnit->FlaggedNodes.end());
     }
     
     // Scan down, adding this node and any flagged succs to FlaggedNodes if they






More information about the llvm-commits mailing list