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

An aggregate value slot. More...

#include "/opt/doxygen-docs/src/llvm/tools/clang/lib/CodeGen/CGValue.h"

Public Types

enum  IsAliased_t { IsNotAliased, IsAliased }
 
enum  IsDestructed_t { IsNotDestructed, IsDestructed }
 
enum  IsZeroed_t { IsNotZeroed, IsZeroed }
 
enum  NeedsGCBarriers_t { DoesNotNeedGCBarriers, NeedsGCBarriers }
 

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::ValuegetPointer () const
 
Address getAddress () const
 
bool isIgnored () const
 
CharUnits getAlignment () const
 
IsAliased_t isPotentiallyAliased () const
 
RValue asRValue () const
 
void setZeroed (bool V=true)
 
IsZeroed_t isZeroed () const
 

Static Public Member Functions

static AggValueSlot ignored ()
 ignored - Returns an aggregate value slot indicating that the aggregate value is being ignored. More...
 
static AggValueSlot forAddr (Address addr, Qualifiers quals, IsDestructed_t isDestructed, NeedsGCBarriers_t needsGC, IsAliased_t isAliased, IsZeroed_t isZeroed=IsNotZeroed)
 forAddr - Make a slot for an aggregate value. More...
 
static AggValueSlot forLValue (const LValue &LV, IsDestructed_t isDestructed, NeedsGCBarriers_t needsGC, IsAliased_t isAliased, IsZeroed_t isZeroed=IsNotZeroed)
 

Detailed Description

An aggregate value slot.

Definition at line 440 of file CGValue.h.

Member Enumeration Documentation

◆ IsAliased_t

Enumerator
IsNotAliased 
IsAliased 

Definition at line 479 of file CGValue.h.

◆ IsDestructed_t

Enumerator
IsNotDestructed 
IsDestructed 

Definition at line 480 of file CGValue.h.

◆ IsZeroed_t

Enumerator
IsNotZeroed 
IsZeroed 

Definition at line 481 of file CGValue.h.

◆ NeedsGCBarriers_t

Enumerator
DoesNotNeedGCBarriers 
NeedsGCBarriers 

Definition at line 482 of file CGValue.h.

Member Function Documentation

◆ asRValue()

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

Definition at line 577 of file CGValue.h.

Referenced by isBlockVarRef().

◆ forAddr()

static AggValueSlot clang::CodeGen::AggValueSlot::forAddr ( Address  addr,
Qualifiers  quals,
IsDestructed_t  isDestructed,
NeedsGCBarriers_t  needsGC,
IsAliased_t  isAliased,
IsZeroed_t  isZeroed = IsNotZeroed 
)
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 501 of file CGValue.h.

References clang::CodeGen::Address::getAlignment(), clang::CodeGen::Address::getPointer(), clang::CharUnits::getQuantity(), and clang::CodeGen::Address::isValid().

Referenced by createPlaceholderSlot(), EmitBaseInitializer(), clang::CodeGen::CodeGenFunction::EmitDelegatingCXXConstructorCall(), clang::CodeGen::CodeGenFunction::GenerateObjCAtomicGetterCopyHelperFunction(), InitCatchParam(), and StoreAnyExprIntoOneUnit().

◆ forLValue()

static AggValueSlot clang::CodeGen::AggValueSlot::forLValue ( const LValue LV,
IsDestructed_t  isDestructed,
NeedsGCBarriers_t  needsGC,
IsAliased_t  isAliased,
IsZeroed_t  isZeroed = IsNotZeroed 
)
inlinestatic

◆ getAddress()

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

◆ getAlignment()

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

Definition at line 569 of file CGValue.h.

◆ getObjCLifetime()

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

Definition at line 549 of file CGValue.h.

References clang::Qualifiers::getObjCLifetime().

◆ getPointer()

llvm::Value* clang::CodeGen::AggValueSlot::getPointer ( ) const
inline

Definition at line 557 of file CGValue.h.

◆ getQualifiers()

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

Definition at line 539 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 486 of file CGValue.h.

Referenced by clang::CodeGen::CodeGenFunction::EmitAtomicLoad(), EmitAtomicUpdateValue(), and emitSimdlenSafelenClause().

◆ isExternallyDestructed()

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

Definition at line 532 of file CGValue.h.

Referenced by isBlockVarRef().

◆ isIgnored()

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

◆ isPotentiallyAliased()

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

Definition at line 573 of file CGValue.h.

Referenced by isTrivialFiller().

◆ isVolatile()

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

Definition at line 541 of file CGValue.h.

References clang::Qualifiers::hasVolatile().

Referenced by CheckAggExprForMemSetUse(), and isBlockVarRef().

◆ isZeroed()

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

Definition at line 586 of file CGValue.h.

Referenced by CheckAggExprForMemSetUse(), isSimpleZero(), and isTrivialFiller().

◆ requiresGCollection()

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

Definition at line 553 of file CGValue.h.

◆ setExternallyDestructed()

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

Definition at line 535 of file CGValue.h.

Referenced by isBlockVarRef().

◆ setVolatile()

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

Definition at line 545 of file CGValue.h.

References clang::Qualifiers::setVolatile().

Referenced by isBlockVarRef().

◆ setZeroed()

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

Definition at line 585 of file CGValue.h.

Referenced by CheckAggExprForMemSetUse().


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