search for: getfplibcall

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.