LLVM 24.0.0git
llvm::abi::DefaultTargetInfo Class Reference

Self-consistent classification that conforms to no particular ABI. More...

#include "llvm/ABI/DefaultTargetInfo.h"

Inheritance diagram for llvm::abi::DefaultTargetInfo:
[legend]

Public Member Functions

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 const ABICompatInfogetABICompatInfo () const =0
 Return this target's ABI compatibility flags.
virtual unsigned getAllocaAddrSpace () const
 Address space in which indirect arguments are allocated (the target's alloca/stack space).
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 TypeuseFirstFieldIfTransparentUnion (const Type *Ty) const
 If Ty is a transparent union, return its first field type; otherwise return Ty unchanged.
LLVM_ABI const TypeisSingleElementStruct (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
TypeBuilderTB

Detailed Description

Self-consistent classification that conforms to no particular ABI.

Definition at line 25 of file DefaultTargetInfo.h.

Member Function Documentation

◆ classifyArgumentType()

◆ classifyReturnType()

◆ computeInfo()

void DefaultTargetInfo::computeInfo ( FunctionInfo & FI) const
overridevirtual

◆ TargetInfo()

llvm::abi::TargetInfo::TargetInfo ( TypeBuilder & Builder)
inlineexplicit

Definition at line 70 of file TargetInfo.h.


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