1 //===- DirectXTargetMachine.h - DirectX Target Implementation ---*- C++ -*-===//
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
7 //===----------------------------------------------------------------------===//
9 //===----------------------------------------------------------------------===//
11 #ifndef LLVM_LIB_TARGET_DIRECTX_DIRECTX_H
12 #define LLVM_LIB_TARGET_DIRECTX_DIRECTX_H
19 /// Initializer for dxil writer pass
20 void initializeWriteDXILPassPass(PassRegistry
&);
22 /// Initializer for dxil embedder pass
23 void initializeEmbedDXILPassPass(PassRegistry
&);
25 /// Initializer for DXIL-prepare
26 void initializeDXILPrepareModulePass(PassRegistry
&);
28 /// Pass to convert modules into DXIL-compatable modules
29 ModulePass
*createDXILPrepareModulePass();
31 /// Initializer for DXIL Intrinsic Expansion
32 void initializeDXILIntrinsicExpansionLegacyPass(PassRegistry
&);
34 /// Pass to expand intrinsic operations that lack DXIL opCodes
35 ModulePass
*createDXILIntrinsicExpansionLegacyPass();
37 /// Initializer for DXILOpLowering
38 void initializeDXILOpLoweringLegacyPass(PassRegistry
&);
40 /// Pass to lowering LLVM intrinsic call to DXIL op function call.
41 ModulePass
*createDXILOpLoweringLegacyPass();
43 /// Initializer for DXILTranslateMetadata.
44 void initializeDXILTranslateMetadataPass(PassRegistry
&);
46 /// Pass to emit metadata for DXIL.
47 ModulePass
*createDXILTranslateMetadataPass();
49 /// Initializer for DXILTranslateMetadata.
50 void initializeDXILResourceWrapperPass(PassRegistry
&);
52 /// Pass to pretty print DXIL metadata.
53 ModulePass
*createDXILPrettyPrinterPass(raw_ostream
&OS
);
55 /// Initializer for DXILPrettyPrinter.
56 void initializeDXILPrettyPrinterPass(PassRegistry
&);
58 /// Initializer for dxil::ShaderFlagsAnalysisWrapper pass.
59 void initializeShaderFlagsAnalysisWrapperPass(PassRegistry
&);
61 /// Initializer for DXContainerGlobals pass.
62 void initializeDXContainerGlobalsPass(PassRegistry
&);
64 /// Pass for generating DXContainer part globals.
65 ModulePass
*createDXContainerGlobalsPass();
68 #endif // LLVM_LIB_TARGET_DIRECTX_DIRECTX_H