[LLVMdev] LegalizeFloatType:ExpandFloatRes_FADD

Villmow, Micah Micah.Villmow at amd.com
Wed Apr 8 11:25:42 PDT 2009


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 &&

         "Call lowered wrongly!");

  Lo = Call.getOperand(0); Hi = Call.getOperand(1);

}

 

But in 2.4 the function was:

void DAGTypeLegalizer::ExpandFloatRes_FADD(SDNode *N, SDValue &Lo,

                                           SDValue &Hi) {

  SDValue Ops[2] = { N->getOperand(0), N->getOperand(1) };

  SDValue Call = MakeLibCall(GetFPLibCall(N->getValueType(0),

                                            RTLIB::ADD_F32,

                                            RTLIB::ADD_F64,

                                            RTLIB::ADD_F80,

                                            RTLIB::ADD_PPCF128),

                               N->getValueType(0), Ops, 2,

                               false);

  assert(Call.getNode()->getOpcode() == ISD::BUILD_PAIR && "Call lowered
wrongly!");

  Lo = Call.getOperand(0); Hi = Call.getOperand(1);

}

It seems to me that it was switched from a binary function expansion to
a unary function expansion.

Is my understanding of this correct? If not what is this section of code
support to do?

 

Thanks,

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20090408/954db375/attachment.html>


More information about the llvm-dev mailing list