@@ -234,12 +234,12 @@ MDNode *MetadataBuilder::BuildRootConstants(const RootConstants &Constants) {
234234
235235MDNode *MetadataBuilder::BuildRootDescriptor (const RootDescriptor &Descriptor) {
236236 IRBuilder<> Builder (Ctx);
237- llvm::SmallString< 7 > Name;
238- llvm::raw_svector_ostream OS (Name);
239- OS << " Root " << ClauseType ( llvm::to_underlying (Descriptor. Type ));
240-
237+ StringRef TypeName =
238+ getEnumName ( dxil::ResourceClass ( llvm::to_underlying (Descriptor. Type )),
239+ ArrayRef (ResourceClassNames ));
240+ llvm::SmallString< 7 > Name ({ " Root " , TypeName});
241241 Metadata *Operands[] = {
242- MDString::get (Ctx, OS. str () ),
242+ MDString::get (Ctx, Name ),
243243 ConstantAsMetadata::get (
244244 Builder.getInt32 (llvm::to_underlying (Descriptor.Visibility ))),
245245 ConstantAsMetadata::get (Builder.getInt32 (Descriptor.Reg .Number )),
@@ -275,12 +275,12 @@ MDNode *MetadataBuilder::BuildDescriptorTable(const DescriptorTable &Table) {
275275MDNode *MetadataBuilder::BuildDescriptorTableClause (
276276 const DescriptorTableClause &Clause) {
277277 IRBuilder<> Builder (Ctx);
278- std::string Name;
279- llvm::raw_string_ostream OS (Name);
280- OS << Clause. Type ;
278+ StringRef Name =
279+ getEnumName ( dxil::ResourceClass ( llvm::to_underlying (Clause. Type )),
280+ ArrayRef (ResourceClassNames)) ;
281281 return MDNode::get (
282282 Ctx, {
283- MDString::get (Ctx, OS. str () ),
283+ MDString::get (Ctx, Name ),
284284 ConstantAsMetadata::get (Builder.getInt32 (Clause.NumDescriptors )),
285285 ConstantAsMetadata::get (Builder.getInt32 (Clause.Reg .Number )),
286286 ConstantAsMetadata::get (Builder.getInt32 (Clause.Space )),
0 commit comments