• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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