clang
3.9.0
|
LValue - This represents an lvalue references. More...
#include <CGValue.h>
Static Public Member Functions | |
static LValue | MakeAddr (Address address, QualType type, ASTContext &Context, AlignmentSource alignSource, llvm::MDNode *TBAAInfo=nullptr) |
static LValue | MakeVectorElt (Address vecAddress, llvm::Value *Idx, QualType type, AlignmentSource alignSource) |
static LValue | MakeExtVectorElt (Address vecAddress, llvm::Constant *Elts, QualType type, AlignmentSource alignSource) |
static LValue | MakeBitfield (Address Addr, const CGBitFieldInfo &Info, QualType type, AlignmentSource alignSource) |
Create a new object to represent a bit-field access. More... | |
static LValue | MakeGlobalReg (Address Reg, QualType type) |
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.
|
inline |
Definition at line 435 of file CGValue.h.
References getAddress(), clang::CodeGen::RValue::getAggregate(), and isVolatileQualified().
Referenced by clang::CodeGen::CodeGenFunction::convertTempToRValue(), clang::CodeGen::CodeGenFunction::EmitCallArg(), and clang::CodeGen::CodeGenFunction::EmitRValueForField().
|
inline |
Definition at line 331 of file CGValue.h.
References getAlignment(), and getPointer().
Referenced by asAggregateRValue(), castValueFromUintptr(), drillIntoBlockVariable(), clang::CodeGen::CodeGenFunction::EmitARCStoreStrong(), clang::CodeGen::CodeGenFunction::EmitArraySubscriptExpr(), clang::CodeGen::CodeGenFunction::EmitAtomicCompareExchange(), clang::CodeGen::CodeGenFunction::EmitAtomicStore(), clang::CodeGen::CodeGenFunction::EmitBlockLiteral(), clang::CodeGen::CodeGenFunction::EmitCallArg(), clang::CodeGen::CodeGenFunction::EmitCallExpr(), clang::CodeGen::CodeGenFunction::EmitCastLValue(), emitCombinerOrInitializer(), clang::CodeGen::CodeGenFunction::EmitCXXConstructorCall(), clang::CodeGen::CodeGenFunction::EmitCXXMemberOrOperatorMemberCallExpr(), clang::CodeGen::CodeGenFunction::EmitCXXMemberPointerCallExpr(), clang::CodeGen::CodeGenFunction::EmitExtVectorElementExpr(), clang::CodeGen::CodeGenFunction::EmitInitializerForField(), clang::CodeGen::CodeGenFunction::EmitLoadOfLValue(), clang::CodeGen::CodeGenFunction::EmitLoadOfScalar(), clang::CodeGen::CodeGenFunction::EmitLValueForField(), clang::CodeGen::CodeGenFunction::EmitLValueForFieldInitialization(), EmitMemberInitializer(), clang::CodeGen::CodeGenFunction::EmitMSVAListRef(), clang::CodeGen::CodeGenFunction::EmitObjCIsaExpr(), clang::CodeGen::CodeGenFunction::EmitObjCMessageExpr(), emitOMPArraySectionBase(), emitOMPAtomicRMW(), clang::CodeGen::CodeGenFunction::EmitOMPCopyinClause(), clang::CodeGen::CodeGenFunction::EmitOMPDistributeLoop(), clang::CodeGen::CodeGenFunction::EmitOMPFirstprivateClause(), clang::CodeGen::CodeGenFunction::EmitOMPLastprivateClauseInit(), clang::CodeGen::CodeGenFunction::EmitOMPLinearClauseFinal(), clang::CodeGen::CodeGenFunction::EmitOMPPrivateLoopCounters(), clang::CodeGen::CodeGenFunction::EmitOMPReductionClauseInit(), clang::CodeGen::CodeGenFunction::EmitParmDecl(), clang::CodeGen::CodeGenFunction::EmitPointerWithAlignment(), emitPrivatesInit(), emitProxyTaskFunction(), clang::CodeGen::CodeGenFunction::EmitScalarInit(), clang::CodeGen::CodeGenFunction::EmitStoreOfScalar(), clang::CodeGen::CodeGenFunction::EmitStoreThroughLValue(), clang::CodeGen::emitTaskLoopCall(), EmitTypeidFromVTable(), clang::CodeGen::CodeGenFunction::EmitUnaryOpLValue(), clang::CodeGen::CodeGenFunction::EmitVAListRef(), emitWriteback(), emitWritebackArg(), clang::CodeGen::AggValueSlot::forLValue(), clang::CodeGen::CodeGenFunction::GenerateCapturedStmtArgument(), clang::CodeGen::CodeGenFunction::generateObjCGetterBody(), clang::CodeGen::CodeGenFunction::GenerateOpenMPCapturedStmtFunction(), clang::CodeGen::CodeGenFunction::GenerateOpenMPCapturedVars(), loadToBegin(), clang::CodeGen::CodeGenFunction::StartFunction(), tryEmitARCCopyWeakInit(), and tryEmitARCRetainLoadOfScalar().
|
inline |
Definition at line 314 of file CGValue.h.
References clang::Qualifiers::getAddressSpace().
|
inline |
Definition at line 316 of file CGValue.h.
References clang::CharUnits::fromQuantity().
Referenced by castToBase(), EmitAggMemberInitializer(), clang::CodeGen::CodeGenFunction::EmitARCStoreStrong(), clang::CodeGen::CodeGenFunction::EmitCallArg(), clang::CodeGen::CodeGenFunction::EmitCheckedLValue(), emitOMPAtomicRMW(), getAddress(), getBitFieldAddress(), getExtVectorAddress(), getVectorAddress(), and loadToBegin().
|
inline |
Definition at line 319 of file CGValue.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitArraySubscriptExpr(), EmitAtomicUpdateValue(), clang::CodeGen::CodeGenFunction::EmitCastLValue(), clang::CodeGen::CodeGenFunction::EmitExtVectorElementExpr(), clang::CodeGen::CodeGenFunction::EmitLoadOfScalar(), clang::CodeGen::CodeGenFunction::EmitLValueForField(), clang::CodeGen::CodeGenFunction::EmitLValueForFieldInitialization(), emitOMPArraySectionBase(), clang::CodeGen::CodeGenFunction::EmitPointerWithAlignment(), clang::CodeGen::CodeGenFunction::EmitStoreOfScalar(), clang::CodeGen::CodeGenFunction::EmitUnaryOpLValue(), and loadToBegin().
|
inline |
Definition at line 299 of file CGValue.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitStoreThroughLValue().
|
inline |
Definition at line 359 of file CGValue.h.
References getAlignment(), and getBitFieldPointer().
Referenced by clang::CodeGen::CodeGenFunction::EmitLoadOfBitfieldLValue(), and clang::CodeGen::CodeGenFunction::EmitStoreThroughBitfieldLValue().
|
inline |
Definition at line 363 of file CGValue.h.
References BitFieldInfo, and isBitField().
Referenced by EmitAtomicUpdateValue(), clang::CodeGen::CodeGenFunction::EmitLoadOfBitfieldLValue(), and clang::CodeGen::CodeGenFunction::EmitStoreThroughBitfieldLValue().
|
inline |
Definition at line 362 of file CGValue.h.
References isBitField().
Referenced by getBitFieldAddress().
|
inline |
Definition at line 346 of file CGValue.h.
References getAlignment(), and getExtVectorPointer().
Referenced by clang::CodeGen::CodeGenFunction::EmitExtVectorElementExpr(), clang::CodeGen::CodeGenFunction::EmitExtVectorElementLValue(), clang::CodeGen::CodeGenFunction::EmitLoadOfExtVectorElementLValue(), and clang::CodeGen::CodeGenFunction::EmitStoreThroughExtVectorComponentLValue().
|
inline |
Definition at line 353 of file CGValue.h.
References isExtVectorElt(), and VectorElts.
Referenced by EmitAtomicUpdateValue(), clang::CodeGen::CodeGenFunction::EmitExtVectorElementExpr(), clang::CodeGen::CodeGenFunction::EmitExtVectorElementLValue(), clang::CodeGen::CodeGenFunction::EmitLoadOfExtVectorElementLValue(), and clang::CodeGen::CodeGenFunction::EmitStoreThroughExtVectorComponentLValue().
|
inline |
Definition at line 349 of file CGValue.h.
References isExtVectorElt().
Referenced by getExtVectorAddress().
|
inline |
Definition at line 369 of file CGValue.h.
References isGlobalReg().
Referenced by clang::CodeGen::CodeGenFunction::EmitLoadOfGlobalRegLValue(), and clang::CodeGen::CodeGenFunction::EmitStoreThroughGlobalRegLValue().
|
inline |
Definition at line 260 of file CGValue.h.
References clang::Qualifiers::getObjCLifetime().
Referenced by clang::CodeGen::CodeGenFunction::EmitScalarInit(), emitWriteback(), and emitWritebackArg().
|
inline |
Definition at line 327 of file CGValue.h.
References isSimple().
Referenced by castToBase(), EmitAggMemberInitializer(), clang::CodeGen::CodeGenFunction::EmitCapturedStmt(), clang::CodeGen::CodeGenFunction::EmitCheckedLValue(), emitCPPObjectAtomicSetterCall(), clang::CodeGen::CodeGenFunction::EmitDeclRefLValue(), clang::CodeGen::CodeGenFunction::EmitObjCIvarRefLValue(), emitOMPAtomicRMW(), clang::CodeGen::CodeGenFunction::EmitOMPReductionClauseInit(), emitProxyTaskFunction(), clang::CodeGen::CodeGenFunction::EmitReferenceBindingToExpr(), clang::CodeGen::CodeGenFunction::EmitRValueForField(), emitStructSetterCall(), clang::CodeGen::emitTaskCall(), clang::CodeGen::emitTaskLoopCall(), getAddress(), and loadToBegin().
|
inline |
Definition at line 311 of file CGValue.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitDeclRefLValue(), clang::CodeGen::CodeGenFunction::EmitExtVectorElementExpr(), clang::CodeGen::CodeGenFunction::EmitLoadOfLValue(), clang::CodeGen::CodeGenFunction::EmitLValueForField(), clang::CodeGen::CodeGenFunction::EmitStoreThroughLValue(), clang::CodeGen::emitTaskLoopCall(), clang::CodeGen::CGObjCRuntime::EmitValueForIvarAtOffset(), clang::CodeGen::AggValueSlot::forLValue(), and clang::CodeGen::CodeGenFunction::generateObjCGetterBody().
|
inline |
|
inline |
Definition at line 302 of file CGValue.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitLoadOfScalar(), clang::CodeGen::CodeGenFunction::EmitLValueForField(), and clang::CodeGen::CodeGenFunction::EmitStoreOfScalar().
|
inline |
|
inline |
Definition at line 305 of file CGValue.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitLoadOfScalar(), clang::CodeGen::CodeGenFunction::EmitLValueForField(), and clang::CodeGen::CodeGenFunction::EmitStoreOfScalar().
|
inline |
Definition at line 258 of file CGValue.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitARCStoreStrong(), clang::CodeGen::CodeGenFunction::EmitArraySubscriptExpr(), clang::CodeGen::CodeGenFunction::EmitAtomicLoad(), clang::CodeGen::CodeGenFunction::EmitAtomicStore(), EmitAtomicUpdateValue(), clang::CodeGen::CodeGenFunction::EmitDeclRefLValue(), clang::CodeGen::CodeGenFunction::EmitExtVectorElementLValue(), clang::CodeGen::CodeGenFunction::EmitLoadOfBitfieldLValue(), clang::CodeGen::CodeGenFunction::EmitLoadOfExtVectorElementLValue(), clang::CodeGen::CodeGenFunction::EmitLoadOfGlobalRegLValue(), clang::CodeGen::CodeGenFunction::EmitLoadOfLValue(), clang::CodeGen::CodeGenFunction::EmitLoadOfScalar(), emitOMPAtomicRMW(), clang::CodeGen::CodeGenFunction::EmitOMPAtomicSimpleUpdateExpr(), 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::CodeGenFunction::EmitUnaryOpLValue(), clang::CodeGen::CodeGenFunction::GenerateOpenMPCapturedStmtFunction(), loadToBegin(), and clang::CodeGen::CodeGenFunction::LValueIsSuitableForInlineAtomic().
|
inline |
Definition at line 339 of file CGValue.h.
References getAlignment(), and getVectorPointer().
Referenced by clang::CodeGen::CodeGenFunction::EmitLoadOfLValue(), and clang::CodeGen::CodeGenFunction::EmitStoreThroughLValue().
|
inline |
Definition at line 343 of file CGValue.h.
References isVectorElt(), and VectorIdx.
Referenced by EmitAtomicUpdateValue(), clang::CodeGen::CodeGenFunction::EmitLoadOfLValue(), and clang::CodeGen::CodeGenFunction::EmitStoreThroughLValue().
|
inline |
Definition at line 342 of file CGValue.h.
References isVectorElt().
Referenced by getVectorAddress().
|
inline |
Definition at line 254 of file CGValue.h.
References clang::Qualifiers::getCVRQualifiers().
Referenced by clang::CodeGen::CodeGenFunction::EmitLValueForField().
|
inline |
Definition at line 279 of file CGValue.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitARCStoreStrong(), and emitWriteback().
|
inline |
Definition at line 248 of file CGValue.h.
Referenced by EmitAtomicUpdateValue(), clang::CodeGen::CodeGenFunction::EmitCheckedLValue(), clang::CodeGen::CodeGenFunction::EmitLoadOfLValue(), clang::CodeGen::CodeGenFunction::EmitStoreThroughLValue(), getBitFieldInfo(), and getBitFieldPointer().
|
inline |
Definition at line 249 of file CGValue.h.
Referenced by EmitAtomicUpdateValue(), clang::CodeGen::CodeGenFunction::EmitExtVectorElementExpr(), clang::CodeGen::CodeGenFunction::EmitLoadOfLValue(), clang::CodeGen::CodeGenFunction::EmitStoreThroughLValue(), getExtVectorElts(), and getExtVectorPointer().
|
inline |
Definition at line 273 of file CGValue.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitStoreThroughLValue(), and setObjCGCLValueClass().
|
inline |
Definition at line 250 of file CGValue.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitLoadOfLValue(), clang::CodeGen::CodeGenFunction::EmitOMPAtomicSimpleUpdateExpr(), emitSimpleAtomicStore(), clang::CodeGen::CodeGenFunction::EmitStoreThroughLValue(), and getGlobalReg().
|
inline |
Definition at line 270 of file CGValue.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitStoreThroughLValue().
|
inline |
Definition at line 285 of file CGValue.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitLoadOfScalar(), and clang::CodeGen::CodeGenFunction::EmitStoreOfScalar().
|
inline |
Definition at line 267 of file CGValue.h.
Referenced by setObjCGCLValueClass().
|
inline |
Definition at line 264 of file CGValue.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitStoreThroughLValue(), and setObjCGCLValueClass().
|
inline |
Definition at line 291 of file CGValue.h.
References clang::Qualifiers::getObjCGCAttr(), and clang::Qualifiers::Strong.
Referenced by EmitDeclInit(), and clang::CodeGen::CodeGenFunction::EmitStoreThroughLValue().
|
inline |
Definition at line 288 of file CGValue.h.
References clang::Qualifiers::getObjCGCAttr(), and clang::Qualifiers::Weak.
Referenced by EmitDeclInit(), clang::CodeGen::CodeGenFunction::EmitLoadOfLValue(), and clang::CodeGen::CodeGenFunction::EmitStoreThroughLValue().
|
inline |
Definition at line 253 of file CGValue.h.
References clang::Qualifiers::hasRestrict().
|
inline |
Definition at line 246 of file CGValue.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitArraySubscriptExpr(), clang::CodeGen::CodeGenFunction::EmitAtomicStore(), EmitAtomicUpdateValue(), clang::CodeGen::CodeGenFunction::EmitCallArg(), clang::CodeGen::CodeGenFunction::EmitCheckedLValue(), clang::CodeGen::CodeGenFunction::EmitExtVectorElementExpr(), clang::CodeGen::CodeGenFunction::EmitInitializerForField(), clang::CodeGen::CodeGenFunction::EmitLoadOfLValue(), emitOMPAtomicRMW(), clang::CodeGen::CodeGenFunction::EmitReferenceBindingToExpr(), clang::CodeGen::CodeGenFunction::EmitStoreThroughLValue(), clang::CodeGen::CodeGenFunction::EmitUnaryOpLValue(), getPointer(), and setAddress().
|
inline |
Definition at line 276 of file CGValue.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitStoreThroughLValue().
|
inline |
Definition at line 247 of file CGValue.h.
Referenced by EmitAtomicUpdateValue(), clang::CodeGen::CodeGenFunction::EmitLoadOfLValue(), clang::CodeGen::CodeGenFunction::EmitStoreThroughLValue(), getVectorIdx(), and getVectorPointer().
|
inline |
Definition at line 295 of file CGValue.h.
References clang::Qualifiers::hasVolatile().
Referenced by clang::CodeGen::CodeGenFunction::EmitCallArg(), clang::CodeGen::CodeGenFunction::EmitLoadOfScalar(), emitSimpleAtomicStore(), clang::CodeGen::CodeGenFunction::EmitStoreOfScalar(), and clang::CodeGen::CodeGenFunction::LValueIsSuitableForInlineAtomic().
|
inline |
Definition at line 252 of file CGValue.h.
References clang::Qualifiers::hasVolatile().
Referenced by asAggregateRValue(), clang::CodeGen::CodeGenFunction::EmitAtomicLoad(), clang::CodeGen::CodeGenFunction::EmitAtomicStore(), clang::CodeGen::CodeGenFunction::EmitLoadOfBitfieldLValue(), clang::CodeGen::CodeGenFunction::EmitLoadOfExtVectorElementLValue(), clang::CodeGen::CodeGenFunction::EmitLoadOfLValue(), EmitMemberInitializer(), clang::CodeGen::CodeGenFunction::EmitStoreThroughBitfieldLValue(), clang::CodeGen::CodeGenFunction::EmitStoreThroughExtVectorComponentLValue(), and clang::CodeGen::CodeGenFunction::EmitStoreThroughLValue().
|
inlinestatic |
Definition at line 371 of file CGValue.h.
References clang::CodeGen::Address::getAlignment(), clang::ASTContext::getObjCGCAttrKind(), clang::CodeGen::Address::getPointer(), clang::QualType::getQualifiers(), and clang::Qualifiers::setObjCGCAttr().
Referenced by clang::CodeGen::CodeGenFunction::MakeAddrLValue(), and clang::CodeGen::CodeGenFunction::MakeNaturalAlignAddrLValue().
|
inlinestatic |
Create a new object to represent a bit-field access.
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 414 of file CGValue.h.
References BitFieldInfo, clang::CodeGen::Address::getAlignment(), clang::CodeGen::Address::getPointer(), and clang::QualType::getQualifiers().
Referenced by EmitAtomicUpdateValue(), and clang::CodeGen::CGObjCRuntime::EmitValueForIvarAtOffset().
|
inlinestatic |
Definition at line 397 of file CGValue.h.
References clang::CodeGen::Address::getAlignment(), clang::CodeGen::Address::getPointer(), clang::QualType::getQualifiers(), and VectorElts.
Referenced by EmitAtomicUpdateValue().
Definition at line 426 of file CGValue.h.
References clang::CodeGen::Decl, clang::CodeGen::Address::getAlignment(), clang::CodeGen::Address::getPointer(), and clang::QualType::getQualifiers().
|
inlinestatic |
Definition at line 386 of file CGValue.h.
References clang::CodeGen::Address::getAlignment(), clang::CodeGen::Address::getPointer(), clang::QualType::getQualifiers(), and VectorIdx.
Referenced by EmitAtomicUpdateValue().
|
inline |
Definition at line 332 of file CGValue.h.
References clang::CodeGen::Address::getAlignment(), clang::CodeGen::Address::getPointer(), clang::CharUnits::getQuantity(), and isSimple().
Referenced by drillIntoBlockVariable(), EmitAggMemberInitializer(), and clang::CodeGen::CodeGenFunction::EmitScalarInit().
|
inline |
Definition at line 317 of file CGValue.h.
References clang::CharUnits::getQuantity().
|
inline |
|
inline |
Definition at line 282 of file CGValue.h.
References clang::CodeGen::ARCImpreciseLifetime.
Referenced by clang::CodeGen::CodeGenFunction::EmitDeclRefLValue().
|
inline |
Definition at line 300 of file CGValue.h.
Referenced by setObjCGCLValueClass().
|
inline |
Definition at line 274 of file CGValue.h.
Referenced by setObjCGCLValueClass().
|
inline |
Definition at line 271 of file CGValue.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitArraySubscriptExpr(), clang::CodeGen::CodeGenFunction::EmitAutoVarInit(), and clang::CodeGen::CodeGenFunction::EmitDeclRefLValue().
|
inline |
Definition at line 286 of file CGValue.h.
Referenced by EmitNontemporalLoad(), and EmitNontemporalStore().
|
inline |
Definition at line 268 of file CGValue.h.
Referenced by setObjCGCLValueClass().
|
inline |
Definition at line 265 of file CGValue.h.
Referenced by setObjCGCLValueClass().
|
inline |
Definition at line 303 of file CGValue.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitLValueForField().
|
inline |
Definition at line 309 of file CGValue.h.
Referenced by EmitAtomicUpdateValue(), and clang::CodeGen::CodeGenFunction::EmitLValueForField().
|
inline |
Definition at line 306 of file CGValue.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitLValueForField().
|
inline |
Definition at line 277 of file CGValue.h.
Referenced by setObjCGCLValueClass().
const CGBitFieldInfo* clang::CodeGen::LValue::BitFieldInfo |
Definition at line 171 of file CGValue.h.
Referenced by getBitFieldInfo(), and MakeBitfield().
llvm::Constant* clang::CodeGen::LValue::VectorElts |
Definition at line 168 of file CGValue.h.
Referenced by getExtVectorElts(), and MakeExtVectorElt().
llvm::Value* clang::CodeGen::LValue::VectorIdx |
Definition at line 165 of file CGValue.h.
Referenced by getVectorIdx(), and MakeVectorElt().