|
5 | 5 | // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
|
6 | 6 | //
|
7 | 7 | //===----------------------------------------------------------------------===//
|
| 8 | +// |
| 9 | +// This file declares basic classes and functions to debug structured MLIR |
| 10 | +// types at runtime. Entities in this file may not be compatible with targets |
| 11 | +// without a C++ runtime. These may be progressively migrated to CRunnerUtils.h |
| 12 | +// over time. |
| 13 | +// |
| 14 | +//===----------------------------------------------------------------------===// |
8 | 15 |
|
9 | 16 | #ifndef EXECUTIONENGINE_RUNNERUTILS_H_
|
10 | 17 | #define EXECUTIONENGINE_RUNNERUTILS_H_
|
11 | 18 |
|
12 |
| -#include <assert.h> |
13 |
| -#include <cstdint> |
14 |
| -#include <iostream> |
15 |
| - |
16 | 19 | #ifdef _WIN32
|
17 |
| -#ifndef MLIR_RUNNER_UTILS_EXPORT |
| 20 | +#ifndef MLIR_RUNNERUTILS_EXPORT |
18 | 21 | #ifdef mlir_runner_utils_EXPORTS
|
19 | 22 | /* We are building this library */
|
20 |
| -#define MLIR_RUNNER_UTILS_EXPORT __declspec(dllexport) |
| 23 | +#define MLIR_RUNNERUTILS_EXPORT __declspec(dllexport) |
21 | 24 | #else
|
22 | 25 | /* We are using this library */
|
23 |
| -#define MLIR_RUNNER_UTILS_EXPORT __declspec(dllimport) |
| 26 | +#define MLIR_RUNNERUTILS_EXPORT __declspec(dllimport) |
24 | 27 | #endif // mlir_runner_utils_EXPORTS
|
25 |
| -#endif // MLIR_RUNNER_UTILS_EXPORT |
| 28 | +#endif // MLIR_RUNNERUTILS_EXPORT |
26 | 29 | #else
|
27 |
| -#define MLIR_RUNNER_UTILS_EXPORT |
| 30 | +#define MLIR_RUNNERUTILS_EXPORT |
28 | 31 | #endif // _WIN32
|
29 | 32 |
|
30 |
| -template <typename T, int N> struct StridedMemRefType; |
31 |
| -template <typename StreamType, typename T, int N> |
32 |
| -void printMemRefMetaData(StreamType &os, StridedMemRefType<T, N> &V); |
33 |
| - |
34 |
| -template <int N> void dropFront(int64_t arr[N], int64_t *res) { |
35 |
| - for (unsigned i = 1; i < N; ++i) |
36 |
| - *(res + i - 1) = arr[i]; |
37 |
| -} |
38 |
| - |
39 |
| -/// StridedMemRef descriptor type with static rank. |
40 |
| -template <typename T, int N> struct StridedMemRefType { |
41 |
| - T *basePtr; |
42 |
| - T *data; |
43 |
| - int64_t offset; |
44 |
| - int64_t sizes[N]; |
45 |
| - int64_t strides[N]; |
46 |
| - // This operator[] is extremely slow and only for sugaring purposes. |
47 |
| - StridedMemRefType<T, N - 1> operator[](int64_t idx) { |
48 |
| - StridedMemRefType<T, N - 1> res; |
49 |
| - res.basePtr = basePtr; |
50 |
| - res.data = data; |
51 |
| - res.offset = offset + idx * strides[0]; |
52 |
| - dropFront<N>(sizes, res.sizes); |
53 |
| - dropFront<N>(strides, res.strides); |
54 |
| - return res; |
55 |
| - } |
56 |
| -}; |
57 |
| - |
58 |
| -/// StridedMemRef descriptor type specialized for rank 1. |
59 |
| -template <typename T> struct StridedMemRefType<T, 1> { |
60 |
| - T *basePtr; |
61 |
| - T *data; |
62 |
| - int64_t offset; |
63 |
| - int64_t sizes[1]; |
64 |
| - int64_t strides[1]; |
65 |
| - T &operator[](int64_t idx) { return *(data + offset + idx * strides[0]); } |
66 |
| -}; |
67 |
| - |
68 |
| -/// StridedMemRef descriptor type specialized for rank 0. |
69 |
| -template <typename T> struct StridedMemRefType<T, 0> { |
70 |
| - T *basePtr; |
71 |
| - T *data; |
72 |
| - int64_t offset; |
73 |
| -}; |
| 33 | +#include <assert.h> |
| 34 | +#include <iostream> |
74 | 35 |
|
75 |
| -// Unranked MemRef |
76 |
| -template <typename T> struct UnrankedMemRefType { |
77 |
| - int64_t rank; |
78 |
| - void *descriptor; |
79 |
| -}; |
| 36 | +#include "mlir/ExecutionEngine/CRunnerUtils.h" |
80 | 37 |
|
81 | 38 | template <typename StreamType, typename T, int N>
|
82 | 39 | void printMemRefMetaData(StreamType &os, StridedMemRefType<T, N> &V) {
|
@@ -261,35 +218,27 @@ template <typename T> void printMemRef(StridedMemRefType<T, 0> &M) {
|
261 | 218 | ////////////////////////////////////////////////////////////////////////////////
|
262 | 219 | // Currently exposed C API.
|
263 | 220 | ////////////////////////////////////////////////////////////////////////////////
|
264 |
| -extern "C" MLIR_RUNNER_UTILS_EXPORT void |
| 221 | +extern "C" MLIR_RUNNERUTILS_EXPORT void |
265 | 222 | _mlir_ciface_print_memref_i8(UnrankedMemRefType<int8_t> *M);
|
266 |
| -extern "C" MLIR_RUNNER_UTILS_EXPORT void |
| 223 | +extern "C" MLIR_RUNNERUTILS_EXPORT void |
267 | 224 | _mlir_ciface_print_memref_f32(UnrankedMemRefType<float> *M);
|
268 | 225 |
|
269 |
| -extern "C" MLIR_RUNNER_UTILS_EXPORT void print_memref_f32(int64_t rank, |
270 |
| - void *ptr); |
| 226 | +extern "C" MLIR_RUNNERUTILS_EXPORT void print_memref_f32(int64_t rank, |
| 227 | + void *ptr); |
271 | 228 |
|
272 |
| -extern "C" MLIR_RUNNER_UTILS_EXPORT void |
| 229 | +extern "C" MLIR_RUNNERUTILS_EXPORT void |
273 | 230 | _mlir_ciface_print_memref_0d_f32(StridedMemRefType<float, 0> *M);
|
274 |
| -extern "C" MLIR_RUNNER_UTILS_EXPORT void |
| 231 | +extern "C" MLIR_RUNNERUTILS_EXPORT void |
275 | 232 | _mlir_ciface_print_memref_1d_f32(StridedMemRefType<float, 1> *M);
|
276 |
| -extern "C" MLIR_RUNNER_UTILS_EXPORT void |
| 233 | +extern "C" MLIR_RUNNERUTILS_EXPORT void |
277 | 234 | _mlir_ciface_print_memref_2d_f32(StridedMemRefType<float, 2> *M);
|
278 |
| -extern "C" MLIR_RUNNER_UTILS_EXPORT void |
| 235 | +extern "C" MLIR_RUNNERUTILS_EXPORT void |
279 | 236 | _mlir_ciface_print_memref_3d_f32(StridedMemRefType<float, 3> *M);
|
280 |
| -extern "C" MLIR_RUNNER_UTILS_EXPORT void |
| 237 | +extern "C" MLIR_RUNNERUTILS_EXPORT void |
281 | 238 | _mlir_ciface_print_memref_4d_f32(StridedMemRefType<float, 4> *M);
|
282 | 239 |
|
283 |
| -extern "C" MLIR_RUNNER_UTILS_EXPORT void |
| 240 | +extern "C" MLIR_RUNNERUTILS_EXPORT void |
284 | 241 | _mlir_ciface_print_memref_vector_4x4xf32(
|
285 | 242 | StridedMemRefType<Vector2D<4, 4, float>, 2> *M);
|
286 | 243 |
|
287 |
| -// Small runtime support "lib" for vector.print lowering. |
288 |
| -extern "C" MLIR_RUNNER_UTILS_EXPORT void print_f32(float f); |
289 |
| -extern "C" MLIR_RUNNER_UTILS_EXPORT void print_f64(double d); |
290 |
| -extern "C" MLIR_RUNNER_UTILS_EXPORT void print_open(); |
291 |
| -extern "C" MLIR_RUNNER_UTILS_EXPORT void print_close(); |
292 |
| -extern "C" MLIR_RUNNER_UTILS_EXPORT void print_comma(); |
293 |
| -extern "C" MLIR_RUNNER_UTILS_EXPORT void print_newline(); |
294 |
| - |
295 | 244 | #endif // EXECUTIONENGINE_RUNNERUTILS_H_
|
0 commit comments