[Mlir-commits] [mlir] [mlir][dataflow] Drop the firstIndex argument of old visitNonControlFlowArguments, add new visitNonControlFlowArguments API and use it in IntegerRangeAnalysis (PR #175210)
lonely eagle
llvmlistbot at llvm.org
Sat Jan 24 05:57:51 PST 2026
================
@@ -325,16 +332,21 @@ class SparseForwardDataFlowAnalysis
/// operands, and a region successor, compute the lattice values for block
/// arguments that are not accounted for by the branching control flow (ex.
/// the bounds of loops). By default, this method marks all such lattice
- /// elements as having reached a pessimistic fixpoint. `firstIndex` is the
- /// index of the first element of `argLattices` that is set by control-flow.
+ /// elements as having reached a pessimistic fixpoint.
virtual void visitNonControlFlowArguments(Operation *op,
const RegionSuccessor &successor,
ValueRange successorInputs,
- ArrayRef<StateT *> argLattices,
- unsigned firstIndex) {
- setAllToEntryStates(argLattices.take_front(firstIndex));
- setAllToEntryStates(
- argLattices.drop_front(firstIndex + successorInputs.size()));
+ ArrayRef<StateT *> argLattices) {
+ setAllToEntryStates(argLattices);
----------------
linuxlonelyeagle wrote:
You can see
```
SmallVector<Value> nonSuccessorInputs =
branch.getNonSuccessorInputs(RegionSuccessor::parent());
SmallVector<AbstractSparseLattice *> nonSuccessorInputLattices =
llvm::map_to_vector(nonSuccessorInputs, valueToLattices);
visitNonControlFlowArgumentsImpl(branch, RegionSuccessor::parent(),
nonSuccessorInputs,
nonSuccessorInputLattices);
```
In this case, all of our argLattices are the lattices corresponding to the noSuccessorInputs.
https://github.com/llvm/llvm-project/pull/175210
More information about the Mlir-commits
mailing list