Fix last night's PPC32 regressions by
authorNate Begeman <natebegeman@mac.com>
Sun, 14 Aug 2005 18:38:32 +0000 (18:38 +0000)
committerNate Begeman <natebegeman@mac.com>
Sun, 14 Aug 2005 18:38:32 +0000 (18:38 +0000)
1. Not selecting the false value of a select_cc in the false arm, which
   isn't legal for nested selects.
2. Actually returning the node we created and Legalized in the FP_TO_UINT
   Expander.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22789 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
lib/Target/PowerPC/PPCISelPattern.cpp

index b331785891726d616ed84c817323361f7be72256..3d13b21f2243da6b46d1c37e55f735cd926d0508 100644 (file)
@@ -1625,6 +1625,7 @@ SDOperand SelectionDAGLegalize::LegalizeOp(SDOperand Op) {
           False = DAG.getNode(ISD::XOR, NVT, False, 
                               DAG.getConstant(1ULL << ShiftAmt, NVT));
           Result = LegalizeOp(DAG.getNode(ISD::SELECT, NVT, Tmp3, True, False));
+          return Result;
         } else {
           assert(0 && "Do not know how to expand FP_TO_SINT yet!");
         }
index 80a405edc218a654bca33a886d40cbdd72ec0654..9831111eabc3e6fdd6d119d5f54d4f4645b063db 100644 (file)
@@ -2162,9 +2162,8 @@ unsigned ISel::SelectExpr(SDOperand N, bool Recording) {
     // If the False value only has one use, we can generate better code by
     // selecting it in the fallthrough basic block rather than here, which
     // increases register pressure.
-    bool FalseHasOneUse = N.getOperand(3).Val->hasOneUse();
     unsigned TrueValue = SelectExpr(N.getOperand(2));
-    unsigned FalseValue = FalseHasOneUse ? 0 : SelectExpr(N.getOperand(3));
+    unsigned FalseValue = SelectExpr(N.getOperand(3));
     unsigned CCReg = SelectCC(N.getOperand(0), N.getOperand(1), CC);
     Opc = getBCCForSetCC(CC);
     
@@ -2195,7 +2194,6 @@ unsigned ISel::SelectExpr(SDOperand N, bool Recording) {
     //   %FalseValue = ...
     //   # fallthrough to sinkMBB
     BB = copy0MBB;
-    if (FalseHasOneUse) FalseValue = SelectExpr(N.getOperand(3));
     // Update machine-CFG edges
     BB->addSuccessor(sinkMBB);