clang API Documentation
#include <CGCall.h>
Classes | |
struct | CallArgCleanup |
struct | Writeback |
Public Types | |
typedef llvm::iterator_range < SmallVectorImpl< Writeback > ::const_iterator > | writeback_const_range |
Public Member Functions | |
CallArgList () | |
void | add (RValue rvalue, QualType type, bool needscopy=false) |
void | addFrom (const CallArgList &other) |
void | addWriteback (LValue srcLV, llvm::Value *temporary, llvm::Value *toUse) |
bool | hasWritebacks () const |
writeback_const_range | writebacks () const |
void | addArgCleanupDeactivation (EHScopeStack::stable_iterator Cleanup, llvm::Instruction *IsActiveIP) |
ArrayRef< CallArgCleanup > | getCleanupsToDeactivate () 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. |
CallArgList - Type for representing both the value and type of arguments in a call.
typedef llvm::iterator_range<SmallVectorImpl<Writeback>::const_iterator> clang::CodeGen::CallArgList::writeback_const_range |
clang::CodeGen::CallArgList::CallArgList | ( | ) | [inline] |
void clang::CodeGen::CallArgList::add | ( | RValue | rvalue, |
QualType | type, | ||
bool | needscopy = false |
||
) | [inline] |
Definition at line 81 of file CGCall.h.
Referenced by AddDirectArgument(), commonEmitCXXMemberOrOperatorCall(), clang::CodeGen::CodeGenFunction::EmitAtomicExpr(), clang::CodeGen::CodeGenFunction::EmitAtomicLoad(), clang::CodeGen::CodeGenFunction::EmitAtomicStore(), clang::CodeGen::CodeGenFunction::EmitBlockCallExpr(), clang::CodeGen::CodeGenFunction::EmitBuiltinExpr(), clang::CodeGen::CodeGenFunction::EmitCallAndReturnForThunk(), clang::CodeGen::CodeGenFunction::EmitCallArg(), emitCPPObjectAtomicGetterCall(), emitCPPObjectAtomicSetterCall(), clang::CodeGen::CodeGenFunction::EmitCXXConstructorCall(), clang::CodeGen::CodeGenFunction::EmitCXXMemberPointerCallExpr(), clang::CodeGen::CodeGenFunction::EmitDelegateCallArg(), clang::CodeGen::CodeGenFunction::EmitDelegateCXXConstructorCall(), clang::CodeGen::CodeGenFunction::EmitLambdaBlockInvokeBody(), clang::CodeGen::CodeGenFunction::EmitLambdaDelegatingInvokeBody(), clang::CodeGen::CodeGenFunction::EmitObjCBoxedExpr(), clang::CodeGen::CodeGenFunction::EmitObjCCollectionLiteral(), clang::CodeGen::CodeGenFunction::EmitObjCForCollectionStmt(), emitStructGetterCall(), emitStructSetterCall(), emitWritebackArg(), clang::CodeGen::CodeGenFunction::generateObjCGetterBody(), and clang::CodeGen::CodeGenFunction::generateObjCSetterBody().
void clang::CodeGen::CallArgList::addArgCleanupDeactivation | ( | EHScopeStack::stable_iterator | Cleanup, |
llvm::Instruction * | IsActiveIP | ||
) | [inline] |
Definition at line 109 of file CGCall.h.
References clang::CodeGen::CallArgList::CallArgCleanup::Cleanup, and clang::CodeGen::CallArgList::CallArgCleanup::IsActiveIP.
Referenced by clang::CodeGen::CodeGenFunction::EmitCallArg().
void clang::CodeGen::CallArgList::addFrom | ( | const CallArgList & | other | ) | [inline] |
void clang::CodeGen::CallArgList::addWriteback | ( | LValue | srcLV, |
llvm::Value * | temporary, | ||
llvm::Value * | toUse | ||
) | [inline] |
Definition at line 91 of file CGCall.h.
References clang::CodeGen::CallArgList::Writeback::Source, clang::CodeGen::CallArgList::Writeback::Temporary, and clang::CodeGen::CallArgList::Writeback::ToUse.
Referenced by emitWritebackArg().
void CallArgList::allocateArgumentMemory | ( | CodeGenFunction & | CGF | ) |
Definition at line 2591 of file CGCall.cpp.
References clang::CodeGen::CodeGenFunction::Builder, clang::CodeGen::CodeGenFunction::CGM, clang::CodeGen::CodeGenFunction::CreateTempAlloca(), clang::CodeGen::EHCleanup, clang::CodeGen::CodeGenFunction::EHStack, clang::CodeGen::EHScopeStack::getInnermostEHScope(), clang::CodeGen::CodeGenModule::getIntrinsic(), clang::CodeGen::CodeGenTypeCache::Int8PtrTy, and clang::CodeGen::CodeGenFunction::pushStackRestore().
Referenced by clang::CodeGen::CodeGenFunction::EmitCallArgs().
void CallArgList::freeArgumentMemory | ( | CodeGenFunction & | CGF | ) | const |
Definition at line 2609 of file CGCall.cpp.
References clang::CodeGen::CodeGenFunction::Builder, clang::CodeGen::CodeGenFunction::CGM, clang::CodeGen::CodeGenFunction::DeactivateCleanupBlock(), and clang::CodeGen::CodeGenModule::getIntrinsic().
Referenced by clang::CodeGen::CodeGenFunction::EmitCall().
ArrayRef<CallArgCleanup> clang::CodeGen::CallArgList::getCleanupsToDeactivate | ( | ) | const [inline] |
Definition at line 117 of file CGCall.h.
Referenced by deactivateArgCleanupsBeforeCall(), and clang::CodeGen::CodeGenFunction::EmitCall().
llvm::Instruction* clang::CodeGen::CallArgList::getStackBase | ( | ) | const [inline] |
Definition at line 122 of file CGCall.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitCall().
bool clang::CodeGen::CallArgList::hasWritebacks | ( | ) | const [inline] |
Definition at line 100 of file CGCall.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitCall().
bool clang::CodeGen::CallArgList::isUsingInAlloca | ( | ) | const [inline] |
Returns if we're using an inalloca struct to pass arguments in memory.
Definition at line 127 of file CGCall.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitCallArg().
writeback_const_range clang::CodeGen::CallArgList::writebacks | ( | ) | const [inline] |
Definition at line 105 of file CGCall.h.
Referenced by emitWritebacks().