37#define CacheControl(L,O,R) ((PERF_COUNT_HW_CACHE_##L)|(PERF_COUNT_HW_CACHE_OP_##O<<8)| (PERF_COUNT_HW_CACHE_RESULT_##R<<16))
38#define RawConfig(A,B) (A<<8|B)
41 { PERF_TYPE_HARDWARE, PERF_COUNT_HW_CACHE_REFERENCES ,
"CACHE_REFERENCES..." , INSTRUCTIONS},
42 { PERF_TYPE_HARDWARE, PERF_COUNT_HW_CACHE_MISSES ,
"CACHE_MISSES......." , CACHE_REFERENCES},
43 { PERF_TYPE_HARDWARE, PERF_COUNT_HW_CPU_CYCLES ,
"CPUCYCLES.........." , INSTRUCTIONS},
44 { PERF_TYPE_HARDWARE, PERF_COUNT_HW_INSTRUCTIONS ,
"INSTRUCTIONS......." , CPUCYCLES },
47 { PERF_TYPE_RAW,
RawConfig(0x40,0x04),
"ALL_LOADS..........", CPUCYCLES },
48 { PERF_TYPE_RAW,
RawConfig(0x01,0x04),
"L1_MISS_LOADS......", L1D_READ_ACCESS },
49 { PERF_TYPE_RAW,
RawConfig(0x40,0x04),
"ALL_LOADS..........", L1D_READ_ACCESS },
50 { PERF_TYPE_RAW,
RawConfig(0x02,0x04),
"L2_HIT_LOADS.......", L1D_READ_ACCESS },
51 { PERF_TYPE_RAW,
RawConfig(0x04,0x04),
"L2_MISS_LOADS......", L1D_READ_ACCESS },
52 { PERF_TYPE_RAW,
RawConfig(0x10,0x04),
"UTLB_MISS_LOADS....", L1D_READ_ACCESS },
53 { PERF_TYPE_RAW,
RawConfig(0x08,0x04),
"DTLB_MISS_LOADS....", L1D_READ_ACCESS },
56 { PERF_TYPE_HW_CACHE,
CacheControl(L1D,READ,ACCESS) ,
"L1D_READ_ACCESS....",INSTRUCTIONS},
57 { PERF_TYPE_HW_CACHE,
CacheControl(L1D,READ,MISS) ,
"L1D_READ_MISS......",L1D_READ_ACCESS},
58 { PERF_TYPE_HW_CACHE,
CacheControl(L1D,WRITE,MISS) ,
"L1D_WRITE_MISS.....",L1D_READ_ACCESS},
59 { PERF_TYPE_HW_CACHE,
CacheControl(L1D,WRITE,ACCESS) ,
"L1D_WRITE_ACCESS...",L1D_READ_ACCESS},
60 { PERF_TYPE_HW_CACHE,
CacheControl(L1D,PREFETCH,MISS) ,
"L1D_PREFETCH_MISS..",L1D_READ_ACCESS},
61 { PERF_TYPE_HW_CACHE,
CacheControl(L1D,PREFETCH,ACCESS) ,
"L1D_PREFETCH_ACCESS",L1D_READ_ACCESS},
62 { PERF_TYPE_HW_CACHE,
CacheControl(L1D,PREFETCH,ACCESS) ,
"L1D_PREFETCH_ACCESS",L1D_READ_ACCESS},
65 { PERF_TYPE_HW_CACHE,
CacheControl(LL,READ,MISS) ,
"LL_READ_MISS.......",L1D_READ_ACCESS},
66 { PERF_TYPE_HW_CACHE,
CacheControl(LL,READ,ACCESS) ,
"LL_READ_ACCESS.....",L1D_READ_ACCESS},
67 { PERF_TYPE_HW_CACHE,
CacheControl(LL,WRITE,MISS) ,
"LL_WRITE_MISS......",L1D_READ_ACCESS},
68 { PERF_TYPE_HW_CACHE,
CacheControl(LL,WRITE,ACCESS) ,
"LL_WRITE_ACCESS....",L1D_READ_ACCESS},
70 { PERF_TYPE_HW_CACHE,
CacheControl(LL,PREFETCH,MISS) ,
"LL_PREFETCH_MISS...",L1D_READ_ACCESS},
71 { PERF_TYPE_HW_CACHE,
CacheControl(LL,PREFETCH,ACCESS) ,
"LL_PREFETCH_ACCESS.",L1D_READ_ACCESS},
72 { PERF_TYPE_HW_CACHE,
CacheControl(L1I,READ,MISS) ,
"L1I_READ_MISS......",INSTRUCTIONS},
73 { PERF_TYPE_HW_CACHE,
CacheControl(L1I,READ,ACCESS) ,
"L1I_READ_ACCESS....",INSTRUCTIONS}
#define NAMESPACE_BEGIN(A)
GridTimePoint theProgramStart
#define CacheControl(L, O, R)
std::chrono::time_point< GridClock > GridTimePoint