Tags: neonkore/SPIRV-LLVM-Translator
Tags
Accept intrinsic namings into -spirv-allow-unknown-intrinsics (Khrono… …sGroup#912) Previously, enabling the option would let all intrinsics through the translator. From now on, the option can be configured so that only specific intrinsic calls with the given prefix are allowed, while those not matching the prefix will result in an error as if no option was given. The allowed intrinsic prefixes are fed into the option as a comma-separated list, akin to `--spirv-ext`. The list can also be left unspecified, which, as before, will accept all intrinsic calls into SPIR-V. One of the relevant use cases involves llvm.genx.* intrinsics, which stem from SYCL ESIMD code, but can also mix with common LLVM intrinsics that stem from regular SYCL code. It would be desirable to allow ESIMD-specific intrinsics, but still error out on other unknown ones, To better highlight this case, all ESIMD-specific tests have been switched to passing an explicit prefix to the CLI option.
Support missing DWARF opcodes (KhronosGroup#679) Experimental support of extra DWARF operations As this functionality is not documented by any formal SPIR-V extension or SPIR-V extended instruction set specification, it is disabled by default and in order to enable generation of extra debug information, user needs to pass `spirv-allow-extra-diexpressions` command line option to the translator. Signed-off-by: Andrew Savonichev <[email protected]>
[Backport] Implementation of SPV_INTEL_inline_assembly extension Extension is published as github.com/intel/llvm/pull/1290 Original commit: github.com/KhronosGroup/SPIRV-LLVM-Translator/commit/7a0767f2a
Backport fix translation of read_image* built-ins to SPIR-V to 9.0 re… …lease There are several overloads of read_image function defined by OpenCL C spec, but all of them use the same SPIR-V instruction, so, we need to add one more optional postfix to differentiate instructions with the same argument types, but different return types. Example: - int4 read_imagei(image2d_t, sampler_t, int2) - float4 read_imagef(image2d_t, sampler_t, int2) Both functions above are represented by the same SPIR-V instruction and we need to distinguish them in SPIR-V friendly LLVM IR. Signed-off-by: Alexey Sachkov <[email protected]>
Fix translation of read_image* built-ins to SPIR-V There are several overloads of read_image function defined by OpenCL C spec, but all of them use the same SPIR-V instruction, so, we need to add one more optional postfix to differentiate instructions with the same argument types, but different return types. Example: - int4 read_imagei(image2d_t, sampler_t, int2) - float4 read_imagef(image2d_t, sampler_t, int2) Both functions above are represented by the same SPIR-V instruction and we need to distinguish them in SPIR-V friendly LLVM IR. Signed-off-by: Alexey Sachkov <[email protected]>
Update LLVM_SPIRV_VERSION in CMakeLists.txt to 9.0.0.1 Signed-off-by: Alexey Sotkin <[email protected]>
Move target triple check before translation Check that the target triple is supported before LLVM to SPIR-V translation, rather than during translation. This allows us to gracefully report InvalidTargetTriple instead of failing the target triple assertion in PreprocessMetadata.cpp.
PreviousNext