[LLVMdev] c char translated to i8 signext
Ryan M. Lefever
lefever at crhc.uiuc.edu
Wed Apr 30 12:44:51 PDT 2008
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?
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
More information about the llvm-dev
mailing list