clang  8.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  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::ValuegetPointer () 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. More...
 

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, Overlap_t mayOverlap, IsZeroed_t isZeroed=IsNotZeroed, IsSanitizerChecked_t isChecked=IsNotSanitizerChecked)
 forAddr - Make a slot for an aggregate value. More...
 
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 437 of file CGValue.h.

Member Enumeration Documentation

◆ IsAliased_t

Enumerator
IsNotAliased 
IsAliased 

Definition at line 490 of file CGValue.h.

◆ IsDestructed_t

Enumerator
IsNotDestructed 
IsDestructed 

Definition at line 491 of file CGValue.h.

◆ IsSanitizerChecked_t

Enumerator
IsNotSanitizerChecked 
IsSanitizerChecked 

Definition at line 495 of file CGValue.h.

◆ IsZeroed_t

Enumerator
IsNotZeroed 
IsZeroed 

Definition at line 492 of file CGValue.h.

◆ NeedsGCBarriers_t

Enumerator
DoesNotNeedGCBarriers 
NeedsGCBarriers 

Definition at line 494 of file CGValue.h.

◆ Overlap_t

Enumerator
DoesNotOverlap 
MayOverlap 

Definition at line 493 of file CGValue.h.

Member Function Documentation

◆ asRValue()

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

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

Referenced by createPlaceholderSlot(), clang::CodeGen::CodeGenFunction::EmitAnyExprToMem(), EmitBaseInitializer(), clang::CodeGen::CodeGenFunction::EmitDelegatingCXXConstructorCall(), clang::CodeGen::CodeGenFunction::EmitMaterializeTemporaryExpr(), findPeephole(), clang::CodeGen::CodeGenFunction::GenerateObjCAtomicGetterCopyHelperFunction(), InitCatchParam(), isSimpleZero(), 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

◆ getAlignment()

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

Definition at line 588 of file CGValue.h.

◆ getObjCLifetime()

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

Definition at line 568 of file CGValue.h.

References clang::Qualifiers::getObjCLifetime().

◆ getPointer()

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

Definition at line 576 of file CGValue.h.

◆ 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 620 of file CGValue.h.

References clang::ASTContext::getTypeInfoDataSizeInChars(), and clang::ASTContext::getTypeSizeInChars().

Referenced by CheckAggExprForMemSetUse().

◆ getQualifiers()

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

Definition at line 558 of file CGValue.h.

Referenced by findPeephole().

◆ ignored()

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

◆ isExternallyDestructed()

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

Definition at line 551 of file CGValue.h.

Referenced by findPeephole(), and isBlockVarRef().

◆ isIgnored()

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

◆ isPotentiallyAliased()

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

Definition at line 592 of file CGValue.h.

Referenced by findPeephole(), and isTrivialFiller().

◆ isSanitizerChecked()

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

Definition at line 600 of file CGValue.h.

Referenced by clang::CodeGen::CodeGenFunction::EmitCXXConstructExpr().

◆ isVolatile()

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

Definition at line 560 of file CGValue.h.

References clang::Qualifiers::hasVolatile().

Referenced by CheckAggExprForMemSetUse(), findPeephole(), and isBlockVarRef().

◆ isZeroed()

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

◆ mayOverlap()

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

Definition at line 596 of file CGValue.h.

Referenced by clang::CodeGen::CodeGenFunction::EmitCXXConstructExpr().

◆ requiresGCollection()

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

Definition at line 572 of file CGValue.h.

Referenced by findPeephole().

◆ setExternallyDestructed()

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

◆ setVolatile()

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

Definition at line 564 of file CGValue.h.

References clang::Qualifiers::setVolatile().

Referenced by isBlockVarRef().

◆ setZeroed()

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

Definition at line 612 of file CGValue.h.

Referenced by CheckAggExprForMemSetUse().


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