diff options
author | Justin Bogner <mail@justinbogner.com> | 2025-04-15 22:33:27 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-04-15 22:33:27 -0700 |
commit | 3de88fe40fd0dc5f52ba0bc7ebbaf16e938d6670 (patch) | |
tree | 3f36ace4f6a74e5c283ce7b49572e9747c4fdba0 /llvm/lib/Target/DirectX/DirectXTargetMachine.cpp | |
parent | 2a024046217a1acae4806328ac77bd88648c2bab (diff) | |
download | llvm-3de88fe40fd0dc5f52ba0bc7ebbaf16e938d6670.zip llvm-3de88fe40fd0dc5f52ba0bc7ebbaf16e938d6670.tar.gz llvm-3de88fe40fd0dc5f52ba0bc7ebbaf16e938d6670.tar.bz2 |
[DirectX] Implement the DXILCBufferAccess pass (#134571)
This introduces a pass that walks accesses to globals in cbuffers and
replaces them with accesses via the cbuffer handle itself. The logic to
interpret the cbuffer metadata is kept in `lib/Frontend/HLSL` so that it
can be reused by other consumers of that metadata.
Fixes #124630.
Diffstat (limited to 'llvm/lib/Target/DirectX/DirectXTargetMachine.cpp')
-rw-r--r-- | llvm/lib/Target/DirectX/DirectXTargetMachine.cpp | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/llvm/lib/Target/DirectX/DirectXTargetMachine.cpp b/llvm/lib/Target/DirectX/DirectXTargetMachine.cpp index 747e4b3..41f6f37 100644 --- a/llvm/lib/Target/DirectX/DirectXTargetMachine.cpp +++ b/llvm/lib/Target/DirectX/DirectXTargetMachine.cpp @@ -12,6 +12,7 @@ //===----------------------------------------------------------------------===// #include "DirectXTargetMachine.h" +#include "DXILCBufferAccess.h" #include "DXILDataScalarization.h" #include "DXILFlattenArrays.h" #include "DXILIntrinsicExpansion.h" @@ -65,6 +66,7 @@ extern "C" LLVM_EXTERNAL_VISIBILITY void LLVMInitializeDirectXTarget() { initializeRootSignatureAnalysisWrapperPass(*PR); initializeDXILFinalizeLinkageLegacyPass(*PR); initializeDXILPrettyPrinterLegacyPass(*PR); + initializeDXILCBufferAccessLegacyPass(*PR); } class DXILTargetObjectFile : public TargetLoweringObjectFile { @@ -96,6 +98,7 @@ public: void addCodeGenPrepare() override { addPass(createDXILFinalizeLinkageLegacyPass()); addPass(createDXILIntrinsicExpansionLegacyPass()); + addPass(createDXILCBufferAccessLegacyPass()); addPass(createDXILDataScalarizationLegacyPass()); addPass(createDXILFlattenArraysLegacyPass()); addPass(createDXILResourceAccessLegacyPass()); |