[PATCH] Implement IRGen for the x86 vectorcall convention

David Majnemer david.majnemer at gmail.com
Fri Oct 31 13:35:17 PDT 2014


Please include a test for misshapen vector types, LGTM with changes in mind.

It would also be nice to include tests for empty non-virtual bases and zero-length bitfields.
Also, tests for over, and under, aligned fields would be nice as well.

================
Comment at: lib/CodeGen/TargetInfo.cpp:2935
@@ -2856,1 +2934,3 @@
+  uint64_t Width = Info.Width;
+  unsigned Align = Info.Align / 8;
 
----------------
This should be:
`getContext().toCharUnitsFromBits(Info.Align).getQuantity()`

================
Comment at: lib/CodeGen/TargetInfo.cpp:3004-3005
@@ -2903,2 +3003,4 @@
 
+  // We can use up to 4 SSE registers parameters with vectorcall.
+  FreeSSERegs = IsVectorCall ? 6 : 0;
   for (auto &I : FI.arguments())
----------------
This comment doesn't seem to be correct for the ternary expression.

http://reviews.llvm.org/D6063






More information about the cfe-commits mailing list