Skip to content

Commit 3959f9e

Browse files
committed
add layout traits
1 parent 2bc70b6 commit 3959f9e

File tree

5 files changed

+18
-2
lines changed

5 files changed

+18
-2
lines changed

mlir/include/mlir/Dialect/XeGPU/IR/CMakeLists.txt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,3 +12,9 @@ mlir_tablegen(XeGPUEnums.h.inc -gen-enum-decls)
1212
mlir_tablegen(XeGPUEnums.cpp.inc -gen-enum-defs)
1313
add_public_tablegen_target(MLIRXeGPUEnumsIncGen)
1414
add_dependencies(mlir-headers MLIRXeGPUEnumsIncGen)
15+
16+
set(LLVM_TARGET_DEFINITIONS XeGPUAttrs.td)
17+
mlir_tablegen(XeGPUAttrInterface.h.inc -gen-attr-interface-decls)
18+
mlir_tablegen(XeGPUAttrInterface.cpp.inc -gen-attr-interface-defs)
19+
add_public_tablegen_target(MLIRXeGPUAttrInterfaceIncGen)
20+
add_dependencies(mlir-headers MLIRXeGPUAttrInterfaceIncGen)

mlir/include/mlir/Dialect/XeGPU/IR/XeGPU.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ class TensorDescType;
2525
} // namespace xegpu
2626
} // namespace mlir
2727

28+
#include <mlir/Dialect/XeGPU/IR/XeGPUAttrInterface.h.inc>
2829
#include <mlir/Dialect/XeGPU/IR/XeGPUEnums.h.inc>
2930
#define GET_ATTRDEF_CLASSES
3031
#include <mlir/Dialect/XeGPU/IR/XeGPUAttrs.h.inc>

mlir/include/mlir/Dialect/XeGPU/IR/XeGPUAttrs.td

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -169,7 +169,14 @@ def XeGPU_FenceScopeAttr:
169169
let assemblyFormat = "$value";
170170
}
171171

172-
def XeGPU_LayoutAttr : XeGPUAttr<"Layout", "layout"> {
172+
def LayoutTrait: AttrInterface<"LayoutTrait"> {
173+
let cppNamespace = "::mlir::xegpu";
174+
let description = [{
175+
Common trait for all XeGPU layouts.
176+
}];
177+
}
178+
179+
def XeGPU_LayoutAttr : XeGPUAttr<"Layout", "layout", [LayoutTrait]> {
173180
let summary = [{
174181
Describes the data distribution to subgroups and work-items for a tensor
175182
specified by the tensor descriptor.
@@ -331,7 +338,7 @@ def XeGPU_LayoutAttr : XeGPUAttr<"Layout", "layout"> {
331338
}
332339

333340

334-
def XeGPU_SliceAttr : XeGPUAttr<"Slice", "slice"> {
341+
def XeGPU_SliceAttr : XeGPUAttr<"Slice", "slice", [LayoutTrait]> {
335342
let summary = [{Describes the data distribution and sharing among subgroups or work-items.}];
336343

337344
let description = [{

mlir/lib/Dialect/XeGPU/IR/CMakeLists.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ add_mlir_dialect_library(MLIRXeGPUDialect
77

88
DEPENDS
99
MLIRXeGPUIncGen
10+
MLIRXeGPUAttrInterfaceIncGen
1011
MLIRXeGPUAttrsIncGen
1112
MLIRXeGPUEnumsIncGen
1213

mlir/lib/Dialect/XeGPU/IR/XeGPUOps.cpp

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -753,6 +753,7 @@ LogicalResult ConvertLayoutOp::verify() {
753753
} // namespace xegpu
754754
} // namespace mlir
755755

756+
#include <mlir/Dialect/XeGPU/IR/XeGPUAttrInterface.cpp.inc>
756757
#include <mlir/Dialect/XeGPU/IR/XeGPUEnums.cpp.inc>
757758
#define GET_OP_CLASSES
758759
#include <mlir/Dialect/XeGPU/IR/XeGPU.cpp.inc>

0 commit comments

Comments
 (0)