1/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\ 2|* *| 3|* Exegesis Tables *| 4|* *| 5|* Automatically generated file, do not edit! *| 6|* *| 7\*===----------------------------------------------------------------------===*/ 8 9 10static const char* X86PfmCounterNames[] = { 11 "cpu_clk_unhalted", // 0 12 "cycles_not_in_halt", // 1 13 "dispatched_fpu:pipe0", // 2 14 "dispatched_fpu:pipe1", // 3 15 "dispatched_fpu_ops:ops_pipe0 + dispatched_fpu_ops:ops_dual_pipe0", // 4 16 "dispatched_fpu_ops:ops_pipe1 + dispatched_fpu_ops:ops_dual_pipe1", // 5 17 "dispatched_fpu_ops:ops_pipe2 + dispatched_fpu_ops:ops_dual_pipe2", // 6 18 "dispatched_fpu_ops:ops_pipe3 + dispatched_fpu_ops:ops_dual_pipe3", // 7 19 "div_op_count", // 8 20 "fpu_pipe_assignment:total0", // 9 21 "fpu_pipe_assignment:total1", // 10 22 "fpu_pipe_assignment:total2", // 11 23 "fpu_pipe_assignment:total3", // 12 24 "retired_uops", // 13 25 "unhalted_core_cycles", // 14 26 "uops_dispatched_port:port_0", // 15 27 "uops_dispatched_port:port_1", // 16 28 "uops_dispatched_port:port_2", // 17 29 "uops_dispatched_port:port_2 + uops_dispatched_port:port_3", // 18 30 "uops_dispatched_port:port_3", // 19 31 "uops_dispatched_port:port_4", // 20 32 "uops_dispatched_port:port_5", // 21 33 "uops_dispatched_port:port_6", // 22 34 "uops_dispatched_port:port_7", // 23 35 "uops_executed_port:port_0", // 24 36 "uops_executed_port:port_1", // 25 37 "uops_executed_port:port_2", // 26 38 "uops_executed_port:port_3", // 27 39 "uops_executed_port:port_4", // 28 40 "uops_executed_port:port_5", // 29 41 "uops_executed_port:port_6", // 30 42 "uops_executed_port:port_7", // 31 43 "uops_issued:any", // 32 44 "uops_retired", // 33 45 "uops_retired:all", // 34 46 "uops_retired:any", // 35 47}; 48 49static const PfmCountersInfo::IssueCounter X86PfmIssueCounters[] = { 50 { X86PfmCounterNames[4], "PdFPU0"}, 51 { X86PfmCounterNames[5], "PdFPU1"}, 52 { X86PfmCounterNames[6], "PdFPU2"}, 53 { X86PfmCounterNames[7], "PdFPU3"}, 54 { X86PfmCounterNames[4], "SrFPU0"}, 55 { X86PfmCounterNames[5], "SrFPU1"}, 56 { X86PfmCounterNames[6], "SrFPU2"}, 57 { X86PfmCounterNames[24], "BWPort0"}, 58 { X86PfmCounterNames[25], "BWPort1"}, 59 { X86PfmCounterNames[26], "BWPort2"}, 60 { X86PfmCounterNames[27], "BWPort3"}, 61 { X86PfmCounterNames[28], "BWPort4"}, 62 { X86PfmCounterNames[29], "BWPort5"}, 63 { X86PfmCounterNames[30], "BWPort6"}, 64 { X86PfmCounterNames[31], "BWPort7"}, 65 { X86PfmCounterNames[2], "BtFPU0"}, 66 { X86PfmCounterNames[3], "BtFPU1"}, 67 { X86PfmCounterNames[2], "JFPU0"}, 68 { X86PfmCounterNames[3], "JFPU1"}, 69 { X86PfmCounterNames[24], "HWPort0"}, 70 { X86PfmCounterNames[25], "HWPort1"}, 71 { X86PfmCounterNames[26], "HWPort2"}, 72 { X86PfmCounterNames[27], "HWPort3"}, 73 { X86PfmCounterNames[28], "HWPort4"}, 74 { X86PfmCounterNames[29], "HWPort5"}, 75 { X86PfmCounterNames[30], "HWPort6"}, 76 { X86PfmCounterNames[31], "HWPort7"}, 77 { X86PfmCounterNames[15], "SBPort0"}, 78 { X86PfmCounterNames[16], "SBPort1"}, 79 { X86PfmCounterNames[18], "SBPort23"}, 80 { X86PfmCounterNames[20], "SBPort4"}, 81 { X86PfmCounterNames[21], "SBPort5"}, 82 { X86PfmCounterNames[15], "SKLPort0"}, 83 { X86PfmCounterNames[16], "SKLPort1"}, 84 { X86PfmCounterNames[17], "SKLPort2"}, 85 { X86PfmCounterNames[19], "SKLPort3"}, 86 { X86PfmCounterNames[20], "SKLPort4"}, 87 { X86PfmCounterNames[21], "SKLPort5"}, 88 { X86PfmCounterNames[22], "SKLPort6"}, 89 { X86PfmCounterNames[23], "SKLPort7"}, 90 { X86PfmCounterNames[15], "SKXPort0"}, 91 { X86PfmCounterNames[16], "SKXPort1"}, 92 { X86PfmCounterNames[17], "SKXPort2"}, 93 { X86PfmCounterNames[19], "SKXPort3"}, 94 { X86PfmCounterNames[20], "SKXPort4"}, 95 { X86PfmCounterNames[21], "SKXPort5"}, 96 { X86PfmCounterNames[22], "SKXPort6"}, 97 { X86PfmCounterNames[23], "SKXPort7"}, 98 { X86PfmCounterNames[9], "ZnFPU0"}, 99 { X86PfmCounterNames[10], "ZnFPU1"}, 100 { X86PfmCounterNames[11], "ZnFPU2"}, 101 { X86PfmCounterNames[12], "ZnFPU3"}, 102 { X86PfmCounterNames[8], "ZnDivider"}, 103}; 104 105static const PfmCountersInfo X86AtomPfmCounters = { 106 X86PfmCounterNames[14], // Cycle counter 107 X86PfmCounterNames[35], // Uops counter 108 nullptr, // No issue counters. 109 0 110}; 111 112static const PfmCountersInfo X86BdVer2PfmCounters = { 113 X86PfmCounterNames[0], // Cycle counter 114 X86PfmCounterNames[13], // Uops counter 115 X86PfmIssueCounters + 0, 4 // Issue counters. 116}; 117 118static const PfmCountersInfo X86BdVer3PfmCounters = { 119 X86PfmCounterNames[0], // Cycle counter 120 X86PfmCounterNames[13], // Uops counter 121 X86PfmIssueCounters + 4, 3 // Issue counters. 122}; 123 124static const PfmCountersInfo X86BroadwellPfmCounters = { 125 X86PfmCounterNames[14], // Cycle counter 126 X86PfmCounterNames[32], // Uops counter 127 X86PfmIssueCounters + 7, 8 // Issue counters. 128}; 129 130static const PfmCountersInfo X86BtVer1PfmCounters = { 131 X86PfmCounterNames[0], // Cycle counter 132 X86PfmCounterNames[13], // Uops counter 133 X86PfmIssueCounters + 15, 2 // Issue counters. 134}; 135 136static const PfmCountersInfo X86BtVer2PfmCounters = { 137 X86PfmCounterNames[0], // Cycle counter 138 X86PfmCounterNames[13], // Uops counter 139 X86PfmIssueCounters + 17, 2 // Issue counters. 140}; 141 142static const PfmCountersInfo X86CorePfmCounters = { 143 X86PfmCounterNames[14], // Cycle counter 144 X86PfmCounterNames[35], // Uops counter 145 nullptr, // No issue counters. 146 0 147}; 148 149static const PfmCountersInfo X86DefaultAMDPfmCounters = { 150 X86PfmCounterNames[0], // Cycle counter 151 X86PfmCounterNames[13], // Uops counter 152 nullptr, // No issue counters. 153 0 154}; 155 156static const PfmCountersInfo X86DefaultPfmCounters = { 157 nullptr, // No cycle counter. 158 nullptr, // No uops counter. 159 nullptr, // No issue counters. 160 0 161}; 162 163static const PfmCountersInfo X86HaswellPfmCounters = { 164 X86PfmCounterNames[14], // Cycle counter 165 X86PfmCounterNames[32], // Uops counter 166 X86PfmIssueCounters + 19, 8 // Issue counters. 167}; 168 169static const PfmCountersInfo X86KnightPfmCounters = { 170 X86PfmCounterNames[14], // Cycle counter 171 X86PfmCounterNames[34], // Uops counter 172 nullptr, // No issue counters. 173 0 174}; 175 176static const PfmCountersInfo X86PentiumPfmCounters = { 177 X86PfmCounterNames[0], // Cycle counter 178 X86PfmCounterNames[33], // Uops counter 179 nullptr, // No issue counters. 180 0 181}; 182 183static const PfmCountersInfo X86SLMPfmCounters = { 184 X86PfmCounterNames[14], // Cycle counter 185 X86PfmCounterNames[35], // Uops counter 186 nullptr, // No issue counters. 187 0 188}; 189 190static const PfmCountersInfo X86SandyBridgePfmCounters = { 191 X86PfmCounterNames[14], // Cycle counter 192 X86PfmCounterNames[32], // Uops counter 193 X86PfmIssueCounters + 27, 5 // Issue counters. 194}; 195 196static const PfmCountersInfo X86SkylakeClientPfmCounters = { 197 X86PfmCounterNames[14], // Cycle counter 198 X86PfmCounterNames[32], // Uops counter 199 X86PfmIssueCounters + 32, 8 // Issue counters. 200}; 201 202static const PfmCountersInfo X86SkylakeServerPfmCounters = { 203 X86PfmCounterNames[14], // Cycle counter 204 X86PfmCounterNames[32], // Uops counter 205 X86PfmIssueCounters + 40, 8 // Issue counters. 206}; 207 208static const PfmCountersInfo X86ZnVer1PfmCounters = { 209 X86PfmCounterNames[1], // Cycle counter 210 X86PfmCounterNames[13], // Uops counter 211 X86PfmIssueCounters + 48, 5 // Issue counters. 212}; 213 214// Sorted (by CpuName) array of pfm counters. 215static const CpuAndPfmCounters X86CpuPfmCounters[] = { 216 { "", &X86DefaultPfmCounters }, 217 { "amdfam10", &X86DefaultAMDPfmCounters }, 218 { "athlon", &X86DefaultAMDPfmCounters }, 219 { "athlon-4", &X86DefaultAMDPfmCounters }, 220 { "athlon-fx", &X86DefaultAMDPfmCounters }, 221 { "athlon-mp", &X86DefaultAMDPfmCounters }, 222 { "athlon-tbird", &X86DefaultAMDPfmCounters }, 223 { "athlon-xp", &X86DefaultAMDPfmCounters }, 224 { "athlon64", &X86DefaultAMDPfmCounters }, 225 { "athlon64-sse3", &X86DefaultAMDPfmCounters }, 226 { "atom", &X86AtomPfmCounters }, 227 { "barcelona", &X86DefaultAMDPfmCounters }, 228 { "bdver1", &X86BdVer2PfmCounters }, 229 { "bdver2", &X86BdVer2PfmCounters }, 230 { "bdver3", &X86BdVer3PfmCounters }, 231 { "bdver4", &X86BdVer3PfmCounters }, 232 { "bonnell", &X86AtomPfmCounters }, 233 { "broadwell", &X86BroadwellPfmCounters }, 234 { "btver1", &X86BtVer1PfmCounters }, 235 { "btver2", &X86BtVer2PfmCounters }, 236 { "cannonlake", &X86SkylakeServerPfmCounters }, 237 { "cascadelake", &X86SkylakeServerPfmCounters }, 238 { "core2", &X86CorePfmCounters }, 239 { "corei7", &X86CorePfmCounters }, 240 { "goldmont", &X86SLMPfmCounters }, 241 { "goldmont-plus", &X86SLMPfmCounters }, 242 { "haswell", &X86HaswellPfmCounters }, 243 { "icelake-client", &X86SkylakeServerPfmCounters }, 244 { "icelake-server", &X86SkylakeServerPfmCounters }, 245 { "ivybridge", &X86SandyBridgePfmCounters }, 246 { "k8", &X86DefaultAMDPfmCounters }, 247 { "k8-sse3", &X86DefaultAMDPfmCounters }, 248 { "knl", &X86KnightPfmCounters }, 249 { "knm", &X86KnightPfmCounters }, 250 { "nehalem", &X86CorePfmCounters }, 251 { "opteron", &X86DefaultAMDPfmCounters }, 252 { "opteron-sse3", &X86DefaultAMDPfmCounters }, 253 { "penryn", &X86CorePfmCounters }, 254 { "pentium-m", &X86PentiumPfmCounters }, 255 { "pentium2", &X86PentiumPfmCounters }, 256 { "pentium3", &X86PentiumPfmCounters }, 257 { "pentium3m", &X86PentiumPfmCounters }, 258 { "pentiumpro", &X86PentiumPfmCounters }, 259 { "prescott", &X86CorePfmCounters }, 260 { "sandybridge", &X86SandyBridgePfmCounters }, 261 { "silvermont", &X86SLMPfmCounters }, 262 { "skylake", &X86SkylakeClientPfmCounters }, 263 { "skylake-avx512", &X86SkylakeServerPfmCounters }, 264 { "tremont", &X86SLMPfmCounters }, 265 { "westmere", &X86CorePfmCounters }, 266 { "yonah", &X86CorePfmCounters }, 267 { "znver1", &X86ZnVer1PfmCounters }, 268}; 269 270