clang  15.0.0git
Public Member Functions | Static Public Member Functions | List of all members
clang::CodeGen::SwiftABIInfo Class Referenceabstract

A refining implementation of ABIInfo for targets that support swiftcall. More...

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

Inheritance diagram for clang::CodeGen::SwiftABIInfo:
Inheritance graph
Collaboration diagram for clang::CodeGen::SwiftABIInfo:
Collaboration graph

Public Member Functions

 SwiftABIInfo (CodeGen::CodeGenTypes &cgt)
bool supportsSwift () const final override
virtual bool shouldPassIndirectlyForSwift (ArrayRef< llvm::Type * > types, bool asReturnValue) const =0
virtual bool isLegalVectorTypeForSwift (CharUnits totalSize, llvm::Type *eltTy, unsigned elts) const
virtual bool isSwiftErrorInRegister () const =0
- 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. More...
virtual void computeInfo (CodeGen::CGFunctionInfo &FI) const =0
virtual CodeGen::Address EmitVAArg (CodeGen::CodeGenFunction &CGF, CodeGen::Address VAListAddr, QualType Ty) const =0
 EmitVAArg - Emit the target dependent code to load a value of. More...
bool isAndroid () const
virtual CodeGen::Address EmitMSVAArg (CodeGen::CodeGenFunction &CGF, CodeGen::Address VAListAddr, QualType Ty) const
 Emit the target dependent code to load a value of. More...
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. More...
bool isPromotableIntegerTypeForABI (QualType Ty) const
CodeGen::ABIArgInfo getNaturalAlignIndirect (QualType Ty, 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. More...
CodeGen::ABIArgInfo getNaturalAlignIndirectInReg (QualType Ty, bool Realign=false) const

Static Public Member Functions

static bool classof (const ABIInfo *info)

Additional Inherited Members

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

Detailed Description

A refining implementation of ABIInfo for targets that support swiftcall.

If we find ourselves wanting multiple such refinements, they'll probably be independent refinements, and we should probably find another way to do it than simple inheritance.

Definition at line 130 of file ABIInfo.h.

Constructor & Destructor Documentation

◆ SwiftABIInfo()

clang::CodeGen::SwiftABIInfo::SwiftABIInfo ( CodeGen::CodeGenTypes cgt)

Definition at line 132 of file ABIInfo.h.

Member Function Documentation

◆ classof()

static bool clang::CodeGen::SwiftABIInfo::classof ( const ABIInfo info)

Definition at line 145 of file ABIInfo.h.

References clang::CodeGen::ABIInfo::supportsSwift().

◆ isLegalVectorTypeForSwift()

bool SwiftABIInfo::isLegalVectorTypeForSwift ( CharUnits  totalSize,
llvm::Type *  eltTy,
unsigned  elts 
) const

◆ isSwiftErrorInRegister()

virtual bool clang::CodeGen::SwiftABIInfo::isSwiftErrorInRegister ( ) const
pure virtual

◆ shouldPassIndirectlyForSwift()

virtual bool clang::CodeGen::SwiftABIInfo::shouldPassIndirectlyForSwift ( ArrayRef< llvm::Type * >  types,
bool  asReturnValue 
) const
pure virtual

◆ supportsSwift()

bool clang::CodeGen::SwiftABIInfo::supportsSwift ( ) const

Reimplemented from clang::CodeGen::ABIInfo.

Definition at line 134 of file ABIInfo.h.

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