clang 22.0.0git
clang::CodeGen::LValue Class Reference

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

#include "/work/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 isMatrixRow () 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
llvm::Value * getMatrixRowIdx () 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 MakeMatrixRow (Address Addr, llvm::Value *RowIdx, QualType MatrixTy, LValueBaseInfo BaseInfo, TBAAAccessInfo TBAAInfo)
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 183 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

Definition at line 367 of file CGValue.h.

References Addr.

Referenced by clang::CodeGen::ReductionCodeGen::adjustPrivateAddress(), clang::CodeGen::CGOpenMPRuntimeGPU::adjustTargetSpecificDataForLambdas(), asAggregateRValue(), clang::CodeGen::CodeGenFunction::callCStructCopyAssignmentOperator(), clang::CodeGen::CodeGenFunction::callCStructCopyConstructor(), clang::CodeGen::CodeGenFunction::callCStructDefaultConstructor(), clang::CodeGen::CodeGenFunction::callCStructDestructor(), clang::CodeGen::CodeGenFunction::callCStructMoveAssignmentOperator(), clang::CodeGen::CodeGenFunction::callCStructMoveConstructor(), castValueFromUintptr(), clang::CodeGen::CGOpenMPRuntime::checkAndEmitLastprivateConditional(), clang::CodeGen::CodeGenFunction::defaultInitNonTrivialCStructVar(), clang::CodeGen::CodeGenFunction::EmitAggregateCopy(), clang::CodeGen::CodeGenFunction::EmitArraySectionExpr(), clang::CodeGen::CodeGenFunction::EmitArraySubscriptExpr(), clang::CodeGen::CodeGenFunction::EmitArrayToPointerDecay(), clang::CodeGen::CodeGenFunction::EmitAsmStmt(), clang::CodeGen::CodeGenFunction::EmitAtomicCompareExchange(), clang::CodeGen::CodeGenFunction::EmitAtomicStore(), clang::CodeGen::CodeGenFunction::EmitBinaryOperatorLValue(), clang::CodeGen::CodeGenFunction::EmitBuiltinExpr(), clang::CodeGen::CodeGenFunction::EmitCapturedLocals(), clang::CodeGen::CodeGenFunction::EmitCastLValue(), emitCombinerOrInitializer(), clang::CodeGen::CodeGenFunction::EmitCountedByBoundsChecking(), clang::CodeGen::CodeGenFunction::EmitCXXMemberPointerCallExpr(), clang::CodeGen::CodeGenFunction::EmitCXXPseudoDestructorExpr(), clang::CodeGen::CodeGenFunction::EmitDeclRefLValue(), clang::CodeGen::CGOpenMPRuntime::emitDepobjElementsSizes(), clang::CodeGen::CGOpenMPRuntime::emitDestroyClause(), clang::CodeGen::CodeGenFunction::EmitHLSLBuiltinExpr(), clang::CodeGen::CodeGenFunction::EmitInitializerForField(), clang::CodeGen::CGOpenMPRuntime::emitLastprivateConditionalInit(), clang::CodeGen::CodeGenFunction::EmitLoadOfLValue(), clang::CodeGen::CodeGenFunction::EmitLoadOfReference(), clang::CodeGen::CodeGenFunction::EmitLoadOfScalar(), clang::CodeGen::CodeGenFunction::EmitLValueForField(), clang::CodeGen::CodeGenFunction::EmitLValueForLambdaField(), clang::CodeGen::CodeGenFunction::EmitMaterializeTemporaryExpr(), clang::CodeGen::CodeGenFunction::EmitMSVAListRef(), clang::CodeGen::CodeGenFunction::EmitObjCMessageExpr(), clang::CodeGen::CodeGenFunction::EmitOMPCanonicalLoop(), clang::CodeGen::CodeGenFunction::EmitOMPCopyinClause(), clang::CodeGen::CodeGenFunction::EmitOMPDistributeLoop(), clang::CodeGen::CodeGenFunction::EmitOMPFirstprivateClause(), clang::CodeGen::CodeGenFunction::EmitOMPLinearClauseFinal(), clang::CodeGen::CodeGenFunction::EmitOMPReductionClauseInit(), clang::CodeGen::CodeGenFunction::EmitOMPScanDirective(), clang::CodeGen::CodeGenFunction::EmitOMPSimdFinal(), clang::CodeGen::CodeGenFunction::EmitOMPWorksharingLoop(), clang::CodeGen::CodeGenFunction::EmitParmDecl(), clang::CodeGen::CodeGenFunction::EmitPointerToDataMemberBinaryExpr(), clang::CodeGen::CGOpenMPRuntime::emitPrivateReduction(), clang::CodeGen::CGHLSLRuntime::emitResourceArrayCopy(), clang::CodeGen::CodeGenFunction::EmitRISCVBuiltinExpr(), clang::CodeGen::CodeGenFunction::EmitScalarInit(), clang::CodeGen::CodeGenFunction::EmitSimpleOMPExecutableDirective(), clang::CodeGen::CodeGenFunction::EmitStoreOfScalar(), clang::CodeGen::CodeGenFunction::EmitStoreThroughLValue(), clang::CodeGen::CGOpenMPRuntime::emitTaskLoopCall(), clang::CodeGen::CGOpenMPRuntime::emitTaskReductionInit(), EmitTypeidFromVTable(), clang::CodeGen::CodeGenFunction::EmitUnaryOpLValue(), clang::CodeGen::CGOpenMPRuntime::emitUsesAllocatorsInit(), clang::CodeGen::CodeGenFunction::EmitVAListRef(), clang::CodeGen::AggValueSlot::forLValue(), clang::CodeGen::CodeGenFunction::GenerateCapturedStmtArgument(), clang::CodeGen::CodeGenFunction::generateObjCGetterBody(), clang::CodeGen::CodeGenFunction::generateObjCSetterBody(), clang::CodeGen::CodeGenFunction::GenerateOpenMPCapturedStmtFunction(), clang::CodeGen::CodeGenFunction::GenerateOpenMPCapturedVars(), clang::CodeGen::CodeGenFunction::GetCountedByFieldExprGEP(), and clang::CodeGen::CGOpenMPRuntime::getDepobjElements().

◆ getAddressSpace()

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

Definition at line 347 of file CGValue.h.

◆ getAlignment()

◆ getBaseInfo()

◆ getBaseIvarExp()

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

Definition at line 338 of file CGValue.h.

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

◆ getBitFieldAddress()

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

◆ getBitFieldInfo()

◆ getExtVectorAddress()

◆ getExtVectorElts()

◆ getGlobalReg()

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

◆ getMatrixAddress()

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

◆ getMatrixIdx()

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

◆ getMatrixPointer()

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

Definition at line 397 of file CGValue.h.

References Addr, and isMatrixElt().

◆ getMatrixRowIdx()

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

◆ getObjCLifetime()

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

Definition at line 299 of file CGValue.h.

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

◆ getPointer()

◆ getPointerAuthInfo()

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

Definition at line 371 of file CGValue.h.

References Addr.

◆ getQuals() [1/2]

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

Definition at line 345 of file CGValue.h.

◆ getQuals() [2/2]

◆ getRawBitFieldPointer()

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

Definition at line 430 of file CGValue.h.

References Addr, and isBitField().

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

◆ getRawExtVectorPointer()

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

Definition at line 416 of file CGValue.h.

References Addr, and isExtVectorElt().

◆ getRawVectorPointer()

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

Definition at line 380 of file CGValue.h.

References Addr, and isVectorElt().

◆ getTBAAInfo()

◆ getType()

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

Definition at line 297 of file CGValue.h.

Referenced by clang::CodeGen::CodeGenFunction::callCStructCopyAssignmentOperator(), clang::CodeGen::CodeGenFunction::callCStructCopyConstructor(), clang::CodeGen::CodeGenFunction::callCStructDefaultConstructor(), clang::CodeGen::CodeGenFunction::callCStructDestructor(), clang::CodeGen::CodeGenFunction::callCStructMoveAssignmentOperator(), clang::CodeGen::CodeGenFunction::callCStructMoveConstructor(), clang::CodeGen::CodeGenFunction::defaultInitNonTrivialCStructVar(), clang::CodeGen::CodeGenFunction::EmitAggregateCopyCtor(), clang::CodeGen::CodeGenFunction::EmitArraySubscriptExpr(), clang::CodeGen::CodeGenFunction::EmitAtomicLoad(), clang::CodeGen::CodeGenFunction::EmitAtomicStore(), clang::CodeGen::CodeGenFunction::EmitDeclRefLValue(), clang::CodeGen::CodeGenFunction::EmitExtVectorElementLValue(), clang::CodeGen::CodeGenFunction::EmitInitializationToLValue(), clang::CodeGen::CGOpenMPRuntime::emitLastprivateConditionalFinalUpdate(), clang::CodeGen::CGOpenMPRuntime::emitLastprivateConditionalUpdate(), clang::CodeGen::CodeGenFunction::EmitLoadOfAnyValue(), clang::CodeGen::CodeGenFunction::EmitLoadOfBitfieldLValue(), clang::CodeGen::CodeGenFunction::EmitLoadOfExtVectorElementLValue(), clang::CodeGen::CodeGenFunction::EmitLoadOfGlobalRegLValue(), clang::CodeGen::CodeGenFunction::EmitLoadOfLValue(), clang::CodeGen::CodeGenFunction::EmitLoadOfReference(), clang::CodeGen::CodeGenFunction::EmitLoadOfReferenceLValue(), clang::CodeGen::CodeGenFunction::EmitLoadOfScalar(), clang::CodeGen::CodeGenFunction::EmitLValueForField(), clang::CodeGen::CodeGenFunction::EmitNullabilityCheck(), clang::CodeGen::CodeGenFunction::emitOMPSimpleStore(), clang::CodeGen::CodeGenFunction::EmitScalarInit(), clang::CodeGen::CodeGenFunction::EmitStoreOfScalar(), clang::CodeGen::CodeGenFunction::EmitStoreThroughBitfieldLValue(), clang::CodeGen::CodeGenFunction::EmitStoreThroughExtVectorComponentLValue(), clang::CodeGen::CodeGenFunction::EmitStoreThroughGlobalRegLValue(), clang::CodeGen::CodeGenFunction::EmitStoreThroughLValue(), clang::CodeGen::CGOpenMPRuntime::emitTaskReductionInit(), clang::CodeGen::CodeGenFunction::EmitUnaryOpLValue(), clang::CodeGen::CodeGenFunction::FlattenAccessAndTypeLValue(), clang::CodeGen::CodeGenFunction::GenerateOpenMPCapturedStmtFunction(), getPointer(), and clang::CodeGen::CodeGenFunction::LValueIsSuitableForInlineAtomic().

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

References Addr, and isVectorElt().

◆ getVRQualifiers()

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

Definition at line 293 of file CGValue.h.

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

◆ isARCPreciseLifetime()

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

Definition at line 318 of file CGValue.h.

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

◆ isBitField()

◆ isExtVectorElt()

◆ isGlobalObjCRef()

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

Definition at line 312 of file CGValue.h.

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

◆ isGlobalReg()

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

◆ isKnownNonNull()

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

Definition at line 355 of file CGValue.h.

References Addr.

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

◆ isMatrixElt()

◆ isMatrixRow()

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

◆ isNonGC()

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

Definition at line 309 of file CGValue.h.

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

◆ isNontemporal()

◆ isObjCArray()

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

Definition at line 306 of file CGValue.h.

◆ isObjCIvar()

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

Definition at line 303 of file CGValue.h.

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

◆ isObjCStrong()

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

◆ isObjCWeak()

◆ isRestrictQualified()

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

Definition at line 292 of file CGValue.h.

◆ isSimple()

◆ isThreadLocalRef()

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

Definition at line 315 of file CGValue.h.

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

◆ isVectorElt()

◆ isVolatile()

◆ isVolatileQualified()

◆ MakeAddr()

◆ MakeBitfield()

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

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

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

◆ MakeExtVectorElt()

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

◆ MakeGlobalReg()

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

◆ MakeMatrixElt()

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

◆ MakeMatrixRow()

LValue clang::CodeGen::LValue::MakeMatrixRow ( Address Addr,
llvm::Value * RowIdx,
QualType MatrixTy,
LValueBaseInfo BaseInfo,
TBAAAccessInfo TBAAInfo )
inlinestatic

◆ MakeVectorElt()

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

References Addr.

◆ setARCPreciseLifetime()

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

◆ setBaseInfo()

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

Definition at line 353 of file CGValue.h.

◆ setBaseIvarExp()

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

Definition at line 339 of file CGValue.h.

References V.

◆ setGlobalObjCRef()

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

Definition at line 313 of file CGValue.h.

◆ setKnownNonNull()

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

Definition at line 356 of file CGValue.h.

References Addr.

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

◆ setNonGC()

◆ setNontemporal()

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

◆ setObjCArray()

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

Definition at line 307 of file CGValue.h.

◆ setObjCIvar()

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

Definition at line 304 of file CGValue.h.

◆ setTBAAInfo()

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

Definition at line 342 of file CGValue.h.

◆ setThreadLocalRef()

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

Definition at line 316 of file CGValue.h.

Member Data Documentation

◆ Addr

◆ BitFieldInfo

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

Definition at line 210 of file CGValue.h.

Referenced by getBitFieldInfo(), and MakeBitfield().

◆ MatrixRowIdx

llvm::Value* clang::CodeGen::LValue::MatrixRowIdx

Definition at line 204 of file CGValue.h.

Referenced by getMatrixRowIdx(), and MakeMatrixRow().

◆ V

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

Definition at line 196 of file CGValue.h.

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

◆ VectorElts

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

Definition at line 207 of file CGValue.h.

Referenced by getExtVectorElts(), and MakeExtVectorElt().

◆ VectorIdx

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

Definition at line 201 of file CGValue.h.

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


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