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