richard.townsend.arm added a comment.

And with those modifications, everything seems to work correctly. I'd be fine 
with the LLVM portion landing at this stage, but one more rev and another test 
cycle for this patch would be ideal.



================
Comment at: lib/CodeGen/MicrosoftCXXABI.cpp:1085
+    return true;
+  if (IsSizeGreaterThan128(RD))
+    return true;
----------------
So... to get the latest diff working, I had to remove this check...


================
Comment at: lib/CodeGen/MicrosoftCXXABI.cpp:1096
+  bool isAArch64 = CGM.getTarget().getTriple().isAArch64();
+  bool isIndirectReturn = isAArch64 ?
+    (passClassIndirect(RD) || hasMicrosoftABIRestrictions(RD)) :
----------------
I also had to amend this to:

```bool isIndirectReturn = isAArch64 ?
    (passClassIndirect(RD) || hasMicrosoftABIRestrictions(RD)
       || IsSizeGreaterThan128(RD)) :
    !RD->isPOD();```


================
Comment at: lib/CodeGen/MicrosoftCXXABI.cpp:1106
+
+    FI.getReturnInfo().setInReg(isAArch64 && !IsSizeGreaterThan128(RD));
 
----------------
... and also amend this to `FI.getReturnInfo().setInReg(isAArch64 && 
!(isAggregate && IsSizeGreaterThan128(RD)));` 


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

https://reviews.llvm.org/D60349



_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to