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

Chris Lattner lattner at cs.uiuc.edu
Tue Mar 7 20:39:17 PST 2006



Changes in directory llvm/lib/CodeGen/SelectionDAG:

LegalizeDAG.cpp updated: 1.312 -> 1.313
---
Log message:

revert the previous patch, didn't mean to check it in yet


---
Diffs of the changes:  (+2 -25)

 LegalizeDAG.cpp |   27 ++-------------------------
 1 files changed, 2 insertions(+), 25 deletions(-)


Index: llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
diff -u llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:1.312 llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:1.313
--- llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:1.312	Tue Mar  7 22:37:58 2006
+++ llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp	Tue Mar  7 22:39:05 2006
@@ -1795,33 +1795,10 @@
     case TargetLowering::Custom:
       Tmp1 = TLI.LowerOperation(Result, DAG);
       if (Tmp1.Val) Result = Tmp1;
-      break;
+        break;
     case TargetLowering::Legal: break;
     case TargetLowering::Expand:
-      // If this target supports fabs/fneg natively, do this efficiently.
-      if (TLI.isOperationLegal(ISD::FABS, Tmp1.getValueType()) &&
-          TLI.isOperationLegal(ISD::FNEG, Tmp1.getValueType())) {
-        // Get the sign bit of the RHS.
-        MVT::ValueType IVT = 
-          Tmp2.getValueType() == MVT::f32 ? MVT::i32 : MVT::i64;
-        SDOperand SignBit = DAG.getNode(ISD::BIT_CONVERT, IVT, Tmp2);
-        SignBit = DAG.getSetCC(TLI.getSetCCResultTy(),
-                               SignBit, DAG.getConstant(0, IVT), ISD::SETLT);
-        // Get the absolute value of the result.
-        SDOperand AbsVal = DAG.getNode(ISD::FABS, Tmp1.getValueType(), Tmp1);
-        // Select between the nabs and abs value based on the sign bit of
-        // the input.
-        Result = DAG.getNode(ISD::SELECT, AbsVal.getValueType(), SignBit,
-                             DAG.getNode(ISD::FNEG, AbsVal.getValueType(), 
-                                         AbsVal),
-                             AbsVal);
-        Result = LegalizeOp(Result);
-        break;
-      }
-      
-      // Otherwise, do bitwise ops!
-      
-      // copysign -> copysignf/copysign libcall.
+      // Floating point mod -> fmod libcall.
       const char *FnName;
       if (Node->getValueType(0) == MVT::f32) {
         FnName = "copysignf";






More information about the llvm-commits mailing list