|
LLVM 23.0.0git
|
Classes | |
| struct | ABICompatInfo |
| Flags controlling target-specific ABI compatibility behaviour. More... | |
| struct | ArgEntry |
| class | ArgInfo |
| Helper class to encapsulate information about how a specific type should be passed to or returned from a function. More... | |
| class | ArrayType |
| class | BPFTargetInfo |
| class | ComplexType |
| struct | FieldInfo |
| class | FloatType |
| class | FunctionInfo |
| class | IntegerType |
| class | IRTypeMapper |
| class | MemberPointerType |
| class | PointerLikeType |
| class | PointerType |
| class | RecordType |
| class | TargetInfo |
| class | Type |
| Represents the ABI-specific view of a type in LLVM. More... | |
| class | TypeBuilder |
| TypeBuilder manages the lifecycle of ABI types using bump pointer allocation. More... | |
| class | VectorType |
| class | VoidType |
| class | X86_64TargetInfo |
Enumerations | |
| enum | RecordArgABI { RAA_Default = 0 , RAA_DirectInMemory , RAA_Indirect } |
| enum class | X86AVXABILevel { None , AVX , AVX512 } |
| The AVX ABI level for X86 targets. More... | |
| enum class | TypeKind { Void , MemberPointer , Complex , Integer , Float , Pointer , Array , Vector , Record } |
| enum class | StructPacking { Default , Packed , ExplicitPacking } |
| enum | RecordFlags : unsigned { None = 0 , CanPassInRegisters = 1 << 0 , IsUnion = 1 << 1 , IsTransparent = 1 << 2 , IsCXXRecord = 1 << 3 , IsPolymorphic = 1 << 4 , HasFlexibleArrayMember = 1 << 5 , LLVM_MARK_AS_BITMASK_ENUM =( HasFlexibleArrayMember) } |
Functions | |
| LLVM_ABI std::unique_ptr< TargetInfo > | createBPFTargetInfo (TypeBuilder &TB) |
| LLVM_ABI std::unique_ptr< TargetInfo > | createX86_64TargetInfo (TypeBuilder &TB, X86AVXABILevel AVXLevel, bool Has64BitPointers, const ABICompatInfo &Compat) |
| static unsigned | getNativeVectorSizeForAVXABI (X86AVXABILevel AVXLevel) |
| static uint64_t | getClangIntegerWidthInBits (const IntegerType *IT) |
| static uint64_t | getClangVectorWidthInBits (const VectorType *VT) |
| static uint64_t | getClangTypeWidthInBits (const Type *Ty) |
| static const Type * | reduceUnionForX8664 (const RecordType *UnionType, TypeBuilder &TB) |
| static bool | bitsContainNoUserData (const Type *Ty, unsigned StartBit, unsigned EndBit) |
| static bool | isFloatTypeWithSemantics (const Type *Ty, const fltSemantics &Semantics) |
| Helper to check if a floating point type matches specific semantics. | |
| static bool | classifyCXXReturnType (FunctionInfo &FI) |
| Enumerator | |
|---|---|
| RAA_Default | Pass it using the normal C aggregate rules for the ABI, potentially introducing extra copies and passing some or all of it in registers. |
| RAA_DirectInMemory | Pass it on the stack using its defined layout. The argument must be evaluated directly into the correct stack position in the arguments area, and the call machinery must not move it or introduce extra copies. |
| RAA_Indirect | Pass it as a pointer to temporary memory. |
Definition at line 26 of file TargetInfo.h.
| enum llvm::abi::RecordFlags : unsigned |
|
strong |
|
strong |
|
strong |
The AVX ABI level for X86 targets.
| Enumerator | |
|---|---|
| None | |
| AVX | |
| AVX512 | |
Definition at line 90 of file TargetInfo.h.
|
static |
Definition at line 927 of file X86.cpp.
References llvm::sampleprof::Base, bitsContainNoUserData(), llvm::dyn_cast(), llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::getFixedValue(), llvm::abi::Type::getSizeInBits(), and I.
Referenced by bitsContainNoUserData().
|
static |
Definition at line 1422 of file X86.cpp.
References llvm::dyn_cast(), llvm::abi::ArgInfo::getIndirect(), llvm::abi::FunctionInfo::getReturnInfo(), and llvm::abi::FunctionInfo::getReturnType().
| std::unique_ptr< TargetInfo > llvm::abi::createBPFTargetInfo | ( | TypeBuilder & | TB | ) |
| std::unique_ptr< TargetInfo > llvm::abi::createX86_64TargetInfo | ( | TypeBuilder & | TB, |
| X86AVXABILevel | AVXLevel, | ||
| bool | Has64BitPointers, | ||
| const ABICompatInfo & | Compat ) |
|
static |
Definition at line 40 of file X86.cpp.
References llvm::alignTo(), llvm::bit_ceil(), and IT.
Referenced by getClangTypeWidthInBits(), and getClangVectorWidthInBits().
Definition at line 64 of file X86.cpp.
References llvm::dyn_cast(), getClangIntegerWidthInBits(), getClangVectorWidthInBits(), and IT.
|
static |
Definition at line 49 of file X86.cpp.
References llvm::alignTo(), llvm::bit_ceil(), llvm::dyn_cast(), getClangIntegerWidthInBits(), llvm::abi::VectorType::getElementType(), llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::getFixedValue(), llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::getKnownMinValue(), llvm::abi::VectorType::getNumElements(), llvm::abi::Type::getSizeInBits(), and IT.
Referenced by getClangTypeWidthInBits().
|
static |
|
static |
Helper to check if a floating point type matches specific semantics.
Definition at line 1156 of file X86.cpp.
References llvm::cast(), and llvm::abi::FloatType::getSemantics().
|
static |
Definition at line 126 of file X86.cpp.
References assert(), llvm::ArrayRef< T >::empty(), llvm::abi::Type::getAlignment(), llvm::abi::RecordType::getFields(), llvm::abi::Type::getSizeInBits(), llvm::details::FixedOrScalableQuantity< TypeSize, uint64_t >::isKnownGT(), llvm::abi::RecordType::isTransparentUnion(), and llvm::abi::RecordType::isUnion().