Commit Graph

18372 Commits

Author SHA1 Message Date
7c6de8c318 Use ZEBinary symbol tables instead of legacy types
Changed usages of legacy symbol table structures (m_funcSymbolTable) to ZEBinary structures (m_symbols).
Removed VC/LegacyInfoGeneration source files, as they're not needed after deprecating legacy relocations and symbols.
2025-08-07 23:59:08 +02:00
d0eb845ba2 Change schedule priority according to dep type
For barrier dep, shouldn't use latency cycle to calcuate priority, because barrier is order issue, not the latecy issue. Use occupancy steady.
2025-08-07 23:31:22 +02:00
a17ec75191 Implement dynamic alloca-related memory operation cost reduction for loop unrolling
Implement dynamic alloca-related memory operation cost reduction for loop unrolling
2025-08-07 22:49:28 +02:00
0b245dfa00 Elevate unknown platform assert to error
Change the IGC_ASSERT to exit(1) to elevate the severity of a missing platform.
v2.17.0
2025-08-07 16:31:55 +02:00
151f84e81b Change default inline raytracing enabling
Change default inline raytracing enabling
2025-08-07 12:27:50 +02:00
82a03f3d5d Make VRT GRF sizes backward-compatible in VC
If VRT GRF size is not supported for given platform,
VC will look for closest largest value, e.g. on Xe2:
64->128, 96->128, 192->256.
2025-08-06 17:44:24 +02:00
d45ee23fd6 Revert "Remove workaround -Wno-error=implicit-int Attempt 2"
Revert
2025-08-06 16:33:07 +02:00
610badcf18 Enable SIMD16 drop for more platforms
Enable abort on spills to SIMD16 for more platforms.
2025-08-06 12:43:20 +02:00
937b6075bb Force support and usage for dynamic BTIs allocation
Refactored conditions based on the supportDynamicBTIsAllocation() condition, as if it was always true. It depended on ZEBinary format usage, which is always used.
2025-08-06 12:28:05 +02:00
d0a9af74c2 Revert Don't partially set signal handlers
Don't partially set signal handlers
2025-08-06 11:37:54 +02:00
748987f3aa Fix bug of sendg
For multiple define registers, don't remove the corresponding mov
instruction
2025-08-06 01:43:07 +02:00
8553c8d506 [Autobackout][FunctionalRegression]Revert of change: 945aad6db3: Fix bug of sendg
For multiple define registers, don't remove the corresponding mov
    instruction
2025-08-05 12:16:05 +02:00
885fc99b4b small refactor
small refactor
2025-08-05 09:58:43 +02:00
945aad6db3 Fix bug of sendg
For multiple define registers, don't remove the corresponding mov
instruction
2025-08-05 09:09:47 +02:00
86120427ff [Autobackout][FunctionalRegression]Revert of change: 0a4d70f134: Add GenericCastToPtrOpt pass
In cases where we have no local casts to generics and we allocate
    private memory in global space, we can replace GenericCastToPtrExplicit
    with simple address space cast.
2025-08-04 23:17:27 +02:00
0a4d70f134 Add GenericCastToPtrOpt pass
In cases where we have no local casts to generics and we allocate
private memory in global space, we can replace GenericCastToPtrExplicit
with simple address space cast.
2025-08-04 14:55:51 +02:00
04d2e53754 small code refactor
small code refactor
2025-08-03 23:38:19 +02:00
70430859ad [Autobackout][FunctionalRegression]Revert of change: 5f467c758e: Make VRT GRF sizes backward-compatible in VC
If VRT GRF size is not supported for given platform,
    VC will look for closest largest value, e.g. on Xe2:
    64->128, 96->128, 192->256.
2025-08-03 01:55:28 +02:00
d99d27fe14 Add internal uus_add instruction
.
2025-08-01 19:44:57 +02:00
5f467c758e Make VRT GRF sizes backward-compatible in VC
If VRT GRF size is not supported for given platform,
VC will look for closest largest value, e.g. on Xe2:
64->128, 96->128, 192->256.
2025-08-01 17:49:25 +02:00
0ae1ac3028 Disable common kernel pattern matching on XE3
On XE3 we measure lower speeds with forced recompilation for
common  kernels.
2025-08-01 16:06:27 +02:00
4dd7bf4998 Unused bindless image args treated as bindless fix.
When emitting zeinfo IGC tags addr mode of images with no users as
stateful even if the module is compiled to use bindless images. This
caused NEO to throw an error as it disallows the use of both bindless
and bindful mode in the same module.

This commit sets the default addr mode to bindless for modules that have
UseBindlessImage set to true.
2025-08-01 15:43:37 +02:00
8a4dd2ccf4 [Autobackout][FunctionalRegression]Revert of change: 317c92a13a: mark intrinsics as convergent
mark intrinsics as convergent
2025-08-01 06:36:45 +02:00
f256b43e7e Refactor HoistConvOpToDom and PromoteToPredicatedMemoryAccess
1. Update the HoistConvOpToDom pass to handle more corner cases.
2. Refactor the PromoteToPredicatedMemoryAccess pass to improve its structure and readability.
3. Add new tests to improve code coverage.
2025-07-31 22:16:31 +02:00
6f3f54cbe8 Fix typo in ocloc test RUN command.
Ocloc test generate_enum.ll contains a command that looks for a file
name that does not exist, because of lack of match with kernel name.
This causes verify build to fail.

This commit changes the kernel name to 'foo' to remedy this issue.
2025-07-31 20:40:43 +02:00
192e16df2e Recognize string as printf string, when any of uses is printf (#23337)
Currently constnt string literals used only by printf are recognized
as printf strings and are stored in constant buffer. But when there is
reference to that string, even unused it's no longer recognized as printf
string and it's content is stored in .global buffer. This can lead to
segfault in runtime, as when trying to use printf it will recieve GPU
pointer.

Co-authored-by: Skobejko, Milosz <milosz.skobejko@intel.com>
2025-07-31 17:38:03 +02:00
065b904424 Add support for llvm::Type* in metadata framework
Allow creating metadata nodes with `llvm::Type*`.
2025-07-31 12:29:37 +02:00
b43a30ff63 Update MaskCtl for all the instructions in SIP code correctly
Update MaskCtl for all the instructions in SIP code correctly
2025-07-31 11:55:04 +02:00
13931ccf85 [Autobackout][FunctionalRegression]Revert of change: 964f83bf0c: Enable Code Scheduling on recompilation
Enable Code Scheduling on recompilation
2025-07-31 11:12:35 +02:00
317c92a13a mark intrinsics as convergent
mark intrinsics as convergent
2025-07-31 01:41:45 +02:00
9e5dd7723c [Autobackout][FunctionalRegression]Revert of change: 50ad1b5847: Add support for llvm::Type* in metadata framework
Allow creating metadata nodes with `llvm::Type*`.
2025-07-31 01:04:55 +02:00
e22e2a823a Adjust LITs to work on LLVM 16 with both opaque and typed pointers
Adjustments to RUN lines to make tests run on LLVM 16 with both opaque
and typed pointers. By default, LLVM 16 tools emit opaque pointers,
while IGC pointer typing can be controlled with a flag. This change
ensures the typing is enabled/disabled explicitly.
2025-07-30 22:09:30 +02:00
447e2450b9 Changes in code. 2025-07-30 20:00:55 +02:00
71d72694ae IGCVectorizer do not process <1 x float>
Additional check that fixes the bug with <1 x float>
dpases.
2025-07-30 19:20:03 +02:00
e5660e3615 Adjust LITs to work on LLVM 16 with both opaque and typed pointers
Adjustments to RUN lines to make tests run on LLVM 16 with both opaque
and typed pointers. By default, LLVM 16 tools emit opaque pointers,
while IGC pointer typing can be controlled with a flag. This change
ensures the typing is enabled/disabled explicitly.
2025-07-30 16:31:16 +02:00
82be1f8d4f Refactor code related to the deprecated patch token binary format 2025-07-30 12:50:57 +02:00
Y
a75f98543a Fix endless loop in Legalization::visitBinaryOperator for optimized and/or sequences
Collected users of the instruction into a vector before updating them to prevent an endless loop when an instruction is used both in the condition and value of a select instruction.
2025-07-30 12:41:05 +02:00
fa4e175949 Remove workaround -Wno-error=implicit-int
Previously, some workloads used implicit int types in function
definitions. With LLVM 15, implicit ints are treated as errors.
The workaround to disable this error has now been removed, so IGC
enforces the same behavior as LLVM 15 and treats implicit ints
as errors.
2025-07-30 10:06:04 +02:00
50ad1b5847 Add support for llvm::Type* in metadata framework
Allow creating metadata nodes with `llvm::Type*`.
2025-07-30 08:20:48 +02:00
61671fc3c9 IGA: SWSB bug fix when clear sbid dependency
A bug fix in SWSBAnalyzer::clearSBIDDependence to properly clear
the dependency of instructions those have been sync-ed by swsb.
2025-07-30 02:28:33 +02:00
1aebbe30ed Refactor code to function
Refactor code to function
2025-07-30 01:33:55 +02:00
99df0174ba Restore default dst lifetime_start for emitting Gather4Instruction and AtomicRaw
This is to restore the lifetime_start for m_destination for emitting
Gather4Instruction and AtomicRaw.
2025-07-29 19:20:02 +02:00
c60d1f3063 Use ZEBinary relocation tables instead of legacy types
Removed definitions of old relocation table types (m_funcRelocationTable).
Changed usages of relocation tables to use the ZEBinary type (m_relocs).
2025-07-29 15:18:15 +02:00
52febb221f Check intel_reqd_sub_group_size attribute in SIMD16 drop
Check intel_reqd_sub_group_size attribute when deciding if we can early
drop to SIMD 16.
2025-07-29 15:15:18 +02:00
4fc519a9d1 BCR revert 204888
BCR revert 204888
2025-07-28 19:01:24 +02:00
964f83bf0c Enable Code Scheduling on recompilation
Enable Code Scheduling on recompilation
2025-07-28 17:02:25 +02:00
4a3ba459c3 DW_AT_name will now be demangled
In some cases like generated kernels by SYCL. DW_AT_name contained
mangled name. Now it will be demangled.
2025-07-28 16:52:57 +02:00
71b2a2c59d Revert of 'Use ZEBinary relocation tables instead of legacy types'
Revert of 'Removed definitions of old relocation table types (m_funcRelocationTable).
Changed usages of relocation tables to use the ZEBinary type
(m_relocs).'
2025-07-28 16:00:02 +02:00
0cd64fdecf Use ZEBinary relocation tables instead of legacy types
Removed definitions of old relocation table types (m_funcRelocationTable).
Changed usages of relocation tables to use the ZEBinary type (m_relocs).
2025-07-28 12:02:11 +02:00
554cabda66 [Autobackout][FunctionalRegression]Revert of change: b224b29b4d: Remove workaround -Wno-error=implicit-int
Previously, some workloads used implicit int types in function
    definitions. With LLVM 15, implicit ints are treated as errors.
    The workaround to disable this error has now been removed, so IGC
    enforces the same behavior as LLVM 15 and treats implicit ints
    as errors.
2025-07-26 06:38:12 +02:00