[llvm-commits] [llvm-gcc-4.2] r86892 - /llvm-gcc-4.2/trunk/gcc/llvm-abi.h
Bob Wilson
bob.wilson at apple.com
Fri Dec 11 16:14:33 PST 2009
On Dec 11, 2009, at 2:02 PM, Rafael Espindola wrote:
>> I don't know.
>>
>> Honestly, I think those choices may be the least of your worries. If llvm-gcc is going to figure out exactly how each argument will be passed, there are a lot of details to get right. If you can come up with something that works with APCS, AAPCS, and AAPCS-hardfloat, preferably both big- and little-endian (watch out for structure padding differences with those), and passes the GCC ABI compatibility testsuite, I don't much care how you do it.
>>
>> If I don't get pulled into other work, I'll probably go ahead with the "byval" implementation. That would at least give you a baseline to compare against.
>
> Just to be explicit, the above case with a char[5] should expand to
>
> %struct.foo_part = type { i8 }
> declare arm_aapcscc void @f(i32, i32, i32, i32, %struct.foo_part* byval)
>
> I am happy to do as much testing as needed, but I will try to fix just
> pr5406 first.
>
> Can you provide some details on how do I run the "GCC ABI
> compatibility testsuite" for APCS, AAPCS, and AAPCS-hardfloat? I will
> make sure I don't introduce a regression on it.
See llvm-gcc-4.2/gcc/testsuite/README.compat.
More information about the llvm-commits
mailing list