[LLVMdev] c char translated to i8 signext
Chris Lattner
sabre at nondot.org
Wed Apr 30 16:10:01 PDT 2008
On Wed, 30 Apr 2008, Ryan M. Lefever wrote:
> It appears that the only thing that has parameter attributes is the
> function type. However, you can't simply change a function's type
> without reconstructing the whole function, can you? Also, am I correct
> that it would not be safe to remove the parameter attribute's from a
> FunctionType?
Update to llvm 2.2 or mainline, there the attributes are on the function
and call for precisely that reason.
-Chris
> Ryan M. Lefever wrote:
>> Thanks for your response. When I attempt to get the parameter attribute
>> lists for the function and its call sites, the list is NULL. Is there
>> someone else I should be looking to get the parameter attributes?
>>
>> Chris Lattner wrote:
>>> On Wed, 30 Apr 2008, Ryan M. Lefever wrote:
>>>> I have a c function that takes a char as a parameter. When it is
>>>> compiled to bytecode, it gets translated to i8 signext. Why is signext
>>>> getting added to the type? It doesn't get added if the parameter is an
>>>> int. Is there a way to alter the parameter in the c code so that it
>>>> simply gets translated to an i8, or is there a way in LLVM to modify the
>>>> parameter's type?
>>> This is an ABI requirement for your target. You can remove it from the
>>> llvm ir by removing the parameter attribute from the function and calls to
>>> it.
>>>
>>> -Chris
>>>
>> _______________________________________________
>> LLVM Developers mailing list
>> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
-Chris
--
http://nondot.org/sabre/
http://llvm.org/
More information about the llvm-dev
mailing list