================ @@ -4253,7 +4260,7 @@ class FunctionProtoType final FunctionType::ExtInfo ExtInfo; unsigned Variadic : 1; unsigned HasTrailingReturn : 1; - unsigned AArch64SMEAttributes : 6; ---------------- sdesmalen-arm wrote:
Thanks for both your input! The Arm attributes will probably be used reasonably sparsely in the sense that they particularly target code to optimise using SME intrinsics/state. By not adding the attribute it will be a normal function that does not share any SME state. So I agree it makes sense to refactor the code a bit such that these attributes don't affect code that does not use any of these attributes. I've created #78424 to do this, so that the Arm SME attributes will have their own TrailingObject and are therefore only allocated when a function uses the attributes. I hope that addresses the concerns! (When that patch lands, I'll rebase this one) It will be more difficult to do something for ExtProtoInfo, given how this is designed, but as @AaronBallman says the struct is already huge and is allocated as-needed. My experiment showed that adding more bits didn't make a practical difference to the size of the ExtProtoInfo. Not sure if this can differ between compilers, but I didn't see it expanding the struct by a byte. https://github.com/llvm/llvm-project/pull/77941 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits