15#ifndef MLIR_ANALYSIS_DATAFLOW_INTEGERDIVISIBILITYANALYSIS_H
16#define MLIR_ANALYSIS_DATAFLOW_INTEGERDIVISIBILITYANALYSIS_H
26 using Lattice::Lattice;
Operation is the basic unit of execution within MLIR.
This class represents a successor of a region.
This class provides an abstraction over the different types of ranges over Values.
Integer divisibility analysis determines, for each integer-typed SSA value, a divisor that the value ...
void visitNonControlFlowArguments(Operation *op, const RegionSuccessor &successor, ValueRange successorInputs, ArrayRef< IntegerDivisibilityLattice * > argLattices) override
Visit block arguments or operation results of an operation with region control-flow for which values ...
void setToEntryState(IntegerDivisibilityLattice *lattice) override
At an entry point, set the lattice to the most pessimistic state, indicating that no further reasonin...
LogicalResult visitOperation(Operation *op, ArrayRef< const IntegerDivisibilityLattice * > operands, ArrayRef< IntegerDivisibilityLattice * > results) override
Visit an operation, invoking the transfer function.
SparseForwardDataFlowAnalysis(DataFlowSolver &solver)
This lattice element represents the integer divisibility of an SSA value.
This class represents a lattice holding a specific value of type ValueT.
SparseForwardDataFlowAnalysis(DataFlowSolver &solver)