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 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits