From 220d35a527032926fd0e67e0a935c608e4190a16 Mon Sep 17 00:00:00 2001 From: Jim Turner Date: Wed, 22 Dec 2021 23:50:26 -0500 Subject: [PATCH 1/2] Fix Miri error with -Zmiri-tag-raw-pointers MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Before this PR, running `MIRIFLAGS="-Zmiri-tag-raw-pointers" cargo miri test` caused Miri to report undefined behavior in the `test_dgemm` test. This PR fixes the underlying issue – Miri doesn't like us using a reference to an element to access other elements. --- src/gemm.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/gemm.rs b/src/gemm.rs index 1d9e2c5..92fbb4c 100644 --- a/src/gemm.rs +++ b/src/gemm.rs @@ -409,8 +409,8 @@ unsafe fn gemm_packed(nc: usize, kc: usize, mc: usize, // NOTE: For the rust kernels, it performs better to simply // always use the masked kernel function! if K::always_masked() || nr_ < nr || mr_ < mr { - masked_kernel::<_, K>(kc, alpha, &*app.ptr(), &*bpp.ptr(), - beta, &mut *c.ptr(), rsc, csc, + masked_kernel::<_, K>(kc, alpha, app.ptr(), bpp.ptr(), + beta, c.ptr(), rsc, csc, mr_, nr_, mask_buf); continue; } else { From 049680bed42260aa0ae59330e258aaa873a60445 Mon Sep 17 00:00:00 2001 From: Jim Turner Date: Sat, 8 Jan 2022 15:57:36 -0500 Subject: [PATCH 2/2] Add more checks to MIRIFLAGS for CI --- ci/miri.sh | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/ci/miri.sh b/ci/miri.sh index 4e02d32..0f5fa38 100755 --- a/ci/miri.sh +++ b/ci/miri.sh @@ -12,7 +12,8 @@ rustup default "$MIRI_NIGHTLY" rustup component add miri cargo miri setup -# disable isolation for num_cpus::get_physical -MIRIFLAGS=-Zmiri-disable-isolation \ +# Disable isolation for num_cpus::get_physical. +# Also add flags for additional checks. +MIRIFLAGS="-Zmiri-disable-isolation -Zmiri-tag-raw-pointers -Zmiri-check-number-validity" \ MMTEST_FAST_TEST=1 \ cargo miri test "$@"