1 | //===- DirectXTargetMachine.h - DirectX Target Implementation ---*- C++ -*-===// |
2 | // |
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 |
6 | // |
7 | //===----------------------------------------------------------------------===// |
8 | /// |
9 | //===----------------------------------------------------------------------===// |
10 | |
11 | #ifndef LLVM_LIB_TARGET_DIRECTX_DIRECTX_H |
12 | #define LLVM_LIB_TARGET_DIRECTX_DIRECTX_H |
13 | |
14 | namespace llvm { |
15 | class ModulePass; |
16 | class PassRegistry; |
17 | class raw_ostream; |
18 | |
19 | /// Initializer for dxil writer pass |
20 | void initializeWriteDXILPassPass(PassRegistry &); |
21 | |
22 | /// Initializer for dxil embedder pass |
23 | void initializeEmbedDXILPassPass(PassRegistry &); |
24 | |
25 | /// Initializer for DXIL-prepare |
26 | void initializeDXILPrepareModulePass(PassRegistry &); |
27 | |
28 | /// Pass to convert modules into DXIL-compatable modules |
29 | ModulePass *createDXILPrepareModulePass(); |
30 | |
31 | /// Initializer for DXIL Intrinsic Expansion |
32 | void initializeDXILIntrinsicExpansionLegacyPass(PassRegistry &); |
33 | |
34 | /// Pass to expand intrinsic operations that lack DXIL opCodes |
35 | ModulePass *createDXILIntrinsicExpansionLegacyPass(); |
36 | |
37 | /// Initializer for DXILOpLowering |
38 | void initializeDXILOpLoweringLegacyPass(PassRegistry &); |
39 | |
40 | /// Pass to lowering LLVM intrinsic call to DXIL op function call. |
41 | ModulePass *createDXILOpLoweringLegacyPass(); |
42 | |
43 | /// Initializer for DXILTranslateMetadata. |
44 | void initializeDXILTranslateMetadataPass(PassRegistry &); |
45 | |
46 | /// Pass to emit metadata for DXIL. |
47 | ModulePass *createDXILTranslateMetadataPass(); |
48 | |
49 | /// Initializer for DXILTranslateMetadata. |
50 | void initializeDXILResourceWrapperPass(PassRegistry &); |
51 | |
52 | /// Pass to pretty print DXIL metadata. |
53 | ModulePass *createDXILPrettyPrinterPass(raw_ostream &OS); |
54 | |
55 | /// Initializer for DXILPrettyPrinter. |
56 | void initializeDXILPrettyPrinterPass(PassRegistry &); |
57 | |
58 | /// Initializer for dxil::ShaderFlagsAnalysisWrapper pass. |
59 | void initializeShaderFlagsAnalysisWrapperPass(PassRegistry &); |
60 | |
61 | /// Initializer for DXContainerGlobals pass. |
62 | void initializeDXContainerGlobalsPass(PassRegistry &); |
63 | |
64 | /// Pass for generating DXContainer part globals. |
65 | ModulePass *createDXContainerGlobalsPass(); |
66 | } // namespace llvm |
67 | |
68 | #endif // LLVM_LIB_TARGET_DIRECTX_DIRECTX_H |
69 | |