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

LValue - This represents an lvalue references. More...

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

Collaboration diagram for clang::CodeGen::LValue:
Collaboration graph
[legend]

Public Member Functions

bool isSimple () const
 
bool isVectorElt () const
 
bool isBitField () const
 
bool isExtVectorElt () const
 
bool isGlobalReg () const
 
bool isVolatileQualified () const
 
bool isRestrictQualified () const
 
unsigned getVRQualifiers () const
 
QualType getType () const
 
Qualifiers::ObjCLifetime getObjCLifetime () const
 
bool isObjCIvar () const
 
void setObjCIvar (bool Value)
 
bool isObjCArray () const
 
void setObjCArray (bool Value)
 
bool isNonGC () const
 
void setNonGC (bool Value)
 
bool isGlobalObjCRef () const
 
void setGlobalObjCRef (bool Value)
 
bool isThreadLocalRef () const
 
void setThreadLocalRef (bool Value)
 
ARCPreciseLifetime_t isARCPreciseLifetime () const
 
void setARCPreciseLifetime (ARCPreciseLifetime_t value)
 
bool isNontemporal () const
 
void setNontemporal (bool Value)
 
bool isObjCWeak () const
 
bool isObjCStrong () const
 
bool isVolatile () const
 
ExprgetBaseIvarExp () const
 
void setBaseIvarExp (Expr *V)
 
TBAAAccessInfo getTBAAInfo () const
 
void setTBAAInfo (TBAAAccessInfo Info)
 
const QualifiersgetQuals () const
 
QualifiersgetQuals ()
 
LangAS getAddressSpace () const
 
CharUnits getAlignment () const
 
void setAlignment (CharUnits A)
 
LValueBaseInfo getBaseInfo () const
 
void setBaseInfo (LValueBaseInfo Info)
 
llvm::ValuegetPointer () const
 
Address getAddress () const
 
void setAddress (Address address)
 
Address getVectorAddress () const
 
llvm::ValuegetVectorPointer () const
 
llvm::ValuegetVectorIdx () const
 
Address getExtVectorAddress () const
 
llvm::ValuegetExtVectorPointer () const
 
llvm::Constant * getExtVectorElts () const
 
Address getBitFieldAddress () const
 
llvm::ValuegetBitFieldPointer () const
 
const CGBitFieldInfogetBitFieldInfo () const
 
llvm::ValuegetGlobalReg () const
 
RValue asAggregateRValue () const
 

Static Public Member Functions

static LValue MakeAddr (Address address, QualType type, ASTContext &Context, LValueBaseInfo BaseInfo, TBAAAccessInfo TBAAInfo)
 
static LValue MakeVectorElt (Address vecAddress, llvm::Value *Idx, QualType type, LValueBaseInfo BaseInfo, TBAAAccessInfo TBAAInfo)
 
static LValue MakeExtVectorElt (Address vecAddress, llvm::Constant *Elts, QualType type, LValueBaseInfo BaseInfo, TBAAAccessInfo TBAAInfo)
 
static LValue MakeBitfield (Address Addr, const CGBitFieldInfo &Info, QualType type, LValueBaseInfo BaseInfo, TBAAAccessInfo TBAAInfo)
 Create a new object to represent a bit-field access. More...
 
static LValue MakeGlobalReg (Address Reg, QualType type)
 

Detailed Description

LValue - This represents an lvalue references.

Because C/C++ allow bitfields, this is not a simple LLVM pointer, it may be a pointer plus a bitrange.

Definition at line 172 of file CGValue.h.

Member Function Documentation

◆ asAggregateRValue()

RValue clang::CodeGen::LValue::asAggregateRValue ( ) const
inline

◆ getAddress()

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

Definition at line 329 of file CGValue.h.

Referenced by AddVariableConstraints(), drillIntoBlockVariable(), clang::CodeGen::CodeGenFunction::EmitARCStoreStrong(), clang::CodeGen::CodeGenFunction::EmitAtomicCompareExchange(), clang::CodeGen::CodeGenFunction::EmitAtomicLoad(), clang::CodeGen::CodeGenFunction::EmitAtomicStore(), emitCombinerOrInitializer(), clang::CodeGen::CodeGenFunction::EmitConstructorBody(), clang::CodeGen::CodeGenFunction::EmitCXXMemberOrOperatorMemberCallExpr(), clang::CodeGen::ReductionCodeGen::emitInitialization(), clang::CodeGen::CodeGenFunction::EmitInitializerForField(), clang::CodeGen::CodeGenFunction::EmitLoadOfLValue(), clang::CodeGen::CodeGenFunction::EmitLoadOfScalar(), clang::CodeGen::CodeGenFunction::EmitLValueForField(), clang::CodeGen::CodeGenFunction::EmitLValueForFieldInitialization(), EmitMemberInitializer(), emitOMPArraySectionBase(), clang::CodeGen::CodeGenFunction::EmitOMPFlushDirective(), clang::CodeGen::CodeGenFunction::EmitOMPReductionClauseInit(), clang::CodeGen::CodeGenFunction::EmitOMPWorksharingLoop(), clang::CodeGen::CodeGenFunction::EmitParmDecl(), emitPrivatesInit(), emitProxyTaskFunction(), emitReduceFiniFunction(), clang::CodeGen::CodeGenFunction::EmitScalarInit(), clang::CodeGen::CodeGenFunction::EmitStoreOfScalar(), clang::CodeGen::CodeGenFunction::EmitStoreThroughLValue(), clang::CodeGen::emitTaskLoopCall(), emitWriteback(), emitWritebackArg(), findPeephole(), forConstantArrayExpansion(), clang::CodeGen::AggValueSlot::forLValue(), clang::CodeGen::CodeGenFunction::generateObjCGetterBody(), clang::CodeGen::CodeGenFunction::GenerateObjCSetter(), loadToBegin(), rewriteInputConstraintReferences(), clang::CodeGen::CodeGenFunction::StartFunction(), tryEmitARCCopyWeakInit(), and tryEmitARCRetainLoadOfScalar().

◆ getAddressSpace()

LangAS clang::CodeGen::LValue::getAddressSpace ( ) const
inline

Definition at line 316 of file CGValue.h.

References clang::Qualifiers::getAddressSpace().

◆ getAlignment()

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

◆ getBaseInfo()

LValueBaseInfo clang::CodeGen::LValue::getBaseInfo ( ) const
inline

◆ getBaseIvarExp()

Expr* clang::CodeGen::LValue::getBaseIvarExp ( ) const
inline

Definition at line 307 of file CGValue.h.

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

◆ getBitFieldAddress()

Address clang::CodeGen::LValue::getBitFieldAddress ( ) const
inline

◆ getBitFieldInfo()

const CGBitFieldInfo& clang::CodeGen::LValue::getBitFieldInfo ( ) const
inline

◆ getBitFieldPointer()

llvm::Value* clang::CodeGen::LValue::getBitFieldPointer ( ) const
inline

Definition at line 360 of file CGValue.h.

◆ getExtVectorAddress()

Address clang::CodeGen::LValue::getExtVectorAddress ( ) const
inline

◆ getExtVectorElts()

llvm::Constant* clang::CodeGen::LValue::getExtVectorElts ( ) const
inline

◆ getExtVectorPointer()

llvm::Value* clang::CodeGen::LValue::getExtVectorPointer ( ) const
inline

Definition at line 347 of file CGValue.h.

◆ getGlobalReg()

llvm::Value* clang::CodeGen::LValue::getGlobalReg ( ) const
inline

◆ getObjCLifetime()

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

◆ getPointer()

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

◆ getQuals() [1/2]

const Qualifiers& clang::CodeGen::LValue::getQuals ( ) const
inline

◆ getQuals() [2/2]

Qualifiers& clang::CodeGen::LValue::getQuals ( )
inline

Definition at line 314 of file CGValue.h.

◆ getTBAAInfo()

TBAAAccessInfo clang::CodeGen::LValue::getTBAAInfo ( ) const
inline

◆ getType()

QualType clang::CodeGen::LValue::getType ( ) const
inline

◆ getVectorAddress()

Address clang::CodeGen::LValue::getVectorAddress ( ) const
inline

◆ getVectorIdx()

llvm::Value* clang::CodeGen::LValue::getVectorIdx ( ) const
inline

◆ getVectorPointer()

llvm::Value* clang::CodeGen::LValue::getVectorPointer ( ) const
inline

Definition at line 340 of file CGValue.h.

◆ getVRQualifiers()

unsigned clang::CodeGen::LValue::getVRQualifiers ( ) const
inline

◆ isARCPreciseLifetime()

ARCPreciseLifetime_t clang::CodeGen::LValue::isARCPreciseLifetime ( ) const
inline

◆ isBitField()

bool clang::CodeGen::LValue::isBitField ( ) const
inline

◆ isExtVectorElt()

bool clang::CodeGen::LValue::isExtVectorElt ( ) const
inline

◆ isGlobalObjCRef()

bool clang::CodeGen::LValue::isGlobalObjCRef ( ) const
inline

Definition at line 281 of file CGValue.h.

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

◆ isGlobalReg()

bool clang::CodeGen::LValue::isGlobalReg ( ) const
inline

◆ isNonGC()

bool clang::CodeGen::LValue::isNonGC ( ) const
inline

Definition at line 278 of file CGValue.h.

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

◆ isNontemporal()

bool clang::CodeGen::LValue::isNontemporal ( ) const
inline

◆ isObjCArray()

bool clang::CodeGen::LValue::isObjCArray ( ) const
inline

Definition at line 275 of file CGValue.h.

◆ isObjCIvar()

bool clang::CodeGen::LValue::isObjCIvar ( ) const
inline

Definition at line 272 of file CGValue.h.

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

◆ isObjCStrong()

bool clang::CodeGen::LValue::isObjCStrong ( ) const
inline

◆ isObjCWeak()

bool clang::CodeGen::LValue::isObjCWeak ( ) const
inline

◆ isRestrictQualified()

bool clang::CodeGen::LValue::isRestrictQualified ( ) const
inline

Definition at line 261 of file CGValue.h.

References clang::Qualifiers::hasRestrict().

◆ isSimple()

bool clang::CodeGen::LValue::isSimple ( ) const
inline

◆ isThreadLocalRef()

bool clang::CodeGen::LValue::isThreadLocalRef ( ) const
inline

Definition at line 284 of file CGValue.h.

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

◆ isVectorElt()

bool clang::CodeGen::LValue::isVectorElt ( ) const
inline

◆ isVolatile()

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

◆ isVolatileQualified()

bool clang::CodeGen::LValue::isVolatileQualified ( ) const
inline

◆ MakeAddr()

static LValue clang::CodeGen::LValue::MakeAddr ( Address  address,
QualType  type,
ASTContext Context,
LValueBaseInfo  BaseInfo,
TBAAAccessInfo  TBAAInfo 
)
inlinestatic

◆ MakeBitfield()

static LValue clang::CodeGen::LValue::MakeBitfield ( Address  Addr,
const CGBitFieldInfo Info,
QualType  type,
LValueBaseInfo  BaseInfo,
TBAAAccessInfo  TBAAInfo 
)
inlinestatic

Create a new object to represent a bit-field access.

Parameters
Addr- The base address of the bit-field sequence this bit-field refers to.
Info- The information describing how to perform the bit-field access.

Definition at line 412 of file CGValue.h.

References BitFieldInfo, clang::CodeGen::Address::getAlignment(), clang::CodeGen::Address::getPointer(), and clang::QualType::getQualifiers().

Referenced by EmitAtomicUpdateValue(), clang::CodeGen::CodeGenFunction::EmitLValueForField(), and clang::CodeGen::CGObjCRuntime::EmitValueForIvarAtOffset().

◆ MakeExtVectorElt()

static LValue clang::CodeGen::LValue::MakeExtVectorElt ( Address  vecAddress,
llvm::Constant *  Elts,
QualType  type,
LValueBaseInfo  BaseInfo,
TBAAAccessInfo  TBAAInfo 
)
inlinestatic

◆ MakeGlobalReg()

static LValue clang::CodeGen::LValue::MakeGlobalReg ( Address  Reg,
QualType  type 
)
inlinestatic

◆ MakeVectorElt()

static LValue clang::CodeGen::LValue::MakeVectorElt ( Address  vecAddress,
llvm::Value Idx,
QualType  type,
LValueBaseInfo  BaseInfo,
TBAAAccessInfo  TBAAInfo 
)
inlinestatic

◆ setAddress()

void clang::CodeGen::LValue::setAddress ( Address  address)
inline

◆ setAlignment()

void clang::CodeGen::LValue::setAlignment ( CharUnits  A)
inline

Definition at line 319 of file CGValue.h.

References clang::CharUnits::getQuantity().

◆ setARCPreciseLifetime()

void clang::CodeGen::LValue::setARCPreciseLifetime ( ARCPreciseLifetime_t  value)
inline

Definition at line 290 of file CGValue.h.

References clang::CodeGen::ARCImpreciseLifetime.

◆ setBaseInfo()

void clang::CodeGen::LValue::setBaseInfo ( LValueBaseInfo  Info)
inline

Definition at line 322 of file CGValue.h.

◆ setBaseIvarExp()

void clang::CodeGen::LValue::setBaseIvarExp ( Expr V)
inline

Definition at line 308 of file CGValue.h.

◆ setGlobalObjCRef()

void clang::CodeGen::LValue::setGlobalObjCRef ( bool  Value)
inline

Definition at line 282 of file CGValue.h.

◆ setNonGC()

void clang::CodeGen::LValue::setNonGC ( bool  Value)
inline

Definition at line 279 of file CGValue.h.

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

◆ setNontemporal()

void clang::CodeGen::LValue::setNontemporal ( bool  Value)
inline

Definition at line 294 of file CGValue.h.

◆ setObjCArray()

void clang::CodeGen::LValue::setObjCArray ( bool  Value)
inline

Definition at line 276 of file CGValue.h.

◆ setObjCIvar()

void clang::CodeGen::LValue::setObjCIvar ( bool  Value)
inline

Definition at line 273 of file CGValue.h.

◆ setTBAAInfo()

void clang::CodeGen::LValue::setTBAAInfo ( TBAAAccessInfo  Info)
inline

Definition at line 311 of file CGValue.h.

◆ setThreadLocalRef()

void clang::CodeGen::LValue::setThreadLocalRef ( bool  Value)
inline

Definition at line 285 of file CGValue.h.

Member Data Documentation

◆ BitFieldInfo

const CGBitFieldInfo* clang::CodeGen::LValue::BitFieldInfo

Definition at line 191 of file CGValue.h.

Referenced by MakeBitfield().

◆ VectorElts

llvm::Constant* clang::CodeGen::LValue::VectorElts

Definition at line 188 of file CGValue.h.

Referenced by MakeExtVectorElt().

◆ VectorIdx

llvm::Value* clang::CodeGen::LValue::VectorIdx

Definition at line 185 of file CGValue.h.

Referenced by MakeVectorElt().


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