Evan Cheng
2008-Jun-06 06:33 UTC
[LLVMdev] Troubling promotion of return value to Integer ...
On Jun 4, 2008, at 11:12 AM, Chris Lattner wrote:> > On Jun 4, 2008, at 10:52 AM, Evan Cheng wrote: > >> >> On May 29, 2008, at 10:30 AM, Alireza.Moshtaghi at microchip.com wrote: >>> >>> >>> 4) There will be 4 new function attributes: >>> sign_ext_from_i8, sign_ext_from_i16 >>> zero_ext_from_i8, zero_ext_from_i16 >>> These attributes will be placed on the function CALL node by >>> front-end >>> to inform the backend about such promotions and enable optimization >>> of >>> return value. This should be sufficient for direct and indirect >>> call. >>> (syntax of these attributes to be defined) >> >> Should we go one step further and provide an attribute whose value is >> the "original type" before the extension? > > What would that mean? Can you give an example?Well, you suggested sext / zext from i8 / i16. Why not from i1 (useful for denoting boolean type) or any arbitrary type? Evan> > > -Chris > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
Chris Lattner
2008-Jun-06 06:44 UTC
[LLVMdev] Troubling promotion of return value to Integer ...
On Jun 5, 2008, at 11:33 PM, Evan Cheng wrote:> On Jun 4, 2008, at 11:12 AM, Chris Lattner wrote: >> n Jun 4, 2008, at 10:52 AM, Evan Cheng wrote: >>> >>> On May 29, 2008, at 10:30 AM, Alireza.Moshtaghi at microchip.com wrote: >>>> >>>> >>>> 4) There will be 4 new function attributes: >>>> sign_ext_from_i8, sign_ext_from_i16 >>>> zero_ext_from_i8, zero_ext_from_i16 >>>> These attributes will be placed on the function CALL node by >>>> front-end >>>> to inform the backend about such promotions and enable optimization >>>> of >>>> return value. This should be sufficient for direct and indirect >>>> call. >>>> (syntax of these attributes to be defined) >>> >>> Should we go one step further and provide an attribute whose value >>> is >>> the "original type" before the extension? >> >> What would that mean? Can you give an example? > > Well, you suggested sext / zext from i8 / i16. Why not from i1 (useful > for denoting boolean type) or any arbitrary type?Are you suggesting adding 'sign_ext_from_i1' and 'zero_ext_from_i1' attributes? I'd be fine with that. It would also solve some existing code quality issues we have. -Chris
Evan Cheng
2008-Jun-06 07:04 UTC
[LLVMdev] Troubling promotion of return value to Integer ...
On Jun 5, 2008, at 11:44 PM, Chris Lattner wrote:> On Jun 5, 2008, at 11:33 PM, Evan Cheng wrote: >> On Jun 4, 2008, at 11:12 AM, Chris Lattner wrote: >>> n Jun 4, 2008, at 10:52 AM, Evan Cheng wrote: >>>> >>>> On May 29, 2008, at 10:30 AM, Alireza.Moshtaghi at microchip.com >>>> wrote: >>>>> >>>>> >>>>> 4) There will be 4 new function attributes: >>>>> sign_ext_from_i8, sign_ext_from_i16 >>>>> zero_ext_from_i8, zero_ext_from_i16 >>>>> These attributes will be placed on the function CALL node by >>>>> front-end >>>>> to inform the backend about such promotions and enable >>>>> optimization >>>>> of >>>>> return value. This should be sufficient for direct and indirect >>>>> call. >>>>> (syntax of these attributes to be defined) >>>> >>>> Should we go one step further and provide an attribute whose value >>>> is >>>> the "original type" before the extension? >>> >>> What would that mean? Can you give an example? >> >> Well, you suggested sext / zext from i8 / i16. Why not from i1 >> (useful >> for denoting boolean type) or any arbitrary type? > > Are you suggesting adding 'sign_ext_from_i1' and 'zero_ext_from_i1' > attributes? I'd be fine with that. It would also solve some existing > code quality issues we have.These will be useful. But is it possible to be more generic? sext_from type where type can be any type? The value of the attribute would somehow tells us the type before extension? Evan> > > -Chris > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
Maybe Matching Threads
- [LLVMdev] Troubling promotion of return value to Integer ...
- [LLVMdev] Troubling promotion of return value to Integer ...
- [LLVMdev] Troubling promotion of return value to Integer ...
- [LLVMdev] promotion of return value.
- [LLVMdev] Troubling promotion of return value to Integer ...