| clang 22.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 596 of file CGFunctionInfo.h.
Definition at line 702 of file CGFunctionInfo.h.
| typedef const ArgInfo* clang::CodeGen::CGFunctionInfo::const_arg_iterator | 
Definition at line 701 of file CGFunctionInfo.h.
| 
 | inline | 
Definition at line 713 of file CGFunctionInfo.h.
| 
 | inline | 
Definition at line 711 of file CGFunctionInfo.h.
Referenced by arguments(), arguments(), clang::CodeGen::swiftcall::computeABIInfo(), clang::CodeGen::CodeGenModule::ConstructAttributeList(), clang::CodeGen::CodeGenFunction::EmitCall(), clang::CodeGen::CodeGenFunction::EmitFunctionProlog(), clang::CodeGen::CodeGenFunction::EmitLambdaInAllocaImplFn(), and clang::CodeGen::CodeGenTypes::GetFunctionType().
| 
 | inline | 
Definition at line 714 of file CGFunctionInfo.h.
| 
 | inline | 
Definition at line 712 of file CGFunctionInfo.h.
Referenced by clang::CodeGen::CodeGenModule::ConstructAttributeList(), and clang::CodeGen::CodeGenFunction::EmitLambdaInAllocaImplFn().
| 
 | inline | 
Definition at line 716 of file CGFunctionInfo.h.
Referenced by clang::CodeGen::CodeGenTypes::arrangeCall(), clang::CodeGen::swiftcall::computeABIInfo(), clang::CodeGen::CodeGenModule::ConstructAttributeList(), clang::CodeGen::CodeGenFunction::EmitCall(), clang::CodeGen::CodeGenFunction::EmitFunctionProlog(), and getNumRequiredArgs().
| 
 | inline | 
Definition at line 704 of file CGFunctionInfo.h.
References arg_begin().
Referenced by clang::CodeGen::CodeGenTypes::arrangeLLVMFunctionInfo(), clang::CodeGen::DefaultABIInfo::computeInfo(), HasNoIndirectArgumentsOrResults(), and Profile().
Definition at line 707 of file CGFunctionInfo.h.
References arg_begin().
| 
 | static | 
Definition at line 894 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 792 of file CGFunctionInfo.h.
Referenced by clang::CodeGen::CodeGenModule::ConstructAttributeList(), clang::CodeGen::CodeGenFunction::EmitCall(), clang::CodeGen::CodeGenFunction::EmitFunctionEpilog(), and clang::CodeGen::CodeGenFunction::EmitFunctionProlog().
| 
 | inline | 
Definition at line 793 of file CGFunctionInfo.h.
References clang::CharUnits::fromQuantity().
Referenced by clang::CodeGen::CodeGenFunction::EmitCall(), and clang::CodeGen::CodeGenFunction::EmitFunctionProlog().
| 
 | inline | 
getASTCallingConvention() - Return the AST-specified calling convention.
Definition at line 746 of file CGFunctionInfo.h.
Referenced by getExtInfo(), and Profile().
| 
 | inline | 
getCallingConvention - Return the user specified calling convention, which has been translated into an LLVM CC.
Definition at line 752 of file CGFunctionInfo.h.
| 
 | inline | 
getEffectiveCallingConvention - Return the actual calling convention to use, which may depend on the ABI.
Definition at line 756 of file CGFunctionInfo.h.
Referenced by clang::CodeGen::CodeGenModule::ConstructAttributeList().
| 
 | inline | 
Definition at line 766 of file CGFunctionInfo.h.
References getASTCallingConvention(), getHasRegParm(), getRegParm(), isCmseNSCall(), isNoCallerSavedRegs(), isNoCfCheck(), isNoReturn(), and isReturnsRetained().
Referenced by clang::CodeGen::CodeGenTypes::arrangeCall(), and clang::CodeGen::CodeGenFunction::EmitLambdaInAllocaImplFn().
| 
 | inline | 
Definition at line 782 of file CGFunctionInfo.h.
References getExtParameterInfos().
Referenced by clang::CodeGen::CodeGenModule::ConstructAttributeList(), clang::CodeGen::CodeGenFunction::EmitCall(), and clang::CodeGen::CodeGenFunction::EmitFunctionProlog().
| 
 | inline | 
Definition at line 778 of file CGFunctionInfo.h.
Referenced by clang::CodeGen::CodeGenTypes::arrangeCall(), getExtParameterInfo(), and Profile().
| 
 | inline | 
Definition at line 763 of file CGFunctionInfo.h.
Referenced by getExtInfo().
| 
 | inline | 
Return the maximum vector width in the arguments.
Definition at line 802 of file CGFunctionInfo.h.
| 
 | inline | 
Definition at line 720 of file CGFunctionInfo.h.
References arg_size(), clang::CodeGen::RequiredArgs::getNumRequiredArgs(), getRequiredArgs(), and isVariadic().
Referenced by clang::CodeGen::CodeGenFunction::EmitCall(), and clang::CodeGen::CodeGenTypes::GetFunctionType().
| 
 | inline | 
Definition at line 764 of file CGFunctionInfo.h.
Referenced by getExtInfo().
| 
 | inline | 
Definition at line 719 of file CGFunctionInfo.h.
Referenced by clang::CodeGen::CodeGenTypes::arrangeCall(), clang::CodeGen::CodeGenFunction::EmitLambdaInAllocaImplFn(), and getNumRequiredArgs().
| 
 | inline | 
Definition at line 775 of file CGFunctionInfo.h.
Referenced by clang::CodeGen::CodeGenTypes::arrangeLLVMFunctionInfo(), clang::CodeGen::classifyReturnType(), clang::CodeGen::swiftcall::computeABIInfo(), clang::CodeGen::DefaultABIInfo::computeInfo(), clang::CodeGen::CodeGenModule::ConstructAttributeList(), clang::CodeGen::CodeGenFunction::EmitCall(), clang::CodeGen::CodeGenFunction::EmitForwardingCallToLambda(), clang::CodeGen::CodeGenFunction::EmitFunctionEpilog(), clang::CodeGen::CodeGenTypes::GetFunctionType(), HasNoIndirectArgumentsOrResults(), clang::CodeGen::CodeGenModule::ReturnTypeHasInReg(), and clang::CodeGen::CodeGenModule::ReturnTypeUsesSRet().
| 
 | inline | 
Definition at line 776 of file CGFunctionInfo.h.
| 
 | inline | 
Definition at line 773 of file CGFunctionInfo.h.
Referenced by clang::CodeGen::CodeGenTypes::arrangeCall(), clang::CodeGen::CodeGenTypes::arrangeLLVMFunctionInfo(), clang::CodeGen::classifyReturnType(), clang::CodeGen::swiftcall::computeABIInfo(), clang::CodeGen::DefaultABIInfo::computeInfo(), clang::CodeGen::CodeGenModule::ConstructAttributeList(), clang::CodeGen::CodeGenFunction::EmitCall(), clang::CodeGen::CodeGenFunction::EmitForwardingCallToLambda(), clang::CodeGen::CodeGenFunction::EmitFunctionEpilog(), clang::CodeGen::CodeGenFunction::EmitLambdaInAllocaImplFn(), clang::CodeGen::CodeGenTypes::GetFunctionType(), and Profile().
| 
 | inline | 
Definition at line 726 of file CGFunctionInfo.h.
Referenced by clang::CodeGen::CodeGenTypes::arrangeCall(), and clang::CodeGen::CodeGenModule::ConstructAttributeList().
| 
 | inline | 
Definition at line 730 of file CGFunctionInfo.h.
Referenced by clang::CodeGen::CodeGenModule::ConstructAttributeList(), clang::CodeGen::CodeGenFunction::EmitCall(), and getExtInfo().
| 
 | inline | 
Definition at line 728 of file CGFunctionInfo.h.
Referenced by clang::CodeGen::CodeGenTypes::arrangeCall(), and clang::CodeGen::CodeGenFunction::GenerateCode().
| 
 | inline | 
Definition at line 724 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 739 of file CGFunctionInfo.h.
Referenced by getExtInfo().
| 
 | inline | 
Whether this function has nocf_check attribute.
Definition at line 742 of file CGFunctionInfo.h.
Referenced by getExtInfo().
| 
 | inline | 
Definition at line 732 of file CGFunctionInfo.h.
Referenced by clang::CodeGen::CodeGenModule::ConstructAttributeList(), clang::CodeGen::CodeGenFunction::EmitFunctionEpilog(), and getExtInfo().
| 
 | inline | 
In ARC, whether this function retains its return value.
This is not always reliable for call sites.
Definition at line 736 of file CGFunctionInfo.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitFunctionEpilog(), and getExtInfo().
| 
 | inline | 
Definition at line 718 of file CGFunctionInfo.h.
Referenced by clang::CodeGen::CodeGenFunction::GenerateVarArgsThunk(), clang::CodeGen::CodeGenTypes::GetFunctionType(), and getNumRequiredArgs().
Definition at line 694 of file CGFunctionInfo.h.
| 
 | inline | 
Definition at line 697 of file CGFunctionInfo.h.
| 
 | inline | 
Definition at line 689 of file CGFunctionInfo.h.
| 
 | inline | 
Definition at line 812 of file CGFunctionInfo.h.
References arguments(), getASTCallingConvention(), getExtParameterInfos(), getReturnType(), and clang::CanQual< T >::Profile().
Referenced by clang::CodeGen::CodeGenTypes::arrangeLLVMFunctionInfo().
| 
 | inlinestatic | 
Definition at line 834 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(), clang::CodeGen::IsDelegateCall, and clang::CanQual< T >::Profile().
| 
 | inline | 
Definition at line 796 of file CGFunctionInfo.h.
References clang::CharUnits::getQuantity().
| 
 | inline | 
Definition at line 759 of file CGFunctionInfo.h.
| 
 | inline | 
Set the maximum vector width in the arguments.
Definition at line 807 of file CGFunctionInfo.h.
| 
 | inline | 
Return true if this function uses inalloca arguments.
Definition at line 789 of file CGFunctionInfo.h.
Referenced by canEmitDelegateCallArgs().
| 
 | friend | 
Definition at line 693 of file CGFunctionInfo.h.
References TrailingObjects.
Referenced by TrailingObjects.