diff options
author | Justin Bogner <mail@justinbogner.com> | 2024-12-02 12:08:14 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-12-02 12:08:14 -0800 |
commit | 93d2a2caf63ee9c3dab8b3e0a1b54a9ba484714d (patch) | |
tree | cea29928a422e901cd75e6adff650a5d0860e978 /llvm/lib/Target/DirectX/DirectXTargetMachine.cpp | |
parent | b36f1c8e9b0c9b9151be15b36a0f8d59ea8fc989 (diff) | |
download | llvm-93d2a2caf63ee9c3dab8b3e0a1b54a9ba484714d.zip llvm-93d2a2caf63ee9c3dab8b3e0a1b54a9ba484714d.tar.gz llvm-93d2a2caf63ee9c3dab8b3e0a1b54a9ba484714d.tar.bz2 |
[DirectX] Run DXILFinalizeLinkage earlier in the pipeline (#117950)
This moves DXILFinalizeLinkage before the DXIL op lowering passes so
that it doesn't end up internalizing any of the `dx.op.*` functions.
This also exposed a bug when the pass is run on a module with intrinsics
in them - marking the intrinsics as internal will fail the validator.
Fixes #117761
Diffstat (limited to 'llvm/lib/Target/DirectX/DirectXTargetMachine.cpp')
-rw-r--r-- | llvm/lib/Target/DirectX/DirectXTargetMachine.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/llvm/lib/Target/DirectX/DirectXTargetMachine.cpp b/llvm/lib/Target/DirectX/DirectXTargetMachine.cpp index 655427a..de14c8d 100644 --- a/llvm/lib/Target/DirectX/DirectXTargetMachine.cpp +++ b/llvm/lib/Target/DirectX/DirectXTargetMachine.cpp @@ -89,6 +89,7 @@ public: FunctionPass *createTargetRegisterAllocator(bool) override { return nullptr; } void addCodeGenPrepare() override { + addPass(createDXILFinalizeLinkageLegacyPass()); addPass(createDXILIntrinsicExpansionLegacyPass()); addPass(createDXILDataScalarizationLegacyPass()); ScalarizerPassOptions DxilScalarOptions; @@ -96,7 +97,6 @@ public: addPass(createDXILFlattenArraysLegacyPass()); addPass(createScalarizerPass(DxilScalarOptions)); addPass(createDXILOpLoweringLegacyPass()); - addPass(createDXILFinalizeLinkageLegacyPass()); addPass(createDXILTranslateMetadataLegacyPass()); addPass(createDXILPrepareModulePass()); } |