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

An aggregate value slot. More...

#include <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 441 of file CGValue.h.

Member Enumeration Documentation

Enumerator
IsNotAliased 
IsAliased 

Definition at line 480 of file CGValue.h.

Enumerator
IsNotDestructed 
IsDestructed 

Definition at line 481 of file CGValue.h.

Enumerator
IsNotZeroed 
IsZeroed 

Definition at line 482 of file CGValue.h.

Enumerator
DoesNotNeedGCBarriers 
NeedsGCBarriers 

Definition at line 483 of file CGValue.h.

Member Function Documentation

RValue clang::CodeGen::AggValueSlot::asRValue ( ) const
inline
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 502 of file CGValue.h.

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

Referenced by clang::CodeGen::CodeGenFunction::CreateAggTemp(), createPlaceholderSlot(), clang::CodeGen::CodeGenFunction::EmitAnyExprToMem(), EmitBaseInitializer(), clang::CodeGen::CodeGenFunction::EmitBlockLiteral(), clang::CodeGen::CodeGenFunction::EmitDelegatingCXXConstructorCall(), clang::CodeGen::CodeGenFunction::EmitMaterializeTemporaryExpr(), clang::CodeGen::CodeGenFunction::EmitReturnStmt(), forLValue(), clang::CodeGen::CodeGenFunction::GenerateObjCAtomicGetterCopyHelperFunction(), ignored(), InitCatchParam(), and StoreAnyExprIntoOneUnit().

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

Definition at line 570 of file CGValue.h.

References clang::CharUnits::fromQuantity().

Referenced by getAddress().

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

Definition at line 550 of file CGValue.h.

References clang::Qualifiers::getObjCLifetime().

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

Definition at line 558 of file CGValue.h.

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

Definition at line 540 of file CGValue.h.

static AggValueSlot clang::CodeGen::AggValueSlot::ignored ( )
inlinestatic

ignored - Returns an aggregate value slot indicating that the aggregate value is being ignored.

Definition at line 487 of file CGValue.h.

References DoesNotNeedGCBarriers, forAddr(), clang::CodeGen::Address::invalid(), IsNotAliased, and IsNotDestructed.

Referenced by clang::CodeGen::CodeGenFunction::EmitAnyExprToTemp(), clang::CodeGen::CodeGenFunction::EmitIgnoredExpr(), and emitSimdlenSafelenClause().

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

Definition at line 533 of file CGValue.h.

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

Definition at line 574 of file CGValue.h.

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

Definition at line 542 of file CGValue.h.

References clang::Qualifiers::hasVolatile().

Referenced by asRValue(), and CheckAggExprForMemSetUse().

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

Definition at line 554 of file CGValue.h.

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

Definition at line 546 of file CGValue.h.

References clang::Qualifiers::setVolatile().

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

Definition at line 586 of file CGValue.h.

Referenced by CheckAggExprForMemSetUse().


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