LLZK 2.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
11bool llzkOperationIsA_Poly_ApplyMapOp(MlirOperation inp) {
12 return llvm::isa<ApplyMapOp>(unwrap(inp));
13}
14
15intptr_t llzkPoly_ApplyMapOpGetMapOperandsCount(MlirOperation op) {
16 intptr_t count = mlirOperationGetNumOperands(op);
17 assert(count >= 0 && "operand count less than start index");
18 return count - 0;
19}
20
21MlirValue llzkPoly_ApplyMapOpGetMapOperandsAt(MlirOperation op, intptr_t index) {
22 return mlirOperationGetOperand(op, 0 + index);
23}
24
25void llzkPoly_ApplyMapOpSetMapOperands(MlirOperation op, intptr_t count, MlirValue const *values) {
26 intptr_t numOperands = mlirOperationGetNumOperands(op);
27 intptr_t startIdx = 0;
28
29 // Validate bounds
30 if (startIdx < 0 || startIdx > numOperands) {
31 return;
32 }
33 if (count < 0 || count > (std::numeric_limits<intptr_t>::max() - startIdx)) {
34 return;
35 }
36
37 intptr_t oldCount = numOperands - startIdx;
38 intptr_t newNumOperands = startIdx + count;
39
40 std::vector<MlirValue> newOperands(newNumOperands);
41
42 // Copy operands before this variadic group
43 for (intptr_t i = 0; i < startIdx; ++i) {
44 newOperands[i] = mlirOperationGetOperand(op, i);
45 }
46
47 // Copy new variadic operands
48 for (intptr_t i = 0; i < count; ++i) {
49 newOperands[startIdx + i] = values[i];
50 }
51
52 // Copy operands after this variadic group
53 for (intptr_t i = startIdx + oldCount; i < numOperands; ++i) {
54 newOperands[i - oldCount + count] = mlirOperationGetOperand(op, i);
55 }
56
57 mlirOperationSetOperands(op, newNumOperands, newOperands.data());
58}
59
60MlirAttribute llzkPoly_ApplyMapOpGetMap(MlirOperation op) {
61 return mlirOperationGetAttributeByName(op, mlirStringRefCreateFromCString("map"));
62}
63
64void llzkPoly_ApplyMapOpSetMap(MlirOperation op, MlirAttribute attr) {
65 mlirOperationSetAttributeByName(op, mlirStringRefCreateFromCString("map"), attr);
66}
67
68MlirAttribute llzkPoly_ApplyMapOpGetNumDims(MlirOperation op) {
69 return mlirOperationGetAttributeByName(op, mlirStringRefCreateFromCString("numDims"));
70}
71
72void llzkPoly_ApplyMapOpSetNumDims(MlirOperation op, MlirAttribute attr) {
73 mlirOperationSetAttributeByName(op, mlirStringRefCreateFromCString("numDims"), attr);
74}
75
76MlirValue llzkPoly_ApplyMapOpGetResult0(MlirOperation op) {
77 return mlirOperationGetResult(op, 0);
78}
79
80MlirAffineMap llzkPoly_ApplyMapOpGetAffineMap(MlirOperation inp) {
81 return wrap(llvm::cast<ApplyMapOp>(unwrap(inp)).getAffineMap());
82}
83
84MlirOperation llzkPoly_ConstReadOpBuild(MlirOpBuilder builder, MlirLocation location, MlirType valType, MlirAttribute const_name) {
85 MlirOperationState state = mlirOperationStateGet(mlirStringRefCreateFromCString("poly.read_const"), location);
86 mlirOperationStateAddResults(&state, 1, &valType);
87 MlirContext ctx = mlirOpBuilderGetContext(builder);
88 llvm::SmallVector<MlirNamedAttribute, 1> attributes;
89 if (!mlirAttributeIsNull(const_name)) {
90 attributes.push_back(mlirNamedAttributeGet(mlirIdentifierGet(ctx, mlirStringRefCreateFromCString("const_name")), const_name));
91 }
92 mlirOperationStateAddAttributes(&state, attributes.size(), attributes.data());
93
94 return mlirOpBuilderInsert(builder, mlirOperationCreate(&state));
95}
96
97bool llzkOperationIsA_Poly_ConstReadOp(MlirOperation inp) {
98 return llvm::isa<ConstReadOp>(unwrap(inp));
99}
100
101MlirAttribute llzkPoly_ConstReadOpGetConstName(MlirOperation op) {
102 return mlirOperationGetAttributeByName(op, mlirStringRefCreateFromCString("const_name"));
103}
104
105void llzkPoly_ConstReadOpSetConstName(MlirOperation op, MlirAttribute attr) {
106 mlirOperationSetAttributeByName(op, mlirStringRefCreateFromCString("const_name"), attr);
107}
108
109MlirValue llzkPoly_ConstReadOpGetVal(MlirOperation op) {
110 return mlirOperationGetResult(op, 0);
111}
112
113MlirOperation llzkPoly_TemplateExprOpBuild(MlirOpBuilder builder, MlirLocation location, MlirIdentifier sym_name) {
114 MlirOperationState state = mlirOperationStateGet(mlirStringRefCreateFromCString("poly.expr"), location);
115 MlirContext ctx = mlirOpBuilderGetContext(builder);
116 llvm::SmallVector<MlirNamedAttribute, 1> attributes;
117 if (!mlirAttributeIsNull(reinterpret_cast<MlirAttribute&>(sym_name))) {
118 attributes.push_back(mlirNamedAttributeGet(mlirIdentifierGet(ctx, mlirStringRefCreateFromCString("sym_name")), reinterpret_cast<MlirAttribute&>(sym_name)));
119 }
120 mlirOperationStateAddAttributes(&state, attributes.size(), attributes.data());
121 llvm::SmallVector<MlirRegion, 1> regions;
122 regions.push_back(mlirRegionCreate());
123 mlirOperationStateAddOwnedRegions(&state, regions.size(), regions.data());
124
125 return mlirOpBuilderInsert(builder, mlirOperationCreate(&state));
126}
127
129 return llvm::isa<TemplateExprOp>(unwrap(inp));
130}
131
132MlirAttribute llzkPoly_TemplateExprOpGetSymName(MlirOperation op) {
133 return mlirOperationGetAttributeByName(op, mlirStringRefCreateFromCString("sym_name"));
134}
135
136void llzkPoly_TemplateExprOpSetSymName(MlirOperation op, MlirAttribute attr) {
137 mlirOperationSetAttributeByName(op, mlirStringRefCreateFromCString("sym_name"), attr);
138}
139
141 return mlirOperationGetRegion(op, 0);
142}
143
144MlirType llzkPoly_TemplateExprOpGetType(MlirOperation inp) {
145 return wrap(llvm::cast<TemplateExprOp>(unwrap(inp)).getType());
146}
147
148MlirOperation llzkPoly_TemplateOpBuild(MlirOpBuilder builder, MlirLocation location, MlirIdentifier sym_name) {
149 MlirOperationState state = mlirOperationStateGet(mlirStringRefCreateFromCString("poly.template"), location);
150 MlirContext ctx = mlirOpBuilderGetContext(builder);
151 llvm::SmallVector<MlirNamedAttribute, 1> attributes;
152 if (!mlirAttributeIsNull(reinterpret_cast<MlirAttribute&>(sym_name))) {
153 attributes.push_back(mlirNamedAttributeGet(mlirIdentifierGet(ctx, mlirStringRefCreateFromCString("sym_name")), reinterpret_cast<MlirAttribute&>(sym_name)));
154 }
155 mlirOperationStateAddAttributes(&state, attributes.size(), attributes.data());
156 llvm::SmallVector<MlirRegion, 1> regions;
157 regions.push_back(mlirRegionCreate());
158 mlirOperationStateAddOwnedRegions(&state, regions.size(), regions.data());
159
160 return mlirOpBuilderInsert(builder, mlirOperationCreate(&state));
161}
162
163bool llzkOperationIsA_Poly_TemplateOp(MlirOperation inp) {
164 return llvm::isa<TemplateOp>(unwrap(inp));
165}
166
167MlirAttribute llzkPoly_TemplateOpGetSymName(MlirOperation op) {
168 return mlirOperationGetAttributeByName(op, mlirStringRefCreateFromCString("sym_name"));
169}
170
171void llzkPoly_TemplateOpSetSymName(MlirOperation op, MlirAttribute attr) {
172 mlirOperationSetAttributeByName(op, mlirStringRefCreateFromCString("sym_name"), attr);
173}
174
175MlirRegion llzkPoly_TemplateOpGetBodyRegion(MlirOperation op) {
176 return mlirOperationGetRegion(op, 0);
177}
178
179MlirOperation llzkPoly_TemplateParamOpBuild(MlirOpBuilder builder, MlirLocation location, MlirIdentifier sym_name, MlirAttribute type_opt) {
180 MlirOperationState state = mlirOperationStateGet(mlirStringRefCreateFromCString("poly.param"), location);
181 MlirContext ctx = mlirOpBuilderGetContext(builder);
182 llvm::SmallVector<MlirNamedAttribute, 2> attributes;
183 if (!mlirAttributeIsNull(reinterpret_cast<MlirAttribute&>(sym_name))) {
184 attributes.push_back(mlirNamedAttributeGet(mlirIdentifierGet(ctx, mlirStringRefCreateFromCString("sym_name")), reinterpret_cast<MlirAttribute&>(sym_name)));
185 }
186 if (!mlirAttributeIsNull(type_opt)) {
187 attributes.push_back(mlirNamedAttributeGet(mlirIdentifierGet(ctx, mlirStringRefCreateFromCString("type_opt")), type_opt));
188 }
189 mlirOperationStateAddAttributes(&state, attributes.size(), attributes.data());
190
191 return mlirOpBuilderInsert(builder, mlirOperationCreate(&state));
192}
193
195 return llvm::isa<TemplateParamOp>(unwrap(inp));
196}
197
198MlirAttribute llzkPoly_TemplateParamOpGetSymName(MlirOperation op) {
199 return mlirOperationGetAttributeByName(op, mlirStringRefCreateFromCString("sym_name"));
200}
201
202void llzkPoly_TemplateParamOpSetSymName(MlirOperation op, MlirAttribute attr) {
203 mlirOperationSetAttributeByName(op, mlirStringRefCreateFromCString("sym_name"), attr);
204}
205
206MlirAttribute llzkPoly_TemplateParamOpGetTypeOpt(MlirOperation op) {
207 return mlirOperationGetAttributeByName(op, mlirStringRefCreateFromCString("type_opt"));
208}
209
210void llzkPoly_TemplateParamOpSetTypeOpt(MlirOperation op, MlirAttribute attr) {
211 mlirOperationSetAttributeByName(op, mlirStringRefCreateFromCString("type_opt"), attr);
212}
213
214MlirOperation llzkPoly_UnifiableCastOpBuild(MlirOpBuilder builder, MlirLocation location, MlirType resultType, MlirValue input) {
215 MlirOperationState state = mlirOperationStateGet(mlirStringRefCreateFromCString("poly.unifiable_cast"), location);
216 mlirOperationStateAddResults(&state, 1, &resultType);
217 mlirOperationStateAddOperands(&state, 1, &input);
218
219 return mlirOpBuilderInsert(builder, mlirOperationCreate(&state));
220}
221
223 return llvm::isa<UnifiableCastOp>(unwrap(inp));
224}
225
226MlirValue llzkPoly_UnifiableCastOpGetInput(MlirOperation op) {
227 return mlirOperationGetOperand(op, 0);
228}
229
230void llzkPoly_UnifiableCastOpSetInput(MlirOperation op, MlirValue value) {
231 mlirOperationSetOperand(op, 0, value);
232}
233
234MlirValue llzkPoly_UnifiableCastOpGetResult(MlirOperation op) {
235 return mlirOperationGetResult(op, 0);
236}
237
238MlirOperation llzkPoly_YieldOpBuild(MlirOpBuilder builder, MlirLocation location, MlirValue val) {
239 MlirOperationState state = mlirOperationStateGet(mlirStringRefCreateFromCString("poly.yield"), location);
240 mlirOperationStateAddOperands(&state, 1, &val);
241
242 return mlirOpBuilderInsert(builder, mlirOperationCreate(&state));
243}
244
245bool llzkOperationIsA_Poly_YieldOp(MlirOperation inp) {
246 return llvm::isa<YieldOp>(unwrap(inp));
247}
248
249MlirValue llzkPoly_YieldOpGetVal(MlirOperation op) {
250 return mlirOperationGetOperand(op, 0);
251}
252
253void llzkPoly_YieldOpSetVal(MlirOperation op, MlirValue value) {
254 mlirOperationSetOperand(op, 0, value);
255}
MlirContext mlirOpBuilderGetContext(MlirOpBuilder builder)
Returns the MLIR context associated with builder.
Definition Builder.cpp:79
MlirOperation mlirOpBuilderInsert(MlirOpBuilder builder, MlirOperation op)
Inserts op at the current insertion point of builder and returns it.
Definition Builder.cpp:108
void llzkPoly_TemplateExprOpSetSymName(MlirOperation op, MlirAttribute attr)
Set SymName attribute of llzk::polymorphic::TemplateExprOp Operation.
void llzkPoly_TemplateParamOpSetSymName(MlirOperation op, MlirAttribute attr)
Set SymName attribute of llzk::polymorphic::TemplateParamOp Operation.
MlirRegion llzkPoly_TemplateOpGetBodyRegion(MlirOperation op)
Get BodyRegion region from llzk::polymorphic::TemplateOp Operation.
void llzkPoly_UnifiableCastOpSetInput(MlirOperation op, MlirValue value)
Set Input operand of llzk::polymorphic::UnifiableCastOp Operation.
bool llzkOperationIsA_Poly_TemplateExprOp(MlirOperation inp)
Returns true if the Operation is a llzk::polymorphic::TemplateExprOp.
MlirAttribute llzkPoly_ConstReadOpGetConstName(MlirOperation op)
Get ConstName attribute from llzk::polymorphic::ConstReadOp Operation.
MlirValue llzkPoly_UnifiableCastOpGetResult(MlirOperation op)
Get Result result from llzk::polymorphic::UnifiableCastOp Operation.
MlirValue llzkPoly_YieldOpGetVal(MlirOperation op)
Get Val operand from llzk::polymorphic::YieldOp Operation.
void llzkPoly_YieldOpSetVal(MlirOperation op, MlirValue value)
Set Val operand of llzk::polymorphic::YieldOp Operation.
bool llzkOperationIsA_Poly_TemplateParamOp(MlirOperation inp)
Returns true if the Operation is a llzk::polymorphic::TemplateParamOp.
MlirValue llzkPoly_UnifiableCastOpGetInput(MlirOperation op)
Get Input operand from llzk::polymorphic::UnifiableCastOp Operation.
MlirOperation llzkPoly_TemplateOpBuild(MlirOpBuilder builder, MlirLocation location, MlirIdentifier sym_name)
Build a llzk::polymorphic::TemplateOp Operation.
MlirValue llzkPoly_ApplyMapOpGetMapOperandsAt(MlirOperation op, intptr_t index)
Get MapOperands operand at index from llzk::polymorphic::ApplyMapOp Operation.
MlirAttribute llzkPoly_TemplateExprOpGetSymName(MlirOperation op)
Get SymName attribute from llzk::polymorphic::TemplateExprOp Operation.
void llzkPoly_ApplyMapOpSetMapOperands(MlirOperation op, intptr_t count, MlirValue const *values)
Set MapOperands operands of llzk::polymorphic::ApplyMapOp Operation.
MlirAffineMap llzkPoly_ApplyMapOpGetAffineMap(MlirOperation inp)
Returns the affine map to be applied by this operation.
MlirAttribute llzkPoly_TemplateParamOpGetSymName(MlirOperation op)
Get SymName attribute from llzk::polymorphic::TemplateParamOp Operation.
void llzkPoly_ApplyMapOpSetNumDims(MlirOperation op, MlirAttribute attr)
Set NumDims attribute of llzk::polymorphic::ApplyMapOp Operation.
intptr_t llzkPoly_ApplyMapOpGetMapOperandsCount(MlirOperation op)
Get number of MapOperands operands in llzk::polymorphic::ApplyMapOp Operation.
MlirType llzkPoly_TemplateExprOpGetType(MlirOperation inp)
Returns the type of the poly.yield op in the initializer region.
MlirAttribute llzkPoly_ApplyMapOpGetMap(MlirOperation op)
Get Map attribute from llzk::polymorphic::ApplyMapOp Operation.
MlirAttribute llzkPoly_ApplyMapOpGetNumDims(MlirOperation op)
Get NumDims attribute from llzk::polymorphic::ApplyMapOp Operation.
MlirOperation llzkPoly_UnifiableCastOpBuild(MlirOpBuilder builder, MlirLocation location, MlirType resultType, MlirValue input)
Build a llzk::polymorphic::UnifiableCastOp Operation.
void llzkPoly_ConstReadOpSetConstName(MlirOperation op, MlirAttribute attr)
Set ConstName attribute of llzk::polymorphic::ConstReadOp Operation.
MlirAttribute llzkPoly_TemplateOpGetSymName(MlirOperation op)
Get SymName attribute from llzk::polymorphic::TemplateOp Operation.
void llzkPoly_ApplyMapOpSetMap(MlirOperation op, MlirAttribute attr)
Set Map attribute of llzk::polymorphic::ApplyMapOp Operation.
MlirValue llzkPoly_ConstReadOpGetVal(MlirOperation op)
Get Val result from llzk::polymorphic::ConstReadOp Operation.
bool llzkOperationIsA_Poly_ApplyMapOp(MlirOperation inp)
Returns true if the Operation is a llzk::polymorphic::ApplyMapOp.
bool llzkOperationIsA_Poly_TemplateOp(MlirOperation inp)
Returns true if the Operation is a llzk::polymorphic::TemplateOp.
MlirValue llzkPoly_ApplyMapOpGetResult0(MlirOperation op)
Get Result0 result from llzk::polymorphic::ApplyMapOp Operation.
void llzkPoly_TemplateOpSetSymName(MlirOperation op, MlirAttribute attr)
Set SymName attribute of llzk::polymorphic::TemplateOp Operation.
MlirOperation llzkPoly_ConstReadOpBuild(MlirOpBuilder builder, MlirLocation location, MlirType valType, MlirAttribute const_name)
Build a llzk::polymorphic::ConstReadOp Operation.
MlirOperation llzkPoly_TemplateParamOpBuild(MlirOpBuilder builder, MlirLocation location, MlirIdentifier sym_name, MlirAttribute type_opt)
Build a llzk::polymorphic::TemplateParamOp Operation.
MlirAttribute llzkPoly_TemplateParamOpGetTypeOpt(MlirOperation op)
Get TypeOpt attribute from llzk::polymorphic::TemplateParamOp Operation.
bool llzkOperationIsA_Poly_YieldOp(MlirOperation inp)
Returns true if the Operation is a llzk::polymorphic::YieldOp.
void llzkPoly_TemplateParamOpSetTypeOpt(MlirOperation op, MlirAttribute attr)
Set TypeOpt attribute of llzk::polymorphic::TemplateParamOp Operation.
MlirRegion llzkPoly_TemplateExprOpGetInitializerRegion(MlirOperation op)
Get InitializerRegion region from llzk::polymorphic::TemplateExprOp Operation.
bool llzkOperationIsA_Poly_UnifiableCastOp(MlirOperation inp)
Returns true if the Operation is a llzk::polymorphic::UnifiableCastOp.
MlirOperation llzkPoly_YieldOpBuild(MlirOpBuilder builder, MlirLocation location, MlirValue val)
Build a llzk::polymorphic::YieldOp Operation.
MlirOperation llzkPoly_TemplateExprOpBuild(MlirOpBuilder builder, MlirLocation location, MlirIdentifier sym_name)
Build a llzk::polymorphic::TemplateExprOp Operation.
bool llzkOperationIsA_Poly_ConstReadOp(MlirOperation inp)
Returns true if the Operation is a llzk::polymorphic::ConstReadOp.