[PATCH] D134688: MSVC AArch64 ABI: Homogeneous aggregates

Reid Kleckner via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Tue Sep 27 14:34:43 PDT 2022


rnk added a comment.

Nice! Mostly comment copy edits.



================
Comment at: clang/lib/CodeGen/MicrosoftCXXABI.cpp:4478-4480
   // MSVC Windows on Arm64 considers a type not HFA if it is not an
   // aggregate according to the C++14 spec. This is not consistent with the
   // AAPCS64, but is defacto spec on that platform.
----------------
These comments seem stale. Are the checks below almost equivalent to C++14 isAggregate? In any case, they associate with the logic below, which is arm-specific.

The arm check deserves some kind of comment to say that all aggregates are permitted to be HFAs for non-ARM platforms, which mostly affects vectorcall on x64/x86.


================
Comment at: clang/lib/CodeGen/MicrosoftCXXABI.cpp:4498
+  // anything containing/derived from one is non-homogeneous.
+  // Instnead we could add another CXXABI entry point to query this property and
+  // have ABIInfo::isHomogeneousAggregate use that property.
----------------
typo Instnead


================
Comment at: clang/lib/CodeGen/MicrosoftCXXABI.cpp:4501-4503
+  // base/field while not true of the outer struct (eg: if you have a base/field
+  // that has an non-trivial copy assignment/dtor/default ctor, then the outer
+  // struct's corresponding operation must be non-trivial.
----------------
There's an open parenthetical here, maybe just make it `. For example, if you have...`


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D134688



More information about the cfe-commits mailing list