LLZK 0.1.0
Veridise's ZK Language IR
Loading...
Searching...
No Matches
llzk::IntervalAnalysisLattice Class Reference

Maps mlir::Values to LatticeValues. More...

#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 FieldMap = 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 AbstractDenseLattice &other) override
 
mlir::ChangeResult meet (const AbstractDenseLattice &rhs) override
 
void print (mlir::raw_ostream &os) const override
 
mlir::FailureOr< LatticeValuegetValue (mlir::Value v) const
 
mlir::FailureOr< LatticeValuegetValue (mlir::Value v, mlir::StringAttr f) const
 
mlir::ChangeResult setValue (mlir::Value v, ExpressionValue e)
 
mlir::ChangeResult setValue (mlir::Value v, mlir::StringAttr f, ExpressionValue e)
 
mlir::ChangeResult addSolverConstraint (ExpressionValue e)
 
const ConstraintSetgetConstraints () const
 
mlir::FailureOr< IntervalfindInterval (llvm::SMTExprRef expr) const
 
mlir::ChangeResult setInterval (llvm::SMTExprRef expr, Interval i)
 
size_t size () const
 
const ValueMapgetMap () const
 
ValueMap::iterator begin ()
 
ValueMap::iterator end ()
 
ValueMap::const_iterator begin () const
 
ValueMap::const_iterator end () const
 

Friends

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

Detailed Description

Maps mlir::Values to LatticeValues.

Definition at line 194 of file IntervalAnalysis.h.

Member Typedef Documentation

◆ ConstraintSet

Definition at line 205 of file IntervalAnalysis.h.

◆ ExpressionIntervals

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

Definition at line 203 of file IntervalAnalysis.h.

◆ FieldMap

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

Definition at line 201 of file IntervalAnalysis.h.

◆ LatticeValue

◆ ValueMap

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

Definition at line 198 of file IntervalAnalysis.h.

Member Function Documentation

◆ addSolverConstraint()

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

Definition at line 361 of file IntervalAnalysis.cpp.

◆ begin() [1/2]

ValueMap::iterator llzk::IntervalAnalysisLattice::begin ( )
inline

Definition at line 240 of file IntervalAnalysis.h.

◆ begin() [2/2]

ValueMap::const_iterator llzk::IntervalAnalysisLattice::begin ( ) const
inline

Definition at line 242 of file IntervalAnalysis.h.

◆ end() [1/2]

ValueMap::iterator llzk::IntervalAnalysisLattice::end ( )
inline

Definition at line 241 of file IntervalAnalysis.h.

◆ end() [2/2]

ValueMap::const_iterator llzk::IntervalAnalysisLattice::end ( ) const
inline

Definition at line 243 of file IntervalAnalysis.h.

◆ findInterval()

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

Definition at line 369 of file IntervalAnalysis.cpp.

◆ getConstraints()

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

Definition at line 231 of file IntervalAnalysis.h.

◆ getMap()

const ValueMap & llzk::IntervalAnalysisLattice::getMap ( ) const
inline

Definition at line 238 of file IntervalAnalysis.h.

◆ getValue() [1/2]

mlir::FailureOr< LatticeValue > llzk::IntervalAnalysisLattice::getValue ( mlir::Value v) const

◆ getValue() [2/2]

mlir::FailureOr< LatticeValue > llzk::IntervalAnalysisLattice::getValue ( mlir::Value v,
mlir::StringAttr f ) const

◆ join()

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

Definition at line 271 of file IntervalAnalysis.cpp.

◆ meet()

mlir::ChangeResult llzk::IntervalAnalysisLattice::meet ( const AbstractDenseLattice & rhs)
inlineoverride

Definition at line 211 of file IntervalAnalysis.h.

◆ print()

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

Definition at line 300 of file IntervalAnalysis.cpp.

◆ setInterval()

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

Definition at line 377 of file IntervalAnalysis.cpp.

◆ setValue() [1/2]

mlir::ChangeResult llzk::IntervalAnalysisLattice::setValue ( mlir::Value v,
ExpressionValue e )

◆ setValue() [2/2]

mlir::ChangeResult llzk::IntervalAnalysisLattice::setValue ( mlir::Value v,
mlir::StringAttr f,
ExpressionValue e )

◆ size()

size_t llzk::IntervalAnalysisLattice::size ( ) const
inline

Definition at line 236 of file IntervalAnalysis.h.

Friends And Related Symbol Documentation

◆ operator<<

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

Definition at line 226 of file IntervalAnalysis.h.


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