16#include <mlir/IR/BuiltinOps.h>
18#include <llvm/Support/Error.h>
19#include <llvm/Support/JSON.h>
55 mlir::ModuleOp moduleOp, mlir::SymbolTableCollection &tables,
const llzk::Field &field,
63 llvm::Expected<llvm::json::Value>
runMainFromJSON(
const llvm::json::Value &input);
66 mlir::ModuleOp moduleOp;
67 mlir::SymbolTableCollection &tables;
75llvm::Expected<llvm::json::Value>
Information about the prime finite field used for the interval analysis.
Drive witness generation for the concrete llzk.main instance.
Interpreter(mlir::ModuleOp moduleOp, mlir::SymbolTableCollection &tables, const llzk::Field &field, UninitializedBehavior uninitializedBehavior, std::mt19937_64 rng)
Build a driver for one parsed module and validated field.
void setOutputScope(OutputScope newOutputScope)
Select which witness JSON scope this interpreter emits.
llvm::Expected< llvm::json::Value > runMainFromJSON(const llvm::json::Value &input)
Execute the main compute() function using JSON inputs.
OutputScope
Select the JSON scope emitted by llzk-witgen.
llvm::Expected< llvm::json::Value > runWitgen(ModuleOp moduleOp, const llvm::json::Value &input, const WitgenOptions &options)
Run include preprocessing, field validation, and backend execution.
UninitializedBehavior
Control how witgen materializes uninitialized/default values.
Backend
Select the execution backend used by llzk-witgen.
Configure one llzk-witgen execution.
UninitializedBehavior uninitializedBehavior
std::optional< uint64_t > randomSeed