Lines Matching refs:LV

245     LValue LV = MakeAddrLValue(Location, E->getType());
246 EmitStoreThroughLValue(RV, LV);
572 LValue LV = MakeAddrLValue(Object, E->getType(), AlignmentSource::Decl);
573 LV = EmitLValueForField(LV, Adjustment.Field);
574 assert(LV.isSimple() &&
576 Object = LV.getAddress(*this);
595 LValue LV = EmitLValue(E);
596 assert(LV.isSimple());
597 llvm::Value *Value = LV.getPointer(*this);
988 EmitComplexPrePostIncDec(const UnaryOperator *E, LValue LV,
990 ComplexPairTy InVal = EmitLoadOfComplex(LV, E->getExprLoc());
1013 EmitStoreOfComplex(IncVal, LV, /*init*/ false);
1132 LValue LV = EmitLValue(UO->getSubExpr());
1133 if (BaseInfo) *BaseInfo = LV.getBaseInfo();
1134 if (TBAAInfo) *TBAAInfo = LV.getTBAAInfo();
1135 return LV.getAddress(*this);
1211 LValue LV;
1213 LV = EmitArraySubscriptExpr(cast<ArraySubscriptExpr>(E), /*Accessed*/true);
1215 LV = EmitLValue(E);
1216 if (!isa<DeclRefExpr>(E) && !LV.isBitField() && LV.isSimple()) {
1225 EmitTypeCheck(TCK, E->getExprLoc(), LV.getPointer(*this), E->getType(),
1226 LV.getAlignment(), SkippedChecks);
1228 return LV;
1309 LValue LV = EmitLValue(cleanups->getSubExpr());
1310 if (LV.isSimple()) {
1313 llvm::Value *V = LV.getPointer(*this);
1315 return LValue::MakeAddr(Address(V, LV.getAlignment()), LV.getType(),
1316 getContext(), LV.getBaseInfo(), LV.getTBAAInfo());
1320 return LV;
1777 RValue CodeGenFunction::EmitLoadOfLValue(LValue LV, SourceLocation Loc) {
1778 if (LV.isObjCWeak()) {
1780 Address AddrWeakObj = LV.getAddress(*this);
1784 if (LV.getQuals().getObjCLifetime() == Qualifiers::OCL_Weak) {
1787 return RValue::get(EmitARCLoadWeak(LV.getAddress(*this)));
1791 llvm::Value *Object = EmitARCLoadWeakRetained(LV.getAddress(*this));
1792 Object = EmitObjCConsumeObject(LV.getType(), Object);
1796 if (LV.isSimple()) {
1797 assert(!LV.getType()->isFunctionType());
1800 return RValue::get(EmitLoadOfScalar(LV, Loc));
1803 if (LV.isVectorElt()) {
1804 llvm::LoadInst *Load = Builder.CreateLoad(LV.getVectorAddress(),
1805 LV.isVolatileQualified());
1806 return RValue::get(Builder.CreateExtractElement(Load, LV.getVectorIdx(),
1812 if (LV.isExtVectorElt())
1813 return EmitLoadOfExtVectorElementLValue(LV);
1816 if (LV.isGlobalReg())
1817 return EmitLoadOfGlobalRegLValue(LV);
1819 assert(LV.isBitField() && "Unknown LValue type!");
1820 return EmitLoadOfBitfieldLValue(LV, Loc);
1823 RValue CodeGenFunction::EmitLoadOfBitfieldLValue(LValue LV,
1825 const CGBitFieldInfo &Info = LV.getBitFieldInfo();
1828 llvm::Type *ResLTy = ConvertType(LV.getType());
1830 Address Ptr = LV.getBitFieldAddress();
1831 llvm::Value *Val = Builder.CreateLoad(Ptr, LV.isVolatileQualified(), "bf.load");
1849 EmitScalarRangeCheck(Val, LV.getType(), Loc);
1855 RValue CodeGenFunction::EmitLoadOfExtVectorElementLValue(LValue LV) {
1856 llvm::Value *Vec = Builder.CreateLoad(LV.getExtVectorAddress(),
1857 LV.isVolatileQualified());
1859 const llvm::Constant *Elts = LV.getExtVectorElts();
1863 const VectorType *ExprVT = LV.getType()->getAs<VectorType>();
1884 Address CodeGenFunction::EmitExtVectorElementLValue(LValue LV) {
1885 Address VectorAddress = LV.getExtVectorAddress();
1886 QualType EQT = LV.getType()->castAs<VectorType>()->getElementType();
1893 const llvm::Constant *Elts = LV.getExtVectorElts();
1904 RValue CodeGenFunction::EmitLoadOfGlobalRegLValue(LValue LV) {
1905 assert((LV.getType()->isIntegerType() || LV.getType()->isPointerType()) &&
1908 cast<llvm::MetadataAsValue>(LV.getGlobalReg())->getMetadata());
1911 llvm::Type *OrigTy = CGM.getTypes().ConvertType(LV.getType());
2191 LValue &LV,
2204 LV.setObjCIvar(false);
2208 LV.setObjCIvar(true);
2210 LV.setBaseIvarExp(Exp->getBase());
2211 LV.setObjCArray(E->getType()->isArrayType());
2218 LV.setGlobalObjCRef(true);
2219 LV.setThreadLocalRef(VD->getTLSKind() != VarDecl::TLS_None);
2222 LV.setObjCArray(E->getType()->isArrayType());
2227 setObjCGCLValueClass(Ctx, Exp->getSubExpr(), LV, IsMemberAccess);
2232 setObjCGCLValueClass(Ctx, Exp->getSubExpr(), LV, IsMemberAccess);
2233 if (LV.isObjCIvar()) {
2240 LV.setObjCIvar(false);
2246 setObjCGCLValueClass(Ctx, Exp->getResultExpr(), LV);
2251 setObjCGCLValueClass(Ctx, Exp->getSubExpr(), LV, IsMemberAccess);
2256 setObjCGCLValueClass(Ctx, Exp->getSubExpr(), LV, IsMemberAccess);
2261 setObjCGCLValueClass(Ctx, Exp->getSubExpr(), LV, IsMemberAccess);
2266 setObjCGCLValueClass(Ctx, Exp->getBase(), LV);
2267 if (LV.isObjCIvar() && !LV.isObjCArray())
2270 LV.setObjCIvar(false);
2271 else if (LV.isGlobalObjCRef() && !LV.isObjCArray())
2274 LV.setGlobalObjCRef(false);
2279 setObjCGCLValueClass(Ctx, Exp->getBase(), LV, true);
2281 // only in the context of LV.isObjCIvar().
2282 LV.setObjCArray(E->getType()->isArrayType());
2391 LValue LV = VD->getType()->isReferenceType() ?
2395 setObjCGCLValueClass(CGF.getContext(), E, LV);
2396 return LV;
2434 LValue LV = CGF.MakeNaturalAlignAddrLValue(ThisValue, TagType);
2435 return CGF.EmitLValueForField(LV, FD);
2661 LValue LV = VD->getType()->isReferenceType() ?
2671 LV.getQuals().removeObjCGCAttr();
2672 LV.setNonGC(true);
2678 LV.setARCPreciseLifetime(ARCImpreciseLifetime);
2679 setObjCGCLValueClass(getContext(), E, LV);
2680 return LV;
2711 LValue LV = MakeAddrLValue(Addr, T, BaseInfo, TBAAInfo);
2712 LV.getQuals().setAddressSpace(ExprTy.getAddressSpace());
2720 LV.isObjCWeak())
2721 LV.setNonGC(!E->isOBJCGCCandidate(getContext()));
2722 return LV;
2726 LValue LV = EmitLValue(E->getSubExpr());
2727 assert(LV.isSimple() && "real/imag on non-ordinary l-value");
2732 !LV.getAddress(*this).getElementType()->isStructTy()) {
2734 return LV;
2741 ? emitAddrOfRealComponent(LV.getAddress(*this), LV.getType())
2742 : emitAddrOfImagComponent(LV.getAddress(*this), LV.getType()));
2743 LValue ElemLV = MakeAddrLValue(Component, T, LV.getBaseInfo(),
2744 CGM.getTBAAInfoForSubobject(LV, T));
2745 ElemLV.getQuals().addQualifiers(LV.getQuals());
2750 LValue LV = EmitLValue(E->getSubExpr());
2754 EmitComplexPrePostIncDec(E, LV, isInc, true/*isPre*/);
2756 EmitScalarPrePostIncDec(E, LV, isInc, true/*isPre*/);
2757 return LV;
3341 LValue LV = EmitLValue(E);
3342 Address Addr = LV.getAddress(*this);
3363 if (BaseInfo) *BaseInfo = LV.getBaseInfo();
3554 LValue LV = EmitLValue(E->getBase());
3556 Address Addr = EmitExtVectorElementLValue(LV);
3558 QualType EltType = LV.getType()->castAs<VectorType>()->getElementType();
3561 return MakeAddrLValue(Addr, EltType, LV.getBaseInfo(),
3562 CGM.getTBAAInfoForSubobject(LV, EltType));
3658 LValue LV = MakeAddrLValue(Addr, E->getType(), EltBaseInfo, EltTBAAInfo);
3662 LV.setNonGC(!E->isOBJCGCCandidate(getContext()));
3663 setObjCGCLValueClass(getContext(), E, LV);
3665 return LV;
3946 LValue LV = EmitLValueForField(BaseLV, Field);
3947 setObjCGCLValueClass(getContext(), E, LV);
3955 LV.setNontemporal(/*Value=*/true);
3957 return LV;
4201 LValue LV = MakeAddrLValue(addr, FieldType, FieldBaseInfo, FieldTBAAInfo);
4202 LV.getQuals().addCVRQualifiers(RecordCVR);
4205 if (LV.getQuals().getObjCGCAttr() == Qualifiers::Weak)
4206 LV.getQuals().removeObjCGCAttr();
4208 return LV;
4422 LValue LV = EmitLValue(E->getSubExpr());
4423 Address V = LV.getAddress(*this);
4442 LValue LV = EmitLValue(E->getSubExpr());
4443 Address This = LV.getAddress(*this);
4453 return MakeAddrLValue(Base, E->getType(), LV.getBaseInfo(),
4454 CGM.getTBAAInfoForSubobject(LV, E->getType()));
4462 LValue LV = EmitLValue(E->getSubExpr());
4466 LV.getAddress(*this), DerivedClassDecl, E->path_begin(), E->path_end(),
4480 return MakeAddrLValue(Derived, E->getType(), LV.getBaseInfo(),
4481 CGM.getTBAAInfoForSubobject(LV, E->getType()));
4488 LValue LV = EmitLValue(E->getSubExpr());
4489 Address V = Builder.CreateBitCast(LV.getAddress(*this),
4497 return MakeAddrLValue(V, E->getType(), LV.getBaseInfo(),
4498 CGM.getTBAAInfoForSubobject(LV, E->getType()));
4501 LValue LV = EmitLValue(E->getSubExpr());
4504 *this, LV.getPointer(*this),
4507 return MakeAddrLValue(Address(V, LV.getAddress(*this).getAlignment()),
4508 E->getType(), LV.getBaseInfo(), LV.getTBAAInfo());
4511 LValue LV = EmitLValue(E->getSubExpr());
4512 Address V = Builder.CreateElementBitCast(LV.getAddress(*this),
4514 return MakeAddrLValue(V, E->getType(), LV.getBaseInfo(),
4515 CGM.getTBAAInfoForSubobject(LV, E->getType()));
4557 RValue CodeGenFunction::EmitRValueForField(LValue LV,
4561 LValue FieldLV = EmitLValueForField(LV, FD);
4725 LValue LV = EmitCheckedLValue(E->getLHS(), TCK_Store);
4727 EmitNullabilityCheck(LV, RV.getScalarVal(), E->getExprLoc());
4728 EmitStoreThroughLValue(RV, LV);
4732 return LV;
4845 LValue LV =
4848 setObjCGCLValueClass(getContext(), E, LV);
4849 return LV;
5095 LValue LV;
5131 LValue LV = CGF.MakeAddrLValue(slot.getAddress(), ov->getType(),
5133 opaqueData = OVMA::bind(CGF, ov, LV);
5143 result.LV = CGF.EmitLValue(ov);
5155 result.LV = CGF.EmitLValue(semantic);
5178 return emitPseudoObjectExpr(*this, E, true, AggValueSlot::ignored()).LV;