jhuber6 wrote:

> > > @jdoerfert I would like to see the device code compilation (on device 
> > > runtime) and host runtime compilation fully separate. Then I can build 
> > > the runtime with gcc or sanitizer without disturbing device code 
> > > compilation.
> > 
> > 
> > Could you elaborate on this? One of my long-term goals is to build the 
> > OpenMP device runtime similarly to how I build the GPU C library. That is, 
> > we have a `runtimes` build that simply does `--target=amdgcn-amd-amdhsa` on 
> > C/C++ source using standard `clang`. We could maybe split this out into a 
> > separate runtime and declare the offloading runtime on the CPU to be a 
> > project instead?
> 
> I need a clean way to add `-fsantize=address` to the libomptarget host 
> runtime and plugins compilation without disturbing the device compilation. So 
> if you move all the device compilation to a separate runtime, it also 
> achieves my goal I guess.

We could potentially do what I do with the `libc` target and treat it as cross 
compiling. So we'd have the "CPU" and "GPU" runtimes that go off of a switch 
depending on the architecture. CMake would look something like
```
   -DLLVM_ENABLE_RUNTIMES="openmp"                                      \
   -DRUNTIMES_nvptx64-nvidia-cuda_LLVM_ENABLE_RUNTIMES=openmp             \
   -DRUNTIMES_amdgcn-amd-amdhsa_LLVM_ENABLE_RUNTIMES=openmp               \
   -DLLVM_RUNTIME_TARGETS=default;amdgcn-amd-amdhsa;nvptx64-nvidia-cuda
```

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

Reply via email to