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

Chris Lattner lattner at cs.uiuc.edu
Fri Jan 7 00:19:56 PST 2005



Changes in directory llvm/lib/CodeGen/SelectionDAG:

LegalizeDAG.cpp updated: 1.1 -> 1.2
---
Log message:

Teach legalize how to handle condbranches


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

Index: llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
diff -u llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:1.1 llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:1.2
--- llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:1.1	Fri Jan  7 01:47:09 2005
+++ llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp	Fri Jan  7 02:19:42 2005
@@ -305,6 +305,16 @@
     }
     break;
 
+  case ISD::BRCOND:
+    Tmp1 = LegalizeOp(Node->getOperand(0));  // Legalize the chain.
+    // FIXME: booleans might not be legal!
+    Tmp2 = LegalizeOp(Node->getOperand(1));  // Legalize the condition.
+    // Basic block destination (Op#2) is always legal.
+    if (Tmp1 != Node->getOperand(0) || Tmp2 != Node->getOperand(1))
+      Result = DAG.getNode(ISD::BRCOND, MVT::Other, Tmp1, Tmp2,
+                           Node->getOperand(2));
+    break;
+
   case ISD::LOAD:
     Tmp1 = LegalizeOp(Node->getOperand(0));  // Legalize the chain.
     Tmp2 = LegalizeOp(Node->getOperand(1));  // Legalize the pointer.






More information about the llvm-commits mailing list