================
Comment at: lib/CodeGen/TargetInfo.cpp:1634-1635
@@ -1630,3 +1633,4 @@
   unsigned getOpenMPSimdDefaultAlignment(QualType) const override {
+    // FIXME: What about AVX512?
     return getABIInfo().hasAVX() ? 32 : 16;
   }
----------------
ab wrote:
> This I'm not sure;  it makes sense to me to align to 64 when we have AVX512.
> 
> There's also the WinX86_64 counterpart, which I'm even less confident about.
I am pretty skeptical of even the original code here, frankly.  Are clients 
really making stronger promises just because they're compiling with AVX 
enabled?  Note that the compiler doesn't *do* anything to achieve this; it 
literally just makes a more aggressive assumption about what the user has done.

It seems to me like the (1) the OpenMP people ought to review this and 
seriously consider it and (2) this number needs to be available to code in some 
portable manner, probably via a predefined macro.  Which means it probably 
ought to be defined in the AST-level TargetInfo.  CC'ing Alexey Bataev.

================
Comment at: lib/CodeGen/TargetInfo.cpp:1934
@@ -1930,1 +1933,3 @@
+    } else if (Size == 128 || (isNamedArg && (hasAVX() && Size == 256) ||
+                               (hasAVX512() && Size == 512))) {
       // Arguments of 256-bits are split into four eightbyte chunks. The
----------------
Please parenthesize this second ||.  It's actually wrong as written: && binds 
tighter than ||, but you want isNamedArg to apply to both.

http://reviews.llvm.org/D9894

EMAIL PREFERENCES
  http://reviews.llvm.org/settings/panel/emailpreferences/



_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to