frasercrmck wrote:

> > I am seeing unresolved CLC functions in `nvptx--.bc` and `nvptx64--.bc`. I 
> > think it's because we're now building things like `get_num_groups` for 
> > `nvptx`/`nvptx64`, whereas previously they were not being built for those 
> > targets. We're also not building `__clc_get_num_groups` because we're 
> > (correctly) not including `ptx-nvidiacl` sources.
> 
> thanks @frasercrmck for the careful review. `nvptx--.bc` and `nvptx64--.bc` 
> issue is fixed in 
> [b1397a4](https://github.com/llvm/llvm-project/commit/b1397a4c0ba63a2fd2392aa064bfa351ce014a7d)
> 
> Please let me know if I should revert following style change and follow 
> existing tyle.
> 
>     1. add #ifndef __CLC_OPENCL_WORKITEM_* guard in opencl header file and 
> include needed #include <clc/internal/clc.h>. E.g. 
> libclc/opencl/include/clc/opencl/workitem/get_global_id.h.
> 
>     2. include only needed headers in OpenCL lib files, e.g. in 
> libclc/opencl/lib/ptx-nvidiacl/workitem/get_local_linear_id.cl
> 
> 
> ```
> #include <clc/opencl/workitem/get_local_linear_id.h>
> #include <clc/workitem/clc_get_local_linear_id.h>
> 
> _CLC_OVERLOAD _CLC_DEF size_t get_local_linear_id() {
>   return __clc_get_local_linear_id();
> }
> ```

I think that's a good approach, thanks. We generally include far too much stuff 
in the OpenCL layer.

One comment is that I had initially intended for `clc/internal` to only be used 
by the CLC builtins. I realise it's already being used by some `fma.cl`s but we 
might want to nip it in the bud. Perhaps we need a stripped down OpenCL header, 
like `clc/opencl/opencl-base.h` which includes just the types and macro defs?

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

Reply via email to