|
LLZK 2.0.0
An open-source IR for Zero Knowledge (ZK) circuits
|
Public Types | |
| using | Adaptor = CallOpAdaptor |
| template<typename RangeT> | |
| using | GenericAdaptor = CallOpGenericAdaptor<RangeT> |
| using | FoldAdaptor = GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute>> |
| using | Properties = FoldAdaptor::Properties |
Public Member Functions | |
| static ::llvm::ArrayRef<::llvm::StringRef > | getAttributeNames () |
| ::mlir::StringAttr | getCalleeAttrName () |
| ::mlir::StringAttr | getMapOpGroupSizesAttrName () |
| ::mlir::StringAttr | getNumDimsPerMapAttrName () |
| ::mlir::StringAttr | getTemplateParamsAttrName () |
| ::mlir::StringAttr | getOperandSegmentSizesAttrName () |
| std::pair< unsigned, unsigned > | getODSOperandIndexAndLength (unsigned index) |
| ::mlir::Operation::operand_range | getODSOperands (unsigned index) |
| ::mlir::Operation::operand_range | getArgOperands () |
| ::mlir::OperandRangeRange | getMapOperands () |
| ::mlir::MutableOperandRange | getArgOperandsMutable () |
| ::mlir::MutableOperandRangeRange | getMapOperandsMutable () |
| std::pair< unsigned, unsigned > | getODSResultIndexAndLength (unsigned index) |
| ::mlir::Operation::result_range | getODSResults (unsigned index) |
| void | writeProperties (::mlir::DialectBytecodeWriter &writer) |
| ::mlir::SymbolRefAttr | getCalleeAttr () |
| ::mlir::SymbolRefAttr | getCallee () |
| ::mlir::ArrayAttr | getTemplateParamsAttr () |
| ::std::optional< ::mlir::ArrayAttr > | getTemplateParams () |
| ::mlir::DenseI32ArrayAttr | getNumDimsPerMapAttr () |
| ::llvm::ArrayRef< int32_t > | getNumDimsPerMap () |
| ::mlir::DenseI32ArrayAttr | getMapOpGroupSizesAttr () |
| ::llvm::ArrayRef< int32_t > | getMapOpGroupSizes () |
| void | setCalleeAttr (::mlir::SymbolRefAttr attr) |
| void | setTemplateParamsAttr (::mlir::ArrayAttr attr) |
| void | setNumDimsPerMapAttr (::mlir::DenseI32ArrayAttr attr) |
| void | setNumDimsPerMap (::llvm::ArrayRef< int32_t > attrValue) |
| void | setMapOpGroupSizesAttr (::mlir::DenseI32ArrayAttr attr) |
| void | setMapOpGroupSizes (::llvm::ArrayRef< int32_t > attrValue) |
| ::mlir::Attribute | removeTemplateParamsAttr () |
| ::llvm::LogicalResult | verifyInvariantsImpl () |
| ::llvm::LogicalResult | verifyInvariants () |
| ::mlir::CallInterfaceCallable | getCallableForCallee () |
| Return the callee of this operation. | |
| void | setCalleeFromCallable (::mlir::CallInterfaceCallable callee) |
| Set the callee for this operation. | |
| ::llvm::LogicalResult | verifySymbolUses (::mlir::SymbolTableCollection &symbolTable) |
| void | print (::mlir::OpAsmPrinter &_odsPrinter) |
| ::mlir::Operation * | resolveCallableInTable (::mlir::SymbolTableCollection *symbolTable) |
| Required by CallOpInterface. | |
| ::mlir::Operation * | resolveCallable () |
| Required by CallOpInterface. | |
| ::mlir::FunctionType | getTypeSignature () |
| Return the FunctionType inferred from the arg operands and result types of this CallOp. | |
| ::mlir::FailureOr< UnificationMap > | unifyTypeSignature (::mlir::FunctionType other) |
| Attempt type unfication between the inferred FunctionType from this CallOp (as LHS) and the given FunctionType (as RHS). | |
| bool | calleeIsCompute () |
| Return true iff the callee function name is FUNC_NAME_COMPUTE (this does not check if the callee function is located within a StructDefOp). | |
| bool | calleeContainsWitnessGen () |
| Return true iff the callee function can contain witness generation code (this does not check if the callee function is located within a StructDefOp) | |
| bool | calleeIsConstrain () |
| Return true iff the callee function name is FUNC_NAME_CONSTRAIN (this does not check if the callee function is located within a StructDefOp). | |
| bool | calleeIsStructCompute () |
| Return true iff the callee function name is FUNC_NAME_COMPUTE within a StructDefOp. | |
| bool | calleeIsStructConstrain () |
| Return true iff the callee function name is FUNC_NAME_CONSTRAIN within a StructDefOp. | |
| ::mlir::Value | getSelfValueFromCompute () |
| Return the "self" value (i.e. | |
| ::mlir::Value | getSelfValueFromConstrain () |
| Return the "self" value (i.e. | |
| ::mlir::FailureOr<::llzk::SymbolLookupResult<::llzk::function::FuncDefOp > > | getCalleeTarget (::mlir::SymbolTableCollection &tables) |
| Resolve and return the target FuncDefOp for this CallOp. | |
| ::llzk::component::StructType | getSingleResultTypeOfCompute () |
| Assuming the callee is FUNC_NAME_COMPUTE, return the single StructType result. | |
| ::llzk::component::StructType | getSingleResultTypeOfWitnessGen () |
| Assuming the callee contains witness generation code, return the single StructType result. | |
| static ::llvm::SmallVector<::mlir::ValueRange > | toVectorOfValueRange (::mlir::OperandRangeRange) |
| Allocate consecutive storage of the ValueRange instances in the parameter so it can be passed to the builders as an ArrayRef<ValueRange>. | |
| ::mlir::LogicalResult | verifyTemplateParamCompatibility (::mlir::Attribute paramFromCallOp, ::llzk::polymorphic::TemplateParamOp targetParam) |
| Check type compatibility of the given template parameter value from this CallOp against the declared type on the given TemplateParamOp (if any). | |
| ::mlir::LogicalResult | verifyTemplateParamCompatibility (::llvm::iterator_range<::mlir::Region::op_iterator<::llzk::polymorphic::TemplateParamOp > > targetParamDefs) |
| Check type compatibility of each template parameter value provided in this CallOp against the declared type on each TemplateParamOp (if any). | |
| ::mlir::LogicalResult | verifyTemplateParamsMatchInferred (::llvm::iterator_range<::mlir::Region::op_iterator<::llzk::polymorphic::TemplateParamOp > > targetParamDefs, const UnificationMap &unifications) |
| Verify that each template parameter value provided in this CallOp is consistent with the value inferred for the target TemplateParamOp in the given UnificationMap. | |
Static Public Member Functions | |
| ::mlir::StringAttr | getCalleeAttrName (::mlir::OperationName name) |
| ::mlir::StringAttr | getMapOpGroupSizesAttrName (::mlir::OperationName name) |
| ::mlir::StringAttr | getNumDimsPerMapAttrName (::mlir::OperationName name) |
| ::mlir::StringAttr | getTemplateParamsAttrName (::mlir::OperationName name) |
| ::mlir::StringAttr | getOperandSegmentSizesAttrName (::mlir::OperationName name) |
| static constexpr ::llvm::StringLiteral | getOperationName () |
| ::llvm::LogicalResult | setPropertiesFromAttr (Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError) |
| ::mlir::Attribute | getPropertiesAsAttr (::mlir::MLIRContext *ctx, const Properties &prop) |
| static llvm::hash_code | computePropertiesHash (const Properties &prop) |
| static std::optional< mlir::Attribute > | getInherentAttr (::mlir::MLIRContext *ctx, const Properties &prop, llvm::StringRef name) |
| static void | setInherentAttr (Properties &prop, llvm::StringRef name, mlir::Attribute value) |
| static void | populateInherentAttrs (::mlir::MLIRContext *ctx, const Properties &prop, ::mlir::NamedAttrList &attrs) |
| ::llvm::LogicalResult | verifyInherentAttrs (::mlir::OperationName opName, ::mlir::NamedAttrList &attrs, llvm::function_ref<::mlir::InFlightDiagnostic()> emitError) |
| ::llvm::LogicalResult | readProperties (::mlir::DialectBytecodeReader &reader, ::mlir::OperationState &state) |
| static void | build (::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::SymbolRefAttr callee, ::mlir::ValueRange argOperands={}, ::llvm::ArrayRef<::mlir::Attribute > templateParams={}) |
| static void | build (::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::SymbolRefAttr callee, ::llvm::ArrayRef<::mlir::ValueRange > mapOperands, ::mlir::DenseI32ArrayAttr numDimsPerMap, ::mlir::ValueRange argOperands={}, ::llvm::ArrayRef<::mlir::Attribute > templateParams={}) |
| static void | build (::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::mlir::TypeRange resultTypes, ::mlir::SymbolRefAttr callee, ::llvm::ArrayRef<::mlir::ValueRange > mapOperands, ::llvm::ArrayRef< int32_t > numDimsPerMap, ::mlir::ValueRange argOperands={}, ::llvm::ArrayRef<::mlir::Attribute > templateParams={}) |
| static void | build (::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::llzk::function::FuncDefOp callee, ::mlir::ValueRange argOperands={}, ::llvm::ArrayRef<::mlir::Attribute > templateParams={}) |
| static void | build (::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::llzk::function::FuncDefOp callee, ::llvm::ArrayRef<::mlir::ValueRange > mapOperands, ::mlir::DenseI32ArrayAttr numDimsPerMap, ::mlir::ValueRange argOperands={}, ::llvm::ArrayRef<::mlir::Attribute > templateParams={}) |
| static void | build (::mlir::OpBuilder &odsBuilder, ::mlir::OperationState &odsState, ::llzk::function::FuncDefOp callee, ::llvm::ArrayRef<::mlir::ValueRange > mapOperands, ::llvm::ArrayRef< int32_t > numDimsPerMap, ::mlir::ValueRange argOperands={}, ::llvm::ArrayRef<::mlir::Attribute > templateParams={}) |
| static void | populateDefaultProperties (::mlir::OperationName opName, Properties &properties) |
| ::mlir::ParseResult | parse (::mlir::OpAsmParser &parser, ::mlir::OperationState &result) |
| ::llvm::LogicalResult | setPropertiesFromParsedAttr (Properties &prop, ::mlir::Attribute attr, ::llvm::function_ref<::mlir::InFlightDiagnostic()> emitError) |
| using llzk::function::CallOp::FoldAdaptor = GenericAdaptor<::llvm::ArrayRef<::mlir::Attribute>> |
| using llzk::function::CallOp::GenericAdaptor = CallOpGenericAdaptor<RangeT> |
|
static |
Definition at line 519 of file Ops.cpp.inc.
|
static |
Definition at line 512 of file Ops.cpp.inc.
|
static |
Definition at line 505 of file Ops.cpp.inc.
|
static |
Definition at line 498 of file Ops.cpp.inc.
|
static |
|
static |
|
inline |
Return true iff the callee function can contain witness generation code (this does not check if the callee function is located within a StructDefOp)
|
inline |
Return true iff the callee function name is FUNC_NAME_COMPUTE (this does not check if the callee function is located within a StructDefOp).
|
inline |
Return true iff the callee function name is FUNC_NAME_CONSTRAIN (this does not check if the callee function is located within a StructDefOp).
| bool llzk::function::CallOp::calleeIsStructCompute | ( | ) |
Return true iff the callee function name is FUNC_NAME_COMPUTE within a StructDefOp.
| bool llzk::function::CallOp::calleeIsStructConstrain | ( | ) |
Return true iff the callee function name is FUNC_NAME_CONSTRAIN within a StructDefOp.
|
static |
Definition at line 374 of file Ops.cpp.inc.
|
inline |
| mlir::MutableOperandRange llzk::function::CallOp::getArgOperandsMutable | ( | ) |
Definition at line 223 of file Ops.cpp.inc.
|
inline |
| CallInterfaceCallable llzk::function::CallOp::getCallableForCallee | ( | ) |
| mlir::SymbolRefAttr llzk::function::CallOp::getCallee | ( | ) |
Definition at line 470 of file Ops.cpp.inc.
|
inline |
|
inline |
|
inlinestatic |
| FailureOr< SymbolLookupResult< FuncDefOp > > llzk::function::CallOp::getCalleeTarget | ( | ::mlir::SymbolTableCollection & | tables | ) |
|
static |
Definition at line 386 of file Ops.cpp.inc.
|
inline |
| mlir::MutableOperandRangeRange llzk::function::CallOp::getMapOperandsMutable | ( | ) |
Definition at line 229 of file Ops.cpp.inc.
| llvm::ArrayRef< int32_t > llzk::function::CallOp::getMapOpGroupSizes | ( | ) |
Definition at line 485 of file Ops.cpp.inc.
|
inline |
|
inline |
|
inlinestatic |
| llvm::ArrayRef< int32_t > llzk::function::CallOp::getNumDimsPerMap | ( | ) |
Definition at line 480 of file Ops.cpp.inc.
|
inline |
|
inline |
|
inlinestatic |
| std::pair< unsigned, unsigned > llzk::function::CallOp::getODSOperandIndexAndLength | ( | unsigned | index | ) |
Definition at line 214 of file Ops.cpp.inc.
|
inline |
| std::pair< unsigned, unsigned > llzk::function::CallOp::getODSResultIndexAndLength | ( | unsigned | index | ) |
Definition at line 235 of file Ops.cpp.inc.
|
inline |
|
inline |
|
inlinestatic |
|
inlinestatic |
|
static |
Definition at line 329 of file Ops.cpp.inc.
| Value llzk::function::CallOp::getSelfValueFromCompute | ( | ) |
| Value llzk::function::CallOp::getSelfValueFromConstrain | ( | ) |
| StructType llzk::function::CallOp::getSingleResultTypeOfCompute | ( | ) |
Assuming the callee is FUNC_NAME_COMPUTE, return the single StructType result.
| StructType llzk::function::CallOp::getSingleResultTypeOfWitnessGen | ( | ) |
Assuming the callee contains witness generation code, return the single StructType result.
| std::optional<::mlir::ArrayAttr > llzk::function::CallOp::getTemplateParams | ( | ) |
Definition at line 475 of file Ops.cpp.inc.
|
inline |
|
inline |
|
inlinestatic |
| FunctionType llzk::function::CallOp::getTypeSignature | ( | ) |
|
static |
Definition at line 584 of file Ops.cpp.inc.
|
static |
Definition at line 526 of file Ops.cpp.inc.
|
static |
Definition at line 432 of file Ops.cpp.inc.
| void llzk::function::CallOp::print | ( | ::mlir::OpAsmPrinter & | _odsPrinter | ) |
Definition at line 687 of file Ops.cpp.inc.
|
static |
|
inline |
| Operation * llzk::function::CallOp::resolveCallable | ( | ) |
| Operation * llzk::function::CallOp::resolveCallableInTable | ( | ::mlir::SymbolTableCollection * | symbolTable | ) |
|
inline |
| void llzk::function::CallOp::setCalleeFromCallable | ( | ::mlir::CallInterfaceCallable | callee | ) |
|
static |
Definition at line 402 of file Ops.cpp.inc.
| void llzk::function::CallOp::setMapOpGroupSizes | ( | ::llvm::ArrayRef< int32_t > | attrValue | ) |
Definition at line 494 of file Ops.cpp.inc.
|
inline |
| void llzk::function::CallOp::setNumDimsPerMap | ( | ::llvm::ArrayRef< int32_t > | attrValue | ) |
Definition at line 490 of file Ops.cpp.inc.
|
inline |
|
static |
Definition at line 253 of file Ops.cpp.inc.
|
static |
Definition at line 659 of file Ops.cpp.inc.
|
inline |
| SmallVector< ValueRange > llzk::function::CallOp::toVectorOfValueRange | ( | ::mlir::OperandRangeRange | ) |
| FailureOr< UnificationMap > llzk::function::CallOp::unifyTypeSignature | ( | ::mlir::FunctionType | other | ) |
Attempt type unfication between the inferred FunctionType from this CallOp (as LHS) and the given FunctionType (as RHS).
If successful, return a UnificationMap containing the unifications that were made. Otherwise, return failure.
|
static |
Definition at line 443 of file Ops.cpp.inc.
| llvm::LogicalResult llzk::function::CallOp::verifyInvariants | ( | ) |
Definition at line 580 of file Ops.cpp.inc.
| llvm::LogicalResult llzk::function::CallOp::verifyInvariantsImpl | ( | ) |
Definition at line 532 of file Ops.cpp.inc.
| LogicalResult llzk::function::CallOp::verifySymbolUses | ( | ::mlir::SymbolTableCollection & | symbolTable | ) |
| ::mlir::LogicalResult llzk::function::CallOp::verifyTemplateParamCompatibility | ( | ::llvm::iterator_range<::mlir::Region::op_iterator<::llzk::polymorphic::TemplateParamOp > > | targetParamDefs | ) |
Check type compatibility of each template parameter value provided in this CallOp against the declared type on each TemplateParamOp (if any).
Pre-condition assertions:
| ::mlir::LogicalResult llzk::function::CallOp::verifyTemplateParamCompatibility | ( | ::mlir::Attribute | paramFromCallOp, |
| ::llzk::polymorphic::TemplateParamOp | targetParam ) |
Check type compatibility of the given template parameter value from this CallOp against the declared type on the given TemplateParamOp (if any).
| LogicalResult llzk::function::CallOp::verifyTemplateParamsMatchInferred | ( | ::llvm::iterator_range<::mlir::Region::op_iterator<::llzk::polymorphic::TemplateParamOp > > | targetParamDefs, |
| const UnificationMap & | unifications ) |
Verify that each template parameter value provided in this CallOp is consistent with the value inferred for the target TemplateParamOp in the given UnificationMap.
The UnificationMap is expected to contain the unification results of this CallOp against the target function type signature.
Pre-condition assertions:
| void llzk::function::CallOp::writeProperties | ( | ::mlir::DialectBytecodeWriter & | writer | ) |