LLZK 3.0.0
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
16MlirOperation llzkVerif_ContractEndOpBuild(MlirOpBuilder builder, MlirLocation location) {
17 MlirOperationState state = mlirOperationStateGet(mlirStringRefCreateFromCString("verif.contract_end"), location);
18
19 return mlirOpBuilderInsert(builder, mlirOperationCreate(&state));
20}
21
22bool llzkOperationIsA_Verif_ContractEndOp(MlirOperation inp) {
23 return llvm::isa<ContractEndOp>(unwrap(inp));
24}
25
26bool llzkOperationIsA_Verif_ContractOp(MlirOperation inp) {
27 return llvm::isa<ContractOp>(unwrap(inp));
28}
29
30MlirAttribute llzkVerif_ContractOpGetSymName(MlirOperation op) {
31 return mlirOperationGetAttributeByName(op, mlirStringRefCreateFromCString("sym_name"));
32}
33
34void llzkVerif_ContractOpSetSymName(MlirOperation op, MlirAttribute attr) {
35 mlirOperationSetAttributeByName(op, mlirStringRefCreateFromCString("sym_name"), attr);
36}
37
38MlirAttribute llzkVerif_ContractOpGetTarget(MlirOperation op) {
39 return mlirOperationGetAttributeByName(op, mlirStringRefCreateFromCString("target"));
40}
41
42void llzkVerif_ContractOpSetTarget(MlirOperation op, MlirAttribute attr) {
43 mlirOperationSetAttributeByName(op, mlirStringRefCreateFromCString("target"), attr);
44}
45
46MlirAttribute llzkVerif_ContractOpGetFunctionType(MlirOperation op) {
47 return mlirOperationGetAttributeByName(op, mlirStringRefCreateFromCString("function_type"));
48}
49
50void llzkVerif_ContractOpSetFunctionType(MlirOperation op, MlirAttribute attr) {
51 mlirOperationSetAttributeByName(op, mlirStringRefCreateFromCString("function_type"), attr);
52}
53
54MlirAttribute llzkVerif_ContractOpGetArgAttrs(MlirOperation op) {
55 return mlirOperationGetAttributeByName(op, mlirStringRefCreateFromCString("arg_attrs"));
56}
57
58void llzkVerif_ContractOpSetArgAttrs(MlirOperation op, MlirAttribute attr) {
59 mlirOperationSetAttributeByName(op, mlirStringRefCreateFromCString("arg_attrs"), attr);
60}
61
62MlirRegion llzkVerif_ContractOpGetBody(MlirOperation op) {
63 return mlirOperationGetRegion(op, 0);
64}
65
66bool llzkVerif_ContractOpIsDeclaration(MlirOperation inp) {
67 return llvm::cast<ContractOp>(unwrap(inp)).isDeclaration();
68}
69
70bool llzkVerif_ContractOpHasArgPublicAttr(MlirOperation inp, unsigned index) {
71 return llvm::cast<ContractOp>(unwrap(inp)).hasArgPublicAttr(index);
72}
73
74bool llzkVerif_ContractOpHasFuncTarget(MlirOperation inp) {
75 return llvm::cast<ContractOp>(unwrap(inp)).hasFuncTarget();
76}
77
78bool llzkVerif_ContractOpHasStructTarget(MlirOperation inp) {
79 return llvm::cast<ContractOp>(unwrap(inp)).hasStructTarget();
80}
81
82MlirRegion llzkVerif_ContractOpGetCallableRegion(MlirOperation inp) {
83 return wrap(llvm::cast<ContractOp>(unwrap(inp)).getCallableRegion());
84}
85
86bool llzkVerif_ContractOpHasArgName(MlirOperation inp, unsigned index) {
87 return llvm::cast<ContractOp>(unwrap(inp)).hasArgName(index);
88}
89
90MlirAttribute llzkVerif_ContractOpGetFullyQualifiedName(MlirOperation inp, bool requireParent) {
91 return wrap(llvm::cast<ContractOp>(unwrap(inp)).getFullyQualifiedName(requireParent));
92}
93
94MlirOperation llzkVerif_DecreasesOpBuild(MlirOpBuilder builder, MlirLocation location, MlirValue value) {
95 MlirOperationState state = mlirOperationStateGet(mlirStringRefCreateFromCString("verif.decreases"), location);
96 mlirOperationStateAddOperands(&state, 1, &value);
97
98 return mlirOpBuilderInsert(builder, mlirOperationCreate(&state));
99}
100
101bool llzkOperationIsA_Verif_DecreasesOp(MlirOperation inp) {
102 return llvm::isa<DecreasesOp>(unwrap(inp));
103}
104
105MlirValue llzkVerif_DecreasesOpGetValue(MlirOperation op) {
106 auto range = llvm::cast<DecreasesOp>(unwrap(op)).getODSOperandIndexAndLength(0);
107 assert(range.second == 1 && "expected fixed operand segment size");
108 assert(
109 static_cast<uintptr_t>(range.first) <= static_cast<uintptr_t>(std::numeric_limits<intptr_t>::max()) &&
110 "operand index exceeds intptr_t range"
111 );
112 return mlirOperationGetOperand(op, static_cast<intptr_t>(range.first));
113}
114
115void llzkVerif_DecreasesOpSetValue(MlirOperation op, MlirValue value) {
116 auto range = llvm::cast<DecreasesOp>(unwrap(op)).getODSOperandIndexAndLength(0);
117 assert(range.second == 1 && "expected fixed operand segment size");
118 assert(
119 static_cast<uintptr_t>(range.first) <= static_cast<uintptr_t>(std::numeric_limits<intptr_t>::max()) &&
120 "operand index exceeds intptr_t range"
121 );
122 mlirOperationSetOperand(op, static_cast<intptr_t>(range.first), value);
123}
124
125MlirOperation llzkVerif_EnsureComputeOpBuild(MlirOpBuilder builder, MlirLocation location, MlirValue condition) {
126 MlirOperationState state = mlirOperationStateGet(mlirStringRefCreateFromCString("verif.ensure_compute"), location);
127 mlirOperationStateAddOperands(&state, 1, &condition);
128
129 return mlirOpBuilderInsert(builder, mlirOperationCreate(&state));
130}
131
133 return llvm::isa<EnsureComputeOp>(unwrap(inp));
134}
135
136MlirValue llzkVerif_EnsureComputeOpGetCondition(MlirOperation op) {
137 auto range = llvm::cast<EnsureComputeOp>(unwrap(op)).getODSOperandIndexAndLength(0);
138 assert(range.second == 1 && "expected fixed operand segment size");
139 assert(
140 static_cast<uintptr_t>(range.first) <= static_cast<uintptr_t>(std::numeric_limits<intptr_t>::max()) &&
141 "operand index exceeds intptr_t range"
142 );
143 return mlirOperationGetOperand(op, static_cast<intptr_t>(range.first));
144}
145
146void llzkVerif_EnsureComputeOpSetCondition(MlirOperation op, MlirValue value) {
147 auto range = llvm::cast<EnsureComputeOp>(unwrap(op)).getODSOperandIndexAndLength(0);
148 assert(range.second == 1 && "expected fixed operand segment size");
149 assert(
150 static_cast<uintptr_t>(range.first) <= static_cast<uintptr_t>(std::numeric_limits<intptr_t>::max()) &&
151 "operand index exceeds intptr_t range"
152 );
153 mlirOperationSetOperand(op, static_cast<intptr_t>(range.first), value);
154}
155
156MlirOperation llzkVerif_EnsureConstrainOpBuild(MlirOpBuilder builder, MlirLocation location, MlirValue condition) {
157 MlirOperationState state = mlirOperationStateGet(mlirStringRefCreateFromCString("verif.ensure_constrain"), location);
158 mlirOperationStateAddOperands(&state, 1, &condition);
159
160 return mlirOpBuilderInsert(builder, mlirOperationCreate(&state));
161}
162
164 return llvm::isa<EnsureConstrainOp>(unwrap(inp));
165}
166
167MlirValue llzkVerif_EnsureConstrainOpGetCondition(MlirOperation op) {
168 auto range = llvm::cast<EnsureConstrainOp>(unwrap(op)).getODSOperandIndexAndLength(0);
169 assert(range.second == 1 && "expected fixed operand segment size");
170 assert(
171 static_cast<uintptr_t>(range.first) <= static_cast<uintptr_t>(std::numeric_limits<intptr_t>::max()) &&
172 "operand index exceeds intptr_t range"
173 );
174 return mlirOperationGetOperand(op, static_cast<intptr_t>(range.first));
175}
176
177void llzkVerif_EnsureConstrainOpSetCondition(MlirOperation op, MlirValue value) {
178 auto range = llvm::cast<EnsureConstrainOp>(unwrap(op)).getODSOperandIndexAndLength(0);
179 assert(range.second == 1 && "expected fixed operand segment size");
180 assert(
181 static_cast<uintptr_t>(range.first) <= static_cast<uintptr_t>(std::numeric_limits<intptr_t>::max()) &&
182 "operand index exceeds intptr_t range"
183 );
184 mlirOperationSetOperand(op, static_cast<intptr_t>(range.first), value);
185}
186
187bool llzkOperationIsA_Verif_IncludeOp(MlirOperation inp) {
188 return llvm::isa<IncludeOp>(unwrap(inp));
189}
190
191intptr_t llzkVerif_IncludeOpGetArgOperandsCount(MlirOperation op) {
192 auto range = llvm::cast<IncludeOp>(unwrap(op)).getODSOperandIndexAndLength(0);
193 return range.second;
194}
195
196MlirValue llzkVerif_IncludeOpGetArgOperandsAt(MlirOperation op, intptr_t index) {
197 auto range = llvm::cast<IncludeOp>(unwrap(op)).getODSOperandIndexAndLength(0);
198 assert(index >= 0 && index < range.second && "variadic operand index out of range");
199 assert(
200 static_cast<uintptr_t>(range.first) <= static_cast<uintptr_t>(std::numeric_limits<intptr_t>::max()) &&
201 "operand index exceeds intptr_t range"
202 );
203 return mlirOperationGetOperand(op, static_cast<intptr_t>(range.first) + index);
204}
205
206void llzkVerif_IncludeOpSetArgOperands(MlirOperation op, intptr_t count, MlirValue const *values) {
207 if (count < 0)
208 return;
209 ::llvm::SmallVector<::mlir::Value> vals;
210 vals.reserve(static_cast<size_t>(count));
211 for (intptr_t i = 0; i < count; ++i)
212 vals.push_back(unwrap(values[i]));
213 ::llvm::cast<IncludeOp>(unwrap(op)).getArgOperandsMutable().assign(vals);
214}
215
216intptr_t llzkVerif_IncludeOpGetMapOperandsCount(MlirOperation op) {
217 auto range = llvm::cast<IncludeOp>(unwrap(op)).getODSOperandIndexAndLength(1);
218 return range.second;
219}
220
221MlirValue llzkVerif_IncludeOpGetMapOperandsAt(MlirOperation op, intptr_t index) {
222 auto range = llvm::cast<IncludeOp>(unwrap(op)).getODSOperandIndexAndLength(1);
223 assert(index >= 0 && index < range.second && "variadic operand index out of range");
224 assert(
225 static_cast<uintptr_t>(range.first) <= static_cast<uintptr_t>(std::numeric_limits<intptr_t>::max()) &&
226 "operand index exceeds intptr_t range"
227 );
228 return mlirOperationGetOperand(op, static_cast<intptr_t>(range.first) + index);
229}
230
231void llzkVerif_IncludeOpSetMapOperands(MlirOperation op, intptr_t groupCount, MlirValueRange const *groups) {
232 if (groupCount < 0)
233 return;
234
235 ::llvm::SmallVector<::mlir::Value> vals;
236 for (intptr_t g = 0; g < groupCount; ++g) {
237 assert(groups[g].size >= 0 && "group size must be non-negative");
238 for (intptr_t i = 0; i < groups[g].size; ++i) {
239 vals.push_back(unwrap(groups[g].values[i]));
240 }
241 }
242 ::llvm::cast<IncludeOp>(unwrap(op)).getMapOperandsMutable().join().assign(vals);
243
244 ::llvm::SmallVector<int32_t> newGroupSizes;
245 newGroupSizes.reserve(static_cast<size_t>(groupCount));
246 for (intptr_t g = 0; g < groupCount; ++g) {
247 assert(
248 groups[g].size <= static_cast<intptr_t>(std::numeric_limits<int32_t>::max()) &&
249 "group size exceeds int32_t range"
250 );
251 newGroupSizes.push_back(static_cast<int32_t>(groups[g].size));
252 }
253 MlirContext ctx = mlirOperationGetContext(op);
254 assert(
255 newGroupSizes.size() <= static_cast<size_t>(std::numeric_limits<intptr_t>::max()) &&
256 "group count exceeds intptr_t range"
257 );
258 mlirOperationSetAttributeByName(
259 op, mlirStringRefCreateFromCString("mapOpGroupSizes"),
260 mlirDenseI32ArrayGet(ctx, static_cast<intptr_t>(newGroupSizes.size()), newGroupSizes.data())
261 );
262}
263
264MlirAttribute llzkVerif_IncludeOpGetCallee(MlirOperation op) {
265 return mlirOperationGetAttributeByName(op, mlirStringRefCreateFromCString("callee"));
266}
267
268void llzkVerif_IncludeOpSetCallee(MlirOperation op, MlirAttribute attr) {
269 mlirOperationSetAttributeByName(op, mlirStringRefCreateFromCString("callee"), attr);
270}
271
272MlirAttribute llzkVerif_IncludeOpGetTemplateParams(MlirOperation op) {
273 return mlirOperationGetAttributeByName(op, mlirStringRefCreateFromCString("templateParams"));
274}
275
276void llzkVerif_IncludeOpSetTemplateParams(MlirOperation op, MlirAttribute attr) {
277 mlirOperationSetAttributeByName(op, mlirStringRefCreateFromCString("templateParams"), attr);
278}
279
280MlirAttribute llzkVerif_IncludeOpGetNumDimsPerMap(MlirOperation op) {
281 return mlirOperationGetAttributeByName(op, mlirStringRefCreateFromCString("numDimsPerMap"));
282}
283
284void llzkVerif_IncludeOpSetNumDimsPerMap(MlirOperation op, MlirAttribute attr) {
285 mlirOperationSetAttributeByName(op, mlirStringRefCreateFromCString("numDimsPerMap"), attr);
286}
287
288MlirAttribute llzkVerif_IncludeOpGetMapOpGroupSizes(MlirOperation op) {
289 return mlirOperationGetAttributeByName(op, mlirStringRefCreateFromCString("mapOpGroupSizes"));
290}
291
292void llzkVerif_IncludeOpSetMapOpGroupSizes(MlirOperation op, MlirAttribute attr) {
293 mlirOperationSetAttributeByName(op, mlirStringRefCreateFromCString("mapOpGroupSizes"), attr);
294}
295
297 return llvm::cast<IncludeOp>(unwrap(inp)).contractTargetsStruct();
298}
299
300MlirValue llzkVerif_IncludeOpGetSelfValue(MlirOperation inp) {
301 return wrap(llvm::cast<IncludeOp>(unwrap(inp)).getSelfValue());
302}
303
304MlirType llzkVerif_IncludeOpGetTypeSignature(MlirOperation inp) {
305 return wrap(llvm::cast<IncludeOp>(unwrap(inp)).getTypeSignature());
306}
307
308MlirOperation llzkVerif_IncludeOpResolveCallable(MlirOperation inp) {
309 return wrap(llvm::cast<IncludeOp>(unwrap(inp)).resolveCallable());
310}
311
312MlirOperation llzkVerif_IncreasesOpBuild(MlirOpBuilder builder, MlirLocation location, MlirValue value) {
313 MlirOperationState state = mlirOperationStateGet(mlirStringRefCreateFromCString("verif.increases"), location);
314 mlirOperationStateAddOperands(&state, 1, &value);
315
316 return mlirOpBuilderInsert(builder, mlirOperationCreate(&state));
317}
318
319bool llzkOperationIsA_Verif_IncreasesOp(MlirOperation inp) {
320 return llvm::isa<IncreasesOp>(unwrap(inp));
321}
322
323MlirValue llzkVerif_IncreasesOpGetValue(MlirOperation op) {
324 auto range = llvm::cast<IncreasesOp>(unwrap(op)).getODSOperandIndexAndLength(0);
325 assert(range.second == 1 && "expected fixed operand segment size");
326 assert(
327 static_cast<uintptr_t>(range.first) <= static_cast<uintptr_t>(std::numeric_limits<intptr_t>::max()) &&
328 "operand index exceeds intptr_t range"
329 );
330 return mlirOperationGetOperand(op, static_cast<intptr_t>(range.first));
331}
332
333void llzkVerif_IncreasesOpSetValue(MlirOperation op, MlirValue value) {
334 auto range = llvm::cast<IncreasesOp>(unwrap(op)).getODSOperandIndexAndLength(0);
335 assert(range.second == 1 && "expected fixed operand segment size");
336 assert(
337 static_cast<uintptr_t>(range.first) <= static_cast<uintptr_t>(std::numeric_limits<intptr_t>::max()) &&
338 "operand index exceeds intptr_t range"
339 );
340 mlirOperationSetOperand(op, static_cast<intptr_t>(range.first), value);
341}
342
343bool llzkOperationIsA_Verif_InvariantOp(MlirOperation inp) {
344 return llvm::isa<InvariantOp>(unwrap(inp));
345}
346
347MlirAttribute llzkVerif_InvariantOpGetLoopName(MlirOperation op) {
348 return mlirOperationGetAttributeByName(op, mlirStringRefCreateFromCString("loop_name"));
349}
350
351void llzkVerif_InvariantOpSetLoopName(MlirOperation op, MlirAttribute attr) {
352 mlirOperationSetAttributeByName(op, mlirStringRefCreateFromCString("loop_name"), attr);
353}
354
355MlirAttribute llzkVerif_InvariantOpGetLoopArgTypes(MlirOperation op) {
356 return mlirOperationGetAttributeByName(op, mlirStringRefCreateFromCString("loop_arg_types"));
357}
358
359void llzkVerif_InvariantOpSetLoopArgTypes(MlirOperation op, MlirAttribute attr) {
360 mlirOperationSetAttributeByName(op, mlirStringRefCreateFromCString("loop_arg_types"), attr);
361}
362
363MlirRegion llzkVerif_InvariantOpGetRegion(MlirOperation op) {
364 return mlirOperationGetRegion(op, 0);
365}
366
367MlirOperation llzkVerif_InvariantOpGetParentContract(MlirOperation inp) {
368 return wrap(llvm::cast<InvariantOp>(unwrap(inp)).getParentContract());
369}
370
371MlirOperation llzkVerif_OldOpBuild(MlirOpBuilder builder, MlirLocation location, MlirValue value) {
372 MlirOperationState state = mlirOperationStateGet(mlirStringRefCreateFromCString("verif.old"), location);
373 mlirOperationStateEnableResultTypeInference(&state);
374 mlirOperationStateAddOperands(&state, 1, &value);
375
376 return mlirOpBuilderInsert(builder, mlirOperationCreate(&state));
377}
378
379bool llzkOperationIsA_Verif_OldOp(MlirOperation inp) {
380 return llvm::isa<OldOp>(unwrap(inp));
381}
382
383MlirValue llzkVerif_OldOpGetValue(MlirOperation op) {
384 auto range = llvm::cast<OldOp>(unwrap(op)).getODSOperandIndexAndLength(0);
385 assert(range.second == 1 && "expected fixed operand segment size");
386 assert(
387 static_cast<uintptr_t>(range.first) <= static_cast<uintptr_t>(std::numeric_limits<intptr_t>::max()) &&
388 "operand index exceeds intptr_t range"
389 );
390 return mlirOperationGetOperand(op, static_cast<intptr_t>(range.first));
391}
392
393void llzkVerif_OldOpSetValue(MlirOperation op, MlirValue value) {
394 auto range = llvm::cast<OldOp>(unwrap(op)).getODSOperandIndexAndLength(0);
395 assert(range.second == 1 && "expected fixed operand segment size");
396 assert(
397 static_cast<uintptr_t>(range.first) <= static_cast<uintptr_t>(std::numeric_limits<intptr_t>::max()) &&
398 "operand index exceeds intptr_t range"
399 );
400 mlirOperationSetOperand(op, static_cast<intptr_t>(range.first), value);
401}
402
403MlirValue llzkVerif_OldOpGetResult(MlirOperation op) {
404 return mlirOperationGetResult(op, 0);
405}
406
407MlirOperation llzkVerif_RequireComputeOpBuild(MlirOpBuilder builder, MlirLocation location, MlirValue condition) {
408 MlirOperationState state = mlirOperationStateGet(mlirStringRefCreateFromCString("verif.require_compute"), location);
409 mlirOperationStateAddOperands(&state, 1, &condition);
410
411 return mlirOpBuilderInsert(builder, mlirOperationCreate(&state));
412}
413
415 return llvm::isa<RequireComputeOp>(unwrap(inp));
416}
417
418MlirValue llzkVerif_RequireComputeOpGetCondition(MlirOperation op) {
419 auto range = llvm::cast<RequireComputeOp>(unwrap(op)).getODSOperandIndexAndLength(0);
420 assert(range.second == 1 && "expected fixed operand segment size");
421 assert(
422 static_cast<uintptr_t>(range.first) <= static_cast<uintptr_t>(std::numeric_limits<intptr_t>::max()) &&
423 "operand index exceeds intptr_t range"
424 );
425 return mlirOperationGetOperand(op, static_cast<intptr_t>(range.first));
426}
427
428void llzkVerif_RequireComputeOpSetCondition(MlirOperation op, MlirValue value) {
429 auto range = llvm::cast<RequireComputeOp>(unwrap(op)).getODSOperandIndexAndLength(0);
430 assert(range.second == 1 && "expected fixed operand segment size");
431 assert(
432 static_cast<uintptr_t>(range.first) <= static_cast<uintptr_t>(std::numeric_limits<intptr_t>::max()) &&
433 "operand index exceeds intptr_t range"
434 );
435 mlirOperationSetOperand(op, static_cast<intptr_t>(range.first), value);
436}
437
438MlirOperation llzkVerif_RequireConstrainOpBuild(MlirOpBuilder builder, MlirLocation location, MlirValue condition) {
439 MlirOperationState state = mlirOperationStateGet(mlirStringRefCreateFromCString("verif.require_constrain"), location);
440 mlirOperationStateAddOperands(&state, 1, &condition);
441
442 return mlirOpBuilderInsert(builder, mlirOperationCreate(&state));
443}
444
446 return llvm::isa<RequireConstrainOp>(unwrap(inp));
447}
448
449MlirValue llzkVerif_RequireConstrainOpGetCondition(MlirOperation op) {
450 auto range = llvm::cast<RequireConstrainOp>(unwrap(op)).getODSOperandIndexAndLength(0);
451 assert(range.second == 1 && "expected fixed operand segment size");
452 assert(
453 static_cast<uintptr_t>(range.first) <= static_cast<uintptr_t>(std::numeric_limits<intptr_t>::max()) &&
454 "operand index exceeds intptr_t range"
455 );
456 return mlirOperationGetOperand(op, static_cast<intptr_t>(range.first));
457}
458
459void llzkVerif_RequireConstrainOpSetCondition(MlirOperation op, MlirValue value) {
460 auto range = llvm::cast<RequireConstrainOp>(unwrap(op)).getODSOperandIndexAndLength(0);
461 assert(range.second == 1 && "expected fixed operand segment size");
462 assert(
463 static_cast<uintptr_t>(range.first) <= static_cast<uintptr_t>(std::numeric_limits<intptr_t>::max()) &&
464 "operand index exceeds intptr_t range"
465 );
466 mlirOperationSetOperand(op, static_cast<intptr_t>(range.first), value);
467}
468
469MlirOperation llzkVerif_StepOpBuild(MlirOpBuilder builder, MlirLocation location) {
470 MlirOperationState state = mlirOperationStateGet(mlirStringRefCreateFromCString("verif.step"), location);
471 llvm::SmallVector<MlirRegion, 1> regions;
472 regions.push_back(mlirRegionCreate());
473 mlirOperationStateAddOwnedRegions(&state, regions.size(), regions.data());
474
475 return mlirOpBuilderInsert(builder, mlirOperationCreate(&state));
476}
477
478bool llzkOperationIsA_Verif_StepOp(MlirOperation inp) {
479 return llvm::isa<StepOp>(unwrap(inp));
480}
481
482MlirRegion llzkVerif_StepOpGetRegion(MlirOperation op) {
483 return mlirOperationGetRegion(op, 0);
484}
485
486MlirOperation llzkVerif_StepYieldOpBuild(MlirOpBuilder builder, MlirLocation location, MlirValue value) {
487 MlirOperationState state = mlirOperationStateGet(mlirStringRefCreateFromCString("verif.step.yield"), location);
488 mlirOperationStateAddOperands(&state, 1, &value);
489
490 return mlirOpBuilderInsert(builder, mlirOperationCreate(&state));
491}
492
493bool llzkOperationIsA_Verif_StepYieldOp(MlirOperation inp) {
494 return llvm::isa<StepYieldOp>(unwrap(inp));
495}
496
497MlirValue llzkVerif_StepYieldOpGetValue(MlirOperation op) {
498 auto range = llvm::cast<StepYieldOp>(unwrap(op)).getODSOperandIndexAndLength(0);
499 assert(range.second == 1 && "expected fixed operand segment size");
500 assert(
501 static_cast<uintptr_t>(range.first) <= static_cast<uintptr_t>(std::numeric_limits<intptr_t>::max()) &&
502 "operand index exceeds intptr_t range"
503 );
504 return mlirOperationGetOperand(op, static_cast<intptr_t>(range.first));
505}
506
507void llzkVerif_StepYieldOpSetValue(MlirOperation op, MlirValue value) {
508 auto range = llvm::cast<StepYieldOp>(unwrap(op)).getODSOperandIndexAndLength(0);
509 assert(range.second == 1 && "expected fixed operand segment size");
510 assert(
511 static_cast<uintptr_t>(range.first) <= static_cast<uintptr_t>(std::numeric_limits<intptr_t>::max()) &&
512 "operand index exceeds intptr_t range"
513 );
514 mlirOperationSetOperand(op, static_cast<intptr_t>(range.first), value);
515}
516
517MlirOperation llzkVerif_VerifAssertOpBuild(MlirOpBuilder builder, MlirLocation location, MlirValue condition) {
518 MlirOperationState state = mlirOperationStateGet(mlirStringRefCreateFromCString("verif.assert"), location);
519 mlirOperationStateAddOperands(&state, 1, &condition);
520
521 return mlirOpBuilderInsert(builder, mlirOperationCreate(&state));
522}
523
525 return llvm::isa<VerifAssertOp>(unwrap(inp));
526}
527
528MlirValue llzkVerif_VerifAssertOpGetCondition(MlirOperation op) {
529 auto range = llvm::cast<VerifAssertOp>(unwrap(op)).getODSOperandIndexAndLength(0);
530 assert(range.second == 1 && "expected fixed operand segment size");
531 assert(
532 static_cast<uintptr_t>(range.first) <= static_cast<uintptr_t>(std::numeric_limits<intptr_t>::max()) &&
533 "operand index exceeds intptr_t range"
534 );
535 return mlirOperationGetOperand(op, static_cast<intptr_t>(range.first));
536}
537
538void llzkVerif_VerifAssertOpSetCondition(MlirOperation op, MlirValue value) {
539 auto range = llvm::cast<VerifAssertOp>(unwrap(op)).getODSOperandIndexAndLength(0);
540 assert(range.second == 1 && "expected fixed operand segment size");
541 assert(
542 static_cast<uintptr_t>(range.first) <= static_cast<uintptr_t>(std::numeric_limits<intptr_t>::max()) &&
543 "operand index exceeds intptr_t range"
544 );
545 mlirOperationSetOperand(op, static_cast<intptr_t>(range.first), value);
546}
547
548MlirOperation llzkVerif_VerifProveOpBuild(MlirOpBuilder builder, MlirLocation location, MlirValue condition) {
549 MlirOperationState state = mlirOperationStateGet(mlirStringRefCreateFromCString("verif.prove"), location);
550 mlirOperationStateAddOperands(&state, 1, &condition);
551
552 return mlirOpBuilderInsert(builder, mlirOperationCreate(&state));
553}
554
555bool llzkOperationIsA_Verif_VerifProveOp(MlirOperation inp) {
556 return llvm::isa<VerifProveOp>(unwrap(inp));
557}
558
559MlirValue llzkVerif_VerifProveOpGetCondition(MlirOperation op) {
560 auto range = llvm::cast<VerifProveOp>(unwrap(op)).getODSOperandIndexAndLength(0);
561 assert(range.second == 1 && "expected fixed operand segment size");
562 assert(
563 static_cast<uintptr_t>(range.first) <= static_cast<uintptr_t>(std::numeric_limits<intptr_t>::max()) &&
564 "operand index exceeds intptr_t range"
565 );
566 return mlirOperationGetOperand(op, static_cast<intptr_t>(range.first));
567}
568
569void llzkVerif_VerifProveOpSetCondition(MlirOperation op, MlirValue value) {
570 auto range = llvm::cast<VerifProveOp>(unwrap(op)).getODSOperandIndexAndLength(0);
571 assert(range.second == 1 && "expected fixed operand segment size");
572 assert(
573 static_cast<uintptr_t>(range.first) <= static_cast<uintptr_t>(std::numeric_limits<intptr_t>::max()) &&
574 "operand index exceeds intptr_t range"
575 );
576 mlirOperationSetOperand(op, static_cast<intptr_t>(range.first), value);
577}
578
579MlirOperation llzkVerif_VerifSMTProveOpBuild(MlirOpBuilder builder, MlirLocation location, MlirValue condition) {
580 MlirOperationState state = mlirOperationStateGet(mlirStringRefCreateFromCString("verif.smt_prove"), location);
581 mlirOperationStateAddOperands(&state, 1, &condition);
582
583 return mlirOpBuilderInsert(builder, mlirOperationCreate(&state));
584}
585
587 return llvm::isa<VerifSMTProveOp>(unwrap(inp));
588}
589
590MlirValue llzkVerif_VerifSMTProveOpGetCondition(MlirOperation op) {
591 auto range = llvm::cast<VerifSMTProveOp>(unwrap(op)).getODSOperandIndexAndLength(0);
592 assert(range.second == 1 && "expected fixed operand segment size");
593 assert(
594 static_cast<uintptr_t>(range.first) <= static_cast<uintptr_t>(std::numeric_limits<intptr_t>::max()) &&
595 "operand index exceeds intptr_t range"
596 );
597 return mlirOperationGetOperand(op, static_cast<intptr_t>(range.first));
598}
599
600void llzkVerif_VerifSMTProveOpSetCondition(MlirOperation op, MlirValue value) {
601 auto range = llvm::cast<VerifSMTProveOp>(unwrap(op)).getODSOperandIndexAndLength(0);
602 assert(range.second == 1 && "expected fixed operand segment size");
603 assert(
604 static_cast<uintptr_t>(range.first) <= static_cast<uintptr_t>(std::numeric_limits<intptr_t>::max()) &&
605 "operand index exceeds intptr_t range"
606 );
607 mlirOperationSetOperand(op, static_cast<intptr_t>(range.first), value);
608}
MlirOperation mlirOpBuilderInsert(MlirOpBuilder builder, MlirOperation op)
Inserts op at the current insertion point of builder and returns it.
Definition Builder.cpp:167
MlirValue llzkVerif_OldOpGetValue(MlirOperation op)
Get Value operand from llzk::verif::OldOp Operation.
MlirAttribute llzkVerif_IncludeOpGetNumDimsPerMap(MlirOperation op)
Get NumDimsPerMap attribute from llzk::verif::IncludeOp Operation.
intptr_t llzkVerif_IncludeOpGetMapOperandsCount(MlirOperation op)
Get number of MapOperands operands in llzk::verif::IncludeOp Operation.
void llzkVerif_StepYieldOpSetValue(MlirOperation op, MlirValue value)
Set Value operand of llzk::verif::StepYieldOp Operation.
void llzkVerif_VerifAssertOpSetCondition(MlirOperation op, MlirValue value)
Set Condition operand of llzk::verif::VerifAssertOp Operation.
void llzkVerif_IncludeOpSetTemplateParams(MlirOperation op, MlirAttribute attr)
Set TemplateParams attribute of llzk::verif::IncludeOp Operation.
void llzkVerif_IncludeOpSetMapOpGroupSizes(MlirOperation op, MlirAttribute attr)
Set MapOpGroupSizes attribute of llzk::verif::IncludeOp Operation.
MlirValue llzkVerif_VerifProveOpGetCondition(MlirOperation op)
Get Condition operand from llzk::verif::VerifProveOp Operation.
void llzkVerif_VerifProveOpSetCondition(MlirOperation op, MlirValue value)
Set Condition operand of llzk::verif::VerifProveOp Operation.
MlirOperation llzkVerif_RequireComputeOpBuild(MlirOpBuilder builder, MlirLocation location, MlirValue condition)
Build a llzk::verif::RequireComputeOp Operation.
void llzkVerif_IncludeOpSetCallee(MlirOperation op, MlirAttribute attr)
Set Callee attribute of llzk::verif::IncludeOp Operation.
MlirOperation llzkVerif_RequireConstrainOpBuild(MlirOpBuilder builder, MlirLocation location, MlirValue condition)
Build a llzk::verif::RequireConstrainOp Operation.
bool llzkVerif_ContractOpHasStructTarget(MlirOperation inp)
Return true iff the contract targets a struct type.
void llzkVerif_RequireConstrainOpSetCondition(MlirOperation op, MlirValue value)
Set Condition operand of llzk::verif::RequireConstrainOp Operation.
MlirValue llzkVerif_VerifSMTProveOpGetCondition(MlirOperation op)
Get Condition operand from llzk::verif::VerifSMTProveOp Operation.
MlirRegion llzkVerif_ContractOpGetBody(MlirOperation op)
Get Body region from llzk::verif::ContractOp Operation.
MlirAttribute llzkVerif_IncludeOpGetTemplateParams(MlirOperation op)
Get TemplateParams attribute from llzk::verif::IncludeOp Operation.
MlirOperation llzkVerif_StepOpBuild(MlirOpBuilder builder, MlirLocation location)
Build a llzk::verif::StepOp Operation.
bool llzkOperationIsA_Verif_RequireConstrainOp(MlirOperation inp)
Returns true if the Operation is a llzk::verif::RequireConstrainOp.
MlirOperation llzkVerif_EnsureConstrainOpBuild(MlirOpBuilder builder, MlirLocation location, MlirValue condition)
Build a llzk::verif::EnsureConstrainOp Operation.
MlirAttribute llzkVerif_IncludeOpGetMapOpGroupSizes(MlirOperation op)
Get MapOpGroupSizes attribute from llzk::verif::IncludeOp Operation.
bool llzkOperationIsA_Verif_VerifSMTProveOp(MlirOperation inp)
Returns true if the Operation is a llzk::verif::VerifSMTProveOp.
MlirOperation llzkVerif_ContractEndOpBuild(MlirOpBuilder builder, MlirLocation location)
Build a llzk::verif::ContractEndOp Operation.
void llzkVerif_EnsureComputeOpSetCondition(MlirOperation op, MlirValue value)
Set Condition operand of llzk::verif::EnsureComputeOp Operation.
MlirValue llzkVerif_StepYieldOpGetValue(MlirOperation op)
Get Value operand from llzk::verif::StepYieldOp Operation.
MlirOperation llzkVerif_VerifProveOpBuild(MlirOpBuilder builder, MlirLocation location, MlirValue condition)
Build a llzk::verif::VerifProveOp Operation.
MlirOperation llzkVerif_VerifSMTProveOpBuild(MlirOpBuilder builder, MlirLocation location, MlirValue condition)
Build a llzk::verif::VerifSMTProveOp Operation.
MlirAttribute llzkVerif_InvariantOpGetLoopName(MlirOperation op)
Get LoopName attribute from llzk::verif::InvariantOp Operation.
bool llzkVerif_ContractOpHasArgPublicAttr(MlirOperation inp, unsigned index)
Return true iff the argument at the given index has pub attribute.
bool llzkOperationIsA_Verif_ContractEndOp(MlirOperation inp)
Returns true if the Operation is a llzk::verif::ContractEndOp.
MlirRegion llzkVerif_StepOpGetRegion(MlirOperation op)
Get Region region from llzk::verif::StepOp Operation.
intptr_t llzkVerif_IncludeOpGetArgOperandsCount(MlirOperation op)
Get number of ArgOperands operands in llzk::verif::IncludeOp Operation.
bool llzkOperationIsA_Verif_DecreasesOp(MlirOperation inp)
Returns true if the Operation is a llzk::verif::DecreasesOp.
bool llzkOperationIsA_Verif_StepYieldOp(MlirOperation inp)
Returns true if the Operation is a llzk::verif::StepYieldOp.
bool llzkOperationIsA_Verif_InvariantOp(MlirOperation inp)
Returns true if the Operation is a llzk::verif::InvariantOp.
MlirAttribute llzkVerif_ContractOpGetSymName(MlirOperation op)
Get SymName attribute from llzk::verif::ContractOp Operation.
void llzkVerif_IncreasesOpSetValue(MlirOperation op, MlirValue value)
Set Value operand of llzk::verif::IncreasesOp Operation.
MlirValue llzkVerif_VerifAssertOpGetCondition(MlirOperation op)
Get Condition operand from llzk::verif::VerifAssertOp Operation.
MlirOperation llzkVerif_IncreasesOpBuild(MlirOpBuilder builder, MlirLocation location, MlirValue value)
Build a llzk::verif::IncreasesOp Operation.
MlirAttribute llzkVerif_InvariantOpGetLoopArgTypes(MlirOperation op)
Get LoopArgTypes attribute from llzk::verif::InvariantOp Operation.
MlirOperation llzkVerif_OldOpBuild(MlirOpBuilder builder, MlirLocation location, MlirValue value)
Build a llzk::verif::OldOp Operation.
void llzkVerif_VerifSMTProveOpSetCondition(MlirOperation op, MlirValue value)
Set Condition operand of llzk::verif::VerifSMTProveOp Operation.
bool llzkVerif_ContractOpHasArgName(MlirOperation inp, unsigned index)
Return true iff the argument at the given index has a function.arg_name attribute.
bool llzkVerif_IncludeOpContractTargetsStruct(MlirOperation inp)
Return true iff the contract targets a struct type.
bool llzkOperationIsA_Verif_RequireComputeOp(MlirOperation inp)
Returns true if the Operation is a llzk::verif::RequireComputeOp.
MlirAttribute llzkVerif_ContractOpGetTarget(MlirOperation op)
Get Target attribute from llzk::verif::ContractOp Operation.
MlirAttribute llzkVerif_ContractOpGetFunctionType(MlirOperation op)
Get FunctionType attribute from llzk::verif::ContractOp Operation.
bool llzkOperationIsA_Verif_EnsureConstrainOp(MlirOperation inp)
Returns true if the Operation is a llzk::verif::EnsureConstrainOp.
MlirAttribute llzkVerif_ContractOpGetArgAttrs(MlirOperation op)
Get ArgAttrs attribute from llzk::verif::ContractOp Operation.
bool llzkOperationIsA_Verif_EnsureComputeOp(MlirOperation inp)
Returns true if the Operation is a llzk::verif::EnsureComputeOp.
void llzkVerif_IncludeOpSetArgOperands(MlirOperation op, intptr_t count, MlirValue const *values)
Set ArgOperands operands of llzk::verif::IncludeOp Operation.
MlirOperation llzkVerif_DecreasesOpBuild(MlirOpBuilder builder, MlirLocation location, MlirValue value)
Build a llzk::verif::DecreasesOp Operation.
void llzkVerif_IncludeOpSetNumDimsPerMap(MlirOperation op, MlirAttribute attr)
Set NumDimsPerMap attribute of llzk::verif::IncludeOp Operation.
void llzkVerif_ContractOpSetTarget(MlirOperation op, MlirAttribute attr)
Set Target attribute of llzk::verif::ContractOp Operation.
void llzkVerif_EnsureConstrainOpSetCondition(MlirOperation op, MlirValue value)
Set Condition operand of llzk::verif::EnsureConstrainOp Operation.
MlirAttribute llzkVerif_IncludeOpGetCallee(MlirOperation op)
Get Callee attribute from llzk::verif::IncludeOp Operation.
bool llzkVerif_ContractOpIsDeclaration(MlirOperation inp)
Required by SymbolOpInterface.
MlirOperation llzkVerif_InvariantOpGetParentContract(MlirOperation inp)
Returns the contract operation that contains this invariant.
MlirOperation llzkVerif_StepYieldOpBuild(MlirOpBuilder builder, MlirLocation location, MlirValue value)
Build a llzk::verif::StepYieldOp Operation.
MlirValue llzkVerif_IncludeOpGetMapOperandsAt(MlirOperation op, intptr_t index)
Get MapOperands operand at index from llzk::verif::IncludeOp Operation.
void llzkVerif_ContractOpSetArgAttrs(MlirOperation op, MlirAttribute attr)
Set ArgAttrs attribute of llzk::verif::ContractOp Operation.
void llzkVerif_InvariantOpSetLoopName(MlirOperation op, MlirAttribute attr)
Set LoopName attribute of llzk::verif::InvariantOp Operation.
MlirOperation llzkVerif_EnsureComputeOpBuild(MlirOpBuilder builder, MlirLocation location, MlirValue condition)
Build a llzk::verif::EnsureComputeOp Operation.
MlirValue llzkVerif_RequireComputeOpGetCondition(MlirOperation op)
Get Condition operand from llzk::verif::RequireComputeOp Operation.
bool llzkOperationIsA_Verif_IncludeOp(MlirOperation inp)
Returns true if the Operation is a llzk::verif::IncludeOp.
void llzkVerif_InvariantOpSetLoopArgTypes(MlirOperation op, MlirAttribute attr)
Set LoopArgTypes attribute of llzk::verif::InvariantOp Operation.
MlirValue llzkVerif_IncludeOpGetArgOperandsAt(MlirOperation op, intptr_t index)
Get ArgOperands operand at index from llzk::verif::IncludeOp Operation.
void llzkVerif_RequireComputeOpSetCondition(MlirOperation op, MlirValue value)
Set Condition operand of llzk::verif::RequireComputeOp Operation.
void llzkVerif_IncludeOpSetMapOperands(MlirOperation op, intptr_t groupCount, MlirValueRange const *groups)
Set MapOperands operand groups of llzk::verif::IncludeOp Operation.
bool llzkOperationIsA_Verif_IncreasesOp(MlirOperation inp)
Returns true if the Operation is a llzk::verif::IncreasesOp.
bool llzkOperationIsA_Verif_StepOp(MlirOperation inp)
Returns true if the Operation is a llzk::verif::StepOp.
void llzkVerif_DecreasesOpSetValue(MlirOperation op, MlirValue value)
Set Value operand of llzk::verif::DecreasesOp Operation.
MlirRegion llzkVerif_InvariantOpGetRegion(MlirOperation op)
Get Region region from llzk::verif::InvariantOp Operation.
MlirValue llzkVerif_IncludeOpGetSelfValue(MlirOperation inp)
Return the "self" value (i.e.
MlirValue llzkVerif_IncreasesOpGetValue(MlirOperation op)
Get Value operand from llzk::verif::IncreasesOp Operation.
MlirType llzkVerif_IncludeOpGetTypeSignature(MlirOperation inp)
Return the FunctionType inferred from the arg operands of this CallOp.
void llzkVerif_OldOpSetValue(MlirOperation op, MlirValue value)
Set Value operand of llzk::verif::OldOp Operation.
MlirValue llzkVerif_EnsureComputeOpGetCondition(MlirOperation op)
Get Condition operand from llzk::verif::EnsureComputeOp Operation.
bool llzkOperationIsA_Verif_VerifAssertOp(MlirOperation inp)
Returns true if the Operation is a llzk::verif::VerifAssertOp.
MlirValue llzkVerif_EnsureConstrainOpGetCondition(MlirOperation op)
Get Condition operand from llzk::verif::EnsureConstrainOp Operation.
MlirRegion llzkVerif_ContractOpGetCallableRegion(MlirOperation inp)
Required by FunctionOpInterface.
bool llzkOperationIsA_Verif_VerifProveOp(MlirOperation inp)
Returns true if the Operation is a llzk::verif::VerifProveOp.
MlirValue llzkVerif_RequireConstrainOpGetCondition(MlirOperation op)
Get Condition operand from llzk::verif::RequireConstrainOp Operation.
bool llzkVerif_ContractOpHasFuncTarget(MlirOperation inp)
Return true iff the contract targets a function.
MlirOperation llzkVerif_VerifAssertOpBuild(MlirOpBuilder builder, MlirLocation location, MlirValue condition)
Build a llzk::verif::VerifAssertOp Operation.
bool llzkOperationIsA_Verif_ContractOp(MlirOperation inp)
Returns true if the Operation is a llzk::verif::ContractOp.
MlirAttribute llzkVerif_ContractOpGetFullyQualifiedName(MlirOperation inp, bool requireParent)
Return the full name for this contract from the root module, including all surrounding symbol table n...
MlirValue llzkVerif_OldOpGetResult(MlirOperation op)
Get Result result from llzk::verif::OldOp Operation.
void llzkVerif_ContractOpSetFunctionType(MlirOperation op, MlirAttribute attr)
Set FunctionType attribute of llzk::verif::ContractOp Operation.
MlirValue llzkVerif_DecreasesOpGetValue(MlirOperation op)
Get Value operand from llzk::verif::DecreasesOp Operation.
void llzkVerif_ContractOpSetSymName(MlirOperation op, MlirAttribute attr)
Set SymName attribute of llzk::verif::ContractOp Operation.
bool llzkOperationIsA_Verif_OldOp(MlirOperation inp)
Returns true if the Operation is a llzk::verif::OldOp.
MlirOperation llzkVerif_IncludeOpResolveCallable(MlirOperation inp)
Required by CallOpInterface.
Representation of an mlir::ValueRange
Definition Support.h:47
intptr_t size
Number of values in the range.
Definition Support.h:51