[clang] [Clang] Amend SME attributes with support for ZT0. (PR #77941)

Aaron Ballman via cfe-commits cfe-commits at lists.llvm.org
Tue Jan 16 08:28:02 PST 2024


================
@@ -4253,7 +4260,7 @@ class FunctionProtoType final
     FunctionType::ExtInfo ExtInfo;
     unsigned Variadic : 1;
     unsigned HasTrailingReturn : 1;
-    unsigned AArch64SMEAttributes : 6;
----------------
AaronBallman wrote:

<General Concern>
Looking through the review which started introducing SME attributes, we went to pretty big lengths to try to keep that at zero-cost by figuring out the upper bounds. Now we're looking to expand those upper bounds because they were insufficient less than six months later.

So I'm also concerned about the extra memory pressures this adds because those pressures impact everyone, not just folks targeting AArch64 with these SME attributes. If we have to increase that pressure because this is needed functionality, I think it seems like the cost should be borne by the users using the new functionality instead of impacting everyone.
</General Concern>

That said, `ExtInfo` and `FunctionTypeExtraBitfields` are the ones that needs to stay small; `ExtProtoInfo` is already huge thanks to `ExceptionSpecInfo` being 48 bytes. IIRC, `ExtProtoInfo` is allocated as-needed and so it can grow.

https://github.com/llvm/llvm-project/pull/77941


More information about the cfe-commits mailing list