Skip to content

Commit b862eea

Browse files
committed
remove dx.rootsignatures metadata and ensure dependent pass runs before
Co-authored-by: Justin Bogner "[email protected]"
1 parent 5a194c1 commit b862eea

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

llvm/lib/Target/DirectX/DXILPrepare.cpp

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
/// Language (DXIL).
1212
//===----------------------------------------------------------------------===//
1313

14+
#include "DXILRootSignature.h"
1415
#include "DXILShaderFlags.h"
1516
#include "DirectX.h"
1617
#include "DirectXIRPasses/PointerTypeAnalysis.h"
@@ -286,12 +287,21 @@ class DXILPrepareModule : public ModulePass {
286287
}
287288
// Remove flags not for DXIL.
288289
cleanModuleFlags(M);
290+
291+
// dx.rootsignatures will have been parsed from its metadata form as its
292+
// binary form as part of the RootSignatureAnalysisWrapper, so safely
293+
// remove it as it is not recognized in DXIL
294+
if (NamedMDNode *RootSignature = M.getNamedMetadata("dx.rootsignatures"))
295+
RootSignature->eraseFromParent();
296+
289297
return true;
290298
}
291299

292300
DXILPrepareModule() : ModulePass(ID) {}
293301
void getAnalysisUsage(AnalysisUsage &AU) const override {
294302
AU.addRequired<DXILMetadataAnalysisWrapperPass>();
303+
AU.addRequired<RootSignatureAnalysisWrapper>();
304+
AU.addPreserved<RootSignatureAnalysisWrapper>();
295305
AU.addPreserved<ShaderFlagsAnalysisWrapper>();
296306
AU.addPreserved<DXILMetadataAnalysisWrapperPass>();
297307
AU.addPreserved<DXILResourceWrapperPass>();
@@ -305,6 +315,7 @@ char DXILPrepareModule::ID = 0;
305315
INITIALIZE_PASS_BEGIN(DXILPrepareModule, DEBUG_TYPE, "DXIL Prepare Module",
306316
false, false)
307317
INITIALIZE_PASS_DEPENDENCY(DXILMetadataAnalysisWrapperPass)
318+
INITIALIZE_PASS_DEPENDENCY(RootSignatureAnalysisWrapper)
308319
INITIALIZE_PASS_END(DXILPrepareModule, DEBUG_TYPE, "DXIL Prepare Module", false,
309320
false)
310321

0 commit comments

Comments
 (0)