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