[Mlir-commits] [mlir] [mlir][dataflow] Fix DataFlowFramework crash by add isBlockEnd logic in the ProgramPoint::print (PR #173471)

Matthias Springer llvmlistbot at llvm.org
Thu Dec 25 10:26:10 PST 2025


================
@@ -67,8 +67,10 @@ void ProgramPoint::print(raw_ostream &os) const {
        << OpWithFlags(getPrevOp(), OpPrintingFlags().skipRegions());
     return;
   }
-  os << "<before operation>:"
-     << OpWithFlags(getNextOp(), OpPrintingFlags().skipRegions());
+  if (!isBlockEnd()) {
----------------
matthias-springer wrote:

A program point is basically a `Block::iterator`. There are two program points inside of the `scf.forall`: before the memref.load and after the memref.load. Both cases should be supported by the current implementation. Only case I can think of is "empty block", but that's not the case here. Am I missing something?

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


More information about the Mlir-commits mailing list