[PATCH] D115199: [X86][AMX] Support amxpreserve attribute in clang.

Aaron Ballman via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Mon Dec 13 07:37:02 PST 2021


aaron.ballman added a comment.

I'm worried about the extra overhead imposed on all users by this change. This appears to be adding another calling convention to Clang (despite the claim that it's not); can you share a motivation for why everyone should pay the price for adding it?



================
Comment at: clang/include/clang/AST/Type.h:1588
     /// regparm and the calling convention.
-    unsigned ExtInfo : 13;
+    unsigned ExtInfo : 14;
 
----------------
This is problematic because it increases the cost of forming a type.


================
Comment at: clang/include/clang/AST/Type.h:1826
                                canon.isNull() ? QualType(this_(), 0) : canon) {
-    static_assert(sizeof(*this) <= 8 + sizeof(ExtQualsTypeCommonBase),
+    static_assert(sizeof(*this) <= 16 + sizeof(ExtQualsTypeCommonBase),
                   "changing bitfields changed sizeof(Type)!");
----------------
(From comment above) this means that every type is now more expensive to create and that has cascading effects on things like template instantiation depth and memory pressures for all users, including people not using this feature.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D115199/new/

https://reviews.llvm.org/D115199



More information about the cfe-commits mailing list