================
@@ -486,6 +486,39 @@ ABIArgInfo AArch64ABIInfo::classifyArgumentType(QualType 
Ty, bool IsVariadicFn,
     }
     Size = llvm::alignTo(Size, Alignment);
 
+    // If the Aggregate is made up of pointers, use an array of pointers for 
the
+    // coerced type. This prevents having to convert ptr2int->int2ptr through
+    // the call, allowing alias analysis to produce better code.
+    std::function<bool(QualType Ty)> ContainsOnlyPointers = [&](QualType Ty) {
+      if (isEmptyRecord(getContext(), Ty, true))
----------------
efriedma-quic wrote:

Are there any testcases covering the isEmptyRecord check?  (I think excluding 
empty records solves some potential weird issues, so it's probably a good idea, 
but I'd like to see some testing as well.)

https://github.com/llvm/llvm-project/pull/135064
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to