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

Chris Lattner sabre at nondot.org
Mon Dec 11 10:53:55 PST 2006



Changes in directory llvm/lib/CodeGen/SelectionDAG:

LegalizeDAG.cpp updated: 1.426 -> 1.427
---
Log message:

Revert changes that broke oggenc on ppc


---
Diffs of the changes:  (+9 -14)

 LegalizeDAG.cpp |   23 +++++++++--------------
 1 files changed, 9 insertions(+), 14 deletions(-)


Index: llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
diff -u llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:1.426 llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:1.427
--- llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:1.426	Mon Dec 11 00:50:04 2006
+++ llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp	Mon Dec 11 12:53:38 2006
@@ -1547,10 +1547,7 @@
         if (Tmp2.getValueType() != MVT::Vector) {
           SDOperand Lo, Hi;
           ExpandOp(Tmp2, Lo, Hi);
-          if (Hi.Val)
-            Result = DAG.getNode(ISD::RET, MVT::Other, Tmp1, Lo, Tmp3, Hi,Tmp3);
-          else
-            Result = DAG.getNode(ISD::RET, MVT::Other, Tmp1, Lo, Tmp3);
+          Result = DAG.getNode(ISD::RET, MVT::Other, Tmp1, Lo, Tmp3, Hi, Tmp3);
           Result = LegalizeOp(Result);
         } else {
           SDNode *InVal = Tmp2.Val;
@@ -1612,10 +1609,8 @@
           ExpandOp(Node->getOperand(i), Lo, Hi);
           NewValues.push_back(Lo);
           NewValues.push_back(Node->getOperand(i+1));
-          if (Hi.Val) {
-            NewValues.push_back(Hi);
-            NewValues.push_back(Node->getOperand(i+1));
-          }
+          NewValues.push_back(Hi);
+          NewValues.push_back(Node->getOperand(i+1));
           break;
         }
         case Promote:
@@ -4572,10 +4567,12 @@
       Tmp = TLI.LowerOperation(DAG.getNode(ISD::BIT_CONVERT, VT, Tmp), DAG);
     }
 
+    MVT::ValueType NVT = Node->getValueType(0);
     // f32 / f64 must be expanded to i32 / i64.
-    if (VT == MVT::f32 || VT == MVT::f64) {
-      Lo = DAG.getNode(ISD::BIT_CONVERT, NVT, Node->getOperand(0));
-      Hi = SDOperand();
+    if (NVT == MVT::f32 || NVT == MVT::f64) {
+      Lo = DAG.getNode(ISD::BIT_CONVERT, TLI.getTypeToTransformTo(NVT),
+                       Node->getOperand(0));
+      Hi = DAG.getConstant(0, TLI.getTypeToTransformTo(NVT));
       break;
     }
 
@@ -4878,9 +4875,7 @@
   // is a type that requires multi-step expansion.
   if (getTypeAction(NVT) != Expand && NVT != MVT::isVoid) {
     Lo = LegalizeOp(Lo);
-    if (Hi.Val)
-      // Don't legalize the high part if it is expanded to a single node.
-      Hi = LegalizeOp(Hi);
+    Hi = LegalizeOp(Hi);
   }
 
   // Remember in a map if the values will be reused later.






More information about the llvm-commits mailing list