================
@@ -4492,6 +4492,37 @@ void CXXNameMangler::mangleType(const ArrayParameterType 
*T) {
   mangleType(cast<ConstantArrayType>(T));
 }
 
+void CXXNameMangler::mangleType(const HLSLAttributedResourceType *T) {
+  llvm::SmallString<64> Str("_Res");
+  const HLSLAttributedResourceType::Attributes &Attrs = T->getAttrs();
+  // map resource class to HLSL virtual register letter
+  switch (Attrs.ResourceClass) {
+  case llvm::dxil::ResourceClass::UAV:
+    Str += "_u";
+    break;
+  case llvm::dxil::ResourceClass::SRV:
+    Str += "_t";
+    break;
+  case llvm::dxil::ResourceClass::CBuffer:
+    Str += "_b";
+    break;
+  case llvm::dxil::ResourceClass::Sampler:
+    Str += "_s";
+    break;
+  }
+  mangleVendorQualifier(Str);
+  if (Attrs.IsROV)
----------------
pow2clk wrote:

I think these three string literals should probably be munged into the 
preceeding `Str` and `mangledVendorQualifie`d as a unit rather than giving each 
their own character count and prefix. 

https://github.com/llvm/llvm-project/pull/110327
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to