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