summaryrefslogtreecommitdiff
path: root/arch/v1/client_plots.h
diff options
context:
space:
mode:
Diffstat (limited to 'arch/v1/client_plots.h')
-rw-r--r--arch/v1/client_plots.h83
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
+});