[llvm-commits] [llvm-gcc][arm][patch] Lower function signatures a bit more

Sandeep Patel deeppatel1987 at gmail.com
Thu Sep 9 23:02:55 PDT 2010


On Fri, Sep 10, 2010 at 3:23 AM, Rafael Espindola <espindola at google.com> wrote:
>> FSF GCC (DragonEgg) has an__attribute__((pcs("aapcs-vfp"))) that could
>> give you a hard float function without TARGET_HARD_FLOAT_ABI being
>> set. I haven't yet added this attribute to llvm-gcc or clang yet until
>> there's a clear need.
>
> I don't see that being used in any part of llvm-arm.cpp, for example,
>
> bool llvm_arm_should_pass_or_return_aggregate_in_regs(tree TreeType,
>                                                      CallingConv::ID &CC) {
>  // Homogeneous aggregates are an AAPCS-VFP feature.
>  if ((CC != CallingConv::ARM_AAPCS_VFP) ||
>      !(TARGET_AAPCS_BASED && TARGET_VFP && TARGET_HARD_FLOAT_ABI))
>    return false;
>
> So checking  TARGET_HARD_FLOAT_ABI is probably consistent with what
> the rest of the file does right now.

Correct, as I said, I haven't ported this feature over, but you should
be aware of it.

> I don't see gcc/testsuite/gcc.target/arm/aapcs in llvm-gcc, only in
> vanilla gcc...

Correct. But if you want to test hard float, that's the only publicly
available test suite. I asked ARM and they have nothing to offer here
to help.

deep




More information about the llvm-commits mailing list