LLZK 2.0.0
An open-source IR for Zero Knowledge (ZK) circuits
Loading...
Searching...
No Matches
Field.h File Reference
#include "llzk/Util/DynamicAPIntHelper.h"
#include "llzk/Util/ErrorHelper.h"
#include <mlir/IR/BuiltinOps.h>
#include <mlir/Support/LLVM.h>
#include <llvm/ADT/DenseMap.h>
#include <llvm/ADT/DynamicAPInt.h>
#include <llvm/ADT/SmallSet.h>
#include <llvm/Support/LogicalResult.h>
#include <llvm/Support/SMTAPI.h>
#include <functional>
#include <optional>
#include <string_view>
Include dependency graph for Field.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  llzk::Field
 Information about the prime finite field used for the interval analysis. More...

Namespaces

namespace  llzk

Typedefs

using llzk::FieldRef = std::reference_wrapper<const Field>
 Typealias for a stable reference to a known Field.
using llzk::FieldSet = llvm::SmallSet<FieldRef, 2>
 Typealias for a set of Fields.

Functions

llvm::LogicalResult llzk::addSpecifiedFields (mlir::ModuleOp modOp)
 Update the set of available prime fields with the fields specified on the root module.
mlir::LogicalResult llzk::collectFields (mlir::Operation *root, FieldSet &fields, bool silent=true)
 Collects all the fields used in a circuit.
std::optional< std::reference_wrapper< const Field > > llzk::tryDetectSpecifiedField (mlir::Operation *root)
 Try to detect a uniquely used field from the enclosing LLZK module.