21#define ROOT_PARAMETER(Val, Enum) \
26#include "llvm/BinaryFormat/DXContainerConstants.def"
35#define SHADER_VISIBILITY(Val, Enum) \
40#include "llvm/BinaryFormat/DXContainerConstants.def"
45#define FILTER(Val, Enum) \
50#include "llvm/BinaryFormat/DXContainerConstants.def"
55#define TEXTURE_ADDRESS_MODE(Val, Enum) \
60#include "llvm/BinaryFormat/DXContainerConstants.def"
65#define COMPARISON_FUNC(Val, Enum) \
70#include "llvm/BinaryFormat/DXContainerConstants.def"
75#define STATIC_BORDER_COLOR(Val, Enum) \
80#include "llvm/BinaryFormat/DXContainerConstants.def"
85template <
typename FlagT>
87 decltype(V) LargestValue =
108template <
typename EnumT>
110 decltype(V) LargestValue =
112 return V <= LargestValue;
124#define CONTAINER_PART(PartName) .Case(#PartName, PartType::PartName)
126#include "llvm/BinaryFormat/DXContainerConstants.def"
133 return IsDebug ?
"ILDB" :
"DXIL";
137 return PartName ==
"DXIL" || PartName ==
"ILDB";
141 static uint8_t Zeros[16] = {0};
142 return Flags > 0 || 0 != memcmp(&
Digest, &Zeros, 16);
147#define COMPONENT_PRECISION(Val, Enum) {{#Enum}, SigMinPrecision::Enum},
148#include "llvm/BinaryFormat/DXContainerConstants.def"
150 static constexpr auto SigMinPrecisionNames =
157#define D3D_SYSTEM_VALUE(Val, Enum) {{#Enum}, D3DSystemValue::Enum},
158#include "llvm/BinaryFormat/DXContainerConstants.def"
160 static constexpr auto D3DSystemValueNames =
167#define COMPONENT_TYPE(Val, Enum) {{#Enum}, SigComponentType::Enum},
168#include "llvm/BinaryFormat/DXContainerConstants.def"
170 static constexpr auto SigComponentTypes =
177#define ROOT_SIGNATURE_FLAG(Val, Enum) {{#Enum}, RootFlags::Enum},
178#include "llvm/BinaryFormat/DXContainerConstants.def"
186#define ROOT_DESCRIPTOR_FLAG(Val, Enum, Flag) \
187 {{#Enum}, RootDescriptorFlags::Enum},
188#include "llvm/BinaryFormat/DXContainerConstants.def"
190 static constexpr auto RootDescriptorFlagNames =
198#define DESCRIPTOR_RANGE_FLAG(Val, Enum, Flag) \
199 {{#Enum}, DescriptorRangeFlags::Enum},
200#include "llvm/BinaryFormat/DXContainerConstants.def"
202 static constexpr auto DescriptorRangeFlagNames =
209#define STATIC_SAMPLER_FLAG(Val, Enum, Flag) \
210 {{#Enum}, StaticSamplerFlags::Enum},
211#include "llvm/BinaryFormat/DXContainerConstants.def"
213 static constexpr auto StaticSamplerFlagNames =
220#define SHADER_VISIBILITY(Val, Enum) {{#Enum}, ShaderVisibility::Enum},
221#include "llvm/BinaryFormat/DXContainerConstants.def"
223 static constexpr auto ShaderVisibilityValues =
230#define FILTER(Val, Enum) {{#Enum}, SamplerFilter::Enum},
231#include "llvm/BinaryFormat/DXContainerConstants.def"
233 static constexpr auto SamplerFilterNames =
240#define TEXTURE_ADDRESS_MODE(Val, Enum) {{#Enum}, TextureAddressMode::Enum},
241#include "llvm/BinaryFormat/DXContainerConstants.def"
243 static constexpr auto TextureAddressModeNames =
250#define COMPARISON_FUNC(Val, Enum) {{#Enum}, ComparisonFunc::Enum},
251#include "llvm/BinaryFormat/DXContainerConstants.def"
253 static constexpr auto ComparisonFuncNames =
260#define STATIC_BORDER_COLOR(Val, Enum) {{#Enum}, StaticBorderColor::Enum},
261#include "llvm/BinaryFormat/DXContainerConstants.def"
263 static constexpr auto StaticBorderColorValues =
270#define ROOT_PARAMETER(Val, Enum) {{#Enum}, RootParameterType::Enum},
271#include "llvm/BinaryFormat/DXContainerConstants.def"
273 static constexpr auto RootParameterTypes =
280#define SEMANTIC_KIND(Val, Enum) {{#Enum}, PSV::SemanticKind::Enum},
281#include "llvm/BinaryFormat/DXContainerConstants.def"
283 static constexpr auto SemanticKindNames =
290#define COMPONENT_TYPE(Val, Enum) {{#Enum}, PSV::ComponentType::Enum},
291#include "llvm/BinaryFormat/DXContainerConstants.def"
293 static constexpr auto ComponentTypeNames =
301#define INTERPOLATION_MODE(Val, Enum) {{#Enum}, PSV::InterpolationMode::Enum},
302#include "llvm/BinaryFormat/DXContainerConstants.def"
304 static constexpr auto InterpolationModeNames =
311#define RESOURCE_TYPE(Val, Enum) {{#Enum}, PSV::ResourceType::Enum},
312#include "llvm/BinaryFormat/DXContainerConstants.def"
314 static constexpr auto ResourceTypeNames =
321#define RESOURCE_KIND(Val, Enum) {{#Enum}, PSV::ResourceKind::Enum},
322#include "llvm/BinaryFormat/DXContainerConstants.def"
324 static constexpr auto ResourceKindNames =
331#define SOURCE_INFO_TYPE(Num, Val) {{#Val}, SourceInfo::SectionType::Val},
332#include "llvm/BinaryFormat/DXContainerConstants.def"
348#define COMPRESSION_TYPE(Num, Val) \
349 {{#Val}, SourceInfo::Contents::CompressionType::Val},
350#include "llvm/BinaryFormat/DXContainerConstants.def"
352 static constexpr auto CompressionTypes =
#define BUILD_ENUM_STRINGS(Tab)
This file implements the StringSwitch template, which mimics a switch() statement whose cases are str...
Represent a constant reference to a string, i.e.
A switch()-like statement whose cases are string literals.
The instances of the Type class are immutable: once they are created, they are never changed.
static constexpr StringLiteral SectionNames[SectionKindsNum]
LLVM_ABI EnumStrings< SemanticKind, 1 > getSemanticKinds()
LLVM_ABI EnumStrings< InterpolationMode, 1 > getInterpolationModes()
LLVM_ABI EnumStrings< ResourceKind, 1 > getResourceKinds()
LLVM_ABI EnumStrings< ComponentType, 1 > getComponentTypes()
LLVM_ABI EnumStrings< ResourceType, 1 > getResourceTypes()
LLVM_ABI bool isValidCompressionType(uint16_t V)
LLVM_ABI EnumStrings< CompressionType, 1 > getCompressionTypes()
LLVM_ABI bool isValidSectionType(uint16_t V)
LLVM_ABI StringRef getSectionName(SectionType Type)
LLVM_ABI EnumStrings< SectionType, 1 > getSectionTypes()
LLVM_ABI bool isValidShaderVisibility(uint32_t V)
LLVM_ABI PartType parsePartType(StringRef S)
LLVM_ABI bool isValidSamplerFilter(uint32_t V)
LLVM_ABI bool isValidStaticSamplerFlags(uint32_t V)
LLVM_ABI EnumStrings< TextureAddressMode, 1 > getTextureAddressModes()
LLVM_ABI EnumStrings< DescriptorRangeFlags, 1 > getDescriptorRangeFlags()
LLVM_ABI EnumStrings< RootDescriptorFlags, 1 > getRootDescriptorFlags()
LLVM_ABI bool isValidRootDesciptorFlags(uint32_t V)
LLVM_ABI EnumStrings< SigComponentType, 1 > getSigComponentTypes()
LLVM_ABI EnumStrings< D3DSystemValue, 1 > getD3DSystemValues()
LLVM_ABI bool isDebugProgramPart(PartType PT)
LLVM_ABI EnumStrings< RootParameterType, 1 > getRootParameterTypes()
LLVM_ABI bool isProgramPart(StringRef PartName)
LLVM_ABI EnumStrings< SamplerFilter, 1 > getSamplerFilters()
LLVM_ABI EnumStrings< StaticBorderColor, 1 > getStaticBorderColors()
LLVM_ABI bool isValidCompilerVersionFlags(uint32_t V)
LLVM_ABI EnumStrings< ShaderVisibility, 1 > getShaderVisibility()
LLVM_ABI EnumStrings< ComparisonFunc, 1 > getComparisonFuncs()
LLVM_ABI bool isValidDescriptorRangeFlags(uint32_t V)
LLVM_ABI bool isValidBorderColor(uint32_t V)
LLVM_ABI bool isValidComparisonFunc(uint32_t V)
LLVM_ABI bool isValidParameterType(uint32_t V)
LLVM_ABI EnumStrings< RootFlags, 1 > getRootFlags()
LLVM_ABI const char * getProgramPartName(bool IsDebug)
LLVM_ABI EnumStrings< SigMinPrecision, 1 > getSigMinPrecisions()
LLVM_ABI EnumStrings< StaticSamplerFlags, 1 > getStaticSamplerFlags()
LLVM_ABI bool isValidAddress(uint32_t V)
LLVM_ABI bool isValidRangeType(uint32_t V)
This is an optimization pass for GlobalISel generic memory operations.
EnumStrings(const EnumStringsStorage< T, NumStrs, N, StrLen > &) -> EnumStrings< T, NumStrs >
constexpr std::underlying_type_t< Enum > to_underlying(Enum E)
Returns underlying integer value of an enum.
constexpr uint64_t NextPowerOf2(uint64_t A)
Returns the next power of two (in 64-bits) that is strictly greater than A.
Compile-time data representation of enum entries.
LLVM_ABI bool isPopulated()