Releases: KhronosGroup/SPIRV-LLVM-Translator
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
Binaries linked against LLVM 10.0.0
Improvements
2674e50 Improved handling of invalid integer bit widths
b152e65 Added support for using an external LLVM tree when embedding in another project
dd09f1f Added support for specialization constants
d09b6b6 Added support for reading OpTranspose
5a56513 Added support for reading OpMatrixTimesMatrix
14e2c5f Added translation of FPFastMathMode
decorations
128e4c5 Added support for fneg
when translate from LLVM to SPIR-V
4581205 Added support for reading OpVectorTimesMatrix
e63a7cb Added support for reading OpMatrixTimesVector
9ed3c9d Added support for reading OpMatrixTimesScalar
87028d0 Added support for ctlz
/cttz
intrinsics via OpExtInst
a0a7f26 Added command line options to restrict maximum allowed SPIR-V version
355a324 Extend translator API to pass different translation options through it
a471a21 Added options to control list of allowed/disallowed extensions
f76a925 Removed -spirv-no-deref-attr
option in favor of new options
Support for SPIR-V extensions
76e5087 Aligned FPGA Loop Controls translation with the spec (rev C)
cf331a5 Added support for translation of SPV_INTEL_media_block_io extension
from SPIR-V to LLVM IR
3fdc1a5 Added support for Intel FPGA bank_bits memory from SPV_INTEL_fpga_memory_attributes
extension
9833dca Added support for SPV_INTEL_fpga_function_attributes
extension
934d50e Added support for SPV_INTEL_function_pointers
extension
Docs
3f0fd56 Added documentation for version and extensions handling
Bug fixes
5642686 Fixed mangling of some cl_intel_device_size_avc_motion_estimation
functions
129232c Fixed translation of read_image*
built-ins to SPIR-V
1bf22f1 Fixed translation of template composite type debug info
6c32a4c Fixed translation of OpAtomicUMin
and OpAtomicUMax
instructions from SPIR-V to LLVM IR
0cd8d12 Fixed reading OpNop
instruction from SPIR-V
7bb245d Fixed setting of nsw
flag when translating OpSNegate
9b898c6 Fixed translator crash on empty input files
da3b1e4 Fixed mangling for s_upsample
e172692 Fixed comparison of pointers to conform with SPIR-V spec
a073937 Fixed translation of OpGenericCastToPtrExplicit
03389df Fixed OpLine
debug info contradicting control flow semantics
78adccf Fixed missing OpExtension
for instructions from SPV_INTEL_subgroups
10dee68 Fixed translation of 64-bit atomics to OpenCL 1.2
e692372 Fixed translation of OpBitReverse
05e8a8b Fixed enqueue_kernel builtins translation from SPIR-V to LLVM (also 00ce5f0)
b144b22 Fixed atomic functions translation to OpenCL 1.2
0b26dd3 Fixed translation of OpLogicalNot
af95033 Fixed handling of SPV_KHR_no_integer_wrap_decoration
2a1efad Fixed return type for fp16 vector comparison builtins
c8e3320 Replaced noduplicate
attribute with convergent
attribute for barriers
Full changelog is available at v9.0.0-1...v10.0.0
Binaries linked against LLVM 9.0.1
With this release LLVM is updated to 9.0.1
This update also contains various fixes and improvements backported from the master branch.
The changelog is available at v9.0.0-1...v9.0.1-1
Binaries linked against LLVM 8.0.1 (Update 3)
This update contains various fixes and improvements backported from the master branch.
The changelog is available at v8.0.1-2...v8.0.1-3
Binaries linked against LLVM 9.0.0
With this release LLVM is updated to version 9.
Also it includes number of bugfixes, improvements and new features.
What's new (notable changes):
36d4530 Remove the _SPIRV_LLVM_API switch
d51037e Translate Intel FPGA memory attributes
eea79f2 Reject 0-length arrays
967e8fa Propagate error message from SPIRVModule import
62fe6db Add separate functions for reading and translating SPIR-V
b1ecd4a Set atomic_compare_exchange argument address space to generic
564c8d1 Implementation of SPIRV->LLVM IR translation for SPV_INTEL_device_side_avc_motion_estimation extension.
756525f Select target ocl builtins version based on new spirv-ocl-builtins-version option [SPIRV->LLVM]
de0957d Disabling mem2reg by default
9d56898 Translate OpBitCount
898d0ec Translate OpBitReverse
d470e38 Add support for OpenCL 1.2 atomics builtins translation from SPIRV to LLVM
3b6882e Implement SPV_INTEL_unstructured_loop_controls extension
7923aae Add handling of max SPIR-V version to SPIRVReader
d14c20e Extend TranslatorOpts to handle SPIR-V extensions
5913618 Implementation of SPV_INTEL_function_pointers extension
07f2978 Update LLVM_SPIRV_VERSION in CMakeLists.txt to 9.0.0.1
Full changelog at 9e58245...v9.0.0-1
Binaries linked against LLVM 8.0.1 (Update 2)
This update contains various fixes and improvements backported from the master branch.
What's new (notable changes):
e232c22 Fix ocl v2.0 atomic functions arguments address spaces
5abe20a Select target ocl builtins version based on new spirv-ocl-builtins-version option [SPIRV->LLVM]
5f710f2 Remove the _SPIRV_LLVM_API switch
6b954b0 Fix lifetime start intrinsic translation
103a017 Add separate functions for reading and translating SPIR-V
600943f Set atomic_compare_exchange argument address space to generic
72fba58 Remove generating of spirv.EntryPoint metadata
6e0d11d Fix translation of undef initializers of LLVM structures
72d54ea Support addrspacecast on SPIR-V built-in variables
d14a7f9 Map memory semantics and memory order enums in runtime
d9c77fa Add support for OpenCL 1.2 atomics builtins translation from SPIRV to LLVM
81a82b0 Enable translation of pass-by-value and pass-by-reference DI flags
fbb2f2e Translate OpBitReverse
9704dfb Translate OpBitCount
040b3f0 Disabling mem2reg by default
Full changelog is available at v8.0.1-1...v8.0.1-2
Binaries linked against LLVM 8.0.1
v8.0.1-1 Tagging 8.0.1 release
Binaries linked against LLVM 7.1.0
This is a duplicate of 7.1.0-1
, but with letter v added in front of the tag name to comply with the tag name convention.
Binaries linked against LLVM 8.0.0
v8.0.0-1 Promoting to release