[clang] [HIP] Move HIP to the new driver by default (PR #123359)

Joseph Huber via cfe-commits cfe-commits at lists.llvm.org
Thu Aug 14 05:22:12 PDT 2025


jhuber6 wrote:

> > Sorry for the delayed response - I have been on a long vacation.
> > I’m not familiar with the new offload driver internals to give pointers on what needs to be changed and where for retaining the custom plugin and linker behavior needed by the [chipStar](https://github.com/CHIP-SPV/chipStar) nor I can devote time to look at it currently.
> > Perhaps, the HIPSPV toolchain could default to the old offload driver in the meantime until I or someone else takes a look at it.
> > cc @pjaaskel and @pvelesko for awareness.
> 
> The steps are roughly outlined in https://clang.llvm.org/docs/OffloadingDesign.html, though it hasn't been updated for the other targets. Generally it means you'll need to do some more plumbing. The problem with HIPSPV here is that it still uses the `OFK_HIP` type, which means it's not easy to determine whether or not to use the new driver from the compiler stages, and even so I'd _really_ prefer to be able to delete all the old handling soon.
> 
> More or less, the main change is that all offloading targets go through the same function. For non-RDC compilation it's not too different, but for RDC compilation everything gets put into a fat binary using a custom binary format inside LLVM. This then gets passed to the linker wrapper, whose job is to extract those objects and generate a linker job. So, what you need is for `clang --target=<whatever your triple> a b c` to work.

I'd suggest you just try doing `--offload-new-driver` with `-###` and `-v` and see what doesn't work.

https://github.com/llvm/llvm-project/pull/123359


More information about the cfe-commits mailing list