LLVM 19.0.0git
DXILABI.h
Go to the documentation of this file.
1//===-- DXILABI.h - ABI Sensitive Values for DXIL ---------------*- 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// This file contains definitions of various constants and enums that are
10// required to remain stable as per the DXIL format's requirements.
11//
12// Documentation for DXIL can be found in
13// https://github.com/Microsoft/DirectXShaderCompiler/blob/main/docs/DXIL.rst.
14//
15//===----------------------------------------------------------------------===//
16
17#ifndef LLVM_SUPPORT_DXILABI_H
18#define LLVM_SUPPORT_DXILABI_H
19
21
22namespace llvm {
23namespace dxil {
24
25enum class ParameterKind : uint8_t {
26 Invalid = 0,
27 Void,
28 Half,
29 Float,
30 Double,
31 I1,
32 I8,
33 I16,
34 I32,
35 I64,
40};
41
42enum class ResourceClass : uint8_t {
43 SRV = 0,
44 UAV,
45 CBuffer,
46 Sampler,
47};
48
49/// The kind of resource for an SRV or UAV resource. Sometimes referred to as
50/// "Shape" in the DXIL docs.
51enum class ResourceKind : uint32_t {
52 Invalid = 0,
65 CBuffer,
66 Sampler,
67 TBuffer,
72};
73
74/// The element type of an SRV or UAV resource.
75enum class ElementType : uint32_t {
76 Invalid = 0,
77 I1,
78 I16,
79 U16,
80 I32,
81 U32,
82 I64,
83 U64,
84 F16,
85 F32,
86 F64,
95};
96
97} // namespace dxil
98} // namespace llvm
99
100#endif // LLVM_SUPPORT_DXILABI_H
This file implements the StringSwitch template, which mimics a switch() statement whose cases are str...
ResourceKind
The kind of resource for an SRV or UAV resource.
Definition: DXILABI.h:51
ResourceClass
Definition: DXILABI.h:42
ElementType
The element type of an SRV or UAV resource.
Definition: DXILABI.h:75
ParameterKind
Definition: DXILABI.h:25
This is an optimization pass for GlobalISel generic memory operations.
Definition: AddressRanges.h:18