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

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

#include "/work/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
virtual ABIArgInfo classifyArgForArm64ECVarArg (QualType Ty) const
 Used by Arm64EC calling convention code to call into x86 calling convention code for varargs function.

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: