Releases: intel/intel-graphics-compiler
igc-1.0.10200
Fixed Issues / Improvements
- Fix compilation error with GCC 12
- Remove redundant vector CMCL builtins declarations
printf
implementation with high-level interfaces- VC produces debuggable kernels by default
- Support ptrtoint constexpr in GV initializers
- Applied m16 on a0 init
- Moved KernelInfo to GenX Utils library
- Fixed dependencies handling in genx printer
- Added support of SPIRV floating point fma via CMCL in VC
- SGInvoke: fix for WA when DumpToCurrentDir flag is set
- Added PVC specific named barriers handling
- Improve dump of values in pass printer
- Other minor fixes and improvements.
Dependencies revisions
- intel/opencl-clang@16ff905
- KhronosGroup/SPIRV-LLVM-Translator@cf681c8 (for opencl-clang)
- KhronosGroup/SPIRV-Tools@eeb973f
- KhronosGroup/SPIRV-Headers@ae217c1
- intel/vc-intrinsics@d3cef33
- llvm/[email protected]
Ubuntu 18.04 binary packages for LLVM11/Clang11 are included.
igc-1.0.10183
Fixed Issues / Improvements
-
Adding DG2 & PVC intrinscs
-
Adding more DG2 & PVC code
-
Make spill cleanup less aggressive.
-
Correctly handle llvm::Expected in vISA linker
-
Fold bitcasts to rdregion/wrregion by changing region parameters
-
Enable madw use in i64 mul emulator
-
SIP update DG2/XeHP SDV
-
Enable MergeURBReads pass
-
Refactor builtins operating on images and samplers
-
Support abs and fabs instructions
-
Support fp16 type for OpAtomicLoad, OpAtomicStore and OpAtomicExchange
-
Support printf strings in global addrspace
-
Introducing 2d stateless support for LSC
-
Fix PrivateMemoryResolution pass for XeHP and later
-
Create a GenISA intrinsic for native Mad instructions
-
Fixed problem with resolved values caching in JointMatrix resolution pass
-
Other minor fixes and improvements.
Dependencies revisions
- intel/opencl-clang@16ff905
- KhronosGroup/SPIRV-LLVM-Translator@585ca33 (for opencl-clang)
- intel/vc-intrinsics@d3cef33
- llvm/[email protected]
Ubuntu 18.04 binary packages for LLVM11/Clang11 are included.
igc-1.0.9933
Fixed Issues / Improvements
- Tighten legalization rules for EU fusion platforms
- Extend VC shader dumps to include more DebugInfo-related information
- Add runtime symbol "INTEL_PATCH_CROSS_THREAD_OFFSET_OFF_R0" in ZEBIN.
- Add option for disabling extra coalescing in VC backend
- Add symbols of function declarations to ZeBin
- Add EU fusion feature to appropriate targets.
- Add support of SPIRV floating point mad via CMCL in VC
- Add GenXPredRegionLowering pass
- Add debug info support for global variables.
- Add tests for function groups construction
- ZEBinary: add thread_scheduling_mode to execution environment
- ZEBIN: Merge ZEINFO byval payload arguments when possible.
- Add JointMatrixINTEL fill and slicing operations.
- Remove emitting ld_lz when not supported
- Better private memory estimate for indirect calls
- Disable explicit creation of ISCCP by VC
- Support KHR SPIRV Friendly IR for OpBitCount
- IGA: ARF_ACC layout update and better tool help message
- ZEBIN: Set ELF section flags for TEXT/DATA/BSS sections.
- Disable constant coalescing for retry
- Add Alchemist (aka ACM, DG2) & PVC related methods in Platforms.hpp
- ZEBIN: Add source_offset to zeinfo payload argument.
- Update SPV_INTEL_hw_thread_queries to latest version.
- Respect
fp32-correctly-rounded-divide-sqrt
flag when Scalar IGC uses Khronos SPIRV Translator - Support KHR SPIRV Friendly IR for SPV_INTEL_media_block_io
- Add support for exclusion of IR from zebin output
- Temporary switch off preemption for ICLLP due to regressions
- Mark invoke_simd targets with LTO_InvokeOptTarget attribute
- Better private memory estimate for indirect calls
- Expose vISA LTO options to IGC
- do not reserve Sampler with IDX=0 when debuggability is enabled
- Add DirectCallsOnly flag
- Support implicit args buffer in CMImplParam
- Add subtarget info memeber into GenXLoadStoreLowering pass
- Support 32-bit addressing in Load Store Lowering
- Enhance the preRA flag remat to sink trivial flag evaluation.
- ZEBinary: must not generate const/global base implicit arguments
- Address class pattern detected & removed later in IGC pass
- VC should produce debuggable kernels by default
- Detect uniform invoke_simd arguments
- introduce VC controls for codegen optimization level
- extend VC backend controls related to debuggability
- More dumps available for GenXLiveness
- Support printf strings section in zebin
- Support for DPAS sizes in DPC++ joint_matrix for sizes 1, 3, 5, 7.
- sginvoke: pass ESIMD text visa assembly in the input of SPMD compilation
- Introducing DG2 and PVC support for VC
- SWSB: Remove an unused field in SBBucketDesc.
- SWSB: Set the correct LB and RB of ACC footprint on creation.
Full changelog: igc-1.0.9636...igc-1.0.9933
Dependencies revisions
- intel/opencl-clang@e0e388b
- KhronosGroup/SPIRV-LLVM-Translator@dd29a1f (for opencl-clang)
- intel/vc-intrinsics@d3cef33
- llvm/[email protected]
Ubuntu 18.04 binary packages for LLVM11/Clang11 are included.
igc-1.0.9636
Fixed Issues / Improvements
- vISA: Add DG2 and PVC support
- Update SPIRV-LLVM-Translator revision for VC
- Fixup filenames for auxiliary shader dumps produced by VC
- Added SPV_INTEL_hw_thread_queries support
- VC: Generate debug information if exists in IR
- Max stack call private memory usage deduction from callgraph analysis
- vISA: Fixed the dependence issue between new dataport and other send messages in scheduler
- Updated GTpin enums
- Enabled dumping SPIRV before translation to LLVM
- Prevent memory optimization if function has optnone attribute
- Put indirectly called functions to separate section
- Other fixes and improvements
Dependencies revisions
- intel/opencl-clang@9247630
- KhronosGroup/SPIRV-LLVM-Translator@329ab86 (for opencl-clang)
- intel/vc-intrinsics@8ee8793
- KhronosGroup/SPIRV-LLVM-Translator@2a316b13991fb32876d0275d24b472d3789a88fa(for VectorCompiler)
- llvm/[email protected]
Ubuntu 18.04 binary packages for LLVM11/Clang11 are included.
igc-1.0.9441
Fixed Issues / Improvements
- Improve redundant phi elimination
- Fixing uninitialized vISA use
- Populate vISA assembly in zeBinary
- Added first files for DG2 & PVC
- Fix the issue in SWSB dependence reduction for DPAS
- Other minor fixes and improvements.
Dependencies revisions
- intel/opencl-clang@9247630
- KhronosGroup/SPIRV-LLVM-Translator@329ab86 (for opencl-clang)
- intel/vc-intrinsics@8ee8793
- KhronosGroup/SPIRV-LLVM-Translator@db46659 (for VectorCompiler)
- llvm/[email protected]
Ubuntu 18.04 binary packages for LLVM11/Clang11 are included.
igc-1.0.9389
Fixed Issues / Improvements
- Local data flow analysis for AddrExp
- Implement support for KHR SPV-IR for OpEnqueueKernel opcode
- Call SPIRV builtins instead of OCL builtins in spinlock handling
- Enable LowerFma pass for OpenCL
- Visa Linker Driver: leave declaration of ESIMD function inside SPMD module
- BinaryEncodingIGA: Minor refactoring for regName in src creation
- Enforce HW conformity for BF mixed mode
- ZEBinary: Fix gtpin_info section generation
- Store-to-load forwarding for arguments storing on stacks (LTO)
- Don't use relocation for global variables in kernel functions
- Automatic detection of SPMD, ESIMD and SPMD+ESIMD SPIR-V modules
- Bring VC calling conv in line with IGC conv
- Added a patch for LLVM12+IGC debug build.
- Implement support for KHR SPV-IR for select functions from OpenCL Extended Instruction Set
- Introducing internal options to control 64-bit emulation
- Improve symbol relocation compile time
- VC now generates debug information for implicit arguments
- IGC: Remove vector of annotations for global/const buffers
- VC now generates debug info for localized globals
- cmabi should not set alignment when it's not needed
- Add unsinged MAD operation for JointMatrixINTEL.
Full Changelog: igc-1.0.9289...igc-1.0.9389
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/[email protected]
Ubuntu 18.04 binary packages for LLVM11/Clang11 are included.
igc-1.0.9289
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/[email protected]
Ubuntu 18.04 binary packages for LLVM11/Clang11 are included.
Full Changelog: igc-1.0.8744...igc-1.0.9289
igc-1.0.8744
Fixed Issues / Improvements
- Initial implementation of INTEL Joint Matrix SPIR-V extension,
- Fix cross-compiling elf_packager,
- LLVM 13 build fixes,
- Continued work on
DIModule
SPIRV extension, - Extend VC dumps with the debug info diagnostics,
- Other fixes and improvements.
Dependencies revisions
- intel/opencl-clang@fd68f64
- KhronosGroup/SPIRV-LLVM-Translator@c67e6f2 (for opencl-clang)
- intel/vc-intrinsics@e5ad7e0
- KhronosGroup/SPIRV-LLVM-Translator@d8d516e (for VectorCompiler)
- llvm/[email protected]
Ubuntu 18.04 binary packages for LLVM11/Clang11 are included.
igc-1.0.8708
Fixed Issues / Improvements
- Switch to LLVM11.1.0
- Part fix for buildbreak on LLVM12
- Part fix for buildbreak on LLVM13
- Fix for excessive stateless allocations
- Simplify extraction of DISubprogram node
- Support funnel shift intrinsics
- Enable madw use in i64 mul emulator.
- Forcing SIMD16 when there are too many memory access instructions
- Support for cl_khr_integer_dot_product
- Formatting fixes in DWARF emitters
- Other minor fixes and improvements.
Dependencies revisions
- intel/opencl-clang@fd68f64
- KhronosGroup/SPIRV-LLVM-Translator@c67e6f2 (for opencl-clang)
- intel/vc-intrinsics@e5ad7e0
- KhronosGroup/SPIRV-LLVM-Translator@d8d516e (for VectorCompiler)
- llvm/[email protected]
Ubuntu 18.04 binary packages for LLVM11/Clang11 are included.
igc-1.0.8517
Fixed Issues / Improvements
- Fix compile output dumping when recompilation happens
- simplify extraction of DISubprogram nodes
- Apply WA on flag spill
- regsiter allocation support for NoMask WA
- Enable madw use in i64 mul emulator
- Fix the madw issue if the dst is not GRF-aligned or the stride is not 1.
- Enabling CustomPasses for OpenCL
- Calculate correct sub-reg offset for spilled destination when preload is skipped.
- Add missing check on argument type.
- Add support for FNeg instruction uniform analysis
- Prepare VCBE to handle standalone stack calls
- Parsing Options for internal options
- Add diagnostics to GenXLegalization
- Insert extra mov to avoid immediate source for BF_CVT instruction
- Change passing -debug option to finalizer
- Add diagnostics to GenXLegalization
- Refactor SPIRV builtins related to SPV_INTEL_subgroups extension
- Mark payload live-outs as busy for gtpin.
- Remove unecessary DebugFlag enum values
- Add PatternMatch support for FNeg instruction
- Mark setup inputs as PayloadLiveOut to avoid GTPin's issue
- Fix arguments kind rewriting in bindless promotion
- Enable optimization to skip redundant fill in RMW.
- Convert URB partial writes to full-mask writes
- Fix the src/dst regioning issue in emitSimdMediaBlockWrite().
- Autogenerate getTranslatedBuiltinOperands in CMCL
- Autogenerate getTranslatedBuiltinType in CMCL
- Add an assertion in GenXAggregatePseudoLowering
- Emit error for externs unresolved during lining
- Autogenerate IntrinsicForBuiltin array in CMCL
- Remove strinstream usage causing memory freeing issues
- Add support for LLVM 12 in Vector Compiler
- Support plain samplers for ze binary
- Fix predicate commonning in GenXCategory
- Add option for scheduling control
- Apply WA on flag spill
- Autogenerate BuiltinCallHandlers array in CMCL.
- Fix use-after-free in GenXSimdCFConformance
- Fix non-deterministic processing in GenXCisaBuilder
- Fix calculation of type size for function pointers
- Mark payload live-outs as busy for gtpin.
- Allow mid-thread pre-emption even when stack calls are used.
- Preserve memory ordering in GenXBaling
- Fix FixInvalidFuncName pass
- Adding numWorkgroupUsed
- ZEBIN ELF spec update.
- Support plain samplers for OCL binary
- Treat all memory-related operations as high-cost in baling
- Refactor CMCL builtin return type definition
Dependencies revisions
- intel/opencl-clang@c8cd72e
- KhronosGroup/SPIRV-LLVM-Translator@424e375 (for opencl-clang)
- intel/vc-intrinsics@d9ffe1f
- KhronosGroup/SPIRV-LLVM-Translator@5569f6c (for VectorCompiler)
- llvm/[email protected]
Ubuntu 18.04 binary packages for LLVM10/Clang10 are included.
Update 2021-09-06 07:45 UTC: Packages uploaded at the original time of release have broken version number (1629709536). Please use newely uploaded packages with version number 8517.
Update 2021-11-17 19:57 UTC: Package with broken version number (1629709536) removed.