aboutsummaryrefslogtreecommitdiff
path: root/arch/v1/arch_plots.cpp
blob: fc084fbe84f3cec05851f4e5878bb577316fa2c1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#define INST_EVENT_ARRAYS(core) \
    INST_EVENT_ARRAY(core, pop) /* instruction population */ \
    INST_EVENT_ARRAY(core, exe) /* instruction executions */ \
    INST_EVENT_ARRAY(core, wrt) /* instruction writes */

std::vector<Trace> g_arch_traces = {
#define INST(core, pref, index, label, mnemonic, symbol) \
    {#label "_" #pref "_" #core, #label},
#define INST_EVENT_ARRAY(core, iv) \
    INST_SET(core, iv)
#define FOR_CORE(i) \
    {"wmb0_" #i, "wmb0_" #i}, \
    {"wmb1_" #i, "wmb1_" #i}, \
    {"wdea_" #i, "wdea_" #i}, \
    INST_EVENT_ARRAYS(i)
    FOR_CORES
#undef FOR_CORE
#undef INST_EVENT_ARRAY
#undef INST
};

std::vector<Plot> g_arch_plots = {
    {"wevs", "general", {
#define FOR_CORE(i) "wmb0_" #i, "wmb1_" #i, "wdea_" #i,
    FOR_CORES
#undef FOR_CORE
    }},
};

std::vector<PlotStacked> g_arch_plots_stacked = {
#define INST(core, pref, index, label, mnemonic, symbol) \
    #label "_" #pref "_" #core,
#define INST_EVENT_ARRAY(core, iv) \
    {"i" #iv "_" #core, "population", { \
    INST_SET(core, iv) \
    }},
#define FOR_CORE(i) \
    INST_EVENT_ARRAYS(i)
    FOR_CORES
#undef FOR_CORE
#undef INST_EVENT_ARRAY
#undef INST
};