LLZK 0.1.0
Veridise's ZK Language IR
Loading...
Searching...
No Matches
llzk::impl::IntervalAnalysisPrinterPassBase< DerivedT > Class Template Reference
Inheritance diagram for llzk::impl::IntervalAnalysisPrinterPassBase< DerivedT >:
[legend]
Collaboration diagram for llzk::impl::IntervalAnalysisPrinterPassBase< DerivedT >:
[legend]

Public Types

using Base = IntervalAnalysisPrinterPassBase
 

Public Member Functions

 IntervalAnalysisPrinterPassBase ()
 
 IntervalAnalysisPrinterPassBase (const IntervalAnalysisPrinterPassBase &other)
 
::llvm::StringRef getArgument () const override
 
::llvm::StringRef getDescription () const override
 
::llvm::StringRef getName () const override
 
std::unique_ptr<::mlir::Pass > clonePass () const override
 A clone method to create a copy of this pass.
 
void getDependentDialects (::mlir::DialectRegistry &registry) const override
 Return the dialect that must be loaded in the context before this pass.
 
 IntervalAnalysisPrinterPassBase (const IntervalAnalysisPrinterPassOptions &options)
 Explicitly declare the TypeID for this class.
 

Static Public Member Functions

static constexpr ::llvm::StringLiteral getArgumentName ()
 Returns the command-line argument attached to this pass.
 
static constexpr ::llvm::StringLiteral getPassName ()
 Returns the derived pass name.
 
static bool classof (const ::mlir::Pass *pass)
 Support isa/dyn_cast functionality for the derived pass class.
 

Protected Attributes

::mlir::Pass::Option< std::string > fieldName {*this, "field", ::llvm::cl::desc("The field to use for interval analysis. Supported fields: bn128/bn254, babybear, goldilocks, mersenne31"), ::llvm::cl::init("bn128")}
 
::mlir::Pass::Option< bool > propagateInputConstraints {*this, "propagate-input-constraints", ::llvm::cl::desc("Whether to propagate constraints on inputs from @constrain to @compute functions. This allows for tighter intervals to possibly be found for computed values, assuming that the witness generator would include constraints as assertions during the computation."), ::llvm::cl::init(false)}
 
::mlir::Pass::Option< bool > printSolverConstraints {*this, "print-solver-constraints", ::llvm::cl::desc("Whether to output SMT solver constraints along with intervals."), ::llvm::cl::init(false)}
 
::mlir::Pass::Option< bool > printComputeIntervals {*this, "print-compute-intervals", ::llvm::cl::desc("Whether to print compute function intervals (default only prints constrain function intervals)."), ::llvm::cl::init(false)}
 

Detailed Description

template<typename DerivedT>
class llzk::impl::IntervalAnalysisPrinterPassBase< DerivedT >

Definition at line 251 of file IntervalAnalysisPass.cpp.

Member Typedef Documentation

◆ Base

template<typename DerivedT>
using llzk::impl::IntervalAnalysisPrinterPassBase< DerivedT >::Base = IntervalAnalysisPrinterPassBase

Definition at line 253 of file IntervalAnalysisPass.cpp.

Constructor & Destructor Documentation

◆ IntervalAnalysisPrinterPassBase() [1/3]

template<typename DerivedT>
llzk::impl::IntervalAnalysisPrinterPassBase< DerivedT >::IntervalAnalysisPrinterPassBase ( )
inline

Definition at line 255 of file IntervalAnalysisPass.cpp.

◆ IntervalAnalysisPrinterPassBase() [2/3]

template<typename DerivedT>
llzk::impl::IntervalAnalysisPrinterPassBase< DerivedT >::IntervalAnalysisPrinterPassBase ( const IntervalAnalysisPrinterPassBase< DerivedT > & other)
inline

Definition at line 256 of file IntervalAnalysisPass.cpp.

◆ IntervalAnalysisPrinterPassBase() [3/3]

template<typename DerivedT>
llzk::impl::IntervalAnalysisPrinterPassBase< DerivedT >::IntervalAnalysisPrinterPassBase ( const IntervalAnalysisPrinterPassOptions & options)
inline

Explicitly declare the TypeID for this class.

We declare an explicit private instantiation because Pass classes should only be visible by the current library.

Definition at line 305 of file IntervalAnalysisPass.cpp.

Member Function Documentation

◆ classof()

template<typename DerivedT>
static bool llzk::impl::IntervalAnalysisPrinterPassBase< DerivedT >::classof ( const ::mlir::Pass * pass)
inlinestatic

Support isa/dyn_cast functionality for the derived pass class.

Definition at line 273 of file IntervalAnalysisPass.cpp.

◆ clonePass()

template<typename DerivedT>
std::unique_ptr<::mlir::Pass > llzk::impl::IntervalAnalysisPrinterPassBase< DerivedT >::clonePass ( ) const
inlineoverride

A clone method to create a copy of this pass.

Definition at line 278 of file IntervalAnalysisPass.cpp.

◆ getArgument()

template<typename DerivedT>
::llvm::StringRef llzk::impl::IntervalAnalysisPrinterPassBase< DerivedT >::getArgument ( ) const
inlineoverride

Definition at line 262 of file IntervalAnalysisPass.cpp.

◆ getArgumentName()

template<typename DerivedT>
static constexpr ::llvm::StringLiteral llzk::impl::IntervalAnalysisPrinterPassBase< DerivedT >::getArgumentName ( )
inlinestatic

Returns the command-line argument attached to this pass.

Definition at line 259 of file IntervalAnalysisPass.cpp.

◆ getDependentDialects()

template<typename DerivedT>
void llzk::impl::IntervalAnalysisPrinterPassBase< DerivedT >::getDependentDialects ( ::mlir::DialectRegistry & registry) const
inlineoverride

Return the dialect that must be loaded in the context before this pass.

Definition at line 283 of file IntervalAnalysisPass.cpp.

◆ getDescription()

template<typename DerivedT>
::llvm::StringRef llzk::impl::IntervalAnalysisPrinterPassBase< DerivedT >::getDescription ( ) const
inlineoverride

Definition at line 264 of file IntervalAnalysisPass.cpp.

◆ getName()

template<typename DerivedT>
::llvm::StringRef llzk::impl::IntervalAnalysisPrinterPassBase< DerivedT >::getName ( ) const
inlineoverride

Definition at line 270 of file IntervalAnalysisPass.cpp.

◆ getPassName()

template<typename DerivedT>
static constexpr ::llvm::StringLiteral llzk::impl::IntervalAnalysisPrinterPassBase< DerivedT >::getPassName ( )
inlinestatic

Returns the derived pass name.

Definition at line 267 of file IntervalAnalysisPass.cpp.

Member Data Documentation

◆ fieldName

template<typename DerivedT>
::mlir::Pass::Option<std::string> llzk::impl::IntervalAnalysisPrinterPassBase< DerivedT >::fieldName {*this, "field", ::llvm::cl::desc("The field to use for interval analysis. Supported fields: bn128/bn254, babybear, goldilocks, mersenne31"), ::llvm::cl::init("bn128")}
protected

Definition at line 312 of file IntervalAnalysisPass.cpp.

◆ printComputeIntervals

template<typename DerivedT>
::mlir::Pass::Option<bool> llzk::impl::IntervalAnalysisPrinterPassBase< DerivedT >::printComputeIntervals {*this, "print-compute-intervals", ::llvm::cl::desc("Whether to print compute function intervals (default only prints constrain function intervals)."), ::llvm::cl::init(false)}
protected

Definition at line 315 of file IntervalAnalysisPass.cpp.

◆ printSolverConstraints

template<typename DerivedT>
::mlir::Pass::Option<bool> llzk::impl::IntervalAnalysisPrinterPassBase< DerivedT >::printSolverConstraints {*this, "print-solver-constraints", ::llvm::cl::desc("Whether to output SMT solver constraints along with intervals."), ::llvm::cl::init(false)}
protected

Definition at line 314 of file IntervalAnalysisPass.cpp.

◆ propagateInputConstraints

template<typename DerivedT>
::mlir::Pass::Option<bool> llzk::impl::IntervalAnalysisPrinterPassBase< DerivedT >::propagateInputConstraints {*this, "propagate-input-constraints", ::llvm::cl::desc("Whether to propagate constraints on inputs from @constrain to @compute functions. This allows for tighter intervals to possibly be found for computed values, assuming that the witness generator would include constraints as assertions during the computation."), ::llvm::cl::init(false)}
protected

Definition at line 313 of file IntervalAnalysisPass.cpp.


The documentation for this class was generated from the following file: