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