From 4b18617083e70e279e63eb5c773483c1eca8a633 Mon Sep 17 00:00:00 2001 From: Mehdi Amini Date: Tue, 5 Sep 2023 14:03:28 -0700 Subject: [PATCH 1/2] Switch MLIR to use the internal LIT shell by default This provides better error messages. See https://discourse.llvm.org/t/rfc-improving-lits-debug-output/72839/ --- .../Dialect/SparseTensor/CPU/dense_output.mlir | 8 ++++---- .../Dialect/SparseTensor/CPU/sparse_flatten.mlir | 8 ++++---- .../Dialect/SparseTensor/CPU/sparse_matvec.mlir | 10 +++++----- .../Dialect/SparseTensor/CPU/sparse_mttkrp.mlir | 8 ++++---- .../Dialect/SparseTensor/CPU/sparse_out_simple.mlir | 6 +++--- .../SparseTensor/CPU/sparse_sampled_matmul.mlir | 8 ++++---- .../Dialect/SparseTensor/CPU/sparse_sorted_coo.mlir | 8 ++++---- .../Dialect/SparseTensor/CPU/sparse_spmm.mlir | 8 ++++---- .../Dialect/SparseTensor/CPU/sparse_sum.mlir | 8 ++++---- .../Dialect/SparseTensor/CPU/sparse_sum_c32.mlir | 8 ++++---- mlir/test/lit.cfg.py | 9 ++++++++- 11 files changed, 48 insertions(+), 41 deletions(-) diff --git a/mlir/test/Integration/Dialect/SparseTensor/CPU/dense_output.mlir b/mlir/test/Integration/Dialect/SparseTensor/CPU/dense_output.mlir index 674a1a78862eb..7ee385263d314 100644 --- a/mlir/test/Integration/Dialect/SparseTensor/CPU/dense_output.mlir +++ b/mlir/test/Integration/Dialect/SparseTensor/CPU/dense_output.mlir @@ -18,18 +18,18 @@ //-------------------------------------------------------------------------------------------------- // REDEFINE: %{env} = TENSOR0="%mlir_src_dir/test/Integration/data/test.mtx" -// RUN: %{compile} | %{env} %{run} | FileCheck %s +// RUN: %{compile} | env %{env} %{run} | FileCheck %s // // Do the same run, but now with direct IR generation. // REDEFINE: %{sparse_compiler_opts} = enable-runtime-library=false -// RUN: %{compile} | %{env} %{run} | FileCheck %s +// RUN: %{compile} | env %{env} %{run} | FileCheck %s // // Do the same run, but now with direct IR generation and vectorization. // REDEFINE: %{sparse_compiler_opts} = enable-runtime-library=false vl=2 reassociate-fp-reductions=true enable-index-optimizations=true -// RUN: %{compile} | %{env} %{run} | FileCheck %s +// RUN: %{compile} | env %{env} %{run} | FileCheck %s // // Do the same run, but now with direct IR generation and VLA vectorization. -// RUN: %if mlir_arm_sve_tests %{ %{compile_sve} | %{env} %{run_sve} | FileCheck %s %} +// RUN: %if mlir_arm_sve_tests %{ %{compile_sve} | env %{env} %{run_sve} | FileCheck %s %} !Filename = !llvm.ptr diff --git a/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_flatten.mlir b/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_flatten.mlir index 238f0da0a9531..56a26ec08b610 100644 --- a/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_flatten.mlir +++ b/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_flatten.mlir @@ -18,18 +18,18 @@ //-------------------------------------------------------------------------------------------------- // REDEFINE: %{env} = TENSOR0="%mlir_src_dir/test/Integration/data/test.tns" -// RUN: %{compile} | %{env} %{run} | FileCheck %s +// RUN: %{compile} | env %{env} %{run} | FileCheck %s // // Do the same run, but now with direct IR generation. // REDEFINE: %{sparse_compiler_opts} = enable-runtime-library=false -// RUN: %{compile} | %{env} %{run} | FileCheck %s +// RUN: %{compile} | env %{env} %{run} | FileCheck %s // // Do the same run, but now with direct IR generation and vectorization. // REDEFINE: %{sparse_compiler_opts} = enable-runtime-library=false vl=2 reassociate-fp-reductions=true enable-index-optimizations=true -// RUN: %{compile} | %{env} %{run} | FileCheck %s +// RUN: %{compile} | env %{env} %{run} | FileCheck %s // // Do the same run, but now with direct IR generation and VLA vectorization. -// RUN: %if mlir_arm_sve_tests %{ %{compile_sve} | %{env} %{run_sve} | FileCheck %s %} +// RUN: %if mlir_arm_sve_tests %{ %{compile_sve} | env %{env} %{run_sve} | FileCheck %s %} !Filename = !llvm.ptr diff --git a/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_matvec.mlir b/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_matvec.mlir index 4b9818890e6fb..cc3be3c823f53 100644 --- a/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_matvec.mlir +++ b/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_matvec.mlir @@ -18,23 +18,23 @@ //-------------------------------------------------------------------------------------------------- // REDEFINE: %{env} = TENSOR0="%mlir_src_dir/test/Integration/data/wide.mtx" -// RUN: %{compile} | %{env} %{run} | FileCheck %s +// RUN: %{compile} | env %{env} %{run} | FileCheck %s // // Do the same run, but now with direct IR generation. // REDEFINE: %{sparse_compiler_opts} = enable-runtime-library=false -// RUN: %{compile} | %{env} %{run} | FileCheck %s +// RUN: %{compile} | env %{env} %{run} | FileCheck %s // // Do the same run, but now with parallelization strategy. // REDEFINE: %{sparse_compiler_opts} = enable-runtime-library=true parallelization-strategy=any-storage-any-loop -// RUN: %{compile} | %{env} %{run} | FileCheck %s +// RUN: %{compile} | env %{env} %{run} | FileCheck %s // // Do the same run, but now with direct IR generation and parallelization strategy. // REDEFINE: %{sparse_compiler_opts} = enable-runtime-library=false parallelization-strategy=any-storage-any-loop -// RUN: %{compile} | %{env} %{run} | FileCheck %s +// RUN: %{compile} | env %{env} %{run} | FileCheck %s // // Do the same run, but now with direct IR generation and vectorization. // REDEFINE: %{sparse_compiler_opts} = enable-runtime-library=false vl=2 reassociate-fp-reductions=true enable-index-optimizations=true -// RUN: %{compile} | %{env} %{run} | FileCheck %s +// RUN: %{compile} | env %{env} %{run} | FileCheck %s // // Do the same run, but now with direct IR generation and, if available, VLA // vectorization. diff --git a/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_mttkrp.mlir b/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_mttkrp.mlir index c48cdb10c6c0b..e91fa97586b8c 100644 --- a/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_mttkrp.mlir +++ b/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_mttkrp.mlir @@ -18,19 +18,19 @@ //-------------------------------------------------------------------------------------------------- // REDEFINE: %{env} = TENSOR0=%mlir_src_dir/test/Integration/data/mttkrp_b.tns -// RUN: %{compile} | %{env} %{run} | FileCheck %s +// RUN: %{compile} | env %{env} %{run} | FileCheck %s // // Do the same run, but now with direct IR generation. // REDEFINE: %{sparse_compiler_opts} = enable-runtime-library=false -// RUN: %{compile} | %{env} %{run} | FileCheck %s +// RUN: %{compile} | env %{env} %{run} | FileCheck %s // // Do the same run, but now with direct IR generation and vectorization. // REDEFINE: %{sparse_compiler_opts} = enable-runtime-library=false vl=2 reassociate-fp-reductions=true enable-index-optimizations=true -// RUN: %{compile} | %{env} %{run} | FileCheck %s +// RUN: %{compile} | env %{env} %{run} | FileCheck %s // // Do the same run, but now with direct IR generation and, if available, VLA // vectorization. -// RUN: %if mlir_arm_sve_tests %{ %{compile_sve} | %{env} %{run_sve} | FileCheck %s %} +// RUN: %if mlir_arm_sve_tests %{ %{compile_sve} | env %{env} %{run_sve} | FileCheck %s %} !Filename = !llvm.ptr diff --git a/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_out_simple.mlir b/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_out_simple.mlir index fd36c815235b8..91b6b1517d8db 100644 --- a/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_out_simple.mlir +++ b/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_out_simple.mlir @@ -18,15 +18,15 @@ //-------------------------------------------------------------------------------------------------- // REDEFINE: %{env} = TENSOR0="%mlir_src_dir/test/Integration/data/test.mtx" -// RUN: %{compile} | %{env} %{run} | FileCheck %s +// RUN: %{compile} | env %{env} %{run} | FileCheck %s // // Do the same run, but now with direct IR generation and vectorization. // REDEFINE: %{sparse_compiler_opts} = enable-runtime-library=false vl=2 reassociate-fp-reductions=true enable-index-optimizations=true -// RUN: %{compile} | %{env} %{run} | FileCheck %s +// RUN: %{compile} | env %{env} %{run} | FileCheck %s // // Do the same run, but now with direct IR generation and, if available, VLA // vectorization. -// RUN: %if mlir_arm_sve_tests %{ %{compile_sve} | %{env} %{run_sve} | FileCheck %s %} +// RUN: %if mlir_arm_sve_tests %{ %{compile_sve} | env %{env} %{run_sve} | FileCheck %s %} !Filename = !llvm.ptr diff --git a/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_sampled_matmul.mlir b/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_sampled_matmul.mlir index b9f10ac34b731..491fadf4616c0 100644 --- a/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_sampled_matmul.mlir +++ b/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_sampled_matmul.mlir @@ -18,19 +18,19 @@ //-------------------------------------------------------------------------------------------------- // REDEFINE: %{env} = TENSOR0="%mlir_src_dir/test/Integration/data/test.mtx" -// RUN: %{compile} | %{env} %{run} | FileCheck %s +// RUN: %{compile} | env %{env} %{run} | FileCheck %s // // Do the same run, but now with direct IR generation. // REDEFINE: %{sparse_compiler_opts} = enable-runtime-library=false -// RUN: %{compile} | %{env} %{run} | FileCheck %s +// RUN: %{compile} | env %{env} %{run} | FileCheck %s // // Do the same run, but now with direct IR generation and vectorization. // REDEFINE: %{sparse_compiler_opts} = enable-runtime-library=false vl=2 reassociate-fp-reductions=true enable-index-optimizations=true -// RUN: %{compile} | %{env} %{run} | FileCheck %s +// RUN: %{compile} | env %{env} %{run} | FileCheck %s // // Do the same run, but now with direct IR generation and, if available, VLA // vectorization. -// RUN: %if mlir_arm_sve_tests %{ %{compile_sve} | %{env} %{run_sve} | FileCheck %s %} +// RUN: %if mlir_arm_sve_tests %{ %{compile_sve} | env %{env} %{run_sve} | FileCheck %s %} !Filename = !llvm.ptr diff --git a/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_sorted_coo.mlir b/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_sorted_coo.mlir index 06209829918c4..177272e45a10c 100644 --- a/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_sorted_coo.mlir +++ b/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_sorted_coo.mlir @@ -19,18 +19,18 @@ // REDEFINE: %{env} = TENSOR0="%mlir_src_dir/test/Integration/data/wide.mtx" \ // REDEFINE: TENSOR1="%mlir_src_dir/test/Integration/data/mttkrp_b.tns" -// RUN: %{compile} | %{env} %{run} | FileCheck %s +// RUN: %{compile} | env %{env} %{run} | FileCheck %s // // Do the same run, but now with direct IR generation. // REDEFINE: %{sparse_compiler_opts} = enable-runtime-library=false enable-buffer-initialization=true -// RUN: %{compile} | %{env} %{run} | FileCheck %s +// RUN: %{compile} | env %{env} %{run} | FileCheck %s // // Do the same run, but now with vectorization. // REDEFINE: %{sparse_compiler_opts} = enable-runtime-library=false vl=4 enable-buffer-initialization=true -// RUN: %{compile} | %{env} %{run} | FileCheck %s +// RUN: %{compile} | env %{env} %{run} | FileCheck %s // // Do the same run, but now with VLA vectorization. -// RUN: %if mlir_arm_sve_tests %{ %{compile_sve} | %{env} %{run_sve} | FileCheck %s %} +// RUN: %if mlir_arm_sve_tests %{ %{compile_sve} | env %{env} %{run_sve} | FileCheck %s %} !Filename = !llvm.ptr diff --git a/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_spmm.mlir b/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_spmm.mlir index a2926607599d5..59ea9a8114c53 100644 --- a/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_spmm.mlir +++ b/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_spmm.mlir @@ -18,18 +18,18 @@ //-------------------------------------------------------------------------------------------------- // REDEFINE: %{env} = TENSOR0="%mlir_src_dir/test/Integration/data/wide.mtx" -// RUN: %{compile} | %{env} %{run} | FileCheck %s +// RUN: %{compile} | env %{env} %{run} | FileCheck %s // // Do the same run, but now with direct IR generation. // REDEFINE: %{sparse_compiler_opts} = enable-runtime-library=false -// RUN: %{compile} | %{env} %{run} | FileCheck %s +// RUN: %{compile} | env %{env} %{run} | FileCheck %s // // Do the same run, but now with vectorization. // REDEFINE: %{sparse_compiler_opts} = enable-runtime-library=false vl=2 reassociate-fp-reductions=true enable-index-optimizations=true -// RUN: %{compile} | %{env} %{run} | FileCheck %s +// RUN: %{compile} | env %{env} %{run} | FileCheck %s // // Do the same run, but now with VLA vectorization. -// RUN: %if mlir_arm_sve_tests %{ %{compile_sve} | %{env} %{run_sve} | FileCheck %s %} +// RUN: %if mlir_arm_sve_tests %{ %{compile_sve} | env %{env} %{run_sve} | FileCheck %s %} !Filename = !llvm.ptr diff --git a/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_sum.mlir b/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_sum.mlir index bb2d1e5b88fca..a00f4d0018a20 100644 --- a/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_sum.mlir +++ b/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_sum.mlir @@ -18,18 +18,18 @@ //-------------------------------------------------------------------------------------------------- // REDEFINE: %{env} = TENSOR0=%mlir_src_dir/test/Integration/data/test_symmetric.mtx -// RUN: %{compile} | %{env} %{run} | FileCheck %s +// RUN: %{compile} | env %{env} %{run} | FileCheck %s // // Do the same run, but now with direct IR generation. // REDEFINE: %{sparse_compiler_opts} = enable-runtime-library=false -// RUN: %{compile} | %{env} %{run} | FileCheck %s +// RUN: %{compile} | env %{env} %{run} | FileCheck %s // // Do the same run, but now with vectorization. // REDEFINE: %{sparse_compiler_opts} = enable-runtime-library=false vl=2 reassociate-fp-reductions=true enable-index-optimizations=true -// RUN: %{compile} | %{env} %{run} | FileCheck %s +// RUN: %{compile} | env %{env} %{run} | FileCheck %s // // Do the same run, but now with VLA vectorization. -// RUN: %if mlir_arm_sve_tests %{ %{compile_sve} | %{env} %{run_sve} | FileCheck %s %} +// RUN: %if mlir_arm_sve_tests %{ %{compile_sve} | env %{env} %{run_sve} | FileCheck %s %} // TODO: The test currently only operates on the triangular part of the // symmetric matrix. diff --git a/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_sum_c32.mlir b/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_sum_c32.mlir index 0d75dc5f5e038..10a05b6a7ba01 100644 --- a/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_sum_c32.mlir +++ b/mlir/test/Integration/Dialect/SparseTensor/CPU/sparse_sum_c32.mlir @@ -18,18 +18,18 @@ //-------------------------------------------------------------------------------------------------- // REDEFINE: %{env} = TENSOR0="%mlir_src_dir/test/Integration/data/test_symmetric_complex.mtx" -// RUN: %{compile} | %{env} %{run} | FileCheck %s +// RUN: %{compile} | env %{env} %{run} | FileCheck %s // // Do the same run, but now with direct IR generation. // REDEFINE: %{sparse_compiler_opts} = enable-runtime-library=false -// RUN: %{compile} | %{env} %{run} | FileCheck %s +// RUN: %{compile} | env %{env} %{run} | FileCheck %s // // Do the same run, but now with vectorization. // REDEFINE: %{sparse_compiler_opts} = enable-runtime-library=false vl=2 reassociate-fp-reductions=true enable-index-optimizations=true -// RUN: %{compile} | %{env} %{run} | FileCheck %s +// RUN: %{compile} | env %{env} %{run} | FileCheck %s // // Do the same run, but now with VLA vectorization. -// RUN: %if mlir_arm_sve_tests %{ %{compile_sve} | %{env} %{run_sve} | FileCheck %s %} +// RUN: %if mlir_arm_sve_tests %{ %{compile_sve} | env %{env} %{run_sve} | FileCheck %s %} // TODO: The test currently only operates on the triangular part of the // symmetric matrix. diff --git a/mlir/test/lit.cfg.py b/mlir/test/lit.cfg.py index f265ac794c6f6..c13110df9be2a 100644 --- a/mlir/test/lit.cfg.py +++ b/mlir/test/lit.cfg.py @@ -18,7 +18,14 @@ # name: The name of this test suite. config.name = "MLIR" -config.test_format = lit.formats.ShTest(not llvm_config.use_lit_shell) +# We prefer the lit internal shell which provide a better user experience on failures +# Unless the user explicitly disable it with LIT_USE_INTERNAL_SHELL=0 env var. +use_lit_shell = True +lit_shell_env = os.environ.get("LIT_USE_INTERNAL_SHELL") +if lit_shell_env: + use_lit_shell = not lit.util.pythonize_bool(lit_shell_env) + +config.test_format = lit.formats.ShTest(execute_external=not use_lit_shell) # suffixes: A list of file extensions to treat as test files. config.suffixes = [ From 6669fac9d17ac98e9fd3056ae9f6d68c46c610a9 Mon Sep 17 00:00:00 2001 From: Mehdi Amini Date: Tue, 5 Sep 2023 17:53:50 -0700 Subject: [PATCH 2/2] Update mlir/test/lit.cfg.py Co-authored-by: Joel E. Denny --- mlir/test/lit.cfg.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mlir/test/lit.cfg.py b/mlir/test/lit.cfg.py index c13110df9be2a..da8488373862c 100644 --- a/mlir/test/lit.cfg.py +++ b/mlir/test/lit.cfg.py @@ -18,8 +18,8 @@ # name: The name of this test suite. config.name = "MLIR" -# We prefer the lit internal shell which provide a better user experience on failures -# Unless the user explicitly disable it with LIT_USE_INTERNAL_SHELL=0 env var. +# We prefer the lit internal shell which provides a better user experience on failures +# unless the user explicitly disables it with LIT_USE_INTERNAL_SHELL=0 env var. use_lit_shell = True lit_shell_env = os.environ.get("LIT_USE_INTERNAL_SHELL") if lit_shell_env: