[PATCH] Implement IRGen for the x86 vectorcall convention

Reid Kleckner rnk at google.com
Fri Oct 31 14:57:09 PDT 2014


I added a bunch of test cases, but I haven't gone nuts with alignment attributes and packing pragmas yet. I think this is good enough for now.

================
Comment at: lib/CodeGen/TargetInfo.cpp:2935
@@ -2856,1 +2934,3 @@
+  uint64_t Width = Info.Width;
+  unsigned Align = Info.Align / 8;
 
----------------
majnemer wrote:
> This should be:
> `getContext().toCharUnitsFromBits(Info.Align).getQuantity()`
Grumble grumble bytes are eight bits.

================
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())
----------------
majnemer wrote:
> This comment doesn't seem to be correct for the ternary expression.
thanks

http://reviews.llvm.org/D6063






More information about the cfe-commits mailing list