29 if (Remaining & Bit) {
34 if (!MaybeFlag.
empty())
37 OS <<
"invalid: " << Bit;
132 OS <<
"RootConstants(num32BitConstants = " << Constants.Num32BitConstants
133 <<
", " << Constants.Reg <<
", space = " << Constants.Space
134 <<
", visibility = " << Constants.Visibility <<
")";
140 OS <<
"DescriptorTable(numClauses = " << Table.
NumClauses
141 <<
", visibility = " << Table.
Visibility <<
")";
147 OS <<
Clause.Type <<
"(" <<
Clause.Reg <<
", numDescriptors = ";
151 OS <<
Clause.NumDescriptors;
152 OS <<
", space = " <<
Clause.Space <<
", offset = ";
154 OS <<
"DescriptorTableOffsetAppend";
157 OS <<
", flags = " <<
Clause.Flags <<
")";
163 OS <<
"Root" << Descriptor.
Type <<
"(" << Descriptor.
Reg
164 <<
", space = " << Descriptor.
Space
166 <<
", flags = " << Descriptor.
Flags <<
")";
172 OS <<
"StaticSampler(" <<
Sampler.Reg <<
", filter = " <<
Sampler.Filter
173 <<
", addressU = " <<
Sampler.AddressU
174 <<
", addressV = " <<
Sampler.AddressV
175 <<
", addressW = " <<
Sampler.AddressW
176 <<
", mipLODBias = " <<
Sampler.MipLODBias
177 <<
", maxAnisotropy = " <<
Sampler.MaxAnisotropy
178 <<
", comparisonFunc = " <<
Sampler.CompFunc
179 <<
", borderColor = " <<
Sampler.BorderColor
180 <<
", minLOD = " <<
Sampler.MinLOD <<
", maxLOD = " <<
Sampler.MaxLOD
181 <<
", space = " <<
Sampler.Space <<
", visibility = " <<
Sampler.Visibility
182 <<
", flags = " <<
Sampler.Flags <<
")";
190template <
class... Ts>
struct OverloadedVisit : Ts... {
191 using Ts::operator()...;
193template <
class... Ts> OverloadedVisit(Ts...) -> OverloadedVisit<Ts...>;
198 const auto Visitor = OverloadedVisit{
206 std::visit(Visitor, Element);
211 OS <<
" RootElements" <<
interleaved(Elements,
", ",
"{",
"}");
#define BUILD_ENUM_STRINGS(Tab)
Represent a constant reference to an array (0 or more elements consecutively in memory),...
Represent a constant reference to a string, i.e.
constexpr bool empty() const
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 EnumStrings< TextureAddressMode, 1 > getTextureAddressModes()
LLVM_ABI EnumStrings< DescriptorRangeFlags, 1 > getDescriptorRangeFlags()
LLVM_ABI EnumStrings< RootDescriptorFlags, 1 > getRootDescriptorFlags()
LLVM_ABI EnumStrings< SamplerFilter, 1 > getSamplerFilters()
LLVM_ABI EnumStrings< StaticBorderColor, 1 > getStaticBorderColors()
LLVM_ABI EnumStrings< ShaderVisibility, 1 > getShaderVisibility()
LLVM_ABI EnumStrings< ComparisonFunc, 1 > getComparisonFuncs()
LLVM_ABI EnumStrings< RootFlags, 1 > getRootFlags()
LLVM_ABI EnumStrings< StaticSamplerFlags, 1 > getStaticSamplerFlags()
LLVM_ABI StringRef getResourceClassName(ResourceClass RC)
static const uint32_t NumDescriptorsUnbounded
static const uint32_t DescriptorTableOffsetAppend
LLVM_ABI void dumpRootElements(raw_ostream &OS, ArrayRef< RootElement > Elements)
static raw_ostream & printFlags(raw_ostream &OS, const T Value, EnumStrings< T > Flags)
std::variant< dxbc::RootFlags, RootConstants, RootDescriptor, DescriptorTable, DescriptorTableClause, StaticSampler > RootElement
Models RootElement : RootFlags | RootConstants | RootParam | DescriptorTable | DescriptorTableClause ...
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.
InterleavedRange< Range > interleaved(const Range &R, StringRef Separator=", ", StringRef Prefix="", StringRef Suffix="")
Output range R as a sequence of interleaved elements.
EnumStrings(const EnumStringsStorage< T, NumStrs, N, StrLen > &) -> EnumStrings< T, NumStrs >
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.
Compile-time data representation of enum entries.
dxbc::ShaderVisibility Visibility
dxbc::ShaderVisibility Visibility
dxbc::RootDescriptorFlags Flags