aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Target/DirectX/DirectXTargetMachine.cpp
diff options
context:
space:
mode:
authorJustin Bogner <mail@justinbogner.com>2024-12-02 12:08:14 -0800
committerGitHub <noreply@github.com>2024-12-02 12:08:14 -0800
commit93d2a2caf63ee9c3dab8b3e0a1b54a9ba484714d (patch)
treecea29928a422e901cd75e6adff650a5d0860e978 /llvm/lib/Target/DirectX/DirectXTargetMachine.cpp
parentb36f1c8e9b0c9b9151be15b36a0f8d59ea8fc989 (diff)
downloadllvm-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.cpp2
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());
}