Releases: intel/intel-graphics-compiler
Releases · intel/intel-graphics-compiler
igc-1.0.3899
Fixed Issues / Improvements
- Fix for setting Src1.Length in IGA IR.
- Small refactor to render taget write code generation.
- Avoid splitting RetVal variable into two.
- Not limiting the loop unroll to small loops for high register pressure shaders if constant folding
- Handling the math intrinsics in FindInterestingConstants pass.
- Improve MergeURBWrites to also merge URBWrite instructions with dynamic URB offsets.
- Add support to dump GRF usage chart per instruction. Fix some bugs with variable splitting.
- Add GTPin flags to support L0 driver path
- relax ACC substitution constraints
- Improve ConstantBufferCount estimate
- Merge from IGA; includes new platforms and some IGA IR refactoring.
- Fix to handle a infinite loop stuck issue leading to compilation hang.
- Using attribute SpillMemOffset instead of option -spillMemOffset, so that it is encoded in isa binary.
- Refactor to avoid hard-coded simd size for vertex shader compilation.
Ubuntu 18.04 binary packages for LLVM10/Clang10 are included.
igc-1.0.3864
Fixed Issues / Improvements
- Fix get_sub_group_id builtin handling
- Remove unused GTPin vISA option
- Further refactoring of vISA attributes
- vISA will use dispatch SIMD size from an attribute instead of scanning all instructions
- Fix to handle a infinite loop stuck issue leading to compilation hang
- Fix the performance regression caused by scalar suppression
- Refactor pixel shader code gen to avoid hard-coding SIMD size and GRF size
- Fix to SIMD16 shuffle down
- Add possibility to control partial component packing via shader metadata
- Fix sub_group_clustered_reduce_* on 64-bit types
- Extend LVN to detect more instructions
- Use attributes to get attributes names instead of hard-coding them wherever possible
- Added SimdSize kernel attribute (not used yet)
- Added sin/cos to sinpi/cospi optimization to improve performance
- Fixed the BCR static check
- Added getPlatform() function to IR_Builder and G4_INST
- Fixes in L0 tests
- Added vISA documentation
- Minor cleanup for G4_Declare
- Fixes for getAttributeID (searching all attributes instead of only kernels')
- Fix for subgroup_scan_exclusive for char and short
- Updated fcl interface to latest
- Added include guards, needed overrides, and some miscellaneous path fixes
- Added a debug knob to change the max block push constants threshold.
- Other minor bugfixes and improvements
Ubuntu 18.04 binary packages for LLVM10/Clang10 are included.
igc-1.0.3826
Fixed Issues / Improvements
- Indirect call support in SWSB.
- Avoid hard-coded SIMD size checks for sampler payload coalescing.
- Enable EnableBCR and VISAOptions flags for linux release.
- Extend LVN to detect more instructions.
- Fix a break in subroutine returns.
- Avoid hard-coding execution size for vISA sampler messages.
- Emu64bit support for stack/indirect function calls.
- Minor fixes and improvements.
Ubuntu 18.04 binary packages for LLVM10/Clang10 are included.
igc-1.0.3771
Fixed issues/improvements:
- Fix send payload coalescing when a source is larger than two GRFs.
- Group instructions together for performance.
- Check dangling constant users for Function/Global symbols, before iterating through the user list.
- Add the debug flags to limit number of constants to fold.
- Fix 64-bit multiplication emulation where the result is one of the factors.
- Fix translation of operation parameter of OpGroupNonUniformBallotBitCount.
- Verification pass for explicit variable split phase. Pass can be enabled using -verifysplit switch.
- Enable integer mad by default for OCL.
- Support function symbols used by Constants. MemOpt may combine multiple function address symbols into a single constant for load/store. Updating codegen to support this.
- Optimize indirect calls with function groups using LLVM !callees metadata. Fixed a few existing bugs, and removed the pass from OptimizeIR.
- Checking in FindInterestingConstants changes to return constants in sorted order.
- Fix translation of BallotBitCOunt in SPIRV Reader.
- Skip bank conflict hint for split variables to increase coalescing chances.
- Fix ASR offset for signed extend 32-bit value to 64-bit.
- Fix incorrect specialization constants reuse by subsequent SPIR-V modules.
- Skip trivial RA when variable split is done to avoid generating extra movs.
- Fix specialization constants for linking path.
- Enable explicit variable splitting and disable existing local split.
- Promote to stateful if GEP is not existed and address type is DW-aligned.
- Bail out from mad optimization if one of the operand is INF.
- And other fixes and performance improvements.
Ubuntu 18.04 binary packages for LLVM10/Clang10 are included.
igc-1.0.3698
Fixed issues/improvements:
- IGC now links with LLVM10,
- Emulation of 64-bit subgroup arithmetic and clustered non-uniform functions for platforms not supporting 64-it type natively,
- Fixes to cl_khr_subgroup_shuffle_relative and cl_khr_subgroup_clustered_reduce,
- Skip prefixes when parsing build options,
- Indirect address access is not allowed when dst is accumulator,
- Fix for SubgroupLtMask,
- Using local fences for local atomics,
- Fix sub_group_shuffle_down for long and double,
- Fix local block read builtins,
- Other fixes and improvements.
Ubuntu 18.04 binary packages for LLVM10/Clang10 are included.
igc-1.0.3627
Fixed Issues / Improvements
- Fixed kernel args iterator that causes compile error.
- Following llvm style for print and dump function.
- Fix for derived constants optimization.
- Fix FNeg intrinsic-function for the vector type.
- Emulation of 64-bit subgroup arithmetic and clustered non-uniform functions for platforms not supporting 64-bit type natively.
- SWSB: Ignore sync's dependency.
- Update GED for compact encoding.
- Minor fixes and improvements.
Ubuntu 18.04 binary packages for LLVM9/Clang9 are included.
igc-1.0.3586
- Support for extended subgroup functions.
- Improve IGCConstProp pass to support constant folding in rounding-mode-specific GenISA intrinsics.
- Add sat and overflow operation support for add and sub.
- Fixes realted to cl_khr_fp16 and cl_khr_fp64 types.
- Introduce inline asm support for SPIRV reader.
- Handling of splitting of rare regions like r[a0.0]<2,0> correctly.
- Small CMake path change
- Refactor IEEE FP32 divide/sqrt macro to avoid hard-coded execution size.
- Fixing the implementations of FENCE_PRE_OP and FENCE_POST_OP. The OCL’s GPU memory model problem was originally identified and reported by Tyler Sorensen and Jake Kirkham from Princeton University.
- Add address register initialization on ICL platform.
- Implement scratch space allocation for CMC thread-private memory.
- Increase OCL inlining threshold to 4500 to resolve the performance regression reported.
- And other bug fixes.
Ubuntu 18.04 binary packages for LLVM9/Clang9 are included.
igc-1.0.3529
Changelog
- Add VF immediate support for divm/sqrtm/pow,
- Emit scalar atomic load,
- Fix vISA options printing in the .asm file,
- Set loop unroll threshold for high register pressure shaders via IGC flag,
- Control the register pressure threshold used to limit the loop unroll to smaller loops via IGC flag,
- Support struct type return values for caller/callee,
- Dumping basic-blocks type by name,
- Support for cl_khr_subgroup_extended_types,
- Fixed referencing null iterator when KernelArgs size is 0,
- Added an ocl internal option -cl-intel-vector-coalesing=<0-5> to control vector coalescing,
- Fix alignment for MemCpy instructions,
- Added SPIRV-Tools configuration.
Ubuntu 18.04 binary packages for LLVM9/Clang9 are included.
igc-1.0.3471
Fixed Issues / Improvements
- Fix for gtpin when stackcall is enabled. rera pass is off, free GRFs are not computed.
- Add gen11 and gen 12 debug SIPs.
- Adding new compile time macros.
- Add a legalization check on scalar byte to half conversion.
- Minor fixes and improvements.
Ubuntu 18.04 binary packages for LLVM9/Clang9 are included.
igc-1.0.3445
- Handle the splitting of Vx1
- Modify spill/fill intrinsics' offset units.
- Support for hardware native atomic subtract.
- Add interface with dualsubslice information.
- Adding a configuration flag for enforcing double precision floating point emulation on unsupported platforms as an experimental feature.
- Fix live-interval in debug info when trivial RA is run.
- Fixing regression caused by wrong rounding.
- Don't do integer mad if thre are more than 1 immediate sources.
- Avoid splitting an instruction with byte dst into even/odd when one of its sources has vertical stride 32.
- Cache debug source line information during assembly dump.
- Fix for subgroup function resolution.
- Add Induction Variable Elimination pass.
- Remove redundant goto instructions.
Ubuntu 18.04 binary packages for LLVM9/Clang9 are included.