9#ifndef LLVM_TRANSFORMS_UTILS_DXILRESOURCE_H
10#define LLVM_TRANSFORMS_UTILS_DXILRESOURCE_H
26 std::tie(
RHS.Space,
RHS.LowerBound,
RHS.Size);
33 bool GloballyCoherent;
38 return std::tie(GloballyCoherent, HasCounter, IsROV) ==
39 std::tie(
RHS.GloballyCoherent,
RHS.HasCounter,
RHS.IsROV);
49 return std::tie(Stride, Alignment) == std::tie(
RHS.Stride,
RHS.Alignment);
60 std::tie(
RHS.ElementTy,
RHS.ElementCount);
108 bool isCBuffer()
const;
109 bool isSampler()
const;
110 bool isStruct()
const;
111 bool isTyped()
const;
112 bool isFeedback()
const;
113 bool isMultiSample()
const;
117 : Symbol(Symbol), Name(Name), Binding(Binding), UniqueID(UniqueID),
118 RC(RC), Kind(Kind) {}
122 ResourceBinding Binding,
uint32_t UniqueID,
126 ResourceBinding Binding,
uint32_t UniqueID);
128 ResourceBinding Binding,
132 ResourceBinding Binding,
uint32_t UniqueID,
141 ResourceBinding Binding,
uint32_t UniqueID,
143 bool GloballyCoherent,
bool IsROV,
146 ResourceBinding Binding,
uint32_t UniqueID,
147 bool GloballyCoherent,
bool IsROV);
149 ResourceBinding Binding,
151 Align Alignment,
bool GloballyCoherent,
152 bool IsROV,
bool HasCounter);
154 ResourceBinding Binding,
uint32_t UniqueID,
157 bool GloballyCoherent);
162 bool GloballyCoherent);
164 ResourceBinding Binding,
173 ResourceBinding Binding,
uint32_t UniqueID,
177 ResourceBinding Binding,
uint32_t UniqueID,
180 bool operator==(
const ResourceInfo &
RHS)
const;
This is an important class for using LLVM in a threaded context.
StringRef - Represent a constant reference to a string, i.e.
The instances of the Type class are immutable: once they are created, they are never changed.
LLVM Value Representation.
static ResourceInfo RWTexture2DMSArray(Value *Symbol, StringRef Name, ResourceBinding Binding, uint32_t UniqueID, dxil::ElementType ElementTy, uint32_t ElementCount, uint32_t SampleCount, bool GloballyCoherent)
static ResourceInfo RWRawBuffer(Value *Symbol, StringRef Name, ResourceBinding Binding, uint32_t UniqueID, bool GloballyCoherent, bool IsROV)
std::pair< uint32_t, uint32_t > getAnnotateProps() const
dxil::SamplerType SamplerTy
static ResourceInfo RWStructuredBuffer(Value *Symbol, StringRef Name, ResourceBinding Binding, uint32_t UniqueID, uint32_t Stride, Align Alignment, bool GloballyCoherent, bool IsROV, bool HasCounter)
static ResourceInfo RWTexture2DMS(Value *Symbol, StringRef Name, ResourceBinding Binding, uint32_t UniqueID, dxil::ElementType ElementTy, uint32_t ElementCount, uint32_t SampleCount, bool GloballyCoherent)
MDTuple * getAsMetadata(LLVMContext &Ctx) const
ResourceBinding getBinding() const
ResourceKind
The kind of resource for an SRV or UAV resource.
ElementType
The element type of an SRV or UAV resource.
This is an optimization pass for GlobalISel generic memory operations.
bool operator!=(uint64_t V1, const APInt &V2)
bool operator==(const AddressRangeValuePair &LHS, const AddressRangeValuePair &RHS)
This struct is a compact representation of a valid (non-zero power of two) alignment.
bool operator==(const ResourceBinding &RHS) const
bool operator!=(const ResourceBinding &RHS) const