Revert "[DirectX][NFC] Refactor `DXILRootSignature` to follow the same patter…"

This reverts commit ca888f085cf31788e06a3fb68234bf61e55a3686.
diff --git a/llvm/lib/Target/DirectX/DXContainerGlobals.cpp b/llvm/lib/Target/DirectX/DXContainerGlobals.cpp
index b6e8ce7..9c38901 100644
--- a/llvm/lib/Target/DirectX/DXContainerGlobals.cpp
+++ b/llvm/lib/Target/DirectX/DXContainerGlobals.cpp
@@ -160,18 +160,18 @@
 
   assert(MMI.EntryPropertyVec.size() == 1);
 
-  auto &RSA = getAnalysis<RootSignatureAnalysisWrapper>().getRSInfo();
+  auto &RSA = getAnalysis<RootSignatureAnalysisWrapper>();
   const Function *EntryFunction = MMI.EntryPropertyVec[0].Entry;
-  const std::optional<mcdxbc::RootSignatureDesc> &RS =
-      RSA.getDescForFunction(EntryFunction);
+  const auto &FuncRs = RSA.find(EntryFunction);
 
-  if (!RS)
+  if (FuncRs == RSA.end())
     return;
 
+  const RootSignatureDesc &RS = FuncRs->second;
   SmallString<256> Data;
   raw_svector_ostream OS(Data);
 
-  RS->write(OS);
+  RS.write(OS);
 
   Constant *Constant =
       ConstantDataArray::getString(M.getContext(), Data, /*AddNull*/ false);
diff --git a/llvm/lib/Target/DirectX/DXILRootSignature.cpp b/llvm/lib/Target/DirectX/DXILRootSignature.cpp
index dfc8162..cfd4107 100644
--- a/llvm/lib/Target/DirectX/DXILRootSignature.cpp
+++ b/llvm/lib/Target/DirectX/DXILRootSignature.cpp
@@ -596,9 +596,9 @@
 
 AnalysisKey RootSignatureAnalysis::Key;
 
-RootSignatureAnalysis::Result
+SmallDenseMap<const Function *, mcdxbc::RootSignatureDesc>
 RootSignatureAnalysis::run(Module &M, ModuleAnalysisManager &AM) {
-  return RootSignatureBindingInfo(analyzeModule(M));
+  return analyzeModule(M);
 }
 
 //===----------------------------------------------------------------------===//
@@ -606,7 +606,8 @@
 PreservedAnalyses RootSignatureAnalysisPrinter::run(Module &M,
                                                     ModuleAnalysisManager &AM) {
 
-  RootSignatureBindingInfo &RSDMap = AM.getResult<RootSignatureAnalysis>(M);
+  SmallDenseMap<const Function *, mcdxbc::RootSignatureDesc> &RSDMap =
+      AM.getResult<RootSignatureAnalysis>(M);
 
   OS << "Root Signature Definitions"
      << "\n";
@@ -677,14 +678,13 @@
 
 //===----------------------------------------------------------------------===//
 bool RootSignatureAnalysisWrapper::runOnModule(Module &M) {
-  FuncToRsMap = std::make_unique<RootSignatureBindingInfo>(
-      RootSignatureBindingInfo(analyzeModule(M)));
+  FuncToRsMap = analyzeModule(M);
   return false;
 }
 
 void RootSignatureAnalysisWrapper::getAnalysisUsage(AnalysisUsage &AU) const {
   AU.setPreservesAll();
-  AU.addPreserved<DXILMetadataAnalysisWrapperPass>();
+  AU.addRequired<DXILMetadataAnalysisWrapperPass>();
 }
 
 char RootSignatureAnalysisWrapper::ID = 0;
diff --git a/llvm/lib/Target/DirectX/DXILRootSignature.h b/llvm/lib/Target/DirectX/DXILRootSignature.h
index fc39b38..be5cc78 100644
--- a/llvm/lib/Target/DirectX/DXILRootSignature.h
+++ b/llvm/lib/Target/DirectX/DXILRootSignature.h
@@ -10,8 +10,6 @@
 ///       Root Signatures.
 ///
 //===----------------------------------------------------------------------===//
-#ifndef LLVM_LIB_TARGET_DIRECTX_DXILROOTSIGNATURE_H
-#define LLVM_LIB_TARGET_DIRECTX_DXILROOTSIGNATURE_H
 
 #include "llvm/ADT/DenseMap.h"
 #include "llvm/Analysis/DXILMetadataAnalysis.h"
@@ -36,34 +34,6 @@
   DescriptorTable = 6,
   StaticSamplers = 7
 };
-
-class RootSignatureBindingInfo {
-private:
-  SmallDenseMap<const Function *, mcdxbc::RootSignatureDesc> FuncToRsMap;
-
-public:
-  using iterator =
-      SmallDenseMap<const Function *, mcdxbc::RootSignatureDesc>::iterator;
-
-  RootSignatureBindingInfo() = default;
-  RootSignatureBindingInfo(
-      SmallDenseMap<const Function *, mcdxbc::RootSignatureDesc> Map)
-      : FuncToRsMap(Map) {};
-
-  iterator find(const Function *F) { return FuncToRsMap.find(F); }
-
-  iterator end() { return FuncToRsMap.end(); }
-
-  std::optional<mcdxbc::RootSignatureDesc>
-  getDescForFunction(const Function *F) {
-    const auto FuncRs = find(F);
-    if (FuncRs == end())
-      return std::nullopt;
-
-    return FuncRs->second;
-  }
-};
-
 class RootSignatureAnalysis : public AnalysisInfoMixin<RootSignatureAnalysis> {
   friend AnalysisInfoMixin<RootSignatureAnalysis>;
   static AnalysisKey Key;
@@ -71,9 +41,10 @@
 public:
   RootSignatureAnalysis() = default;
 
-  using Result = RootSignatureBindingInfo;
+  using Result = SmallDenseMap<const Function *, mcdxbc::RootSignatureDesc>;
 
-  Result run(Module &M, ModuleAnalysisManager &AM);
+  SmallDenseMap<const Function *, mcdxbc::RootSignatureDesc>
+  run(Module &M, ModuleAnalysisManager &AM);
 };
 
 /// Wrapper pass for the legacy pass manager.
@@ -82,13 +53,19 @@
 /// passes which run through the legacy pass manager.
 class RootSignatureAnalysisWrapper : public ModulePass {
 private:
-  std::unique_ptr<RootSignatureBindingInfo> FuncToRsMap;
+  SmallDenseMap<const Function *, mcdxbc::RootSignatureDesc> FuncToRsMap;
 
 public:
   static char ID;
+
   RootSignatureAnalysisWrapper() : ModulePass(ID) {}
 
-  RootSignatureBindingInfo &getRSInfo() { return *FuncToRsMap; }
+  using iterator =
+      SmallDenseMap<const Function *, mcdxbc::RootSignatureDesc>::iterator;
+
+  iterator find(const Function *F) { return FuncToRsMap.find(F); }
+
+  iterator end() { return FuncToRsMap.end(); }
 
   bool runOnModule(Module &M) override;
 
@@ -107,4 +84,3 @@
 
 } // namespace dxil
 } // namespace llvm
-#endif