[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:17:33 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.

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


More information about the cfe-commits mailing list