[llvm] [openmp] [OpenMP] Change build of OpenMP device runtime to be a separate runtime (PR #136729)
Johannes Doerfert via llvm-commits
llvm-commits at lists.llvm.org
Mon May 5 10:37:53 PDT 2025
jdoerfert wrote:
> > So, I think it should go back in `openmp/` as with `libomptarget`. That makes `offload/` a generic interface that languages inherit from to make their own language runtimes, which I think is how most people expect `offload/` to work.
>
> I find this argument compelling as well.
>
> Perhaps it would make sense to keep `offload` generic and minimal and to co-locate the device RTs under a top level `device-rt` directory that contains `openmp`, `openacc`, `cuda`, etc...
This addresses one of my main concerns: spreading device runtimes all over the place or introducing N new top-level folders. I don't think we want either, but keeping the device code together in a new top-level `device-rt` directory is, for me, almost as good as having that `device-rt` folder live under `offload`. I don't see the benefit of it not being in `offload`, at least until we have device runtimes that work without `offload`, or at least have plans to have them. Moving it to `openmp` will open up the question of where to put the rest, hence my conceptual objection to it. Not to mention that device runtimes have more connection to one another, and to the `offload` infrastructure, than to their host runtime, at least for now. (Again, there is nothing in `DeviceRTL.openmp.a` that connects to the `openmp` folder/host code but, for now, various things that connect to the `offload` folder/host code.)
https://github.com/llvm/llvm-project/pull/136729
More information about the llvm-commits
mailing list