[LLVMdev] SoftenSetCCOpernads in LegalizeFloatTypes.cpp

Sanjiv Gupta sanjiv.gupta at microchip.com
Fri Dec 25 09:16:08 PST 2009


On Mon, 2009-10-05 at 16:54 -0700, Eli Friedman wrote:
> On Mon, Oct 5, 2009 at 11:11 AM, Sanjiv Gupta 
> <sanjiv.gupta at microchip.com> wrote: 
> > Sanjiv Gupta wrote: 
> >> Sanjiv Gupta wrote: 
> >> 
> >>> Duncan Sands wrote: 
> >>> 
> >>> 
> >>>> Hi Sanjiv, I think a lot of the softening code assumes you are
> dealing 
> >>>> with float (32 bits).  So it's not just a matter of changing the
> libcall 
> >>>> return type. 
> >>>> 
> >>>> 
> >>>> 
> >>> Yes, we are dealing with 32-bits only. But why the cmp libcalls
> have to 
> >>> return a 32-bit value. 
> >>> e.g. Our libcall for comparing two floats is 
> >>> 
> >>>   char _eq_f32 (float a, float b); 
> >>> 
> >>> rather than 
> >>> 
> >>>   long _eq_f32 (float a, float b); 
> >>> 
> >>> 
> >>> - Sanjiv 
> >>> 
> >>> 
> >> Why not use TLI.getSetCCResultType () ? 
> >> 
> >> - Sanjiv 
> >> 
> >> 
> > Duncan, 
> > Any thoughts ? 
> > Or am I missing something very obvious here?
> 
> getSetCCResultType has nothing to do with the result of a libcall;
> for 
> example, on x86 it's i8 even though any libcalls like that will
> return 
> an i32.  You really need a separate method.
> 
> -Eli
> 

Attached a patch for adding the said method. I was off the trunk for a
while so it took longer.

- Sanjiv
-------------- next part --------------
A non-text attachment was scrubbed...
Name: CmpLibcallRetType.diff
Type: text/x-patch
Size: 2199 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20091225/b03cbf22/attachment.bin>


More information about the llvm-dev mailing list