1 //===- Transform.cpp - C Interface for Transform dialect ------------------===// 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 #include "mlir-c/Dialect/Transform.h" 10 #include "mlir-c/Support.h" 11 #include "mlir/CAPI/Registration.h" 12 #include "mlir/Dialect/Transform/IR/TransformDialect.h" 13 #include "mlir/Dialect/Transform/IR/TransformTypes.h" 14 15 using namespace mlir; 16 17 MLIR_DEFINE_CAPI_DIALECT_REGISTRATION(Transform, transform, 18 transform::TransformDialect) 19 20 //===---------------------------------------------------------------------===// 21 // AnyOpType 22 //===---------------------------------------------------------------------===// 23 24 bool mlirTypeIsATransformAnyOpType(MlirType type) { 25 return isa<transform::AnyOpType>(unwrap(type)); 26 } 27 28 MlirType mlirTransformAnyOpTypeGet(MlirContext ctx) { 29 return wrap(transform::AnyOpType::get(unwrap(ctx))); 30 } 31 32 //===---------------------------------------------------------------------===// 33 // AnyValueType 34 //===---------------------------------------------------------------------===// 35 36 bool mlirTypeIsATransformAnyValueType(MlirType type) { 37 return isa<transform::AnyValueType>(unwrap(type)); 38 } 39 40 MlirType mlirTransformAnyValueTypeGet(MlirContext ctx) { 41 return wrap(transform::AnyValueType::get(unwrap(ctx))); 42 } 43 44 //===---------------------------------------------------------------------===// 45 // OperationType 46 //===---------------------------------------------------------------------===// 47 48 bool mlirTypeIsATransformOperationType(MlirType type) { 49 return isa<transform::OperationType>(unwrap(type)); 50 } 51 52 MlirTypeID mlirTransformOperationTypeGetTypeID(void) { 53 return wrap(transform::OperationType::getTypeID()); 54 } 55 56 MlirType mlirTransformOperationTypeGet(MlirContext ctx, 57 MlirStringRef operationName) { 58 return wrap( 59 transform::OperationType::get(unwrap(ctx), unwrap(operationName))); 60 } 61 62 MlirStringRef mlirTransformOperationTypeGetOperationName(MlirType type) { 63 return wrap(cast<transform::OperationType>(unwrap(type)).getOperationName()); 64 } 65