|
LLZK 3.0.0
An open-source IR for Zero Knowledge (ZK) circuits
|
Shared utility function implementations for LLZK lowering passes. More...
#include "llzk/Dialect/Constrain/IR/Ops.h"#include "llzk/Dialect/Felt/IR/Ops.h"#include "llzk/Dialect/Function/IR/Ops.h"#include <mlir/IR/Builders.h>#include <mlir/IR/BuiltinOps.h>#include <mlir/IR/Types.h>#include <mlir/IR/Value.h>#include <mlir/Support/LogicalResult.h>#include <llvm/ADT/DenseMap.h>Go to the source code of this file.
Classes | |
| struct | llzk::AuxAssignment |
Namespaces | |
| namespace | llzk |
Functions | |
| mlir::Value | llzk::rebuildExprInCompute (mlir::Value val, function::FuncDefOp computeFunc, mlir::OpBuilder &builder, llvm::DenseMap< mlir::Value, mlir::Value > &memo) |
| Rebuilds a straight-line constrain-side felt expression in computeFunc. | |
| mlir::LogicalResult | llzk::checkForAuxMemberConflicts (component::StructDefOp structDef, llvm::StringRef auxPrefix) |
| mlir::LogicalResult | llzk::checkFuncBodyIsStraightLine (function::FuncDefOp func, llvm::StringRef passName) |
| Rejects control flow under func; auxiliary materialization assumes control flow has already been flattened or otherwise lowered away. | |
| component::MemberDefOp | llzk::addAuxMember (component::StructDefOp structDef, llvm::StringRef name, mlir::Type type) |
| unsigned | llzk::getFeltDegree (mlir::Value val, llvm::DenseMap< mlir::Value, unsigned > &memo) |
| void | llzk::replaceSubsequentUsesWith (mlir::Value oldVal, mlir::Value newVal, mlir::Operation *afterOp) |
| Replaces all subsequent uses of oldVal with newVal, starting after afterOp. | |
Shared utility function implementations for LLZK lowering passes.
Definition in file LLZKLoweringUtils.h.