LLZK 2.1.1
An open-source IR for Zero Knowledge (ZK) circuits
Loading...
Searching...
No Matches
llzk::IntervalAnalysisLatticeValue Class Reference

#include <IntervalAnalysis.h>

Inheritance diagram for llzk::IntervalAnalysisLatticeValue:
[legend]
Collaboration diagram for llzk::IntervalAnalysisLatticeValue:
[legend]

Public Member Functions

 IntervalAnalysisLatticeValue (ExpressionValue e)
 IntervalAnalysisLatticeValue ()
 IntervalAnalysisLatticeValue (mlir::ArrayRef< int64_t > shape)
 IntervalAnalysisLatticeValue (const IntervalAnalysisLatticeValue &)=default
 IntervalAnalysisLatticeValue (IntervalAnalysisLatticeValue &&)=default
IntervalAnalysisLatticeValueoperator= (const IntervalAnalysisLatticeValue &)=default
IntervalAnalysisLatticeValueoperator= (IntervalAnalysisLatticeValue &&)=default
Public Member Functions inherited from llzk::dataflow::AbstractLatticeValue< IntervalAnalysisLatticeValue, ExpressionValue >
bool isScalar () const
bool isSingleValue () const
bool isArray () const
bool isDynamicArray () const
const ScalarTy & getScalarValue () const
ScalarTy & getScalarValue ()
const ArrayTy & getArrayValue () const
ArrayTy & getArrayValue ()
const IntervalAnalysisLatticeValuegetElemFlatIdx (size_t i) const
 Directly index into the flattened array using a single index.
IntervalAnalysisLatticeValuegetElemFlatIdx (size_t i)
size_t getArraySize () const
size_t getNumArrayDims () const
void print (mlir::raw_ostream &os) const
ScalarTy foldToScalar () const
 If this is an array value, combine all elements into a single scalar value and return it.
mlir::ChangeResult setValue (const AbstractLatticeValue &rhs)
 Sets this value to be equal to rhs.
mlir::ChangeResult update (const IntervalAnalysisLatticeValue &rhs)
 Union this value with that of rhs.
bool operator== (const AbstractLatticeValue &rhs) const

Additional Inherited Members

Protected Member Functions inherited from llzk::dataflow::AbstractLatticeValue< IntervalAnalysisLatticeValue, ExpressionValue >
std::variant< ScalarTy, ArrayTy > & getValue ()
const std::vector< int64_t > & getArrayShape () const
int64_t getArrayDim (unsigned i) const
void copyArrayShape (const AbstractLatticeValue &rhs)
mlir::ChangeResult updateScalar (const ScalarTy &rhs)
 Union this value with the given scalar.
mlir::ChangeResult updateArray (const ArrayTy &rhs)
 Union this value with the given array.
mlir::ChangeResult foldAndUpdate (const IntervalAnalysisLatticeValue &rhs)
 Folds the current value into a scalar and folds rhs to a scalar and updates the current value to the union of the two scalars.

Detailed Description

Definition at line 234 of file IntervalAnalysis.h.

Constructor & Destructor Documentation

◆ IntervalAnalysisLatticeValue() [1/5]

llzk::IntervalAnalysisLatticeValue::IntervalAnalysisLatticeValue ( ExpressionValue e)
inlineexplicit

Definition at line 239 of file IntervalAnalysis.h.

◆ IntervalAnalysisLatticeValue() [2/5]

llzk::IntervalAnalysisLatticeValue::IntervalAnalysisLatticeValue ( )
inline

Definition at line 240 of file IntervalAnalysis.h.

◆ IntervalAnalysisLatticeValue() [3/5]

llzk::IntervalAnalysisLatticeValue::IntervalAnalysisLatticeValue ( mlir::ArrayRef< int64_t > shape)
inlineexplicit

Definition at line 241 of file IntervalAnalysis.h.

◆ IntervalAnalysisLatticeValue() [4/5]

llzk::IntervalAnalysisLatticeValue::IntervalAnalysisLatticeValue ( const IntervalAnalysisLatticeValue & )
default

◆ IntervalAnalysisLatticeValue() [5/5]

llzk::IntervalAnalysisLatticeValue::IntervalAnalysisLatticeValue ( IntervalAnalysisLatticeValue && )
default

Member Function Documentation

◆ operator=() [1/2]

IntervalAnalysisLatticeValue & llzk::IntervalAnalysisLatticeValue::operator= ( const IntervalAnalysisLatticeValue & )
default

◆ operator=() [2/2]

IntervalAnalysisLatticeValue & llzk::IntervalAnalysisLatticeValue::operator= ( IntervalAnalysisLatticeValue && )
default

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