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