[PATCH] D54425: [AArch64] Add aarch64_vector_pcs function attribute to Clang

John McCall via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu Nov 15 15:09:34 PST 2018


rjmccall added inline comments.


================
Comment at: include/clang/Basic/AttrDocs.td:1749-1750
+On 64-bit ARM targets, this argument causes the function to obey the vector
+procedural call standard (VPCS) rules as described in the Vector ABI for
+AArch64. In particular, the register caller/callee saves ratio is set to 16/16.
+  }];
----------------
aaron.ballman wrote:
> If you can add a link to the vector ABI here, or to something that gives more detail about the ABI, that'd be great.
Describing this in terms of the "caller/callee saves ratio" is pretty obscure for most users.  As Aaron suggestions, it's good include a link to the detailed documentation for people who want to know *exactly* what this means.  For everyone else, your goal is to convince them to use your attribute in appropriate situations, so you should frame the documentation in those terms.  Try this as a starting point:

> Functions declared with this calling convention preserve additional floating-point and vector registers relative to the standard C convention, which makes it more efficient to call such functions within complex floating-point and vector calculations.  However, this also makes it more expensive to call a standard C function within such a function.  Therefore, it is recommended that this attribute be used on "leaf" functions that are likely to be used by code performing floating-point and vector calculations but that don't need to use any functions not declared with this attribute.


https://reviews.llvm.org/D54425





More information about the cfe-commits mailing list