1 //===- ArmSMEDialect.cpp - MLIR ArmSME dialect implementation -------------===// 2 // 3 // Part of the LLVM Project, 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 // This file implements the ArmSME dialect and its operations. 10 // 11 //===----------------------------------------------------------------------===// 12 13 #include "mlir/Dialect/ArmSME/IR/ArmSME.h" 14 #include "mlir/Dialect/LLVMIR/LLVMTypes.h" 15 #include "mlir/Dialect/MemRef/IR/MemRef.h" 16 #include "mlir/IR/DialectImplementation.h" 17 #include "mlir/IR/TypeUtilities.h" 18 #include "llvm/ADT/TypeSwitch.h" 19 20 using namespace mlir; 21 using namespace mlir::arm_sme; 22 23 namespace mlir::arm_sme::detail { verifyArmSMETileOpInterface(Operation * op)24LogicalResult verifyArmSMETileOpInterface(Operation *op) { 25 return verifyOperationHasValidTileId(op); 26 } 27 } // namespace mlir::arm_sme::detail 28 29 //===----------------------------------------------------------------------===// 30 // Tablegen Definitions 31 //===----------------------------------------------------------------------===// 32 33 #include "mlir/Dialect/ArmSME/IR/ArmSMEDialect.cpp.inc" 34 35 #include "mlir/Dialect/ArmSME/IR/ArmSMEEnums.cpp.inc" 36 37 #include "mlir/Dialect/ArmSME/IR/ArmSMEOpInterfaces.cpp.inc" 38 39 #define GET_OP_CLASSES 40 #include "mlir/Dialect/ArmSME/IR/ArmSMEOps.cpp.inc" 41 42 #define GET_OP_CLASSES 43 #include "mlir/Dialect/ArmSME/IR/ArmSMEIntrinsicOps.cpp.inc" 44 45 #define GET_TYPEDEF_CLASSES 46 #include "mlir/Dialect/ArmSME/IR/ArmSMETypes.cpp.inc" 47 48 #define GET_ATTRDEF_CLASSES 49 #include "mlir/Dialect/ArmSME/IR/ArmSMEAttrDefs.cpp.inc" 50 initialize()51void ArmSMEDialect::initialize() { 52 addAttributes< 53 #define GET_ATTRDEF_LIST 54 #include "mlir/Dialect/ArmSME/IR/ArmSMEAttrDefs.cpp.inc" 55 >(); 56 57 addOperations< 58 #define GET_OP_LIST 59 #include "mlir/Dialect/ArmSME/IR/ArmSMEOps.cpp.inc" 60 , 61 #define GET_OP_LIST 62 #include "mlir/Dialect/ArmSME/IR/ArmSMEIntrinsicOps.cpp.inc" 63 >(); 64 } 65