21
21
22
22
using namespace llvm ;
23
23
using namespace llvm ::dxil;
24
- using namespace llvm ::hlsl;
25
24
26
25
template <typename T> void ResourceTable<T>::collect(Module &M) {
27
26
NamedMDNode *Entry = M.getNamedMetadata (MDName);
@@ -30,7 +29,7 @@ template <typename T> void ResourceTable<T>::collect(Module &M) {
30
29
31
30
uint32_t Counter = 0 ;
32
31
for (auto *Res : Entry->operands ()) {
33
- Data.push_back (T (Counter++, FrontendResource (cast<MDNode>(Res))));
32
+ Data.push_back (T (Counter++, hlsl:: FrontendResource (cast<MDNode>(Res))));
34
33
}
35
34
}
36
35
@@ -42,7 +41,7 @@ template <> void ResourceTable<ConstantBuffer>::collect(Module &M) {
42
41
uint32_t Counter = 0 ;
43
42
for (auto *Res : Entry->operands ()) {
44
43
Data.push_back (
45
- ConstantBuffer (Counter++, FrontendResource (cast<MDNode>(Res))));
44
+ ConstantBuffer (Counter++, hlsl:: FrontendResource (cast<MDNode>(Res))));
46
45
}
47
46
// FIXME: share CBufferDataLayout with CBuffer load lowering.
48
47
// See https://github.com/llvm/llvm-project/issues/58381
@@ -56,7 +55,7 @@ void Resources::collect(Module &M) {
56
55
CBuffers.collect (M);
57
56
}
58
57
59
- ResourceBase::ResourceBase (uint32_t I, FrontendResource R)
58
+ ResourceBase::ResourceBase (uint32_t I, hlsl:: FrontendResource R)
60
59
: ID(I), GV(R.getGlobalVariable()), Name(" " ), Space(R.getSpace()),
61
60
LowerBound(R.getResourceIndex()), RangeSize(1 ) {
62
61
if (auto *ArrTy = dyn_cast<ArrayType>(GV->getValueType ()))
@@ -107,83 +106,84 @@ StringRef ResourceBase::getElementTypeName(ElementType ElTy) {
107
106
llvm_unreachable (" All ElementType enums are handled in switch" );
108
107
}
109
108
110
- void ResourceBase::printElementType (Kinds Kind, ElementType ElTy,
109
+ void ResourceBase::printElementType (ResourceKind Kind, ElementType ElTy,
111
110
unsigned Alignment, raw_ostream &OS) {
112
111
switch (Kind) {
113
112
default :
114
113
// TODO: add vector size.
115
114
OS << right_justify (getElementTypeName (ElTy), Alignment);
116
115
break ;
117
- case Kinds ::RawBuffer:
116
+ case ResourceKind ::RawBuffer:
118
117
OS << right_justify (" byte" , Alignment);
119
118
break ;
120
- case Kinds ::StructuredBuffer:
119
+ case ResourceKind ::StructuredBuffer:
121
120
OS << right_justify (" struct" , Alignment);
122
121
break ;
123
- case Kinds ::CBuffer:
124
- case Kinds ::Sampler:
122
+ case ResourceKind ::CBuffer:
123
+ case ResourceKind ::Sampler:
125
124
OS << right_justify (" NA" , Alignment);
126
125
break ;
127
- case Kinds ::Invalid:
128
- case Kinds ::NumEntries:
126
+ case ResourceKind ::Invalid:
127
+ case ResourceKind ::NumEntries:
129
128
break ;
130
129
}
131
130
}
132
131
133
- StringRef ResourceBase::getKindName (Kinds Kind) {
132
+ StringRef ResourceBase::getKindName (ResourceKind Kind) {
134
133
switch (Kind) {
135
- case Kinds ::NumEntries:
136
- case Kinds ::Invalid:
134
+ case ResourceKind ::NumEntries:
135
+ case ResourceKind ::Invalid:
137
136
return " invalid" ;
138
- case Kinds ::Texture1D:
137
+ case ResourceKind ::Texture1D:
139
138
return " 1d" ;
140
- case Kinds ::Texture2D:
139
+ case ResourceKind ::Texture2D:
141
140
return " 2d" ;
142
- case Kinds ::Texture2DMS:
141
+ case ResourceKind ::Texture2DMS:
143
142
return " 2dMS" ;
144
- case Kinds ::Texture3D:
143
+ case ResourceKind ::Texture3D:
145
144
return " 3d" ;
146
- case Kinds ::TextureCube:
145
+ case ResourceKind ::TextureCube:
147
146
return " cube" ;
148
- case Kinds ::Texture1DArray:
147
+ case ResourceKind ::Texture1DArray:
149
148
return " 1darray" ;
150
- case Kinds ::Texture2DArray:
149
+ case ResourceKind ::Texture2DArray:
151
150
return " 2darray" ;
152
- case Kinds ::Texture2DMSArray:
151
+ case ResourceKind ::Texture2DMSArray:
153
152
return " 2darrayMS" ;
154
- case Kinds ::TextureCubeArray:
153
+ case ResourceKind ::TextureCubeArray:
155
154
return " cubearray" ;
156
- case Kinds ::TypedBuffer:
155
+ case ResourceKind ::TypedBuffer:
157
156
return " buf" ;
158
- case Kinds ::RawBuffer:
157
+ case ResourceKind ::RawBuffer:
159
158
return " rawbuf" ;
160
- case Kinds ::StructuredBuffer:
159
+ case ResourceKind ::StructuredBuffer:
161
160
return " structbuf" ;
162
- case Kinds ::CBuffer:
161
+ case ResourceKind ::CBuffer:
163
162
return " cbuffer" ;
164
- case Kinds ::Sampler:
163
+ case ResourceKind ::Sampler:
165
164
return " sampler" ;
166
- case Kinds ::TBuffer:
165
+ case ResourceKind ::TBuffer:
167
166
return " tbuffer" ;
168
- case Kinds ::RTAccelerationStructure:
167
+ case ResourceKind ::RTAccelerationStructure:
169
168
return " ras" ;
170
- case Kinds ::FeedbackTexture2D:
169
+ case ResourceKind ::FeedbackTexture2D:
171
170
return " fbtex2d" ;
172
- case Kinds ::FeedbackTexture2DArray:
171
+ case ResourceKind ::FeedbackTexture2DArray:
173
172
return " fbtex2darray" ;
174
173
}
175
- llvm_unreachable (" All Kinds enums are handled in switch" );
174
+ llvm_unreachable (" All ResourceKind enums are handled in switch" );
176
175
}
177
176
178
- void ResourceBase::printKind (Kinds Kind, unsigned Alignment, raw_ostream &OS,
179
- bool SRV, bool HasCounter, uint32_t SampleCount) {
177
+ void ResourceBase::printKind (ResourceKind Kind, unsigned Alignment,
178
+ raw_ostream &OS, bool SRV, bool HasCounter,
179
+ uint32_t SampleCount) {
180
180
switch (Kind) {
181
181
default :
182
182
OS << right_justify (getKindName (Kind), Alignment);
183
183
break ;
184
184
185
- case Kinds ::RawBuffer:
186
- case Kinds ::StructuredBuffer:
185
+ case ResourceKind ::RawBuffer:
186
+ case ResourceKind ::StructuredBuffer:
187
187
if (SRV)
188
188
OS << right_justify (" r/o" , Alignment);
189
189
else {
@@ -193,22 +193,22 @@ void ResourceBase::printKind(Kinds Kind, unsigned Alignment, raw_ostream &OS,
193
193
OS << right_justify (" r/w+cnt" , Alignment);
194
194
}
195
195
break ;
196
- case Kinds ::TypedBuffer:
196
+ case ResourceKind ::TypedBuffer:
197
197
OS << right_justify (" buf" , Alignment);
198
198
break ;
199
- case Kinds ::Texture2DMS:
200
- case Kinds ::Texture2DMSArray: {
199
+ case ResourceKind ::Texture2DMS:
200
+ case ResourceKind ::Texture2DMSArray: {
201
201
std::string DimName = getKindName (Kind).str ();
202
202
if (SampleCount)
203
203
DimName += std::to_string (SampleCount);
204
204
OS << right_justify (DimName, Alignment);
205
205
} break ;
206
- case Kinds ::CBuffer:
207
- case Kinds ::Sampler:
206
+ case ResourceKind ::CBuffer:
207
+ case ResourceKind ::Sampler:
208
208
OS << right_justify (" NA" , Alignment);
209
209
break ;
210
- case Kinds ::Invalid:
211
- case Kinds ::NumEntries:
210
+ case ResourceKind ::Invalid:
211
+ case ResourceKind ::NumEntries:
212
212
break ;
213
213
}
214
214
}
@@ -258,9 +258,9 @@ void ConstantBuffer::print(raw_ostream &OS) const {
258
258
259
259
OS << right_justify (" cbuffer" , 10 );
260
260
261
- printElementType (Kinds ::CBuffer, ElementType::Invalid, 8 , OS);
261
+ printElementType (ResourceKind ::CBuffer, ElementType::Invalid, 8 , OS);
262
262
263
- printKind (Kinds ::CBuffer, 12 , OS, /* SRV*/ false , /* HasCounter*/ false );
263
+ printKind (ResourceKind ::CBuffer, 12 , OS, /* SRV*/ false , /* HasCounter*/ false );
264
264
// Print the binding part.
265
265
ResourceBase::print (OS, " CB" , " cb" );
266
266
}
0 commit comments