xref: /freebsd/contrib/llvm-project/llvm/lib/Target/DirectX/DXILMetadata.h (revision b64c5a0ace59af62eff52bfe110a521dc73c937b)
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   VersionTuple getAsVersionTuple();
34 };
35 
36 void createShaderModelMD(Module &M);
37 void createDXILVersionMD(Module &M);
38 void createEntryMD(Module &M, const uint64_t ShaderFlags);
39 
40 } // namespace dxil
41 } // namespace llvm
42 
43 #endif // LLVM_TARGET_DIRECTX_DXILMETADATA_H
44