clang  6.0.0svn
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 "/opt/doxygen-docs/src/llvm/tools/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 (CharUnits totalSize, 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 ()
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...
llvm::CallingConv::ID getBuiltinCC () const
 Return the calling convention to use for compiler builtins. 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 shouldSignExtUnsignedType (QualType Ty) const
bool isHomogeneousAggregate (QualType Ty, const Type *&Base, uint64_t &Members) const
 isHomogeneousAggregate - Return true if a type is an ELFv2 homogeneous aggregate. More...
CodeGen::ABIArgInfo getNaturalAlignIndirect (QualType Ty, bool ByRef=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
llvm::CallingConv::ID BuiltinCC

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 134 of file ABIInfo.h.

Constructor & Destructor Documentation

◆ SwiftABIInfo()

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

Definition at line 136 of file ABIInfo.h.

Member Function Documentation

◆ classof()

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

Definition at line 150 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 ( CharUnits  totalSize,
ArrayRef< llvm::Type *>  types,
bool  asReturnValue 
) const
pure virtual

◆ supportsSwift()

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

Reimplemented from clang::CodeGen::ABIInfo.

Definition at line 138 of file ABIInfo.h.

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