diff options
| author | Paul Oliver <contact@pauloliver.dev> | 2026-07-14 17:29:02 +0200 |
|---|---|---|
| committer | Paul Oliver <contact@pauloliver.dev> | 2026-08-30 16:24:48 +0200 |
| commit | 1961b4b237083f4cfac9ca6b249c1d6cb665d149 (patch) | |
| tree | fd9fc8260360e2ac30be9747ca558bcfc824a4c4 /arch/v1/client_plots.h | |
Diffstat (limited to 'arch/v1/client_plots.h')
| -rw-r--r-- | arch/v1/client_plots.h | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/arch/v1/client_plots.h b/arch/v1/client_plots.h new file mode 100644 index 0000000..4b2c3af --- /dev/null +++ b/arch/v1/client_plots.h @@ -0,0 +1,83 @@ +// file : arch/v1/client_plots.h +// project : Salis-VM +// author : Paul Oliver <contact@pauloliver.dev> + +#pragma once + +// index: + +static std::array g_arch_traces = std::to_array<TraceNamed<ImS64>>({ +#define ARCH_SPEC_INST(label, symbol, core) \ + {#label "_pop_" #core, #label}, \ + {#label "_exe_" #core, #label}, \ + {#label "_wrt_" #core, #label}, +#define FOR_CORE(i) \ + {"wmb0_" #i, "wmb0_" #i}, \ + {"wmb1_" #i, "wmb1_" #i}, \ + {"wdea_" #i, "wdea_" #i}, \ + {"hlts_" #i, "hlts_" #i}, \ + ARCH_SPEC_INST_SET(i) + FOR_CORES +#undef FOR_CORE +#undef ARCH_SPEC_INST +}); + +static std::array g_arch_traces_heatmaps = std::to_array<TraceHeatmap<ImS64>>({ +#define FOR_CORE(i) \ + {"wev_" #i, "wev_" #i}, \ + {"xev_" #i, "xev_" #i}, + FOR_CORES +#undef FOR_CORE +}); + +static std::array g_arch_plots = std::to_array<PlotLines>({ + {"wevs", "general", { +#define FOR_CORE(i) "wmb0_" #i, "wmb1_" #i, "wdea_" #i, + FOR_CORES +#undef FOR_CORE + }}, + + {"hlts", "general", { +#define FOR_CORE(i) "hlts_" #i, + FOR_CORES +#undef FOR_CORE + }} +}); + +static std::array g_arch_plots_stacked = std::to_array<PlotStacked>({ +#define ARCH_SPEC_INST(label, symbol, core) \ + #label "_pop_" #core, +#define FOR_CORE(i) \ + {"ipop%_" #i, "population", { ARCH_SPEC_INST_SET(i) }}, + FOR_CORES +#undef FOR_CORE +#undef ARCH_SPEC_INST + +#define ARCH_SPEC_INST(label, symbol, core) \ + #label "_exe_" #core, +#define FOR_CORE(i) \ + {"iexe%_" #i, "population", { ARCH_SPEC_INST_SET(i) }}, + FOR_CORES +#undef FOR_CORE +#undef ARCH_SPEC_INST + +#define ARCH_SPEC_INST(label, symbol, core) \ + #label "_wrt_" #core, +#define FOR_CORE(i) \ + {"iwrt%_" #i, "population", { ARCH_SPEC_INST_SET(i) }}, + FOR_CORES +#undef FOR_CORE +#undef ARCH_SPEC_INST +}); + +static std::array g_arch_plots_heatmaps = std::to_array<PlotHeatmap>({ +#define FOR_CORE(i) \ + {"wev_" #i, "heatmaps", "wev_" #i}, + FOR_CORES +#undef FOR_CORE + +#define FOR_CORE(i) \ + {"xev_" #i, "heatmaps", "xev_" #i}, + FOR_CORES +#undef FOR_CORE +}); |
