Home | History | Annotate | Download | only in CodeGen

Lines Matching full:lvalue

142     LValue LV = MakeAddrLValue(Location, E->getType());
244 // Emit the expression as an lvalue.
245 LValue LV = CGF.EmitLValue(E);
254 // We have to load the lvalue.
263 LValue RefTempDst = CGF.MakeAddrLValue(ReferenceTemporary,
390 LValue LV =
402 LValue TempLV = CGF.MakeAddrLValue(Object,
538 EmitComplexPrePostIncDec(const UnaryOperator *E, LValue LV,
563 // Store the updated result through the lvalue.
573 // LValue Expression Emission
603 LValue CodeGenFunction::EmitUnsupportedLValue(const Expr *E,
610 LValue CodeGenFunction::EmitCheckedLValue(const Expr *E) {
611 LValue LV = EmitLValue(E);
622 /// In either case, the LLVM Value* in the LValue structure is guaranteed to be
628 /// If this returns a normal address, and if the lvalue's C type is fixed size,
630 /// type of the same size of the lvalue's type. If the lvalue has a variable
633 LValue CodeGenFunction::EmitLValue(const Expr *E) {
725 llvm::Value *CodeGenFunction::EmitLoadOfScalar(LValue lvalue) {
726 return EmitLoadOfScalar(lvalue.getAddress(), lvalue.isVolatile(),
727 lvalue.getAlignment(), lvalue.getType(),
728 lvalue.getTBAAInfo());
787 void CodeGenFunction::EmitStoreOfScalar(llvm::Value *value, LValue lvalue) {
788 EmitStoreOfScalar(value, lvalue.getAddress(), lvalue.isVolatile(),
789 lvalue.getAlignment(), lvalue.getType(),
790 lvalue.getTBAAInfo());
793 /// EmitLoadOfLValue - Given an expression that represents a value lvalue, this
794 /// method emits the address of the lvalue, then loads the result as an rvalue,
796 RValue CodeGenFunction::EmitLoadOfLValue(LValue LV) {
828 assert(LV.isPropertyRef() && "Unknown LValue type!");
832 RValue CodeGenFunction::EmitLoadOfBitfieldLValue(LValue
906 RValue CodeGenFunction::EmitLoadOfExtVectorElementLValue(LValue LV) {
939 /// lvalue, where both are guaranteed to the have the same type, and that type
941 void CodeGenFunction::EmitStoreThroughLValue(RValue Src, LValue Dst) {
961 assert(Dst.isPropertyRef() && "Unknown LValue type");
1027 void CodeGenFunction::EmitStoreThroughBitfieldLValue(RValue Src, LValue Dst,
1133 LValue Dst) {
1202 // setObjCGCLValueClass - sets class of he lvalue for the purpose of
1206 LValue &LV) {
1298 static LValue EmitGlobalVarDeclLValue(CodeGenFunction &CGF,
1311 LValue LV = CGF.MakeAddrLValue(V, E->getType(), Alignment);
1316 static LValue EmitFunctionDeclLValue(CodeGenFunction &CGF,
1335 LValue CodeGenFunction::EmitDeclRefLValue(const DeclRefExpr *E) {
1369 LValue LV = MakeAddrLValue(V, E->getType(), Alignment);
1383 // an invalid LValue, but the assert will
1385 return LValue();
1388 LValue CodeGenFunction::EmitBlockDeclRefLValue(const BlockDeclRefExpr *E) {
1394 LValue CodeGenFunction::EmitUnaryOpLValue(const UnaryOperator *E) {
1395 // __extension__ doesn't affect lvalue-ness.
1401 default: assert(0 && "Unknown unary operator lvalue!");
1406 LValue LV = MakeAddrLValue(EmitScalarExpr(E->getSubExpr()), T);
1421 LValue LV = EmitLValue(E->getSubExpr());
1442 LValue LV = EmitLValue(E->getSubExpr());
1454 LValue CodeGenFunction::EmitStringLiteralLValue(const StringLiteral *E) {
1459 LValue CodeGenFunction::EmitObjCEncodeExprLValue(const ObjCEncodeExpr *E) {
1465 LValue CodeGenFunction::EmitPredefinedLValue(const PredefinedExpr *E) {
1555 LValue CodeGenFunction::EmitArraySubscriptExpr(const ArraySubscriptExpr *E) {
1561 // If the base is a vector type, then we are forming a vector element lvalue
1564 // Emit the vector as an lvalue to get its address.
1565 LValue LHS = EmitLValue(E->getBase());
1566 assert(LHS.isSimple() && "Can only subscript lvalue vectors here!");
1568 return LValue::MakeVectorElt(LHS.getAddress(), Idx,
1640 LValue ArrayLV = EmitLValue(Array);
1671 LValue LV = MakeAddrLValue(Address, T, ArrayAlignment);
1694 LValue CodeGenFunction::
1697 LValue Base;
1701 // If it is a pointer to a vector, emit the address and form an lvalue with
1708 // Otherwise, if the base is an lvalue ( as in the case of foo.x.x),
1709 // emit the base as an lvalue.
1718 // Store the vector to memory (because LValue wants an address).
1733 return LValue::MakeExtVectorElt(Base.getAddress(), CV, type);
1735 assert(Base.isExtVectorElt() && "Can only subscript lvalue vec elts here!");
1747 return LValue::MakeExtVectorElt(Base.getExtVectorAddr(), CV, type);
1750 LValue CodeGenFunction::EmitMemberExpr(const MemberExpr *E) {
1756 // If this is s.x, emit s as an lvalue. If it is s->x, emit s as a scalar.
1763 LValue BaseLV = EmitLValue(BaseExpr);
1774 LValue LV = EmitLValueForField(BaseValue, Field,
1788 return LValue();
1791 LValue CodeGenFunction::EmitLValueForBitfield(llvm::Value *BaseValue,
1797 return LValue::MakeBitfield(BaseValue, Info,
1804 /// an lvalue for the ultimate field.
1805 LValue CodeGenFunction::EmitLValueForAnonRecordField(llvm::Value *BaseValue,
1811 LValue LV = EmitLValueForField(BaseValue, cast<FieldDecl>(*I),
1821 LValue CodeGenFunction::EmitLValueForField(llvm::Value *baseAddr,
1871 LValue LV = MakeAddrLValue(addr, type, alignment);
1887 LValue
1915 LValue CodeGenFunction::EmitCompoundLiteralLValue(const CompoundLiteralExpr *E){
1918 LValue Result = MakeAddrLValue(DeclPtr, E->getType());
1926 LValue CodeGenFunction::
1958 LValue lhs = EmitLValue(expr->getTrueExpr());
1970 LValue rhs = EmitLValue(expr->getFalseExpr());
1979 "cond-lvalue");
1986 /// If the cast is a dynamic_cast, we can have the usual lvalue result,
1987 /// otherwise if a cast is needed by the code generator in an lvalue context,
1992 LValue CodeGenFunction::EmitCastLValue(const CastExpr *E) {
1995 return EmitUnsupportedLValue(E, "unexpected cast lvalue");
2001 LValue LV = EmitLValue(E->getSubExpr());
2056 // as a value, copy it into a temporary, and return an lvalue referring to
2064 LValue LV = EmitLValue(E->getSubExpr());
2082 LValue LV = EmitLValue(E->getSubExpr());
2100 LValue LV = EmitLValue(E->getSubExpr());
2114 LValue LV = EmitLValue(E->getSubExpr());
2120 LValue
2128 llvm_unreachable("Unhandled lvalue cast kind?");
2131 LValue CodeGenFunction::EmitNullInitializationLValue(
2134 LValue LV = MakeAddrLValue(CreateMemTemp(Ty), Ty);
2139 LValue CodeGenFunction::EmitOpaqueValueLValue(const OpaqueValueExpr *e) {
2144 LValue CodeGenFunction::EmitMaterializeTemporaryExpr(
2199 // If this is s.x, emit s as an lvalue. If it is s->x, emit s as a scalar.
2205 LValue BaseLV = EmitLValue(BaseExpr);
2244 LValue CodeGenFunction::EmitBinaryOperatorLValue(const BinaryOperator *E) {
2277 LValue LV = EmitLValue(E->getLHS());
2288 LValue CodeGenFunction::EmitCallExprLValue(const CallExpr *E) {
2301 LValue CodeGenFunction::EmitVAArgExprLValue(const VAArgExpr *E) {
2306 LValue CodeGenFunction::EmitCXXConstructLValue(const CXXConstructExpr *E) {
2314 LValue
2319 LValue
2321 AggValueSlot Slot = CreateAggTemp(E->getType(), "temp.lvalue");
2328 LValue CodeGenFunction::EmitObjCMessageExprLValue(const ObjCMessageExpr *E) {
2341 LValue CodeGenFunction::EmitObjCSelectorLValue(const ObjCSelectorExpr *E) {
2352 LValue CodeGenFunction::EmitLValueForIvar(QualType ObjectTy,
2360 LValue CodeGenFunction::EmitObjCIvarRefLValue(const ObjCIvarRefExpr *E) {
2371 LValue BaseLV = EmitLValue(BaseExpr);
2378 LValue LV =
2385 LValue CodeGenFunction::EmitStmtExprLValue(const StmtExpr *E) {
2413 LValue CodeGenFunction::