MLIR  20.0.0git
Public Member Functions | List of all members
mlir::dataflow::IntegerValueRangeLattice Class Reference

This lattice element represents the integer value range of an SSA value. More...

#include "mlir/Analysis/DataFlow/IntegerRangeAnalysis.h"

+ Inheritance diagram for mlir::dataflow::IntegerValueRangeLattice:

Public Member Functions

void onUpdate (DataFlowSolver *solver) const override
 If the range can be narrowed to an integer constant, update the constant value of the SSA value. More...
 
- Public Member Functions inherited from mlir::dataflow::Lattice< IntegerValueRange >
Value getAnchor () const
 Return the value this lattice is located at. More...
 
IntegerValueRangegetValue ()
 Return the value held by this lattice. More...
 
const IntegerValueRangegetValue () const
 
ChangeResult join (const AbstractSparseLattice &rhs) override
 Join the information contained in the 'rhs' lattice into this lattice. More...
 
ChangeResult join (const IntegerValueRange &rhs)
 Join the information contained in the 'rhs' value into this lattice. More...
 
ChangeResult meet (const AbstractSparseLattice &rhs) override
 Meet (intersect) the information contained in the 'rhs' lattice with this lattice. More...
 
ChangeResult meet (const VT &rhs)
 Meet (intersect) the information contained in the 'rhs' value with this lattice. More...
 
ChangeResult meet (const VT &rhs)
 
void print (raw_ostream &os) const override
 Print the lattice element. More...
 
 AbstractSparseLattice (Value value)
 Lattices can only be created for values. More...
 
- Public Member Functions inherited from mlir::dataflow::AbstractSparseLattice
 AbstractSparseLattice (Value value)
 Lattices can only be created for values. More...
 
Value getAnchor () const
 Return the value this lattice is located at. More...
 
void onUpdate (DataFlowSolver *solver) const override
 When the lattice gets updated, propagate an update to users of the value using its use-def chain to subscribed analyses. More...
 
void useDefSubscribe (DataFlowAnalysis *analysis)
 Subscribe an analysis to updates of the lattice. More...
 
- Public Member Functions inherited from mlir::AnalysisState
virtual ~AnalysisState ()
 
 AnalysisState (LatticeAnchor anchor)
 Create the analysis state on the given lattice anchor. More...
 
LatticeAnchor getAnchor () const
 Returns the lattice anchor this state is located at. More...
 
LLVM_DUMP_METHOD void dump () const
 
void addDependency (ProgramPoint *point, DataFlowAnalysis *analysis)
 Add a dependency to this analysis state on a lattice anchor and an analysis. More...
 

Additional Inherited Members

- Public Types inherited from mlir::dataflow::Lattice< IntegerValueRange >
using LatticeT = Lattice< IntegerValueRange >
 
using has_meet = decltype(&T::meet)
 Trait to check if T provides a meet method. More...
 
using lattice_has_meet = llvm::is_detected< has_meet, T >
 
- Protected Attributes inherited from mlir::AnalysisState
LatticeAnchor anchor
 The lattice anchor to which the state belongs. More...
 

Detailed Description

This lattice element represents the integer value range of an SSA value.

When this lattice is updated, it automatically updates the constant value of the SSA value (if the range can be narrowed to one).

Definition at line 30 of file IntegerRangeAnalysis.h.

Member Function Documentation

◆ onUpdate()

void IntegerValueRangeLattice::onUpdate ( DataFlowSolver solver) const
overridevirtual

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