================
@@ -352,6 +352,9 @@ bool CodeGenModule::shouldUseLLVMABILowering(unsigned 
CallingConv) const {
   if (T.isBPF())
     return true;
 
+  if (T.getArch() == llvm::Triple::aarch64 && !T.isOSWindows())
----------------
DavidTruby wrote:

Is there a specific reason to limit this to non-Windows targets? 
The PCS is _almost_ exactly the same for Arm on Windows as on Linux; the only 
difference is at the C++ level[1] so I think wouldn't be accounted for by this 
library anyway; it might not be necessary to even have a separate Windows 
AArch64ABIKind (we don't in Flang). 

1. the Windows ABI is stricter about what it considers an HFA; it does not 
consider a type an HFA if it is not an aggregate type as per the C++ standard, 
whereas on e.g. Linux we only care about the actual layout of the type. I doubt 
we have the information to determine if it's a C++ aggregate type at this level 
anyway so presumably that will still need to be being done in clang?

https://github.com/llvm/llvm-project/pull/216437
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to