xref: /freebsd/contrib/llvm-project/llvm/lib/Target/DirectX/DirectX.h (revision 7ef62cebc2f965b0f640263e179276928885e33d)
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 DXILOpLowering
32 void initializeDXILOpLoweringLegacyPass(PassRegistry &);
33 
34 /// Pass to lowering LLVM intrinsic call to DXIL op function call.
35 ModulePass *createDXILOpLoweringLegacyPass();
36 
37 /// Initializer for DXILTranslateMetadata.
38 void initializeDXILTranslateMetadataPass(PassRegistry &);
39 
40 /// Pass to emit metadata for DXIL.
41 ModulePass *createDXILTranslateMetadataPass();
42 
43 /// Initializer for DXILTranslateMetadata.
44 void initializeDXILResourceWrapperPass(PassRegistry &);
45 
46 /// Pass to pretty print DXIL metadata.
47 ModulePass *createDXILPrettyPrinterPass(raw_ostream &OS);
48 
49 /// Initializer for DXILPrettyPrinter.
50 void initializeDXILPrettyPrinterPass(PassRegistry &);
51 
52 /// Initializer for dxil::ShaderFlagsAnalysisWrapper pass.
53 void initializeShaderFlagsAnalysisWrapperPass(PassRegistry &);
54 
55 /// Initializer for DXContainerGlobals pass.
56 void initializeDXContainerGlobalsPass(PassRegistry &);
57 
58 /// Pass for generating DXContainer part globals.
59 ModulePass *createDXContainerGlobalsPass();
60 } // namespace llvm
61 
62 #endif // LLVM_LIB_TARGET_DIRECTX_DIRECTX_H
63