szrt_profiler.c revision b8afba1c92fb10e54ca7984c46a480b29f300628
1#include <inttypes.h>
2#include <stdint.h>
3#include <stdio.h>
4
5struct BlockProfileInfo {
6  uint64_t Counter;
7  const char *const BlockName;
8} __attribute__((aligned(8)));
9
10extern const struct BlockProfileInfo *__Sz_block_profile_info;
11
12static const char SubzeroLogo[] =
13    "\n"
14    "\n"
15    "__________________________________________________________________________"
16    "____________________________\n"
17    " _____/\\\\\\\\\\\\\\\\\\\\\\__________________/"
18    "\\\\\\_______________________________________________________________\n"
19    "  "
20    "___/\\\\\\/////////\\\\\\_______________\\/"
21    "\\\\\\_______________________________________________________________\n"
22    "   "
23    "__\\//\\\\\\______\\///________________\\/"
24    "\\\\\\_______________________________________________________________\n"
25    "    "
26    "___\\////\\\\\\__________/\\\\\\____/\\\\\\_\\/\\\\\\_________/"
27    "\\\\\\\\\\\\\\\\\\\\\\_____/\\\\\\\\\\\\\\\\___/\\\\/\\\\\\\\\\\\\\____/"
28    "\\\\\\\\\\____\n"
29    "     "
30    "______\\////\\\\\\______\\/\\\\\\___\\/\\\\\\_\\/\\\\\\\\\\\\\\\\\\__\\///"
31    "////\\\\\\/____/\\\\\\/////\\\\\\_\\/\\\\\\/////\\\\\\_/\\\\\\///"
32    "\\\\\\__\n"
33    "      "
34    "_________\\////\\\\\\___\\/\\\\\\___\\/\\\\\\_\\/\\\\\\////\\\\\\______/"
35    "\\\\\\/_____/\\\\\\\\\\\\\\\\\\\\\\__\\/\\\\\\__\\///__/\\\\\\__\\//"
36    "\\\\\\_\n"
37    "       "
38    "__/\\\\\\______\\//\\\\\\__\\/\\\\\\___\\/\\\\\\_\\/\\\\\\__\\/\\\\\\____/"
39    "\\\\\\/______\\//\\\\///////___\\/\\\\\\_______\\//\\\\\\__/\\\\\\__\n"
40    "        "
41    "_\\///\\\\\\\\\\\\\\\\\\\\\\/___\\//\\\\\\\\\\\\\\\\\\__\\/"
42    "\\\\\\\\\\\\\\\\\\___/\\\\\\\\\\\\\\\\\\\\\\__\\//\\\\\\\\\\\\\\\\\\\\_\\/"
43    "\\\\\\________\\///\\\\\\\\\\/___\n"
44    "         "
45    "___\\///////////______\\/////////___\\/////////___\\///////////____\\/////"
46    "/////__\\///___________\\/////_____\n"
47    "          "
48    "__________________________________________________________________________"
49    "____________________________\n"
50    "\n"
51    "\n";
52
53void __Sz_profile_summary() {
54  printf("%s", SubzeroLogo);
55  for (const struct BlockProfileInfo **curr = &__Sz_block_profile_info;
56       *curr != NULL; ++curr) {
57    printf("%" PRIu64 "\t%s\n", (*curr)->Counter, (*curr)->BlockName);
58  }
59  fflush(stdout);
60}
61