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 mayOverlap().
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().