clang 18.0.0git
|
CGFunctionInfo - Class to encapsulate the information about a function definition. More...
#include "clang/CodeGen/CGFunctionInfo.h"
Public Types | |
typedef const ArgInfo * | const_arg_iterator |
typedef ArgInfo * | arg_iterator |
Public Member Functions | |
void | operator delete (void *p) |
size_t | numTrailingObjects (OverloadToken< ArgInfo >) const |
size_t | numTrailingObjects (OverloadToken< ExtParameterInfo >) const |
MutableArrayRef< ArgInfo > | arguments () |
ArrayRef< ArgInfo > | 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 | isChainCall () const |
bool | isDelegateCall () const |
bool | isCmseNSCall () const |
bool | isNoReturn () const |
bool | isReturnsRetained () const |
In ARC, whether this function retains its return value. | |
bool | isNoCallerSavedRegs () const |
Whether this function no longer saves caller registers. | |
bool | isNoCfCheck () const |
Whether this function has nocf_check attribute. | |
CallingConv | getASTCallingConvention () const |
getASTCallingConvention() - Return the AST-specified calling convention. | |
unsigned | getCallingConvention () const |
getCallingConvention - Return the user specified calling convention, which has been translated into an LLVM CC. | |
unsigned | getEffectiveCallingConvention () const |
getEffectiveCallingConvention - Return the actual calling convention to use, which may depend on the ABI. | |
void | setEffectiveCallingConvention (unsigned Value) |
bool | getHasRegParm () const |
unsigned | getRegParm () const |
FunctionType::ExtInfo | getExtInfo () const |
CanQualType | getReturnType () const |
ABIArgInfo & | getReturnInfo () |
const ABIArgInfo & | getReturnInfo () const |
ArrayRef< ExtParameterInfo > | getExtParameterInfos () const |
ExtParameterInfo | getExtParameterInfo (unsigned argIndex) 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. | |
CharUnits | getArgStructAlignment () const |
void | setArgStruct (llvm::StructType *Ty, CharUnits Align) |
unsigned | getMaxVectorWidth () const |
Return the maximum vector width in the arguments. | |
void | setMaxVectorWidth (unsigned Width) |
Set the maximum vector width in the arguments. | |
void | Profile (llvm::FoldingSetNodeID &ID) |
Static Public Member Functions | |
static CGFunctionInfo * | create (unsigned llvmCC, bool instanceMethod, bool chainCall, bool delegateCall, const FunctionType::ExtInfo &extInfo, ArrayRef< ExtParameterInfo > paramInfos, CanQualType resultType, ArrayRef< CanQualType > argTypes, RequiredArgs required) |
static void | Profile (llvm::FoldingSetNodeID &ID, bool InstanceMethod, bool ChainCall, bool IsDelegateCall, const FunctionType::ExtInfo &info, ArrayRef< ExtParameterInfo > paramInfos, RequiredArgs required, CanQualType resultType, ArrayRef< CanQualType > argTypes) |
Friends | |
class | TrailingObjects |
CGFunctionInfo - Class to encapsulate the information about a function definition.
Definition at line 551 of file CGFunctionInfo.h.
Definition at line 646 of file CGFunctionInfo.h.
typedef const ArgInfo* clang::CodeGen::CGFunctionInfo::const_arg_iterator |
Definition at line 645 of file CGFunctionInfo.h.
|
inline |
Definition at line 657 of file CGFunctionInfo.h.
|
inline |
Definition at line 655 of file CGFunctionInfo.h.
Referenced by arguments(), clang::CodeGen::swiftcall::computeABIInfo(), clang::CodeGen::CodeGenModule::ConstructAttributeList(), and clang::CodeGen::CodeGenTypes::GetFunctionType().
|
inline |
Definition at line 658 of file CGFunctionInfo.h.
|
inline |
Definition at line 656 of file CGFunctionInfo.h.
Referenced by clang::CodeGen::CodeGenModule::ConstructAttributeList().
|
inline |
Definition at line 660 of file CGFunctionInfo.h.
Referenced by clang::CodeGen::CodeGenTypes::arrangeCall(), clang::CodeGen::swiftcall::computeABIInfo(), clang::CodeGen::CodeGenModule::ConstructAttributeList(), and getNumRequiredArgs().
|
inline |
Definition at line 648 of file CGFunctionInfo.h.
References arg_begin().
Referenced by clang::CodeGen::CodeGenTypes::arrangeLLVMFunctionInfo(), clang::CodeGen::DefaultABIInfo::computeInfo(), PNaClABIInfo::computeInfo(), and Profile().
Definition at line 651 of file CGFunctionInfo.h.
References arg_begin().
|
static |
Definition at line 815 of file CGCall.cpp.
References clang::CodeGen::RequiredArgs::allowsOptionalArgs(), clang::FunctionType::ExtInfo::getCC(), clang::FunctionType::ExtInfo::getCmseNSCall(), clang::FunctionType::ExtInfo::getHasRegParm(), clang::FunctionType::ExtInfo::getNoCallerSavedRegs(), clang::FunctionType::ExtInfo::getNoCfCheck(), clang::FunctionType::ExtInfo::getNoReturn(), clang::CodeGen::RequiredArgs::getNumRequiredArgs(), clang::FunctionType::ExtInfo::getProducesResult(), clang::FunctionType::ExtInfo::getRegParm(), and clang::CodeGen::CGFunctionInfoArgInfo::type.
Referenced by clang::CodeGen::CodeGenTypes::arrangeLLVMFunctionInfo().
|
inline |
Get the struct type used to represent all the arguments in memory.
Definition at line 736 of file CGFunctionInfo.h.
Referenced by clang::CodeGen::CodeGenModule::ConstructAttributeList().
|
inline |
Definition at line 737 of file CGFunctionInfo.h.
References clang::CharUnits::fromQuantity().
|
inline |
getASTCallingConvention() - Return the AST-specified calling convention.
Definition at line 690 of file CGFunctionInfo.h.
Referenced by getExtInfo(), makeTailCallIfSwiftAsync(), and Profile().
|
inline |
getCallingConvention - Return the user specified calling convention, which has been translated into an LLVM CC.
Definition at line 696 of file CGFunctionInfo.h.
|
inline |
getEffectiveCallingConvention - Return the actual calling convention to use, which may depend on the ABI.
Definition at line 700 of file CGFunctionInfo.h.
Referenced by clang::CodeGen::CodeGenModule::ConstructAttributeList().
|
inline |
Definition at line 710 of file CGFunctionInfo.h.
References getASTCallingConvention(), getHasRegParm(), getRegParm(), isCmseNSCall(), isNoCallerSavedRegs(), isNoCfCheck(), isNoReturn(), and isReturnsRetained().
Referenced by clang::CodeGen::CodeGenTypes::arrangeCall().
|
inline |
Definition at line 726 of file CGFunctionInfo.h.
References getExtParameterInfos().
Referenced by clang::CodeGen::CodeGenModule::ConstructAttributeList().
|
inline |
Definition at line 722 of file CGFunctionInfo.h.
Referenced by clang::CodeGen::CodeGenTypes::arrangeCall(), getExtParameterInfo(), and Profile().
|
inline |
Definition at line 707 of file CGFunctionInfo.h.
Referenced by getExtInfo().
|
inline |
Return the maximum vector width in the arguments.
Definition at line 746 of file CGFunctionInfo.h.
|
inline |
Definition at line 664 of file CGFunctionInfo.h.
References arg_size(), clang::CodeGen::RequiredArgs::getNumRequiredArgs(), getRequiredArgs(), and isVariadic().
Referenced by clang::CodeGen::CodeGenTypes::GetFunctionType().
|
inline |
Definition at line 708 of file CGFunctionInfo.h.
Referenced by getExtInfo().
|
inline |
Definition at line 663 of file CGFunctionInfo.h.
Referenced by clang::CodeGen::CodeGenTypes::arrangeCall(), and getNumRequiredArgs().
|
inline |
Definition at line 719 of file CGFunctionInfo.h.
References clang::CodeGen::CGFunctionInfoArgInfo::info.
Referenced by clang::CodeGen::CodeGenTypes::arrangeLLVMFunctionInfo(), clang::CodeGen::classifyReturnType(), clang::CodeGen::swiftcall::computeABIInfo(), clang::CodeGen::DefaultABIInfo::computeInfo(), PNaClABIInfo::computeInfo(), clang::CodeGen::CodeGenModule::ConstructAttributeList(), clang::CodeGen::CodeGenTypes::GetFunctionType(), and clang::CodeGen::CodeGenModule::ReturnTypeUsesSRet().
|
inline |
Definition at line 720 of file CGFunctionInfo.h.
References clang::CodeGen::CGFunctionInfoArgInfo::info.
|
inline |
Definition at line 717 of file CGFunctionInfo.h.
References clang::CodeGen::CGFunctionInfoArgInfo::type.
Referenced by clang::CodeGen::CodeGenTypes::arrangeCall(), clang::CodeGen::CodeGenTypes::arrangeLLVMFunctionInfo(), clang::CodeGen::classifyReturnType(), clang::CodeGen::swiftcall::computeABIInfo(), clang::CodeGen::DefaultABIInfo::computeInfo(), PNaClABIInfo::computeInfo(), clang::CodeGen::CodeGenModule::ConstructAttributeList(), clang::CodeGen::CodeGenTypes::GetFunctionType(), and Profile().
|
inline |
Definition at line 670 of file CGFunctionInfo.h.
Referenced by clang::CodeGen::CodeGenTypes::arrangeCall(), and clang::CodeGen::CodeGenModule::ConstructAttributeList().
|
inline |
Definition at line 674 of file CGFunctionInfo.h.
Referenced by clang::CodeGen::CodeGenModule::ConstructAttributeList(), and getExtInfo().
|
inline |
Definition at line 672 of file CGFunctionInfo.h.
Referenced by clang::CodeGen::CodeGenTypes::arrangeCall().
|
inline |
Definition at line 668 of file CGFunctionInfo.h.
Referenced by clang::CodeGen::CodeGenTypes::arrangeCall(), and clang::CodeGen::CodeGenModule::ConstructAttributeList().
|
inline |
Whether this function no longer saves caller registers.
Definition at line 683 of file CGFunctionInfo.h.
Referenced by getExtInfo().
|
inline |
Whether this function has nocf_check attribute.
Definition at line 686 of file CGFunctionInfo.h.
Referenced by getExtInfo().
|
inline |
Definition at line 676 of file CGFunctionInfo.h.
Referenced by clang::CodeGen::CodeGenModule::ConstructAttributeList(), and getExtInfo().
|
inline |
In ARC, whether this function retains its return value.
This is not always reliable for call sites.
Definition at line 680 of file CGFunctionInfo.h.
Referenced by getExtInfo().
|
inline |
Definition at line 662 of file CGFunctionInfo.h.
References clang::CodeGen::RequiredArgs::allowsOptionalArgs().
Referenced by clang::CodeGen::CodeGenTypes::GetFunctionType(), and getNumRequiredArgs().
Definition at line 638 of file CGFunctionInfo.h.
|
inline |
Definition at line 641 of file CGFunctionInfo.h.
|
inline |
Definition at line 633 of file CGFunctionInfo.h.
|
inline |
Definition at line 756 of file CGFunctionInfo.h.
References arguments(), getASTCallingConvention(), getExtParameterInfos(), clang::CodeGen::RequiredArgs::getOpaqueData(), getReturnType(), ID, and clang::CanQual< T >::Profile().
Referenced by clang::CodeGen::CodeGenTypes::arrangeLLVMFunctionInfo().
|
inlinestatic |
Definition at line 778 of file CGFunctionInfo.h.
References clang::FunctionType::ExtInfo::getCC(), clang::FunctionType::ExtInfo::getCmseNSCall(), clang::FunctionType::ExtInfo::getHasRegParm(), clang::FunctionType::ExtInfo::getNoCallerSavedRegs(), clang::FunctionType::ExtInfo::getNoCfCheck(), clang::FunctionType::ExtInfo::getNoReturn(), clang::CodeGen::RequiredArgs::getOpaqueData(), clang::FunctionType::ExtInfo::getProducesResult(), clang::FunctionType::ExtInfo::getRegParm(), ID, clang::CodeGen::IsDelegateCall, and clang::CanQual< T >::Profile().
|
inline |
Definition at line 740 of file CGFunctionInfo.h.
References clang::CharUnits::getQuantity().
|
inline |
Definition at line 703 of file CGFunctionInfo.h.
|
inline |
Set the maximum vector width in the arguments.
Definition at line 751 of file CGFunctionInfo.h.
|
inline |
Return true if this function uses inalloca arguments.
Definition at line 733 of file CGFunctionInfo.h.
Referenced by canEmitDelegateCallArgs().
|
friend |
Definition at line 637 of file CGFunctionInfo.h.