17#include <mlir-c/BuiltinAttributes.h>
19#include <mlir/CAPI/Registration.h>
20#include <mlir/CAPI/Wrap.h>
21#include <mlir/IR/BuiltinAttributes.h>
29MLIR_DEFINE_CAPI_DIALECT_REGISTRATION(Verif, llzk__verif,
VerifDialect)
40 Verif,
ContractOp, MlirIdentifier sym_name, MlirAttribute target, MlirAttribute function_type,
41 MlirAttribute arg_attrs
44 if (!mlirAttributeIsNull(arg_attrs)) {
60 Verif,
ContractOp, FromTargetIdentifier, MlirIdentifier sym_name, MlirIdentifier target
68 Verif,
ContractOp, FromTargetAttr, MlirIdentifier sym_name, MlirAttribute target
86 SmallVector<Value> argOperandsSto;
88 if (!mlirAttributeIsNull(templateParams)) {
96 unwrapList(argOperands.
size, argOperands.
values, argOperandsSto),
97 paramsAttr ? paramsAttr.getValue() : ArrayRef<Attribute> {}
108 Verif,
InvariantOp, MlirStringRef loopName, intptr_t numArgs, MlirType
const *types,
109 MlirLocation
const *locs
111 SmallVector<Type> typesSto;
112 SmallVector<Location> locsSto;
113 auto typesRef = unwrapList(numArgs, types, typesSto);
114 auto locsRef = unwrapList(numArgs, locs, locsSto);
MlirOperation mlirOpBuilderInsert(MlirOpBuilder builder, MlirOperation op)
Inserts op at the current insertion point of builder and returns it.
MlirBlock llzkVerif_InvariantOpGetBody(MlirOperation op)
Returns the body of the invariant operation.
void llzkVerif_attachInterfaces(MlirContext context)
Attaches the interfaces defined by the verif dialect to upstream IR elements.
#define LLZK_DEFINE_OP_BUILD_METHOD(dialect, op,...)
#define LLZK_DEFINE_SUFFIX_OP_BUILD_METHOD(dialect, op, suffix,...)
void attachInterfaces(mlir::MLIRContext &context)
Attaches the interfaces defined by the verif dialect to upstream IR elements.
mlir::Operation * create(MlirOpBuilder cBuilder, MlirLocation cLocation, Args &&...args)
Creates a new operation using an ODS build method.
auto unwrap_cast(auto &from)
Representation of an mlir::ValueRange
MlirValue const * values
Pointer to the first value in the range.
intptr_t size
Number of values in the range.