Skip to content

Releases: KhronosGroup/SPIRV-LLVM-Translator

SPIR-V LLVM translator based on LLVM 17.0.0

19 Sep 14:07
17174ac
Compare
Choose a tag to compare

SPIR-V LLVM translator based on LLVM v8.0

05 Jun 15:13
26db0ab
Compare
Choose a tag to compare

SPIR-V LLVM translator based on LLVM 16.0.0

22 Mar 10:51
Compare
Choose a tag to compare

SPIR-V LLVM translator based on LLVM 15.0.0

15 Sep 16:45
6b53fe6
Compare
Choose a tag to compare

SPIR-V LLVM translator based on LLVM 14.0.0

21 Apr 17:05
e95eb30
Compare
Choose a tag to compare

SPIR-V LLVM translator based on LLVM 13.0.0

15 Oct 21:20
Compare
Choose a tag to compare

Binaries linked against LLVM 12.0.0

14 May 09:06
Compare
Choose a tag to compare

TODO:

  • Add description.

Full changelog is available at v11.0.0..v12.0.0

SPIR-V LLVM translator based on LLVM v7.1

05 Jun 15:13
Compare
Choose a tag to compare

Latest development build 2021-02-19 23:36 UTC

21 Jan 09:28
1dbc09c
Compare
Choose a tag to compare
Accept intrinsic namings into -spirv-allow-unknown-intrinsics (#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.

Binaries linked against LLVM 11.0.0

16 Oct 14:43
Compare
Choose a tag to compare

Improvements

eae3788 Added experimental support for more debug operations from DWARF spec
52ec14a Added -spirv-debug-info-version option to allow setting desired extended instruction set for debug info
b703fb9 Added new API that allows pass translator options to regularization passes
49f1634 Added -spirv-allow-unknown-intrinsics option, which allows to translate arbitrary LLVM intrinsics as user-declared functions
6707e5e Implemented lowering of llvm.sadd.with.overflow.[i16/i32/i64]
0420de4 Added error message if WordCount exceeds 16-bit max value
43cf458 d147071 197abb9 Added support for SPIRV to LLVM translation of built-ins from cl_khr_subgroup_* extensions
25683eb Replaced abort() with exit() in llvm-spirv tool
d9063e9 Added possibility to control -spirv-mem2reg via API
47fdd96 Added support for translation of llvm.sqrt intrinsics into SPIR-V
8c9d757 Added handling for non-zero values during llvm.memset translation
7df2269 Improved support for llvm.memmove intrinsic
7bf9e14 Added support for DebugInfoNone in DebugTypeComposite
0d1a32e Added possibility to set MemoryModel via LLVM IR metadata
54bcbf2 Extended -spirv-max-version option to accept 1.2 and 1.3 SPIR-V versions
ef1606f 33d1092 Added support for non-constant Semantic argument of OpMemoryBarrier and OpControlBarrier
e89518b Enabled strict rules to set ContractionOFF
076974e Added -spirv-fp-contract={on|off|fast} option to control how floating-point contraction is translated
3882d24 Added support of function pointers in cast instructions
08849f5 Adjusted FPGA IVDep translation for embedded loops
54f072e Added support for lowering of constant expressions vector
667bf13 Added spirv-target-env option to select desired representation of SPIR-V in LLVM IR during SPIR-V -> LLVM IR translation
4a4e0ae Added translation of fast math flags for binary arithmetic ops
1ef8bfc Added support for translation of llvm.fabs and llvm.ceil intrinsics into SPIR-V
39edc1d Added support for translation of atomicrmw LLVM IR instruction into SPIR-V
0401a32 Added support for translation of cmpxchg LLVM IR instruction into SPIR-V
e980e04 Added support for translation of specialization constant instructions from SPIR-V Friendly IR
bab8e49 Improved error handling of llvm::getSpecConstInfo API

Support for SPIR-V extensions

4c608cc 73dfc6d 70a3c5f Added support for SPV_INTEL_vector_compute extension
f158d11 9891e0d Added support for SPV_INTEL_float_controls2
3bc9ff0 Added support for SPV_KHR_float_controls
12f05f6 Added support for OpConstFunctionPointerINTEL from SPV_INTEL_function_pointers
0bb365d Added support for hls_float functions from SPV_INTEL_arbitrary_precision_fixed_point
3a5ab43 Added support for SPV_INTEL_fpga_buffer_location
945913c Added support for LSU controls built-in from SPV_INTEL_fpga_memory_accesses
d8dd6f4 Added support for SPV_INTEL_usm_storage_classes
bc23f64 Added support for SPV_INTEL_optimization_hints
d6404ce Added support for SPV_INTEL_arbitrary_precision_integers
7abc765 Updated support for SPV_INTEL_fpga_loop_control to match revision E
05cdada Added support for ForcePow2DepthINTEL from SPV_INTEL_fpga_memory_attributes
7a0767f Added support for SPV_INTEL_inline_assembly
89c9541 Added support for SPV_INTEL_io_pipes
33d4946 Added support for NoGlobalOffsetINTEL from SPV_INTEL_kernel_attributes

Bug fixes

52ec14a Fixed Extended instruction set name for debug info in SPIR-V
37ec668 Fixed handling of phi nodes in LowerConstExprs.
0931be9 Fixed emitting SPIRV metadata for non-kernel functions in PreprocessMetadata
a86e15f Fixed translation of kernel args of arbitrary integer pointer type
9333920 Improved SPIRVToLLVM::transOCLBuiltinFromVariable to handle more complex cases
bd6bb33 Fixed crash on debug info when -spirv-allow-unknow intrinsics option enabled.
f85915c Fixed crash happened during LLVM function aliases translation
966bbba Fixed trunc to bool lowering
c013096 Fixed error on translation of llvm.trap instrinsic by ignoring it
9777594 453799f c9ca432 Fixed various issues with function pointers handling
39482f5 Fixed translation of calls to undefined functions when debug info is present
54827e6 Fixed translation of debug info for constant sampler
33d1092 Fixed translation of OpControlBarier to OCL1.2
cb3be86 Fixed translation of relational operations
710d731 Fixed capability emitted for SpecId decoration
6a03da6 Fixed generation of Float16 capability

Misc

8b58a7f Removed deprecated -spirv-atomic-prefix option
5e01f2c Removed code relying on OpSource during SPIR-V -> LLVM IR translation

Full changelog is available at v10.0.0..v11.0.0