[LLVMdev] Troubling promotion of return value to Integer ...

Chris Lattner sabre at nondot.org
Thu Jun 5 23:44:04 PDT 2008


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



More information about the llvm-dev mailing list