|
LLVM 24.0.0git
|
Represents the ABI-specific view of a type in LLVM. More...
#include "llvm/ABI/Types.h"
Public Member Functions | |
| TypeKind | getKind () const |
| TypeSize | getSizeInBits () const |
| Align | getAlignment () const |
| Align | getUnadjustedAlignment () const |
| Alignment before record-level adjustments such as aligned attributes. | |
| TypeSize | getTypeAllocSize () const |
| bool | isVoid () const |
| bool | isAtomic () const |
| bool | isInteger () const |
| bool | isFloat () const |
| bool | isPointer () const |
| bool | isArray () const |
| bool | isVector () const |
| bool | isTuple () const |
| bool | isRecord () const |
| bool | isMemberPointer () const |
| bool | isComplex () const |
| bool | isZeroSize () const |
| LLVM_ABI bool | isSVESizelessType () const |
Protected Member Functions | |
| Type (TypeKind K, TypeSize SizeInBits, Align ABIAlign) | |
| Type (TypeKind K, TypeSize SizeInBits, Align ABIAlign, Align UnadjustedAlign) | |
Protected Attributes | |
| TypeKind | Kind |
| TypeSize | SizeInBits |
| Align | ABIAlignment |
| Align | UnadjustedAlignment |
Represents the ABI-specific view of a type in LLVM.
This abstracts platform and language-specific ABI details from the frontend, providing a consistent interface for the ABI Library.
Definition at line 66 of file Types.h.
References SizeInBits, and Type().
Referenced by llvm::abi::ArrayType::ArrayType(), llvm::abi::AtomicType::AtomicType(), llvm::abi::ArrayType::classof(), llvm::abi::AtomicType::classof(), llvm::abi::ComplexType::classof(), llvm::abi::FloatType::classof(), llvm::abi::IntegerType::classof(), llvm::abi::PointerLikeType::classof(), llvm::abi::RecordType::classof(), llvm::abi::TupleType::classof(), llvm::abi::VectorType::classof(), llvm::abi::VoidType::classof(), llvm::abi::ComplexType::ComplexType(), llvm::abi::FloatType::FloatType(), llvm::abi::ArrayType::getElementType(), llvm::abi::ComplexType::getElementType(), llvm::abi::VectorType::getElementType(), llvm::abi::AtomicType::getValueType(), llvm::abi::IntegerType::IntegerType(), llvm::abi::PointerLikeType::PointerLikeType(), llvm::abi::RecordType::RecordType(), llvm::abi::TupleType::TupleType(), Type(), llvm::abi::VectorType::VectorType(), and llvm::abi::VoidType::VoidType().
|
inlineprotected |
Definition at line 68 of file Types.h.
References ABIAlignment, Kind, SizeInBits, and UnadjustedAlignment.
|
inline |
Definition at line 75 of file Types.h.
References ABIAlignment.
Referenced by llvm::abi::ArrayType::ArrayType(), getTypeAllocSize(), llvm::abi::reduceUnionForX8664(), and llvm::abi::TupleType::TupleType().
|
inline |
Definition at line 73 of file Types.h.
References Kind.
Referenced by llvm::abi::PointerLikeType::isMemberPointer(), and isSVESizelessType().
|
inline |
Definition at line 74 of file Types.h.
References SizeInBits.
Referenced by llvm::abi::bitsContainNoUserData(), llvm::abi::FloatType::FloatType(), llvm::abi::getClangVectorWidthInBits(), llvm::abi::IntegerType::isBool(), isZeroSize(), llvm::abi::reduceUnionForX8664(), and llvm::abi::TupleType::TupleType().
|
inline |
Definition at line 82 of file Types.h.
References llvm::alignTo(), and getAlignment().
|
inline |
Alignment before record-level adjustments such as aligned attributes.
Equal to getAlignment() unless a distinct unadjusted alignment was provided when the type was created.
Definition at line 80 of file Types.h.
References UnadjustedAlignment.
|
inline |
Definition at line 91 of file Types.h.
References llvm::abi::Array, and Kind.
|
inline |
Definition at line 87 of file Types.h.
References llvm::abi::Atomic, and Kind.
|
inline |
Definition at line 96 of file Types.h.
References llvm::abi::Complex, and Kind.
|
inline |
Definition at line 89 of file Types.h.
References llvm::abi::Float, and Kind.
|
inline |
Definition at line 88 of file Types.h.
References llvm::abi::Integer, and Kind.
|
inline |
Definition at line 95 of file Types.h.
References Kind, and llvm::abi::MemberPointer.
|
inline |
Definition at line 90 of file Types.h.
References Kind, and llvm::abi::Pointer.
|
inline |
Definition at line 94 of file Types.h.
References Kind, and llvm::abi::Record.
| bool llvm::abi::Type::isSVESizelessType | ( | ) | const |
Definition at line 15 of file Types.cpp.
References getKind(), llvm::abi::VectorType::isScalable(), llvm::abi::VectorType::isSVEType(), llvm::abi::Tuple, and llvm::abi::Vector.
|
inline |
Definition at line 93 of file Types.h.
References Kind, and llvm::abi::Tuple.
|
inline |
Definition at line 92 of file Types.h.
References Kind, and llvm::abi::Vector.
|
inline |
Definition at line 86 of file Types.h.
References Kind, and llvm::abi::Void.
|
inline |
Definition at line 97 of file Types.h.
References getSizeInBits(), and llvm::details::FixedOrScalableQuantity< LeafTy, ValueTy >::isZero().
|
protected |
Definition at line 63 of file Types.h.
Referenced by getAlignment(), and Type().
|
protected |
Definition at line 61 of file Types.h.
Referenced by getKind(), isArray(), isAtomic(), isComplex(), isFloat(), isInteger(), isMemberPointer(), isPointer(), isRecord(), isTuple(), isVector(), isVoid(), and Type().
|
protected |
Definition at line 62 of file Types.h.
Referenced by llvm::abi::ArrayType::ArrayType(), llvm::abi::AtomicType::AtomicType(), llvm::abi::ComplexType::ComplexType(), getSizeInBits(), llvm::abi::MemberPointerType::MemberPointerType(), llvm::abi::PointerLikeType::PointerLikeType(), Type(), and Type().
|
protected |
Definition at line 64 of file Types.h.
Referenced by getUnadjustedAlignment(), and Type().