//===-- mlir-c/Dialect/EmitC.h - C API for EmitC dialect ----------*- C -*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM // Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// #ifndef MLIR_C_DIALECT_EmitC_H #define MLIR_C_DIALECT_EmitC_H #include "mlir-c/IR.h" #include "mlir-c/Support.h" #ifdef __cplusplus extern "C" { #endif MLIR_DECLARE_CAPI_DIALECT_REGISTRATION(EmitC, emitc); enum MlirEmitCCmpPredicate : uint64_t { MLIR_EMITC_CMP_PREDICATE_EQ = 0, MLIR_EMITC_CMP_PREDICATE_NE = 1, MLIR_EMITC_CMP_PREDICATE_LT = 2, MLIR_EMITC_CMP_PREDICATE_LE = 3, MLIR_EMITC_CMP_PREDICATE_GT = 4, MLIR_EMITC_CMP_PREDICATE_GE = 5, MLIR_EMITC_CMP_PREDICATE_THREE_WAY = 6, }; //===---------------------------------------------------------------------===// // ArrayType //===---------------------------------------------------------------------===// MLIR_CAPI_EXPORTED bool mlirTypeIsAEmitCArrayType(MlirType type); MLIR_CAPI_EXPORTED MlirTypeID mlirEmitCArrayTypeGetTypeID(void); MLIR_CAPI_EXPORTED MlirType mlirEmitCArrayTypeGet(intptr_t nDims, int64_t *shape, MlirType elementType); //===---------------------------------------------------------------------===// // LValueType //===---------------------------------------------------------------------===// MLIR_CAPI_EXPORTED bool mlirTypeIsAEmitCLValueType(MlirType type); MLIR_CAPI_EXPORTED MlirTypeID mlirEmitCLValueTypeGetTypeID(void); MLIR_CAPI_EXPORTED MlirType mlirEmitCLValueTypeGet(MlirType valueType); //===---------------------------------------------------------------------===// // OpaqueType //===---------------------------------------------------------------------===// MLIR_CAPI_EXPORTED bool mlirTypeIsAEmitCOpaqueType(MlirType type); MLIR_CAPI_EXPORTED MlirTypeID mlirEmitCOpaqueTypeGetTypeID(void); MLIR_CAPI_EXPORTED MlirType mlirEmitCOpaqueTypeGet(MlirContext ctx, MlirStringRef value); //===---------------------------------------------------------------------===// // PointerType //===---------------------------------------------------------------------===// MLIR_CAPI_EXPORTED bool mlirTypeIsAEmitCPointerType(MlirType type); MLIR_CAPI_EXPORTED MlirTypeID mlirEmitCPointerTypeGetTypeID(void); MLIR_CAPI_EXPORTED MlirType mlirEmitCPointerTypeGet(MlirType pointee); //===---------------------------------------------------------------------===// // PtrDiffTType //===---------------------------------------------------------------------===// MLIR_CAPI_EXPORTED bool mlirTypeIsAEmitCPtrDiffTType(MlirType type); MLIR_CAPI_EXPORTED MlirTypeID mlirEmitCPtrDiffTTypeGetTypeID(void); MLIR_CAPI_EXPORTED MlirType mlirEmitCPtrDiffTTypeGet(MlirContext ctx); //===---------------------------------------------------------------------===// // SignedSizeTType //===---------------------------------------------------------------------===// MLIR_CAPI_EXPORTED bool mlirTypeIsAEmitCSignedSizeTType(MlirType type); MLIR_CAPI_EXPORTED MlirTypeID mlirEmitCSignedSizeTTypeGetTypeID(void); MLIR_CAPI_EXPORTED MlirType mlirEmitCSignedSizeTTypeGet(MlirContext ctx); //===---------------------------------------------------------------------===// // SizeTType //===---------------------------------------------------------------------===// MLIR_CAPI_EXPORTED bool mlirTypeIsAEmitCSizeTType(MlirType type); MLIR_CAPI_EXPORTED MlirTypeID mlirEmitCSizeTTypeGetTypeID(void); MLIR_CAPI_EXPORTED MlirType mlirEmitCSizeTTypeGet(MlirContext ctx); //===----------------------------------------------------------------------===// // CmpPredicate attribute. //===----------------------------------------------------------------------===// MLIR_CAPI_EXPORTED bool mlirAttributeIsAEmitCCmpPredicate(MlirAttribute attr); MLIR_CAPI_EXPORTED MlirAttribute mlirEmitCCmpPredicateAttrGet(MlirContext ctx, enum MlirEmitCCmpPredicate val); MLIR_CAPI_EXPORTED enum MlirEmitCCmpPredicate mlirEmitCCmpPredicateAttrGetValue(MlirAttribute attr); MLIR_CAPI_EXPORTED MlirTypeID mlirEmitCCmpPredicateAttrGetTypeID(void); //===----------------------------------------------------------------------===// // Opaque attribute. //===----------------------------------------------------------------------===// MLIR_CAPI_EXPORTED bool mlirAttributeIsAEmitCOpaque(MlirAttribute attr); MLIR_CAPI_EXPORTED MlirAttribute mlirEmitCOpaqueAttrGet(MlirContext ctx, MlirStringRef value); MLIR_CAPI_EXPORTED MlirStringRef mlirEmitCOpaqueAttrGetValue(MlirAttribute attr); MLIR_CAPI_EXPORTED MlirTypeID mlirEmitCOpaqueAttrGetTypeID(void); #ifdef __cplusplus } #endif #endif // MLIR_C_DIALECT_EmitC_H