clang 20.0.0git
Public Types | Public Member Functions | Static Public Member Functions | List of all members
clang::CodeGen::AggValueSlot Class Reference

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)
 

Detailed Description

An aggregate value slot.

Definition at line 504 of file CGValue.h.

Member Enumeration Documentation

◆ IsAliased_t

Enumerator
IsNotAliased 
IsAliased 

Definition at line 563 of file CGValue.h.

◆ IsDestructed_t

Enumerator
IsNotDestructed 
IsDestructed 

Definition at line 564 of file CGValue.h.

◆ IsSanitizerChecked_t

Enumerator
IsNotSanitizerChecked 
IsSanitizerChecked 

Definition at line 568 of file CGValue.h.

◆ IsZeroed_t

Enumerator
IsNotZeroed 
IsZeroed 

Definition at line 565 of file CGValue.h.

◆ NeedsGCBarriers_t

Enumerator
DoesNotNeedGCBarriers 
NeedsGCBarriers 

Definition at line 567 of file CGValue.h.

◆ Overlap_t

Enumerator
DoesNotOverlap 
MayOverlap 

Definition at line 566 of file CGValue.h.

Member Function Documentation

◆ asRValue()

RValue clang::CodeGen::AggValueSlot::asRValue ( ) const
inline

◆ emitRawPointer()

llvm::Value * clang::CodeGen::AggValueSlot::emitRawPointer ( CodeGenFunction CGF) const
inline

◆ forAddr()

static AggValueSlot clang::CodeGen::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 
)
inlinestatic

forAddr - Make a slot for an aggregate value.

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

◆ forLValue()

static AggValueSlot clang::CodeGen::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 
)
inlinestatic

◆ getAddress()

Address clang::CodeGen::AggValueSlot::getAddress ( ) const
inline

Definition at line 644 of file CGValue.h.

Referenced by asRValue(), CheckAggExprForMemSetUse(), and emitPseudoObjectExpr().

◆ getAlignment()

CharUnits clang::CodeGen::AggValueSlot::getAlignment ( ) const
inline

Definition at line 650 of file CGValue.h.

References clang::CodeGen::Address::getAlignment().

◆ getObjCLifetime()

Qualifiers::ObjCLifetime clang::CodeGen::AggValueSlot::getObjCLifetime ( ) const
inline

Definition at line 630 of file CGValue.h.

References clang::Qualifiers::getObjCLifetime().

◆ getPointer()

llvm::Value * clang::CodeGen::AggValueSlot::getPointer ( QualType  PointeeTy,
CodeGenFunction CGF 
) const

◆ getPreferredSize()

CharUnits clang::CodeGen::AggValueSlot::getPreferredSize ( ASTContext Ctx,
QualType  Type 
) 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().

◆ getQualifiers()

Qualifiers clang::CodeGen::AggValueSlot::getQualifiers ( ) const
inline

Definition at line 617 of file CGValue.h.

◆ ignored()

static AggValueSlot clang::CodeGen::AggValueSlot::ignored ( )
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().

◆ isExternallyDestructed()

IsDestructed_t clang::CodeGen::AggValueSlot::isExternallyDestructed ( ) const
inline

Definition at line 610 of file CGValue.h.

◆ isIgnored()

bool clang::CodeGen::AggValueSlot::isIgnored ( ) const
inline

Definition at line 648 of file CGValue.h.

References clang::CodeGen::Address::isValid().

Referenced by asRValue().

◆ isPotentiallyAliased()

IsAliased_t clang::CodeGen::AggValueSlot::isPotentiallyAliased ( ) const
inline

Definition at line 654 of file CGValue.h.

◆ isSanitizerChecked()

bool clang::CodeGen::AggValueSlot::isSanitizerChecked ( ) const
inline

Definition at line 662 of file CGValue.h.

◆ isVolatile()

bool clang::CodeGen::AggValueSlot::isVolatile ( ) const
inline

Definition at line 619 of file CGValue.h.

References clang::Qualifiers::hasVolatile().

Referenced by asRValue(), and CheckAggExprForMemSetUse().

◆ isZeroed()

IsZeroed_t clang::CodeGen::AggValueSlot::isZeroed ( ) const
inline

Definition at line 675 of file CGValue.h.

Referenced by CheckAggExprForMemSetUse(), forAddr(), and forLValue().

◆ mayOverlap()

Overlap_t clang::CodeGen::AggValueSlot::mayOverlap ( ) const
inline

Definition at line 658 of file CGValue.h.

Referenced by forAddr(), forLValue(), and getPreferredSize().

◆ requiresGCollection()

NeedsGCBarriers_t clang::CodeGen::AggValueSlot::requiresGCollection ( ) const
inline

Definition at line 634 of file CGValue.h.

◆ setExternallyDestructed()

void clang::CodeGen::AggValueSlot::setExternallyDestructed ( bool  destructed = true)
inline

Definition at line 613 of file CGValue.h.

◆ setVolatile()

void clang::CodeGen::AggValueSlot::setVolatile ( bool  flag)
inline

◆ setZeroed()

void clang::CodeGen::AggValueSlot::setZeroed ( bool  V = true)
inline

Definition at line 674 of file CGValue.h.

References V.

Referenced by CheckAggExprForMemSetUse().


The documentation for this class was generated from the following file: