15#ifndef LLVM_OBJECTYAML_DXCONTAINERYAML_H 
   16#define LLVM_OBJECTYAML_DXCONTAINERYAML_H 
   41  std::vector<llvm::yaml::Hex8> 
Hash;
 
 
   52  std::optional<uint32_t> 
Size;
 
   57  std::optional<std::vector<llvm::yaml::Hex8>> 
DXIL;
 
 
   60#define SHADER_FEATURE_FLAG(Num, DxilModuleNum, Val, Str) bool Val = false; 
   65#include "llvm/BinaryFormat/DXContainerConstants.def" 
 
   73  std::vector<llvm::yaml::Hex8> 
Digest;
 
 
   90#define ROOT_DESCRIPTOR_FLAG(Num, Enum, Flag) bool Enum = false; 
   91#include "llvm/BinaryFormat/DXContainerConstants.def" 
 
  103#define DESCRIPTOR_RANGE_FLAG(Num, Enum, Flag) bool Enum = false; 
  104#include "llvm/BinaryFormat/DXContainerConstants.def" 
 
  138  template <
typename T>
 
 
  177  float MaxLOD = std::numeric_limits<float>::max();
 
  184#define STATIC_SAMPLER_FLAG(Num, Enum, Flag) bool Enum = false; 
  185#include "llvm/BinaryFormat/DXContainerConstants.def" 
 
  209#define ROOT_SIGNATURE_FLAG(Num, Val) bool Val = false; 
  210#include "llvm/BinaryFormat/DXContainerConstants.def" 
 
  224        Indices(IdxTable.slice(El.IndicesOffset, El.Rows)),
 
 
 
  296  std::optional<ShaderFeatureFlags> 
Flags;
 
  297  std::optional<ShaderHash> 
Hash;
 
 
 
static GCRegistry::Add< StatepointGC > D("statepoint-example", "an example strategy for statepoint")
 
static StringRef substr(StringRef Str, uint64_t Len)
 
#define LLVM_YAML_IS_SEQUENCE_VECTOR(type)
Utility for declaring that a std::vector of a particular type should be considered a YAML sequence.
 
#define LLVM_YAML_DECLARE_ENUM_TRAITS(Type)
 
ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory),...
 
Tagged union holding either a T or a Error.
 
This class consists of common code factored out of the SmallVector class to reduce code duplication b...
 
reference emplace_back(ArgTypes &&... Args)
 
This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small.
 
StringRef - Represent a constant reference to a string, i.e.
 
A table of densely packed, null-terminated strings indexed by offset.
 
Represents a version number in the form major[.minor[.subminor[.build]]].
 
A range adaptor for a pair of iterators.
 
@ C
The default llvm calling convention, compatible with C.
 
dxbc::PSV::ResourceFlags ResourceFlags
 
dxbc::PSV::v2::ResourceBindInfo ResourceBindInfo
 
This is an optimization pass for GlobalISel generic memory operations.
 
auto find(R &&Range, const T &Val)
Provide wrappers to std::find which take ranges instead of having to pass begin/end explicitly.
 
iterator_range< T > make_range(T x, T y)
Convenience function for iterating over sub-ranges.
 
FunctionAddr VTableAddr uintptr_t uintptr_t Version
 
FunctionAddr VTableAddr uintptr_t uintptr_t Data
 
std::optional< uint32_t > DXILOffset
 
uint16_t DXILMajorVersion
 
std::optional< uint32_t > Size
 
uint16_t DXILMinorVersion
 
std::optional< std::vector< llvm::yaml::Hex8 > > DXIL
 
std::optional< uint32_t > DXILSize
 
uint32_t OffsetInDescriptorsFromTableStart
 
uint32_t BaseShaderRegister
 
LLVM_ABI uint32_t getEncodedFlags() const
 
dxil::ResourceClass RangeType
 
SmallVector< DescriptorRangeYaml > Ranges
 
std::vector< Part > Parts
 
std::array< MaskVector, 4 > InputOutputMap
 
MaskVector PatchOutputMap
 
SmallVector< SignatureElement > SigOutputElements
 
MaskVector PatchOrPrimMasks
 
SmallVector< SignatureElement > SigPatchOrPrimElements
 
SmallVector< ResourceBindInfo > Resources
 
SmallVector< SignatureElement > SigInputElements
 
SmallVector< llvm::yaml::Hex32 > MaskVector
 
LLVM_ABI void mapInfoForVersion(yaml::IO &IO)
 
dxbc::PSV::v3::RuntimeInfo Info
 
std::array< MaskVector, 4 > OutputVectorMasks
 
std::optional< PSVInfo > Info
 
std::optional< DXContainerYAML::RootSignatureYamlDesc > RootSignature
 
std::optional< DXILProgram > Program
 
std::optional< DXContainerYAML::Signature > Signature
 
std::optional< ShaderHash > Hash
 
std::optional< ShaderFeatureFlags > Flags
 
Part(std::string N, uint32_t S)
 
LLVM_ABI uint32_t getEncodedFlags() const
 
RootDescriptorYaml()=default
 
RootParameterLocationYaml()=default
 
std::optional< size_t > IndexInSignature
 
RootParameterLocationYaml(RootParameterHeaderYaml Header)
 
RootParameterHeaderYaml Header
 
RootDescriptorYaml & getOrInsertDescriptor(RootParameterLocationYaml &ParamDesc)
 
T & getOrInsertImpl(RootParameterLocationYaml &ParamDesc, SmallVectorImpl< T > &Container)
 
SmallVector< RootParameterLocationYaml > Locations
 
RootConstantsYaml & getOrInsertConstants(RootParameterLocationYaml &ParamDesc)
 
void insertLocation(RootParameterLocationYaml &Location)
 
DescriptorTableYaml & getOrInsertTable(RootParameterLocationYaml &ParamDesc)
 
SmallVector< RootConstantsYaml > Constants
 
SmallVector< RootDescriptorYaml > Descriptors
 
SmallVector< DescriptorTableYaml > Tables
 
uint32_t NumRootParameters
 
uint32_t NumStaticSamplers
 
iterator_range< StaticSamplerYamlDesc * > samplers()
 
SmallVector< StaticSamplerYamlDesc > StaticSamplers
 
std::optional< uint32_t > RootParametersOffset
 
RootSignatureYamlDesc()=default
 
LLVM_ABI uint32_t getEncodedFlags()
 
static LLVM_ABI llvm::Expected< DXContainerYAML::RootSignatureYamlDesc > create(const object::DirectX::RootSignature &Data)
 
RootParameterYamlDesc Parameters
 
std::optional< uint32_t > StaticSamplersOffset
 
ShaderFeatureFlags()=default
 
LLVM_ABI uint64_t getEncodedFlags()
 
std::vector< llvm::yaml::Hex8 > Digest
 
SignatureElement(dxbc::PSV::v0::SignatureElement El, StringRef StringTable, ArrayRef< uint32_t > IdxTable)
 
dxbc::PSV::ComponentType Type
 
dxbc::PSV::InterpolationMode Mode
 
llvm::yaml::Hex8 DynamicMask
 
dxbc::PSV::SemanticKind Kind
 
SmallVector< uint32_t > Indices
 
SignatureElement()=default
 
dxbc::SigComponentType CompType
 
dxbc::SigMinPrecision MinPrecision
 
dxbc::D3DSystemValue SystemValue
 
llvm::SmallVector< SignatureParameter > Parameters
 
dxbc::StaticBorderColor BorderColor
 
dxbc::ShaderVisibility ShaderVisibility
 
dxbc::TextureAddressMode AddressU
 
dxbc::SamplerFilter Filter
 
dxbc::ComparisonFunc ComparisonFunc
 
dxbc::TextureAddressMode AddressV
 
LLVM_ABI uint32_t getEncodedFlags() const
 
dxbc::TextureAddressMode AddressW
 
static LLVM_ABI void mapping(IO &IO, llvm::DXContainerYAML::RootParameterLocationYaml &L, DXContainerYAML::RootSignatureYamlDesc &S)
 
This class is similar to MappingTraits<T> but allows you to pass in additional context for each map o...
 
static LLVM_ABI void mapping(IO &IO, DXContainerYAML::DXILProgram &Program)
 
static LLVM_ABI void mapping(IO &IO, DXContainerYAML::Object &Obj)
 
static LLVM_ABI void mapping(IO &IO, DXContainerYAML::PSVInfo &PSV)
 
static LLVM_ABI void mapping(IO &IO, DXContainerYAML::Part &Version)
 
static LLVM_ABI void mapping(IO &IO, DXContainerYAML::ResourceBindInfo &Res)
 
static LLVM_ABI void mapping(IO &IO, DXContainerYAML::ResourceFlags &Flags)
 
static LLVM_ABI void mapping(IO &IO, DXContainerYAML::RootSignatureYamlDesc &RootSignature)
 
static LLVM_ABI void mapping(IO &IO, DXContainerYAML::ShaderFeatureFlags &Flags)
 
static LLVM_ABI void mapping(IO &IO, DXContainerYAML::ShaderHash &Hash)
 
static LLVM_ABI void mapping(IO &IO, llvm::DXContainerYAML::SignatureElement &El)
 
static LLVM_ABI void mapping(IO &IO, llvm::DXContainerYAML::SignatureParameter &El)
 
static LLVM_ABI void mapping(IO &IO, llvm::DXContainerYAML::Signature &El)
 
static LLVM_ABI void mapping(IO &IO, DXContainerYAML::VersionTuple &Version)
 
static LLVM_ABI void mapping(IO &IO, llvm::DXContainerYAML::DescriptorRangeYaml &D)
 
static LLVM_ABI void mapping(IO &IO, llvm::DXContainerYAML::DescriptorTableYaml &D)
 
static LLVM_ABI void mapping(IO &IO, llvm::DXContainerYAML::RootConstantsYaml &C)
 
static LLVM_ABI void mapping(IO &IO, llvm::DXContainerYAML::RootDescriptorYaml &D)
 
static LLVM_ABI void mapping(IO &IO, llvm::DXContainerYAML::StaticSamplerYamlDesc &S)
 
This class should be specialized by any type that needs to be converted to/from a YAML mapping.