================ @@ -13,27 +13,52 @@ #include "DXILShaderFlags.h" #include "DirectX.h" #include "llvm/ADT/StringSet.h" +#include "llvm/Analysis/DXILResource.h" #include "llvm/IR/Constants.h" #include "llvm/IR/Metadata.h" #include "llvm/IR/Module.h" +#include "llvm/InitializePasses.h" #include "llvm/Pass.h" #include "llvm/TargetParser/Triple.h" using namespace llvm; using namespace llvm::dxil; -static void emitResourceMetadata(Module &M, +static void emitResourceMetadata(Module &M, const DXILResourceMap &DRM, const dxil::Resources &MDResources) { - Metadata *SRVMD = nullptr, *UAVMD = nullptr, *CBufMD = nullptr, - *SmpMD = nullptr; - bool HasResources = false; + LLVMContext &Context = M.getContext(); + + SmallVector<Metadata *> SRVs, UAVs, CBufs, Smps; + for (auto [_, RI] : DRM) { + switch (RI.getResourceClass()) { ---------------- bogner wrote:
I've updated the API in #105602 - you can now iterate over the unique resources, and there are helpers to just iterate `.srvs()`, `.uavs()`, etc. https://github.com/llvm/llvm-project/pull/104447 _______________________________________________ llvm-branch-commits mailing list llvm-branch-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits