Releases: KhronosGroup/SPIRV-LLVM-Translator
SPIR-V LLVM translator based on LLVM 17.0.0
Full Changelog: v16.0.0...v17.0.0
SPIR-V LLVM translator based on LLVM v8.0
Full Changelog: v8.0.1-3...v8.0.2
SPIR-V LLVM translator based on LLVM 16.0.0
Full Changelog: v15.0.0...v16.0.0
SPIR-V LLVM translator based on LLVM 15.0.0
Full Changelog: v14.0.0...v15.0.0
SPIR-V LLVM translator based on LLVM 14.0.0
Full Changelog: v13.0.0...v14.0.0
SPIR-V LLVM translator based on LLVM 13.0.0
Full Changelog: v12.0.0...v13.0.0
Binaries linked against LLVM 12.0.0
SPIR-V LLVM translator based on LLVM v7.1
Full Changelog: v7.1.0-1...v7.1.1
Latest development build 2021-02-19 23:36 UTC
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
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