[llvm-commits] calling convention support for ARM AAPCS VFP "homogenous aggregates"

Bob Wilson bob.wilson at apple.com
Thu Aug 13 22:27:14 PDT 2009


Sandeep,

This looks pretty good to me.  I have some minor comments that I will  
try to collect in the next day or two.  I think you should split this  
up a bit, though.  Having seen the motivation for making the CC  
available in more contexts, it would be good to submit that as a  
separate patch.  I.E., one patch for parts 2 and 3 from your list.

The change to use CallingConv::ID should be reviewed by someone more  
familiar with llvm-gcc.  It looks to me like someone intentionally  
decided to use "unsigned" to avoid pulling in the header file for  
CallingConv::ID, and now you're changing that decision.

On Aug 5, 2009, at 3:15 AM, Sandeep Patel wrote:

> Attached is a patch to llvm-gcc to implement passing of homogenous
> aggregates via FP registers per the ARM AAPCS VFP variant (a.k.a. hard
> float).
>
> 1. The patch uses CallingConv::ID consistently instead of unsigned to
> hold the CC.
> 2. The patch keeps track of the CC in all DefaultABIClient subclasses.
> 3. The patch passes the CC into
> LLVM_SHOULD_PASS_AGGREGATE_IN_MIXED_REGS and
> LLVM_AGGREGATE_PARTIALLY_PASSED_IN_REGS.
> 4. The patch implements both macros in the ARM backend according to
> the rules of the AAPCS spec.
>
> Note: no code was imported to implement this. The structure of
> vfp_arg_homogenous_aggregate_p was originally taken from the i386
> classify_argument() function.
>
> deep
> <deep-gcc-hard-float- 
> homogeneous.diff>_______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits




More information about the llvm-commits mailing list