File tree Expand file tree Collapse file tree 8 files changed +122
-0
lines changed Expand file tree Collapse file tree 8 files changed +122
-0
lines changed Original file line number Diff line number Diff line change @@ -2,3 +2,4 @@ add_subdirectory(CPURuntime)
2
2
add_subdirectory (OneDNNGraph )
3
3
add_subdirectory (Microkernel )
4
4
add_subdirectory (Linalgx )
5
+ add_subdirectory (LLVMIR )
Original file line number Diff line number Diff line change
1
+ add_mlir_dialect (XeVMOps xevm )
2
+ add_mlir_doc (XeVMOps XeVMDialect Dialects/ -gen-dialect-doc -dialect=xevm )
3
+ set (LLVM_TARGET_DEFINITIONS XeVMOps.td )
4
+ mlir_tablegen (XeVMOpsEnums.h.inc -gen-enum-decls )
5
+ mlir_tablegen (XeVMOpsEnums.cpp.inc -gen-enum-defs )
6
+ mlir_tablegen (XeVMOpsAttributes.h.inc -gen-attrdef-decls -attrdefs-dialect=xevm )
7
+ mlir_tablegen (XeVMOpsAttributes.cpp.inc -gen-attrdef-defs -attrdefs-dialect=xevm )
8
+ add_public_tablegen_target (MLIRXeVMConversionsIncGen )
Original file line number Diff line number Diff line change
1
+ // ===-- XeVMDialect.h - MLIR XeVM target definitions ------------*- C++ -*-===//
2
+ //
3
+ // This file is licensed under the Apache License v2.0 with LLVM Exceptions.
4
+ // See https://llvm.org/LICENSE.txt for license information.
5
+ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
+ //
7
+ // ===----------------------------------------------------------------------===//
8
+
9
+ #ifndef MLIR_DIALECT_LLVMIR_XEVMDIALECT_H_
10
+ #define MLIR_DIALECT_LLVMIR_XEVMDIALECT_H_
11
+
12
+ #include " mlir/Bytecode/BytecodeOpInterface.h"
13
+ #include " mlir/Dialect/LLVMIR/LLVMDialect.h"
14
+ #include " mlir/IR/Dialect.h"
15
+ #include " mlir/IR/OpDefinition.h"
16
+
17
+ #define GET_ATTRDEF_CLASSES
18
+ #include " gc/Dialect/LLVMIR/XeVMOpsAttributes.h.inc"
19
+
20
+ #define GET_OP_CLASSES
21
+ #include " gc/Dialect/LLVMIR/XeVMOps.h.inc"
22
+
23
+ #include " gc/Dialect/LLVMIR/XeVMOpsDialect.h.inc"
24
+
25
+ #endif /* MLIR_DIALECT_LLVMIR_XEVMDIALECT_H_ */
Original file line number Diff line number Diff line change
1
+ //===-- XeVMOps.td - XeVM dialect definition ---------------*- tablegen -*-===//
2
+ //
3
+ // This file is licensed under the Apache License v2.0 with LLVM Exceptions.
4
+ // See https://llvm.org/LICENSE.txt for license information.
5
+ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
+ //
7
+ //===----------------------------------------------------------------------===//
8
+ #ifndef XEVMIR_OPS
9
+ #define XEVMIR_OPS
10
+
11
+ include "mlir/Dialect/GPU/IR/CompilationAttrInterfaces.td"
12
+ include "mlir/Dialect/LLVMIR/LLVMOpBase.td"
13
+ include "mlir/Interfaces/SideEffectInterfaces.td"
14
+
15
+ def XeVM_Dialect : Dialect {
16
+ let name = "xevm";
17
+ let cppNamespace = "::mlir::xevm";
18
+ let dependentDialects = ["LLVM::LLVMDialect"];
19
+ let useDefaultAttributePrinterParser = 1;
20
+ }
21
+
22
+ class XeVM_Attr<string attrName, string attrMnemonic, list<Trait> traits = []>
23
+ : AttrDef<XeVM_Dialect, attrName, traits> {
24
+ let mnemonic = attrMnemonic;
25
+ }
26
+
27
+ def XeVM_TargettAttr : XeVM_Attr<"XeVMTarget", "target"> {}
28
+
29
+ #endif // XEVMIR_OPS
Original file line number Diff line number Diff line change @@ -2,3 +2,4 @@ add_subdirectory(CPURuntime)
2
2
add_subdirectory (Linalgx )
3
3
add_subdirectory (Microkernel )
4
4
add_subdirectory (OneDNNGraph )
5
+ add_subdirectory (LLVMIR )
Original file line number Diff line number Diff line change
1
+ gc_add_mlir_dialect_library (MLIRXeVMDialect
2
+ IR/XeVMDialect.cpp
3
+
4
+ ADDITIONAL_HEADER_DIRS
5
+ ${MLIR_MAIN_INCLUDE_DIR} /mlir/Dialect/LLVMIR
6
+ ${PROJECT_SOURCE_DIR} /include/gc/Dialect/LLVMIR
7
+
8
+ DEPENDS
9
+ MLIRXeVMConversionsIncGen
10
+
11
+ LINK_COMPONENTS
12
+ AsmParser
13
+ Core
14
+
15
+ LINK_LIBS PUBLIC
16
+ MLIRIR
17
+ MLIRLLVMDialect
18
+ MLIRSideEffectInterfaces
19
+ GcInterface
20
+ )
Original file line number Diff line number Diff line change
1
+ // ===-- XeVMDialect.cpp - XeVM dialect registration -------------*- C++ -*-===//
2
+ //
3
+ // This file is licensed under the Apache License v2.0 with LLVM Exceptions.
4
+ // See https://llvm.org/LICENSE.txt for license information.
5
+ // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6
+ //
7
+ // ===----------------------------------------------------------------------===//
8
+ #include " gc/Dialect/LLVMIR/XeVMDialect.h"
9
+
10
+ #include " mlir/Dialect/GPU/IR/CompilationInterfaces.h"
11
+ #include " mlir/Dialect/LLVMIR/LLVMDialect.h"
12
+ #include " mlir/IR/DialectImplementation.h"
13
+ #include " llvm/ADT/TypeSwitch.h"
14
+
15
+ using namespace mlir ;
16
+ using namespace xevm ;
17
+
18
+ #include " gc/Dialect/LLVMIR/XeVMOpsDialect.cpp.inc"
19
+
20
+ void XeVMDialect::initialize () {
21
+ addOperations<
22
+ #define GET_OP_LIST
23
+ #include " gc/Dialect/LLVMIR/XeVMOps.cpp.inc"
24
+ >();
25
+
26
+ addAttributes<
27
+ #define GET_ATTRDEF_LIST
28
+ #include " gc/Dialect/LLVMIR/XeVMOpsAttributes.cpp.inc"
29
+ >();
30
+ }
31
+
32
+ #define GET_OP_CLASSES
33
+ #include " gc/Dialect/LLVMIR/XeVMOps.cpp.inc"
34
+
35
+ #define GET_ATTRDEF_CLASSES
36
+ #include " gc/Dialect/LLVMIR/XeVMOpsAttributes.cpp.inc"
Original file line number Diff line number Diff line change 18
18
*/
19
19
20
20
#include " gc/Dialect/CPURuntime/Transforms/CPURuntimePasses.h"
21
+ #include " gc/Dialect/LLVMIR/XeVMDialect.h"
21
22
#include " gc/Dialect/Linalgx/LinalgxDialect.h"
22
23
#include " gc/Dialect/Microkernel/MicrokernelDialect.h"
23
24
#ifdef GC_HAS_ONEDNN_DIALECT
@@ -65,6 +66,7 @@ int main(int argc, char *argv[]) {
65
66
registry.insert <mlir::cpuruntime::CPURuntimeDialect>();
66
67
registry.insert <mlir::linalgx::LinalgxDialect>();
67
68
registry.insert <mlir::microkernel::MicrokernelDialect>();
69
+ registry.insert <mlir::xevm::XeVMDialect>();
68
70
mlir::registerAllDialects (registry);
69
71
#ifdef GC_USE_IMEX
70
72
registry.insert <::imex::xetile::XeTileDialect, ::imex::gpux::GPUXDialect>();
You can’t perform that action at this time.
0 commit comments