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
105MLIR_CAPI_EXPORTED MlirType
130MLIR_CAPI_EXPORTED
const char *
161 MemberReadOp, MlirType type, MlirValue component, MlirStringRef memberName
168 MemberReadOp, WithAffineMapDistance, MlirType type, MlirValue component,
169 MlirStringRef memberName, MlirAffineMap affineMap,
MlirValueRange mapOperands
175 MemberReadOp, WithConstParamDistance, MlirType type, MlirValue component,
176 MlirStringRef memberName, MlirStringRef paramName
181 MemberReadOp, WithLiteralDistance, MlirType type, MlirValue component, MlirStringRef memberName,
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 MlirRegion llzkStructDefOpGetBodyRegion(MlirOperation op)
Returns the single body Region of the StructDefOp.
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 void llzkStructDefOpGetMemberDefs(MlirOperation op, MlirOperation *dst)
Fills the given array with the MemberDefOp operations inside this struct.
MLIR_CAPI_EXPORTED MlirAttribute llzkStructDefOpGetFullyQualifiedName(MlirOperation op)
Returns a StringAttr with the fully qualified name of the struct.
MLIR_CAPI_EXPORTED MlirOperation llzkStructDefOpGetMemberDef(MlirOperation op, MlirStringRef name)
Returns the operation that defines the member with the given name, if present.
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 MlirLogicalResult llzkStructStructTypeGetDefinition(MlirType type, MlirOperation root, LlzkSymbolLookupResult *result)
Lookups the definition Operation of the given StructType using the given Operation as root for the lo...
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 MlirBlock llzkStructDefOpGetBody(MlirOperation op)
Returns the single body Block within the StructDefOp's Region.
MLIR_CAPI_EXPORTED MlirLogicalResult llzkStructStructTypeGetDefinitionFromModule(MlirType type, MlirModule root, LlzkSymbolLookupResult *result)
Lookups the definition Operation of the given StructType using the given Module as root for the looku...
MLIR_CAPI_EXPORTED void llzkMemberDefOpSetPublicAttr(MlirOperation op, bool value)
Sets the public attribute in the given member.
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...
MlirLogicalResult llzkStructDefOpGetHasColumns(MlirOperation op)
Returns true if the struct has members marked as columns.
MLIR_CAPI_EXPORTED intptr_t llzkStructDefOpGetNumMemberDefs(MlirOperation op)
Returns the number of MemberDefOp operations defined in this struct.
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.
#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,...)