clang  19.0.0git
Classes | Public Member Functions | Static Public Member Functions | List of all members
clang::CodeGen::CGCallee Class Reference

All available information about a concrete callee. More...

#include "/home/runner/work/llvm/llvm/repo/clang/lib/CodeGen/CGCall.h"

Public Member Functions

 CGCallee ()
 
 CGCallee (const CGCalleeInfo &abstractInfo, llvm::Value *functionPtr)
 Construct a callee. More...
 
bool isBuiltin () const
 
const FunctionDeclgetBuiltinDecl () const
 
unsigned getBuiltinID () const
 
bool isPseudoDestructor () const
 
const CXXPseudoDestructorExprgetPseudoDestructorExpr () const
 
bool isOrdinary () const
 
CGCalleeInfo getAbstractInfo () const
 
llvm::Value * getFunctionPointer () const
 
void setFunctionPointer (llvm::Value *functionPtr)
 
bool isVirtual () const
 
const CallExprgetVirtualCallExpr () const
 
GlobalDecl getVirtualMethodDecl () const
 
Address getThisAddress () const
 
llvm::FunctionType * getVirtualFunctionType () const
 
CGCallee prepareConcreteCallee (CodeGenFunction &CGF) const
 If this is a delayed callee computation of some sort, prepare a concrete callee. More...
 

Static Public Member Functions

static CGCallee forBuiltin (unsigned builtinID, const FunctionDecl *builtinDecl)
 
static CGCallee forPseudoDestructor (const CXXPseudoDestructorExpr *E)
 
static CGCallee forDirect (llvm::Constant *functionPtr, const CGCalleeInfo &abstractInfo=CGCalleeInfo())
 
static CGCallee forDirect (llvm::FunctionCallee functionPtr, const CGCalleeInfo &abstractInfo=CGCalleeInfo())
 
static CGCallee forVirtual (const CallExpr *CE, GlobalDecl MD, Address Addr, llvm::FunctionType *FTy)
 

Detailed Description

All available information about a concrete callee.

Definition at line 62 of file CGCall.h.

Constructor & Destructor Documentation

◆ CGCallee() [1/2]

clang::CodeGen::CGCallee::CGCallee ( )
inline

Definition at line 103 of file CGCall.h.

Referenced by forDirect().

◆ CGCallee() [2/2]

clang::CodeGen::CGCallee::CGCallee ( const CGCalleeInfo abstractInfo,
llvm::Value *  functionPtr 
)
inline

Construct a callee.

Call this constructor directly when this isn't a direct call.

Definition at line 107 of file CGCall.h.

References AbstractInfo.

Member Function Documentation

◆ forBuiltin()

static CGCallee clang::CodeGen::CGCallee::forBuiltin ( unsigned  builtinID,
const FunctionDecl builtinDecl 
)
inlinestatic

Definition at line 114 of file CGCall.h.

References BuiltinInfo.

Referenced by EmitDirectCallee().

◆ forDirect() [1/2]

static CGCallee clang::CodeGen::CGCallee::forDirect ( llvm::Constant *  functionPtr,
const CGCalleeInfo abstractInfo = CGCalleeInfo() 
)
inlinestatic

◆ forDirect() [2/2]

static CGCallee clang::CodeGen::CGCallee::forDirect ( llvm::FunctionCallee  functionPtr,
const CGCalleeInfo abstractInfo = CGCalleeInfo() 
)
inlinestatic

Definition at line 133 of file CGCall.h.

References CGCallee().

◆ forPseudoDestructor()

static CGCallee clang::CodeGen::CGCallee::forPseudoDestructor ( const CXXPseudoDestructorExpr E)
inlinestatic

Definition at line 122 of file CGCall.h.

References PseudoDestructorInfo.

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

◆ forVirtual()

static CGCallee clang::CodeGen::CGCallee::forVirtual ( const CallExpr CE,
GlobalDecl  MD,
Address  Addr,
llvm::FunctionType *  FTy 
)
inlinestatic

Definition at line 138 of file CGCall.h.

References VirtualInfo.

◆ getAbstractInfo()

CGCalleeInfo clang::CodeGen::CGCallee::getAbstractInfo ( ) const
inline

Definition at line 171 of file CGCall.h.

References AbstractInfo, isOrdinary(), isVirtual(), and VirtualInfo.

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

◆ getBuiltinDecl()

const FunctionDecl* clang::CodeGen::CGCallee::getBuiltinDecl ( ) const
inline

Definition at line 151 of file CGCall.h.

References BuiltinInfo, and isBuiltin().

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

◆ getBuiltinID()

unsigned clang::CodeGen::CGCallee::getBuiltinID ( ) const
inline

Definition at line 155 of file CGCall.h.

References BuiltinInfo, and isBuiltin().

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

◆ getFunctionPointer()

llvm::Value* clang::CodeGen::CGCallee::getFunctionPointer ( ) const
inline

Definition at line 177 of file CGCall.h.

References isOrdinary().

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

◆ getPseudoDestructorExpr()

const CXXPseudoDestructorExpr* clang::CodeGen::CGCallee::getPseudoDestructorExpr ( ) const
inline

Definition at line 163 of file CGCall.h.

References isPseudoDestructor(), and PseudoDestructorInfo.

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

◆ getThisAddress()

Address clang::CodeGen::CGCallee::getThisAddress ( ) const
inline

Definition at line 198 of file CGCall.h.

References isVirtual(), and VirtualInfo.

Referenced by prepareConcreteCallee().

◆ getVirtualCallExpr()

const CallExpr* clang::CodeGen::CGCallee::getVirtualCallExpr ( ) const
inline

Definition at line 190 of file CGCall.h.

References isVirtual(), and VirtualInfo.

Referenced by prepareConcreteCallee().

◆ getVirtualFunctionType()

llvm::FunctionType* clang::CodeGen::CGCallee::getVirtualFunctionType ( ) const
inline

Definition at line 202 of file CGCall.h.

References isVirtual(), and VirtualInfo.

Referenced by prepareConcreteCallee().

◆ getVirtualMethodDecl()

GlobalDecl clang::CodeGen::CGCallee::getVirtualMethodDecl ( ) const
inline

Definition at line 194 of file CGCall.h.

References isVirtual(), and VirtualInfo.

Referenced by prepareConcreteCallee().

◆ isBuiltin()

bool clang::CodeGen::CGCallee::isBuiltin ( ) const
inline

◆ isOrdinary()

bool clang::CodeGen::CGCallee::isOrdinary ( ) const
inline

Definition at line 168 of file CGCall.h.

Referenced by getAbstractInfo(), getFunctionPointer(), and setFunctionPointer().

◆ isPseudoDestructor()

bool clang::CodeGen::CGCallee::isPseudoDestructor ( ) const
inline

◆ isVirtual()

bool clang::CodeGen::CGCallee::isVirtual ( ) const
inline

◆ prepareConcreteCallee()

CGCallee CGCallee::prepareConcreteCallee ( CodeGenFunction CGF) const

◆ setFunctionPointer()

void clang::CodeGen::CGCallee::setFunctionPointer ( llvm::Value *  functionPtr)
inline

Definition at line 181 of file CGCall.h.

References isOrdinary().

Member Data Documentation

◆ AbstractInfo

CGCalleeInfo clang::CodeGen::CGCallee::AbstractInfo

Definition at line 88 of file CGCall.h.

Referenced by CGCallee(), and getAbstractInfo().

◆ BuiltinInfo

BuiltinInfoStorage clang::CodeGen::CGCallee::BuiltinInfo

Definition at line 89 of file CGCall.h.

Referenced by forBuiltin(), getBuiltinDecl(), and getBuiltinID().

◆ PseudoDestructorInfo

PseudoDestructorInfoStorage clang::CodeGen::CGCallee::PseudoDestructorInfo

Definition at line 90 of file CGCall.h.

Referenced by forPseudoDestructor(), and getPseudoDestructorExpr().

◆ VirtualInfo

VirtualInfoStorage clang::CodeGen::CGCallee::VirtualInfo

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