1 | /*===- TableGen'erated file -------------------------------------*- C++ -*-===*\ |
2 | |* *| |
3 | |* Target Register Enum Values *| |
4 | |* *| |
5 | |* Automatically generated file, do not edit! *| |
6 | |* *| |
7 | \*===----------------------------------------------------------------------===*/ |
8 | |
9 | |
10 | #ifdef GET_REGINFO_ENUM |
11 | #undef GET_REGINFO_ENUM |
12 | |
13 | namespace llvm { |
14 | |
15 | class MCRegisterClass; |
16 | extern const MCRegisterClass NVPTXMCRegisterClasses[]; |
17 | |
18 | namespace NVPTX { |
19 | enum : unsigned { |
20 | NoRegister, |
21 | VRDepot = 1, |
22 | ENVREG0 = 2, |
23 | ENVREG1 = 3, |
24 | ENVREG2 = 4, |
25 | ENVREG3 = 5, |
26 | ENVREG4 = 6, |
27 | ENVREG5 = 7, |
28 | ENVREG6 = 8, |
29 | ENVREG7 = 9, |
30 | ENVREG8 = 10, |
31 | ENVREG9 = 11, |
32 | ENVREG10 = 12, |
33 | ENVREG11 = 13, |
34 | ENVREG12 = 14, |
35 | ENVREG13 = 15, |
36 | ENVREG14 = 16, |
37 | ENVREG15 = 17, |
38 | ENVREG16 = 18, |
39 | ENVREG17 = 19, |
40 | ENVREG18 = 20, |
41 | ENVREG19 = 21, |
42 | ENVREG20 = 22, |
43 | ENVREG21 = 23, |
44 | ENVREG22 = 24, |
45 | ENVREG23 = 25, |
46 | ENVREG24 = 26, |
47 | ENVREG25 = 27, |
48 | ENVREG26 = 28, |
49 | ENVREG27 = 29, |
50 | ENVREG28 = 30, |
51 | ENVREG29 = 31, |
52 | ENVREG30 = 32, |
53 | ENVREG31 = 33, |
54 | H0 = 34, |
55 | H1 = 35, |
56 | H2 = 36, |
57 | H3 = 37, |
58 | H4 = 38, |
59 | HH0 = 39, |
60 | HH1 = 40, |
61 | HH2 = 41, |
62 | HH3 = 42, |
63 | HH4 = 43, |
64 | P0 = 44, |
65 | P1 = 45, |
66 | P2 = 46, |
67 | P3 = 47, |
68 | P4 = 48, |
69 | R0 = 49, |
70 | R1 = 50, |
71 | R2 = 51, |
72 | R3 = 52, |
73 | R4 = 53, |
74 | RL0 = 54, |
75 | RL1 = 55, |
76 | RL2 = 56, |
77 | RL3 = 57, |
78 | RL4 = 58, |
79 | RQ0 = 59, |
80 | RQ1 = 60, |
81 | RQ2 = 61, |
82 | RQ3 = 62, |
83 | RQ4 = 63, |
84 | RS0 = 64, |
85 | RS1 = 65, |
86 | RS2 = 66, |
87 | RS3 = 67, |
88 | RS4 = 68, |
89 | VRFrame32 = 69, |
90 | VRFrame64 = 70, |
91 | VRFrameLocal32 = 71, |
92 | VRFrameLocal64 = 72, |
93 | da0 = 73, |
94 | da1 = 74, |
95 | da2 = 75, |
96 | da3 = 76, |
97 | da4 = 77, |
98 | fa0 = 78, |
99 | fa1 = 79, |
100 | fa2 = 80, |
101 | fa3 = 81, |
102 | fa4 = 82, |
103 | ia0 = 83, |
104 | ia1 = 84, |
105 | ia2 = 85, |
106 | ia3 = 86, |
107 | ia4 = 87, |
108 | la0 = 88, |
109 | la1 = 89, |
110 | la2 = 90, |
111 | la3 = 91, |
112 | la4 = 92, |
113 | NUM_TARGET_REGS // 93 |
114 | }; |
115 | } // end namespace NVPTX |
116 | |
117 | // Register classes |
118 | |
119 | namespace NVPTX { |
120 | enum { |
121 | B1RegClassID = 0, |
122 | B16RegClassID = 1, |
123 | SpecialRegsRegClassID = 2, |
124 | B32RegClassID = 3, |
125 | B32_and_SpecialRegsRegClassID = 4, |
126 | B64RegClassID = 5, |
127 | B128RegClassID = 6, |
128 | |
129 | }; |
130 | } // end namespace NVPTX |
131 | |
132 | // Register pressure sets enum. |
133 | namespace NVPTX { |
134 | enum RegisterPressureSets { |
135 | B32_and_SpecialRegs = 0, |
136 | B1 = 1, |
137 | B16 = 2, |
138 | B128 = 3, |
139 | B32 = 4, |
140 | B64 = 5, |
141 | SpecialRegs = 6, |
142 | SpecialRegs_with_B32 = 7, |
143 | }; |
144 | } // end namespace NVPTX |
145 | |
146 | } // end namespace llvm |
147 | |
148 | #endif // GET_REGINFO_ENUM |
149 | |
150 | /*===- TableGen'erated file -------------------------------------*- C++ -*-===*\ |
151 | |* *| |
152 | |* MC Register Information *| |
153 | |* *| |
154 | |* Automatically generated file, do not edit! *| |
155 | |* *| |
156 | \*===----------------------------------------------------------------------===*/ |
157 | |
158 | |
159 | #ifdef GET_REGINFO_MC_DESC |
160 | #undef GET_REGINFO_MC_DESC |
161 | |
162 | namespace llvm { |
163 | |
164 | extern const int16_t NVPTXRegDiffLists[] = { |
165 | /* 0 */ 0, |
166 | }; |
167 | |
168 | extern const LaneBitmask NVPTXLaneMaskLists[] = { |
169 | /* 0 */ LaneBitmask(0xFFFFFFFFFFFFFFFF), |
170 | }; |
171 | |
172 | extern const uint16_t NVPTXSubRegIdxLists[] = { |
173 | /* 0 */ |
174 | /* dummy */ 0 |
175 | }; |
176 | |
177 | |
178 | #ifdef __GNUC__ |
179 | #pragma GCC diagnostic push |
180 | #pragma GCC diagnostic ignored "-Woverlength-strings" |
181 | #endif |
182 | extern const char NVPTXRegStrings[] = { |
183 | /* 0 */ "ENVREG10\000" |
184 | /* 9 */ "ENVREG20\000" |
185 | /* 18 */ "ENVREG30\000" |
186 | /* 27 */ "ENVREG0\000" |
187 | /* 35 */ "HH0\000" |
188 | /* 39 */ "RL0\000" |
189 | /* 43 */ "P0\000" |
190 | /* 46 */ "RQ0\000" |
191 | /* 50 */ "R0\000" |
192 | /* 53 */ "RS0\000" |
193 | /* 57 */ "da0\000" |
194 | /* 61 */ "fa0\000" |
195 | /* 65 */ "ia0\000" |
196 | /* 69 */ "la0\000" |
197 | /* 73 */ "ENVREG11\000" |
198 | /* 82 */ "ENVREG21\000" |
199 | /* 91 */ "ENVREG31\000" |
200 | /* 100 */ "ENVREG1\000" |
201 | /* 108 */ "HH1\000" |
202 | /* 112 */ "RL1\000" |
203 | /* 116 */ "P1\000" |
204 | /* 119 */ "RQ1\000" |
205 | /* 123 */ "R1\000" |
206 | /* 126 */ "RS1\000" |
207 | /* 130 */ "da1\000" |
208 | /* 134 */ "fa1\000" |
209 | /* 138 */ "ia1\000" |
210 | /* 142 */ "la1\000" |
211 | /* 146 */ "ENVREG12\000" |
212 | /* 155 */ "ENVREG22\000" |
213 | /* 164 */ "VRFrame32\000" |
214 | /* 174 */ "VRFrameLocal32\000" |
215 | /* 189 */ "ENVREG2\000" |
216 | /* 197 */ "HH2\000" |
217 | /* 201 */ "RL2\000" |
218 | /* 205 */ "P2\000" |
219 | /* 208 */ "RQ2\000" |
220 | /* 212 */ "R2\000" |
221 | /* 215 */ "RS2\000" |
222 | /* 219 */ "da2\000" |
223 | /* 223 */ "fa2\000" |
224 | /* 227 */ "ia2\000" |
225 | /* 231 */ "la2\000" |
226 | /* 235 */ "ENVREG13\000" |
227 | /* 244 */ "ENVREG23\000" |
228 | /* 253 */ "ENVREG3\000" |
229 | /* 261 */ "HH3\000" |
230 | /* 265 */ "RL3\000" |
231 | /* 269 */ "P3\000" |
232 | /* 272 */ "RQ3\000" |
233 | /* 276 */ "R3\000" |
234 | /* 279 */ "RS3\000" |
235 | /* 283 */ "da3\000" |
236 | /* 287 */ "fa3\000" |
237 | /* 291 */ "ia3\000" |
238 | /* 295 */ "la3\000" |
239 | /* 299 */ "ENVREG14\000" |
240 | /* 308 */ "ENVREG24\000" |
241 | /* 317 */ "VRFrame64\000" |
242 | /* 327 */ "VRFrameLocal64\000" |
243 | /* 342 */ "ENVREG4\000" |
244 | /* 350 */ "HH4\000" |
245 | /* 354 */ "RL4\000" |
246 | /* 358 */ "P4\000" |
247 | /* 361 */ "RQ4\000" |
248 | /* 365 */ "R4\000" |
249 | /* 368 */ "RS4\000" |
250 | /* 372 */ "da4\000" |
251 | /* 376 */ "fa4\000" |
252 | /* 380 */ "ia4\000" |
253 | /* 384 */ "la4\000" |
254 | /* 388 */ "ENVREG15\000" |
255 | /* 397 */ "ENVREG25\000" |
256 | /* 406 */ "ENVREG5\000" |
257 | /* 414 */ "ENVREG16\000" |
258 | /* 423 */ "ENVREG26\000" |
259 | /* 432 */ "ENVREG6\000" |
260 | /* 440 */ "ENVREG17\000" |
261 | /* 449 */ "ENVREG27\000" |
262 | /* 458 */ "ENVREG7\000" |
263 | /* 466 */ "ENVREG18\000" |
264 | /* 475 */ "ENVREG28\000" |
265 | /* 484 */ "ENVREG8\000" |
266 | /* 492 */ "ENVREG19\000" |
267 | /* 501 */ "ENVREG29\000" |
268 | /* 510 */ "ENVREG9\000" |
269 | /* 518 */ "VRDepot\000" |
270 | }; |
271 | #ifdef __GNUC__ |
272 | #pragma GCC diagnostic pop |
273 | #endif |
274 | |
275 | extern const MCRegisterDesc NVPTXRegDesc[] = { // Descriptors |
276 | { 8, 0, 0, 0, 0, 0, 0, 0 }, |
277 | { 518, 0, 0, 0, 0, 0, 0, 0 }, |
278 | { 27, 0, 0, 0, 1, 0, 0, 0 }, |
279 | { 100, 0, 0, 0, 2, 0, 0, 0 }, |
280 | { 189, 0, 0, 0, 3, 0, 0, 0 }, |
281 | { 253, 0, 0, 0, 4, 0, 0, 0 }, |
282 | { 342, 0, 0, 0, 5, 0, 0, 0 }, |
283 | { 406, 0, 0, 0, 6, 0, 0, 0 }, |
284 | { 432, 0, 0, 0, 7, 0, 0, 0 }, |
285 | { 458, 0, 0, 0, 8, 0, 0, 0 }, |
286 | { 484, 0, 0, 0, 9, 0, 0, 0 }, |
287 | { 510, 0, 0, 0, 10, 0, 0, 0 }, |
288 | { 0, 0, 0, 0, 11, 0, 0, 0 }, |
289 | { 73, 0, 0, 0, 12, 0, 0, 0 }, |
290 | { 146, 0, 0, 0, 13, 0, 0, 0 }, |
291 | { 235, 0, 0, 0, 14, 0, 0, 0 }, |
292 | { 299, 0, 0, 0, 15, 0, 0, 0 }, |
293 | { 388, 0, 0, 0, 16, 0, 0, 0 }, |
294 | { 414, 0, 0, 0, 17, 0, 0, 0 }, |
295 | { 440, 0, 0, 0, 18, 0, 0, 0 }, |
296 | { 466, 0, 0, 0, 19, 0, 0, 0 }, |
297 | { 492, 0, 0, 0, 20, 0, 0, 0 }, |
298 | { 9, 0, 0, 0, 21, 0, 0, 0 }, |
299 | { 82, 0, 0, 0, 22, 0, 0, 0 }, |
300 | { 155, 0, 0, 0, 23, 0, 0, 0 }, |
301 | { 244, 0, 0, 0, 24, 0, 0, 0 }, |
302 | { 308, 0, 0, 0, 25, 0, 0, 0 }, |
303 | { 397, 0, 0, 0, 26, 0, 0, 0 }, |
304 | { 423, 0, 0, 0, 27, 0, 0, 0 }, |
305 | { 449, 0, 0, 0, 28, 0, 0, 0 }, |
306 | { 475, 0, 0, 0, 29, 0, 0, 0 }, |
307 | { 501, 0, 0, 0, 30, 0, 0, 0 }, |
308 | { 18, 0, 0, 0, 31, 0, 0, 0 }, |
309 | { 91, 0, 0, 0, 32, 0, 0, 0 }, |
310 | { 36, 0, 0, 0, 33, 0, 0, 0 }, |
311 | { 109, 0, 0, 0, 34, 0, 0, 0 }, |
312 | { 198, 0, 0, 0, 35, 0, 0, 0 }, |
313 | { 262, 0, 0, 0, 36, 0, 0, 0 }, |
314 | { 351, 0, 0, 0, 37, 0, 0, 0 }, |
315 | { 35, 0, 0, 0, 38, 0, 0, 0 }, |
316 | { 108, 0, 0, 0, 39, 0, 0, 0 }, |
317 | { 197, 0, 0, 0, 40, 0, 0, 0 }, |
318 | { 261, 0, 0, 0, 41, 0, 0, 0 }, |
319 | { 350, 0, 0, 0, 42, 0, 0, 0 }, |
320 | { 43, 0, 0, 0, 43, 0, 0, 0 }, |
321 | { 116, 0, 0, 0, 44, 0, 0, 0 }, |
322 | { 205, 0, 0, 0, 45, 0, 0, 0 }, |
323 | { 269, 0, 0, 0, 46, 0, 0, 0 }, |
324 | { 358, 0, 0, 0, 47, 0, 0, 0 }, |
325 | { 50, 0, 0, 0, 48, 0, 0, 0 }, |
326 | { 123, 0, 0, 0, 49, 0, 0, 0 }, |
327 | { 212, 0, 0, 0, 50, 0, 0, 0 }, |
328 | { 276, 0, 0, 0, 51, 0, 0, 0 }, |
329 | { 365, 0, 0, 0, 52, 0, 0, 0 }, |
330 | { 39, 0, 0, 0, 53, 0, 0, 0 }, |
331 | { 112, 0, 0, 0, 54, 0, 0, 0 }, |
332 | { 201, 0, 0, 0, 55, 0, 0, 0 }, |
333 | { 265, 0, 0, 0, 56, 0, 0, 0 }, |
334 | { 354, 0, 0, 0, 57, 0, 0, 0 }, |
335 | { 46, 0, 0, 0, 58, 0, 0, 0 }, |
336 | { 119, 0, 0, 0, 59, 0, 0, 0 }, |
337 | { 208, 0, 0, 0, 60, 0, 0, 0 }, |
338 | { 272, 0, 0, 0, 61, 0, 0, 0 }, |
339 | { 361, 0, 0, 0, 62, 0, 0, 0 }, |
340 | { 53, 0, 0, 0, 63, 0, 0, 0 }, |
341 | { 126, 0, 0, 0, 64, 0, 0, 0 }, |
342 | { 215, 0, 0, 0, 65, 0, 0, 0 }, |
343 | { 279, 0, 0, 0, 66, 0, 0, 0 }, |
344 | { 368, 0, 0, 0, 67, 0, 0, 0 }, |
345 | { 164, 0, 0, 0, 68, 0, 0, 0 }, |
346 | { 317, 0, 0, 0, 69, 0, 0, 0 }, |
347 | { 174, 0, 0, 0, 70, 0, 0, 0 }, |
348 | { 327, 0, 0, 0, 71, 0, 0, 0 }, |
349 | { 57, 0, 0, 0, 72, 0, 0, 0 }, |
350 | { 130, 0, 0, 0, 73, 0, 0, 0 }, |
351 | { 219, 0, 0, 0, 74, 0, 0, 0 }, |
352 | { 283, 0, 0, 0, 75, 0, 0, 0 }, |
353 | { 372, 0, 0, 0, 76, 0, 0, 0 }, |
354 | { 61, 0, 0, 0, 77, 0, 0, 0 }, |
355 | { 134, 0, 0, 0, 78, 0, 0, 0 }, |
356 | { 223, 0, 0, 0, 79, 0, 0, 0 }, |
357 | { 287, 0, 0, 0, 80, 0, 0, 0 }, |
358 | { 376, 0, 0, 0, 81, 0, 0, 0 }, |
359 | { 65, 0, 0, 0, 82, 0, 0, 0 }, |
360 | { 138, 0, 0, 0, 83, 0, 0, 0 }, |
361 | { 227, 0, 0, 0, 84, 0, 0, 0 }, |
362 | { 291, 0, 0, 0, 85, 0, 0, 0 }, |
363 | { 380, 0, 0, 0, 86, 0, 0, 0 }, |
364 | { 69, 0, 0, 0, 87, 0, 0, 0 }, |
365 | { 142, 0, 0, 0, 88, 0, 0, 0 }, |
366 | { 231, 0, 0, 0, 89, 0, 0, 0 }, |
367 | { 295, 0, 0, 0, 90, 0, 0, 0 }, |
368 | { 384, 0, 0, 0, 91, 0, 0, 0 }, |
369 | }; |
370 | |
371 | extern const MCPhysReg NVPTXRegUnitRoots[][2] = { |
372 | { NVPTX::VRDepot }, |
373 | { NVPTX::ENVREG0 }, |
374 | { NVPTX::ENVREG1 }, |
375 | { NVPTX::ENVREG2 }, |
376 | { NVPTX::ENVREG3 }, |
377 | { NVPTX::ENVREG4 }, |
378 | { NVPTX::ENVREG5 }, |
379 | { NVPTX::ENVREG6 }, |
380 | { NVPTX::ENVREG7 }, |
381 | { NVPTX::ENVREG8 }, |
382 | { NVPTX::ENVREG9 }, |
383 | { NVPTX::ENVREG10 }, |
384 | { NVPTX::ENVREG11 }, |
385 | { NVPTX::ENVREG12 }, |
386 | { NVPTX::ENVREG13 }, |
387 | { NVPTX::ENVREG14 }, |
388 | { NVPTX::ENVREG15 }, |
389 | { NVPTX::ENVREG16 }, |
390 | { NVPTX::ENVREG17 }, |
391 | { NVPTX::ENVREG18 }, |
392 | { NVPTX::ENVREG19 }, |
393 | { NVPTX::ENVREG20 }, |
394 | { NVPTX::ENVREG21 }, |
395 | { NVPTX::ENVREG22 }, |
396 | { NVPTX::ENVREG23 }, |
397 | { NVPTX::ENVREG24 }, |
398 | { NVPTX::ENVREG25 }, |
399 | { NVPTX::ENVREG26 }, |
400 | { NVPTX::ENVREG27 }, |
401 | { NVPTX::ENVREG28 }, |
402 | { NVPTX::ENVREG29 }, |
403 | { NVPTX::ENVREG30 }, |
404 | { NVPTX::ENVREG31 }, |
405 | { NVPTX::H0 }, |
406 | { NVPTX::H1 }, |
407 | { NVPTX::H2 }, |
408 | { NVPTX::H3 }, |
409 | { NVPTX::H4 }, |
410 | { NVPTX::HH0 }, |
411 | { NVPTX::HH1 }, |
412 | { NVPTX::HH2 }, |
413 | { NVPTX::HH3 }, |
414 | { NVPTX::HH4 }, |
415 | { NVPTX::P0 }, |
416 | { NVPTX::P1 }, |
417 | { NVPTX::P2 }, |
418 | { NVPTX::P3 }, |
419 | { NVPTX::P4 }, |
420 | { NVPTX::R0 }, |
421 | { NVPTX::R1 }, |
422 | { NVPTX::R2 }, |
423 | { NVPTX::R3 }, |
424 | { NVPTX::R4 }, |
425 | { NVPTX::RL0 }, |
426 | { NVPTX::RL1 }, |
427 | { NVPTX::RL2 }, |
428 | { NVPTX::RL3 }, |
429 | { NVPTX::RL4 }, |
430 | { NVPTX::RQ0 }, |
431 | { NVPTX::RQ1 }, |
432 | { NVPTX::RQ2 }, |
433 | { NVPTX::RQ3 }, |
434 | { NVPTX::RQ4 }, |
435 | { NVPTX::RS0 }, |
436 | { NVPTX::RS1 }, |
437 | { NVPTX::RS2 }, |
438 | { NVPTX::RS3 }, |
439 | { NVPTX::RS4 }, |
440 | { NVPTX::VRFrame32 }, |
441 | { NVPTX::VRFrame64 }, |
442 | { NVPTX::VRFrameLocal32 }, |
443 | { NVPTX::VRFrameLocal64 }, |
444 | { NVPTX::da0 }, |
445 | { NVPTX::da1 }, |
446 | { NVPTX::da2 }, |
447 | { NVPTX::da3 }, |
448 | { NVPTX::da4 }, |
449 | { NVPTX::fa0 }, |
450 | { NVPTX::fa1 }, |
451 | { NVPTX::fa2 }, |
452 | { NVPTX::fa3 }, |
453 | { NVPTX::fa4 }, |
454 | { NVPTX::ia0 }, |
455 | { NVPTX::ia1 }, |
456 | { NVPTX::ia2 }, |
457 | { NVPTX::ia3 }, |
458 | { NVPTX::ia4 }, |
459 | { NVPTX::la0 }, |
460 | { NVPTX::la1 }, |
461 | { NVPTX::la2 }, |
462 | { NVPTX::la3 }, |
463 | { NVPTX::la4 }, |
464 | }; |
465 | |
466 | namespace { // Register classes... |
467 | // B1 Register Class... |
468 | const MCPhysReg B1[] = { |
469 | NVPTX::P0, NVPTX::P1, NVPTX::P2, NVPTX::P3, NVPTX::P4, |
470 | }; |
471 | |
472 | // B1 Bit set. |
473 | const uint8_t B1Bits[] = { |
474 | 0x00, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x01, |
475 | }; |
476 | |
477 | // B16 Register Class... |
478 | const MCPhysReg B16[] = { |
479 | NVPTX::RS0, NVPTX::RS1, NVPTX::RS2, NVPTX::RS3, NVPTX::RS4, |
480 | }; |
481 | |
482 | // B16 Bit set. |
483 | const uint8_t B16Bits[] = { |
484 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x1f, |
485 | }; |
486 | |
487 | // SpecialRegs Register Class... |
488 | const MCPhysReg SpecialRegs[] = { |
489 | NVPTX::VRFrame32, NVPTX::VRFrameLocal32, NVPTX::VRDepot, NVPTX::ENVREG0, NVPTX::ENVREG1, NVPTX::ENVREG2, NVPTX::ENVREG3, NVPTX::ENVREG4, NVPTX::ENVREG5, NVPTX::ENVREG6, NVPTX::ENVREG7, NVPTX::ENVREG8, NVPTX::ENVREG9, NVPTX::ENVREG10, NVPTX::ENVREG11, NVPTX::ENVREG12, NVPTX::ENVREG13, NVPTX::ENVREG14, NVPTX::ENVREG15, NVPTX::ENVREG16, NVPTX::ENVREG17, NVPTX::ENVREG18, NVPTX::ENVREG19, NVPTX::ENVREG20, NVPTX::ENVREG21, NVPTX::ENVREG22, NVPTX::ENVREG23, NVPTX::ENVREG24, NVPTX::ENVREG25, NVPTX::ENVREG26, NVPTX::ENVREG27, NVPTX::ENVREG28, NVPTX::ENVREG29, NVPTX::ENVREG30, NVPTX::ENVREG31, |
490 | }; |
491 | |
492 | // SpecialRegs Bit set. |
493 | const uint8_t SpecialRegsBits[] = { |
494 | 0xfe, 0xff, 0xff, 0xff, 0x03, 0x00, 0x00, 0x00, 0xa0, |
495 | }; |
496 | |
497 | // B32 Register Class... |
498 | const MCPhysReg B32[] = { |
499 | NVPTX::R0, NVPTX::R1, NVPTX::R2, NVPTX::R3, NVPTX::R4, NVPTX::VRFrame32, NVPTX::VRFrameLocal32, |
500 | }; |
501 | |
502 | // B32 Bit set. |
503 | const uint8_t B32Bits[] = { |
504 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x3e, 0x00, 0xa0, |
505 | }; |
506 | |
507 | // B32_and_SpecialRegs Register Class... |
508 | const MCPhysReg B32_and_SpecialRegs[] = { |
509 | NVPTX::VRFrame32, NVPTX::VRFrameLocal32, |
510 | }; |
511 | |
512 | // B32_and_SpecialRegs Bit set. |
513 | const uint8_t B32_and_SpecialRegsBits[] = { |
514 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xa0, |
515 | }; |
516 | |
517 | // B64 Register Class... |
518 | const MCPhysReg B64[] = { |
519 | NVPTX::RL0, NVPTX::RL1, NVPTX::RL2, NVPTX::RL3, NVPTX::RL4, NVPTX::VRFrame64, NVPTX::VRFrameLocal64, |
520 | }; |
521 | |
522 | // B64 Bit set. |
523 | const uint8_t B64Bits[] = { |
524 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x07, 0x40, 0x01, |
525 | }; |
526 | |
527 | // B128 Register Class... |
528 | const MCPhysReg B128[] = { |
529 | NVPTX::RQ0, NVPTX::RQ1, NVPTX::RQ2, NVPTX::RQ3, NVPTX::RQ4, |
530 | }; |
531 | |
532 | // B128 Bit set. |
533 | const uint8_t B128Bits[] = { |
534 | 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xf8, |
535 | }; |
536 | |
537 | } // end anonymous namespace |
538 | |
539 | |
540 | #ifdef __GNUC__ |
541 | #pragma GCC diagnostic push |
542 | #pragma GCC diagnostic ignored "-Woverlength-strings" |
543 | #endif |
544 | extern const char NVPTXRegClassStrings[] = { |
545 | /* 0 */ "B1\000" |
546 | /* 3 */ "B32\000" |
547 | /* 7 */ "B64\000" |
548 | /* 11 */ "B16\000" |
549 | /* 15 */ "B128\000" |
550 | /* 20 */ "B32_and_SpecialRegs\000" |
551 | }; |
552 | #ifdef __GNUC__ |
553 | #pragma GCC diagnostic pop |
554 | #endif |
555 | |
556 | extern const MCRegisterClass NVPTXMCRegisterClasses[] = { |
557 | { B1, B1Bits, 0, 5, sizeof(B1Bits), NVPTX::B1RegClassID, 1, 1, true, false }, |
558 | { B16, B16Bits, 11, 5, sizeof(B16Bits), NVPTX::B16RegClassID, 16, 1, true, false }, |
559 | { SpecialRegs, SpecialRegsBits, 28, 35, sizeof(SpecialRegsBits), NVPTX::SpecialRegsRegClassID, 32, 1, true, false }, |
560 | { B32, B32Bits, 3, 7, sizeof(B32Bits), NVPTX::B32RegClassID, 32, 1, true, false }, |
561 | { B32_and_SpecialRegs, B32_and_SpecialRegsBits, 20, 2, sizeof(B32_and_SpecialRegsBits), NVPTX::B32_and_SpecialRegsRegClassID, 32, 1, true, false }, |
562 | { B64, B64Bits, 7, 7, sizeof(B64Bits), NVPTX::B64RegClassID, 64, 1, true, false }, |
563 | { B128, B128Bits, 15, 5, sizeof(B128Bits), NVPTX::B128RegClassID, 128, 1, true, false }, |
564 | }; |
565 | |
566 | extern const uint16_t NVPTXRegEncodingTable[] = { |
567 | 0, |
568 | 0, |
569 | 0, |
570 | 0, |
571 | 0, |
572 | 0, |
573 | 0, |
574 | 0, |
575 | 0, |
576 | 0, |
577 | 0, |
578 | 0, |
579 | 0, |
580 | 0, |
581 | 0, |
582 | 0, |
583 | 0, |
584 | 0, |
585 | 0, |
586 | 0, |
587 | 0, |
588 | 0, |
589 | 0, |
590 | 0, |
591 | 0, |
592 | 0, |
593 | 0, |
594 | 0, |
595 | 0, |
596 | 0, |
597 | 0, |
598 | 0, |
599 | 0, |
600 | 0, |
601 | 0, |
602 | 0, |
603 | 0, |
604 | 0, |
605 | 0, |
606 | 0, |
607 | 0, |
608 | 0, |
609 | 0, |
610 | 0, |
611 | 0, |
612 | 0, |
613 | 0, |
614 | 0, |
615 | 0, |
616 | 0, |
617 | 0, |
618 | 0, |
619 | 0, |
620 | 0, |
621 | 0, |
622 | 0, |
623 | 0, |
624 | 0, |
625 | 0, |
626 | 0, |
627 | 0, |
628 | 0, |
629 | 0, |
630 | 0, |
631 | 0, |
632 | 0, |
633 | 0, |
634 | 0, |
635 | 0, |
636 | 0, |
637 | 0, |
638 | 0, |
639 | 0, |
640 | 0, |
641 | 0, |
642 | 0, |
643 | 0, |
644 | 0, |
645 | 0, |
646 | 0, |
647 | 0, |
648 | 0, |
649 | 0, |
650 | 0, |
651 | 0, |
652 | 0, |
653 | 0, |
654 | 0, |
655 | 0, |
656 | 0, |
657 | 0, |
658 | 0, |
659 | 0, |
660 | }; |
661 | static inline void InitNVPTXMCRegisterInfo(MCRegisterInfo *RI, unsigned RA, unsigned DwarfFlavour = 0, unsigned EHFlavour = 0, unsigned PC = 0) { |
662 | RI->InitMCRegisterInfo(NVPTXRegDesc, 93, RA, PC, NVPTXMCRegisterClasses, 7, NVPTXRegUnitRoots, 92, NVPTXRegDiffLists, NVPTXLaneMaskLists, NVPTXRegStrings, NVPTXRegClassStrings, NVPTXSubRegIdxLists, 1, |
663 | NVPTXRegEncodingTable); |
664 | |
665 | } |
666 | |
667 | } // end namespace llvm |
668 | |
669 | #endif // GET_REGINFO_MC_DESC |
670 | |
671 | /*===- TableGen'erated file -------------------------------------*- C++ -*-===*\ |
672 | |* *| |
673 | |* Register Information Header Fragment *| |
674 | |* *| |
675 | |* Automatically generated file, do not edit! *| |
676 | |* *| |
677 | \*===----------------------------------------------------------------------===*/ |
678 | |
679 | |
680 | #ifdef GET_REGINFO_HEADER |
681 | #undef GET_REGINFO_HEADER |
682 | |
683 | #include "llvm/CodeGen/TargetRegisterInfo.h" |
684 | |
685 | namespace llvm { |
686 | |
687 | class NVPTXFrameLowering; |
688 | |
689 | struct NVPTXGenRegisterInfo : public TargetRegisterInfo { |
690 | explicit NVPTXGenRegisterInfo(unsigned RA, unsigned D = 0, unsigned E = 0, |
691 | unsigned PC = 0, unsigned HwMode = 0); |
692 | const RegClassWeight &getRegClassWeight(const TargetRegisterClass *RC) const override; |
693 | unsigned getRegUnitWeight(unsigned RegUnit) const override; |
694 | unsigned getNumRegPressureSets() const override; |
695 | const char *getRegPressureSetName(unsigned Idx) const override; |
696 | unsigned getRegPressureSetLimit(const MachineFunction &MF, unsigned Idx) const override; |
697 | const int *getRegClassPressureSets(const TargetRegisterClass *RC) const override; |
698 | const int *getRegUnitPressureSets(unsigned RegUnit) const override; |
699 | ArrayRef<const char *> getRegMaskNames() const override; |
700 | ArrayRef<const uint32_t *> getRegMasks() const override; |
701 | bool isGeneralPurposeRegister(const MachineFunction &, MCRegister) const override; |
702 | bool isGeneralPurposeRegisterClass(const TargetRegisterClass *RC) const override; |
703 | bool isFixedRegister(const MachineFunction &, MCRegister) const override; |
704 | bool isArgumentRegister(const MachineFunction &, MCRegister) const override; |
705 | bool isConstantPhysReg(MCRegister PhysReg) const override final; |
706 | /// Devirtualized TargetFrameLowering. |
707 | static const NVPTXFrameLowering *getFrameLowering( |
708 | const MachineFunction &MF); |
709 | }; |
710 | |
711 | namespace NVPTX { // Register classes |
712 | extern const TargetRegisterClass B1RegClass; |
713 | extern const TargetRegisterClass B16RegClass; |
714 | extern const TargetRegisterClass SpecialRegsRegClass; |
715 | extern const TargetRegisterClass B32RegClass; |
716 | extern const TargetRegisterClass B32_and_SpecialRegsRegClass; |
717 | extern const TargetRegisterClass B64RegClass; |
718 | extern const TargetRegisterClass B128RegClass; |
719 | } // end namespace NVPTX |
720 | |
721 | } // end namespace llvm |
722 | |
723 | #endif // GET_REGINFO_HEADER |
724 | |
725 | /*===- TableGen'erated file -------------------------------------*- C++ -*-===*\ |
726 | |* *| |
727 | |* Target Register and Register Classes Information *| |
728 | |* *| |
729 | |* Automatically generated file, do not edit! *| |
730 | |* *| |
731 | \*===----------------------------------------------------------------------===*/ |
732 | |
733 | |
734 | #ifdef GET_REGINFO_TARGET_DESC |
735 | #undef GET_REGINFO_TARGET_DESC |
736 | |
737 | namespace llvm { |
738 | |
739 | extern const MCRegisterClass NVPTXMCRegisterClasses[]; |
740 | |
741 | static const MVT::SimpleValueType VTLists[] = { |
742 | /* 0 */ MVT::i1, MVT::Other, |
743 | /* 2 */ MVT::i32, MVT::Other, |
744 | /* 4 */ MVT::i128, MVT::Other, |
745 | /* 6 */ MVT::i16, MVT::f16, MVT::bf16, MVT::Other, |
746 | /* 10 */ MVT::i32, MVT::v2f16, MVT::v2bf16, MVT::v2i16, MVT::v4i8, MVT::f32, MVT::Other, |
747 | /* 17 */ MVT::i64, MVT::f64, MVT::Other, |
748 | }; |
749 | |
750 | static const char *SubRegIndexNameTable[] = { "" }; |
751 | |
752 | static const TargetRegisterInfo::SubRegCoveredBits SubRegIdxRangeTable[] = { |
753 | { 65535, 65535 }, |
754 | }; |
755 | |
756 | |
757 | static const LaneBitmask SubRegIndexLaneMaskTable[] = { |
758 | LaneBitmask::getAll(), |
759 | }; |
760 | |
761 | |
762 | |
763 | static const TargetRegisterInfo::RegClassInfo RegClassInfos[] = { |
764 | // Mode = 0 (Default) |
765 | { 1, 1, 8, /*VTLists+*/0 }, // B1 |
766 | { 16, 16, 16, /*VTLists+*/6 }, // B16 |
767 | { 32, 32, 32, /*VTLists+*/2 }, // SpecialRegs |
768 | { 32, 32, 32, /*VTLists+*/10 }, // B32 |
769 | { 32, 32, 32, /*VTLists+*/10 }, // B32_and_SpecialRegs |
770 | { 64, 64, 64, /*VTLists+*/17 }, // B64 |
771 | { 128, 128, 128, /*VTLists+*/4 }, // B128 |
772 | }; |
773 | static const uint32_t B1SubClassMask[] = { |
774 | 0x00000001, |
775 | }; |
776 | |
777 | static const uint32_t B16SubClassMask[] = { |
778 | 0x00000002, |
779 | }; |
780 | |
781 | static const uint32_t SpecialRegsSubClassMask[] = { |
782 | 0x00000014, |
783 | }; |
784 | |
785 | static const uint32_t B32SubClassMask[] = { |
786 | 0x00000018, |
787 | }; |
788 | |
789 | static const uint32_t B32_and_SpecialRegsSubClassMask[] = { |
790 | 0x00000010, |
791 | }; |
792 | |
793 | static const uint32_t B64SubClassMask[] = { |
794 | 0x00000020, |
795 | }; |
796 | |
797 | static const uint32_t B128SubClassMask[] = { |
798 | 0x00000040, |
799 | }; |
800 | |
801 | static const uint16_t SuperRegIdxSeqs[] = { |
802 | /* 0 */ 0, |
803 | }; |
804 | |
805 | static unsigned const B32_and_SpecialRegsSuperclasses[] = { |
806 | NVPTX::SpecialRegsRegClassID, |
807 | NVPTX::B32RegClassID, |
808 | }; |
809 | |
810 | |
811 | namespace NVPTX { // Register class instances |
812 | extern const TargetRegisterClass B1RegClass = { |
813 | &NVPTXMCRegisterClasses[B1RegClassID], |
814 | B1SubClassMask, |
815 | SuperRegIdxSeqs + 0, |
816 | LaneBitmask(0x0000000000000001), |
817 | 0, |
818 | false, |
819 | 0x00, /* TSFlags */ |
820 | false, /* HasDisjunctSubRegs */ |
821 | false, /* CoveredBySubRegs */ |
822 | nullptr, 0, |
823 | nullptr |
824 | }; |
825 | |
826 | extern const TargetRegisterClass B16RegClass = { |
827 | &NVPTXMCRegisterClasses[B16RegClassID], |
828 | B16SubClassMask, |
829 | SuperRegIdxSeqs + 0, |
830 | LaneBitmask(0x0000000000000001), |
831 | 0, |
832 | false, |
833 | 0x00, /* TSFlags */ |
834 | false, /* HasDisjunctSubRegs */ |
835 | false, /* CoveredBySubRegs */ |
836 | nullptr, 0, |
837 | nullptr |
838 | }; |
839 | |
840 | extern const TargetRegisterClass SpecialRegsRegClass = { |
841 | &NVPTXMCRegisterClasses[SpecialRegsRegClassID], |
842 | SpecialRegsSubClassMask, |
843 | SuperRegIdxSeqs + 0, |
844 | LaneBitmask(0x0000000000000001), |
845 | 0, |
846 | false, |
847 | 0x00, /* TSFlags */ |
848 | false, /* HasDisjunctSubRegs */ |
849 | false, /* CoveredBySubRegs */ |
850 | nullptr, 0, |
851 | nullptr |
852 | }; |
853 | |
854 | extern const TargetRegisterClass B32RegClass = { |
855 | &NVPTXMCRegisterClasses[B32RegClassID], |
856 | B32SubClassMask, |
857 | SuperRegIdxSeqs + 0, |
858 | LaneBitmask(0x0000000000000001), |
859 | 0, |
860 | false, |
861 | 0x00, /* TSFlags */ |
862 | false, /* HasDisjunctSubRegs */ |
863 | false, /* CoveredBySubRegs */ |
864 | nullptr, 0, |
865 | nullptr |
866 | }; |
867 | |
868 | extern const TargetRegisterClass B32_and_SpecialRegsRegClass = { |
869 | &NVPTXMCRegisterClasses[B32_and_SpecialRegsRegClassID], |
870 | B32_and_SpecialRegsSubClassMask, |
871 | SuperRegIdxSeqs + 0, |
872 | LaneBitmask(0x0000000000000001), |
873 | 0, |
874 | false, |
875 | 0x00, /* TSFlags */ |
876 | false, /* HasDisjunctSubRegs */ |
877 | false, /* CoveredBySubRegs */ |
878 | B32_and_SpecialRegsSuperclasses, 2, |
879 | nullptr |
880 | }; |
881 | |
882 | extern const TargetRegisterClass B64RegClass = { |
883 | &NVPTXMCRegisterClasses[B64RegClassID], |
884 | B64SubClassMask, |
885 | SuperRegIdxSeqs + 0, |
886 | LaneBitmask(0x0000000000000001), |
887 | 0, |
888 | false, |
889 | 0x00, /* TSFlags */ |
890 | false, /* HasDisjunctSubRegs */ |
891 | false, /* CoveredBySubRegs */ |
892 | nullptr, 0, |
893 | nullptr |
894 | }; |
895 | |
896 | extern const TargetRegisterClass B128RegClass = { |
897 | &NVPTXMCRegisterClasses[B128RegClassID], |
898 | B128SubClassMask, |
899 | SuperRegIdxSeqs + 0, |
900 | LaneBitmask(0x0000000000000001), |
901 | 0, |
902 | false, |
903 | 0x00, /* TSFlags */ |
904 | false, /* HasDisjunctSubRegs */ |
905 | false, /* CoveredBySubRegs */ |
906 | nullptr, 0, |
907 | nullptr |
908 | }; |
909 | |
910 | } // end namespace NVPTX |
911 | |
912 | namespace { |
913 | const TargetRegisterClass *const RegisterClasses[] = { |
914 | &NVPTX::B1RegClass, |
915 | &NVPTX::B16RegClass, |
916 | &NVPTX::SpecialRegsRegClass, |
917 | &NVPTX::B32RegClass, |
918 | &NVPTX::B32_and_SpecialRegsRegClass, |
919 | &NVPTX::B64RegClass, |
920 | &NVPTX::B128RegClass, |
921 | }; |
922 | } // end anonymous namespace |
923 | |
924 | static const uint8_t CostPerUseTable[] = { |
925 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; |
926 | |
927 | |
928 | static const bool InAllocatableClassTable[] = { |
929 | false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, false, false, false, false, false, false, false, false, false, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, true, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, false, }; |
930 | |
931 | |
932 | static const TargetRegisterInfoDesc NVPTXRegInfoDesc = { // Extra Descriptors |
933 | CostPerUseTable, 1, InAllocatableClassTable}; |
934 | |
935 | /// Get the weight in units of pressure for this register class. |
936 | const RegClassWeight &NVPTXGenRegisterInfo:: |
937 | getRegClassWeight(const TargetRegisterClass *RC) const { |
938 | static const RegClassWeight RCWeightTable[] = { |
939 | {1, 5}, // B1 |
940 | {1, 5}, // B16 |
941 | {1, 35}, // SpecialRegs |
942 | {1, 7}, // B32 |
943 | {1, 2}, // B32_and_SpecialRegs |
944 | {1, 7}, // B64 |
945 | {1, 5}, // B128 |
946 | }; |
947 | return RCWeightTable[RC->getID()]; |
948 | } |
949 | |
950 | /// Get the weight in units of pressure for this register unit. |
951 | unsigned NVPTXGenRegisterInfo:: |
952 | getRegUnitWeight(unsigned RegUnit) const { |
953 | assert(RegUnit < 92 && "invalid register unit" ); |
954 | // All register units have unit weight. |
955 | return 1; |
956 | } |
957 | |
958 | |
959 | // Get the number of dimensions of register pressure. |
960 | unsigned NVPTXGenRegisterInfo::getNumRegPressureSets() const { |
961 | return 8; |
962 | } |
963 | |
964 | // Get the name of this register unit pressure set. |
965 | const char *NVPTXGenRegisterInfo:: |
966 | getRegPressureSetName(unsigned Idx) const { |
967 | static const char *PressureNameTable[] = { |
968 | "B32_and_SpecialRegs" , |
969 | "B1" , |
970 | "B16" , |
971 | "B128" , |
972 | "B32" , |
973 | "B64" , |
974 | "SpecialRegs" , |
975 | "SpecialRegs_with_B32" , |
976 | }; |
977 | return PressureNameTable[Idx]; |
978 | } |
979 | |
980 | // Get the register unit pressure limit for this dimension. |
981 | // This limit must be adjusted dynamically for reserved registers. |
982 | unsigned NVPTXGenRegisterInfo:: |
983 | getRegPressureSetLimit(const MachineFunction &MF, unsigned Idx) const { |
984 | static const uint8_t PressureLimitTable[] = { |
985 | 2, // 0: B32_and_SpecialRegs |
986 | 5, // 1: B1 |
987 | 5, // 2: B16 |
988 | 5, // 3: B128 |
989 | 7, // 4: B32 |
990 | 7, // 5: B64 |
991 | 35, // 6: SpecialRegs |
992 | 40, // 7: SpecialRegs_with_B32 |
993 | }; |
994 | return PressureLimitTable[Idx]; |
995 | } |
996 | |
997 | /// Table of pressure sets per register class or unit. |
998 | static const int RCSetsTable[] = { |
999 | /* 0 */ 1, -1, |
1000 | /* 2 */ 2, -1, |
1001 | /* 4 */ 3, -1, |
1002 | /* 6 */ 5, -1, |
1003 | /* 8 */ 4, 7, -1, |
1004 | /* 11 */ 0, 4, 6, 7, -1, |
1005 | }; |
1006 | |
1007 | /// Get the dimensions of register pressure impacted by this register class. |
1008 | /// Returns a -1 terminated array of pressure set IDs |
1009 | const int *NVPTXGenRegisterInfo:: |
1010 | getRegClassPressureSets(const TargetRegisterClass *RC) const { |
1011 | static const uint8_t RCSetStartTable[] = { |
1012 | 0,2,13,8,11,6,4,}; |
1013 | return &RCSetsTable[RCSetStartTable[RC->getID()]]; |
1014 | } |
1015 | |
1016 | /// Get the dimensions of register pressure impacted by this register unit. |
1017 | /// Returns a -1 terminated array of pressure set IDs |
1018 | const int *NVPTXGenRegisterInfo:: |
1019 | getRegUnitPressureSets(unsigned RegUnit) const { |
1020 | assert(RegUnit < 92 && "invalid register unit" ); |
1021 | static const uint8_t RUSetStartTable[] = { |
1022 | 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,8,8,8,8,8,6,6,6,6,6,4,4,4,4,4,2,2,2,2,2,11,6,11,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,}; |
1023 | return &RCSetsTable[RUSetStartTable[RegUnit]]; |
1024 | } |
1025 | |
1026 | extern const MCRegisterDesc NVPTXRegDesc[]; |
1027 | extern const int16_t NVPTXRegDiffLists[]; |
1028 | extern const LaneBitmask NVPTXLaneMaskLists[]; |
1029 | extern const char NVPTXRegStrings[]; |
1030 | extern const char NVPTXRegClassStrings[]; |
1031 | extern const MCPhysReg NVPTXRegUnitRoots[][2]; |
1032 | extern const uint16_t NVPTXSubRegIdxLists[]; |
1033 | extern const uint16_t NVPTXRegEncodingTable[]; |
1034 | NVPTXGenRegisterInfo:: |
1035 | NVPTXGenRegisterInfo(unsigned RA, unsigned DwarfFlavour, unsigned EHFlavour, |
1036 | unsigned PC, unsigned HwMode) |
1037 | : TargetRegisterInfo(&NVPTXRegInfoDesc, RegisterClasses, RegisterClasses+7, |
1038 | SubRegIndexNameTable, SubRegIdxRangeTable, SubRegIndexLaneMaskTable, |
1039 | LaneBitmask(0xFFFFFFFFFFFFFFFF), RegClassInfos, VTLists, HwMode) { |
1040 | InitMCRegisterInfo(NVPTXRegDesc, 93, RA, PC, |
1041 | NVPTXMCRegisterClasses, 7, |
1042 | NVPTXRegUnitRoots, |
1043 | 92, |
1044 | NVPTXRegDiffLists, |
1045 | NVPTXLaneMaskLists, |
1046 | NVPTXRegStrings, |
1047 | NVPTXRegClassStrings, |
1048 | NVPTXSubRegIdxLists, |
1049 | 1, |
1050 | NVPTXRegEncodingTable); |
1051 | |
1052 | } |
1053 | |
1054 | |
1055 | |
1056 | ArrayRef<const uint32_t *> NVPTXGenRegisterInfo::getRegMasks() const { |
1057 | return {}; |
1058 | } |
1059 | |
1060 | bool NVPTXGenRegisterInfo:: |
1061 | isGeneralPurposeRegister(const MachineFunction &MF, MCRegister PhysReg) const { |
1062 | return |
1063 | false; |
1064 | } |
1065 | |
1066 | bool NVPTXGenRegisterInfo:: |
1067 | isGeneralPurposeRegisterClass(const TargetRegisterClass *RC) const { |
1068 | return |
1069 | false; |
1070 | } |
1071 | |
1072 | bool NVPTXGenRegisterInfo:: |
1073 | isFixedRegister(const MachineFunction &MF, MCRegister PhysReg) const { |
1074 | return |
1075 | false; |
1076 | } |
1077 | |
1078 | bool NVPTXGenRegisterInfo:: |
1079 | isArgumentRegister(const MachineFunction &MF, MCRegister PhysReg) const { |
1080 | return |
1081 | false; |
1082 | } |
1083 | |
1084 | bool NVPTXGenRegisterInfo:: |
1085 | isConstantPhysReg(MCRegister PhysReg) const { |
1086 | return |
1087 | false; |
1088 | } |
1089 | |
1090 | ArrayRef<const char *> NVPTXGenRegisterInfo::getRegMaskNames() const { |
1091 | return {}; |
1092 | } |
1093 | |
1094 | const NVPTXFrameLowering * |
1095 | NVPTXGenRegisterInfo::getFrameLowering(const MachineFunction &MF) { |
1096 | return static_cast<const NVPTXFrameLowering *>( |
1097 | MF.getSubtarget().getFrameLowering()); |
1098 | } |
1099 | |
1100 | } // end namespace llvm |
1101 | |
1102 | #endif // GET_REGINFO_TARGET_DESC |
1103 | |
1104 | |