clang 22.0.0git
clang::CodeGen::DefaultABIInfo Class Reference

DefaultABIInfo - The default implementation for ABI specific details. More...

#include "/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/clang/lib/CodeGen/ABIInfoImpl.h"

Inheritance diagram for clang::CodeGen::DefaultABIInfo:
[legend]

Public Member Functions

 DefaultABIInfo (CodeGen::CodeGenTypes &CGT)
virtual ~DefaultABIInfo ()
ABIArgInfo classifyReturnType (QualType RetTy) const
ABIArgInfo classifyArgumentType (QualType RetTy) const
void computeInfo (CGFunctionInfo &FI) const override
RValue EmitVAArg (CodeGenFunction &CGF, Address VAListAddr, QualType Ty, AggValueSlot Slot) const override
 EmitVAArg - Emit the target dependent code to load a value of.
Public Member Functions inherited from clang::CodeGen::ABIInfo
 ABIInfo (CodeGen::CodeGenTypes &cgt)
virtual ~ABIInfo ()
virtual bool allowBFloatArgsAndRet () const
CodeGen::CGCXXABIgetCXXABI () const
ASTContextgetContext () const
llvm::LLVMContext & getVMContext () const
const llvm::DataLayout & getDataLayout () const
const TargetInfogetTarget () const
const CodeGenOptionsgetCodeGenOpts () const
llvm::CallingConv::ID getRuntimeCC () const
 Return the calling convention to use for system runtime functions.
bool isAndroid () const
bool isOHOSFamily () const
virtual RValue EmitMSVAArg (CodeGen::CodeGenFunction &CGF, CodeGen::Address VAListAddr, QualType Ty, AggValueSlot Slot) const
 Emit the target dependent code to load a value of.
virtual bool isHomogeneousAggregateBaseType (QualType Ty) const
virtual bool isHomogeneousAggregateSmallEnough (const Type *Base, uint64_t Members) const
virtual bool isZeroLengthBitfieldPermittedInHomogeneousAggregate () const
bool isHomogeneousAggregate (QualType Ty, const Type *&Base, uint64_t &Members) const
 isHomogeneousAggregate - Return true if a type is an ELFv2 homogeneous aggregate.
bool isPromotableIntegerTypeForABI (QualType Ty) const
CodeGen::ABIArgInfo getNaturalAlignIndirect (QualType Ty, unsigned AddrSpace, bool ByVal=true, bool Realign=false, llvm::Type *Padding=nullptr) const
 A convenience method to return an indirect ABIArgInfo with an expected alignment equal to the ABI alignment of the given type.
CodeGen::ABIArgInfo getNaturalAlignIndirectInReg (QualType Ty, bool Realign=false) const
virtual void appendAttributeMangling (TargetAttr *Attr, raw_ostream &Out) const
virtual void appendAttributeMangling (TargetVersionAttr *Attr, raw_ostream &Out) const
virtual void appendAttributeMangling (TargetClonesAttr *Attr, unsigned Index, raw_ostream &Out) const
virtual void appendAttributeMangling (StringRef AttrStr, raw_ostream &Out) const
virtual llvm::FixedVectorType * getOptimalVectorMemoryType (llvm::FixedVectorType *T, const LangOptions &Opt) const
 Returns the optimal vector memory type based on the given vector type.
virtual llvm::Value * createCoercedLoad (Address SrcAddr, const ABIArgInfo &AI, CodeGenFunction &CGF) const
virtual void createCoercedStore (llvm::Value *Val, Address DstAddr, const ABIArgInfo &AI, bool DestIsVolatile, CodeGenFunction &CGF) const

Additional Inherited Members

Protected Attributes inherited from clang::CodeGen::ABIInfo
CodeGen::CodeGenTypesCGT
llvm::CallingConv::ID RuntimeCC

Detailed Description

DefaultABIInfo - The default implementation for ABI specific details.

This implementation provides information which results in self-consistent and sensible LLVM IR generation, but does not conform to any particular ABI.

Definition at line 21 of file ABIInfoImpl.h.

Constructor & Destructor Documentation

◆ DefaultABIInfo()

clang::CodeGen::DefaultABIInfo::DefaultABIInfo ( CodeGen::CodeGenTypes & CGT)
inline

◆ ~DefaultABIInfo()

DefaultABIInfo::~DefaultABIInfo ( )
virtualdefault

Member Function Documentation

◆ classifyArgumentType()

◆ classifyReturnType()

◆ computeInfo()

◆ EmitVAArg()

RValue DefaultABIInfo::EmitVAArg ( CodeGenFunction & CGF,
Address VAListAddr,
QualType Ty,
AggValueSlot Slot ) const
overridevirtual

EmitVAArg - Emit the target dependent code to load a value of.

  • Ty from the va_list pointed to by
  • VAListAddr.

Implements clang::CodeGen::ABIInfo.

Definition at line 77 of file ABIInfoImpl.cpp.

References classifyArgumentType(), clang::CodeGen::CodeGenFunction::EmitLoadOfAnyValue(), clang::CodeGen::EmitVAArgInstr(), and clang::CodeGen::CodeGenFunction::MakeAddrLValue().


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