[mlir] NFC - Add runner util functions to only print MemRef metadata.
authorNicolas Vasilache <nicolas.vasilache@gmail.com>
Thu, 4 Mar 2021 12:35:01 +0000 (12:35 +0000)
committerNicolas Vasilache <nicolas.vasilache@gmail.com>
Thu, 4 Mar 2021 12:35:45 +0000 (12:35 +0000)
These are useful to debug execution, without having to print the whole
content of a memref.

mlir/include/mlir/ExecutionEngine/RunnerUtils.h
mlir/lib/ExecutionEngine/RunnerUtils.cpp

index 976cad3..9d612c1 100644 (file)
@@ -191,6 +191,16 @@ void MemRefDataPrinter<T>::printLast(std::ostream &os, T *base, int64_t dim,
   os << "]";
 }
 
+template <typename T, int N> void printMemRefShape(StridedMemRefType<T, N> &M) {
+  std::cout << "Memref ";
+  printMemRefMetaData(std::cout, DynamicMemRefType<T>(M));
+}
+
+template <typename T> void printMemRefShape(UnrankedMemRefType<T> &M) {
+  std::cout << "Unranked Memref ";
+  printMemRefMetaData(std::cout, DynamicMemRefType<T>(M));
+}
+
 template <typename T>
 void printMemRef(const DynamicMemRefType<T> &M) {
   printMemRefMetaData(std::cout, M);
@@ -328,6 +338,17 @@ int64_t verifyMemRef(UnrankedMemRefType<T> &actual,
 // Currently exposed C API.
 ////////////////////////////////////////////////////////////////////////////////
 extern "C" MLIR_RUNNERUTILS_EXPORT void
+_mlir_ciface_print_memref_shape_i8(UnrankedMemRefType<int8_t> *M);
+extern "C" MLIR_RUNNERUTILS_EXPORT void
+_mlir_ciface_print_memref_shape_i32(UnrankedMemRefType<int32_t> *M);
+extern "C" MLIR_RUNNERUTILS_EXPORT void
+_mlir_ciface_print_memref_shape_i64(UnrankedMemRefType<int64_t> *M);
+extern "C" MLIR_RUNNERUTILS_EXPORT void
+_mlir_ciface_print_memref_shape_f32(UnrankedMemRefType<float> *M);
+extern "C" MLIR_RUNNERUTILS_EXPORT void
+_mlir_ciface_print_memref_shape_f64(UnrankedMemRefType<double> *M);
+
+extern "C" MLIR_RUNNERUTILS_EXPORT void
 _mlir_ciface_print_memref_i8(UnrankedMemRefType<int8_t> *M);
 extern "C" MLIR_RUNNERUTILS_EXPORT void
 _mlir_ciface_print_memref_i32(UnrankedMemRefType<int32_t> *M);
index 44e0c1f..83ead7c 100644 (file)
 
 #include "mlir/ExecutionEngine/RunnerUtils.h"
 
+extern "C" void
+_mlir_ciface_print_memref_shape_i8(UnrankedMemRefType<int8_t> *M) {
+  std::cout << "Unranked Memref ";
+  printMemRefMetaData(std::cout, DynamicMemRefType<int8_t>(*M));
+  std::cout << "\n";
+}
+
+extern "C" void
+_mlir_ciface_print_memref_shape_i32(UnrankedMemRefType<int32_t> *M) {
+  std::cout << "Unranked Memref ";
+  printMemRefMetaData(std::cout, DynamicMemRefType<int32_t>(*M));
+  std::cout << "\n";
+}
+
+extern "C" void
+_mlir_ciface_print_memref_shape_i64(UnrankedMemRefType<int64_t> *M) {
+  std::cout << "Unranked Memref ";
+  printMemRefMetaData(std::cout, DynamicMemRefType<int64_t>(*M));
+  std::cout << "\n";
+}
+
+extern "C" void
+_mlir_ciface_print_memref_shape_f32(UnrankedMemRefType<float> *M) {
+  std::cout << "Unranked Memref ";
+  printMemRefMetaData(std::cout, DynamicMemRefType<float>(*M));
+  std::cout << "\n";
+}
+
+extern "C" void
+_mlir_ciface_print_memref_shape_f64(UnrankedMemRefType<double> *M) {
+  std::cout << "Unranked Memref ";
+  printMemRefMetaData(std::cout, DynamicMemRefType<double>(*M));
+  std::cout << "\n";
+}
+
 extern "C" void _mlir_ciface_print_memref_vector_4x4xf32(
     StridedMemRefType<Vector2D<4, 4, float>, 2> *M) {
   impl::printMemRef(*M);