[flang-commits] [flang] [mlir] [mlir] [dataflow] unify semantics of program point (PR #110344)

Matthias Springer via flang-commits flang-commits at lists.llvm.org
Tue Dec 30 02:44:04 PST 2025


================
@@ -542,7 +554,8 @@ void AbstractSparseBackwardDataFlowAnalysis::visitRegionSuccessors(
     MutableArrayRef<OpOperand> opoperands = operandsToOpOperands(operands);
     ValueRange inputs = successor.getSuccessorInputs();
     for (auto [operand, input] : llvm::zip(opoperands, inputs)) {
-      meet(getLatticeElement(operand.get()), *getLatticeElementFor(op, input));
+      meet(getLatticeElement(operand.get()),
+           *getLatticeElementFor(getProgramPointAfter(op), input));
----------------
matthias-springer wrote:

@cxy-1993 I looked at this code today. Is this correct? `input` could be a block argument of a region. Is it correct to always use `getProgramPointAfter(op)` or should this distinguish between block argument / op result?

https://github.com/llvm/llvm-project/pull/110344


More information about the flang-commits mailing list