================
@@ -4492,6 +4492,31 @@ void CXXNameMangler::mangleType(const ArrayParameterType
*T) {
mangleType(cast<ConstantArrayType>(T));
}
+void CXXNameMangler::mangleType(const HLSLAttributedResourceType *T) {
+ mangleType(T->getWrappedType());
+ const HLSLAttributedResourceType::Attributes &Attrs = T->getAttrs();
+ // map resource class to HLSL virtual register letter
+ switch (Attrs.ResourceClass) {
+ case llvm::dxil::ResourceClass::UAV:
+ Out << 'u';
+ break;
+ case llvm::dxil::ResourceClass::SRV:
+ Out << 't';
+ break;
+ case llvm::dxil::ResourceClass::CBuffer:
+ Out << 'b';
+ break;
+ case llvm::dxil::ResourceClass::Sampler:
+ Out << 's';
+ break;
+ }
+ mangleNumber(Attrs.IsROV);
+ mangleNumber(Attrs.RawBuffer);
----------------
llvm-beanz wrote:
Should we be mangling these as numbers or vendor qualifiers? I think the later.
Basically something like:
```
if (Attrs.IsROV)
mangleVendorQualifier("__ROV");
...
```
https://github.com/llvm/llvm-project/pull/110327
_______________________________________________
cfe-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits