| clang 22.0.0git
    | 
An aggregate value slot. More...
#include "/work/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 clang::CodeGen::CodeGenFunction::EmitAnyExpr(), clang::CodeGen::CodeGenFunction::EmitCallArg(), clang::CodeGen::CodeGenFunction::EmitLoadOfAnyValue(), and emitPseudoObjectExpr().
| 
 | inline | 
| 
 | 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 IsNotSanitizerChecked, IsNotZeroed, clang::CodeGen::Address::isValid(), isZeroed(), mayOverlap(), and clang::CodeGen::Address::setKnownNonNull().
Referenced by clang::CodeGen::CodeGenFunction::CreateAggTemp(), createPlaceholderSlot(), clang::CodeGen::CodeGenFunction::EmitAnyExprToMem(), EmitBaseInitializer(), clang::CodeGen::CodeGenFunction::EmitCXXAggrConstructorCall(), clang::CodeGen::CodeGenFunction::EmitDelegatingCXXConstructorCall(), clang::CodeGen::CodeGenFunction::EmitMaterializeTemporaryExpr(), clang::CodeGen::CodeGenFunction::EmitNewArrayInitializer(), clang::CodeGen::CGHLSLRuntime::emitResourceArraySubscriptExpr(), clang::CodeGen::CodeGenFunction::EmitReturnStmt(), forLValue(), clang::CodeGen::CodeGenFunction::GenerateObjCAtomicGetterCopyHelperFunction(), ignored(), InitCatchParam(), and StoreAnyExprIntoOneUnit().
| 
 | inlinestatic | 
Definition at line 602 of file CGValue.h.
References forAddr(), clang::CodeGen::LValue::getAddress(), clang::CodeGen::LValue::getQuals(), IsNotSanitizerChecked, IsNotZeroed, isZeroed(), and mayOverlap().
Referenced by clang::CodeGen::CodeGenFunction::EmitAggExprToLValue(), clang::CodeGen::CodeGenFunction::EmitAtomicInit(), EmitDeclInit(), clang::CodeGen::CodeGenFunction::EmitExprAsInit(), clang::CodeGen::CodeGenFunction::EmitInitializationToLValue(), clang::CodeGen::CodeGenFunction::EmitInitializerForField(), and clang::CodeGen::CodeGenFunction::GenerateObjCCtorDtorMethod().
| 
 | inline | 
Definition at line 644 of file CGValue.h.
Referenced by asRValue(), CheckAggExprForMemSetUse(), clang::CodeGen::CodeGenFunction::EmitAggExpr(), clang::CodeGen::CodeGenFunction::EmitARMMVEBuiltinExpr(), clang::CodeGen::CodeGenFunction::EmitCallArg(), clang::CodeGen::CodeGenFunction::EmitCXXBindTemporaryLValue(), clang::CodeGen::CodeGenFunction::EmitCXXConstructExpr(), clang::CodeGen::CodeGenFunction::EmitCXXConstructLValue(), clang::CodeGen::CodeGenFunction::EmitCXXConstructorCall(), and emitPseudoObjectExpr().
| 
 | inline | 
| 
 | inline | 
| 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(), clang::CodeGen::Type, and clang::TypeInfoChars::Width.
Referenced by CheckAggExprForMemSetUse().
| 
 | inline | 
Definition at line 617 of file CGValue.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitCXXConstructorCall().
| 
 | 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 clang::CodeGen::CodeGenFunction::EmitAnyExprToTemp(), clang::CodeGen::CodeGenFunction::EmitCoawaitLValue(), clang::CodeGen::CodeGenFunction::EmitCoyieldLValue(), clang::CodeGen::CodeGenFunction::EmitIgnoredExpr(), emitOMPSimdDirective(), clang::CodeGen::CodeGenFunction::EmitPseudoObjectLValue(), and emitSimdlenSafelenClause().
| 
 | inline | 
| 
 | inline | 
Definition at line 648 of file CGValue.h.
Referenced by asRValue(), clang::CodeGen::CodeGenFunction::EmitAggExpr(), clang::CodeGen::CodeGenFunction::EmitAggFinalDestCopy(), clang::CodeGen::CodeGenFunction::EmitAnyExpr(), and clang::CodeGen::CodeGenFunction::EmitCXXConstructExpr().
| 
 | inline | 
| 
 | inline | 
Definition at line 662 of file CGValue.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitCXXConstructExpr(), and clang::CodeGen::CodeGenFunction::EmitCXXConstructorCall().
| 
 | inline | 
Definition at line 619 of file CGValue.h.
Referenced by asRValue(), and CheckAggExprForMemSetUse().
| 
 | inline | 
Definition at line 675 of file CGValue.h.
Referenced by CheckAggExprForMemSetUse(), clang::CodeGen::CodeGenFunction::EmitCXXConstructExpr(), forAddr(), and forLValue().
| 
 | inline | 
Definition at line 658 of file CGValue.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitCXXConstructorCall(), forAddr(), forLValue(), and getPreferredSize().
| 
 | inline | 
Definition at line 613 of file CGValue.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitCallArg(), and clang::CodeGen::CodeGenFunction::EmitCXXBindTemporaryLValue().
| 
 | inline |