18#ifndef LLZK_C_DIALECT_STRUCT_H
19#define LLZK_C_DIALECT_STRUCT_H
23#include <mlir-c/AffineMap.h>
25#include <mlir-c/Support.h>
50MLIR_CAPI_EXPORTED MlirType
75MLIR_CAPI_EXPORTED MlirType
100MLIR_CAPI_EXPORTED
const char *
131 FieldReadOp, MlirType type, MlirValue component, MlirStringRef fieldName
138 FieldReadOp, WithAffineMapDistance, MlirType type, MlirValue component, MlirStringRef fieldName,
139 MlirAffineMap affineMap,
MlirValueRange mapOperands, int32_t nDimensions
145 FieldReadOp, WithConstParamDistance, MlirType type, MlirValue component,
146 MlirStringRef fieldName, MlirStringRef paramName
151 FieldReadOp, WithLiteralDistance, MlirType type, MlirValue component, MlirStringRef fieldName,
MLIR_CAPI_EXPORTED const char * llzkStructDefOpGetHeaderString(MlirOperation op, intptr_t *dstSize, char *(*alloc_string)(size_t))
Returns the header string of the struct.
MLIR_CAPI_EXPORTED MlirType llzkStructTypeGetWithArrayAttr(MlirAttribute name, MlirAttribute params)
Creates a llzk::component::StructType with an ArrayAttr as parameters.
MLIR_CAPI_EXPORTED void llzkStructDefOpGetFieldDefs(MlirOperation op, MlirOperation *dst)
Fills the given array with the FieldDefOp operations inside this struct.
MLIR_CAPI_EXPORTED intptr_t llzkStructDefOpGetNumFieldDefs(MlirOperation op)
Returns the number of FieldDefOp operations defined in this struct.
MLIR_CAPI_EXPORTED MlirType llzkStructTypeGetWithAttrs(MlirAttribute name, intptr_t numParams, MlirAttribute const *params)
Creates a llzk::component::StructType with an array of parameters.
MLIR_CAPI_EXPORTED MlirAttribute llzkStructDefOpGetFullyQualifiedName(MlirOperation op)
Returns a StringAttr with the fully qualified name of the struct.
MLIR_DECLARE_CAPI_DIALECT_REGISTRATION(Struct, llzk__component)
MLIR_CAPI_EXPORTED MlirOperation llzkStructDefOpGetComputeFuncOp(MlirOperation op)
Returns the FuncDefOp operation that defines the witness computation of the struct.
MLIR_CAPI_EXPORTED MlirAttribute llzkStructTypeGetName(MlirType type)
Returns the fully qualified name of a llzk::component::StructType.
MLIR_CAPI_EXPORTED MlirType llzkStructTypeGet(MlirAttribute name)
Creates a llzk::component::StructType.
MLIR_CAPI_EXPORTED MlirType llzkStructDefOpGetType(MlirOperation op)
Returns the associated StructType to this op using the const params defined by the op.
MLIR_CAPI_EXPORTED MlirType llzkStructDefOpGetTypeWithParams(MlirOperation op, MlirAttribute params)
Returns the associated StructType to this op using the given const params instead of the parameters d...
MLIR_CAPI_EXPORTED MlirOperation llzkStructDefOpGetFieldDef(MlirOperation op, MlirStringRef name)
Returns the operation that defines the field with the given name, if present.
MlirLogicalResult llzkStructDefOpGetHasColumns(MlirOperation op)
Returns true if the struct has fields marked as columns.
MLIR_CAPI_EXPORTED MlirOperation llzkStructDefOpGetConstrainFuncOp(MlirOperation op)
Returns the FuncDefOp operation that defines the constraints of the struct.
MLIR_CAPI_EXPORTED MlirAttribute llzkStructTypeGetParams(MlirType type)
Returns the parameter of a llzk::component::StructType as an ArrayAttr.
MLIR_CAPI_EXPORTED void llzkFieldDefOpSetPublicAttr(MlirOperation op, bool value)
Sets the public attribute in the given field.
#define LLZK_DECLARE_OP_ISA(what)
#define LLZK_DECLARE_OP_PREDICATE(op, name)
#define LLZK_DECLARE_OP_BUILD_METHOD(op,...)
#define LLZK_DECLARE_TYPE_ISA(what)
#define LLZK_DECLARE_NARY_OP_PREDICATE(op, name,...)
#define LLZK_DECLARE_SUFFIX_OP_BUILD_METHOD(op, suffix,...)