[llvm-commits] [llvm-gcc-4.2] r86892 - /llvm-gcc-4.2/trunk/gcc/llvm-abi.h
Rafael Espindola
espindola at google.com
Fri Dec 11 14:02:04 PST 2009
> 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.
Cheers,
--
Rafael Ávila de Espíndola
More information about the llvm-commits
mailing list