MLIR  19.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 getPoint () const
 Return the program point 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 getPoint () const
 Return the program point 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 (ProgramPoint point)
 Create the analysis state at the given program point. More...
 
ProgramPoint getPoint () const
 Returns the program point this state is located at. More...
 
LLVM_DUMP_METHOD void dump () const
 
void addDependency (ProgramPoint dependent, DataFlowAnalysis *analysis)
 Add a dependency to this analysis state on a program point and an analysis. More...
 

Additional Inherited Members

- Public Types inherited from mlir::dataflow::Lattice< IntegerValueRange >
using LatticeT = Lattice< IntegerValueRange >
 
using has_meet = decltype(std::declval< 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
ProgramPoint point
 The program point 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 75 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: