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)
22add_subdirectory (OneDNNGraph)
33add_subdirectory (Microkernel)
44add_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)
22add_subdirectory (Linalgx)
33add_subdirectory (Microkernel)
44add_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 1818 */
1919
2020#include " gc/Dialect/CPURuntime/Transforms/CPURuntimePasses.h"
21+ #include " gc/Dialect/LLVMIR/XeVMDialect.h"
2122#include " gc/Dialect/Linalgx/LinalgxDialect.h"
2223#include " gc/Dialect/Microkernel/MicrokernelDialect.h"
2324#ifdef GC_HAS_ONEDNN_DIALECT
@@ -65,6 +66,7 @@ int main(int argc, char *argv[]) {
6566 registry.insert <mlir::cpuruntime::CPURuntimeDialect>();
6667 registry.insert <mlir::linalgx::LinalgxDialect>();
6768 registry.insert <mlir::microkernel::MicrokernelDialect>();
69+ registry.insert <mlir::xevm::XeVMDialect>();
6870 mlir::registerAllDialects (registry);
6971#ifdef GC_USE_IMEX
7072 registry.insert <::imex::xetile::XeTileDialect, ::imex::gpux::GPUXDialect>();
You can’t perform that action at this time.
0 commit comments