1*bdd1243dSDimitry Andric //===- DXILMetadata.h - DXIL Metadata helper objects ----------------------===// 2*bdd1243dSDimitry Andric // 3*bdd1243dSDimitry Andric // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. 4*bdd1243dSDimitry Andric // See https://llvm.org/LICENSE.txt for license information. 5*bdd1243dSDimitry Andric // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception 6*bdd1243dSDimitry Andric // 7*bdd1243dSDimitry Andric //===----------------------------------------------------------------------===// 8*bdd1243dSDimitry Andric /// 9*bdd1243dSDimitry Andric /// \file This file contains helper objects for working with DXIL metadata. 10*bdd1243dSDimitry Andric /// 11*bdd1243dSDimitry Andric //===----------------------------------------------------------------------===// 12*bdd1243dSDimitry Andric 13*bdd1243dSDimitry Andric #ifndef LLVM_TARGET_DIRECTX_DXILMETADATA_H 14*bdd1243dSDimitry Andric #define LLVM_TARGET_DIRECTX_DXILMETADATA_H 15*bdd1243dSDimitry Andric 16*bdd1243dSDimitry Andric #include <stdint.h> 17*bdd1243dSDimitry Andric 18*bdd1243dSDimitry Andric namespace llvm { 19*bdd1243dSDimitry Andric class Module; 20*bdd1243dSDimitry Andric class NamedMDNode; 21*bdd1243dSDimitry Andric class VersionTuple; 22*bdd1243dSDimitry Andric namespace dxil { 23*bdd1243dSDimitry Andric 24*bdd1243dSDimitry Andric class ValidatorVersionMD { 25*bdd1243dSDimitry Andric NamedMDNode *Entry; 26*bdd1243dSDimitry Andric 27*bdd1243dSDimitry Andric public: 28*bdd1243dSDimitry Andric ValidatorVersionMD(Module &M); 29*bdd1243dSDimitry Andric 30*bdd1243dSDimitry Andric void update(VersionTuple ValidatorVer); 31*bdd1243dSDimitry Andric 32*bdd1243dSDimitry Andric bool isEmpty(); 33*bdd1243dSDimitry Andric }; 34*bdd1243dSDimitry Andric 35*bdd1243dSDimitry Andric void createShaderModelMD(Module &M); 36*bdd1243dSDimitry Andric void createEntryMD(Module &M, const uint64_t ShaderFlags); 37*bdd1243dSDimitry Andric 38*bdd1243dSDimitry Andric } // namespace dxil 39*bdd1243dSDimitry Andric } // namespace llvm 40*bdd1243dSDimitry Andric 41*bdd1243dSDimitry Andric #endif // LLVM_TARGET_DIRECTX_DXILMETADATA_H 42