LLVM 24.0.0git
llvm::abi::X86_64TargetInfo Class Reference
Inheritance diagram for llvm::abi::X86_64TargetInfo:
[legend]

Public Types

enum  Class {
  Integer , Sse , SseUp , X87 ,
  X87Up , ComplexX87 , NoClass , Memory
}

Public Member Functions

 X86_64TargetInfo (TypeBuilder &TypeBuilder, X86AVXABILevel AVXABILevel, bool Has64BitPtrs, const X86ABICompatInfo &Compat)
bool has64BitPointers () const
const ABICompatInfogetABICompatInfo () const override
 Return this target's ABI compatibility flags.
const X86ABICompatInfogetX86ABICompatInfo () const
Public Member Functions inherited from llvm::abi::TargetInfo
 TargetInfo (TypeBuilder &Builder)
virtual ~TargetInfo ()=default
virtual bool isPassByRef (const Type *Ty) const

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
LLVM_ABI ArgInfo getNaturalAlignIndirect (const Type *Ty, 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 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

Definition at line 70 of file X86.cpp.

Member Enumeration Documentation

◆ Class

Enumerator
Integer 
Sse 
SseUp 
X87 
X87Up 
ComplexX87 
NoClass 
Memory 

Definition at line 72 of file X86.cpp.

Constructor & Destructor Documentation

◆ X86_64TargetInfo()

llvm::abi::X86_64TargetInfo::X86_64TargetInfo ( TypeBuilder & TypeBuilder,
X86AVXABILevel AVXABILevel,
bool Has64BitPtrs,
const X86ABICompatInfo & Compat )
inline

Definition at line 114 of file X86.cpp.

References llvm::abi::TargetInfo::TargetInfo().

Member Function Documentation

◆ getABICompatInfo()

const ABICompatInfo & llvm::abi::X86_64TargetInfo::getABICompatInfo ( ) const
inlineoverridevirtual

Return this target's ABI compatibility flags.

Targets with extra flags store a derived object and return that as an ABICompatInfo reference.

Implements llvm::abi::TargetInfo.

Definition at line 121 of file X86.cpp.

◆ getX86ABICompatInfo()

const X86ABICompatInfo & llvm::abi::X86_64TargetInfo::getX86ABICompatInfo ( ) const
inline

Definition at line 125 of file X86.cpp.

◆ has64BitPointers()

bool llvm::abi::X86_64TargetInfo::has64BitPointers ( ) const
inline

Definition at line 119 of file X86.cpp.


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