12 Commits

Author SHA1 Message Date
Sang Ik Lee
972cd847ef
[MLIR][XeVM] Remove xevm to llvm from convert to llvm (#175672)
Remove xevm to llvm conversion pass from convert to llvm as it is a
backend dependent conversion.
And add legalization pattern for splitting large vector load that are
eventually split into smaller
vectors by shufflevector. shufflevector can be replaced with a smaller
load in such case.
2026-02-05 12:58:09 -08:00
Mehdi Amini
4ada42ede2 [MLIR] Apply clang-tidy fixes for llvm-qualified-auto in XeVMToLLVM.cpp (NFC) 2025-12-05 05:20:52 -08:00
darkbuck
2f6f045ea8
[mlir][LLVM] Resync memory effect attribute with LLVM IR (#168568)
- Add missing locations, namely 'ErrnoMem', 'TargetMem0', and
'TargetMem1'.
2025-11-19 11:56:04 -05:00
Sang Ik Lee
5d1636d89a
[MLIR][XeVM] XeVM to LLVM: Add conversion patterns for id ops (#162536)
XeVM to LLVM pass: Add conversion patterns for XeVM id ops.

Target OpenCL functions described here:

https://registry.khronos.org/OpenCL/sdk/3.0/docs/man/html/get_group_id.html
2025-10-10 09:20:44 -07:00
Sang Ik Lee
7cc1243f70
[MLIR][XeVM] Add XeVM 1D block operations to OpenCL calls conversion. (#161702)
XeVM 1D block load store operations are converted to OpenCL subgroup operations
described here:

https://registry.khronos.org/OpenCL/extensions/intel/cl_intel_subgroup_local_block_io.html
2025-10-08 09:56:27 -07:00
Jakub Kuderski
8bab6c4e8c
[mlir] Simplify unreachable type switch cases. NFC. (#162032)
Use `DefaultUnreachable` from
https://github.com/llvm/llvm-project/pull/161970.
2025-10-06 09:23:25 -04:00
Sang Ik Lee
3b6bd496b7
[MLIR][XeVM] Add lowering for llvm load store ops with XeVM cache control (#156768)
Add lowering support for LLVM load / store ops with XeVM cache control
attributes.
2025-09-09 09:12:16 -07:00
Kazu Hirata
1a0f482de8
[mlir] Remove unused includes (NFC) (#150476)
These are identified by misc-include-cleaner.  I've filtered out those
that break builds.  Also, I'm staying away from llvm-config.h,
config.h, and Compiler.h, which likely cause platform- or
compiler-specific build failures.
2025-07-24 11:23:53 -07:00
Maksim Levental
38976a03cd
[mlir][NFC] update Conversion create APIs (7/n) (#149889)
See https://github.com/llvm/llvm-project/pull/147168 for more info.
2025-07-22 10:41:06 -04:00
Sang Ik Lee
0a343098b0
[MLIR][Conversion] Add convert-xevm-to-llvm pass. [Re-attempt] (#148103)
Although XeVM is an LLVM extension dialect,
SPIR-V backend relies on [function
calls](https://llvm.org/docs/SPIRVUsage.html#instructions-as-function-calls)
instead of defining LLVM intrinsics to represent SPIR-V instructions.
convert-xevm-to-llvm pass lowers xevm ops to function declarations and
calls using the above naming convention.
In the future, most part of the pass should be replaced with llvmBuilder
and handled as part of translation to LLVM instead.

---------
Co-authored-by: Artem Kroviakov <artem.kroviakov@intel.com>
2025-07-11 13:38:02 -05:00
Charitha Saumya
da608271ae
Revert "[MLIR][Conversion] Add convert-xevm-to-llvm pass." (#148081)
Reverts llvm/llvm-project#147375
2025-07-10 16:21:11 -07:00
Sang Ik Lee
76eead1bd7
[MLIR][Conversion] Add convert-xevm-to-llvm pass. (#147375)
Although XeVM is an LLVM extension dialect,
SPIR-V backend relies on [function
calls](https://llvm.org/docs/SPIRVUsage.html#instructions-as-function-calls)
instead of defining LLVM intrinsics to represent SPIR-V instructions.
convert-xevm-to-llvm pass lowers xevm ops to function declarations and
calls using the above naming convention.
In the future, most part of the pass should be replaced with llvmBuilder
and handled as part of translation to LLVM instead.

---------
Co-authored-by: Artem Kroviakov <artem.kroviakov@intel.com>
2025-07-10 16:04:36 -07:00