clang API Documentation
#include <CGFunctionInfo.h>
Classes | |
struct | ArgInfo |
Public Types | |
typedef const ArgInfo * | const_arg_iterator |
typedef ArgInfo * | arg_iterator |
typedef llvm::iterator_range < arg_iterator > | arg_range |
typedef llvm::iterator_range < const_arg_iterator > | arg_const_range |
Public Member Functions | |
arg_range | arguments () |
arg_const_range | arguments () const |
const_arg_iterator | arg_begin () const |
const_arg_iterator | arg_end () const |
arg_iterator | arg_begin () |
arg_iterator | arg_end () |
unsigned | arg_size () const |
bool | isVariadic () const |
RequiredArgs | getRequiredArgs () const |
unsigned | getNumRequiredArgs () const |
bool | isInstanceMethod () const |
bool | isNoReturn () const |
bool | isReturnsRetained () const |
CallingConv | getASTCallingConvention () const |
unsigned | getCallingConvention () const |
unsigned | getEffectiveCallingConvention () const |
void | setEffectiveCallingConvention (unsigned Value) |
bool | getHasRegParm () const |
unsigned | getRegParm () const |
FunctionType::ExtInfo | getExtInfo () const |
CanQualType | getReturnType () const |
ABIArgInfo & | getReturnInfo () |
const ABIArgInfo & | getReturnInfo () const |
bool | usesInAlloca () const |
Return true if this function uses inalloca arguments. | |
llvm::StructType * | getArgStruct () const |
Get the struct type used to represent all the arguments in memory. | |
void | setArgStruct (llvm::StructType *Ty) |
void | Profile (llvm::FoldingSetNodeID &ID) |
Static Public Member Functions | |
static CGFunctionInfo * | create (unsigned llvmCC, bool InstanceMethod, const FunctionType::ExtInfo &extInfo, CanQualType resultType, ArrayRef< CanQualType > argTypes, RequiredArgs required) |
static void | Profile (llvm::FoldingSetNodeID &ID, bool InstanceMethod, const FunctionType::ExtInfo &info, RequiredArgs required, CanQualType resultType, ArrayRef< CanQualType > argTypes) |
CGFunctionInfo - Class to encapsulate the information about a function definition.
Definition at line 335 of file CGFunctionInfo.h.
typedef llvm::iterator_range<const_arg_iterator> clang::CodeGen::CGFunctionInfo::arg_const_range |
Definition at line 393 of file CGFunctionInfo.h.
typedef ArgInfo* clang::CodeGen::CGFunctionInfo::arg_iterator |
Definition at line 390 of file CGFunctionInfo.h.
typedef llvm::iterator_range<arg_iterator> clang::CodeGen::CGFunctionInfo::arg_range |
Definition at line 392 of file CGFunctionInfo.h.
typedef const ArgInfo* clang::CodeGen::CGFunctionInfo::const_arg_iterator |
Definition at line 389 of file CGFunctionInfo.h.
const_arg_iterator clang::CodeGen::CGFunctionInfo::arg_begin | ( | ) | const [inline] |
Definition at line 400 of file CGFunctionInfo.h.
Referenced by arguments(), clang::CodeGen::CodeGenModule::ConstructAttributeList(), clang::CodeGen::CodeGenFunction::EmitCall(), clang::CodeGen::CodeGenFunction::EmitCallAndReturnForThunk(), clang::CodeGen::CodeGenFunction::EmitFunctionProlog(), clang::CodeGen::CodeGenFunction::EmitMustTailThunk(), clang::CodeGen::CodeGenTypes::GetFunctionType(), and clang::CodeGen::CodeGenFunction::IndirectObjCSetterArg().
arg_iterator clang::CodeGen::CGFunctionInfo::arg_begin | ( | ) | [inline] |
Definition at line 402 of file CGFunctionInfo.h.
const_arg_iterator clang::CodeGen::CGFunctionInfo::arg_end | ( | ) | const [inline] |
Definition at line 401 of file CGFunctionInfo.h.
Referenced by arguments(), and clang::CodeGen::CodeGenModule::ConstructAttributeList().
arg_iterator clang::CodeGen::CGFunctionInfo::arg_end | ( | ) | [inline] |
Definition at line 403 of file CGFunctionInfo.h.
unsigned clang::CodeGen::CGFunctionInfo::arg_size | ( | ) | const [inline] |
Definition at line 405 of file CGFunctionInfo.h.
Referenced by clang::CodeGen::CodeGenModule::ConstructAttributeList(), clang::CodeGen::CodeGenFunction::EmitCall(), clang::CodeGen::CodeGenFunction::EmitCallAndReturnForThunk(), clang::CodeGen::CodeGenFunction::EmitFunctionProlog(), and getNumRequiredArgs().
arg_range clang::CodeGen::CGFunctionInfo::arguments | ( | ) | [inline] |
Definition at line 395 of file CGFunctionInfo.h.
References arg_begin(), and arg_end().
Referenced by clang::CodeGen::CodeGenTypes::arrangeLLVMFunctionInfo(), and Profile().
arg_const_range clang::CodeGen::CGFunctionInfo::arguments | ( | ) | const [inline] |
Definition at line 396 of file CGFunctionInfo.h.
References arg_begin(), and arg_end().
CGFunctionInfo * CGFunctionInfo::create | ( | unsigned | llvmCC, |
bool | InstanceMethod, | ||
const FunctionType::ExtInfo & | extInfo, | ||
CanQualType | resultType, | ||
ArrayRef< CanQualType > | argTypes, | ||
RequiredArgs | required | ||
) | [static] |
llvm::StructType* clang::CodeGen::CGFunctionInfo::getArgStruct | ( | ) | const [inline] |
Get the struct type used to represent all the arguments in memory.
Definition at line 459 of file CGFunctionInfo.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitCall(), clang::CodeGen::CodeGenFunction::EmitFunctionProlog(), and clang::CodeGen::CodeGenTypes::GetFunctionType().
CallingConv clang::CodeGen::CGFunctionInfo::getASTCallingConvention | ( | ) | const [inline] |
getASTCallingConvention() - Return the AST-specified calling convention.
Definition at line 423 of file CGFunctionInfo.h.
Referenced by getExtInfo(), and Profile().
unsigned clang::CodeGen::CGFunctionInfo::getCallingConvention | ( | ) | const [inline] |
getCallingConvention - Return the user specified calling convention, which has been translated into an LLVM CC.
Definition at line 429 of file CGFunctionInfo.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitCallAndReturnForThunk().
unsigned clang::CodeGen::CGFunctionInfo::getEffectiveCallingConvention | ( | ) | const [inline] |
getEffectiveCallingConvention - Return the actual calling convention to use, which may depend on the ABI.
Definition at line 433 of file CGFunctionInfo.h.
Referenced by clang::CodeGen::CodeGenModule::ConstructAttributeList().
FunctionType::ExtInfo clang::CodeGen::CGFunctionInfo::getExtInfo | ( | ) | const [inline] |
Definition at line 443 of file CGFunctionInfo.h.
References getASTCallingConvention(), getHasRegParm(), getRegParm(), isNoReturn(), and isReturnsRetained().
Referenced by clang::CodeGen::CGObjCRuntime::getMessageSendInfo().
bool clang::CodeGen::CGFunctionInfo::getHasRegParm | ( | ) | const [inline] |
Definition at line 440 of file CGFunctionInfo.h.
Referenced by getExtInfo().
unsigned clang::CodeGen::CGFunctionInfo::getNumRequiredArgs | ( | ) | const [inline] |
Definition at line 409 of file CGFunctionInfo.h.
References arg_size(), clang::CodeGen::RequiredArgs::getNumRequiredArgs(), getRequiredArgs(), and isVariadic().
Referenced by clang::CodeGen::CodeGenTypes::GetFunctionType().
unsigned clang::CodeGen::CGFunctionInfo::getRegParm | ( | ) | const [inline] |
Definition at line 441 of file CGFunctionInfo.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitCallAndReturnForThunk(), and getExtInfo().
RequiredArgs clang::CodeGen::CGFunctionInfo::getRequiredArgs | ( | ) | const [inline] |
Definition at line 408 of file CGFunctionInfo.h.
Referenced by clang::CodeGen::CGObjCRuntime::getMessageSendInfo(), and getNumRequiredArgs().
ABIArgInfo& clang::CodeGen::CGFunctionInfo::getReturnInfo | ( | ) | [inline] |
Definition at line 452 of file CGFunctionInfo.h.
Referenced by clang::CodeGen::CodeGenTypes::arrangeLLVMFunctionInfo(), clang::CodeGen::CodeGenModule::ConstructAttributeList(), clang::CodeGen::CodeGenFunction::EmitAsmStmt(), clang::CodeGen::CodeGenFunction::EmitCall(), clang::CodeGen::CodeGenFunction::EmitCallAndReturnForThunk(), clang::CodeGen::CodeGenFunction::EmitForwardingCallToLambda(), clang::CodeGen::CodeGenFunction::EmitFunctionEpilog(), clang::CodeGen::CodeGenFunction::EmitMustTailThunk(), clang::CodeGen::CodeGenTypes::GetFunctionType(), clang::CodeGen::CodeGenModule::ReturnTypeUsesSRet(), and clang::CodeGen::CodeGenFunction::StartFunction().
const ABIArgInfo& clang::CodeGen::CGFunctionInfo::getReturnInfo | ( | ) | const [inline] |
Definition at line 453 of file CGFunctionInfo.h.
CanQualType clang::CodeGen::CGFunctionInfo::getReturnType | ( | ) | const [inline] |
Definition at line 450 of file CGFunctionInfo.h.
Referenced by clang::CodeGen::CodeGenTypes::arrangeLLVMFunctionInfo(), clang::CodeGen::CodeGenModule::ConstructAttributeList(), clang::CodeGen::CodeGenFunction::EmitCall(), clang::CodeGen::CodeGenFunction::EmitCallAndReturnForThunk(), clang::CodeGen::CodeGenFunction::EmitForwardingCallToLambda(), clang::CodeGen::CodeGenFunction::EmitFunctionEpilog(), clang::CodeGen::CodeGenTypes::GetFunctionType(), Profile(), and clang::CodeGen::CodeGenFunction::StartFunction().
bool clang::CodeGen::CGFunctionInfo::isInstanceMethod | ( | ) | const [inline] |
Definition at line 413 of file CGFunctionInfo.h.
bool clang::CodeGen::CGFunctionInfo::isNoReturn | ( | ) | const [inline] |
Definition at line 415 of file CGFunctionInfo.h.
Referenced by clang::CodeGen::CodeGenModule::ConstructAttributeList(), clang::CodeGen::CodeGenFunction::EmitCallAndReturnForThunk(), and getExtInfo().
bool clang::CodeGen::CGFunctionInfo::isReturnsRetained | ( | ) | const [inline] |
In ARC, whether this function retains its return value. This is not always reliable for call sites.
Definition at line 419 of file CGFunctionInfo.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitFunctionEpilog(), getExtInfo(), and clang::CodeGen::CodeGenFunction::StartFunction().
bool clang::CodeGen::CGFunctionInfo::isVariadic | ( | ) | const [inline] |
Definition at line 407 of file CGFunctionInfo.h.
References clang::CodeGen::RequiredArgs::allowsOptionalArgs().
Referenced by clang::CodeGen::CodeGenFunction::EmitCall(), clang::CodeGen::CodeGenFunction::GenerateVarArgsThunk(), clang::CodeGen::CodeGenTypes::GetFunctionType(), clang::CodeGen::CGObjCRuntime::getMessageSendInfo(), and getNumRequiredArgs().
void clang::CodeGen::CGFunctionInfo::Profile | ( | llvm::FoldingSetNodeID & | ID | ) | [inline] |
Definition at line 462 of file CGFunctionInfo.h.
References arguments(), getASTCallingConvention(), clang::CodeGen::RequiredArgs::getOpaqueData(), getReturnType(), and clang::CanQual< T >::Profile().
Referenced by clang::CodeGen::CodeGenTypes::arrangeLLVMFunctionInfo().
static void clang::CodeGen::CGFunctionInfo::Profile | ( | llvm::FoldingSetNodeID & | ID, |
bool | InstanceMethod, | ||
const FunctionType::ExtInfo & | info, | ||
RequiredArgs | required, | ||
CanQualType | resultType, | ||
ArrayRef< CanQualType > | argTypes | ||
) | [inline, static] |
Definition at line 474 of file CGFunctionInfo.h.
References clang::FunctionType::ExtInfo::getCC(), clang::FunctionType::ExtInfo::getHasRegParm(), clang::FunctionType::ExtInfo::getNoReturn(), clang::CodeGen::RequiredArgs::getOpaqueData(), clang::FunctionType::ExtInfo::getProducesResult(), clang::FunctionType::ExtInfo::getRegParm(), and clang::CanQual< T >::Profile().
void clang::CodeGen::CGFunctionInfo::setArgStruct | ( | llvm::StructType * | Ty | ) | [inline] |
Definition at line 460 of file CGFunctionInfo.h.
void clang::CodeGen::CGFunctionInfo::setEffectiveCallingConvention | ( | unsigned | Value | ) | [inline] |
Definition at line 436 of file CGFunctionInfo.h.
bool clang::CodeGen::CGFunctionInfo::usesInAlloca | ( | ) | const [inline] |
Return true if this function uses inalloca arguments.
Definition at line 456 of file CGFunctionInfo.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitCallAndReturnForThunk().