97 Commits

Author SHA1 Message Date
6057876654 Improve disable inlining pass
Remove always inline attribute from call instructions to prevent
LLVM inliner from inlining them.
2025-10-28 14:47:19 +01:00
f59fbf1a03 Unify regkey for simd16 drop for XE2 and XE3
Simplify logic by using common key, instead having seperate keys.
2025-10-28 11:15:42 +01:00
fd46428741 Switch builds to LLVM 16 and update docs
Switch builds to use LLVM 16. Updated the documentation to treat LLVM 16 as default.
Refreshed parts of buildIGC.sh regarding supported versions. Fixed a bug when setting a variable in buildIGC.sh to a default value.

Force enabled exceptions for VC. This is a workaround while we're investigating why they're disabled.
2025-10-24 12:25:56 +02:00
5689ca664f Update IGC flag documentation.
Update IGC flag documentation.
2025-10-23 12:02:15 +02:00
6b02723b76 IGC_StackOverflowDetection documentation
Add StackOverflowDetection.md documentation.
2025-09-30 16:46:37 +02:00
98feff653c [Autobackout][FunctionalRegression]Revert of change: 025e40ef8f: IGC_StackOverflowDetection documentation
Add StackOverflowDetection.md documentation.
2025-09-30 05:28:24 +02:00
025e40ef8f IGC_StackOverflowDetection documentation
Add StackOverflowDetection.md documentation.
2025-09-29 12:24:38 +02:00
3a51b5f55c Update IGC flag documentation.
Update IGC flag documentation.
2025-09-25 12:25:19 +02:00
47abdf7cd0 Add zstd to build scripts
Add zstd to build scripts
2025-09-05 15:28:49 +02:00
d19cdc5a52 Refactor ZEBinary flags and documentation
Refactored all conditions based on enableZEBinary() and supportsZEBin(), as if they were always true. Removed said conditions.
2025-08-13 09:05:48 +02:00
c8ee2afd36 Update docs
Removed old information from docs and updated script snippets to be
easily copyable for user experience.
2025-07-22 14:31:04 +02:00
4c0406ad9f Clean up dead code related to patch token binary format deprecation
Cleaned up dead code that's related to patch token binary format deprecation. Removed unused code, adjusted some comments.
Most of these changes are related to previous commits that deprecated the format in VC and OCL.

Some parts are still to be refactored, this doesn't cover all patch token code.
2025-07-11 14:45:04 +02:00
49dd7c3bd5 Aligned LLVM version in verification builds with current production. 2025-05-22 17:00:12 +02:00
fc186d80af Add flag to control dumping spvasm file
We need spvasm file only for debugging purposes, so we can disable it by default.
2025-05-08 17:31:48 +02:00
f581bc6777 Synchronization between branches
Synchronization between branches
2025-05-08 16:12:06 +02:00
bc1cca69ca In proceed-loop rayquery throttling, insert check before TraceRayInline
TraceRayInline is lowered to stores to the RTStack.
So, if there was a shader with the following pattern:
```cpp
RayQuery q;
q.TraceRayInline();
while(q.Proceed())
{
    ...
}
```

We would turn it into:
```cpp
RayQuery q;
q.TraceRayInline();
RQCheck();
while(q.Proceed())
{
    ...
}
RQRelease();
```

But what we want is:
```cpp
RayQuery q;
RQCheck();
q.TraceRayInline();
while(q.Proceed())
{
    ...
}
RQRelease();
```
2025-05-07 17:59:44 +02:00
bbdb2be0ad Add flag DisableWarnings
Added flag DisableWarnings - which will disable all warnings generated by IGC compiler.
2025-05-06 16:16:29 +02:00
f21e201358 Update VISA documentation 2025-02-07 14:13:48 +01:00
15449850e4 Update vISA spec
Closes https://github.com/intel/intel-graphics-compiler/issues/312
2024-10-21 13:00:19 +02:00
b64cc16611 Add flag ForceRetryManager
Add flag ForceRetryManager which will enforce the RetryManager to make recompilation of the kernels. Only for debug purposes.
2024-09-30 14:04:14 +02:00
6729f9847a Add (disabled) immediate offset capability of 2D block
intrinsics

This change adds the capability to enable the use of automatic immediate
offset for 2d block intrinsics. Currently, the pass requires the env var
`allowImmOff2DBlockFuncs` to be turned on manually, since I have not yet done
adequate testing, but enabling the feature is now trivial.

I also refactored the code, to make future optimizations easier to
implement; it is now easy to introduce new set intrinsics for other
parameters of the payload (not enabled now by default), and should be
easier to add the "increment" mode functionality of the
LSC2DBlockSetAddrPayloadField intrinsics.

This change should not affect compiler behaviour. Once one of the
features that this change facilitates is found to be advantageous, it
can be enabled.
2024-09-27 00:30:47 +02:00
8fef5c96a4 Add ScalarAliasBBSizeThreshold flag
Add flag to control max size of BB for which
scalar to vector aliasing will apply.
2024-09-13 19:35:31 +02:00
01453a3c41 Remove unnecessary dependency in loop
This pass is designed to remove fantom dependency in a loop.
When value that we get from PHI, is a vector, that is completely overwritten
inside loop body and no other uses, then replace this value with usage of undef.
2024-09-13 01:20:51 +02:00
41e7eaf134 Expanding Decompose2DBlockFuncs hoisting opportunities
2D block decomposition in the Decompose2DBlockFuncs pass was not performed in some test cases because the LLVM isLoopInvariant() checks only that the args of the instruction are outside the loop. Moving the pass after an LICM call makes this correct.

Payload hoisting was not performed in some cases because of interfering intrinsics that disrupted the implicit control flow. We can assume, however, payload is speculatable when we are sure we are never changing it in the loop body, fixing this issue.

I also added an IGC flag for easier testing of this feature.
2024-08-20 16:55:03 +02:00
2e18a61db2 Documentation sync
Sync the documentation with igc_flags.h
2024-06-28 11:50:20 +02:00
f13266aaa6 Documentation update
Documentation update integrating community suggestions

- https://github.com/intel/intel-graphics-compiler/issues/295
- https://github.com/intel/intel-graphics-compiler/pull/300
- https://github.com/intel/intel-graphics-compiler/pull/298
- https://github.com/intel/intel-graphics-compiler/issues/309
- https://github.com/intel/intel-graphics-compiler/pull/317

Co-authored-by: Rohan Udupa <86579136+lab596@users.noreply.github.com>
Co-authored-by: Mustafa Uzun <mustafauzun0@gmail.com>
Co-authored-by: Sasank Chilamkurthy <sasank@von-neumann.ai>
2024-05-08 13:02:18 +02:00
2a3b231ed5 Remove DispatchOCLWGInLinearOrder flag.
The DispatchOCLWGInLinearOrder flag is no longer needed because the workgroup vectorization order is fixed.
2024-04-26 07:29:12 +02:00
9deaebf841 Get rid of unnecessary TF32 to Float conversion
Remove unnecessary TFloat32 to Float conversion, since TFloat32 is already valid Float
Update F -> TF32 conversion API to use floats to match dpas interfaces and avoid unnecessary float->int conversions
Update F -> TF32 conversion API to match naming convention used in cl_intel_bfloat16_conversions (khronos.org)
2024-04-10 20:11:08 +02:00
e749f1fdbf [Autobackout][FuncReg]Revert of change: 2ebc9587f4
Remove DispatchOCLWGInLinearOrder flag.

The DispatchOCLWGInLinearOrder flag is no longer needed because the workgroup vectorization order is fixed.
2024-03-23 06:30:27 +01:00
2ebc9587f4 Remove DispatchOCLWGInLinearOrder flag.
The DispatchOCLWGInLinearOrder flag is no longer needed because the workgroup vectorization order is fixed.
2024-03-22 11:07:16 +01:00
4b43ad2642 Improve EnableKernelNamesBasedHash description.
Add a comment on .cl hash and about overwriting existing dumps.
2024-03-19 15:44:08 +01:00
b077b43fa6 Fix github action build
Fixed dependency isses in github actions
2024-02-08 17:05:47 +01:00
90bc769fc6 Add ShaderDebugHashCodeInKernel for linux
Debug Mov hash code for linux
2023-11-30 11:58:19 -05:00
41daa8014a Update warning msg and docs
The warning message for displayed upon VLA detection is confusing for
people not familiar with IGC flag usage. This commit makes it more clear
and adds a link to documentation on flag usage.
2023-11-09 05:51:54 -05:00
37ea744930 Always use bufferOffset for unaligned pointers
When a pointer to SVM is not aligned to 4 bytes, Neo aligns it and stores
a difference between aligned and unaligned pointer into `bufferOffset`
argument, so that IGC can correctly access the memory. Neo must align
the pointer since hardware expects surface state base address to be
aligned to 4 bytes.

This change prevents optimizing `bufferOffset` argument usage out when
IGC cannot assure that a pointer is 4 bytes aligned.
2023-10-17 18:03:07 +02:00
5136a857d6 Add support for ".uniform" modifier in ifcall instruction
Add support for ".uniform" modifier in ifcall instruction.

When IGC marks an ifcall as uniform, VISA skips running special EU
fusion call WA when -fusedCallWA = 2.
2023-08-25 06:30:52 +02:00
4730dcb252 AIL to disable mad match for CS
Add new AIL to disable mad match for CS.
2023-08-08 23:31:54 +02:00
3abdf20934 [Autobackout][FuncReg]Revert of change: 047050c548
AIL to disable mad match for CS

Add new AIL to disable mad match for CS.
2023-08-05 08:26:31 +02:00
047050c548 AIL to disable mad match for CS
Add new AIL to disable mad match for CS.
2023-08-03 22:15:57 +02:00
412e24db04 Switch ByPassAllocaSizeHeuristic flag to be available in rel
The flag ByPassAllocaSizeHeuristic was unabailable in release driver
version which caused difficulties debugging. This commit switches the
flag release mode to true.
2023-07-13 13:09:36 +02:00
d20c5a10a3 Add ocloc lit tests
Add ocloc lit tests
2023-07-10 09:13:38 +02:00
5ea7ac05d6 Add igc flag to control selective loop unrolling
Add igc flag to control selective loop unrolling for DP emu
2023-06-22 07:33:51 +02:00
a2ffdaeb73 Expose DisableLoopUnroll flag for linux release mode
Expose DisableLoopUnroll flag for linux release mode
2023-06-14 17:18:17 +02:00
ca387ba1be Switch IGC to LLVM 14
Upgrade the default LLVM version, build instructions and build verification
actions.
2023-05-23 13:04:33 +02:00
39a43c18cb Specification for generic pointers handling
Specification for generic pointers handling on IGC Scalar compilation path
2023-02-27 12:54:57 +01:00
ae258a3747 Added a script to refresh configuration flags
Added a script that updates the configuration_flags.md file
with all the latest Linux release flags.
2023-02-23 16:14:37 +01:00
535d40a879 Update vISA documentation
Update vISA documentation to latest version
2023-01-26 10:39:13 +01:00
aadeaaad54 Build ubuntu documentation update
Updated the build ubuntu documentation regarding recent building update.
Additionally corrected some typos and rephrased some expressions.
2022-12-30 12:15:21 +01:00
dc8a296aa1 Add LLVM 15 build to public Github Actions
Verify IGC buildability with LLVM 15 via GH actions. Now that API
compability has been achieved, update the documentation accordingly.
2022-12-14 16:40:47 +01:00
dbf71b4e6b Add documentation for flag ShaderPassDisable
Add documentation for flag ShaderPassDisable
2022-10-17 19:11:12 +02:00