LLZK 0.1.0
Veridise's ZK Language IR
Loading...
Searching...
No Matches

A lattice for use in dense analysis. More...

#include <SourceRefLattice.h>

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

Public Types

using ValueTy = llvm::PointerUnion<mlir::Value, mlir::Operation *>
using ValueMap = mlir::DenseMap<ValueTy, SourceRefLatticeValue>
using ValueSet = mlir::DenseSet<ValueTy>
using Ref2Val = mlir::DenseMap<SourceRef, mlir::DenseSet<ValueTy>>

Public Member Functions

mlir::ChangeResult join (const AbstractDenseLattice &rhs) override
 Maximum upper bound.
mlir::ChangeResult meet (const AbstractDenseLattice &) override
 Minimum lower bound.
void print (mlir::raw_ostream &os) const override
mlir::ChangeResult setValues (const ValueMap &rhs)
mlir::ChangeResult setValue (ValueTy v, const SourceRefLatticeValue &rhs)
mlir::ChangeResult setValue (ValueTy v, const SourceRef &ref)
SourceRefLatticeValue getOrDefault (ValueTy v) const
SourceRefLatticeValue getReturnValue (unsigned i) const
ValueSet lookupValues (const SourceRef &r) const
size_t size () const
const ValueMapgetMap () const
const Ref2ValgetRef2Val () const
ValueMap::iterator begin ()
ValueMap::iterator end ()
ValueMap::const_iterator begin () const
ValueMap::const_iterator end () const

Static Public Member Functions

static mlir::FailureOr< SourceRefgetSourceRef (mlir::Value val)
 If val is the source of other values (i.e., a block argument from the function args or a constant), create the base reference to the val.

Friends

mlir::raw_ostream & operator<< (mlir::raw_ostream &os, const SourceRefLattice &v)

Detailed Description

A lattice for use in dense analysis.

Definition at line 89 of file SourceRefLattice.h.

Member Typedef Documentation

◆ Ref2Val

using llzk::SourceRefLattice::Ref2Val = mlir::DenseMap<SourceRef, mlir::DenseSet<ValueTy>>

Definition at line 98 of file SourceRefLattice.h.

◆ ValueMap

Definition at line 94 of file SourceRefLattice.h.

◆ ValueSet

using llzk::SourceRefLattice::ValueSet = mlir::DenseSet<ValueTy>

Definition at line 97 of file SourceRefLattice.h.

◆ ValueTy

using llzk::SourceRefLattice::ValueTy = llvm::PointerUnion<mlir::Value, mlir::Operation *>

Definition at line 93 of file SourceRefLattice.h.

Member Function Documentation

◆ begin() [1/2]

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

Definition at line 144 of file SourceRefLattice.h.

◆ begin() [2/2]

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

Definition at line 146 of file SourceRefLattice.h.

◆ end() [1/2]

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

Definition at line 145 of file SourceRefLattice.h.

◆ end() [2/2]

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

Definition at line 147 of file SourceRefLattice.h.

◆ getMap()

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

Definition at line 140 of file SourceRefLattice.h.

◆ getOrDefault()

SourceRefLatticeValue llzk::SourceRefLattice::getOrDefault ( SourceRefLattice::ValueTy v) const

Definition at line 254 of file SourceRefLattice.cpp.

◆ getRef2Val()

const Ref2Val & llzk::SourceRefLattice::getRef2Val ( ) const
inline

Definition at line 142 of file SourceRefLattice.h.

◆ getReturnValue()

SourceRefLatticeValue llzk::SourceRefLattice::getReturnValue ( unsigned i) const

Definition at line 269 of file SourceRefLattice.cpp.

◆ getSourceRef()

mlir::FailureOr< SourceRef > llzk::SourceRefLattice::getSourceRef ( mlir::Value val)
static

If val is the source of other values (i.e., a block argument from the function args or a constant), create the base reference to the val.

Otherwise, return failure. Our lattice values must originate from somewhere.

Definition at line 194 of file SourceRefLattice.cpp.

◆ join()

mlir::ChangeResult llzk::SourceRefLattice::join ( const AbstractDenseLattice & rhs)
inlineoverride

Maximum upper bound.

Definition at line 112 of file SourceRefLattice.h.

◆ lookupValues()

SourceRefLattice::ValueSet llzk::SourceRefLattice::lookupValues ( const SourceRef & r) const

Definition at line 280 of file SourceRefLattice.cpp.

◆ meet()

mlir::ChangeResult llzk::SourceRefLattice::meet ( const AbstractDenseLattice & )
inlineoverride

Minimum lower bound.

Definition at line 117 of file SourceRefLattice.h.

◆ print()

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

Definition at line 211 of file SourceRefLattice.cpp.

◆ setValue() [1/2]

mlir::ChangeResult llzk::SourceRefLattice::setValue ( ValueTy v,
const SourceRef & ref )

Definition at line 249 of file SourceRefLattice.cpp.

◆ setValue() [2/2]

mlir::ChangeResult llzk::SourceRefLattice::setValue ( ValueTy v,
const SourceRefLatticeValue & rhs )

Definition at line 242 of file SourceRefLattice.cpp.

◆ setValues()

mlir::ChangeResult llzk::SourceRefLattice::setValues ( const ValueMap & rhs)

Definition at line 234 of file SourceRefLattice.cpp.

◆ size()

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

Definition at line 138 of file SourceRefLattice.h.

◆ operator<<

mlir::raw_ostream & operator<< ( mlir::raw_ostream & os,
const SourceRefLattice & v )
friend

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