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

2007-06-21 Thread Dan Gohman


Changes in directory llvm/lib/CodeGen/SelectionDAG:

LegalizeDAG.cpp updated: 1.498 - 1.499
TargetLowering.cpp updated: 1.120 - 1.121
---
Log message:

Tidy up ValueType names in comments.


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

 LegalizeDAG.cpp|4 ++--
 TargetLowering.cpp |6 +++---
 2 files changed, 5 insertions(+), 5 deletions(-)


Index: llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
diff -u llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:1.498 
llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:1.499
--- llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:1.498 Mon Jun 18 16:28:10 2007
+++ llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp   Thu Jun 21 09:48:26 2007
@@ -5649,8 +5649,8 @@
 
 
 /// PackVectorOp - Given an operand of MVT::Vector type, convert it into the
-/// equivalent operation that returns a scalar (e.g. F32) or packed value
-/// (e.g. MVT::V4F32).  When this is called, we know that PackedVT is the right
+/// equivalent operation that returns a scalar (e.g. MVT::f32) or packed value
+/// (e.g. MVT::v4f32).  When this is called, we know that PackedVT is the right
 /// type for the result.
 SDOperand SelectionDAGLegalize::PackVectorOp(SDOperand Op, 
  MVT::ValueType NewVT) {


Index: llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
diff -u llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp:1.120 
llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp:1.121
--- llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp:1.120  Thu Jun 21 
09:42:22 2007
+++ llvm/lib/CodeGen/SelectionDAG/TargetLowering.cppThu Jun 21 09:48:26 2007
@@ -243,10 +243,10 @@
 else
   TransformToType[(MVT::ValueType)IntReg] = (MVT::ValueType)IntReg;
 
-  // If the target does not have native F64 support, expand it to I64. We will
+  // If the target does not have native f64 support, expand it to i64. We will
   // be generating soft float library calls. If the target does not have native
-  // support for F32, promote it to F64 if it is legal. Otherwise, expand it to
-  // I32.
+  // support for f32, promote it to f64 if it is legal. Otherwise, expand it to
+  // i32.
   if (isTypeLegal(MVT::f64))
 TransformToType[MVT::f64] = MVT::f64;  
   else {



___
llvm-commits mailing list
llvm-commits@cs.uiuc.edu
http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits


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

2007-01-31 Thread Evan Cheng


Changes in directory llvm/lib/CodeGen/SelectionDAG:

LegalizeDAG.cpp updated: 1.462 - 1.463
TargetLowering.cpp updated: 1.86 - 1.87
---
Log message:

Allow the target to override the ISD::CondCode that's to be used to test the
result of the comparison libcall against zero.


---
Diffs of the changes:  (+29 -18)

 LegalizeDAG.cpp|   22 --
 TargetLowering.cpp |   25 +
 2 files changed, 29 insertions(+), 18 deletions(-)


Index: llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
diff -u llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:1.462 
llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:1.463
--- llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:1.462 Mon Jan 29 16:58:52 2007
+++ llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp   Wed Jan 31 03:29:11 2007
@@ -3604,72 +3604,58 @@
 if (VT == MVT::f32 || VT == MVT::f64) {
   // Expand into one or more soft-fp libcall(s).
   RTLIB::Libcall LC1, LC2 = RTLIB::UNKNOWN_LIBCALL;
-  ISD::CondCode CC1, CC2 = ISD::SETCC_INVALID;
   switch (castCondCodeSDNode(CC)-get()) {
   case ISD::SETEQ:
   case ISD::SETOEQ:
 LC1 = (VT == MVT::f32) ? RTLIB::OEQ_F32 : RTLIB::OEQ_F64;
-CC1 = ISD::SETEQ;
 break;
   case ISD::SETNE:
   case ISD::SETUNE:
 LC1 = (VT == MVT::f32) ? RTLIB::UNE_F32 : RTLIB::UNE_F64;
-CC1 = ISD::SETNE;
 break;
   case ISD::SETGE:
   case ISD::SETOGE:
 LC1 = (VT == MVT::f32) ? RTLIB::OGE_F32 : RTLIB::OGE_F64;
-CC1 = ISD::SETGE;
 break;
   case ISD::SETLT:
   case ISD::SETOLT:
 LC1 = (VT == MVT::f32) ? RTLIB::OLT_F32 : RTLIB::OLT_F64;
-CC1 = ISD::SETLT;
 break;
   case ISD::SETLE:
   case ISD::SETOLE:
 LC1 = (VT == MVT::f32) ? RTLIB::OLE_F32 : RTLIB::OLE_F64;
-CC1 = ISD::SETLE;
 break;
   case ISD::SETGT:
   case ISD::SETOGT:
 LC1 = (VT == MVT::f32) ? RTLIB::OGT_F32 : RTLIB::OGT_F64;
-CC1 = ISD::SETGT;
 break;
   case ISD::SETUO:
+LC1 = (VT == MVT::f32) ? RTLIB::UO_F32 : RTLIB::UO_F64;
+break;
   case ISD::SETO:
 LC1 = (VT == MVT::f32) ? RTLIB::UO_F32 : RTLIB::UO_F64;
-CC1 = castCondCodeSDNode(CC)-get() == ISD::SETO
-  ? ISD::SETEQ : ISD::SETNE;
 break;
   default:
 LC1 = (VT == MVT::f32) ? RTLIB::UO_F32 : RTLIB::UO_F64;
-CC1 = ISD::SETNE;
 switch (castCondCodeSDNode(CC)-get()) {
 case ISD::SETONE:
   // SETONE = SETOLT | SETOGT
   LC1 = (VT == MVT::f32) ? RTLIB::OLT_F32 : RTLIB::OLT_F64;
-  CC1 = ISD::SETLT;
   // Fallthrough
 case ISD::SETUGT:
   LC2 = (VT == MVT::f32) ? RTLIB::OGT_F32 : RTLIB::OGT_F64;
-  CC2 = ISD::SETGT;
   break;
 case ISD::SETUGE:
   LC2 = (VT == MVT::f32) ? RTLIB::OGE_F32 : RTLIB::OGE_F64;
-  CC2 = ISD::SETGE;
   break;
 case ISD::SETULT:
   LC2 = (VT == MVT::f32) ? RTLIB::OLT_F32 : RTLIB::OLT_F64;
-  CC2 = ISD::SETLT;
   break;
 case ISD::SETULE:
   LC2 = (VT == MVT::f32) ? RTLIB::OLE_F32 : RTLIB::OLE_F64;
-  CC2 = ISD::SETLE;
   break;
 case ISD::SETUEQ:
   LC2 = (VT == MVT::f32) ? RTLIB::OEQ_F32 : RTLIB::OEQ_F64;
-  CC2 = ISD::SETEQ;
   break;
 default: assert(0  Unsupported FP setcc!);
 }
@@ -3680,14 +3666,14 @@
DAG.getNode(ISD::MERGE_VALUES, VT, LHS, RHS).Val, 
false /*sign irrelevant*/, Dummy);
   Tmp2 = DAG.getConstant(0, MVT::i32);
-  CC = DAG.getCondCode(CC1);
+  CC = DAG.getCondCode(TLI.getCmpLibcallCC(LC1));
   if (LC2 != RTLIB::UNKNOWN_LIBCALL) {
 Tmp1 = DAG.getNode(ISD::SETCC, TLI.getSetCCResultTy(), Tmp1, Tmp2, CC);
 LHS = ExpandLibCall(TLI.getLibcallName(LC2),
 DAG.getNode(ISD::MERGE_VALUES, VT, LHS, RHS).Val, 
 false /*sign irrelevant*/, Dummy);
 Tmp2 = DAG.getNode(ISD::SETCC, TLI.getSetCCResultTy(), LHS, Tmp2,
-   DAG.getCondCode(CC2));
+   DAG.getCondCode(TLI.getCmpLibcallCC(LC2)));
 Tmp1 = DAG.getNode(ISD::OR, Tmp1.getValueType(), Tmp1, Tmp2);
 Tmp2 = SDOperand();
   }


Index: llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
diff -u llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp:1.86 
llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp:1.87
--- llvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp:1.86   Fri Jan 12 
17:30:31 2007
+++ llvm/lib/CodeGen/SelectionDAG/TargetLowering.cppWed Jan 31 03:29:11 2007
@@ -94,6 +94,30 @@
   Names[RTLIB::OGT_F64] = __gtdf2;
   Names[RTLIB::UO_F32] = __unordsf2;
   Names[RTLIB::UO_F64] = __unorddf2;
+  Names[RTLIB::O_F32] = __unordsf2;
+  Names[RTLIB::O_F64] = __unorddf2;
+}
+
+/// InitCmpLibcallCCs - Set default comparison 

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

2007-01-11 Thread Evan Cheng


Changes in directory llvm/lib/CodeGen/SelectionDAG:

LegalizeDAG.cpp updated: 1.454 - 1.455
TargetLowering.cpp updated: 1.83 - 1.84
---
Log message:

Store default libgcc routine names and allow them to be redefined by target.

---
Diffs of the changes:  (+205 -82)

 LegalizeDAG.cpp|  210 -
 TargetLowering.cpp |   77 +++
 2 files changed, 205 insertions(+), 82 deletions(-)


Index: llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
diff -u llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:1.454 
llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:1.455
--- llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp:1.454 Fri Jan  5 17:33:44 2007
+++ llvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp   Thu Jan 11 20:11:51 2007
@@ -2284,11 +2284,11 @@
 default:  assert(0  Do not know how to expand this integer BinOp!);
 case ISD::UDIV:
 case ISD::SDIV:
-  const char *FnName = Node-getOpcode() == ISD::UDIV
-? __udivsi3 : __divsi3;
+  RTLIB::Libcall LC = Node-getOpcode() == ISD::UDIV
+? RTLIB::UDIV_I32 : RTLIB::SDIV_I32;
   SDOperand Dummy;
   bool isSigned = Node-getOpcode() == ISD::SDIV;
-  Result = ExpandLibCall(FnName, Node, isSigned, Dummy);
+  Result = ExpandLibCall(TLI.getLibcallName(LC), Node, isSigned, 
Dummy);
 };
 break;
   }
@@ -2470,16 +2470,18 @@
 } else {
   assert(Node-getValueType(0) == MVT::i32 
  Cannot expand this binary operator!);
-  const char *FnName = Node-getOpcode() == ISD::UREM
-? __umodsi3 : __modsi3;
+  RTLIB::Libcall LC = Node-getOpcode() == ISD::UREM
+? RTLIB::UREM_I32 : RTLIB::SREM_I32;
   SDOperand Dummy;
-  Result = ExpandLibCall(FnName, Node, isSigned, Dummy);
+  Result = ExpandLibCall(TLI.getLibcallName(LC), Node, isSigned, 
Dummy);
 }
   } else {
 // Floating point mod - fmod libcall.
-const char *FnName = Node-getValueType(0) == MVT::f32 ? 
fmodf:fmod;
+RTLIB::Libcall LC = Node-getValueType(0) == MVT::f32
+  ? RTLIB::REM_F32 : RTLIB::REM_F64;
 SDOperand Dummy;
-Result = ExpandLibCall(FnName, Node, false/*sign irrelevant*/, Dummy);
+Result = ExpandLibCall(TLI.getLibcallName(LC), Node,
+   false/*sign irrelevant*/, Dummy);
   }
   break;
 }
@@ -2720,15 +2722,22 @@
   case ISD::FSIN:
   case ISD::FCOS: {
 MVT::ValueType VT = Node-getValueType(0);
-const char *FnName = 0;
+RTLIB::Libcall LC = RTLIB::UNKNOWN_LIBCALL;
 switch(Node-getOpcode()) {
-case ISD::FSQRT: FnName = VT == MVT::f32 ? sqrtf : sqrt; break;
-case ISD::FSIN:  FnName = VT == MVT::f32 ? sinf  : sin; break;
-case ISD::FCOS:  FnName = VT == MVT::f32 ? cosf  : cos; break;
+case ISD::FSQRT:
+  LC = VT == MVT::f32 ? RTLIB::SQRT_F32 : RTLIB::SQRT_F64;
+  break;
+case ISD::FSIN:
+  LC = VT == MVT::f32 ? RTLIB::SIN_F32 : RTLIB::SIN_F64;
+  break;
+case ISD::FCOS:
+  LC = VT == MVT::f32 ? RTLIB::COS_F32 : RTLIB::COS_F64;
+  break;
 default: assert(0  Unreachable!);
 }
 SDOperand Dummy;
-Result = ExpandLibCall(FnName, Node, false/*sign irrelevant*/, Dummy);
+Result = ExpandLibCall(TLI.getLibcallName(LC), Node,
+   false/*sign irrelevant*/, Dummy);
 break;
   }
   }
@@ -2737,10 +2746,11 @@
 break;
   case ISD::FPOWI: {
 // We always lower FPOWI into a libcall.  No target support it yet.
-const char *FnName = Node-getValueType(0) == MVT::f32
-? __powisf2 : __powidf2;
+RTLIB::Libcall LC = Node-getValueType(0) == MVT::f32
+  ? RTLIB::POWI_F32 : RTLIB::POWI_F64;
 SDOperand Dummy;
-Result = ExpandLibCall(FnName, Node, false/*sign irrelevant*/, Dummy);
+Result = ExpandLibCall(TLI.getLibcallName(LC), Node,
+   false/*sign irrelevant*/, Dummy);
 break;
   }
   case ISD::BIT_CONVERT:
@@ -2909,24 +2919,29 @@
 case Expand: {
   // Convert f32 / f64 to i32 / i64.
   MVT::ValueType VT = Op.getValueType();
-  const char *FnName = 0;
+  RTLIB::Libcall LC = RTLIB::UNKNOWN_LIBCALL;
   switch (Node-getOpcode()) {
   case ISD::FP_TO_SINT:
 if (Node-getOperand(0).getValueType() == MVT::f32)
-  FnName = (VT == MVT::i32) ? __fixsfsi : __fixsfdi;
+  LC = (VT == MVT::i32)
+? RTLIB::FPTOSINT_F32_I32 : RTLIB::FPTOSINT_F32_I64;
 else
-  FnName = (VT == MVT::i32) ? __fixdfsi : __fixdfdi;
+  LC = (VT == MVT::i32)
+? RTLIB::FPTOSINT_F64_I32 : RTLIB::FPTOSINT_F64_I64;
 break;
   case ISD::FP_TO_UINT:
 if (Node-getOperand(0).getValueType() == MVT::f32)
-  FnName = (VT