Go to the documentation of this file.
9 #ifndef LLVM_LIB_TARGET_AMDGPU_AMDGPUARGUMENTUSAGEINFO_H
10 #define LLVM_LIB_TARGET_AMDGPU_AMDGPUARGUMENTUSAGEINFO_H
20 class TargetRegisterClass;
21 class TargetRegisterInfo;
41 bool IsStack =
false,
bool IsSet =
false)
42 :
Reg(Val), Mask(Mask), IsStack(IsStack), IsSet(IsSet) {}
45 unsigned Mask = ~0u) {
50 unsigned Mask = ~0u) {
63 explicit operator bool()
const {
154 std::tuple<const ArgDescriptor *, const TargetRegisterClass *, LLT>
static constexpr ArgDescriptor createStack(unsigned Offset, unsigned Mask=~0u)
This is an optimization pass for GlobalISel generic memory operations.
ImmutablePass class - This class is used to provide information that does not need to be run.
static constexpr ArgDescriptor createArg(const ArgDescriptor &Arg, unsigned Mask)
ArgDescriptor LDSKernelId
static const AMDGPUFunctionArgInfo FixedABIFunctionInfo
ArgDescriptor FlatScratchInit
TargetRegisterInfo base class - We assume that the target defines a static array of TargetRegisterDes...
ArgDescriptor PrivateSegmentSize
ArgDescriptor DispatchPtr
unsigned const TargetRegisterInfo * TRI
void print(raw_ostream &OS, const TargetRegisterInfo *TRI=nullptr) const
ArgDescriptor ImplicitArgPtr
amdgpu Simplify well known AMD library false FunctionCallee Value * Arg
ArgDescriptor WorkGroupIDX
const AMDGPUFunctionArgInfo & lookupFuncArgInfo(const Function &F) const
ArgDescriptor WorkItemIDX
Represent the analysis usage information of a pass.
bool doInitialization(Module &M) override
doInitialization - Virtual method overridden by subclasses to do any necessary initialization before ...
This class implements an extremely fast bulk output stream that can only output to a stream.
raw_ostream & operator<<(raw_ostream &OS, const APFixedPoint &FX)
unsigned ID
LLVM IR allows to use arbitrary numbers as calling convention identifiers.
std::tuple< const ArgDescriptor *, const TargetRegisterClass *, LLT > getPreloadedValue(PreloadedValue Value) const
ArgDescriptor WorkGroupIDZ
ArgDescriptor PrivateSegmentBuffer
@ PRIVATE_SEGMENT_WAVE_BYTE_OFFSET
ArgDescriptor PrivateSegmentWaveByteOffset
ArgDescriptor WorkGroupIDY
unsigned getStackOffset() const
assert(ImpDefSCC.getReg()==AMDGPU::SCC &&ImpDefSCC.isDef())
A Module instance is used to store all the information related to an LLVM module.
void getAnalysisUsage(AnalysisUsage &AU) const override
getAnalysisUsage - This function should be overriden by passes that need analysis information to do t...
ArgDescriptor WorkItemIDZ
ArgDescriptor ImplicitBufferPtr
Helper struct shared between Function Specialization and SCCP Solver.
void print(raw_ostream &OS, const Module *M=nullptr) const override
print - Print out the internal state of the pass.
void setFuncArgInfo(const Function &F, const AMDGPUFunctionArgInfo &ArgInfo)
Wrapper class representing virtual and physical registers.
ArgDescriptor WorkGroupInfo
void setPreservesAll()
Set by analyses that do not transform their input at all.
static constexpr ArgDescriptor createRegister(Register Reg, unsigned Mask=~0u)
ArgDescriptor KernargSegmentPtr
ArgDescriptor WorkItemIDY
bool doFinalization(Module &M) override
doFinalization - Virtual method overriden by subclasses to do any necessary clean up after all passes...
MCRegister getRegister() const
static const AMDGPUFunctionArgInfo ExternFunctionInfo
constexpr ArgDescriptor(unsigned Val=0, unsigned Mask=~0u, bool IsStack=false, bool IsSet=false)
static constexpr AMDGPUFunctionArgInfo fixedABILayout()
LLVM Value Representation.
AMDGPUArgumentUsageInfo()
Wrapper class representing physical registers. Should be passed by value.