[LLVMdev] problem with function arguments in ARM EABI

Evan Cheng evan.cheng at apple.com
Fri Feb 9 15:11:36 PST 2007


On Feb 9, 2007, at 2:50 PM, Evan Cheng wrote:

> I am ok with adding an attribute but don't like to add two of them as
> you've described. I don't think you need the "sequential piece ID" to
> deal with this issue, no? You just need a little extra bookkeeping in
> the target lowering code.
>
> Alternatively, you can use a "original alignment" attribute (i.e.
> alignment of unexpanded argument). That would be a 5-bit attribute.

I think this will work quite well. Add the alignment info to the  
first expanded node and the target lowering code should be able to  
handle the rest. Seems nice and clean.

Evan
>
> Chris, got a better idea?
>
> Evan
>
> On Feb 9, 2007, at 1:57 PM, Lauro Ramos Venancio wrote:
>
>>>
>>> Yes, you need to override both LowerArguments and LowerCallTo.  
>>> All of
>>> the current targets / abi's use the default implementation in
>>> SelectionDAGISel.cpp But I guess ARM EABI will be the first. :-) As
>>> far as I can see, this is the only clean way to do it.  I expect the
>>> ARM EABI specific implementation will be quite a bit simpler than  
>>> the
>>> default implementation though.
>>>
>>
>> If I override these functions, I would copy a lot of code and change
>> only few lines. I found another solution: adding two items to
>> arguments Flags. Flags[27:24] = number of pieces that an argument was
>> expanded. Flags[31:28] = sequential piece ID.
>>
>> What do you think? May I add these items?
>>
>> Lauro
>> _______________________________________________
>> 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




More information about the llvm-dev mailing list