clang 20.0.0git
|
An aggregate value slot. More...
#include "/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/clang/lib/CodeGen/CGValue.h"
Public Types | |
enum | IsAliased_t { IsNotAliased , IsAliased } |
enum | IsDestructed_t { IsNotDestructed , IsDestructed } |
enum | IsZeroed_t { IsNotZeroed , IsZeroed } |
enum | Overlap_t { DoesNotOverlap , MayOverlap } |
enum | NeedsGCBarriers_t { DoesNotNeedGCBarriers , NeedsGCBarriers } |
enum | IsSanitizerChecked_t { IsNotSanitizerChecked , IsSanitizerChecked } |
Public Member Functions | |
IsDestructed_t | isExternallyDestructed () const |
void | setExternallyDestructed (bool destructed=true) |
Qualifiers | getQualifiers () const |
bool | isVolatile () const |
void | setVolatile (bool flag) |
Qualifiers::ObjCLifetime | getObjCLifetime () const |
NeedsGCBarriers_t | requiresGCollection () const |
llvm::Value * | getPointer (QualType PointeeTy, CodeGenFunction &CGF) const |
llvm::Value * | emitRawPointer (CodeGenFunction &CGF) const |
Address | getAddress () const |
bool | isIgnored () const |
CharUnits | getAlignment () const |
IsAliased_t | isPotentiallyAliased () const |
Overlap_t | mayOverlap () const |
bool | isSanitizerChecked () const |
RValue | asRValue () const |
void | setZeroed (bool V=true) |
IsZeroed_t | isZeroed () const |
CharUnits | getPreferredSize (ASTContext &Ctx, QualType Type) const |
Get the preferred size to use when storing a value to this slot. | |
Static Public Member Functions | |
static AggValueSlot | ignored () |
ignored - Returns an aggregate value slot indicating that the aggregate value is being ignored. | |
static AggValueSlot | forAddr (Address addr, Qualifiers quals, IsDestructed_t isDestructed, NeedsGCBarriers_t needsGC, IsAliased_t isAliased, Overlap_t mayOverlap, IsZeroed_t isZeroed=IsNotZeroed, IsSanitizerChecked_t isChecked=IsNotSanitizerChecked) |
forAddr - Make a slot for an aggregate value. | |
static AggValueSlot | forLValue (const LValue &LV, IsDestructed_t isDestructed, NeedsGCBarriers_t needsGC, IsAliased_t isAliased, Overlap_t mayOverlap, IsZeroed_t isZeroed=IsNotZeroed, IsSanitizerChecked_t isChecked=IsNotSanitizerChecked) |
|
inline |
Definition at line 666 of file CGValue.h.
References getAddress(), clang::CodeGen::RValue::getAggregate(), clang::CodeGen::RValue::getIgnored(), isIgnored(), and isVolatile().
Referenced by emitPseudoObjectExpr().
|
inline |
Definition at line 640 of file CGValue.h.
References clang::CodeGen::Address::emitRawPointer(), and clang::CodeGen::Address::isValid().
|
inlinestatic |
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 587 of file CGValue.h.
References clang::CodeGen::Address::isValid(), isZeroed(), mayOverlap(), and clang::CodeGen::Address::setKnownNonNull().
Referenced by clang::CodeGen::CodeGenFunction::CreateAggTemp(), createPlaceholderSlot(), EmitBaseInitializer(), forLValue(), ignored(), InitCatchParam(), and StoreAnyExprIntoOneUnit().
|
inlinestatic |
Definition at line 602 of file CGValue.h.
References forAddr(), clang::CodeGen::LValue::getAddress(), clang::CodeGen::LValue::getQuals(), isZeroed(), and mayOverlap().
Referenced by EmitDeclInit().
|
inline |
Definition at line 644 of file CGValue.h.
Referenced by asRValue(), CheckAggExprForMemSetUse(), and emitPseudoObjectExpr().
|
inline |
Definition at line 650 of file CGValue.h.
References clang::CodeGen::Address::getAlignment().
|
inline |
Definition at line 630 of file CGValue.h.
References clang::Qualifiers::getObjCLifetime().
llvm::Value * clang::CodeGen::AggValueSlot::getPointer | ( | QualType | PointeeTy, |
CodeGenFunction & | CGF | ||
) | const |
|
inline |
Get the preferred size to use when storing a value to this slot.
This is the type size unless that might overlap another object, in which case it's the dsize.
Definition at line 682 of file CGValue.h.
References clang::ASTContext::getTypeInfoDataSizeInChars(), clang::ASTContext::getTypeSizeInChars(), mayOverlap(), and clang::TypeInfoChars::Width.
Referenced by CheckAggExprForMemSetUse().
|
inline |
|
inlinestatic |
ignored - Returns an aggregate value slot indicating that the aggregate value is being ignored.
Definition at line 572 of file CGValue.h.
References DoesNotNeedGCBarriers, DoesNotOverlap, forAddr(), clang::CodeGen::Address::invalid(), IsNotAliased, and IsNotDestructed.
Referenced by emitOMPSimdDirective(), and emitSimdlenSafelenClause().
|
inline |
|
inline |
Definition at line 648 of file CGValue.h.
References clang::CodeGen::Address::isValid().
Referenced by asRValue().
|
inline |
|
inline |
|
inline |
Definition at line 619 of file CGValue.h.
References clang::Qualifiers::hasVolatile().
Referenced by asRValue(), and CheckAggExprForMemSetUse().
|
inline |
Definition at line 675 of file CGValue.h.
Referenced by CheckAggExprForMemSetUse(), forAddr(), and forLValue().
|
inline |
Definition at line 658 of file CGValue.h.
Referenced by forAddr(), forLValue(), and getPreferredSize().
|
inline |
|
inline |
Definition at line 623 of file CGValue.h.
References clang::Qualifiers::addVolatile(), and clang::Qualifiers::removeVolatile().