1 //===- DXILMetadata.h - DXIL Metadata helper objects ----------------------===// 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 /// \file This file contains helper objects for working with DXIL metadata. 10 /// 11 //===----------------------------------------------------------------------===// 12 13 #ifndef LLVM_TARGET_DIRECTX_DXILMETADATA_H 14 #define LLVM_TARGET_DIRECTX_DXILMETADATA_H 15 16 #include <stdint.h> 17 18 namespace llvm { 19 class Module; 20 class NamedMDNode; 21 class VersionTuple; 22 namespace dxil { 23 24 class ValidatorVersionMD { 25 NamedMDNode *Entry; 26 27 public: 28 ValidatorVersionMD(Module &M); 29 30 void update(VersionTuple ValidatorVer); 31 32 bool isEmpty(); 33 }; 34 35 void createShaderModelMD(Module &M); 36 void createEntryMD(Module &M, const uint64_t ShaderFlags); 37 38 } // namespace dxil 39 } // namespace llvm 40 41 #endif // LLVM_TARGET_DIRECTX_DXILMETADATA_H 42