Skip to content

Releases: intel/intel-graphics-compiler

igc-1.0.9289

23 Nov 12:11
Compare
Choose a tag to compare

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

Ubuntu 18.04 binary packages for LLVM11/Clang11 are included.

Full Changelog: igc-1.0.8744...igc-1.0.9289

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.