Displaying 6 results from an estimated 6 matches for "getfplibcall".
2009 Apr 08
2
[LLVMdev] LegalizeFloatType:ExpandFloatRes_FADD
I'm looking at the Legalize code and in 2.5 the above function is:
void DAGTypeLegalizer::ExpandFloatRes_FADD(SDNode *N, SDValue &Lo,
SDValue &Hi) {
SDValue Call = LibCallify(GetFPLibCall(N->getValueType(0),
RTLIB::ADD_F32, RTLIB::ADD_F64,
RTLIB::ADD_F80,
RTLIB::ADD_PPCF128),
N, false);
assert(Call.getNode()->getOpcode() == ISD::BUILD_PAIR &&
&q...
2009 May 21
0
[LLVMdev] [PATCH] Add new phase to legalization to handle vector operations
On Wed, May 20, 2009 at 4:55 PM, Dan Gohman <gohman at apple.com> wrote:
> Can you explain why you chose the approach of using a new pass?
> I pictured removing LegalizeDAG's type legalization code would
> mostly consist of finding all the places that use TLI.getTypeAction
> and just deleting code for handling its Expand and Promote. Are you
> anticipating something more
2009 May 20
2
[LLVMdev] [PATCH] Add new phase to legalization to handle vector operations
On May 20, 2009, at 1:34 PM, Eli Friedman wrote:
> On Wed, May 20, 2009 at 1:19 PM, Eli Friedman
> <eli.friedman at gmail.com> wrote:
>
>> Per subject, this patch adding an additional pass to handle vector
>>
>> operations; the idea is that this allows removing the code from
>>
>> LegalizeDAG that handles illegal types, which should be a significant
2009 May 21
2
[LLVMdev] [PATCH] Add new phase to legalization to handle vector operations
...:
- case ISD::ROTR:
- Scalars.push_back(DAG.getNode(Op.getOpcode(), dl, EltVT, Operands[0],
- DAG.getShiftAmountOperand(Operands[1])));
- break;
- }
- }
-
- return DAG.getNode(ISD::BUILD_VECTOR, dl, VT, &Scalars[0], Scalars.size());
-}
-
/// GetFPLibCall - Return the right libcall for the given floating point type.
static RTLIB::Libcall GetFPLibCall(MVT VT,
RTLIB::Libcall Call_F32,
@@ -985,21 +722,14 @@
if (Op.getOpcode() == ISD::TargetConstant) // Allow illegal target nodes.
return Op;
- assert(isTyp...
2009 Sep 29
2
[LLVMdev] SoftenSetCCOpernads in LegalizeFloatTypes.cpp
While generating a libcall from floating point comparison, it always
assumes that the return type of those libcalls is i32.
Why not allow Targets to provide the correct return type?
EVT RetVT = MVT::i32; // <-- here
SDValue Ops[2] = { LHSInt, RHSInt };
NewLHS = MakeLibCall(LC1, RetVT, Ops, 2, false/*sign irrelevant*/, dl);
NewRHS = DAG.getConstant(0, RetVT);
CCCode =
2009 Sep 29
0
[LLVMdev] SoftenSetCCOpernads in LegalizeFloatTypes.cpp
...false/*sign irrelevant*/, dl);
> NewRHS = DAG.getConstant(0, RetVT);
> CCCode = TLI.getCmpLibcallCC(LC1);
>
>
> I suggest to have a hook TLI.getCmpLibcallRT() on the lines of
> TLI.getCmpLibcallCC()
>
> Does that sound okay?
I think it should just use a scheme like GetFPLibCall.
Ciao,
Duncan.