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

Public Member Functions

 SPIRVTargetInfo (TypeBuilder &Builder, unsigned DefaultAddrSpace, bool KernelPassAggregatesIndirect)
const ABICompatInfo & getABICompatInfo () const override
 Return this target's ABI compatibility flags.
bool hasInt128Type () const override
 Whether the target has a 128-bit integer type. Default true.
unsigned getSRetAddrSpace () const override
 Address space of the sret pointer of a record that cannot be passed in registers (e.g.
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
 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 unsigned getAllocaAddrSpace () const
 Address space in which indirect arguments are allocated (the target's alloca/stack space).
virtual unsigned getLongLongWidth () const
 Width of long long in bits. Default 64.
virtual llvm::Align getMaxIntegerAlign () const
 Alignment of the widest integer the target's data layout gives an alignment to.

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 const Type * getI8Array (uint64_t NumBytes) const
 An array of NumBytes i8 elements, the padding element of a coerce-and-expand type.
LLVM_ABI const Type * convertTypeForMem (const Type *Ty) const
 In-memory form of Ty.
LLVM_ABI const Type * getStructOfTypes (ArrayRef< const Type * > Elems, bool Packed) const
 A record with one field per element of Elems, each at offset 0.
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 22 of file SPIRV.cpp.

Constructor & Destructor Documentation

◆ SPIRVTargetInfo()

llvm::abi::SPIRVTargetInfo::SPIRVTargetInfo ( TypeBuilder & Builder,
unsigned DefaultAddrSpace,
bool KernelPassAggregatesIndirect )
inline

Definition at line 61 of file SPIRV.cpp.

Member Function Documentation

◆ computeInfo()

◆ getABICompatInfo()

const ABICompatInfo & llvm::abi::SPIRVTargetInfo::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 66 of file SPIRV.cpp.

◆ getSRetAddrSpace()

unsigned llvm::abi::SPIRVTargetInfo::getSRetAddrSpace ( ) const
inlineoverridevirtual

Address space of the sret pointer of a record that cannot be passed in registers (e.g.

one with a non-trivial copy constructor or destructor).

Reimplemented from llvm::abi::TargetInfo.

Definition at line 72 of file SPIRV.cpp.

◆ hasInt128Type()

bool llvm::abi::SPIRVTargetInfo::hasInt128Type ( ) const
inlineoverridevirtual

Whether the target has a 128-bit integer type. Default true.

Reimplemented from llvm::abi::TargetInfo.

Definition at line 68 of file SPIRV.cpp.


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