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