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

Represents the ABI-specific view of a type in LLVM. More...

#include "llvm/ABI/Types.h"

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

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

Detailed Description

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 46 of file Types.h.

Constructor & Destructor Documentation

◆ Type() [1/2]

◆ Type() [2/2]

llvm::abi::Type::Type ( TypeKind K,
TypeSize SizeInBits,
Align ABIAlign,
Align UnadjustedAlign )
inlineprotected

Definition at line 68 of file Types.h.

References ABIAlignment, Kind, SizeInBits, and UnadjustedAlignment.

Member Function Documentation

◆ getAlignment()

Align llvm::abi::Type::getAlignment ( ) const
inline

◆ getKind()

TypeKind llvm::abi::Type::getKind ( ) const
inline

Definition at line 73 of file Types.h.

References Kind.

Referenced by llvm::abi::PointerLikeType::isMemberPointer(), and isSVESizelessType().

◆ getSizeInBits()

◆ getTypeAllocSize()

TypeSize llvm::abi::Type::getTypeAllocSize ( ) const
inline

Definition at line 82 of file Types.h.

References llvm::alignTo(), and getAlignment().

◆ getUnadjustedAlignment()

Align llvm::abi::Type::getUnadjustedAlignment ( ) const
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.

◆ isArray()

bool llvm::abi::Type::isArray ( ) const
inline

Definition at line 91 of file Types.h.

References llvm::abi::Array, and Kind.

◆ isAtomic()

bool llvm::abi::Type::isAtomic ( ) const
inline

Definition at line 87 of file Types.h.

References llvm::abi::Atomic, and Kind.

◆ isComplex()

bool llvm::abi::Type::isComplex ( ) const
inline

Definition at line 96 of file Types.h.

References llvm::abi::Complex, and Kind.

◆ isFloat()

bool llvm::abi::Type::isFloat ( ) const
inline

Definition at line 89 of file Types.h.

References llvm::abi::Float, and Kind.

◆ isInteger()

bool llvm::abi::Type::isInteger ( ) const
inline

Definition at line 88 of file Types.h.

References llvm::abi::Integer, and Kind.

◆ isMemberPointer()

bool llvm::abi::Type::isMemberPointer ( ) const
inline

Definition at line 95 of file Types.h.

References Kind, and llvm::abi::MemberPointer.

◆ isPointer()

bool llvm::abi::Type::isPointer ( ) const
inline

Definition at line 90 of file Types.h.

References Kind, and llvm::abi::Pointer.

◆ isRecord()

bool llvm::abi::Type::isRecord ( ) const
inline

Definition at line 94 of file Types.h.

References Kind, and llvm::abi::Record.

◆ isSVESizelessType()

bool llvm::abi::Type::isSVESizelessType ( ) const

◆ isTuple()

bool llvm::abi::Type::isTuple ( ) const
inline

Definition at line 93 of file Types.h.

References Kind, and llvm::abi::Tuple.

◆ isVector()

bool llvm::abi::Type::isVector ( ) const
inline

Definition at line 92 of file Types.h.

References Kind, and llvm::abi::Vector.

◆ isVoid()

bool llvm::abi::Type::isVoid ( ) const
inline

Definition at line 86 of file Types.h.

References Kind, and llvm::abi::Void.

◆ isZeroSize()

bool llvm::abi::Type::isZeroSize ( ) const
inline

Member Data Documentation

◆ ABIAlignment

Align llvm::abi::Type::ABIAlignment
protected

Definition at line 63 of file Types.h.

Referenced by getAlignment(), and Type().

◆ Kind

TypeKind llvm::abi::Type::Kind
protected

◆ SizeInBits

◆ UnadjustedAlignment

Align llvm::abi::Type::UnadjustedAlignment
protected

Definition at line 64 of file Types.h.

Referenced by getUnadjustedAlignment(), and Type().


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