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

#include <IntervalAnalysis.h>

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

Public Types

using LatticeValue = IntervalAnalysisLatticeValue
using ValueMap = mlir::DenseMap<mlir::Value, LatticeValue>
using MemberMap = mlir::DenseMap<mlir::Value, mlir::DenseMap<mlir::StringAttr, LatticeValue>>
using ExpressionIntervals = mlir::DenseMap<llvm::SMTExprRef, Interval>
using ConstraintSet = llvm::SetVector<ExpressionValue>

Public Member Functions

mlir::ChangeResult join (const AbstractSparseLattice &other) override
mlir::ChangeResult meet (const AbstractSparseLattice &other) override
void print (mlir::raw_ostream &os) const override
const LatticeValuegetValue () const
mlir::ChangeResult setValue (const LatticeValue &val)
mlir::ChangeResult setValue (const ExpressionValue &e)
mlir::ChangeResult addSolverConstraint (const ExpressionValue &e)
const ConstraintSetgetConstraints () const
mlir::FailureOr< IntervalfindInterval (llvm::SMTExprRef expr) const
mlir::ChangeResult setInterval (llvm::SMTExprRef expr, const Interval &i)

Friends

mlir::raw_ostream & operator<< (mlir::raw_ostream &os, const IntervalAnalysisLattice &l)

Detailed Description

Definition at line 213 of file IntervalAnalysis.h.

Member Typedef Documentation

◆ ConstraintSet

Definition at line 224 of file IntervalAnalysis.h.

◆ ExpressionIntervals

using llzk::IntervalAnalysisLattice::ExpressionIntervals = mlir::DenseMap<llvm::SMTExprRef, Interval>

Definition at line 222 of file IntervalAnalysis.h.

◆ LatticeValue

◆ MemberMap

using llzk::IntervalAnalysisLattice::MemberMap = mlir::DenseMap<mlir::Value, mlir::DenseMap<mlir::StringAttr, LatticeValue>>

Definition at line 220 of file IntervalAnalysis.h.

◆ ValueMap

using llzk::IntervalAnalysisLattice::ValueMap = mlir::DenseMap<mlir::Value, LatticeValue>

Definition at line 217 of file IntervalAnalysis.h.

Member Function Documentation

◆ addSolverConstraint()

ChangeResult llzk::IntervalAnalysisLattice::addSolverConstraint ( const ExpressionValue & e)

Definition at line 440 of file IntervalAnalysis.cpp.

◆ findInterval()

mlir::FailureOr< Interval > llzk::IntervalAnalysisLattice::findInterval ( llvm::SMTExprRef expr) const

◆ getConstraints()

const ConstraintSet & llzk::IntervalAnalysisLattice::getConstraints ( ) const
inline

Definition at line 246 of file IntervalAnalysis.h.

◆ getValue()

const LatticeValue & llzk::IntervalAnalysisLattice::getValue ( ) const
inline

Definition at line 234 of file IntervalAnalysis.h.

◆ join()

ChangeResult llzk::IntervalAnalysisLattice::join ( const AbstractSparseLattice & other)
override

Definition at line 411 of file IntervalAnalysis.cpp.

◆ meet()

ChangeResult llzk::IntervalAnalysisLattice::meet ( const AbstractSparseLattice & other)
override

Definition at line 417 of file IntervalAnalysis.cpp.

◆ print()

void llzk::IntervalAnalysisLattice::print ( mlir::raw_ostream & os) const
override

Definition at line 423 of file IntervalAnalysis.cpp.

◆ setInterval()

mlir::ChangeResult llzk::IntervalAnalysisLattice::setInterval ( llvm::SMTExprRef expr,
const Interval & i )

◆ setValue() [1/2]

ChangeResult llzk::IntervalAnalysisLattice::setValue ( const ExpressionValue & e)

Definition at line 435 of file IntervalAnalysis.cpp.

◆ setValue() [2/2]

ChangeResult llzk::IntervalAnalysisLattice::setValue ( const LatticeValue & val)

Definition at line 427 of file IntervalAnalysis.cpp.

◆ operator<<

mlir::raw_ostream & operator<< ( mlir::raw_ostream & os,
const IntervalAnalysisLattice & l )
friend

Definition at line 241 of file IntervalAnalysis.h.


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