[cfe-dev] [OpenCL] atomic_double requires cl_khr_fp64 enabled

Anastasia Stulova via cfe-dev cfe-dev at lists.llvm.org
Thu Apr 21 03:46:55 PDT 2016


I am not quite clear how does the command line flag help us or how is it different from enabling the pragma? If the flag is being passed but the target doesn't support the extension what should happen then?

My understanding of what we are missing in Clang is a way to specify and know what extensions are supported by the target compiled for. We currently have an extension list which are enabled, but the list of supported extensions  (to be enabled) is missing, which could come from the target info in my opinion or some sort of that. Not sure it's correct to have it given from the user. What do you think about this?

Anastasia

From: Bader, Alexey [mailto:alexey.bader at intel.com]
Sent: 20 April 2016 16:07
To: Liu, Yaxun (Sam); cfe-dev (cfe-dev at lists.llvm.org)
Cc: Anastasia Stulova; Sumner, Brian; Pan, Xiuli
Subject: RE: [OpenCL] atomic_double requires cl_khr_fp64 enabled

In addition to that we will have to modify diagnostics message a bit:

-          for OpenCL before v1.2 we should require cl_khr_fp64 (as it's done right now)

-          for OpenCL v1.2+ let user know that doubles are not supported by the platform if it's not enabled by compiler option.

Does it make sense?

Thanks,
Alexey

From: Liu, Yaxun (Sam) [mailto:Yaxun.Liu at amd.com]
Sent: Wednesday, April 20, 2016 6:03 PM
To: Bader, Alexey; cfe-dev (cfe-dev at lists.llvm.org<mailto:cfe-dev at lists.llvm.org>)
Cc: 'anastasia.stulova at arm.com'; Sumner, Brian; Pan, Xiuli
Subject: RE: [OpenCL] atomic_double requires cl_khr_fp64 enabled

Then we can let Clang define macro cl_khr_fp64 when cl-fp64-enable is on. Then the header file will use #ifdef cl_khr_fp64 to enable double type builtin functions.

Sam

From: Liu, Yaxun (Sam)
Sent: Wednesday, April 20, 2016 11:00 AM
To: 'Bader, Alexey' <alexey.bader at intel.com<mailto:alexey.bader at intel.com>>; cfe-dev (cfe-dev at lists.llvm.org<mailto:cfe-dev at lists.llvm.org>) <cfe-dev at lists.llvm.org<mailto:cfe-dev at lists.llvm.org>>
Cc: 'anastasia.stulova at arm.com' <anastasia.stulova at arm.com<mailto:anastasia.stulova at arm.com>>; Sumner, Brian <Brian.Sumner at amd.com<mailto:Brian.Sumner at amd.com>>; Pan, Xiuli <xiuli.pan at intel.com<mailto:xiuli.pan at intel.com>>
Subject: RE: [OpenCL] atomic_double requires cl_khr_fp64 enabled

We can use that.

Currently double is automatically enabled in Clang for -cl-std=CL2.0. We could enable double only under cl-fp64-enable.

Sam

From: Bader, Alexey [mailto:alexey.bader at intel.com]
Sent: Wednesday, April 20, 2016 10:56 AM
To: Liu, Yaxun (Sam) <Yaxun.Liu at amd.com<mailto:Yaxun.Liu at amd.com>>; cfe-dev (cfe-dev at lists.llvm.org<mailto:cfe-dev at lists.llvm.org>) <cfe-dev at lists.llvm.org<mailto:cfe-dev at lists.llvm.org>>
Cc: 'anastasia.stulova at arm.com' <anastasia.stulova at arm.com<mailto:anastasia.stulova at arm.com>>; Sumner, Brian <Brian.Sumner at amd.com<mailto:Brian.Sumner at amd.com>>; Pan, Xiuli <xiuli.pan at intel.com<mailto:xiuli.pan at intel.com>>
Subject: RE: [OpenCL] atomic_double requires cl_khr_fp64 enabled

One correction: doubles became optional core feature in OpenCL 1.2.

I'm agree that it's a bug, but I'd like to discuss the ideas on how to fix it.
There should be some way to let clang know that doubles are not supported by OpenCL platform and it's expected to get diagnostics in this case.

OpenCL C++ compiler introduces compiler knob for that. "cl-fp64-enable"
https://github.com/KhronosGroup/SPIR/blob/spirv-1.1/include/clang/Driver/CC1Options.td#L606

Thanks,
Alexey

From: Liu, Yaxun (Sam) [mailto:Yaxun.Liu at amd.com]
Sent: Wednesday, April 20, 2016 5:45 PM
To: cfe-dev (cfe-dev at lists.llvm.org<mailto:cfe-dev at lists.llvm.org>)
Cc: 'anastasia.stulova at arm.com'; Sumner, Brian; Pan, Xiuli; Bader, Alexey
Subject: [OpenCL] atomic_double requires cl_khr_fp64 enabled

Currently Clang requires cl_khr_fp64 enabled to use atomic_double. This seems to be a bug.

In OpenCL 2.0 fp64 is an optional feature. If platform supports it, there is no need to enable cl_khr_fp64 to use it. Actually in OpenCL 2.0 spec cl_khr_fp64 is not defined.

I plan to fix that if all agree it is a bug.

What's your opinion? Thanks.

Sam

--------------------------------------------------------------------
Joint Stock Company Intel A/O
Registered legal address: Krylatsky Hills Business Park,
17 Krylatskaya Str., Bldg 4, Moscow 121614,
Russian Federation

This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.

--------------------------------------------------------------------
Joint Stock Company Intel A/O
Registered legal address: Krylatsky Hills Business Park,
17 Krylatskaya Str., Bldg 4, Moscow 121614,
Russian Federation

This e-mail and any attachments may contain confidential material for
the sole use of the intended recipient(s). Any review or distribution
by others is strictly prohibited. If you are not the intended
recipient, please contact the sender and delete all copies.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20160421/9d982f9b/attachment.html>


More information about the cfe-dev mailing list