33 #define DEBUG_TYPE "amdgpu-aa" 40 "AMDGPU Address space based Alias Analysis",
false,
true)
101 if (GV->isConstant())
103 }
else if (
const Argument *
Arg = dyn_cast<Argument>(Base)) {
122 unsigned ArgNo =
Arg->getArgNo();
This class represents an incoming formal argument to a Function.
This class represents lattice values for constants.
bool pointsToConstantMemory(const MemoryLocation &Loc, bool OrLocal)
Address space for 32-bit constant memory.
The two locations do not alias at all.
void getAnalysisUsage(AnalysisUsage &AU) const override
getAnalysisUsage - This function should be overriden by passes that need analysis information to do t...
unsigned getPointerAddressSpace() const
Get the address space of this pointer or pointer vector type.
block Block Frequency true
Calling convention used for Mesa/AMDPAL geometry shaders.
amdgpu aa AMDGPU Address space based Alias Analysis Wrapper
Address space for constant memory (VTX2)
Calling convention used for Mesa/AMDPAL compute shaders.
SPIR_KERNEL - Calling convention for SPIR kernel functions.
This file contains the simple types necessary to represent the attributes associated with functions a...
bool hasParamAttribute(unsigned ArgNo, Attribute::AttrKind Kind) const
check if an attributes is in the list of attributes.
AliasResult alias(const MemoryLocation &LocA, const MemoryLocation &LocB)
Calling convention used for AMDPAL shader stage before geometry shader if geometry is in use...
Type * getType() const
All values are typed, get the type of this value.
AliasResult alias(const MemoryLocation &LocA, const MemoryLocation &LocB)
Calling convention used for Mesa vertex shaders, or AMDPAL last shader stage before rasterization (ve...
AliasResult
The possible results of an alias query.
static AliasResult getAliasResult(unsigned AS1, unsigned AS2)
Represent the analysis usage information of a pass.
Legacy wrapper pass to provide the AMDGPUAAResult object.
Calling convention used for AMDPAL vertex shader if tessellation is in use.
Calling convention used for Mesa/AMDPAL pixel shaders.
Value * GetUnderlyingObject(Value *V, const DataLayout &DL, unsigned MaxLookup=6)
This method strips off any GEP address adjustments and pointer casts from the specified value...
This is the AMGPU address space based alias analysis pass.
The two locations may or may not alias. This is the least precise result.
const Value * Ptr
The address of the start of the location.
Representation for a specific memory location.
ImmutablePass class - This class is used to provide information that does not need to be run...
CallingConv::ID getCallingConv() const
getCallingConv()/setCallingConv(CC) - These method get and set the calling convention of this functio...
ImmutablePass * createAMDGPUAAWrapperPass()
void setPreservesAll()
Set by analyses that do not transform their input at all.
amdgpu Simplify well known AMD library false Value Value * Arg
INITIALIZE_PASS(AMDGPUAAWrapperPass, "amdgpu-aa", "AMDGPU Address space based Alias Analysis", false, true) INITIALIZE_PASS(AMDGPUExternalAAWrapper
block Block Frequency Analysis
This file provides utility analysis objects describing memory locations.
Calling convention used for Mesa/AMDPAL hull shaders (= tessellation control shaders).
ImmutablePass * createAMDGPUExternalAAWrapperPass()
static const AliasResult ASAliasRules[7][7]
LLVM Value Representation.
bool pointsToConstantMemory(const MemoryLocation &Loc, bool OrLocal)
Calling convention for AMDGPU code object kernels.