Releases: intel/intel-graphics-compiler
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.
igc-1.0.8365
Fixed Issues / Improvements
- Added a new BB type
FCALL_TYPE
, - Outline math built-ins into a seprate file,
- Constant fold add3 in vISA,
- Fix race condition in SIP,
- Fix SkipBitCast not to skip pointer casts when address space changed,
- Other minor fixes and improvements.
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.
igc-1.0.8279
Fixed Issues / Improvements
- Open source the ALDERLAKE_P,
- IGA update for GED0.97.1,
- Enable merging basic blocks if possible,
- Enable IR verification passes in debug builds for VC,
- Introducing ShaderDumpFilter,
- Implemented i64 emulation for long->double conversion builtins,
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.
igc-1.0.8173
Fixed Issues / Improvements
- Fix SIMD-32 insertelement
- Add missing DP4A definitions for VectorCompute
- Fix bug in the global token allocation in SWSB
- Support for SPV_INTEL_bfloat16_conversions
- Fix stack call ret size calculation.
- Increase threshold for HPC compilation
- Fix build break on Fedora34
- Fix a bug when deciding whether fill is redundant in
read-modify-write spill - Improve memory intrinsics width legalization
- Other minor fixes and improvements.
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.
igc-1.0.7862
Fixed Issues / Improvements
- Enable aligned scalar split pass.
- Propagate HasBarrier flag from stack call functions to kernel.
- Optimize metadata saves to reduce compilation time.
- Fix in aligned scalar split to not insert copy for pseudo kill and pseudo use.
- Implement support for Khronos SPV-IR for Group opcodes.
- Use max PTSS supported when using stack calls as estimating size needed to store BE stack is not always possible.
- Fix the issue that immediate operand type must be :ud for addc and subb opcodes.
- Fix propogation of uniformity through uitof.
- Implement support for Khronos SPV-IR for OpImageSampleExplicitLod&OpSampledImage.
- Change Emulation replacement for logic operations(and, or, xor).
- Support forward declared pointer type as a function paramter in SPIRVReader
- Replace type pointers by ids in SPIRVTypeFunction.
- Support string selection indexing in GenXPrintfLegalization.
- Updated printing of decoded debug info.
- Add new flag for supporting legacy and new bindless buffer modes.
Dependencies revisions
- intel/opencl-clang@c8cd72e
- KhronosGroup/SPIRV-LLVM-Translator@424e375 (for opencl-clang)
- intel/vc-intrinsics@069ced1
- KhronosGroup/SPIRV-LLVM-Translator@9d8d032 (for VectorCompiler)
- llvm/[email protected]
Ubuntu 18.04 binary packages for LLVM10/Clang10 are included.
igc-1.0.7781
Fixed Issues / Improvements
- Move types legalization from SPIRV Translator to OCL Unification,
- Allow controling SPV-IR version in BiFModule from cmake level,
- Correcting the frc intrinsic definition,
- Enable auto register selection,
- vISA: Fixed platform name in needIPWA,
- Pattern match for loads from a pointer coming from another load,
- ZEBinary: use unique_ptr and fix typos,
- Combining icmp and xor in CustomSafeOptPass,
- Consider vector of pointers in GenXVisaRegAlloc::getRegForValueOrNull,
- Enabled more passes for igc_opt,
- Add simplify regions pass,
- Fix CMABI pointers to copy-in/out transformation,
- Allowing to combine canonicalization and saturation Considering mix mode operations for flushing denorms to zero,
- Disable unsafe math for builtin fp64 math functions,
- Enable aligned scalar split pass,
- Report the number of send stall cycles in program output,
- Generate implicit printf buffer arg in zebin,
- Update copyright headers,
- Use ABI alignment if none specified in constant encoding,
- Add conditions to keep code hw conformant after aligned scalar split pass,
- Minor refactoring of label creation facilities in VC CisaBuilder,
- Fix warning reported by static analysis tool,
- Aligned scalar split pass is run only in first GRA iteration, if it spills. This helps target optimization to programs that may spill,
- Seperate flag pointing out SPIRV Khronos Translator usage between scalar and vector compiler,
- LLVM11 oriented fixes,
- Disable CMABI pass for indirectly called functions,
- Fix in remat when looking up variable references. Lexical id of last use was incorrectly populated in some cases,
- Fixup constness of some fields in FunctionGroup classes,
- Fix invocation of Dominator::dominates() method when detecting loops. Added new API G4_BB::dominates() that internally runs dominator pass,
- Other fixes and improvements.
Dependencies revisions
- intel/opencl-clang@c8cd72e
- KhronosGroup/SPIRV-LLVM-Translator@424e375 (for opencl-clang)
- intel/vc-intrinsics@069ced1
- KhronosGroup/SPIRV-LLVM-Translator@9d8d032 (for VectorCompiler)
- llvm/[email protected]
Ubuntu 18.04 binary packages for LLVM10/Clang10 are included.
igc-1.0.7712
Fixed Issues / Improvements
- Enable vISA for XeHP platform.
- Fix memory overwriting in TPM.
- Create FunctionCloningThreshold flag to limit the number of times functions can be cloned.
- Removing duplicated code to optimize loads.
- Add support for noalias/alias.scope.
- Enabling CustomPasses for OpenCL.
- Updates IGA.
- Other minor fixes and improvements.
Dependencies revisions
- intel/opencl-clang@c8cd72e
- KhronosGroup/SPIRV-LLVM-Translator@424e375 (for opencl-clang)
- intel/vc-intrinsics@069ced1
- KhronosGroup/SPIRV-LLVM-Translator@9d8d032 (for VectorCompiler)
- llvm/[email protected]
Ubuntu 18.04 binary packages for LLVM10/Clang10 are included.
igc-1.0.7683
Fixed Issues / Improvements
- Create FunctionCloningThreshold flag to limit the number of times functions can be cloned.
- Fixed small typo from LegalizeFunctionSignatures pass.
- Support vector of pointers bitcasts in GenXPromoteArray.
- Add a key EnableVISADCE to control visa DCE.
- Add registry key control to total GRF number
- Remove deprecated code from label creation routines in VC backend.
- Introduce vector combiner pass.
- Support more vector instructions in InstRebuilder.
- LLVM11 upgrade oriented fixes.
- IGA: Add XEHP platform.
- Allowing to combine canonicalization and saturation Considering mix mode operations for flushing denorms to zero.
- implement proper error reporting for the case when VC platform selector could not determine target platform.
- Add check during parsing clang tool version.
- Optimize mergeScalar pass to benefit more cases.
- Improving reporting for CISA builder creation error
- Set DispatchGPGPUWalkerAlongYFirst default to 1.
- Avoid dst/src overlap for indirect access operand.
- For mergeLoad, make sure to sort mergable loads first so that we will merge as large as possible.
- Fixup lowering of boolean shufflevector for pseudoscalar case in VC.
- Embed debug info in zebin.
- Avoid producing 'rndz' instruction operating on double.
- Disable unsafe math for builtin fp64 math functions.
- Fix memory overwriting in TPM
- Support for SPV_INTEL_token type in IGC SPIRV Consumer.
- Move addLoop API to LoopDetection class.
- Added GTPIN_XEHP_CORE enum value.
- Fixup DG1 platform selector for VC.
- Enable merging of non-uniform stateful UBO loads by default.
- Finalize DG1 open sourcing for VC backend
- Assert InstToRebuild structure validity.
- Disallow remat to optimize mov inserted by aligned scalar split pass.
- Check in LVN whether def covers full use.
- Remove superfluous assert in RectListOptimizationPass.
- ZEBinary: move global/const symbols to program scoped IR
- Update constant coalescing pass to merge non-uniform loads when promotion to sampler is disabled.
- Improving reporting for CISA errors
- Add missing debug line info in FixAddrSpaceCast pass case 1
- Fix the global token assignment algorithm to consider the src token
- updated copyright headers in IGC/VectorCompiler
- vISA BinaryEncodingIGA: Clear send EOT bit in ExDesc only on Xe+
- Type Legalization issue with resolving PhiNode Value
- take proper lldELF for custom prebuilds
- After skipping DCE output variables, re-enable DCE. (this is the 3rd try.)
- Enable strict internal options parser in vc
- Implement support for both SPV-IR forms of vstore builtins
- Implicit support for both SPV-IR forms of OpGroupAsyncCopy and OpGroupWaitEvent
- If a var is output, it cannot be DCE'ed
- Enable omission of private/local address space checks for generic pointer load/store.
- Fix the issue of linear scan RA in case empty liveness.
- Enable lldELF usage.
- GenXLowering handle llvm gather and scatter llvm masked load and store.
- Add missing intrinsics to WIAnalysis
- Ignore scalar api options in vc option parser
- Fix dwarf column info option description
- Add IGC options to option parser
- VC should be able to calculate 32-bit constant subregion from a 64-bit one
- Register demotion after function vectorization. This makes vectorization easier, but we need to handle phi properly.
- Include the ElfPackager in compilations.
- Avoid dynamic generic pointer resolution branches if possible.
- Fix HandleLoadStoreInstruction emit wrong IR
- Updates code responsible for finding common base and offset for buffer loads. Detect
or+add
pattern. - Remove symbol table duplication in VC.
- Reduce the number of non-uniform loads produced by constant coalescing.
- Correctly handle a barrier with both global and local memory fence semantics.
- Enable EmitDebugLoc reg key by default. Reduce threshold to coalesce to avoid false positive.
Dependencies revisions
- intel/opencl-clang@c8cd72e
- KhronosGroup/SPIRV-LLVM-Translator@424e375 (for opencl-clang)
- intel/vc-intrinsics@069ced1
- KhronosGroup/SPIRV-LLVM-Translator@9d8d032 (for VectorCompiler)
- llvm/[email protected]
Ubuntu 18.04 binary packages for LLVM10/Clang10 are included.