Line data Source code
1 : /*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
2 : |* *|
3 : |* Register Bank Source Fragments *|
4 : |* *|
5 : |* Automatically generated file, do not edit! *|
6 : |* *|
7 : \*===----------------------------------------------------------------------===*/
8 :
9 : #ifdef GET_REGBANK_DECLARATIONS
10 : #undef GET_REGBANK_DECLARATIONS
11 : namespace llvm {
12 : namespace AMDGPU {
13 : enum {
14 : SCCRegBankID,
15 : SGPRRegBankID,
16 : VGPRRegBankID,
17 : NumRegisterBanks,
18 : };
19 : } // end namespace AMDGPU
20 : } // end namespace llvm
21 : #endif // GET_REGBANK_DECLARATIONS
22 :
23 : #ifdef GET_TARGET_REGBANK_CLASS
24 : #undef GET_TARGET_REGBANK_CLASS
25 : private:
26 : static RegisterBank *RegBanks[];
27 :
28 : protected:
29 : AMDGPUGenRegisterBankInfo();
30 :
31 : #endif // GET_TARGET_REGBANK_CLASS
32 :
33 : #ifdef GET_TARGET_REGBANK_IMPL
34 : #undef GET_TARGET_REGBANK_IMPL
35 : namespace llvm {
36 : namespace AMDGPU {
37 : const uint32_t SCCRegBankCoverageData[] = {
38 : // 0-31
39 : (1u << (AMDGPU::SCC_CLASSRegClassID - 0)) |
40 : 0,
41 : // 32-63
42 : 0,
43 : };
44 : const uint32_t SGPRRegBankCoverageData[] = {
45 : // 0-31
46 : (1u << (AMDGPU::SReg_32RegClassID - 0)) |
47 : (1u << (AMDGPU::SReg_32_XEXEC_HIRegClassID - 0)) |
48 : (1u << (AMDGPU::SReg_32_XEXEC_HI_and_SReg_32_XM0RegClassID - 0)) |
49 : (1u << (AMDGPU::SReg_32_XM0_XEXECRegClassID - 0)) |
50 : (1u << (AMDGPU::SGPR_32RegClassID - 0)) |
51 : (1u << (AMDGPU::TTMP_32RegClassID - 0)) |
52 : (1u << (AMDGPU::M0_CLASSRegClassID - 0)) |
53 : (1u << (AMDGPU::SReg_32_XM0RegClassID - 0)) |
54 : (1u << (AMDGPU::SReg_64RegClassID - 0)) |
55 : (1u << (AMDGPU::VS_32RegClassID - 0)) |
56 : (1u << (AMDGPU::SReg_64_XEXECRegClassID - 0)) |
57 : (1u << (AMDGPU::SGPR_64RegClassID - 0)) |
58 : (1u << (AMDGPU::TTMP_64RegClassID - 0)) |
59 : (1u << (AMDGPU::SReg_128RegClassID - 0)) |
60 : (1u << (AMDGPU::VS_64RegClassID - 0)) |
61 : (1u << (AMDGPU::SGPR_128RegClassID - 0)) |
62 : (1u << (AMDGPU::TTMP_128RegClassID - 0)) |
63 : (1u << (AMDGPU::SReg_256RegClassID - 0)) |
64 : (1u << (AMDGPU::SGPR_256RegClassID - 0)) |
65 : (1u << (AMDGPU::TTMP_256RegClassID - 0)) |
66 : (1u << (AMDGPU::SReg_512RegClassID - 0)) |
67 : (1u << (AMDGPU::SGPR_512RegClassID - 0)) |
68 : 0,
69 : // 32-63
70 : (1u << (AMDGPU::TTMP_512RegClassID - 32)) |
71 : 0,
72 : };
73 : const uint32_t VGPRRegBankCoverageData[] = {
74 : // 0-31
75 : (1u << (AMDGPU::VGPR_32RegClassID - 0)) |
76 : (1u << (AMDGPU::VReg_1RegClassID - 0)) |
77 : (1u << (AMDGPU::VReg_64RegClassID - 0)) |
78 : (1u << (AMDGPU::VS_32RegClassID - 0)) |
79 : (1u << (AMDGPU::VReg_96RegClassID - 0)) |
80 : (1u << (AMDGPU::VS_64RegClassID - 0)) |
81 : (1u << (AMDGPU::VReg_128RegClassID - 0)) |
82 : (1u << (AMDGPU::VReg_256RegClassID - 0)) |
83 : (1u << (AMDGPU::VReg_512RegClassID - 0)) |
84 : 0,
85 : // 32-63
86 : 0,
87 : };
88 :
89 : RegisterBank SCCRegBank(/* ID */ AMDGPU::SCCRegBankID, /* Name */ "SCC", /* Size */ 1, /* CoveredRegClasses */ SCCRegBankCoverageData, /* NumRegClasses */ 33);
90 : RegisterBank SGPRRegBank(/* ID */ AMDGPU::SGPRRegBankID, /* Name */ "SGPR", /* Size */ 512, /* CoveredRegClasses */ SGPRRegBankCoverageData, /* NumRegClasses */ 33);
91 : RegisterBank VGPRRegBank(/* ID */ AMDGPU::VGPRRegBankID, /* Name */ "VGPR", /* Size */ 512, /* CoveredRegClasses */ VGPRRegBankCoverageData, /* NumRegClasses */ 33);
92 : } // end namespace AMDGPU
93 :
94 : RegisterBank *AMDGPUGenRegisterBankInfo::RegBanks[] = {
95 : &AMDGPU::SCCRegBank,
96 : &AMDGPU::SGPRRegBank,
97 : &AMDGPU::VGPRRegBank,
98 : };
99 :
100 2492 : AMDGPUGenRegisterBankInfo::AMDGPUGenRegisterBankInfo()
101 2492 : : RegisterBankInfo(RegBanks, AMDGPU::NumRegisterBanks) {
102 : // Assert that RegBank indices match their ID's
103 : #ifndef NDEBUG
104 : unsigned Index = 0;
105 : for (const auto &RB : RegBanks)
106 : assert(Index++ == RB->getID() && "Index != ID");
107 : #endif // NDEBUG
108 2492 : }
109 : } // end namespace llvm
110 : #endif // GET_TARGET_REGBANK_IMPL
|