Sanjiv Gupta
2009-Oct-05 18:11 UTC
[LLVMdev] SoftenSetCCOpernads in LegalizeFloatTypes.cpp
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? - Sanjiv
Eli Friedman
2009-Oct-05 23:54 UTC
[LLVMdev] SoftenSetCCOpernads in LegalizeFloatTypes.cpp
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
Sanjiv Gupta
2009-Dec-25 17:16 UTC
[LLVMdev] SoftenSetCCOpernads in LegalizeFloatTypes.cpp
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>
Possibly Parallel Threads
- [LLVMdev] SoftenSetCCOpernads in LegalizeFloatTypes.cpp
- [LLVMdev] SoftenSetCCOpernads in LegalizeFloatTypes.cpp
- [LLVMdev] SoftenSetCCOpernads in LegalizeFloatTypes.cpp
- [LLVMdev] SoftenSetCCOpernads in LegalizeFloatTypes.cpp
- [LLVMdev] SoftenSetCCOpernads in LegalizeFloatTypes.cpp