clang 19.0.0git
Public Member Functions | Static Public Member Functions | List of all members
clang::CodeGen::LValue Class Reference

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

#include "/home/buildbot/as-worker-4/publish-doxygen-docs/llvm-project/clang/lib/CodeGen/CGValue.h"

Public Member Functions

bool isSimple () const
 
bool isVectorElt () const
 
bool isBitField () const
 
bool isExtVectorElt () const
 
bool isGlobalReg () const
 
bool isMatrixElt () 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)
 
KnownNonNull_t isKnownNonNull () const
 
LValue setKnownNonNull ()
 
llvm::Value * getPointer (CodeGenFunction &CGF) const
 
llvm::Value * emitResignedPointer (QualType PointeeTy, CodeGenFunction &CGF) const
 
llvm::Value * emitRawPointer (CodeGenFunction &CGF) const
 
Address getAddress () const
 
void setAddress (Address address)
 
CGPointerAuthInfo getPointerAuthInfo () const
 
Address getVectorAddress () const
 
llvm::Value * getRawVectorPointer (CodeGenFunction &CGF) const
 
llvm::Value * getVectorPointer () const
 
llvm::Value * getVectorIdx () const
 
Address getMatrixAddress () const
 
llvm::Value * getMatrixPointer () const
 
llvm::Value * getMatrixIdx () const
 
Address getExtVectorAddress () const
 
llvm::Value * getRawExtVectorPointer (CodeGenFunction &CGF) const
 
llvm::Constant * getExtVectorElts () const
 
Address getBitFieldAddress () const
 
llvm::Value * getRawBitFieldPointer (CodeGenFunction &CGF) const
 
const CGBitFieldInfogetBitFieldInfo () const
 
llvm::Value * getGlobalReg () const
 
RValue asAggregateRValue () const
 

Static Public Member Functions

static LValue MakeAddr (Address Addr, 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 Addr, 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.
 
static LValue MakeGlobalReg (llvm::Value *V, CharUnits alignment, QualType type)
 
static LValue MakeMatrixElt (Address matAddress, llvm::Value *Idx, QualType type, LValueBaseInfo BaseInfo, TBAAAccessInfo TBAAInfo)
 

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

Member Function Documentation

◆ asAggregateRValue()

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

◆ emitRawPointer()

llvm::Value * LValue::emitRawPointer ( CodeGenFunction CGF) const

◆ emitResignedPointer()

llvm::Value * LValue::emitResignedPointer ( QualType  PointeeTy,
CodeGenFunction CGF 
) const

◆ getAddress()

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

◆ getAddressSpace()

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

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

◆ getBitFieldAddress()

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

Definition at line 415 of file CGValue.h.

References Addr, and isBitField().

◆ getBitFieldInfo()

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

Definition at line 424 of file CGValue.h.

References BitFieldInfo, and isBitField().

Referenced by EmitAtomicUpdateValue().

◆ getExtVectorAddress()

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

Definition at line 401 of file CGValue.h.

References Addr, and isExtVectorElt().

◆ getExtVectorElts()

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

Definition at line 409 of file CGValue.h.

References isExtVectorElt(), and VectorElts.

Referenced by EmitAtomicUpdateValue().

◆ getGlobalReg()

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

Definition at line 430 of file CGValue.h.

References isGlobalReg(), and V.

◆ getMatrixAddress()

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

Definition at line 387 of file CGValue.h.

References Addr, and isMatrixElt().

◆ getMatrixIdx()

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

Definition at line 395 of file CGValue.h.

References isMatrixElt(), and VectorIdx.

◆ getMatrixPointer()

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

Definition at line 391 of file CGValue.h.

References Addr, clang::CodeGen::Address::getBasePointer(), and isMatrixElt().

◆ getObjCLifetime()

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

Definition at line 293 of file CGValue.h.

References clang::Qualifiers::getObjCLifetime().

Referenced by emitWriteback(), and emitWritebackArg().

◆ getPointer()

llvm::Value * LValue::getPointer ( CodeGenFunction CGF) const

◆ getPointerAuthInfo()

CGPointerAuthInfo clang::CodeGen::LValue::getPointerAuthInfo ( ) const
inline

Definition at line 365 of file CGValue.h.

References Addr, and clang::CodeGen::Address::getPointerAuthInfo().

◆ getQuals() [1/2]

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

Definition at line 339 of file CGValue.h.

◆ getQuals() [2/2]

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

◆ getRawBitFieldPointer()

llvm::Value * clang::CodeGen::LValue::getRawBitFieldPointer ( CodeGenFunction CGF) const
inline

Definition at line 419 of file CGValue.h.

References Addr, clang::CodeGen::Address::emitRawPointer(), and isBitField().

◆ getRawExtVectorPointer()

llvm::Value * clang::CodeGen::LValue::getRawExtVectorPointer ( CodeGenFunction CGF) const
inline

Definition at line 405 of file CGValue.h.

References Addr, clang::CodeGen::Address::emitRawPointer(), and isExtVectorElt().

◆ getRawVectorPointer()

llvm::Value * clang::CodeGen::LValue::getRawVectorPointer ( CodeGenFunction CGF) const
inline

Definition at line 374 of file CGValue.h.

References Addr, clang::CodeGen::Address::emitRawPointer(), and isVectorElt().

◆ getTBAAInfo()

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

◆ getType()

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

◆ getVectorAddress()

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

Definition at line 370 of file CGValue.h.

References Addr, and isVectorElt().

◆ getVectorIdx()

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

Definition at line 382 of file CGValue.h.

References isVectorElt(), and VectorIdx.

Referenced by EmitAtomicUpdateValue().

◆ getVectorPointer()

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

Definition at line 378 of file CGValue.h.

References Addr, clang::CodeGen::Address::getBasePointer(), and isVectorElt().

◆ getVRQualifiers()

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

Definition at line 287 of file CGValue.h.

References clang::Qualifiers::getCVRQualifiers().

◆ isARCPreciseLifetime()

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

Definition at line 312 of file CGValue.h.

Referenced by emitWriteback().

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

Referenced by setObjCGCLValueClass().

◆ isGlobalReg()

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

Definition at line 282 of file CGValue.h.

Referenced by emitSimpleAtomicLoad(), emitSimpleAtomicStore(), and getGlobalReg().

◆ isKnownNonNull()

KnownNonNull_t clang::CodeGen::LValue::isKnownNonNull ( ) const
inline

Definition at line 349 of file CGValue.h.

References Addr, and clang::CodeGen::Address::isKnownNonNull().

◆ isMatrixElt()

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

Definition at line 283 of file CGValue.h.

Referenced by getMatrixAddress(), getMatrixIdx(), and getMatrixPointer().

◆ isNonGC()

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

Definition at line 303 of file CGValue.h.

◆ isNontemporal()

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

Definition at line 318 of file CGValue.h.

Referenced by EmitStoreOfMatrixScalar().

◆ isObjCArray()

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

Definition at line 300 of file CGValue.h.

Referenced by setObjCGCLValueClass().

◆ isObjCIvar()

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

Definition at line 297 of file CGValue.h.

Referenced by setObjCGCLValueClass().

◆ isObjCStrong()

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

Definition at line 324 of file CGValue.h.

References clang::Qualifiers::getObjCGCAttr(), and clang::Qualifiers::Strong.

Referenced by EmitDeclInit().

◆ isObjCWeak()

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

Definition at line 321 of file CGValue.h.

References clang::Qualifiers::getObjCGCAttr(), and clang::Qualifiers::Weak.

Referenced by EmitDeclInit().

◆ isRestrictQualified()

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

Definition at line 286 of file CGValue.h.

References clang::Qualifiers::hasRestrict().

◆ isSimple()

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

Definition at line 278 of file CGValue.h.

Referenced by EmitAtomicUpdateValue(), emitRawPointer(), emitResignedPointer(), and getPointer().

◆ isThreadLocalRef()

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

Definition at line 309 of file CGValue.h.

◆ 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  Addr,
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 468 of file CGValue.h.

References Addr, BitFieldInfo, and clang::ast_matchers::type.

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

◆ MakeExtVectorElt()

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

Definition at line 452 of file CGValue.h.

References Addr, clang::ast_matchers::type, and VectorElts.

Referenced by EmitAtomicUpdateValue().

◆ MakeGlobalReg()

static LValue clang::CodeGen::LValue::MakeGlobalReg ( llvm::Value *  V,
CharUnits  alignment,
QualType  type 
)
inlinestatic

◆ MakeMatrixElt()

static LValue clang::CodeGen::LValue::MakeMatrixElt ( Address  matAddress,
llvm::Value *  Idx,
QualType  type,
LValueBaseInfo  BaseInfo,
TBAAAccessInfo  TBAAInfo 
)
inlinestatic

Definition at line 488 of file CGValue.h.

References clang::ast_matchers::type, and VectorIdx.

◆ MakeVectorElt()

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

Definition at line 442 of file CGValue.h.

References clang::ast_matchers::type, and VectorIdx.

Referenced by EmitAtomicUpdateValue().

◆ setAddress()

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

Definition at line 363 of file CGValue.h.

References Addr.

Referenced by drillIntoBlockVariable(), and EmitLoadOfMatrixLValue().

◆ setAlignment()

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

Definition at line 344 of file CGValue.h.

References Addr, and clang::CodeGen::Address::setAlignment().

◆ setARCPreciseLifetime()

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

Definition at line 315 of file CGValue.h.

References clang::CodeGen::ARCImpreciseLifetime.

◆ setBaseInfo()

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

Definition at line 347 of file CGValue.h.

◆ setBaseIvarExp()

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

Definition at line 333 of file CGValue.h.

References V.

Referenced by setObjCGCLValueClass().

◆ setGlobalObjCRef()

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

Definition at line 307 of file CGValue.h.

Referenced by setObjCGCLValueClass().

◆ setKnownNonNull()

LValue clang::CodeGen::LValue::setKnownNonNull ( )
inline

Definition at line 350 of file CGValue.h.

References Addr, and clang::CodeGen::Address::setKnownNonNull().

◆ setNonGC()

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

Definition at line 304 of file CGValue.h.

◆ setNontemporal()

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

Definition at line 319 of file CGValue.h.

Referenced by EmitNontemporalLoad(), and EmitNontemporalStore().

◆ setObjCArray()

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

Definition at line 301 of file CGValue.h.

Referenced by setObjCGCLValueClass().

◆ setObjCIvar()

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

Definition at line 298 of file CGValue.h.

Referenced by setObjCGCLValueClass().

◆ setTBAAInfo()

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

Definition at line 336 of file CGValue.h.

◆ setThreadLocalRef()

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

Definition at line 310 of file CGValue.h.

Referenced by setObjCGCLValueClass().

Member Data Documentation

◆ Addr

Address clang::CodeGen::LValue::Addr = Address::invalid()

◆ BitFieldInfo

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

Definition at line 205 of file CGValue.h.

Referenced by getBitFieldInfo(), and MakeBitfield().

◆ V

llvm::Value* clang::CodeGen::LValue::V

Definition at line 194 of file CGValue.h.

Referenced by getGlobalReg(), MakeGlobalReg(), and setBaseIvarExp().

◆ VectorElts

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

Definition at line 202 of file CGValue.h.

Referenced by getExtVectorElts(), and MakeExtVectorElt().

◆ VectorIdx

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

Definition at line 199 of file CGValue.h.

Referenced by getMatrixIdx(), getVectorIdx(), MakeMatrixElt(), and MakeVectorElt().


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