Anastasia added inline comments. ================ Comment at: lib/Headers/opencl-c.h:7452 @@ +7451,3 @@ + +// OpenCL v1.2 s6.12.2, v2.0 s6.13.2 - Math functions + ---------------- Could you put OpenCL v1.1 section too?
================ Comment at: lib/Headers/opencl-c.h:7767 @@ +7766,3 @@ +/** + * Round to integral value using the round to +ve + * infinity rounding mode. ---------------- What does +ve mean? ================ Comment at: lib/Headers/opencl-c.h:7795 @@ +7794,3 @@ + * Returns x with its sign changed to match the sign of + * y. + */ ---------------- Could y be merged with the previous line? ================ Comment at: lib/Headers/opencl-c.h:7952 @@ +7951,3 @@ +/** + * Compute the base- e exponential of x. + */ ---------------- Can't read this comment. Perhaps: "Compute base e exponent"? ================ Comment at: lib/Headers/opencl-c.h:8306 @@ +8305,3 @@ +#else +float __attribute__((overloadable)) fract(float x, __global float *iptr); +float2 __attribute__((overloadable)) fract(float2 x, __global float2 *iptr); ---------------- Does this mean that all non-generic versions are not available in CL2.0 forcing the dynamic AS conversion for all BIFs with a pointer type? Wondering if adding those unconditionally would be better thing to do... ================ Comment at: lib/Headers/opencl-c.h:8457 @@ +8456,3 @@ +/** + * Compute the value of the square root of x^2+ y^2 + * without undue overflow or underflow. ---------------- Could you add space please: x^2 + y^2 ================ Comment at: lib/Headers/opencl-c.h:9110 @@ +9109,3 @@ + */ +float __const_func remainder(float x, float y); +float2 __const_func remainder(float2 x, float2 y); ---------------- Overloadable here and in other places too? ================ Comment at: lib/Headers/opencl-c.h:12772 @@ +12771,3 @@ +#ifdef cl_khr_fp16 +half __attribute__((overloadable)) vload(size_t offset, const half *p); +half2 __attribute__((overloadable)) vload2(size_t offset, const half *p); ---------------- Should it be vload_half instead? ================ Comment at: lib/Headers/opencl-c.h:14484 @@ +14483,3 @@ +long __attribute__((overloadable)) atom_sub(volatile __global long *p, long val); +unsigned long __attribute__((overloadable)) atom_sub(volatile __global unsigned long *p, unsigned long val); +long __attribute__((overloadable)) atom_sub(volatile __local long *p, long val); ---------------- btw, perhaps it's a good idea to have a macro for __attribute__((overloadable)). This should be relatively simple to replace everywhere. ================ Comment at: lib/Headers/opencl-c.h:14766 @@ +14765,3 @@ + +ATOMIC_INIT_PROTOTYPE(int) +ATOMIC_INIT_PROTOTYPE(uint) ---------------- Let's not have macros for function declarations. As commented earlier they can break proper diagnostics reporting (ie. diagnostics will display macro instead of actual function). ================ Comment at: lib/Headers/opencl-c.h:15674 @@ +15673,3 @@ +/** + * Use the coordinate (coord.z) to index into the + * 2D image array object and (coord.x, coord.y) to do an ---------------- I feel that some bits of this description are being repeated multiple times. Could we have a common description at the beginning instead that would cover all the different cases. ================ Comment at: lib/Headers/opencl-c.h:16220 @@ +16219,3 @@ +/** + * Write color value to location specified by coordinate + * (coord.x) in the 1D image object specified by index ---------------- The same here. Could we unify the description for all write_image functions somehow? ================ Comment at: lib/Headers/opencl-c.h:16960 @@ +16959,3 @@ + +#define WG_BROADCAST_1D_DECL(type) \ +type __attribute__((overloadable)) work_group_broadcast(type a, size_t local_id); ---------------- Let's remove macros from here too. ================ Comment at: lib/Headers/opencl-c.h:17051 @@ +17050,3 @@ +#define CLK_SUCCESS 0 +#define CLK_ENQUEUE_FAILURE -101 +#define CLK_INVALID_QUEUE -102 ---------------- Are those arbitrary taken values I am guessing? ================ Comment at: lib/Headers/opencl-c.h:17099 @@ +17098,3 @@ + +// ToDo: Add enqueue_kernel as a Clang builtin because it requires custom check of type of variadic +// arguments as well as block arguments. ---------------- Could we remove the enqueue_kernel as it's being added as Clang builtin? It's prototype is incorrect here anyways. Btw, I have started the review for it: http://reviews.llvm.org/D20249 ================ Comment at: lib/Headers/opencl-c.h:17252 @@ +17251,3 @@ +/** + * Use the coordinate (x) to do an element lookup in + * the mip-level specified by the Level-of-Detail (lod) ---------------- I think this should be better grouped with other image functions above. http://reviews.llvm.org/D18369 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits