Skip to content

Releases: intel/intel-graphics-compiler

igc-1.0.8744

28 Sep 15:42
Compare
Choose a tag to compare

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

Ubuntu 18.04 binary packages for LLVM11/Clang11 are included.

igc-1.0.8708

20 Sep 18:59
Compare
Choose a tag to compare

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.

igc-1.0.8517...igc-1.0.8708

Dependencies revisions

Ubuntu 18.04 binary packages for LLVM11/Clang11 are included.

igc-1.0.8517

01 Sep 07:15
Compare
Choose a tag to compare

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

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

17 Aug 13:51
Compare
Choose a tag to compare

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

Ubuntu 18.04 binary packages for LLVM10/Clang10 are included.

igc-1.0.8279

10 Aug 08:50
Compare
Choose a tag to compare

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

Ubuntu 18.04 binary packages for LLVM10/Clang10 are included.

igc-1.0.8173

03 Aug 09:44
Compare
Choose a tag to compare

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

Ubuntu 18.04 binary packages for LLVM10/Clang10 are included.

igc-1.0.7862

06 Jul 08:31
Compare
Choose a tag to compare

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

Ubuntu 18.04 binary packages for LLVM10/Clang10 are included.

igc-1.0.7781

28 Jun 15:16
Compare
Choose a tag to compare

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

Ubuntu 18.04 binary packages for LLVM10/Clang10 are included.

igc-1.0.7712

22 Jun 07:08
Compare
Choose a tag to compare

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

Ubuntu 18.04 binary packages for LLVM10/Clang10 are included.

igc-1.0.7683

14 Jun 10:24
Compare
Choose a tag to compare

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

Ubuntu 18.04 binary packages for LLVM10/Clang10 are included.