|
LLZK 3.0.0
An open-source IR for Zero Knowledge (ZK) circuits
|
Namespaces | |
| namespace | detail |
| Common interface for precondition and postcondition operations. | |
Enumerations | |
| enum class | ForbiddenPreconditionInfluence : uint8_t { None = 0 , StructMember = 1U << 0U , FunctionReturn = 1U << 1U } |
| Sources of information that are not allowed in contract preconditions. More... | |
Functions | |
| void | attachInterfaces (mlir::MLIRContext &context) |
| Attaches the interfaces defined by the verif dialect to upstream IR elements. | |
| void | registerExtensions (mlir::DialectRegistry ®istry) |
| Registers dialect extensions for the verif dialect. | |
| llvm::hash_code | hash_value (const ForbiddenPreconditionInfluenceInfo &info) |
| ForbiddenPreconditionInfluence | operator| (ForbiddenPreconditionInfluence lhs, ForbiddenPreconditionInfluence rhs) |
| ForbiddenPreconditionInfluence & | operator|= (ForbiddenPreconditionInfluence &lhs, ForbiddenPreconditionInfluence rhs) |
| bool | any (ForbiddenPreconditionInfluence influence) |
| Return true when the influence set contains at least one classification. | |
| bool | hasInfluence (ForbiddenPreconditionInfluence influence, ForbiddenPreconditionInfluence flag) |
| Return true when influence contains the requested flag. | |
| ForbiddenPreconditionInfluenceInfo | mergeInfluenceInfo (ForbiddenPreconditionInfluenceInfo lhs, const ForbiddenPreconditionInfluenceInfo &rhs) |
| Merge two forbidden-influence summaries, preserving the first known source location for each forbidden kind. | |
| template<typename T, typename... Args> | |
| ForbiddenPreconditionInfluenceInfo | mergeInfluenceInfo (const T &first, const T &next, const Args &...others) |
| ForbiddenPreconditionInfluenceInfo | analyzeForbiddenPreconditionInfluenceInfo (mlir::ModuleOp module, verif::ContractOp contract, mlir::Value value) |
| Analyze whether a contract value depends on forbidden precondition sources and recover representative source locations for any forbidden influence. | |
| ForbiddenPreconditionInfluenceInfo | analyzeForbiddenPreconditionOpInfluenceInfo (mlir::ModuleOp module, verif::ContractOp contract, verif::PreconditionOpInterface preCondOp) |
| Analyze whether a precondition op depends on forbidden sources, including both its condition operand and enclosing SCF control ancestors. | |
| ForbiddenPreconditionInfluence | analyzeForbiddenPreconditionInfluence (mlir::ModuleOp module, verif::ContractOp contract, mlir::Value value) |
| Analyze whether a contract value depends on forbidden precondition sources. | |
| ForbiddenPreconditionInfluenceInfo | analyzeForbiddenPreconditionCallableResultInfo (mlir::ModuleOp module, mlir::CallableOpInterface callableOp, llvm::ArrayRef< ForbiddenPreconditionInfluenceInfo > argInfluences, unsigned resultNumber) |
| Analyze whether a callable result depends on forbidden precondition sources under a caller-provided argument influence summary. | |
| ForbiddenPreconditionInfluence | analyzeForbiddenPreconditionCallableResult (mlir::ModuleOp module, mlir::CallableOpInterface callableOp, llvm::ArrayRef< ForbiddenPreconditionInfluenceInfo > argInfluences, unsigned resultNumber) |
| Analyze whether a callable result depends on forbidden precondition sources under a caller-provided argument influence summary. | |
| detail::IncludedContractSummary | analyzeForbiddenIncludedContractSummary (mlir::ModuleOp module, verif::ContractOp calleeContract, llvm::ArrayRef< ForbiddenPreconditionInfluenceInfo > argInfluences) |
| Analyze whether including a contract with caller-provided operand influence summaries would trigger a forbidden precondition failure in the callee. | |
| detail::IncludedContractSummary | analyzeForbiddenIncludedOpSummary (mlir::ModuleOp module, verif::ContractOp contract, verif::IncludeOp includeOp) |
| Analyze whether a specific include op triggers forbidden preconditions in the callee, including both caller operand bindings and caller-side SCF control ancestors. | |
|
strong |
Sources of information that are not allowed in contract preconditions.
These are generally results of the target, so having preconditions over them doesn't make sense.
| Enumerator | |
|---|---|
| None | |
| StructMember | |
| FunctionReturn | |
Definition at line 36 of file ForbiddenPreconditionInfluence.h.
|
inline |
Analyze whether including a contract with caller-provided operand influence summaries would trigger a forbidden precondition failure in the callee.
Definition at line 369 of file ForbiddenPreconditionInfluence.h.
|
inline |
Analyze whether a specific include op triggers forbidden preconditions in the callee, including both caller operand bindings and caller-side SCF control ancestors.
Definition at line 381 of file ForbiddenPreconditionInfluence.h.
|
inline |
Analyze whether a callable result depends on forbidden precondition sources under a caller-provided argument influence summary.
Definition at line 357 of file ForbiddenPreconditionInfluence.h.
|
inline |
Analyze whether a callable result depends on forbidden precondition sources under a caller-provided argument influence summary.
Definition at line 346 of file ForbiddenPreconditionInfluence.h.
|
inline |
Analyze whether a contract value depends on forbidden precondition sources.
Definition at line 338 of file ForbiddenPreconditionInfluence.h.
|
inline |
Analyze whether a contract value depends on forbidden precondition sources and recover representative source locations for any forbidden influence.
Definition at line 323 of file ForbiddenPreconditionInfluence.h.
|
inline |
Analyze whether a precondition op depends on forbidden sources, including both its condition operand and enclosing SCF control ancestors.
Definition at line 331 of file ForbiddenPreconditionInfluence.h.
|
inline |
Return true when the influence set contains at least one classification.
Definition at line 84 of file ForbiddenPreconditionInfluence.h.
| void llzk::verif::attachInterfaces | ( | mlir::MLIRContext & | context | ) |
Attaches the interfaces defined by the verif dialect to upstream IR elements.
Attempting to use those interfaces without calling this function first will result in an error.
|
inline |
Definition at line 63 of file ForbiddenPreconditionInfluence.h.
|
inline |
Return true when influence contains the requested flag.
Definition at line 90 of file ForbiddenPreconditionInfluence.h.
|
inline |
Definition at line 106 of file ForbiddenPreconditionInfluence.h.
|
inline |
Merge two forbidden-influence summaries, preserving the first known source location for each forbidden kind.
Definition at line 96 of file ForbiddenPreconditionInfluence.h.
|
inline |
Definition at line 71 of file ForbiddenPreconditionInfluence.h.
|
inline |
Definition at line 78 of file ForbiddenPreconditionInfluence.h.
| void llzk::verif::registerExtensions | ( | mlir::DialectRegistry & | registry | ) |
Registers dialect extensions for the verif dialect.
Definition at line 107 of file Dialect.cpp.