LLZK 2.1.1
An open-source IR for Zero Knowledge (ZK) circuits
Loading...
Searching...
No Matches
Ops.capi.cpp.inc
Go to the documentation of this file.
1/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
2|* *|
3|* Op C API Definitions *|
4|* *|
5|* Automatically generated file, do not edit! *|
6|* From: Ops.td *|
7|* *|
8\*===----------------------------------------------------------------------===*/
9
10
11#include <limits>
12
13using namespace mlir;
14using namespace llvm;
15
16bool llzkOperationIsA_Pod_NewPodOp(MlirOperation inp) {
17 return llvm::isa<NewPodOp>(unwrap(inp));
18}
19
20intptr_t llzkPod_NewPodOpGetInitialValuesCount(MlirOperation op) {
21 auto range = llvm::cast<NewPodOp>(unwrap(op)).getODSOperandIndexAndLength(0);
22 return range.second;
23}
24
25MlirValue llzkPod_NewPodOpGetInitialValuesAt(MlirOperation op, intptr_t index) {
26 auto range = llvm::cast<NewPodOp>(unwrap(op)).getODSOperandIndexAndLength(0);
27 assert(index >= 0 && index < range.second && "variadic operand index out of range");
28 assert(
29 static_cast<uintptr_t>(range.first) <= static_cast<uintptr_t>(std::numeric_limits<intptr_t>::max()) &&
30 "operand index exceeds intptr_t range"
31 );
32 return mlirOperationGetOperand(op, static_cast<intptr_t>(range.first) + index);
33}
34
35void llzkPod_NewPodOpSetInitialValues(MlirOperation op, intptr_t count, MlirValue const *values) {
36 if (count < 0)
37 return;
38 ::llvm::SmallVector<::mlir::Value> vals;
39 vals.reserve(static_cast<size_t>(count));
40 for (intptr_t i = 0; i < count; ++i)
41 vals.push_back(unwrap(values[i]));
42 ::llvm::cast<NewPodOp>(unwrap(op)).getInitialValuesMutable().assign(vals);
43}
44
45intptr_t llzkPod_NewPodOpGetMapOperandsCount(MlirOperation op) {
46 auto range = llvm::cast<NewPodOp>(unwrap(op)).getODSOperandIndexAndLength(1);
47 return range.second;
48}
49
50MlirValue llzkPod_NewPodOpGetMapOperandsAt(MlirOperation op, intptr_t index) {
51 auto range = llvm::cast<NewPodOp>(unwrap(op)).getODSOperandIndexAndLength(1);
52 assert(index >= 0 && index < range.second && "variadic operand index out of range");
53 assert(
54 static_cast<uintptr_t>(range.first) <= static_cast<uintptr_t>(std::numeric_limits<intptr_t>::max()) &&
55 "operand index exceeds intptr_t range"
56 );
57 return mlirOperationGetOperand(op, static_cast<intptr_t>(range.first) + index);
58}
59
60void llzkPod_NewPodOpSetMapOperands(MlirOperation op, intptr_t groupCount, MlirValueRange const *groups) {
61 if (groupCount < 0)
62 return;
63
64 ::llvm::SmallVector<::mlir::Value> vals;
65 for (intptr_t g = 0; g < groupCount; ++g) {
66 assert(groups[g].size >= 0 && "group size must be non-negative");
67 for (intptr_t i = 0; i < groups[g].size; ++i) {
68 vals.push_back(unwrap(groups[g].values[i]));
69 }
70 }
71 ::llvm::cast<NewPodOp>(unwrap(op)).getMapOperandsMutable().join().assign(vals);
72
73 ::llvm::SmallVector<int32_t> newGroupSizes;
74 newGroupSizes.reserve(static_cast<size_t>(groupCount));
75 for (intptr_t g = 0; g < groupCount; ++g) {
76 assert(
77 groups[g].size <= static_cast<intptr_t>(std::numeric_limits<int32_t>::max()) &&
78 "group size exceeds int32_t range"
79 );
80 newGroupSizes.push_back(static_cast<int32_t>(groups[g].size));
81 }
82 MlirContext ctx = mlirOperationGetContext(op);
83 assert(
84 newGroupSizes.size() <= static_cast<size_t>(std::numeric_limits<intptr_t>::max()) &&
85 "group count exceeds intptr_t range"
86 );
87 mlirOperationSetAttributeByName(
88 op, mlirStringRefCreateFromCString("mapOpGroupSizes"),
89 mlirDenseI32ArrayGet(ctx, static_cast<intptr_t>(newGroupSizes.size()), newGroupSizes.data())
90 );
91}
92
93MlirAttribute llzkPod_NewPodOpGetInitializedRecords(MlirOperation op) {
94 return mlirOperationGetAttributeByName(op, mlirStringRefCreateFromCString("initializedRecords"));
95}
96
97void llzkPod_NewPodOpSetInitializedRecords(MlirOperation op, MlirAttribute attr) {
98 mlirOperationSetAttributeByName(op, mlirStringRefCreateFromCString("initializedRecords"), attr);
99}
100
101MlirAttribute llzkPod_NewPodOpGetNumDimsPerMap(MlirOperation op) {
102 return mlirOperationGetAttributeByName(op, mlirStringRefCreateFromCString("numDimsPerMap"));
103}
104
105void llzkPod_NewPodOpSetNumDimsPerMap(MlirOperation op, MlirAttribute attr) {
106 mlirOperationSetAttributeByName(op, mlirStringRefCreateFromCString("numDimsPerMap"), attr);
107}
108
109MlirAttribute llzkPod_NewPodOpGetMapOpGroupSizes(MlirOperation op) {
110 return mlirOperationGetAttributeByName(op, mlirStringRefCreateFromCString("mapOpGroupSizes"));
111}
112
113void llzkPod_NewPodOpSetMapOpGroupSizes(MlirOperation op, MlirAttribute attr) {
114 mlirOperationSetAttributeByName(op, mlirStringRefCreateFromCString("mapOpGroupSizes"), attr);
115}
116
117MlirValue llzkPod_NewPodOpGetResult(MlirOperation op) {
118 return mlirOperationGetResult(op, 0);
119}
120
121MlirOperation llzkPod_ReadPodOpBuild(MlirOpBuilder builder, MlirLocation location, MlirType resultType, MlirValue pod_ref, MlirAttribute record_name) {
122 MlirOperationState state = mlirOperationStateGet(mlirStringRefCreateFromCString("pod.read"), location);
123 mlirOperationStateAddResults(&state, 1, &resultType);
124 mlirOperationStateAddOperands(&state, 1, &pod_ref);
125 MlirContext ctx = mlirOpBuilderGetContext(builder);
126 llvm::SmallVector<MlirNamedAttribute, 1> attributes;
127 if (!mlirAttributeIsNull(record_name)) {
128 attributes.push_back(mlirNamedAttributeGet(mlirIdentifierGet(ctx, mlirStringRefCreateFromCString("record_name")), record_name));
129 }
130 mlirOperationStateAddAttributes(&state, attributes.size(), attributes.data());
131
132 return mlirOpBuilderInsert(builder, mlirOperationCreate(&state));
133}
134
135bool llzkOperationIsA_Pod_ReadPodOp(MlirOperation inp) {
136 return llvm::isa<ReadPodOp>(unwrap(inp));
137}
138
139MlirValue llzkPod_ReadPodOpGetPodRef(MlirOperation op) {
140 auto range = llvm::cast<ReadPodOp>(unwrap(op)).getODSOperandIndexAndLength(0);
141 assert(range.second == 1 && "expected fixed operand segment size");
142 assert(
143 static_cast<uintptr_t>(range.first) <= static_cast<uintptr_t>(std::numeric_limits<intptr_t>::max()) &&
144 "operand index exceeds intptr_t range"
145 );
146 return mlirOperationGetOperand(op, static_cast<intptr_t>(range.first));
147}
148
149void llzkPod_ReadPodOpSetPodRef(MlirOperation op, MlirValue value) {
150 auto range = llvm::cast<ReadPodOp>(unwrap(op)).getODSOperandIndexAndLength(0);
151 assert(range.second == 1 && "expected fixed operand segment size");
152 assert(
153 static_cast<uintptr_t>(range.first) <= static_cast<uintptr_t>(std::numeric_limits<intptr_t>::max()) &&
154 "operand index exceeds intptr_t range"
155 );
156 mlirOperationSetOperand(op, static_cast<intptr_t>(range.first), value);
157}
158
159MlirAttribute llzkPod_ReadPodOpGetRecordName(MlirOperation op) {
160 return mlirOperationGetAttributeByName(op, mlirStringRefCreateFromCString("record_name"));
161}
162
163void llzkPod_ReadPodOpSetRecordName(MlirOperation op, MlirAttribute attr) {
164 mlirOperationSetAttributeByName(op, mlirStringRefCreateFromCString("record_name"), attr);
165}
166
167MlirValue llzkPod_ReadPodOpGetResult(MlirOperation op) {
168 return mlirOperationGetResult(op, 0);
169}
170
171MlirType llzkPod_ReadPodOpGetPodRefType(MlirOperation inp) {
172 return wrap(llvm::cast<ReadPodOp>(unwrap(inp)).getPodRefType());
173}
174
175MlirOperation llzkPod_WritePodOpBuild(MlirOpBuilder builder, MlirLocation location, MlirValue pod_ref, MlirValue value, MlirAttribute record_name) {
176 MlirOperationState state = mlirOperationStateGet(mlirStringRefCreateFromCString("pod.write"), location);
177 mlirOperationStateAddOperands(&state, 1, &pod_ref);
178 mlirOperationStateAddOperands(&state, 1, &value);
179 MlirContext ctx = mlirOpBuilderGetContext(builder);
180 llvm::SmallVector<MlirNamedAttribute, 1> attributes;
181 if (!mlirAttributeIsNull(record_name)) {
182 attributes.push_back(mlirNamedAttributeGet(mlirIdentifierGet(ctx, mlirStringRefCreateFromCString("record_name")), record_name));
183 }
184 mlirOperationStateAddAttributes(&state, attributes.size(), attributes.data());
185
186 return mlirOpBuilderInsert(builder, mlirOperationCreate(&state));
187}
188
189bool llzkOperationIsA_Pod_WritePodOp(MlirOperation inp) {
190 return llvm::isa<WritePodOp>(unwrap(inp));
191}
192
193MlirValue llzkPod_WritePodOpGetPodRef(MlirOperation op) {
194 auto range = llvm::cast<WritePodOp>(unwrap(op)).getODSOperandIndexAndLength(0);
195 assert(range.second == 1 && "expected fixed operand segment size");
196 assert(
197 static_cast<uintptr_t>(range.first) <= static_cast<uintptr_t>(std::numeric_limits<intptr_t>::max()) &&
198 "operand index exceeds intptr_t range"
199 );
200 return mlirOperationGetOperand(op, static_cast<intptr_t>(range.first));
201}
202
203void llzkPod_WritePodOpSetPodRef(MlirOperation op, MlirValue value) {
204 auto range = llvm::cast<WritePodOp>(unwrap(op)).getODSOperandIndexAndLength(0);
205 assert(range.second == 1 && "expected fixed operand segment size");
206 assert(
207 static_cast<uintptr_t>(range.first) <= static_cast<uintptr_t>(std::numeric_limits<intptr_t>::max()) &&
208 "operand index exceeds intptr_t range"
209 );
210 mlirOperationSetOperand(op, static_cast<intptr_t>(range.first), value);
211}
212
213MlirValue llzkPod_WritePodOpGetValue(MlirOperation op) {
214 auto range = llvm::cast<WritePodOp>(unwrap(op)).getODSOperandIndexAndLength(1);
215 assert(range.second == 1 && "expected fixed operand segment size");
216 assert(
217 static_cast<uintptr_t>(range.first) <= static_cast<uintptr_t>(std::numeric_limits<intptr_t>::max()) &&
218 "operand index exceeds intptr_t range"
219 );
220 return mlirOperationGetOperand(op, static_cast<intptr_t>(range.first));
221}
222
223void llzkPod_WritePodOpSetValue(MlirOperation op, MlirValue value) {
224 auto range = llvm::cast<WritePodOp>(unwrap(op)).getODSOperandIndexAndLength(1);
225 assert(range.second == 1 && "expected fixed operand segment size");
226 assert(
227 static_cast<uintptr_t>(range.first) <= static_cast<uintptr_t>(std::numeric_limits<intptr_t>::max()) &&
228 "operand index exceeds intptr_t range"
229 );
230 mlirOperationSetOperand(op, static_cast<intptr_t>(range.first), value);
231}
232
233MlirAttribute llzkPod_WritePodOpGetRecordName(MlirOperation op) {
234 return mlirOperationGetAttributeByName(op, mlirStringRefCreateFromCString("record_name"));
235}
236
237void llzkPod_WritePodOpSetRecordName(MlirOperation op, MlirAttribute attr) {
238 mlirOperationSetAttributeByName(op, mlirStringRefCreateFromCString("record_name"), attr);
239}
240
241MlirType llzkPod_WritePodOpGetPodRefType(MlirOperation inp) {
242 return wrap(llvm::cast<WritePodOp>(unwrap(inp)).getPodRefType());
243}
MlirContext mlirOpBuilderGetContext(MlirOpBuilder builder)
Returns the MLIR context associated with builder.
Definition Builder.cpp:95
MlirOperation mlirOpBuilderInsert(MlirOpBuilder builder, MlirOperation op)
Inserts op at the current insertion point of builder and returns it.
Definition Builder.cpp:167
void llzkPod_WritePodOpSetRecordName(MlirOperation op, MlirAttribute attr)
Set RecordName attribute of llzk::pod::WritePodOp Operation.
MlirValue llzkPod_ReadPodOpGetResult(MlirOperation op)
Get Result result from llzk::pod::ReadPodOp Operation.
void llzkPod_NewPodOpSetMapOpGroupSizes(MlirOperation op, MlirAttribute attr)
Set MapOpGroupSizes attribute of llzk::pod::NewPodOp Operation.
void llzkPod_NewPodOpSetInitialValues(MlirOperation op, intptr_t count, MlirValue const *values)
Set InitialValues operands of llzk::pod::NewPodOp Operation.
bool llzkOperationIsA_Pod_ReadPodOp(MlirOperation inp)
Returns true if the Operation is a llzk::pod::ReadPodOp.
void llzkPod_ReadPodOpSetPodRef(MlirOperation op, MlirValue value)
Set PodRef operand of llzk::pod::ReadPodOp Operation.
MlirOperation llzkPod_ReadPodOpBuild(MlirOpBuilder builder, MlirLocation location, MlirType resultType, MlirValue pod_ref, MlirAttribute record_name)
Build a llzk::pod::ReadPodOp Operation.
MlirValue llzkPod_WritePodOpGetPodRef(MlirOperation op)
Get PodRef operand from llzk::pod::WritePodOp Operation.
MlirAttribute llzkPod_WritePodOpGetRecordName(MlirOperation op)
Get RecordName attribute from llzk::pod::WritePodOp Operation.
MlirType llzkPod_WritePodOpGetPodRefType(MlirOperation inp)
Gets the type of the referenced pod.
void llzkPod_NewPodOpSetMapOperands(MlirOperation op, intptr_t groupCount, MlirValueRange const *groups)
Set MapOperands operand groups of llzk::pod::NewPodOp Operation.
MlirAttribute llzkPod_ReadPodOpGetRecordName(MlirOperation op)
Get RecordName attribute from llzk::pod::ReadPodOp Operation.
intptr_t llzkPod_NewPodOpGetMapOperandsCount(MlirOperation op)
Get number of MapOperands operands in llzk::pod::NewPodOp Operation.
void llzkPod_WritePodOpSetValue(MlirOperation op, MlirValue value)
Set Value operand of llzk::pod::WritePodOp Operation.
MlirAttribute llzkPod_NewPodOpGetMapOpGroupSizes(MlirOperation op)
Get MapOpGroupSizes attribute from llzk::pod::NewPodOp Operation.
void llzkPod_WritePodOpSetPodRef(MlirOperation op, MlirValue value)
Set PodRef operand of llzk::pod::WritePodOp Operation.
MlirValue llzkPod_ReadPodOpGetPodRef(MlirOperation op)
Get PodRef operand from llzk::pod::ReadPodOp Operation.
MlirValue llzkPod_NewPodOpGetResult(MlirOperation op)
Get Result result from llzk::pod::NewPodOp Operation.
bool llzkOperationIsA_Pod_NewPodOp(MlirOperation inp)
Returns true if the Operation is a llzk::pod::NewPodOp.
MlirOperation llzkPod_WritePodOpBuild(MlirOpBuilder builder, MlirLocation location, MlirValue pod_ref, MlirValue value, MlirAttribute record_name)
Build a llzk::pod::WritePodOp Operation.
void llzkPod_NewPodOpSetNumDimsPerMap(MlirOperation op, MlirAttribute attr)
Set NumDimsPerMap attribute of llzk::pod::NewPodOp Operation.
void llzkPod_ReadPodOpSetRecordName(MlirOperation op, MlirAttribute attr)
Set RecordName attribute of llzk::pod::ReadPodOp Operation.
MlirType llzkPod_ReadPodOpGetPodRefType(MlirOperation inp)
Gets the type of the referenced pod.
MlirAttribute llzkPod_NewPodOpGetInitializedRecords(MlirOperation op)
Get InitializedRecords attribute from llzk::pod::NewPodOp Operation.
MlirValue llzkPod_WritePodOpGetValue(MlirOperation op)
Get Value operand from llzk::pod::WritePodOp Operation.
MlirAttribute llzkPod_NewPodOpGetNumDimsPerMap(MlirOperation op)
Get NumDimsPerMap attribute from llzk::pod::NewPodOp Operation.
intptr_t llzkPod_NewPodOpGetInitialValuesCount(MlirOperation op)
Get number of InitialValues operands in llzk::pod::NewPodOp Operation.
bool llzkOperationIsA_Pod_WritePodOp(MlirOperation inp)
Returns true if the Operation is a llzk::pod::WritePodOp.
void llzkPod_NewPodOpSetInitializedRecords(MlirOperation op, MlirAttribute attr)
Set InitializedRecords attribute of llzk::pod::NewPodOp Operation.
MlirValue llzkPod_NewPodOpGetInitialValuesAt(MlirOperation op, intptr_t index)
Get InitialValues operand at index from llzk::pod::NewPodOp Operation.
MlirValue llzkPod_NewPodOpGetMapOperandsAt(MlirOperation op, intptr_t index)
Get MapOperands operand at index from llzk::pod::NewPodOp Operation.
Representation of an mlir::ValueRange
Definition Support.h:47
intptr_t size
Number of values in the range.
Definition Support.h:51