On 2024-05-05 15:02, Cordell Bloor wrote:

There is nothing that can be done in rocm-hipamd to address this bug, aside from removing arm64 from the rocm-hipamd architecture list. The incompatibility is not with the HIP runtime, but with the HIP language. This is a disagreement that glibc and llvm will need to resolve between themselves.

I reached out to the HIP language compiler team and Sam Liu indicated that this is an LLVM responsibility. Quoting Sam,

Since HIP is single source program, device compilation is supposed to be able to compile both host and device functions (parse, not necessarily codegen). As such, clang should know builtin types for both device and host target in either device or host compilation. Therefore a proper solution is to let clang define host-specific builtin types for device target so that they can be parsed, but restriction may be added for emitting them in IR.

For this specific case, HasAArch64SVETypes may be moved from TargetInfo to TransferrableTargetInfo, so that it is copied from aux target info to target info in device compilation, then those builtin types will be enabled for device target.

Sincerely,
Cory Bloor

Reply via email to