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 
18 /// Initializer for dxil writer pass
19 void initializeWriteDXILPassPass(PassRegistry &);
20 
21 /// Initializer for dxil embedder pass
22 void initializeEmbedDXILPassPass(PassRegistry &);
23 
24 /// Initializer for DXIL-prepare
25 void initializeDXILPrepareModulePass(PassRegistry &);
26 
27 /// Pass to convert modules into DXIL-compatable modules
28 ModulePass *createDXILPrepareModulePass();
29 
30 /// Initializer for DXILOpLowering
31 void initializeDXILOpLoweringLegacyPass(PassRegistry &);
32 
33 /// Pass to lowering LLVM intrinsic call to DXIL op function call.
34 ModulePass *createDXILOpLoweringLegacyPass();
35 
36 /// Initializer for DXILTranslateMetadata.
37 void initializeDXILTranslateMetadataPass(PassRegistry &);
38 
39 /// Pass to emit metadata for DXIL.
40 ModulePass *createDXILTranslateMetadataPass();
41 } // namespace llvm
42 
43 #endif // LLVM_LIB_TARGET_DIRECTX_DIRECTX_H
44