clang API Documentation

Public Member Functions | Public Attributes | Protected Attributes
clang::ABIInfo Class Reference

#include <ABIInfo.h>

Collaboration diagram for clang::ABIInfo:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 ABIInfo (CodeGen::CodeGenTypes &cgt)
virtual ~ABIInfo ()
CodeGen::CGCXXABIgetCXXABI () const
ASTContextgetContext () const
llvm::LLVMContext & getVMContext () const
const llvm::DataLayout & getDataLayout () const
const TargetInfogetTarget () const
llvm::CallingConv::ID getRuntimeCC () const
virtual void computeInfo (CodeGen::CGFunctionInfo &FI) const =0
virtual llvm::ValueEmitVAArg (llvm::Value *VAListAddr, QualType Ty, CodeGen::CodeGenFunction &CGF) const =0
virtual bool isHomogeneousAggregateBaseType (QualType Ty) const
virtual bool isHomogeneousAggregateSmallEnough (const Type *Base, uint64_t Members) const
bool isHomogeneousAggregate (QualType Ty, const Type *&Base, uint64_t &Members) const

Public Attributes

CodeGen::CodeGenTypesCGT

Protected Attributes

llvm::CallingConv::ID RuntimeCC

Detailed Description

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

Definition at line 42 of file ABIInfo.h.


Constructor & Destructor Documentation

Definition at line 48 of file ABIInfo.h.

ABIInfo::~ABIInfo ( ) [virtual]

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


Member Function Documentation

virtual void clang::ABIInfo::computeInfo ( CodeGen::CGFunctionInfo FI) const [pure virtual]
virtual llvm::Value* clang::ABIInfo::EmitVAArg ( llvm::Value VAListAddr,
QualType  Ty,
CodeGen::CodeGenFunction CGF 
) 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().

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

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

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

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

Return the calling convention to use for system runtime functions.

Definition at line 61 of file ABIInfo.h.

References RuntimeCC.

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

const TargetInfo & ABIInfo::getTarget ( ) const

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

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

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

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

isHomogeneousAggregate - Return true if a type is an ELFv2 homogeneous aggregate. Base is set to the base element type, and Members is set to the number of base elements.

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

References clang::CodeGen::Base, clang::frontend::CPlusPlus, clang::Type::getAs(), clang::RecordType::getDecl(), clang::QualType::getTypePtr(), clang::RecordDecl::hasFlexibleArrayMember(), isEmptyRecord(), clang::TagDecl::isUnion(), and clang::Type::isVectorType().

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

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

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


Member Data Documentation

Definition at line 44 of file ABIInfo.h.

Definition at line 46 of file ABIInfo.h.

Referenced by getRuntimeCC().


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