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 307 of file CGValue.h.
References getAddress(), clang::CodeGen::RValue::getAggregate(), and isVolatileQualified().
Referenced by clang::CodeGen::CodeGenFunction::EmitCallArg(), and clang::CodeGen::CodeGenFunction::EmitRValueForField().
| llvm::Value* clang::CodeGen::LValue::getAddress | ( | ) | const [inline] |
Definition at line 230 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::EmitCallExpr(), clang::CodeGen::CodeGenFunction::EmitCastLValue(), clang::CodeGen::CodeGenFunction::EmitCheckedLValue(), clang::CodeGen::CodeGenFunction::EmitComplexPrePostIncDec(), clang::CodeGen::CodeGenFunction::EmitConditionalOperatorLValue(), emitCPPObjectAtomicSetterCall(), clang::CodeGen::CodeGenFunction::EmitCXXConstructorCall(), clang::CodeGen::CodeGenFunction::EmitCXXMemberPointerCallExpr(), clang::CodeGen::CodeGenFunction::EmitExprAsInit(), EmitExprForReferenceBinding(), clang::CodeGen::CodeGenFunction::EmitExtVectorElementExpr(), clang::CodeGen::CodeGenFunction::EmitInitializerForField(), clang::CodeGen::CodeGenFunction::EmitLoadOfLValue(), clang::CodeGen::CodeGenFunction::EmitLoadOfScalar(), clang::CodeGen::CodeGenFunction::EmitLValueForAnonRecordField(), clang::CodeGen::CodeGenFunction::EmitLValueForField(), clang::CodeGen::CodeGenFunction::EmitLValueForFieldInitialization(), EmitMemberInitializer(), clang::CodeGen::CodeGenFunction::EmitNullInitializationLValue(), clang::CodeGen::CodeGenFunction::EmitObjCIsaExpr(), clang::CodeGen::CodeGenFunction::EmitObjCIvarRefLValue(), clang::CodeGen::CodeGenFunction::EmitRValueForField(), clang::CodeGen::CodeGenFunction::EmitScalarInit(), clang::CodeGen::CodeGenFunction::EmitStoreOfScalar(), clang::CodeGen::CodeGenFunction::EmitStoreThroughLValue(), emitStructSetterCall(), EmitTypeidFromVTable(), clang::CodeGen::CodeGenFunction::EmitUnaryOpLValue(), clang::CodeGen::CodeGenFunction::EmitVAListRef(), clang::CodeGen::AggValueSlot::forLValue(), clang::CodeGen::CodeGenFunction::generateObjCGetterBody(), clang::CodeGen::CodeGenFunction::generateObjCSetterBody(), and tryEmitARCRetainLoadOfScalar().
| unsigned clang::CodeGen::LValue::getAddressSpace | ( | ) | const [inline] |
Definition at line 224 of file CGValue.h.
References clang::Qualifiers::getAddressSpace().
| CharUnits clang::CodeGen::LValue::getAlignment | ( | ) | const [inline] |
Definition at line 226 of file CGValue.h.
References clang::CharUnits::fromQuantity().
Referenced by EmitAggMemberInitializer(), clang::CodeGen::CodeGenFunction::EmitARCStoreStrong(), clang::CodeGen::CodeGenFunction::EmitArraySubscriptExpr(), 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 215 of file CGValue.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitStoreThroughLValue().
| llvm::Value* clang::CodeGen::LValue::getBitFieldBaseAddr | ( | ) | const [inline] |
Definition at line 248 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 252 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 241 of file CGValue.h.
References isExtVectorElt().
Referenced by clang::CodeGen::CodeGenFunction::EmitExtVectorElementExpr(), clang::CodeGen::CodeGenFunction::EmitLoadOfExtVectorElementLValue(), and clang::CodeGen::CodeGenFunction::EmitStoreThroughExtVectorComponentLValue().
| llvm::Constant* clang::CodeGen::LValue::getExtVectorElts | ( | ) | const [inline] |
Definition at line 242 of file CGValue.h.
References isExtVectorElt(), and VectorElts.
Referenced by clang::CodeGen::CodeGenFunction::EmitExtVectorElementExpr(), clang::CodeGen::CodeGenFunction::EmitLoadOfExtVectorElementLValue(), and clang::CodeGen::CodeGenFunction::EmitStoreThroughExtVectorComponentLValue().
| Qualifiers::ObjCLifetime clang::CodeGen::LValue::getObjCLifetime | ( | ) | const [inline] |
Definition at line 185 of file CGValue.h.
References clang::Qualifiers::getObjCLifetime().
Referenced by clang::CodeGen::CodeGenFunction::EmitScalarInit().
| const Qualifiers& clang::CodeGen::LValue::getQuals | ( | ) | const [inline] |
Definition at line 221 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] |
| llvm::MDNode* clang::CodeGen::LValue::getTBAAInfo | ( | ) | const [inline] |
Definition at line 218 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 183 of file CGValue.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitARCStoreStrong(), clang::CodeGen::CodeGenFunction::EmitDeclRefLValue(), clang::CodeGen::CodeGenFunction::EmitLoadOfBitfieldLValue(), clang::CodeGen::CodeGenFunction::EmitLoadOfExtVectorElementLValue(), clang::CodeGen::CodeGenFunction::EmitLoadOfLValue(), clang::CodeGen::CodeGenFunction::EmitLoadOfScalar(), clang::CodeGen::CodeGenFunction::EmitScalarInit(), clang::CodeGen::CodeGenFunction::EmitStoreOfScalar(), clang::CodeGen::CodeGenFunction::EmitStoreThroughBitfieldLValue(), clang::CodeGen::CodeGenFunction::EmitStoreThroughExtVectorComponentLValue(), and clang::CodeGen::CodeGenFunction::EmitStoreThroughLValue().
| llvm::Value* clang::CodeGen::LValue::getVectorAddr | ( | ) | const [inline] |
Definition at line 237 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 238 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 179 of file CGValue.h.
References clang::Qualifiers::getCVRQualifiers().
Referenced by clang::CodeGen::CodeGenFunction::EmitLValueForAnonRecordField(), and clang::CodeGen::CodeGenFunction::EmitLValueForField().
| bool clang::CodeGen::LValue::isBitField | ( | ) | const [inline] |
Definition at line 174 of file CGValue.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitCheckedLValue(), clang::CodeGen::CodeGenFunction::EmitLoadOfLValue(), clang::CodeGen::CodeGenFunction::EmitStoreThroughLValue(), getBitFieldBaseAddr(), and getBitFieldInfo().
| bool clang::CodeGen::LValue::isExtVectorElt | ( | ) | const [inline] |
Definition at line 175 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 198 of file CGValue.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitStoreThroughLValue(), and setObjCGCLValueClass().
| bool clang::CodeGen::LValue::isNonGC | ( | ) | const [inline] |
Definition at line 195 of file CGValue.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitStoreThroughLValue().
| bool clang::CodeGen::LValue::isObjCArray | ( | ) | const [inline] |
Definition at line 192 of file CGValue.h.
Referenced by setObjCGCLValueClass().
| bool clang::CodeGen::LValue::isObjCIvar | ( | ) | const [inline] |
Definition at line 189 of file CGValue.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitStoreThroughLValue(), and setObjCGCLValueClass().
| bool clang::CodeGen::LValue::isObjCStrong | ( | ) | const [inline] |
Definition at line 207 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 204 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 178 of file CGValue.h.
References clang::Qualifiers::hasRestrict().
| bool clang::CodeGen::LValue::isSimple | ( | ) | const [inline] |
Definition at line 172 of file CGValue.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitArraySubscriptExpr(), clang::CodeGen::CodeGenFunction::EmitCallArg(), clang::CodeGen::CodeGenFunction::EmitCheckedLValue(), clang::CodeGen::CodeGenFunction::EmitConditionalOperatorLValue(), EmitExprForReferenceBinding(), clang::CodeGen::CodeGenFunction::EmitExtVectorElementExpr(), clang::CodeGen::CodeGenFunction::EmitInitializerForField(), clang::CodeGen::CodeGenFunction::EmitLoadOfLValue(), clang::CodeGen::CodeGenFunction::EmitLValueForAnonRecordField(), clang::CodeGen::CodeGenFunction::EmitStoreThroughLValue(), clang::CodeGen::CodeGenFunction::EmitUnaryOpLValue(), getAddress(), and setAddress().
| bool clang::CodeGen::LValue::isThreadLocalRef | ( | ) | const [inline] |
Definition at line 201 of file CGValue.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitStoreThroughLValue().
| bool clang::CodeGen::LValue::isVectorElt | ( | ) | const [inline] |
Definition at line 173 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 211 of file CGValue.h.
References clang::Qualifiers::hasVolatile().
Referenced by EmitDeclInit(), clang::CodeGen::CodeGenFunction::EmitExprAsInit(), clang::CodeGen::CodeGenFunction::EmitLoadOfScalar(), and clang::CodeGen::CodeGenFunction::EmitStoreOfScalar().
| bool clang::CodeGen::LValue::isVolatileQualified | ( | ) | const [inline] |
Definition at line 177 of file CGValue.h.
References clang::Qualifiers::hasVolatile().
Referenced by asAggregateRValue(), EmitAggMemberInitializer(), clang::CodeGen::CodeGenFunction::EmitComplexPrePostIncDec(), clang::CodeGen::CodeGenFunction::EmitInitializerForField(), clang::CodeGen::CodeGenFunction::EmitLoadOfBitfieldLValue(), clang::CodeGen::CodeGenFunction::EmitLoadOfExtVectorElementLValue(), clang::CodeGen::CodeGenFunction::EmitLoadOfLValue(), EmitMemberInitializer(), clang::CodeGen::CodeGenFunction::EmitRValueForField(), clang::CodeGen::CodeGenFunction::EmitStoreThroughBitfieldLValue(), clang::CodeGen::CodeGenFunction::EmitStoreThroughExtVectorComponentLValue(), clang::CodeGen::CodeGenFunction::EmitStoreThroughLValue(), and clang::CodeGen::CodeGenFunction::generateObjCGetterBody().
| static LValue clang::CodeGen::LValue::MakeAddr | ( | llvm::Value * | address, |
| QualType | type, | ||
| CharUnits | alignment, | ||
| ASTContext & | Context, | ||
| llvm::MDNode * | TBAAInfo = 0 |
||
| ) | [inline, static] |
Definition at line 257 of file CGValue.h.
References clang::ASTContext::getObjCGCAttrKind(), clang::QualType::getQualifiers(), and clang::Qualifiers::setObjCGCAttr().
Referenced by clang::CodeGen::CodeGenFunction::EmitAtomicExpr(), clang::CodeGen::CodeGenFunction::EmitObjCCollectionLiteral(), clang::CodeGen::CodeGenFunction::MakeAddrLValue(), and clang::CodeGen::CodeGenFunction::MakeNaturalAlignAddrLValue().
| static LValue clang::CodeGen::LValue::MakeBitfield | ( | llvm::Value * | BaseValue, |
| const CGBitFieldInfo & | Info, | ||
| QualType | type | ||
| ) | [inline, static] |
Create a new object to represent a bit-field access.
| BaseValue | - The base address of the structure containing the bit-field. |
| Info | - The information describing how to perform the bit-field access. |
Definition at line 296 of file CGValue.h.
References BitFieldInfo, and clang::QualType::getQualifiers().
Referenced by clang::CodeGen::CodeGenFunction::EmitLValueForBitfield(), 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 280 of file CGValue.h.
References clang::QualType::getQualifiers(), and VectorElts.
Referenced by clang::CodeGen::CodeGenFunction::EmitExtVectorElementExpr().
| static LValue clang::CodeGen::LValue::MakeVectorElt | ( | llvm::Value * | Vec, |
| llvm::Value * | Idx, | ||
| QualType | type, | ||
| CharUnits | Alignment | ||
| ) | [inline, static] |
Definition at line 270 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 231 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 227 of file CGValue.h.
References clang::CharUnits::getQuantity().
Referenced by EmitAggMemberInitializer().
| void clang::CodeGen::LValue::setBaseIvarExp | ( | Expr * | V | ) | [inline] |
Definition at line 216 of file CGValue.h.
Referenced by setObjCGCLValueClass().
| void clang::CodeGen::LValue::setGlobalObjCRef | ( | bool | Value | ) | [inline] |
Definition at line 199 of file CGValue.h.
Referenced by setObjCGCLValueClass().
| void clang::CodeGen::LValue::setNonGC | ( | bool | Value | ) | [inline] |
Definition at line 196 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 193 of file CGValue.h.
Referenced by setObjCGCLValueClass().
| void clang::CodeGen::LValue::setObjCIvar | ( | bool | Value | ) | [inline] |
Definition at line 190 of file CGValue.h.
Referenced by setObjCGCLValueClass().
| void clang::CodeGen::LValue::setTBAAInfo | ( | llvm::MDNode * | N | ) | [inline] |
Definition at line 219 of file CGValue.h.
Referenced by clang::CodeGen::CodeGenFunction::EmitLValueForField().
| void clang::CodeGen::LValue::setThreadLocalRef | ( | bool | Value | ) | [inline] |
Definition at line 202 of file CGValue.h.
Referenced by setObjCGCLValueClass().
Definition at line 121 of file CGValue.h.
Referenced by getBitFieldInfo(), and MakeBitfield().
| llvm::Constant* clang::CodeGen::LValue::VectorElts |
Definition at line 118 of file CGValue.h.
Referenced by getExtVectorElts(), and MakeExtVectorElt().
Definition at line 115 of file CGValue.h.
Referenced by getVectorIdx(), and MakeVectorElt().