18#ifndef LLZK_C_DIALECT_POD_H
19#define LLZK_C_DIALECT_POD_H
23#include <mlir-c/BuiltinAttributes.h>
25#include <mlir-c/Support.h>
49MLIR_CAPI_EXPORTED MlirAttribute
llzkRecordAttrGet(MlirStringRef name, MlirType type);
68MLIR_CAPI_EXPORTED MlirType
69llzkPodTypeGet(MlirContext context, intptr_t nRecords, MlirAttribute
const *records);
101MLIR_CAPI_EXPORTED MlirType
108MLIR_CAPI_EXPORTED MlirType
119 NewPodOp, InferredFromInitialValues, intptr_t nValues,
LlzkRecordValue const *values
126 NewPodOp, MlirType type, intptr_t nValues,
LlzkRecordValue const *values
133 NewPodOp, WithMapOperands, MlirType type, intptr_t nValues,
LlzkRecordValue const *values,
MLIR_CAPI_EXPORTED MlirType llzkPodTypeLookupRecordWithinOperation(MlirType type, MlirStringRef name, MlirOperation op)
Lookups a record type by name.
MLIR_CAPI_EXPORTED MlirType llzkRecordAttrGetType(MlirAttribute attr)
Returns the type of the record.
MLIR_CAPI_EXPORTED MlirType llzkPodTypeLookupRecord(MlirType type, MlirStringRef name)
Lookups a record type by name.
MLIR_CAPI_EXPORTED MlirAttribute llzkRecordAttrGet(MlirStringRef name, MlirType type)
Creates a new llzk::pod::RecordAttr.
MLIR_CAPI_EXPORTED void llzkPodTypeGetRecords(MlirType type, MlirAttribute *dst)
Writes the records into the given array that must have been previously allocated with enough space.
MLIR_CAPI_EXPORTED MlirStringRef llzkRecordAttrGetName(MlirAttribute attr)
Returns the name of the record.
MLIR_CAPI_EXPORTED MlirType llzkPodTypeLookupRecordWithinLocation(MlirType type, MlirStringRef name, MlirLocation loc)
Lookups a record type by name.
MLIR_DECLARE_CAPI_DIALECT_REGISTRATION(POD, llzk__pod)
MLIR_CAPI_EXPORTED MlirType llzkPodTypeGetFromInitialValues(MlirContext context, intptr_t nRecords, LlzkRecordValue const *records)
Creates an llzk::pod::PodType using a list of values for inferring the records.
MLIR_CAPI_EXPORTED MlirAttribute llzkPodTypeGetNthRecord(MlirType type, intptr_t n)
Returns the n-th record in the struct.
MLIR_CAPI_EXPORTED MlirAttribute llzkRecordAttrGetNameSym(MlirAttribute attr)
Returns the name of the record as a flat symbol attribute.
MLIR_CAPI_EXPORTED MlirType llzkPodTypeGet(MlirContext context, intptr_t nRecords, MlirAttribute const *records)
Creates an llzk::pod::PodType using a list of attributes as records.
MLIR_CAPI_EXPORTED intptr_t llzkPodTypeGetNumRecords(MlirType type)
Returns the number of records in the struct.
#define LLZK_DECLARE_OP_ISA(what)
#define LLZK_DECLARE_ATTR_ISA(what)
#define LLZK_DECLARE_OP_BUILD_METHOD(op,...)
#define LLZK_DECLARE_TYPE_ISA(what)
#define LLZK_DECLARE_SUFFIX_OP_BUILD_METHOD(op, suffix,...)
Encapsulates the arguments related to affine maps that are common in operation constructors that supp...