LLZK 2.1.1
An open-source IR for Zero Knowledge (ZK) circuits
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)
IntervalAnalysisPrinterPassBaseoperator= (const IntervalAnalysisPrinterPassBase &)=delete
 IntervalAnalysisPrinterPassBase (IntervalAnalysisPrinterPassBase &&)=delete
IntervalAnalysisPrinterPassBaseoperator= (IntervalAnalysisPrinterPassBase &&)=delete
 ~IntervalAnalysisPrinterPassBase ()=default
::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 (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<::llzk::OutputStreamoutputStream
::mlir::Pass::Option< std::string > fieldName {*this, "field", ::llvm::cl::desc("The field to use for interval analysis. If supplied, this always overrides the module's detected field. If omitted, the pass first tries to detect a single field from the enclosing module's felt usage and otherwise falls back to bn128. Supported fields: bn128/bn254, babybear, goldilocks, grumpkin, koalabear, mersenne31"), ::llvm::cl::init("")}
::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)}
::mlir::Pass::Option< bool > printUnreducedIntervals {*this, "print-unreduced-intervals", ::llvm::cl::desc("Whether to print tracked unreduced intervals alongside reduced interval summaries."), ::llvm::cl::init(false)}
::mlir::Pass::Option< bool > printSSAIntervals {*this, "print-ssa-intervals", ::llvm::cl::desc("Whether to print per-SSA intervals for function arguments and scalar op results."), ::llvm::cl::init(false)}

Friends

std::unique_ptr<::mlir::Pass > createIntervalAnalysisPrinterPass ()
std::unique_ptr<::mlir::Pass > createIntervalAnalysisPrinterPass (IntervalAnalysisPrinterPassOptions options)

Detailed Description

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

Definition at line 390 of file IntervalAnalysisPass.cpp.

Member Typedef Documentation

◆ Base

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

Definition at line 392 of file IntervalAnalysisPass.cpp.

Constructor & Destructor Documentation

◆ IntervalAnalysisPrinterPassBase() [1/4]

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

Definition at line 394 of file IntervalAnalysisPass.cpp.

◆ IntervalAnalysisPrinterPassBase() [2/4]

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

Definition at line 395 of file IntervalAnalysisPass.cpp.

◆ IntervalAnalysisPrinterPassBase() [3/4]

template<typename DerivedT>
llzk::impl::IntervalAnalysisPrinterPassBase< DerivedT >::IntervalAnalysisPrinterPassBase ( IntervalAnalysisPrinterPassBase< DerivedT > && )
delete

◆ ~IntervalAnalysisPrinterPassBase()

template<typename DerivedT>
llzk::impl::IntervalAnalysisPrinterPassBase< DerivedT >::~IntervalAnalysisPrinterPassBase ( )
default

◆ IntervalAnalysisPrinterPassBase() [4/4]

template<typename DerivedT>
llzk::impl::IntervalAnalysisPrinterPassBase< DerivedT >::IntervalAnalysisPrinterPassBase ( 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 447 of file IntervalAnalysisPass.cpp.

Member Function Documentation

◆ classof()

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

Support isa/dyn_cast functionality for the derived pass class.

Definition at line 416 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 421 of file IntervalAnalysisPass.cpp.

◆ getArgument()

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

Definition at line 405 of file IntervalAnalysisPass.cpp.

◆ getArgumentName()

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

Returns the command-line argument attached to this pass.

Definition at line 402 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 426 of file IntervalAnalysisPass.cpp.

◆ getDescription()

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

Definition at line 407 of file IntervalAnalysisPass.cpp.

◆ getName()

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

Definition at line 413 of file IntervalAnalysisPass.cpp.

◆ getPassName()

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

Returns the derived pass name.

Definition at line 410 of file IntervalAnalysisPass.cpp.

◆ operator=() [1/2]

template<typename DerivedT>
IntervalAnalysisPrinterPassBase & llzk::impl::IntervalAnalysisPrinterPassBase< DerivedT >::operator= ( const IntervalAnalysisPrinterPassBase< DerivedT > & )
delete

◆ operator=() [2/2]

template<typename DerivedT>
IntervalAnalysisPrinterPassBase & llzk::impl::IntervalAnalysisPrinterPassBase< DerivedT >::operator= ( IntervalAnalysisPrinterPassBase< DerivedT > && )
delete

◆ createIntervalAnalysisPrinterPass [1/2]

template<typename DerivedT>
std::unique_ptr<::mlir::Pass > createIntervalAnalysisPrinterPass ( )
friend

Definition at line 473 of file IntervalAnalysisPass.cpp.

◆ createIntervalAnalysisPrinterPass [2/2]

template<typename DerivedT>
std::unique_ptr<::mlir::Pass > createIntervalAnalysisPrinterPass ( IntervalAnalysisPrinterPassOptions options)
friend

Definition at line 477 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. If supplied, this always overrides the module's detected field. If omitted, the pass first tries to detect a single field from the enclosing module's felt usage and otherwise falls back to bn128. Supported fields: bn128/bn254, babybear, goldilocks, grumpkin, koalabear, mersenne31"), ::llvm::cl::init("")}
protected

Definition at line 465 of file IntervalAnalysisPass.cpp.

◆ outputStream

template<typename DerivedT>
::mlir::Pass::Option<::llzk::OutputStream> llzk::impl::IntervalAnalysisPrinterPassBase< DerivedT >::outputStream
protected
Initial value:
{*this, "stream", ::llvm::cl::desc("Specifies the stream to which the pass prints."), ::llvm::cl::init(::llzk::OutputStream::Errs), ::llvm::cl::values(
"Print pass output to 'llvm::outs()'"),
"Print pass output to 'llvm::errs()'"),
"Print pass output to 'llvm::dbgs()'")
)}
::llvm::StringRef stringifyOutputStream(OutputStream val)

Definition at line 457 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 468 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 467 of file IntervalAnalysisPass.cpp.

◆ printSSAIntervals

template<typename DerivedT>
::mlir::Pass::Option<bool> llzk::impl::IntervalAnalysisPrinterPassBase< DerivedT >::printSSAIntervals {*this, "print-ssa-intervals", ::llvm::cl::desc("Whether to print per-SSA intervals for function arguments and scalar op results."), ::llvm::cl::init(false)}
protected

Definition at line 470 of file IntervalAnalysisPass.cpp.

◆ printUnreducedIntervals

template<typename DerivedT>
::mlir::Pass::Option<bool> llzk::impl::IntervalAnalysisPrinterPassBase< DerivedT >::printUnreducedIntervals {*this, "print-unreduced-intervals", ::llvm::cl::desc("Whether to print tracked unreduced intervals alongside reduced interval summaries."), ::llvm::cl::init(false)}
protected

Definition at line 469 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 466 of file IntervalAnalysisPass.cpp.


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