================
@@ -10,23 +10,235 @@
 #include "DXILResourceAnalysis.h"
 #include "DirectX.h"
 #include "llvm/ADT/StringRef.h"
+#include "llvm/Analysis/DXILResource.h"
 #include "llvm/IR/PassManager.h"
+#include "llvm/InitializePasses.h"
 #include "llvm/Pass.h"
+#include "llvm/Support/FormatAdapters.h"
 #include "llvm/Support/FormatVariadic.h"
 #include "llvm/Support/raw_ostream.h"
 
 using namespace llvm;
 
-static void prettyPrintResources(raw_ostream &OS,
+static constexpr StringRef getRCName(dxil::ResourceClass RC) {
----------------
farzonl wrote:

Feel free to ignore, I was thinking of a different  way to do this that would 
have a tighter coupling of  Names and prefixes:

```cpp
struct ResourceClassInfo {
  const StringRef name;
  const StringRef prefix;
};

llvm::DenseMap<dxil::ResourceClass, ResourceClassInfo> createResourceClassMap() 
{
  return {
    {dxil::ResourceClass::SRV, {"SRV", "t"}},
    {dxil::ResourceClass::UAV, {"UAV", "u"}},
    {dxil::ResourceClass::CBuffer, {"cbuffer", "cb"}},
    {dxil::ResourceClass::Sampler, {"sampler", "s"}}
  };
}

static const llvm::DenseMap<dxil::ResourceClass, ResourceClassInfo> 
ResourceClassMap = createResourceClassMap();

StringRef getRCName(dxil::ResourceClass RC) {
  return ResourceClassMap.lookup(RC).name;
}

StringRef getRCPrefix(dxil::ResourceClass RC) {
  return ResourceClassMap.lookup(RC).prefix;
}
```

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

Reply via email to