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 "ls_dispatch:ld_dispatch", // 13 25 "ls_dispatch:ld_st_dispatch + ls_dispatch:ld_dispatch + ls_dispatch:store_dispatch", // 14 26 "ls_dispatch:store_dispatch", // 15 27 "mem_uop_retired:any_ld + mem_uop_retired:any_st", // 16 28 "ops_type_dispatched_from_decoder:fp_disp_retire_mode", // 17 29 "ops_type_dispatched_from_decoder:int_disp_retire_mode", // 18 30 "retired_ops", // 19 31 "retired_uops", // 20 32 "rs_uops_dispatched_cycles:port_0", // 21 33 "rs_uops_dispatched_cycles:port_1", // 22 34 "rs_uops_dispatched_cycles:port_2 + rs_uops_dispatched_cycles:port_3", // 23 35 "rs_uops_dispatched_cycles:port_4", // 24 36 "rs_uops_dispatched_cycles:port_5", // 25 37 "unhalted_core_cycles", // 26 38 "uops_dispatched_port:port_0", // 27 39 "uops_dispatched_port:port_1", // 28 40 "uops_dispatched_port:port_2", // 29 41 "uops_dispatched_port:port_2 + uops_dispatched_port:port_3", // 30 42 "uops_dispatched_port:port_2_3", // 31 43 "uops_dispatched_port:port_3", // 32 44 "uops_dispatched_port:port_4", // 33 45 "uops_dispatched_port:port_4_9", // 34 46 "uops_dispatched_port:port_5", // 35 47 "uops_dispatched_port:port_6", // 36 48 "uops_dispatched_port:port_7", // 37 49 "uops_dispatched_port:port_7_8", // 38 50 "uops_executed:port0", // 39 51 "uops_executed:port1", // 40 52 "uops_executed:port2_core + uops_executed:port3_core", // 41 53 "uops_executed:port4_core", // 42 54 "uops_executed:port5", // 43 55 "uops_executed_port:port_0", // 44 56 "uops_executed_port:port_1", // 45 57 "uops_executed_port:port_2", // 46 58 "uops_executed_port:port_3", // 47 59 "uops_executed_port:port_4", // 48 60 "uops_executed_port:port_5", // 49 61 "uops_executed_port:port_6", // 50 62 "uops_executed_port:port_7", // 51 63 "uops_issued:any", // 52 64 "uops_retired", // 53 65 "uops_retired:all", // 54 66 "uops_retired:any", // 55 67}; 68 69static const PfmCountersInfo::IssueCounter X86PfmIssueCounters[] = { 70 { X86PfmCounterNames[4], "PdFPU0"}, 71 { X86PfmCounterNames[5], "PdFPU1"}, 72 { X86PfmCounterNames[6], "PdFPU2"}, 73 { X86PfmCounterNames[7], "PdFPU3"}, 74 { X86PfmCounterNames[4], "SrFPU0"}, 75 { X86PfmCounterNames[5], "SrFPU1"}, 76 { X86PfmCounterNames[6], "SrFPU2"}, 77 { X86PfmCounterNames[44], "BWPort0"}, 78 { X86PfmCounterNames[45], "BWPort1"}, 79 { X86PfmCounterNames[46], "BWPort2"}, 80 { X86PfmCounterNames[47], "BWPort3"}, 81 { X86PfmCounterNames[48], "BWPort4"}, 82 { X86PfmCounterNames[49], "BWPort5"}, 83 { X86PfmCounterNames[50], "BWPort6"}, 84 { X86PfmCounterNames[51], "BWPort7"}, 85 { X86PfmCounterNames[2], "BtFPU0"}, 86 { X86PfmCounterNames[3], "BtFPU1"}, 87 { X86PfmCounterNames[2], "JFPU0"}, 88 { X86PfmCounterNames[3], "JFPU1"}, 89 { X86PfmCounterNames[21], "SBPort0"}, 90 { X86PfmCounterNames[22], "SBPort1"}, 91 { X86PfmCounterNames[23], "SBPort23"}, 92 { X86PfmCounterNames[24], "SBPort4"}, 93 { X86PfmCounterNames[25], "SBPort5"}, 94 { X86PfmCounterNames[44], "HWPort0"}, 95 { X86PfmCounterNames[45], "HWPort1"}, 96 { X86PfmCounterNames[46], "HWPort2"}, 97 { X86PfmCounterNames[47], "HWPort3"}, 98 { X86PfmCounterNames[48], "HWPort4"}, 99 { X86PfmCounterNames[49], "HWPort5"}, 100 { X86PfmCounterNames[50], "HWPort6"}, 101 { X86PfmCounterNames[51], "HWPort7"}, 102 { X86PfmCounterNames[27], "ICXPort0"}, 103 { X86PfmCounterNames[28], "ICXPort1"}, 104 { X86PfmCounterNames[31], "ICXPort23"}, 105 { X86PfmCounterNames[34], "ICXPort49"}, 106 { X86PfmCounterNames[35], "ICXPort5"}, 107 { X86PfmCounterNames[36], "ICXPort6"}, 108 { X86PfmCounterNames[38], "ICXPort78"}, 109 { X86PfmCounterNames[39], "SBPort0"}, 110 { X86PfmCounterNames[40], "SBPort1"}, 111 { X86PfmCounterNames[41], "SBPort23"}, 112 { X86PfmCounterNames[42], "SBPort4"}, 113 { X86PfmCounterNames[43], "SBPort5"}, 114 { X86PfmCounterNames[16], "SLM_MEC_RSV"}, 115 { X86PfmCounterNames[27], "SBPort0"}, 116 { X86PfmCounterNames[28], "SBPort1"}, 117 { X86PfmCounterNames[30], "SBPort23"}, 118 { X86PfmCounterNames[33], "SBPort4"}, 119 { X86PfmCounterNames[35], "SBPort5"}, 120 { X86PfmCounterNames[27], "SKLPort0"}, 121 { X86PfmCounterNames[28], "SKLPort1"}, 122 { X86PfmCounterNames[29], "SKLPort2"}, 123 { X86PfmCounterNames[32], "SKLPort3"}, 124 { X86PfmCounterNames[33], "SKLPort4"}, 125 { X86PfmCounterNames[35], "SKLPort5"}, 126 { X86PfmCounterNames[36], "SKLPort6"}, 127 { X86PfmCounterNames[37], "SKLPort7"}, 128 { X86PfmCounterNames[27], "SKXPort0"}, 129 { X86PfmCounterNames[28], "SKXPort1"}, 130 { X86PfmCounterNames[29], "SKXPort2"}, 131 { X86PfmCounterNames[32], "SKXPort3"}, 132 { X86PfmCounterNames[33], "SKXPort4"}, 133 { X86PfmCounterNames[35], "SKXPort5"}, 134 { X86PfmCounterNames[36], "SKXPort6"}, 135 { X86PfmCounterNames[37], "SKXPort7"}, 136 { X86PfmCounterNames[9], "ZnFPU0"}, 137 { X86PfmCounterNames[10], "ZnFPU1"}, 138 { X86PfmCounterNames[11], "ZnFPU2"}, 139 { X86PfmCounterNames[12], "ZnFPU3"}, 140 { X86PfmCounterNames[14], "ZnAGU"}, 141 { X86PfmCounterNames[8], "ZnDivider"}, 142 { X86PfmCounterNames[14], "Zn2AGU"}, 143 { X86PfmCounterNames[8], "Zn2Divider"}, 144 { X86PfmCounterNames[18], "Zn3Int"}, 145 { X86PfmCounterNames[17], "Zn3FPU"}, 146 { X86PfmCounterNames[13], "Zn3Load"}, 147 { X86PfmCounterNames[15], "Zn3Store"}, 148 { X86PfmCounterNames[8], "Zn3Divider"}, 149}; 150 151static const PfmCountersInfo X86AtomPfmCounters = { 152 X86PfmCounterNames[26], // Cycle counter 153 X86PfmCounterNames[55], // Uops counter 154 nullptr, // No issue counters. 155 0 156}; 157 158static const PfmCountersInfo X86BdVer2PfmCounters = { 159 X86PfmCounterNames[0], // Cycle counter 160 X86PfmCounterNames[20], // Uops counter 161 X86PfmIssueCounters + 0, 4 // Issue counters. 162}; 163 164static const PfmCountersInfo X86BdVer3PfmCounters = { 165 X86PfmCounterNames[0], // Cycle counter 166 X86PfmCounterNames[20], // Uops counter 167 X86PfmIssueCounters + 4, 3 // Issue counters. 168}; 169 170static const PfmCountersInfo X86BroadwellPfmCounters = { 171 X86PfmCounterNames[26], // Cycle counter 172 X86PfmCounterNames[52], // Uops counter 173 X86PfmIssueCounters + 7, 8 // Issue counters. 174}; 175 176static const PfmCountersInfo X86BtVer1PfmCounters = { 177 X86PfmCounterNames[0], // Cycle counter 178 X86PfmCounterNames[20], // Uops counter 179 X86PfmIssueCounters + 15, 2 // Issue counters. 180}; 181 182static const PfmCountersInfo X86BtVer2PfmCounters = { 183 X86PfmCounterNames[0], // Cycle counter 184 X86PfmCounterNames[20], // Uops counter 185 X86PfmIssueCounters + 17, 2 // Issue counters. 186}; 187 188static const PfmCountersInfo X86Core2PfmCounters = { 189 X86PfmCounterNames[26], // Cycle counter 190 X86PfmCounterNames[55], // Uops counter 191 X86PfmIssueCounters + 19, 5 // Issue counters. 192}; 193 194static const PfmCountersInfo X86CorePfmCounters = { 195 X86PfmCounterNames[26], // Cycle counter 196 X86PfmCounterNames[55], // Uops counter 197 nullptr, // No issue counters. 198 0 199}; 200 201static const PfmCountersInfo X86DefaultAMDPfmCounters = { 202 X86PfmCounterNames[0], // Cycle counter 203 X86PfmCounterNames[20], // Uops counter 204 nullptr, // No issue counters. 205 0 206}; 207 208static const PfmCountersInfo X86DefaultPfmCounters = { 209 nullptr, // No cycle counter. 210 nullptr, // No uops counter. 211 nullptr, // No issue counters. 212 0 213}; 214 215static const PfmCountersInfo X86HaswellPfmCounters = { 216 X86PfmCounterNames[26], // Cycle counter 217 X86PfmCounterNames[52], // Uops counter 218 X86PfmIssueCounters + 24, 8 // Issue counters. 219}; 220 221static const PfmCountersInfo X86IceLakePfmCounters = { 222 X86PfmCounterNames[26], // Cycle counter 223 X86PfmCounterNames[52], // Uops counter 224 X86PfmIssueCounters + 32, 7 // Issue counters. 225}; 226 227static const PfmCountersInfo X86KnightPfmCounters = { 228 X86PfmCounterNames[26], // Cycle counter 229 X86PfmCounterNames[54], // Uops counter 230 nullptr, // No issue counters. 231 0 232}; 233 234static const PfmCountersInfo X86NehalemPfmCounters = { 235 X86PfmCounterNames[26], // Cycle counter 236 X86PfmCounterNames[55], // Uops counter 237 X86PfmIssueCounters + 39, 5 // Issue counters. 238}; 239 240static const PfmCountersInfo X86PentiumPfmCounters = { 241 X86PfmCounterNames[0], // Cycle counter 242 X86PfmCounterNames[53], // Uops counter 243 nullptr, // No issue counters. 244 0 245}; 246 247static const PfmCountersInfo X86SLMPfmCounters = { 248 X86PfmCounterNames[26], // Cycle counter 249 X86PfmCounterNames[55], // Uops counter 250 X86PfmIssueCounters + 44, 1 // Issue counters. 251}; 252 253static const PfmCountersInfo X86SandyBridgePfmCounters = { 254 X86PfmCounterNames[26], // Cycle counter 255 X86PfmCounterNames[52], // Uops counter 256 X86PfmIssueCounters + 45, 5 // Issue counters. 257}; 258 259static const PfmCountersInfo X86SkylakeClientPfmCounters = { 260 X86PfmCounterNames[26], // Cycle counter 261 X86PfmCounterNames[52], // Uops counter 262 X86PfmIssueCounters + 50, 8 // Issue counters. 263}; 264 265static const PfmCountersInfo X86SkylakeServerPfmCounters = { 266 X86PfmCounterNames[26], // Cycle counter 267 X86PfmCounterNames[52], // Uops counter 268 X86PfmIssueCounters + 58, 8 // Issue counters. 269}; 270 271static const PfmCountersInfo X86ZnVer1PfmCounters = { 272 X86PfmCounterNames[1], // Cycle counter 273 X86PfmCounterNames[20], // Uops counter 274 X86PfmIssueCounters + 66, 6 // Issue counters. 275}; 276 277static const PfmCountersInfo X86ZnVer2PfmCounters = { 278 X86PfmCounterNames[1], // Cycle counter 279 X86PfmCounterNames[20], // Uops counter 280 X86PfmIssueCounters + 72, 2 // Issue counters. 281}; 282 283static const PfmCountersInfo X86ZnVer3PfmCounters = { 284 X86PfmCounterNames[1], // Cycle counter 285 X86PfmCounterNames[19], // Uops counter 286 X86PfmIssueCounters + 74, 5 // Issue counters. 287}; 288 289// Sorted (by CpuName) array of pfm counters. 290static const CpuAndPfmCounters X86CpuPfmCounters[] = { 291 { "", &X86DefaultPfmCounters }, 292 { "amdfam10", &X86DefaultAMDPfmCounters }, 293 { "athlon", &X86DefaultAMDPfmCounters }, 294 { "athlon-4", &X86DefaultAMDPfmCounters }, 295 { "athlon-fx", &X86DefaultAMDPfmCounters }, 296 { "athlon-mp", &X86DefaultAMDPfmCounters }, 297 { "athlon-tbird", &X86DefaultAMDPfmCounters }, 298 { "athlon-xp", &X86DefaultAMDPfmCounters }, 299 { "athlon64", &X86DefaultAMDPfmCounters }, 300 { "athlon64-sse3", &X86DefaultAMDPfmCounters }, 301 { "atom", &X86AtomPfmCounters }, 302 { "barcelona", &X86DefaultAMDPfmCounters }, 303 { "bdver1", &X86BdVer2PfmCounters }, 304 { "bdver2", &X86BdVer2PfmCounters }, 305 { "bdver3", &X86BdVer3PfmCounters }, 306 { "bdver4", &X86BdVer3PfmCounters }, 307 { "bonnell", &X86AtomPfmCounters }, 308 { "broadwell", &X86BroadwellPfmCounters }, 309 { "btver1", &X86BtVer1PfmCounters }, 310 { "btver2", &X86BtVer2PfmCounters }, 311 { "cannonlake", &X86SkylakeServerPfmCounters }, 312 { "cascadelake", &X86SkylakeServerPfmCounters }, 313 { "core2", &X86Core2PfmCounters }, 314 { "corei7", &X86NehalemPfmCounters }, 315 { "goldmont", &X86SLMPfmCounters }, 316 { "goldmont-plus", &X86SLMPfmCounters }, 317 { "haswell", &X86HaswellPfmCounters }, 318 { "icelake-client", &X86IceLakePfmCounters }, 319 { "icelake-server", &X86IceLakePfmCounters }, 320 { "ivybridge", &X86SandyBridgePfmCounters }, 321 { "k8", &X86DefaultAMDPfmCounters }, 322 { "k8-sse3", &X86DefaultAMDPfmCounters }, 323 { "knl", &X86KnightPfmCounters }, 324 { "knm", &X86KnightPfmCounters }, 325 { "nehalem", &X86NehalemPfmCounters }, 326 { "opteron", &X86DefaultAMDPfmCounters }, 327 { "opteron-sse3", &X86DefaultAMDPfmCounters }, 328 { "penryn", &X86Core2PfmCounters }, 329 { "pentium-m", &X86PentiumPfmCounters }, 330 { "pentium2", &X86PentiumPfmCounters }, 331 { "pentium3", &X86PentiumPfmCounters }, 332 { "pentium3m", &X86PentiumPfmCounters }, 333 { "pentiumpro", &X86PentiumPfmCounters }, 334 { "prescott", &X86CorePfmCounters }, 335 { "rocketlake", &X86IceLakePfmCounters }, 336 { "sandybridge", &X86SandyBridgePfmCounters }, 337 { "silvermont", &X86SLMPfmCounters }, 338 { "skylake", &X86SkylakeClientPfmCounters }, 339 { "skylake-avx512", &X86SkylakeServerPfmCounters }, 340 { "tigerlake", &X86IceLakePfmCounters }, 341 { "tremont", &X86SLMPfmCounters }, 342 { "westmere", &X86NehalemPfmCounters }, 343 { "yonah", &X86CorePfmCounters }, 344 { "znver1", &X86ZnVer1PfmCounters }, 345 { "znver2", &X86ZnVer2PfmCounters }, 346 { "znver3", &X86ZnVer3PfmCounters }, 347 { "znver4", &X86ZnVer3PfmCounters }, 348}; 349 350