clang 22.0.0git
clang::CodeGen::CallArgList Class Reference

CallArgList - Type for representing both the value and type of arguments in a call. More...

#include "/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/clang/lib/CodeGen/CGCall.h"

Inheritance diagram for clang::CodeGen::CallArgList:
[legend]

Classes

struct  CallArgCleanup
struct  Writeback

Public Types

typedef llvm::iterator_range< SmallVectorImpl< Writeback >::const_iterator > writeback_const_range

Public Member Functions

 CallArgList ()=default
void add (RValue rvalue, QualType type)
void addUncopiedAggregate (LValue LV, QualType type)
void addFrom (const CallArgList &other)
 Add all the arguments from another CallArgList to this one.
void addWriteback (LValue srcLV, Address temporary, llvm::Value *toUse, const Expr *writebackExpr=nullptr)
bool hasWritebacks () const
writeback_const_range writebacks () const
void addArgCleanupDeactivation (EHScopeStack::stable_iterator Cleanup, llvm::Instruction *IsActiveIP)
ArrayRef< CallArgCleanupgetCleanupsToDeactivate () const
void allocateArgumentMemory (CodeGenFunction &CGF)
llvm::Instruction * getStackBase () const
void freeArgumentMemory (CodeGenFunction &CGF) const
bool isUsingInAlloca () const
 Returns if we're using an inalloca struct to pass arguments in memory.
void reverseWritebacks ()

Detailed Description

CallArgList - Type for representing both the value and type of arguments in a call.

Definition at line 274 of file CGCall.h.

Member Typedef Documentation

◆ writeback_const_range

typedef llvm::iterator_range<SmallVectorImpl<Writeback>::const_iterator> clang::CodeGen::CallArgList::writeback_const_range

Definition at line 329 of file CGCall.h.

Constructor & Destructor Documentation

◆ CallArgList()

clang::CodeGen::CallArgList::CallArgList ( )
default

Referenced by addFrom().

Member Function Documentation

◆ add()

void clang::CodeGen::CallArgList::add ( RValue rvalue,
QualType type )
inline

Definition at line 302 of file CGCall.h.

References clang::ast_matchers::type.

Referenced by clang::CodeGen::CGCXXABI::addImplicitConstructorArgs(), commonEmitCXXMemberOrOperatorCall(), clang::CodeGen::CodeGenFunction::EmitAtomicExpr(), clang::CodeGen::CodeGenFunction::EmitAtomicStore(), clang::CodeGen::CodeGenFunction::EmitBlockCallExpr(), clang::CodeGen::CodeGenFunction::EmitBuiltinExpr(), clang::CodeGen::CodeGenFunction::emitBuiltinOSLogFormat(), clang::CodeGen::CodeGenFunction::EmitCall(), clang::CodeGen::CodeGenFunction::EmitCallAndReturnForThunk(), clang::CodeGen::CodeGenFunction::EmitCallArg(), clang::CodeGen::CodeGenFunction::EmitCallArgs(), emitCPPObjectAtomicGetterCall(), emitCPPObjectAtomicSetterCall(), clang::CodeGen::CodeGenFunction::EmitCXXConstructorCall(), clang::CodeGen::CodeGenFunction::EmitCXXMemberPointerCallExpr(), clang::CodeGen::CodeGenFunction::EmitCXXNewExpr(), clang::CodeGen::CodeGenFunction::EmitDelegateCallArg(), clang::CodeGen::CodeGenFunction::EmitDelegateCXXConstructorCall(), clang::CodeGen::CodeGenFunction::EmitHLSLOutArgExpr(), clang::CodeGen::CodeGenFunction::EmitLambdaBlockInvokeBody(), clang::CodeGen::CodeGenFunction::EmitLambdaInAllocaCallOpBody(), clang::CodeGen::CodeGenFunction::EmitLambdaStaticInvokeBody(), clang::CodeGen::CodeGenFunction::EmitObjCBoxedExpr(), clang::CodeGen::CodeGenFunction::EmitObjCCollectionLiteral(), clang::CodeGen::CodeGenFunction::EmitObjCForCollectionStmt(), emitStructGetterCall(), emitStructSetterCall(), emitWritebackArg(), clang::CodeGen::CodeGenFunction::GenerateCode(), clang::CodeGen::CodeGenFunction::generateObjCGetterBody(), and clang::CodeGen::CodeGenFunction::generateObjCSetterBody().

◆ addArgCleanupDeactivation()

void clang::CodeGen::CallArgList::addArgCleanupDeactivation ( EHScopeStack::stable_iterator Cleanup,
llvm::Instruction * IsActiveIP )
inline

◆ addFrom()

void clang::CodeGen::CallArgList::addFrom ( const CallArgList & other)
inline

Add all the arguments from another CallArgList to this one.

After doing this, the old CallArgList retains its list of arguments, but must not be used to emit a call.

Definition at line 311 of file CGCall.h.

References CallArgList().

Referenced by commonEmitCXXMemberOrOperatorCall().

◆ addUncopiedAggregate()

void clang::CodeGen::CallArgList::addUncopiedAggregate ( LValue LV,
QualType type )
inline

Definition at line 304 of file CGCall.h.

References clang::ast_matchers::type.

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

◆ addWriteback()

void clang::CodeGen::CallArgList::addWriteback ( LValue srcLV,
Address temporary,
llvm::Value * toUse,
const Expr * writebackExpr = nullptr )
inline

◆ allocateArgumentMemory()

void CallArgList::allocateArgumentMemory ( CodeGenFunction & CGF)

◆ freeArgumentMemory()

void CallArgList::freeArgumentMemory ( CodeGenFunction & CGF) const

◆ getCleanupsToDeactivate()

ArrayRef< CallArgCleanup > clang::CodeGen::CallArgList::getCleanupsToDeactivate ( ) const
inline

◆ getStackBase()

llvm::Instruction * clang::CodeGen::CallArgList::getStackBase ( ) const
inline

Definition at line 348 of file CGCall.h.

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

◆ hasWritebacks()

bool clang::CodeGen::CallArgList::hasWritebacks ( ) const
inline

Definition at line 326 of file CGCall.h.

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

◆ isUsingInAlloca()

bool clang::CodeGen::CallArgList::isUsingInAlloca ( ) const
inline

Returns if we're using an inalloca struct to pass arguments in memory.

Definition at line 353 of file CGCall.h.

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

◆ reverseWritebacks()

void clang::CodeGen::CallArgList::reverseWritebacks ( )
inline

◆ writebacks()

writeback_const_range clang::CodeGen::CallArgList::writebacks ( ) const
inline

Definition at line 331 of file CGCall.h.

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


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