File tree Expand file tree Collapse file tree 4 files changed +54
-2
lines changed Expand file tree Collapse file tree 4 files changed +54
-2
lines changed Original file line number Diff line number Diff line change @@ -677,6 +677,7 @@ class DXILResourceBindingInfo {
677
677
}
678
678
679
679
friend class DXILResourceBindingAnalysis ;
680
+ friend class DXILResourceBindingWrapperPass ;
680
681
};
681
682
682
683
class DXILResourceBindingAnalysis
@@ -691,6 +692,25 @@ class DXILResourceBindingAnalysis
691
692
DXILResourceBindingInfo run (Module &M, ModuleAnalysisManager &AM);
692
693
};
693
694
695
+ class DXILResourceBindingWrapperPass : public ModulePass {
696
+ std::unique_ptr<DXILResourceBindingInfo> BindingInfo;
697
+
698
+ public:
699
+ static char ID;
700
+
701
+ DXILResourceBindingWrapperPass ();
702
+ ~DXILResourceBindingWrapperPass () override ;
703
+
704
+ DXILResourceBindingInfo &getBindingInfo () { return *BindingInfo; }
705
+ const DXILResourceBindingInfo &getBindingInfo () const { return *BindingInfo; }
706
+
707
+ void getAnalysisUsage (AnalysisUsage &AU) const override ;
708
+ bool runOnModule (Module &M) override ;
709
+ void releaseMemory () override ;
710
+ };
711
+
712
+ ModulePass *createDXILResourceBindingWrapperPassPass ();
713
+
694
714
} // namespace llvm
695
715
696
716
#endif // LLVM_ANALYSIS_DXILRESOURCE_H
Original file line number Diff line number Diff line change @@ -84,8 +84,9 @@ void initializeDAHPass(PassRegistry &);
84
84
void initializeDCELegacyPassPass (PassRegistry &);
85
85
void initializeDXILMetadataAnalysisWrapperPassPass (PassRegistry &);
86
86
void initializeDXILMetadataAnalysisWrapperPrinterPass (PassRegistry &);
87
- void initializeDXILResourceWrapperPassPass (PassRegistry &);
87
+ void initializeDXILResourceBindingWrapperPassPass (PassRegistry &);
88
88
void initializeDXILResourceTypeWrapperPassPass (PassRegistry &);
89
+ void initializeDXILResourceWrapperPassPass (PassRegistry &);
89
90
void initializeDeadMachineInstructionElimPass (PassRegistry &);
90
91
void initializeDebugifyMachineModulePass (PassRegistry &);
91
92
void initializeDependenceAnalysisWrapperPassPass (PassRegistry &);
Original file line number Diff line number Diff line change @@ -27,8 +27,9 @@ void llvm::initializeAnalysis(PassRegistry &Registry) {
27
27
initializeCallGraphViewerPass (Registry);
28
28
initializeCycleInfoWrapperPassPass (Registry);
29
29
initializeDXILMetadataAnalysisWrapperPassPass (Registry);
30
- initializeDXILResourceWrapperPassPass (Registry);
30
+ initializeDXILResourceBindingWrapperPassPass (Registry);
31
31
initializeDXILResourceTypeWrapperPassPass (Registry);
32
+ initializeDXILResourceWrapperPassPass (Registry);
32
33
initializeDependenceAnalysisWrapperPassPass (Registry);
33
34
initializeDominanceFrontierWrapperPassPass (Registry);
34
35
initializeDomViewerWrapperPassPass (Registry);
Original file line number Diff line number Diff line change @@ -1077,3 +1077,33 @@ char DXILResourceWrapperPass::ID = 0;
1077
1077
ModulePass *llvm::createDXILResourceWrapperPassPass () {
1078
1078
return new DXILResourceWrapperPass ();
1079
1079
}
1080
+
1081
+ DXILResourceBindingWrapperPass::DXILResourceBindingWrapperPass ()
1082
+ : ModulePass(ID) {}
1083
+
1084
+ DXILResourceBindingWrapperPass::~DXILResourceBindingWrapperPass () = default ;
1085
+
1086
+ void DXILResourceBindingWrapperPass::getAnalysisUsage (AnalysisUsage &AU) const {
1087
+ AU.addRequiredTransitive <DXILResourceTypeWrapperPass>();
1088
+ AU.setPreservesAll ();
1089
+ }
1090
+
1091
+ bool DXILResourceBindingWrapperPass::runOnModule (Module &M) {
1092
+ BindingInfo.reset (new DXILResourceBindingInfo ());
1093
+
1094
+ DXILResourceTypeMap &DRTM =
1095
+ getAnalysis<DXILResourceTypeWrapperPass>().getResourceTypeMap ();
1096
+ BindingInfo->populate (M, DRTM);
1097
+
1098
+ return false ;
1099
+ }
1100
+
1101
+ void DXILResourceBindingWrapperPass::releaseMemory () { BindingInfo.reset (); }
1102
+
1103
+ INITIALIZE_PASS (DXILResourceBindingWrapperPass, " dxil-resource-binding" ,
1104
+ " DXIL Resource Binding Analysis" , false , true )
1105
+ char DXILResourceBindingWrapperPass::ID = 0;
1106
+
1107
+ ModulePass *llvm::createDXILResourceBindingWrapperPassPass () {
1108
+ return new DXILResourceWrapperPass ();
1109
+ }
You can’t perform that action at this time.
0 commit comments