clang  3.9.0
Public Member Functions | Public Attributes | Protected Attributes | List of all members
clang::CodeGen::ABIInfo Class Referenceabstract

ABIInfo - Target specific hooks for defining how a type should be passed or returned from functions. More...

#include <ABIInfo.h>

Inheritance diagram for clang::CodeGen::ABIInfo:
[legend]
Collaboration diagram for clang::CodeGen::ABIInfo:
[legend]

Public Member Functions

 ABIInfo (CodeGen::CodeGenTypes &cgt)
 
virtual ~ABIInfo ()
 
virtual bool supportsSwift () const
 
CodeGen::CGCXXABIgetCXXABI () const
 
ASTContextgetContext () const
 
llvm::LLVMContext & getVMContext () const
 
const llvm::DataLayout & getDataLayout () const
 
const TargetInfogetTarget () 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
 

Public Attributes

CodeGen::CodeGenTypesCGT
 

Protected Attributes

llvm::CallingConv::ID RuntimeCC
 
llvm::CallingConv::ID BuiltinCC
 

Detailed Description

ABIInfo - Target specific hooks for defining how a type should be passed or returned from functions.

Definition at line 49 of file ABIInfo.h.

Constructor & Destructor Documentation

clang::CodeGen::ABIInfo::ABIInfo ( CodeGen::CodeGenTypes cgt)
inline

Definition at line 56 of file ABIInfo.h.

ABIInfo::~ABIInfo ( )
virtual

Definition at line 70 of file CodeGen/TargetInfo.cpp.

Member Function Documentation

virtual void clang::CodeGen::ABIInfo::computeInfo ( CodeGen::CGFunctionInfo FI) const
pure virtual
Address ABIInfo::EmitMSVAArg ( CodeGen::CodeGenFunction CGF,
CodeGen::Address  VAListAddr,
QualType  Ty 
) const
virtual

Emit the target dependent code to load a value of.

  • Ty from the __builtin_ms_va_list pointed to by
  • VAListAddr.

Definition at line 65 of file CodeGen/TargetInfo.cpp.

References clang::CodeGen::Address::invalid().

Referenced by clang::CodeGen::CodeGenFunction::EmitVAArg().

virtual CodeGen::Address clang::CodeGen::ABIInfo::EmitVAArg ( CodeGen::CodeGenFunction CGF,
CodeGen::Address  VAListAddr,
QualType  Ty 
) const
pure virtual

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

  • Ty from the va_list pointed to by
  • VAListAddr.

Referenced by clang::CodeGen::CodeGenFunction::EmitVAArg().

llvm::CallingConv::ID clang::CodeGen::ABIInfo::getBuiltinCC ( ) const
inline

Return the calling convention to use for compiler builtins.

Definition at line 78 of file ABIInfo.h.

References BuiltinCC.

Referenced by clang::CodeGen::CodeGenModule::CodeGenModule().

ASTContext & ABIInfo::getContext ( ) const
CGCXXABI & ABIInfo::getCXXABI ( ) const

Definition at line 141 of file CodeGen/TargetInfo.cpp.

References CGT, and clang::CodeGen::CodeGenTypes::getCXXABI().

const llvm::DataLayout & ABIInfo::getDataLayout ( ) const

Definition at line 153 of file CodeGen/TargetInfo.cpp.

References CGT, and clang::CodeGen::CodeGenTypes::getDataLayout().

ABIArgInfo ABIInfo::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.

Definition at line 53 of file CodeGen/TargetInfo.cpp.

References getContext(), and clang::CodeGen::ABIArgInfo::getIndirect().

ABIArgInfo ABIInfo::getNaturalAlignIndirectInReg ( QualType  Ty,
bool  Realign = false 
) const
llvm::CallingConv::ID clang::CodeGen::ABIInfo::getRuntimeCC ( ) const
inline

Return the calling convention to use for system runtime functions.

Definition at line 73 of file ABIInfo.h.

References RuntimeCC.

Referenced by clang::CodeGen::CodeGenModule::CodeGenModule().

const TargetInfo & ABIInfo::getTarget ( ) const

Definition at line 157 of file CodeGen/TargetInfo.cpp.

References CGT, and clang::CodeGen::CodeGenTypes::getTarget().

Referenced by isAndroid().

llvm::LLVMContext & ABIInfo::getVMContext ( ) const

Definition at line 149 of file CodeGen/TargetInfo.cpp.

References CGT, and clang::CodeGen::CodeGenTypes::getLLVMContext().

bool ABIInfo::isAndroid ( ) const

Definition at line 161 of file CodeGen/TargetInfo.cpp.

References getTarget(), and clang::TargetInfo::getTriple().

bool ABIInfo::isHomogeneousAggregate ( QualType  Ty,
const Type *&  Base,
uint64_t &  Members 
) const
bool ABIInfo::isHomogeneousAggregateBaseType ( QualType  Ty) const
virtual

Definition at line 163 of file CodeGen/TargetInfo.cpp.

Referenced by isHomogeneousAggregate().

bool ABIInfo::isHomogeneousAggregateSmallEnough ( const Type Base,
uint64_t  Members 
) const
virtual

Definition at line 167 of file CodeGen/TargetInfo.cpp.

Referenced by isHomogeneousAggregate().

bool ABIInfo::shouldSignExtUnsignedType ( QualType  Ty) const
virtual
virtual bool clang::CodeGen::ABIInfo::supportsSwift ( ) const
inlinevirtual

Reimplemented in clang::CodeGen::SwiftABIInfo.

Definition at line 63 of file ABIInfo.h.

Referenced by clang::CodeGen::SwiftABIInfo::classof().

Member Data Documentation

llvm::CallingConv::ID clang::CodeGen::ABIInfo::BuiltinCC
protected

Definition at line 54 of file ABIInfo.h.

Referenced by getBuiltinCC().

CodeGen::CodeGenTypes& clang::CodeGen::ABIInfo::CGT

Definition at line 51 of file ABIInfo.h.

Referenced by getContext(), getCXXABI(), getDataLayout(), getTarget(), and getVMContext().

llvm::CallingConv::ID clang::CodeGen::ABIInfo::RuntimeCC
protected

Definition at line 53 of file ABIInfo.h.

Referenced by getRuntimeCC().


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