frasercrmck wrote:

> LGTM. That means we compile for the last OpenCL version, which is 3.0, and 
> enable all OpenCL extensions/features, right? libclc is implemented using 
> functions supported by clang, so it is unlikely a target has libclc build 
> error in generic libclc files that are shared for all targets. When libclc is 
> linked to application module, libclc built-ins implementation of unsupported 
> extensions/features won't be linked in because these built-ins won't exist in 
> the user module. If the application code uses an unsupported extension, 
> frontend would report error already. There could be problem if application 
> modules links in a supported libclc built-in function which calls another 
> libclc built-in that belongs to unsupported special extension/feature, but I 
> think this scenario is unlikely and the supported built-in should be fixed to 
> not using unsupported feature. @frasercrmck What do you think?

Sounds good to me. I hope that by having the internal CLC library we can 
largely avoid the last scenario, as CLC should be less dependent on the OpenCL 
C version. An OpenCL 1.2 module could still call a builtin that makes internal 
use of CLC `ctz`, for example.

Anyway, sorry for complicating the PR with my suggestion. I was being 
unnecessarily conservative.

https://github.com/llvm/llvm-project/pull/135733
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to