|
LLVM 24.0.0git
|
Self-consistent classification that conforms to no particular ABI. More...
#include "llvm/ABI/DefaultTargetInfo.h"
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 ABICompatInfo & | getABICompatInfo () 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 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 |
Self-consistent classification that conforms to no particular ABI.
Definition at line 25 of file DefaultTargetInfo.h.
Definition at line 15 of file DefaultTargetInfo.cpp.
References llvm::dyn_cast(), llvm::abi::TargetInfo::getAllocaAddrSpace(), llvm::abi::TargetInfo::getBitIntRegThreshold(), llvm::abi::ArgInfo::getDirect(), llvm::abi::ArgInfo::getExtend(), llvm::abi::TargetInfo::getNaturalAlignIndirect(), llvm::abi::TargetInfo::getRecordArgABI(), llvm::abi::TargetInfo::isAggregateTypeForABI(), llvm::abi::TargetInfo::isPromotableInteger(), IT, llvm::abi::RAA_DirectInMemory, and llvm::abi::TargetInfo::useFirstFieldIfTransparentUnion().
Referenced by computeInfo().
Definition at line 39 of file DefaultTargetInfo.cpp.
References llvm::dyn_cast(), llvm::abi::TargetInfo::getAllocaAddrSpace(), llvm::abi::TargetInfo::getBitIntRegThreshold(), llvm::abi::ArgInfo::getDirect(), llvm::abi::ArgInfo::getExtend(), llvm::abi::ArgInfo::getIgnore(), llvm::abi::TargetInfo::getNaturalAlignIndirect(), llvm::abi::TargetInfo::isAggregateTypeForABI(), llvm::abi::TargetInfo::isPromotableInteger(), llvm::abi::Type::isVoid(), and IT.
Referenced by computeInfo().
|
overridevirtual |
Populate FI with the target's ABI-lowering decisions for each argument and return value.
Implements llvm::abi::TargetInfo.
Definition at line 58 of file DefaultTargetInfo.cpp.
References llvm::abi::FunctionInfo::arguments(), classifyArgumentType(), classifyReturnType(), llvm::abi::FunctionInfo::getReturnInfo(), llvm::abi::FunctionInfo::getReturnType(), I, and llvm::abi::TargetInfo::maybeCommonClassifyReturnType().
|
inlineexplicit |
Definition at line 70 of file TargetInfo.h.