diff options
Diffstat (limited to 'llvm/lib/Target/DirectX/DirectXTargetMachine.cpp')
-rw-r--r-- | llvm/lib/Target/DirectX/DirectXTargetMachine.cpp | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/llvm/lib/Target/DirectX/DirectXTargetMachine.cpp b/llvm/lib/Target/DirectX/DirectXTargetMachine.cpp index 44bef80..8ea074cb 100644 --- a/llvm/lib/Target/DirectX/DirectXTargetMachine.cpp +++ b/llvm/lib/Target/DirectX/DirectXTargetMachine.cpp @@ -67,6 +67,11 @@ public: } FunctionPass *createTargetRegisterAllocator(bool) override { return nullptr; } + void addCodeGenPrepare() override { + addPass(createDXILOpLoweringLegacyPass()); + addPass(createDXILPrepareModulePass()); + addPass(createDXILTranslateMetadataPass()); + } }; DirectXTargetMachine::DirectXTargetMachine(const Target &T, const Triple &TT, @@ -91,9 +96,9 @@ bool DirectXTargetMachine::addPassesToEmitFile( PassManagerBase &PM, raw_pwrite_stream &Out, raw_pwrite_stream *DwoOut, CodeGenFileType FileType, bool DisableVerify, MachineModuleInfoWrapperPass *MMIWP) { - PM.add(createDXILOpLoweringLegacyPass()); - PM.add(createDXILPrepareModulePass()); - PM.add(createDXILTranslateMetadataPass()); + TargetPassConfig *PassConfig = createPassConfig(PM); + PassConfig->addCodeGenPrepare(); + if (TargetPassConfig::willCompleteCodeGenPipeline()) { PM.add(createDXILEmbedderPass()); } |