diff options
| author | River Riddle <riverriddle@google.com> | 2019-10-30 11:18:51 -0700 |
|---|---|---|
| committer | A. Unique TensorFlower <gardener@tensorflow.org> | 2019-10-30 11:19:24 -0700 |
| commit | a32f0dcb5d963d2281bc08902468693ea2911342 (patch) | |
| tree | 76787dac7650f1ee5c102f4777f9b54d748c72b4 /mlir/test/Transforms | |
| parent | 0568e952b6d1dc53f44c8eb5af167fc9d2e0bb34 (diff) | |
| download | bcm5719-llvm-a32f0dcb5d963d2281bc08902468693ea2911342.tar.gz bcm5719-llvm-a32f0dcb5d963d2281bc08902468693ea2911342.zip | |
Add support to GreedyPatternRewriter for erasing unreachable blocks.
Rewrite patterns may make modifications to the CFG, including dropping edges between blocks. This change adds a simple unreachable block elimination run at the end of each iteration to ensure that the CFG remains valid.
PiperOrigin-RevId: 277545805
Diffstat (limited to 'mlir/test/Transforms')
| -rw-r--r-- | mlir/test/Transforms/canonicalize.mlir | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/mlir/test/Transforms/canonicalize.mlir b/mlir/test/Transforms/canonicalize.mlir index fc8e92ed582..3600cc23c56 100644 --- a/mlir/test/Transforms/canonicalize.mlir +++ b/mlir/test/Transforms/canonicalize.mlir @@ -323,6 +323,21 @@ func @dead_dealloc_fold_multi_use(%cond : i1) { return } +// CHECK-LABEL: func @dead_block_elim +func @dead_block_elim() { + // CHECK-NOT ^bb + func @nested() { + return + + ^bb1: + return + } + return + +^bb1: + return +} + // CHECK-LABEL: func @dyn_shape_fold(%arg0: index, %arg1: index) func @dyn_shape_fold(%L : index, %M : index) -> (memref<? x ? x i32>, memref<? x ? x f32>) { // CHECK: %c0 = constant 0 : index |

