Fixed Issues / Improvements
- Implement support for KHR SPV-IR for select functions from OpenCL Extended Instruction Set
- Automatic detection of SPMD, ESIMD and SPMD+ESIMD SPIR-V modules
- Implement support for KHR SPV-IR for native math functions from OpenCL Extended Instruction Set
- ZEBinary: Split const buffer into two, one for general consts, one for strings
- Support for SPV_INTEL_group_instructions extension
- Support relocations inside const/global sections
- Implement support for KHR SPV-IR for math_ext functions from OpenCL Extended Instruction Set
- Implement KHR SPV-IR support for OpSMulExtended and OpUMulExtended
- Automatic detection of SPMD, ESIMD and SPMD+ESIMD SPIR-V modules
- Implement support for KHR SPV-IR for integer math functions from OpenCL Extended Instruction Set
- ZEBIN: Support emitting .visaasm section if the corresponding field in program output is set.
- Implement support for KHR SPV-IR for half math functions from OpenCL Extended Instruction Set
- Implement support for KHR SPV-IR for geometric math functions from OpenCL Extended Instruction Set
- Implement support for KHR SPV-IR for GenericCastToPtrExplicit and GenericPtrMemSemantics
- Implement support for KHR SPV-IR for opcodes operating on OpTypePipe and OpTypeReserveId
- Make FunctionControl and SelectiveFunctionControl compatible with each other
- Selectively set FunctionControl for functions subset
- Implement support for KHR SPV-IR for common math functions from OpenCL Extended Instruction Set
- No LUT log() implementation for double.
- Implement support for KHR SPV-IR for shuffle2 from Extended Instruction Set
- Implement support for KHR SPV-IR for opcodes operating on OpTypeEvent
- Implement support for KHR SPV-IR for s_min and u_min from OpenCL Extended Instruction Set
- Implement support for KHR SPV-IR for prefetch function from OpenCL Extended Instruction Set
- Implement support for KHR SPV-IR for opcodes operating on OpTypePipe and OpTypeReserveId
- Implement support for KHR SPV-IR for shuffle and shuffle2 from Extended Instruction Set
- Implement support for KHR SPV-IR for opcodes operating on OpTypeDeviceEvent and OpTypeQueue
- Change the Spill Threshold for SLM heuristic for better SIMD selection
- New VISA_BUILDER_API for user to query the generated .visaasm string.
- Add mapping for DWARF language codes to SourceLanguage
- Separate SymbolTable and RelocTable generation for patch token and ZEBinary
- Allowing to combine canonicalization and saturation
- Parametrize handling of 2d images in runtime info
- Promote Arg/Ret to virtual variables for eliminations after subroutine call conversion
- Improve decoding of constant composites
- Move replacement of 2d image type to OCL runtime info
- Implement support for KHR SPV-IR for OpBuildNDRage
- Support Unordered SPIR-V builtin in VC
- Implement popcnt and czt via BiFs in VC
- Allow implicit arg usage in subroutine to load from buffer
- Update to make CreateVISALabelVar always return a fresh label.
- Implement SPIR-V globals via BIFs in VC
- Implement support for KHR SPV-IR for image query opcodes
- Enabling LTO for stage compilation
- Enable preemption for VC path on SKL+
- Implement support for KHR SPV-IR for OpImageRead and OpImageWrite opcodes
- Minimize chances of spilling unaligned scalars. Spilling unaligned scalars may not benefit register pressure, and in fact could cause avalanche effect on spills.
- Change data type of mask to an STL type for protection from memory overruns.
- Replace known workgroup size after inlining
- Move VCPassManager to VCSupport library
- Enable URBPartialWrites pass by default
- Variables marked as live-in should be treated as input variables.
- Add bundle conflict for none-dpas three source instructions
- Add new vISA opcode "add3o" for ternary add with overflow condition modifier.
- Add new implicit args intrinsics support
- Check to Avoid Load merge for negative addresses.
- Add bundle conflict for three source instructions
- Deduce general operand instead of indirect in inline assembly if indirection doesn't exist
- Allowing to combine canonicalization and saturation
- Enable URBPartialWrites pass by default
- Change the default ArgKind in CMABI pass
- Support Ordered SPIR-V builtin in VC
- Implement support for KHR SPV-IR for SPV_INTEL_subgroups opcodes
- Improve of mapping instr to func in IGCMetric
- Disallow aligned scalar split if variable is used as send dst.
Dependencies revisions
- intel/opencl-clang@9247630
- KhronosGroup/SPIRV-LLVM-Translator@329ab86 (for opencl-clang)
- intel/vc-intrinsics@2cd5a7b
- KhronosGroup/SPIRV-LLVM-Translator@55278a4 (for VectorCompiler)
- llvm/llvm-project@llvmorg-11.1.0
Ubuntu 18.04 binary packages for LLVM11/Clang11 are included.
Full Changelog: igc-1.0.8744...igc-1.0.9289