svenvh added a comment.

Thanks for the update!  I have a few points to improve the patch.



================
Comment at: clang/lib/Sema/OpenCLBuiltins.td:1107
+// The functionality added by cl_ext_float_atomics extension
+let MinVersion = CL30 in {
+  foreach TypePair =
----------------
Do we really need to guard these additions behind OpenCL 3.0?  The spec mentions
> The functionality added by this extension uses the OpenCL C 2.0 atomic syntax 
> and hence requires OpenCL 2.0 or newer.
(same applies to the opencl-h.c changes of course)


================
Comment at: clang/lib/Sema/OpenCLBuiltins.td:1112
+      foreach AddressSpaceiKind = [GenericAS, GlobalAS, LocalAS] in {
+      def:
+        Builtin<"atomic_fetch_" #ModOp, [
----------------
The feature macros seem to be missing.  See `FuncExtOpenCLCPipes` for an 
example how to do that.


================
Comment at: clang/lib/Sema/OpenCLBuiltins.td:1132-1135
+  foreach TypePair =
+      [[AtomicFloat, Float, Float], [AtomicDouble, Double, Double]] in {
+    foreach ModOp = ["max", "min"] in {
+      foreach AddressSpaceiKind = [GenericAS, GlobalAS, LocalAS] in {
----------------
This can be merged into the preceeding `foreach` parts I think?


================
Comment at: clang/test/SemaOpenCL/fdeclare-opencl-builtins.cl:139
+
+  resf1 = atomic_fetch_min(a_float, f1);
+  resf1 = atomic_fetch_max(a_float, f1);
----------------
As mentioned in the comment on lines 13-17, this test is not meant to be 
exhaustive.  So you don't have to test every overload, checking one or two 
builtins should suffice.


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

https://reviews.llvm.org/D106343

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

Reply via email to