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
[legend]
Collaboration diagram for clang::CodeGen::SwiftABIInfo:
Collaboration graph
[legend]

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
CodeGen::CodeGenTypesCGT
 
- 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)
inline

Definition at line 136 of file ABIInfo.h.

Member Function Documentation

◆ classof()

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

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
virtual

◆ 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
inlinefinaloverridevirtual

Reimplemented from clang::CodeGen::ABIInfo.

Definition at line 138 of file ABIInfo.h.


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