clang API Documentation
An aggregate value slot. More...
#include <CGValue.h>
RValue clang::CodeGen::AggValueSlot::asRValue | ( | ) | const [inline] |
Definition at line 490 of file CGValue.h.
References getAddr(), clang::CodeGen::RValue::getAggregate(), and isVolatile().
Referenced by clang::CodeGen::CodeGenFunction::EmitAnyExpr(), clang::CodeGen::CodeGenFunction::EmitCallArg(), and emitPseudoObjectExpr().
static AggValueSlot clang::CodeGen::AggValueSlot::forAddr | ( | llvm::Value * | addr, |
CharUnits | align, | ||
Qualifiers | quals, | ||
IsDestructed_t | isDestructed, | ||
NeedsGCBarriers_t | needsGC, | ||
IsAliased_t | isAliased, | ||
IsZeroed_t | isZeroed = IsNotZeroed |
||
) | [inline, static] |
forAddr - Make a slot for an aggregate value.
quals | - The qualifiers that dictate how the slot should be initialied. Only 'volatile' and the Objective-C lifetime qualifiers matter. |
isDestructed | - true if something else is responsible for calling destructors on this object |
needsGC | - true if the slot is potentially located somewhere that ObjC GC calls should be emitted for |
Definition at line 422 of file CGValue.h.
References clang::CharUnits::getQuantity(), and isZeroed().
Referenced by clang::CodeGen::CodeGenFunction::CreateAggTemp(), createPlaceholderSlot(), clang::CodeGen::CodeGenFunction::EmitAnyExprToMem(), EmitBaseInitializer(), clang::CodeGen::CodeGenFunction::EmitBlockLiteral(), clang::CodeGen::CodeGenFunction::EmitDelegatingCXXConstructorCall(), clang::CodeGen::CodeGenFunction::EmitMaterializeTemporaryExpr(), clang::CodeGen::CodeGenFunction::EmitReturnStmt(), forLValue(), clang::CodeGen::CodeGenFunction::GenerateObjCAtomicGetterCopyHelperFunction(), ignored(), InitCatchParam(), and StoreAnyExprIntoOneUnit().
static AggValueSlot clang::CodeGen::AggValueSlot::forLValue | ( | const LValue & | LV, |
IsDestructed_t | isDestructed, | ||
NeedsGCBarriers_t | needsGC, | ||
IsAliased_t | isAliased, | ||
IsZeroed_t | isZeroed = IsNotZeroed |
||
) | [inline, static] |
Definition at line 439 of file CGValue.h.
References forAddr(), clang::CodeGen::LValue::getAddress(), clang::CodeGen::LValue::getAlignment(), clang::CodeGen::LValue::getQuals(), and isZeroed().
Referenced by clang::CodeGen::CodeGenFunction::EmitAggExprToLValue(), EmitAggMemberInitializer(), clang::CodeGen::CodeGenFunction::EmitAtomicInit(), EmitDeclInit(), clang::CodeGen::CodeGenFunction::EmitExprAsInit(), and clang::CodeGen::CodeGenFunction::GenerateObjCCtorDtorMethod().
llvm::Value* clang::CodeGen::AggValueSlot::getAddr | ( | ) | const [inline] |
Definition at line 473 of file CGValue.h.
Referenced by asRValue(), CheckAggExprForMemSetUse(), clang::CodeGen::CodeGenFunction::EmitAggExpr(), clang::CodeGen::CodeGenFunction::EmitAtomicLoad(), clang::CodeGen::CodeGenFunction::EmitCallArg(), clang::CodeGen::CodeGenFunction::EmitCXXBindTemporaryLValue(), clang::CodeGen::CodeGenFunction::EmitCXXConstructExpr(), clang::CodeGen::CodeGenFunction::EmitLambdaExpr(), clang::CodeGen::CodeGenFunction::EmitLambdaLValue(), and emitPseudoObjectExpr().
CharUnits clang::CodeGen::AggValueSlot::getAlignment | ( | ) | const [inline] |
Definition at line 481 of file CGValue.h.
References clang::CharUnits::fromQuantity().
Referenced by clang::CodeGen::CodeGenFunction::EmitLambdaExpr().
Qualifiers::ObjCLifetime clang::CodeGen::AggValueSlot::getObjCLifetime | ( | ) | const [inline] |
Definition at line 465 of file CGValue.h.
References clang::Qualifiers::getObjCLifetime().
Qualifiers clang::CodeGen::AggValueSlot::getQualifiers | ( | ) | const [inline] |
static AggValueSlot clang::CodeGen::AggValueSlot::ignored | ( | ) | [inline, static] |
ignored - Returns an aggregate value slot indicating that the aggregate value is being ignored.
Definition at line 407 of file CGValue.h.
References DoesNotNeedGCBarriers, forAddr(), IsNotAliased, and IsNotDestructed.
Referenced by clang::CodeGen::CodeGenFunction::EmitAnyExprToTemp(), clang::CodeGen::CodeGenFunction::EmitIgnoredExpr(), clang::CodeGen::CodeGenFunction::EmitOMPSimdDirective(), and clang::CodeGen::CodeGenFunction::EmitPseudoObjectLValue().
IsDestructed_t clang::CodeGen::AggValueSlot::isExternallyDestructed | ( | ) | const [inline] |
bool clang::CodeGen::AggValueSlot::isIgnored | ( | ) | const [inline] |
Definition at line 477 of file CGValue.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitAggExpr(), clang::CodeGen::CodeGenFunction::EmitAnyExpr(), clang::CodeGen::CodeGenFunction::EmitAtomicLoad(), and clang::CodeGen::CodeGenFunction::EmitCXXConstructExpr().
IsAliased_t clang::CodeGen::AggValueSlot::isPotentiallyAliased | ( | ) | const [inline] |
bool clang::CodeGen::AggValueSlot::isVolatile | ( | ) | const [inline] |
Definition at line 457 of file CGValue.h.
References clang::Qualifiers::hasVolatile().
Referenced by asRValue(), CheckAggExprForMemSetUse(), and clang::CodeGen::CodeGenFunction::EmitAtomicLoad().
IsZeroed_t clang::CodeGen::AggValueSlot::isZeroed | ( | ) | const [inline] |
Definition at line 495 of file CGValue.h.
Referenced by CheckAggExprForMemSetUse(), clang::CodeGen::CodeGenFunction::EmitCXXConstructExpr(), forAddr(), and forLValue().
NeedsGCBarriers_t clang::CodeGen::AggValueSlot::requiresGCollection | ( | ) | const [inline] |
void clang::CodeGen::AggValueSlot::setExternallyDestructed | ( | bool | destructed = true | ) | [inline] |
Definition at line 451 of file CGValue.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitCallArg(), and clang::CodeGen::CodeGenFunction::EmitCXXBindTemporaryLValue().
void clang::CodeGen::AggValueSlot::setVolatile | ( | bool | flag | ) | [inline] |
Definition at line 461 of file CGValue.h.
References clang::Qualifiers::setVolatile().
void clang::CodeGen::AggValueSlot::setZeroed | ( | bool | V = true | ) | [inline] |
Definition at line 494 of file CGValue.h.
Referenced by CheckAggExprForMemSetUse().