https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107187
Bug ID: 107187
Summary: [feature request] Add `trivial_abi` attribute
Product: gcc
Version: unknown
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: nikolasklauser at berlin dot de
Target Milestone: ---
This attribute is implemented by clang. It changes the calling convention of
non-trivial class types to be trivial for the purpose of calls (with some
caveats). libc++ has used it in the unstable ABI for some time now, and we'd
like to use it for new types in the stable ABI too, since it can improve
performance dramatically. I'm sure libstdc++ (and other libraries) will find it
useful too.
See https://quuxplusone.github.io/blog/2018/05/02/trivial-abi-101/ for a more
detailed explanation of it's benefits and drawbacks and
https://clang.llvm.org/docs/AttributeReference.html#trivial-abi for the clang
documentation.