28 if (Remaining & Bit) {
33 if (!MaybeFlag.
empty())
36 OS <<
"invalid: " << Bit;
125 OS <<
"RootConstants(num32BitConstants = " << Constants.Num32BitConstants
126 <<
", " << Constants.Reg <<
", space = " << Constants.Space
127 <<
", visibility = " << Constants.Visibility <<
")";
133 OS <<
"DescriptorTable(numClauses = " << Table.
NumClauses
134 <<
", visibility = " << Table.
Visibility <<
")";
145 OS <<
", space = " <<
Clause.Space <<
", offset = ";
147 OS <<
"DescriptorTableOffsetAppend";
150 OS <<
", flags = " <<
Clause.Flags <<
")";
156 OS <<
"Root" << Descriptor.
Type <<
"(" << Descriptor.
Reg
157 <<
", space = " << Descriptor.
Space
159 <<
", flags = " << Descriptor.
Flags <<
")";
165 OS <<
"StaticSampler(" << Sampler.Reg <<
", filter = " << Sampler.Filter
166 <<
", addressU = " << Sampler.AddressU
167 <<
", addressV = " << Sampler.AddressV
168 <<
", addressW = " << Sampler.AddressW
169 <<
", mipLODBias = " << Sampler.MipLODBias
170 <<
", maxAnisotropy = " << Sampler.MaxAnisotropy
171 <<
", comparisonFunc = " << Sampler.CompFunc
172 <<
", borderColor = " << Sampler.BorderColor
173 <<
", minLOD = " << Sampler.MinLOD <<
", maxLOD = " << Sampler.MaxLOD
174 <<
", space = " << Sampler.Space <<
", visibility = " << Sampler.Visibility
183template <
class... Ts>
struct OverloadedVisit : Ts... {
184 using Ts::operator()...;
186template <
class... Ts> OverloadedVisit(Ts...) -> OverloadedVisit<Ts...>;
191 const auto Visitor = OverloadedVisit{
199 std::visit(Visitor, Element);
204 OS <<
" RootElements{";
209 OS <<
" " << Element;
ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory),...
StringRef - Represent a constant reference to a string, i.e.
constexpr bool empty() const
empty - Check if the string is empty.
The instances of the Type class are immutable: once they are created, they are never changed.
LLVM Value Representation.
This class implements an extremely fast bulk output stream that can only output to a stream.
LLVM_ABI ArrayRef< EnumEntry< ComparisonFunc > > getComparisonFuncs()
LLVM_ABI ArrayRef< EnumEntry< ShaderVisibility > > getShaderVisibility()
LLVM_ABI ArrayRef< EnumEntry< RootFlags > > getRootFlags()
LLVM_ABI ArrayRef< EnumEntry< DescriptorRangeFlags > > getDescriptorRangeFlags()
LLVM_ABI ArrayRef< EnumEntry< SamplerFilter > > getSamplerFilters()
LLVM_ABI ArrayRef< EnumEntry< StaticBorderColor > > getStaticBorderColors()
LLVM_ABI ArrayRef< EnumEntry< TextureAddressMode > > getTextureAddressModes()
LLVM_ABI ArrayRef< EnumEntry< RootDescriptorFlags > > getRootDescriptorFlags()
LLVM_ABI StringRef getResourceClassName(ResourceClass RC)
static const uint32_t NumDescriptorsUnbounded
std::variant< dxbc::RootFlags, RootConstants, RootDescriptor, DescriptorTable, DescriptorTableClause, StaticSampler > RootElement
Models RootElement : RootFlags | RootConstants | RootParam | DescriptorTable | DescriptorTableClause ...
static const uint32_t DescriptorTableOffsetAppend
static const EnumEntry< RegisterType > RegisterNames[]
LLVM_ABI void dumpRootElements(raw_ostream &OS, ArrayRef< RootElement > Elements)
static raw_ostream & printFlags(raw_ostream &OS, const T Value, ArrayRef< EnumEntry< T > > Flags)
LLVM_ABI raw_ostream & operator<<(raw_ostream &OS, const dxbc::RootFlags &Flags)
The following contains the serialization interface for root elements.
This is an optimization pass for GlobalISel generic memory operations.
int countr_zero(T Val)
Count number of 0's from the least significant bit to the most stopping at the first 1.
constexpr std::underlying_type_t< Enum > to_underlying(Enum E)
Returns underlying integer value of an enum.
@ First
Helpers to iterate all locations in the MemoryEffectsBase class.
StringRef enumToStringRef(T Value, ArrayRef< EnumEntry< TEnum > > EnumValues)
Retrieves the Value's enum name.
dxbc::ShaderVisibility Visibility
dxbc::ShaderVisibility Visibility
dxbc::RootDescriptorFlags Flags