[Mlir-commits] [mlir] [mlir][dataflow] Improve DataFlowFramework debug output (PR #176632)
lonely eagle
llvmlistbot at llvm.org
Mon Jan 19 02:50:05 PST 2026
linuxlonelyeagle wrote:
> Looks like a useful debugging feature. Can you show the before/after debug output in the commit message?
after change
```
[dataflow DataFlowFramework.cpp:146 1] Priming analysis: mlir::dataflow::DeadCodeAnalysis
[dead-code-analysis DeadCodeAnalysis.cpp:139 1] Initializing DeadCodeAnalysis for top-level op: module {...}
[dataflow DataFlowFramework.cpp:174 1] Propagating update to mlir::dataflow::Executable of <before operation>:func.func @test_forall_op_control_flow(%arg0: index) {...}
[dataflow DataFlowFramework.cpp:174 1] Value: live
[dead-code-analysis DeadCodeAnalysis.cpp:148 1] Marked entry block live for region in op: module {...}
[dead-code-analysis DeadCodeAnalysis.cpp:160 1] [init] Entering initializeSymbolCallables for top-level op: module {...}
[dead-code-analysis DeadCodeAnalysis.cpp:165 1] [init] Processing symbol table op: module {...}
[dead-code-analysis DeadCodeAnalysis.cpp:172 1] [init] Found CallableOpInterface: func.func @test_forall_op_control_flow(%arg0: index) {...}
[dataflow DataFlowFramework.cpp:174 1] Propagating update to mlir::dataflow::PredecessorState of <after operation>:func.func @test_forall_op_control_flow(%arg0: index) {...}
[dataflow DataFlowFramework.cpp:174 1] Value: predecessors: (none)
[dead-code-analysis DeadCodeAnalysis.cpp:188 1] [init] Marked callable as having unknown predecessors: func.func @test_forall_op_control_flow(%arg0: index) {...}
[dead-code-analysis DeadCodeAnalysis.cpp:235 1] [init] Finished initializeSymbolCallables for top-level op: module {...}
[dead-code-analysis DeadCodeAnalysis.cpp:248 1] [init] Entering initializeRecursively for op: module {...}
[dead-code-analysis DeadCodeAnalysis.cpp:253 1] [init] Visiting op with control-flow semantics: module {...}
[dead-code-analysis DeadCodeAnalysis.cpp:315 1] Visiting program point: <after operation>:module {...}
[dead-code-analysis DeadCodeAnalysis.cpp:319 1] Visiting operation: module {...}
[dead-code-analysis DeadCodeAnalysis.cpp:361 1] Marking all entry blocks live for op: module {...}
[dead-code-analysis DeadCodeAnalysis.cpp:301 1] Marking entry blocks live for op: module {...}
[dead-code-analysis DeadCodeAnalysis.cpp:309 1] Marked entry block live for region in op: module {...}
[dead-code-analysis DeadCodeAnalysis.cpp:276 1] [init] Recursing into region of op: module {...}
[dead-code-analysis DeadCodeAnalysis.cpp:279 1] [init] Recursing into nested op: func.func @test_forall_op_control_flow(%arg0: index) {...}
[dead-code-analysis DeadCodeAnalysis.cpp:248 1] [init] Entering initializeRecursively for op: func.func @test_forall_op_control_flow(%arg0: index) {...}
[dead-code-analysis DeadCodeAnalysis.cpp:253 1] [init] Visiting op with control-flow semantics: func.func @test_forall_op_control_flow(%arg0: index) {...}
[dead-code-analysis DeadCodeAnalysis.cpp:315 1] Visiting program point: <after operation>:func.func @test_forall_op_control_flow(%arg0: index) {...}
[dead-code-analysis DeadCodeAnalysis.cpp:319 1] Visiting operation: func.func @test_forall_op_control_flow(%arg0: index) {...}
[dead-code-analysis DeadCodeAnalysis.cpp:348 1] Visiting callable operation: func.func @test_forall_op_control_flow(%arg0: index) {...}
[dataflow DataFlowFramework.cpp:48 1] Creating dependency between mlir::dataflow::PredecessorState of <after operation>:func.func @test_forall_op_control_flow(%arg0: index) {...}
[dataflow DataFlowFramework.cpp:48 1] and mlir::dataflow::PredecessorState on <after operation>:func.func @test_forall_op_control_flow(%arg0: index) {...}
[dataflow DataFlowFramework.cpp:48 1] with mlir::dataflow::DeadCodeAnalysis
[dead-code-analysis DeadCodeAnalysis.cpp:301 1] Marking entry blocks live for op: func.func @test_forall_op_control_flow(%arg0: index) {...}
[dataflow DataFlowFramework.cpp:174 1] Propagating update to mlir::dataflow::Executable of <before operation>:scf.forall (%arg1) in (%arg0) {...} {tag = "test_forall_op_control_flow"}
[dataflow DataFlowFramework.cpp:174 1] Value: live
[dead-code-analysis DeadCodeAnalysis.cpp:309 1] Marked entry block live for region in op: func.func @test_forall_op_control_flow(%arg0: index) {...}
[dead-code-analysis DeadCodeAnalysis.cpp:276 1] [init] Recursing into region of op: func.func @test_forall_op_control_flow(%arg0: index) {...}
[dead-code-analysis DeadCodeAnalysis.cpp:279 1] [init] Recursing into nested op: scf.forall (%arg1) in (%arg0) {...} {tag = "test_forall_op_control_flow"}
[dead-code-analysis DeadCodeAnalysis.cpp:248 1] [init] Entering initializeRecursively for op: scf.forall (%arg1) in (%arg0) {...} {tag = "test_forall_op_control_flow"}
[dead-code-analysis DeadCodeAnalysis.cpp:253 1] [init] Visiting op with control-flow semantics: scf.forall (%arg1) in (%arg0) {...} {tag = "test_forall_op_control_flow"}
[dead-code-analysis DeadCodeAnalysis.cpp:315 1] Visiting program point: <after operation>:scf.forall (%arg1) in (%arg0) {...} {tag = "test_forall_op_control_flow"}
[dead-code-analysis DeadCodeAnalysis.cpp:319 1] Visiting operation: scf.forall (%arg1) in (%arg0) {...} {tag = "test_forall_op_control_flow"}
[dead-code-analysis DeadCodeAnalysis.cpp:342 1] Visiting region branch operation: scf.forall (%arg1) in (%arg0) {...} {tag = "test_forall_op_control_flow"}
[dead-code-analysis DeadCodeAnalysis.cpp:483 1] visitRegionBranchOperation: scf.forall (%arg1) in (%arg0) {...} {tag = "test_forall_op_control_flow"}
[dataflow SparseAnalysis.cpp:53 1] mlir::dataflow::Lattice<mlir::dataflow::ConstantValue> of <block argument> of type 'index' at index: 0
[dataflow SparseAnalysis.cpp:53 1] Value: <UNINITIALIZED>
[dataflow SparseAnalysis.cpp:53 1] subscribing analysis: mlir::dataflow::DeadCodeAnalysis
[dead-code-analysis DeadCodeAnalysis.cpp:276 1] [init] Recursing into region of op: scf.forall (%arg1) in (%arg0) {...} {tag = "test_forall_op_control_flow"}
[dead-code-analysis DeadCodeAnalysis.cpp:279 1] [init] Recursing into nested op: scf.forall.in_parallel {...}
[dead-code-analysis DeadCodeAnalysis.cpp:248 1] [init] Entering initializeRecursively for op: scf.forall.in_parallel {...}
[dead-code-analysis DeadCodeAnalysis.cpp:253 1] [init] Visiting op with control-flow semantics: scf.forall.in_parallel {...}
[dead-code-analysis DeadCodeAnalysis.cpp:315 1] Visiting program point: <after operation>:scf.forall.in_parallel {...}
[dead-code-analysis DeadCodeAnalysis.cpp:319 1] Visiting operation: scf.forall.in_parallel {...}
[dead-code-analysis DeadCodeAnalysis.cpp:326 1] Parent block not live, skipping op: scf.forall.in_parallel {...}
[dead-code-analysis DeadCodeAnalysis.cpp:276 1] [init] Recursing into region of op: scf.forall.in_parallel {...}
[dead-code-analysis DeadCodeAnalysis.cpp:286 1] [init] Finished initializeRecursively for op: scf.forall.in_parallel {...}
[dead-code-analysis DeadCodeAnalysis.cpp:286 1] [init] Finished initializeRecursively for op: scf.forall (%arg1) in (%arg0) {...} {tag = "test_forall_op_control_flow"}
[dead-code-analysis DeadCodeAnalysis.cpp:279 1] [init] Recursing into nested op: func.return
[dead-code-analysis DeadCodeAnalysis.cpp:248 1] [init] Entering initializeRecursively for op: func.return
[dead-code-analysis DeadCodeAnalysis.cpp:253 1] [init] Visiting op with control-flow semantics: func.return
[dead-code-analysis DeadCodeAnalysis.cpp:315 1] Visiting program point: <after operation>:func.return
[dead-code-analysis DeadCodeAnalysis.cpp:319 1] Visiting operation: func.return
[dead-code-analysis DeadCodeAnalysis.cpp:375 1] Visiting callable terminator: func.return
[dead-code-analysis DeadCodeAnalysis.cpp:538 1] visitCallableTerminator: func.return
[dataflow DataFlowFramework.cpp:48 1] Creating dependency between mlir::dataflow::PredecessorState of <after operation>:func.func @test_forall_op_control_flow(%arg0: index) {...}
[dataflow DataFlowFramework.cpp:48 1] and mlir::dataflow::PredecessorState on <after operation>:func.return
[dataflow DataFlowFramework.cpp:48 1] with mlir::dataflow::DeadCodeAnalysis
[dead-code-analysis DeadCodeAnalysis.cpp:286 1] [init] Finished initializeRecursively for op: func.return
[dead-code-analysis DeadCodeAnalysis.cpp:286 1] [init] Finished initializeRecursively for op: func.func @test_forall_op_control_flow(%arg0: index) {...}
[dead-code-analysis DeadCodeAnalysis.cpp:286 1] [init] Finished initializeRecursively for op: module {...}
[dataflow DataFlowFramework.cpp:146 1] Priming analysis: {anonymous}::ConstantAnalysis
[dataflow DataFlowFramework.cpp:174 1] Propagating update to mlir::dataflow::Lattice<mlir::dataflow::ConstantValue> of <block argument> of type 'index' at index: 0
[dataflow DataFlowFramework.cpp:174 1] Value: <UNKNOWN>
[dataflow DataFlowFramework.cpp:174 1] Propagating update to mlir::dataflow::Lattice<mlir::dataflow::ConstantValue> of <block argument> of type 'index' at index: 0
[dataflow DataFlowFramework.cpp:174 1] Value: <UNKNOWN>
[dataflow SparseAnalysis.cpp:41 1] mlir::dataflow::Lattice<mlir::dataflow::ConstantValue> of <block argument> of type 'index' at index: 0
[dataflow SparseAnalysis.cpp:41 1] Value: <UNKNOWN>
[dataflow SparseAnalysis.cpp:41 1] enqueuing user dependent work item: <after operation>:scf.forall (%arg1) in (%arg0) {...} {tag = "test_forall_op_control_flow"}
[dataflow SparseAnalysis.cpp:41 1] with mlir::dataflow::DeadCodeAnalysis
[dataflow DataFlowFramework.cpp:154 1] Initialize child analyses successfully, start run the analysis until fixpoint
[dataflow DataFlowFramework.cpp:160 1] Invoking 'mlir::dataflow::DeadCodeAnalysis' on: <after operation>:scf.forall (%arg1) in (%arg0) {...} {tag = "test_forall_op_control_flow"}
[dead-code-analysis DeadCodeAnalysis.cpp:315 1] Visiting program point: <after operation>:scf.forall (%arg1) in (%arg0) {...} {tag = "test_forall_op_control_flow"}
[dead-code-analysis DeadCodeAnalysis.cpp:319 1] Visiting operation: scf.forall (%arg1) in (%arg0) {...} {tag = "test_forall_op_control_flow"}
[dead-code-analysis DeadCodeAnalysis.cpp:342 1] Visiting region branch operation: scf.forall (%arg1) in (%arg0) {...} {tag = "test_forall_op_control_flow"}
[dead-code-analysis DeadCodeAnalysis.cpp:483 1] visitRegionBranchOperation: scf.forall (%arg1) in (%arg0) {...} {tag = "test_forall_op_control_flow"}
[dataflow DataFlowFramework.cpp:174 1] Propagating update to mlir::dataflow::Executable of <before operation>:scf.forall.in_parallel {...}
[dataflow DataFlowFramework.cpp:174 1] Value: live
[dead-code-analysis DeadCodeAnalysis.cpp:524 1] Marked region successor live: <before operation>:scf.forall.in_parallel {...}
[dataflow DataFlowFramework.cpp:174 1] Propagating update to mlir::dataflow::PredecessorState of <before operation>:scf.forall.in_parallel {...}
[dataflow DataFlowFramework.cpp:174 1] Value: (all) predecessors:
[dataflow DataFlowFramework.cpp:174 1] scf.forall (%arg1) in (%arg0) {...} {tag = "test_forall_op_control_flow"}
[dead-code-analysis DeadCodeAnalysis.cpp:532 1] Added region branch as predecessor for successor: <before operation>:scf.forall.in_parallel {...}
[dataflow DataFlowFramework.cpp:174 1] Propagating update to mlir::dataflow::Executable of <after operation>:scf.forall (%arg1) in (%arg0) {...} {tag = "test_forall_op_control_flow"}
[dataflow DataFlowFramework.cpp:174 1] Value: live
[dead-code-analysis DeadCodeAnalysis.cpp:524 1] Marked region successor live: <after operation>:scf.forall (%arg1) in (%arg0) {...} {tag = "test_forall_op_control_flow"}
[dataflow DataFlowFramework.cpp:174 1] Propagating update to mlir::dataflow::PredecessorState of <after operation>:scf.forall (%arg1) in (%arg0) {...} {tag = "test_forall_op_control_flow"}
[dataflow DataFlowFramework.cpp:174 1] Value: (all) predecessors:
[dataflow DataFlowFramework.cpp:174 1] scf.forall (%arg1) in (%arg0) {...} {tag = "test_forall_op_control_flow"}
[dead-code-analysis DeadCodeAnalysis.cpp:532 1] Added region branch as predecessor for successor: <after operation>:scf.forall (%arg1) in (%arg0) {...} {tag = "test_forall_op_control_flow"}
[dataflow DataFlowFramework.cpp:160 1] Invoking 'mlir::dataflow::DeadCodeAnalysis' on: <before operation>:scf.forall.in_parallel {...}
[dead-code-analysis DeadCodeAnalysis.cpp:315 1] Visiting program point: <before operation>:scf.forall.in_parallel {...}
[dataflow DataFlowFramework.cpp:160 1] Invoking 'mlir::dataflow::DeadCodeAnalysis' on: <after operation>:scf.forall.in_parallel {...}
[dead-code-analysis DeadCodeAnalysis.cpp:315 1] Visiting program point: <after operation>:scf.forall.in_parallel {...}
[dead-code-analysis DeadCodeAnalysis.cpp:319 1] Visiting operation: scf.forall.in_parallel {...}
[dead-code-analysis DeadCodeAnalysis.cpp:361 1] Marking all entry blocks live for op: scf.forall.in_parallel {...}
[dead-code-analysis DeadCodeAnalysis.cpp:301 1] Marking entry blocks live for op: scf.forall.in_parallel {...}
[dataflow DataFlowFramework.cpp:174 1] Propagating update to mlir::dataflow::Executable of <beginning of empty block>
[dataflow DataFlowFramework.cpp:174 1] Value: live
[dead-code-analysis DeadCodeAnalysis.cpp:309 1] Marked entry block live for region in op: scf.forall.in_parallel {...}
[dead-code-analysis DeadCodeAnalysis.cpp:369 1] Visiting region terminator: scf.forall.in_parallel {...}
[dead-code-analysis DeadCodeAnalysis.cpp:498 1] visitRegionTerminator: scf.forall.in_parallel {
[dead-code-analysis DeadCodeAnalysis.cpp:498 1] }
[dead-code-analysis DeadCodeAnalysis.cpp:524 1] Marked region successor live: <after operation>:scf.forall (%arg1) in (%arg0) {...} {tag = "test_forall_op_control_flow"}
[dataflow DataFlowFramework.cpp:174 1] Propagating update to mlir::dataflow::PredecessorState of <after operation>:scf.forall (%arg1) in (%arg0) {...} {tag = "test_forall_op_control_flow"}
[dataflow DataFlowFramework.cpp:174 1] Value: (all) predecessors:
[dataflow DataFlowFramework.cpp:174 1] scf.forall (%arg1) in (%arg0) {...} {tag = "test_forall_op_control_flow"}
[dataflow DataFlowFramework.cpp:174 1] scf.forall.in_parallel {...}
[dead-code-analysis DeadCodeAnalysis.cpp:532 1] Added region branch as predecessor for successor: <after operation>:scf.forall (%arg1) in (%arg0) {...} {tag = "test_forall_op_control_flow"}
```
before change
```
dataflow DataFlowFramework.cpp:130 1] Priming analysis: mlir::dataflow::DeadCodeAnalysis
[dead-code-analysis DeadCodeAnalysis.cpp:139 1] Initializing DeadCodeAnalysis for top-level op: module {...}
[dataflow DataFlowFramework.cpp:156 1] Propagating update to mlir::dataflow::Executable of <before operation>:func.func @test_forall_op_control_flow(%arg0: index) {...}
[dataflow DataFlowFramework.cpp:156 1] Value: live
[dead-code-analysis DeadCodeAnalysis.cpp:148 1] Marked entry block live for region in op: module {...}
[dead-code-analysis DeadCodeAnalysis.cpp:160 1] [init] Entering initializeSymbolCallables for top-level op: module {...}
[dead-code-analysis DeadCodeAnalysis.cpp:165 1] [init] Processing symbol table op: module {...}
[dead-code-analysis DeadCodeAnalysis.cpp:172 1] [init] Found CallableOpInterface: func.func @test_forall_op_control_flow(%arg0: index) {...}
[dataflow DataFlowFramework.cpp:156 1] Propagating update to mlir::dataflow::PredecessorState of <after operation>:func.func @test_forall_op_control_flow(%arg0: index) {...}
[dataflow DataFlowFramework.cpp:156 1] Value: predecessors: (none)
[dead-code-analysis DeadCodeAnalysis.cpp:188 1] [init] Marked callable as having unknown predecessors: func.func @test_forall_op_control_flow(%arg0: index) {...}
[dead-code-analysis DeadCodeAnalysis.cpp:235 1] [init] Finished initializeSymbolCallables for top-level op: module {...}
[dead-code-analysis DeadCodeAnalysis.cpp:248 1] [init] Entering initializeRecursively for op: module {...}
[dead-code-analysis DeadCodeAnalysis.cpp:253 1] [init] Visiting op with control-flow semantics: module {...}
[dead-code-analysis DeadCodeAnalysis.cpp:315 1] Visiting program point: <after operation>:module {...}
[dead-code-analysis DeadCodeAnalysis.cpp:319 1] Visiting operation: module {...}
[dead-code-analysis DeadCodeAnalysis.cpp:361 1] Marking all entry blocks live for op: module {...}
[dead-code-analysis DeadCodeAnalysis.cpp:301 1] Marking entry blocks live for op: module {...}
[dead-code-analysis DeadCodeAnalysis.cpp:309 1] Marked entry block live for region in op: module {...}
[dead-code-analysis DeadCodeAnalysis.cpp:276 1] [init] Recursing into region of op: module {...}
[dead-code-analysis DeadCodeAnalysis.cpp:279 1] [init] Recursing into nested op: func.func @test_forall_op_control_flow(%arg0: index) {...}
[dead-code-analysis DeadCodeAnalysis.cpp:248 1] [init] Entering initializeRecursively for op: func.func @test_forall_op_control_flow(%arg0: index) {...}
[dead-code-analysis DeadCodeAnalysis.cpp:253 1] [init] Visiting op with control-flow semantics: func.func @test_forall_op_control_flow(%arg0: index) {...}
[dead-code-analysis DeadCodeAnalysis.cpp:315 1] Visiting program point: <after operation>:func.func @test_forall_op_control_flow(%arg0: index) {...}
[dead-code-analysis DeadCodeAnalysis.cpp:319 1] Visiting operation: func.func @test_forall_op_control_flow(%arg0: index) {...}
[dead-code-analysis DeadCodeAnalysis.cpp:348 1] Visiting callable operation: func.func @test_forall_op_control_flow(%arg0: index) {...}
[dataflow DataFlowFramework.cpp:48 1] Creating dependency between mlir::dataflow::PredecessorState of <after operation>:func.func @test_forall_op_control_flow(%arg0: index) {...}
[dataflow DataFlowFramework.cpp:48 1] and mlir::dataflow::PredecessorState on <after operation>:func.func @test_forall_op_control_flow(%arg0: index) {...}
[dead-code-analysis DeadCodeAnalysis.cpp:301 1] Marking entry blocks live for op: func.func @test_forall_op_control_flow(%arg0: index) {...}
[dataflow DataFlowFramework.cpp:156 1] Propagating update to mlir::dataflow::Executable of <before operation>:scf.forall (%arg1) in (%arg0) {...} {tag = "test_forall_op_control_flow"}
[dataflow DataFlowFramework.cpp:156 1] Value: live
[dead-code-analysis DeadCodeAnalysis.cpp:309 1] Marked entry block live for region in op: func.func @test_forall_op_control_flow(%arg0: index) {...}
[dead-code-analysis DeadCodeAnalysis.cpp:276 1] [init] Recursing into region of op: func.func @test_forall_op_control_flow(%arg0: index) {...}
[dead-code-analysis DeadCodeAnalysis.cpp:279 1] [init] Recursing into nested op: scf.forall (%arg1) in (%arg0) {...} {tag = "test_forall_op_control_flow"}
[dead-code-analysis DeadCodeAnalysis.cpp:248 1] [init] Entering initializeRecursively for op: scf.forall (%arg1) in (%arg0) {...} {tag = "test_forall_op_control_flow"}
[dead-code-analysis DeadCodeAnalysis.cpp:253 1] [init] Visiting op with control-flow semantics: scf.forall (%arg1) in (%arg0) {...} {tag = "test_forall_op_control_flow"}
[dead-code-analysis DeadCodeAnalysis.cpp:315 1] Visiting program point: <after operation>:scf.forall (%arg1) in (%arg0) {...} {tag = "test_forall_op_control_flow"}
[dead-code-analysis DeadCodeAnalysis.cpp:319 1] Visiting operation: scf.forall (%arg1) in (%arg0) {...} {tag = "test_forall_op_control_flow"}
[dead-code-analysis DeadCodeAnalysis.cpp:342 1] Visiting region branch operation: scf.forall (%arg1) in (%arg0) {...} {tag = "test_forall_op_control_flow"}
[dead-code-analysis DeadCodeAnalysis.cpp:483 1] visitRegionBranchOperation: scf.forall (%arg1) in (%arg0) {...} {tag = "test_forall_op_control_flow"}
[dead-code-analysis DeadCodeAnalysis.cpp:276 1] [init] Recursing into region of op: scf.forall (%arg1) in (%arg0) {...} {tag = "test_forall_op_control_flow"}
[dead-code-analysis DeadCodeAnalysis.cpp:279 1] [init] Recursing into nested op: scf.forall.in_parallel {...}
[dead-code-analysis DeadCodeAnalysis.cpp:248 1] [init] Entering initializeRecursively for op: scf.forall.in_parallel {...}
[dead-code-analysis DeadCodeAnalysis.cpp:253 1] [init] Visiting op with control-flow semantics: scf.forall.in_parallel {...}
[dead-code-analysis DeadCodeAnalysis.cpp:315 1] Visiting program point: <after operation>:scf.forall.in_parallel {...}
[dead-code-analysis DeadCodeAnalysis.cpp:319 1] Visiting operation: scf.forall.in_parallel {...}
[dead-code-analysis DeadCodeAnalysis.cpp:326 1] Parent block not live, skipping op: scf.forall.in_parallel {...}
[dead-code-analysis DeadCodeAnalysis.cpp:276 1] [init] Recursing into region of op: scf.forall.in_parallel {...}
[dead-code-analysis DeadCodeAnalysis.cpp:286 1] [init] Finished initializeRecursively for op: scf.forall.in_parallel {...}
[dead-code-analysis DeadCodeAnalysis.cpp:286 1] [init] Finished initializeRecursively for op: scf.forall (%arg1) in (%arg0) {...} {tag = "test_forall_op_control_flow"}
[dead-code-analysis DeadCodeAnalysis.cpp:279 1] [init] Recursing into nested op: func.return
[dead-code-analysis DeadCodeAnalysis.cpp:248 1] [init] Entering initializeRecursively for op: func.return
[dead-code-analysis DeadCodeAnalysis.cpp:253 1] [init] Visiting op with control-flow semantics: func.return
[dead-code-analysis DeadCodeAnalysis.cpp:315 1] Visiting program point: <after operation>:func.return
[dead-code-analysis DeadCodeAnalysis.cpp:319 1] Visiting operation: func.return
[dead-code-analysis DeadCodeAnalysis.cpp:375 1] Visiting callable terminator: func.return
[dead-code-analysis DeadCodeAnalysis.cpp:538 1] visitCallableTerminator: func.return
[dataflow DataFlowFramework.cpp:48 1] Creating dependency between mlir::dataflow::PredecessorState of <after operation>:func.func @test_forall_op_control_flow(%arg0: index) {...}
[dataflow DataFlowFramework.cpp:48 1] and mlir::dataflow::PredecessorState on <after operation>:func.return
[dead-code-analysis DeadCodeAnalysis.cpp:286 1] [init] Finished initializeRecursively for op: func.return
[dead-code-analysis DeadCodeAnalysis.cpp:286 1] [init] Finished initializeRecursively for op: func.func @test_forall_op_control_flow(%arg0: index) {...}
[dead-code-analysis DeadCodeAnalysis.cpp:286 1] [init] Finished initializeRecursively for op: module {...}
[dataflow DataFlowFramework.cpp:130 1] Priming analysis: {anonymous}::ConstantAnalysis
[dataflow DataFlowFramework.cpp:156 1] Propagating update to mlir::dataflow::Lattice<mlir::dataflow::ConstantValue> of <block argument> of type 'index' at index: 0
[dataflow DataFlowFramework.cpp:156 1] Value: <UNKNOWN>
[dataflow DataFlowFramework.cpp:156 1] Propagating update to mlir::dataflow::Lattice<mlir::dataflow::ConstantValue> of <block argument> of type 'index' at index: 0
[dataflow DataFlowFramework.cpp:156 1] Value: <UNKNOWN>
[dataflow DataFlowFramework.cpp:142 1] Invoking 'mlir::dataflow::DeadCodeAnalysis' on: <after operation>:scf.forall (%arg1) in (%arg0) {...} {tag = "test_forall_op_control_flow"}
[dead-code-analysis DeadCodeAnalysis.cpp:315 1] Visiting program point: <after operation>:scf.forall (%arg1) in (%arg0) {...} {tag = "test_forall_op_control_flow"}
[dead-code-analysis DeadCodeAnalysis.cpp:319 1] Visiting operation: scf.forall (%arg1) in (%arg0) {...} {tag = "test_forall_op_control_flow"}
[dead-code-analysis DeadCodeAnalysis.cpp:342 1] Visiting region branch operation: scf.forall (%arg1) in (%arg0) {...} {tag = "test_forall_op_control_flow"}
[dead-code-analysis DeadCodeAnalysis.cpp:483 1] visitRegionBranchOperation: scf.forall (%arg1) in (%arg0) {...} {tag = "test_forall_op_control_flow"}
[dataflow DataFlowFramework.cpp:156 1] Propagating update to mlir::dataflow::Executable of <before operation>:scf.forall.in_parallel {...}
[dataflow DataFlowFramework.cpp:156 1] Value: live
[dead-code-analysis DeadCodeAnalysis.cpp:524 1] Marked region successor live: <before operation>:scf.forall.in_parallel {...}
[dataflow DataFlowFramework.cpp:156 1] Propagating update to mlir::dataflow::PredecessorState of <before operation>:scf.forall.in_parallel {...}
[dataflow DataFlowFramework.cpp:156 1] Value: (all) predecessors:
[dataflow DataFlowFramework.cpp:156 1] scf.forall (%arg1) in (%arg0) {...} {tag = "test_forall_op_control_flow"}
[dead-code-analysis DeadCodeAnalysis.cpp:532 1] Added region branch as predecessor for successor: <before operation>:scf.forall.in_parallel {...}
[dataflow DataFlowFramework.cpp:156 1] Propagating update to mlir::dataflow::Executable of <after operation>:scf.forall (%arg1) in (%arg0) {...} {tag = "test_forall_op_control_flow"}
[dataflow DataFlowFramework.cpp:156 1] Value: live
[dead-code-analysis DeadCodeAnalysis.cpp:524 1] Marked region successor live: <after operation>:scf.forall (%arg1) in (%arg0) {...} {tag = "test_forall_op_control_flow"}
[dataflow DataFlowFramework.cpp:156 1] Propagating update to mlir::dataflow::PredecessorState of <after operation>:scf.forall (%arg1) in (%arg0) {...} {tag = "test_forall_op_control_flow"}
[dataflow DataFlowFramework.cpp:156 1] Value: (all) predecessors:
[dataflow DataFlowFramework.cpp:156 1] scf.forall (%arg1) in (%arg0) {...} {tag = "test_forall_op_control_flow"}
[dead-code-analysis DeadCodeAnalysis.cpp:532 1] Added region branch as predecessor for successor: <after operation>:scf.forall (%arg1) in (%arg0) {...} {tag = "test_forall_op_control_flow"}
[dataflow DataFlowFramework.cpp:142 1] Invoking 'mlir::dataflow::DeadCodeAnalysis' on: <before operation>:scf.forall.in_parallel {...}
[dead-code-analysis DeadCodeAnalysis.cpp:315 1] Visiting program point: <before operation>:scf.forall.in_parallel {...}
[dataflow DataFlowFramework.cpp:142 1] Invoking 'mlir::dataflow::DeadCodeAnalysis' on: <after operation>:scf.forall.in_parallel {...}
[dead-code-analysis DeadCodeAnalysis.cpp:315 1] Visiting program point: <after operation>:scf.forall.in_parallel {...}
[dead-code-analysis DeadCodeAnalysis.cpp:319 1] Visiting operation: scf.forall.in_parallel {...}
[dead-code-analysis DeadCodeAnalysis.cpp:361 1] Marking all entry blocks live for op: scf.forall.in_parallel {...}
[dead-code-analysis DeadCodeAnalysis.cpp:301 1] Marking entry blocks live for op: scf.forall.in_parallel {...}
[dataflow DataFlowFramework.cpp:156 1] Propagating update to mlir::dataflow::Executable of <beginning of empty block>
[dataflow DataFlowFramework.cpp:156 1] Value: live
[dead-code-analysis DeadCodeAnalysis.cpp:309 1] Marked entry block live for region in op: scf.forall.in_parallel {...}
[dead-code-analysis DeadCodeAnalysis.cpp:369 1] Visiting region terminator: scf.forall.in_parallel {...}
[dead-code-analysis DeadCodeAnalysis.cpp:498 1] visitRegionTerminator: scf.forall.in_parallel {
[dead-code-analysis DeadCodeAnalysis.cpp:498 1] }
[dead-code-analysis DeadCodeAnalysis.cpp:524 1] Marked region successor live: <after operation>:scf.forall (%arg1) in (%arg0) {...} {tag = "test_forall_op_control_flow"}
[dataflow DataFlowFramework.cpp:156 1] Propagating update to mlir::dataflow::PredecessorState of <after operation>:scf.forall (%arg1) in (%arg0) {...} {tag = "test_forall_op_control_flow"}
[dataflow DataFlowFramework.cpp:156 1] Value: (all) predecessors:
[dataflow DataFlowFramework.cpp:156 1] scf.forall (%arg1) in (%arg0) {...} {tag = "test_forall_op_control_flow"}
[dataflow DataFlowFramework.cpp:156 1] scf.forall.in_parallel {...}
[dead-code-analysis DeadCodeAnalysis.cpp:532 1] Added region branch as predecessor for successor: <after operation>:scf.forall (%arg1) in (%arg0) {...} {tag = "test_forall_op_control_flow"}
```
https://github.com/llvm/llvm-project/pull/176632
More information about the Mlir-commits
mailing list