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 =
109#define CONTAINER_PART(PartName) .Case(#PartName, PartType::PartName)
111#include "llvm/BinaryFormat/DXContainerConstants.def"
118 return IsDebug ?
"ILDB" :
"DXIL";
122 static uint8_t Zeros[16] = {0};
123 return Flags > 0 || 0 != memcmp(&
Digest, &Zeros, 16);
126#define COMPONENT_PRECISION(Val, Enum) {#Enum, SigMinPrecision::Enum},
129#include "llvm/BinaryFormat/DXContainerConstants.def"
136#define D3D_SYSTEM_VALUE(Val, Enum) {#Enum, D3DSystemValue::Enum},
139#include "llvm/BinaryFormat/DXContainerConstants.def"
146#define COMPONENT_TYPE(Val, Enum) {#Enum, SigComponentType::Enum},
149#include "llvm/BinaryFormat/DXContainerConstants.def"
157#define ROOT_SIGNATURE_FLAG(Val, Enum) {#Enum, RootFlags::Enum},
158#include "llvm/BinaryFormat/DXContainerConstants.def"
166#define ROOT_DESCRIPTOR_FLAG(Val, Enum, Flag) \
167 {#Enum, RootDescriptorFlags::Enum},
168#include "llvm/BinaryFormat/DXContainerConstants.def"
176#define DESCRIPTOR_RANGE_FLAG(Val, Enum, Flag) \
177 {#Enum, DescriptorRangeFlags::Enum},
178#include "llvm/BinaryFormat/DXContainerConstants.def"
186#define STATIC_SAMPLER_FLAG(Val, Enum, Flag) {#Enum, StaticSamplerFlags::Enum},
187#include "llvm/BinaryFormat/DXContainerConstants.def"
194#define SHADER_VISIBILITY(Val, Enum) {#Enum, ShaderVisibility::Enum},
197#include "llvm/BinaryFormat/DXContainerConstants.def"
204#define FILTER(Val, Enum) {#Enum, SamplerFilter::Enum},
207#include "llvm/BinaryFormat/DXContainerConstants.def"
214#define TEXTURE_ADDRESS_MODE(Val, Enum) {#Enum, TextureAddressMode::Enum},
217#include "llvm/BinaryFormat/DXContainerConstants.def"
224#define COMPARISON_FUNC(Val, Enum) {#Enum, ComparisonFunc::Enum},
227#include "llvm/BinaryFormat/DXContainerConstants.def"
234#define STATIC_BORDER_COLOR(Val, Enum) {#Enum, StaticBorderColor::Enum},
237#include "llvm/BinaryFormat/DXContainerConstants.def"
244#define ROOT_PARAMETER(Val, Enum) {#Enum, RootParameterType::Enum},
247#include "llvm/BinaryFormat/DXContainerConstants.def"
254#define SEMANTIC_KIND(Val, Enum) {#Enum, PSV::SemanticKind::Enum},
257#include "llvm/BinaryFormat/DXContainerConstants.def"
264#define COMPONENT_TYPE(Val, Enum) {#Enum, PSV::ComponentType::Enum},
267#include "llvm/BinaryFormat/DXContainerConstants.def"
274#define INTERPOLATION_MODE(Val, Enum) {#Enum, PSV::InterpolationMode::Enum},
277#include "llvm/BinaryFormat/DXContainerConstants.def"
284#define RESOURCE_TYPE(Val, Enum) {#Enum, PSV::ResourceType::Enum},
287#include "llvm/BinaryFormat/DXContainerConstants.def"
294#define RESOURCE_KIND(Val, Enum) {#Enum, PSV::ResourceKind::Enum},
297#include "llvm/BinaryFormat/DXContainerConstants.def"
This file implements the StringSwitch template, which mimics a switch() statement whose cases are str...
Represent a constant reference to an array (0 or more elements consecutively in memory),...
Represent a constant reference to a string, i.e.
A switch()-like statement whose cases are string literals.
LLVM_ABI ArrayRef< EnumEntry< ResourceKind > > getResourceKinds()
LLVM_ABI ArrayRef< EnumEntry< ComponentType > > getComponentTypes()
LLVM_ABI ArrayRef< EnumEntry< ResourceType > > getResourceTypes()
LLVM_ABI ArrayRef< EnumEntry< SemanticKind > > getSemanticKinds()
LLVM_ABI ArrayRef< EnumEntry< InterpolationMode > > getInterpolationModes()
LLVM_ABI ArrayRef< EnumEntry< ComparisonFunc > > getComparisonFuncs()
LLVM_ABI ArrayRef< EnumEntry< ShaderVisibility > > getShaderVisibility()
bool isValidShaderVisibility(uint32_t V)
LLVM_ABI PartType parsePartType(StringRef S)
bool isValidSamplerFilter(uint32_t V)
bool isValidStaticSamplerFlags(uint32_t V)
LLVM_ABI ArrayRef< EnumEntry< RootFlags > > getRootFlags()
LLVM_ABI ArrayRef< EnumEntry< RootParameterType > > getRootParameterTypes()
bool isValidRootDesciptorFlags(uint32_t V)
LLVM_ABI ArrayRef< EnumEntry< SigComponentType > > getSigComponentTypes()
bool isDebugProgramPart(PartType PT)
LLVM_ABI ArrayRef< EnumEntry< SigMinPrecision > > getSigMinPrecisions()
LLVM_ABI ArrayRef< EnumEntry< DescriptorRangeFlags > > getDescriptorRangeFlags()
bool isValidCompilerVersionFlags(uint32_t V)
LLVM_ABI ArrayRef< EnumEntry< SamplerFilter > > getSamplerFilters()
LLVM_ABI ArrayRef< EnumEntry< D3DSystemValue > > getD3DSystemValues()
bool isValidDescriptorRangeFlags(uint32_t V)
bool isValidBorderColor(uint32_t V)
bool isValidComparisonFunc(uint32_t V)
LLVM_ABI_FOR_TEST bool isValidParameterType(uint32_t V)
const char * getProgramPartName(bool IsDebug)
LLVM_ABI ArrayRef< EnumEntry< StaticBorderColor > > getStaticBorderColors()
bool isValidAddress(uint32_t V)
LLVM_ABI ArrayRef< EnumEntry< TextureAddressMode > > getTextureAddressModes()
bool isValidRangeType(uint32_t V)
LLVM_ABI ArrayRef< EnumEntry< StaticSamplerFlags > > getStaticSamplerFlags()
LLVM_ABI ArrayRef< EnumEntry< RootDescriptorFlags > > getRootDescriptorFlags()
This is an optimization pass for GlobalISel generic memory operations.
constexpr std::underlying_type_t< Enum > to_underlying(Enum E)
Returns underlying integer value of an enum.
ArrayRef(const T &OneElt) -> ArrayRef< T >
constexpr uint64_t NextPowerOf2(uint64_t A)
Returns the next power of two (in 64-bits) that is strictly greater than A.
LLVM_ABI bool isPopulated()