clang  5.0.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 "/usr/local/google/work/llvm-www-releases/5.0.0/docsbuild/llvm.src/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 456 of file CGValue.h.

Member Enumeration Documentation

Enumerator
IsNotAliased 
IsAliased 

Definition at line 495 of file CGValue.h.

Enumerator
IsNotDestructed 
IsDestructed 

Definition at line 496 of file CGValue.h.

Enumerator
IsNotZeroed 
IsZeroed 

Definition at line 497 of file CGValue.h.

Enumerator
DoesNotNeedGCBarriers 
NeedsGCBarriers 

Definition at line 498 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 517 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(), clang::CodeGen::CodeGenFunction::EmitAnyExprToMem(), EmitBaseInitializer(), clang::CodeGen::CodeGenFunction::EmitDelegatingCXXConstructorCall(), clang::CodeGen::CodeGenFunction::EmitMaterializeTemporaryExpr(), clang::CodeGen::CodeGenFunction::EmitNewArrayInitializer(), 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 585 of file CGValue.h.

References clang::CharUnits::fromQuantity().

Referenced by getAddress().

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

Definition at line 565 of file CGValue.h.

References clang::Qualifiers::getObjCLifetime().

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

Definition at line 573 of file CGValue.h.

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

Definition at line 555 of file CGValue.h.

static AggValueSlot clang::CodeGen::AggValueSlot::ignored ( )
inlinestatic
IsDestructed_t clang::CodeGen::AggValueSlot::isExternallyDestructed ( ) const
inline

Definition at line 548 of file CGValue.h.

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

Definition at line 589 of file CGValue.h.

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

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

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

Definition at line 561 of file CGValue.h.

References clang::Qualifiers::setVolatile().

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

Definition at line 601 of file CGValue.h.

Referenced by CheckAggExprForMemSetUse().


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