xref: /freebsd/contrib/llvm-project/llvm/lib/Target/DirectX/DirectX.h (revision 7fdf597e96a02165cfe22ff357b857d5fa15ed8a)
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