1// Test filtering by "before" 2// RUN: rm -rf %t || true 3// RUN: mlir-opt %s -mlir-print-ir-tree-dir=%t \ 4// RUN: -pass-pipeline='builtin.module(builtin.module(func.func(cse,canonicalize)))' \ 5// RUN: -mlir-print-ir-before=cse 6// RUN: test -f %t/builtin_module_outer/builtin_module_inner/func_func_symB/0_0_0_cse.mlir 7// RUN: test ! -f %t/builtin_module_outer/builtin_module_inner/func_func_symB/0_0_1_canonicalize.mlir 8// RUN: test -f %t/builtin_module_outer/builtin_module_inner/func_func_symC/0_0_0_cse.mlir 9// RUN: test ! -f %t/builtin_module_outer/builtin_module_inner/func_func_symC/0_0_1_canonicalize.mlir 10 11// Test printing after all and the counter mechanism. 12// RUN: rm -rf %t || true 13// RUN: mlir-opt %s -mlir-print-ir-tree-dir=%t \ 14// RUN: -pass-pipeline='builtin.module(canonicalize,canonicalize,func.func(cse),builtin.module(canonicalize,func.func(cse,canonicalize),cse),cse)' \ 15// RUN: -mlir-print-ir-after-all 16// RUN: test -f %t/builtin_module_outer/0_canonicalize.mlir 17// RUN: test -f %t/builtin_module_outer/1_canonicalize.mlir 18// RUN: test -f %t/builtin_module_outer/func_func_symA/1_0_cse.mlir 19// RUN: test -f %t/builtin_module_outer/builtin_module_inner/1_0_canonicalize.mlir 20// RUN: test -f %t/builtin_module_outer/builtin_module_inner/func_func_symB/1_0_0_cse.mlir 21// RUN: test -f %t/builtin_module_outer/builtin_module_inner/func_func_symB/1_0_1_canonicalize.mlir 22// RUN: test -f %t/builtin_module_outer/builtin_module_inner/func_func_symC/1_0_0_cse.mlir 23// RUN: test -f %t/builtin_module_outer/builtin_module_inner/func_func_symC/1_0_1_canonicalize.mlir 24// RUN: test -f %t/builtin_module_outer/builtin_module_inner/1_1_cse.mlir 25// RUN: test -f %t/builtin_module_outer/2_cse.mlir 26 27builtin.module @outer { 28 29 func.func @symA() { 30 return 31 } 32 33 builtin.module @inner { 34 func.func @symB() { 35 return 36 } 37 func.func @symC() { 38 return 39 } 40 } 41} 42