clang API Documentation
#include <CGValue.h>
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.
RValue clang::CodeGen::LValue::asAggregateRValue | ( | ) | const [inline] |
Definition at line 354 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().
llvm::Value* clang::CodeGen::LValue::getAddress | ( | ) | const [inline] |
Definition at line 264 of file CGValue.h.
References isSimple().
Referenced by asAggregateRValue(), drillIntoBlockVariable(), EmitAggMemberInitializer(), clang::CodeGen::CodeGenFunction::EmitARCStoreStrong(), clang::CodeGen::CodeGenFunction::EmitArraySubscriptExpr(), clang::CodeGen::CodeGenFunction::EmitAsmStmt(), clang::CodeGen::CodeGenFunction::EmitAtomicLoad(), clang::CodeGen::CodeGenFunction::EmitAtomicStore(), clang::CodeGen::CodeGenFunction::EmitCallArg(), clang::CodeGen::CodeGenFunction::EmitCallExpr(), clang::CodeGen::CodeGenFunction::EmitCapturedStmt(), clang::CodeGen::CodeGenFunction::EmitCastLValue(), clang::CodeGen::CodeGenFunction::EmitCheckedLValue(), emitCPPObjectAtomicSetterCall(), clang::CodeGen::CodeGenFunction::EmitCXXConstructorCall(), clang::CodeGen::CodeGenFunction::EmitCXXMemberCallExpr(), 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::EmitObjCIsaExpr(), clang::CodeGen::CodeGenFunction::EmitObjCIvarRefLValue(), clang::CodeGen::CodeGenFunction::EmitOMPAggregateAssign(), clang::CodeGen::CodeGenFunction::EmitParmDecl(), clang::CodeGen::CodeGenFunction::EmitReferenceBindingToExpr(), clang::CodeGen::CodeGenFunction::EmitScalarInit(), clang::CodeGen::CodeGenFunction::EmitStoreOfScalar(), clang::CodeGen::CodeGenFunction::EmitStoreThroughLValue(), emitStructSetterCall(), 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::generateObjCSetterBody(), and tryEmitARCRetainLoadOfScalar().
unsigned clang::CodeGen::LValue::getAddressSpace | ( | ) | const [inline] |
Definition at line 258 of file CGValue.h.
References clang::Qualifiers::getAddressSpace().
CharUnits clang::CodeGen::LValue::getAlignment | ( | ) | const [inline] |
Definition at line 260 of file CGValue.h.
References clang::CharUnits::fromQuantity().
Referenced by EmitAggMemberInitializer(), clang::CodeGen::CodeGenFunction::EmitARCStoreStrong(), clang::CodeGen::CodeGenFunction::EmitArraySubscriptExpr(), clang::CodeGen::CodeGenFunction::EmitAtomicLoad(), clang::CodeGen::CodeGenFunction::EmitAtomicStore(), clang::CodeGen::CodeGenFunction::EmitCallArg(), clang::CodeGen::CodeGenFunction::EmitCheckedLValue(), clang::CodeGen::CodeGenFunction::EmitExtVectorElementExpr(), clang::CodeGen::CodeGenFunction::EmitLoadOfExtVectorElementLValue(), clang::CodeGen::CodeGenFunction::EmitLoadOfLValue(), clang::CodeGen::CodeGenFunction::EmitLoadOfScalar(), clang::CodeGen::CodeGenFunction::EmitLValueForField(), clang::CodeGen::CodeGenFunction::EmitLValueForFieldInitialization(), clang::CodeGen::CodeGenFunction::EmitStoreOfScalar(), clang::CodeGen::CodeGenFunction::EmitStoreThroughExtVectorComponentLValue(), clang::CodeGen::CodeGenFunction::EmitStoreThroughLValue(), and clang::CodeGen::AggValueSlot::forLValue().
Expr* clang::CodeGen::LValue::getBaseIvarExp | ( | ) | const [inline] |
Definition at line 243 of file CGValue.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitStoreThroughLValue().
llvm::Value* clang::CodeGen::LValue::getBitFieldAddr | ( | ) | const [inline] |
Definition at line 282 of file CGValue.h.
References isBitField().
Referenced by clang::CodeGen::CodeGenFunction::EmitLoadOfBitfieldLValue(), and clang::CodeGen::CodeGenFunction::EmitStoreThroughBitfieldLValue().
const CGBitFieldInfo& clang::CodeGen::LValue::getBitFieldInfo | ( | ) | const [inline] |
Definition at line 286 of file CGValue.h.
References BitFieldInfo, and isBitField().
Referenced by clang::CodeGen::CodeGenFunction::EmitLoadOfBitfieldLValue(), and clang::CodeGen::CodeGenFunction::EmitStoreThroughBitfieldLValue().
llvm::Value* clang::CodeGen::LValue::getExtVectorAddr | ( | ) | const [inline] |
Definition at line 275 of file CGValue.h.
References isExtVectorElt().
Referenced by clang::CodeGen::CodeGenFunction::EmitExtVectorElementExpr(), clang::CodeGen::CodeGenFunction::EmitExtVectorElementLValue(), clang::CodeGen::CodeGenFunction::EmitLoadOfExtVectorElementLValue(), and clang::CodeGen::CodeGenFunction::EmitStoreThroughExtVectorComponentLValue().
llvm::Constant* clang::CodeGen::LValue::getExtVectorElts | ( | ) | const [inline] |
Definition at line 276 of file CGValue.h.
References isExtVectorElt(), and VectorElts.
Referenced by clang::CodeGen::CodeGenFunction::EmitExtVectorElementExpr(), clang::CodeGen::CodeGenFunction::EmitExtVectorElementLValue(), clang::CodeGen::CodeGenFunction::EmitLoadOfExtVectorElementLValue(), and clang::CodeGen::CodeGenFunction::EmitStoreThroughExtVectorComponentLValue().
llvm::Value* clang::CodeGen::LValue::getGlobalReg | ( | ) | const [inline] |
Definition at line 292 of file CGValue.h.
References isGlobalReg().
Referenced by clang::CodeGen::CodeGenFunction::EmitLoadOfGlobalRegLValue(), and clang::CodeGen::CodeGenFunction::EmitStoreThroughGlobalRegLValue().
Qualifiers::ObjCLifetime clang::CodeGen::LValue::getObjCLifetime | ( | ) | const [inline] |
Definition at line 206 of file CGValue.h.
References clang::Qualifiers::getObjCLifetime().
Referenced by clang::CodeGen::CodeGenFunction::EmitScalarInit(), emitWriteback(), and emitWritebackArg().
const Qualifiers& clang::CodeGen::LValue::getQuals | ( | ) | const [inline] |
Definition at line 255 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::CGObjCRuntime::EmitValueForIvarAtOffset(), clang::CodeGen::AggValueSlot::forLValue(), and clang::CodeGen::CodeGenFunction::generateObjCGetterBody().
Qualifiers& clang::CodeGen::LValue::getQuals | ( | ) | [inline] |
QualType clang::CodeGen::LValue::getTBAABaseType | ( | ) | const [inline] |
Definition at line 246 of file CGValue.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitLoadOfScalar(), clang::CodeGen::CodeGenFunction::EmitLValueForField(), and clang::CodeGen::CodeGenFunction::EmitStoreOfScalar().
llvm::MDNode* clang::CodeGen::LValue::getTBAAInfo | ( | ) | const [inline] |
Definition at line 252 of file CGValue.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitAtomicLoad(), clang::CodeGen::CodeGenFunction::EmitAtomicStore(), clang::CodeGen::CodeGenFunction::EmitLoadOfScalar(), clang::CodeGen::CodeGenFunction::EmitLValueForField(), and clang::CodeGen::CodeGenFunction::EmitStoreOfScalar().
uint64_t clang::CodeGen::LValue::getTBAAOffset | ( | ) | const [inline] |
Definition at line 249 of file CGValue.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitLoadOfScalar(), clang::CodeGen::CodeGenFunction::EmitLValueForField(), and clang::CodeGen::CodeGenFunction::EmitStoreOfScalar().
QualType clang::CodeGen::LValue::getType | ( | ) | const [inline] |
Definition at line 204 of file CGValue.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitARCStoreStrong(), clang::CodeGen::CodeGenFunction::EmitArraySubscriptExpr(), clang::CodeGen::CodeGenFunction::EmitExtVectorElementLValue(), clang::CodeGen::CodeGenFunction::EmitLoadOfBitfieldLValue(), clang::CodeGen::CodeGenFunction::EmitLoadOfExtVectorElementLValue(), clang::CodeGen::CodeGenFunction::EmitLoadOfGlobalRegLValue(), clang::CodeGen::CodeGenFunction::EmitLoadOfLValue(), clang::CodeGen::CodeGenFunction::EmitLoadOfScalar(), clang::CodeGen::CodeGenFunction::EmitLValueForField(), clang::CodeGen::CodeGenFunction::EmitScalarInit(), clang::CodeGen::CodeGenFunction::EmitStoreOfScalar(), clang::CodeGen::CodeGenFunction::EmitStoreThroughBitfieldLValue(), clang::CodeGen::CodeGenFunction::EmitStoreThroughExtVectorComponentLValue(), clang::CodeGen::CodeGenFunction::EmitStoreThroughGlobalRegLValue(), and clang::CodeGen::CodeGenFunction::EmitStoreThroughLValue().
llvm::Value* clang::CodeGen::LValue::getVectorAddr | ( | ) | const [inline] |
Definition at line 271 of file CGValue.h.
References isVectorElt().
Referenced by clang::CodeGen::CodeGenFunction::EmitLoadOfLValue(), and clang::CodeGen::CodeGenFunction::EmitStoreThroughLValue().
llvm::Value* clang::CodeGen::LValue::getVectorIdx | ( | ) | const [inline] |
Definition at line 272 of file CGValue.h.
References isVectorElt(), and VectorIdx.
Referenced by clang::CodeGen::CodeGenFunction::EmitLoadOfLValue(), and clang::CodeGen::CodeGenFunction::EmitStoreThroughLValue().
unsigned clang::CodeGen::LValue::getVRQualifiers | ( | ) | const [inline] |
Definition at line 200 of file CGValue.h.
References clang::Qualifiers::getCVRQualifiers().
Referenced by clang::CodeGen::CodeGenFunction::EmitLValueForField().
ARCPreciseLifetime_t clang::CodeGen::LValue::isARCPreciseLifetime | ( | ) | const [inline] |
Definition at line 225 of file CGValue.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitARCStoreStrong(), and emitWriteback().
bool clang::CodeGen::LValue::isBitField | ( | ) | const [inline] |
Definition at line 194 of file CGValue.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitCheckedLValue(), clang::CodeGen::CodeGenFunction::EmitLoadOfLValue(), clang::CodeGen::CodeGenFunction::EmitStoreThroughLValue(), getBitFieldAddr(), and getBitFieldInfo().
bool clang::CodeGen::LValue::isExtVectorElt | ( | ) | const [inline] |
Definition at line 195 of file CGValue.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitExtVectorElementExpr(), clang::CodeGen::CodeGenFunction::EmitLoadOfLValue(), clang::CodeGen::CodeGenFunction::EmitStoreThroughLValue(), getExtVectorAddr(), and getExtVectorElts().
bool clang::CodeGen::LValue::isGlobalObjCRef | ( | ) | const [inline] |
Definition at line 219 of file CGValue.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitStoreThroughLValue(), and setObjCGCLValueClass().
bool clang::CodeGen::LValue::isGlobalReg | ( | ) | const [inline] |
Definition at line 196 of file CGValue.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitLoadOfLValue(), clang::CodeGen::CodeGenFunction::EmitStoreThroughLValue(), and getGlobalReg().
bool clang::CodeGen::LValue::isNonGC | ( | ) | const [inline] |
Definition at line 216 of file CGValue.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitStoreThroughLValue().
bool clang::CodeGen::LValue::isObjCArray | ( | ) | const [inline] |
Definition at line 213 of file CGValue.h.
Referenced by setObjCGCLValueClass().
bool clang::CodeGen::LValue::isObjCIvar | ( | ) | const [inline] |
Definition at line 210 of file CGValue.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitStoreThroughLValue(), and setObjCGCLValueClass().
bool clang::CodeGen::LValue::isObjCStrong | ( | ) | const [inline] |
Definition at line 235 of file CGValue.h.
References clang::Qualifiers::getObjCGCAttr(), and clang::Qualifiers::Strong.
Referenced by EmitDeclInit(), and clang::CodeGen::CodeGenFunction::EmitStoreThroughLValue().
bool clang::CodeGen::LValue::isObjCWeak | ( | ) | const [inline] |
Definition at line 232 of file CGValue.h.
References clang::Qualifiers::getObjCGCAttr(), and clang::Qualifiers::Weak.
Referenced by EmitDeclInit(), clang::CodeGen::CodeGenFunction::EmitLoadOfLValue(), and clang::CodeGen::CodeGenFunction::EmitStoreThroughLValue().
bool clang::CodeGen::LValue::isRestrictQualified | ( | ) | const [inline] |
Definition at line 199 of file CGValue.h.
References clang::Qualifiers::hasRestrict().
bool clang::CodeGen::LValue::isSimple | ( | ) | const [inline] |
Definition at line 192 of file CGValue.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitArraySubscriptExpr(), clang::CodeGen::CodeGenFunction::EmitCallArg(), clang::CodeGen::CodeGenFunction::EmitCheckedLValue(), clang::CodeGen::CodeGenFunction::EmitExtVectorElementExpr(), clang::CodeGen::CodeGenFunction::EmitInitializerForField(), clang::CodeGen::CodeGenFunction::EmitLoadOfLValue(), clang::CodeGen::CodeGenFunction::EmitReferenceBindingToExpr(), clang::CodeGen::CodeGenFunction::EmitStoreThroughLValue(), clang::CodeGen::CodeGenFunction::EmitUnaryOpLValue(), getAddress(), and setAddress().
bool clang::CodeGen::LValue::isThreadLocalRef | ( | ) | const [inline] |
Definition at line 222 of file CGValue.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitStoreThroughLValue().
bool clang::CodeGen::LValue::isVectorElt | ( | ) | const [inline] |
Definition at line 193 of file CGValue.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitLoadOfLValue(), clang::CodeGen::CodeGenFunction::EmitStoreThroughLValue(), getVectorAddr(), and getVectorIdx().
bool clang::CodeGen::LValue::isVolatile | ( | ) | const [inline] |
Definition at line 239 of file CGValue.h.
References clang::Qualifiers::hasVolatile().
Referenced by clang::CodeGen::CodeGenFunction::EmitCallArg(), clang::CodeGen::CodeGenFunction::EmitLoadOfScalar(), and clang::CodeGen::CodeGenFunction::EmitStoreOfScalar().
bool clang::CodeGen::LValue::isVolatileQualified | ( | ) | const [inline] |
Definition at line 198 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().
static LValue clang::CodeGen::LValue::MakeAddr | ( | llvm::Value * | address, |
QualType | type, | ||
CharUnits | alignment, | ||
ASTContext & | Context, | ||
llvm::MDNode * | TBAAInfo = nullptr |
||
) | [inline, static] |
Definition at line 294 of file CGValue.h.
References clang::ASTContext::getObjCGCAttrKind(), clang::QualType::getQualifiers(), and clang::Qualifiers::setObjCGCAttr().
Referenced by clang::CodeGen::CodeGenFunction::EmitAtomicExpr(), clang::CodeGen::CodeGenFunction::EmitLoadOfScalar(), clang::CodeGen::CodeGenFunction::EmitObjCCollectionLiteral(), clang::CodeGen::CodeGenFunction::EmitStoreOfScalar(), clang::CodeGen::CodeGenFunction::MakeAddrLValue(), and clang::CodeGen::CodeGenFunction::MakeNaturalAlignAddrLValue().
static LValue clang::CodeGen::LValue::MakeBitfield | ( | llvm::Value * | Addr, |
const CGBitFieldInfo & | Info, | ||
QualType | type, | ||
CharUnits | Alignment | ||
) | [inline, static] |
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 333 of file CGValue.h.
References BitFieldInfo, and clang::QualType::getQualifiers().
Referenced by clang::CodeGen::CodeGenFunction::EmitLValueForField(), and clang::CodeGen::CGObjCRuntime::EmitValueForIvarAtOffset().
static LValue clang::CodeGen::LValue::MakeExtVectorElt | ( | llvm::Value * | Vec, |
llvm::Constant * | Elts, | ||
QualType | type, | ||
CharUnits | Alignment | ||
) | [inline, static] |
Definition at line 317 of file CGValue.h.
References clang::QualType::getQualifiers(), and VectorElts.
Referenced by clang::CodeGen::CodeGenFunction::EmitExtVectorElementExpr().
static LValue clang::CodeGen::LValue::MakeGlobalReg | ( | llvm::Value * | Reg, |
QualType | type, | ||
CharUnits | Alignment | ||
) | [inline, static] |
Definition at line 344 of file CGValue.h.
References clang::QualType::getQualifiers().
Referenced by EmitGlobalNamedRegister().
static LValue clang::CodeGen::LValue::MakeVectorElt | ( | llvm::Value * | Vec, |
llvm::Value * | Idx, | ||
QualType | type, | ||
CharUnits | Alignment | ||
) | [inline, static] |
Definition at line 307 of file CGValue.h.
References clang::QualType::getQualifiers(), and VectorIdx.
Referenced by clang::CodeGen::CodeGenFunction::EmitArraySubscriptExpr().
void clang::CodeGen::LValue::setAddress | ( | llvm::Value * | address | ) | [inline] |
Definition at line 265 of file CGValue.h.
References isSimple().
Referenced by drillIntoBlockVariable(), EmitAggMemberInitializer(), and clang::CodeGen::CodeGenFunction::EmitScalarInit().
void clang::CodeGen::LValue::setAlignment | ( | CharUnits | A | ) | [inline] |
Definition at line 261 of file CGValue.h.
References clang::CharUnits::getQuantity().
Referenced by EmitAggMemberInitializer().
void clang::CodeGen::LValue::setARCPreciseLifetime | ( | ARCPreciseLifetime_t | value | ) | [inline] |
Definition at line 228 of file CGValue.h.
References clang::CodeGen::ARCImpreciseLifetime.
Referenced by clang::CodeGen::CodeGenFunction::EmitDeclRefLValue().
void clang::CodeGen::LValue::setBaseIvarExp | ( | Expr * | V | ) | [inline] |
Definition at line 244 of file CGValue.h.
Referenced by setObjCGCLValueClass().
void clang::CodeGen::LValue::setGlobalObjCRef | ( | bool | Value | ) | [inline] |
Definition at line 220 of file CGValue.h.
Referenced by setObjCGCLValueClass().
void clang::CodeGen::LValue::setNonGC | ( | bool | Value | ) | [inline] |
Definition at line 217 of file CGValue.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitAutoVarInit(), and clang::CodeGen::CodeGenFunction::EmitDeclRefLValue().
void clang::CodeGen::LValue::setObjCArray | ( | bool | Value | ) | [inline] |
Definition at line 214 of file CGValue.h.
Referenced by setObjCGCLValueClass().
void clang::CodeGen::LValue::setObjCIvar | ( | bool | Value | ) | [inline] |
Definition at line 211 of file CGValue.h.
Referenced by setObjCGCLValueClass().
void clang::CodeGen::LValue::setTBAABaseType | ( | QualType | T | ) | [inline] |
Definition at line 247 of file CGValue.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitLValueForField().
void clang::CodeGen::LValue::setTBAAInfo | ( | llvm::MDNode * | N | ) | [inline] |
Definition at line 253 of file CGValue.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitLValueForField().
void clang::CodeGen::LValue::setTBAAOffset | ( | uint64_t | O | ) | [inline] |
Definition at line 250 of file CGValue.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitLValueForField().
void clang::CodeGen::LValue::setThreadLocalRef | ( | bool | Value | ) | [inline] |
Definition at line 223 of file CGValue.h.
Referenced by setObjCGCLValueClass().
Definition at line 127 of file CGValue.h.
Referenced by getBitFieldInfo(), and MakeBitfield().
llvm::Constant* clang::CodeGen::LValue::VectorElts |
Definition at line 124 of file CGValue.h.
Referenced by getExtVectorElts(), and MakeExtVectorElt().
Definition at line 121 of file CGValue.h.
Referenced by getVectorIdx(), and MakeVectorElt().