LLVM 24.0.0git
llvm::abi::AMDGPUTargetInfo Class Referencefinal
Inheritance diagram for llvm::abi::AMDGPUTargetInfo:
[legend]

Public Member Functions

 AMDGPUTargetInfo (TypeBuilder &TypeBuilder, const ABICompatInfo &Compat, bool CoerceGenericPtrArgToGlobal)
const ABICompatInfo & getABICompatInfo () const override
 Return this target's ABI compatibility flags.
unsigned getAllocaAddrSpace () const override
 Indirect arguments live in the private (alloca) address space on AMDGPU.
void computeInfo (FunctionInfo &FI) const override
 Populate FI with the target's ABI-lowering decisions for each argument and return value.
Public Member Functions inherited from llvm::abi::DefaultTargetInfo
ArgInfo classifyArgumentType (const Type *Ty) const
ArgInfo classifyReturnType (const Type *RetTy) const
void computeInfo (FunctionInfo &FI) const override
 Populate FI with the target's ABI-lowering decisions for each argument and return value.
 TargetInfo (TypeBuilder &Builder)
Public Member Functions inherited from llvm::abi::TargetInfo
 TargetInfo (TypeBuilder &Builder)
virtual ~TargetInfo ()=default
virtual bool isPassByRef (const Type *Ty) const
virtual bool hasInt128Type () const
 Whether the target has a 128-bit integer type. Default true.
virtual unsigned getLongLongWidth () const
 Width of long long in bits. Default 64.

Additional Inherited Members

Protected Member Functions inherited from llvm::abi::TargetInfo
LLVM_ABI RecordArgABI getRecordArgABI (const RecordType *RT) const
LLVM_ABI RecordArgABI getRecordArgABI (const Type *Ty) const
LLVM_ABI bool isPromotableInteger (const IntegerType *IT) const
unsigned getBitIntRegThreshold () const
 Bit width above which a _BitInt cannot stay in registers.
LLVM_ABI ArgInfo getNaturalAlignIndirect (const Type *Ty, unsigned AddrSpace, bool ByVal=true) const
LLVM_ABI bool isAggregateTypeForABI (const Type *Ty) const
LLVM_ABI const Type * useFirstFieldIfTransparentUnion (const Type *Ty) const
 If Ty is a transparent union, return its first field type; otherwise return Ty unchanged.
LLVM_ABI const Type * isSingleElementStruct (const Type *Ty) const
 Returns the scalar a single-element struct reduces to, else null.
LLVM_ABI bool maybeCommonClassifyReturnType (FunctionInfo &FI) const
 Apply rules for classifying return types that are common to all targets.
virtual bool isHomogeneousAggregateBaseType (const Type *Ty) const
 Return true if Ty is a valid base type for a homogeneous aggregate.
virtual bool isHomogeneousAggregateSmallEnough (const Type *Base, uint64_t Members) const
 Return true if a homogeneous aggregate with Members copies of Base is small enough to be passed in registers for this ABI.
virtual bool isZeroLengthBitfieldPermittedInHomogeneousAggregate () const
 Return true if zero-length bitfields should be ignored when deciding whether an aggregate is homogeneous.
virtual bool isPermittedToBeHomogeneousAggregate (const RecordType *RT) const
 Return true if the C++ ABI permits RT to be a homogeneous aggregate.
LLVM_ABI bool isHomogeneousAggregate (const Type *Ty, const Type *&Base, uint64_t &Members) const
 Return true if Ty is an ELFv2-style homogeneous aggregate.
Protected Attributes inherited from llvm::abi::TargetInfo
TypeBuilder & TB

Detailed Description

Definition at line 24 of file AMDGPU.cpp.

Constructor & Destructor Documentation

◆ AMDGPUTargetInfo()

llvm::abi::AMDGPUTargetInfo::AMDGPUTargetInfo ( TypeBuilder & TypeBuilder,
const ABICompatInfo & Compat,
bool CoerceGenericPtrArgToGlobal )
inline

Definition at line 43 of file AMDGPU.cpp.

Member Function Documentation

◆ computeInfo()

void llvm::abi::AMDGPUTargetInfo::computeInfo ( FunctionInfo & FI) const
overridevirtual

◆ getABICompatInfo()

const ABICompatInfo & llvm::abi::AMDGPUTargetInfo::getABICompatInfo ( ) const
inlineoverridevirtual

Return this target's ABI compatibility flags.

Targets with extra flags store a derived object and return that as an ABICompatInfo reference.

Implements llvm::abi::TargetInfo.

Definition at line 48 of file AMDGPU.cpp.

◆ getAllocaAddrSpace()

unsigned llvm::abi::AMDGPUTargetInfo::getAllocaAddrSpace ( ) const
inlineoverridevirtual

Indirect arguments live in the private (alloca) address space on AMDGPU.

Reimplemented from llvm::abi::TargetInfo.

Definition at line 51 of file AMDGPU.cpp.

References llvm::AMDGPUAS::PRIVATE_ADDRESS.


The documentation for this class was generated from the following file: