jmmartinez wrote:

Hello,

Just to add one data point: I've cherry-picked this PR over amd-staging and 
added 2 quick and dirty workarounds* for the SPIRV backend to work in 
https://github.com/ROCm/llvm-project/commits/users/jmmartinez/spirv/hacks_but_it_works
 .

I then tried the following combinations over the `vectoradd_hip.cpp` (`clang -x 
hip -use-spirv-backend --offload-arch=amdgcnspirv vectoradd_hip.cpp $flags`) 
with the following values for `flags`:

- `--offload-device-only -S` -> prints textual spirv code (with and without 
`--offload-new-driver`)
- `--offload-device-only -S -fgpu-rdc` -> prints textual llvm-ir (with and 
without `--offload-new-driver`)
- `-O3 -o a.out -lstdc++ && ./a.out` -> compiles and the test passes (with and 
without `--offload-new-driver`; with and without `-fgpu-rdc`)

I haven't tested the SPIRV translator path.

\* The workaround are related to visibility-hidden not being representable in 
SPIRV (the backend crashes when there are declarations with this visibility)
\* The SPIRV backend tries to use the `SPV_KHR_float_controls2` extension that 
is not implemented in the translator, so Comgr cannot translate SPIRV back to 
LLVM-IR.

https://github.com/llvm/llvm-project/pull/167543
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to