LLVM: lib/MC/DXContainerRootSignature.cpp Source File (original) (raw)
1
2
3
4
5
6
7
8
12
13using namespace llvm;
15
17 const uint32_t DummyValue = std::numeric_limits<uint32_t>::max();
21}
22
29 return ByteOffset;
30}
31
41
45
48
51 switch (I.Type) {
52 case dxbc::RootParameterType::Constants32Bit:
54 break;
55 case dxbc::RootParameterType::CBV:
56 case dxbc::RootParameterType::SRV:
57 case dxbc::RootParameterType::UAV:
60 else
62
63 break;
64 case dxbc::RootParameterType::DescriptorTable:
67
68
69
73 else
75 break;
76 }
77 }
78
80}
81
86
95
100
102 }
103
104 assert(NumParameters == ParamsOffsets.size());
105 for (size_t I = 0; I < NumParameters; ++I) {
108 switch (Info.Type) {
109 case dxbc::RootParameterType::Constants32Bit: {
118 break;
119 }
120 case dxbc::RootParameterType::CBV:
121 case dxbc::RootParameterType::SRV:
122 case dxbc::RootParameterType::UAV: {
125
132 break;
133 }
134 case dxbc::RootParameterType::DescriptorTable: {
140 for (const auto &Range : Table) {
153 }
154 break;
155 }
156 }
157 }
160 "Computed offset does not match written offset");
175
178 }
181}
assert(UImm &&(UImm !=~static_cast< T >(0)) &&"Invalid immediate!")
static uint32_t rewriteOffsetToCurrentByte(raw_svector_ostream &Stream, uint32_t Offset)
Definition DXContainerRootSignature.cpp:23
static uint32_t writePlaceholder(raw_svector_ostream &Stream)
Definition DXContainerRootSignature.cpp:16
ConstantRange Range(APInt(BitWidth, Low), APInt(BitWidth, High))
This file defines the SmallString class.
SmallString - A SmallString is just a SmallVector with methods and accessors that make it work better...
void push_back(const T &Elt)
pointer data()
Return a pointer to the vector's buffer, even if empty().
This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small.
LLVM Value Representation.
This class implements an extremely fast bulk output stream that can only output to a stream.
uint64_t tell() const
tell - Return the current offset with the file.
raw_ostream & write(unsigned char C)
void pwrite(const char *Ptr, size_t Size, uint64_t Offset)
A raw_ostream that writes to an SmallVector or SmallString.
void reserveExtraSpace(uint64_t ExtraSize) override
If possible, pre-allocate ExtraSize bytes for stream data.
value_type byte_swap(value_type value, endianness endian)
void write(void *memory, value_type value, endianness endian)
Write a value to memory with a particular endianness.
This is an optimization pass for GlobalISel generic memory operations.
SmallVector< DescriptorRange > Ranges
uint32_t RootParameterOffset
LLVM_ABI uint32_t computeRootParametersOffset() const
Definition DXContainerRootSignature.cpp:42
LLVM_ABI size_t getSize() const
Definition DXContainerRootSignature.cpp:32
LLVM_ABI void write(raw_ostream &OS) const
Definition DXContainerRootSignature.cpp:82
SmallVector< StaticSampler > StaticSamplers
LLVM_ABI uint32_t computeStaticSamplersOffset() const
Definition DXContainerRootSignature.cpp:46
mcdxbc::RootParametersContainer ParametersContainer
uint32_t StaticSamplersOffset