Lines Matching refs:RV
1413 void CodeGenFunction::EmitReturnOfRValue(RValue RV, QualType Ty) { in EmitReturnOfRValue() argument
1414 if (RV.isScalar()) { in EmitReturnOfRValue()
1415 Builder.CreateStore(RV.getScalarVal(), ReturnValue); in EmitReturnOfRValue()
1416 } else if (RV.isAggregate()) { in EmitReturnOfRValue()
1418 LValue Src = MakeAddrLValue(RV.getAggregateAddress(), Ty); in EmitReturnOfRValue()
1421 EmitStoreOfComplex(RV.getComplexVal(), MakeAddrLValue(ReturnValue, Ty), in EmitReturnOfRValue()
1486 const Expr *RV = S.getRetValue(); in EmitReturnStmt() local
1496 SaveRetExprRAII SaveRetExpr(RV, *this); in EmitReturnStmt()
1499 if (const auto *EWC = dyn_cast_or_null<ExprWithCleanups>(RV)) in EmitReturnStmt()
1500 RV = EWC->getSubExpr(); in EmitReturnStmt()
1505 if (RV && CurFnInfo && in EmitReturnStmt()
1507 if (auto CE = dyn_cast<CallExpr>(RV)) { in EmitReturnStmt()
1531 } else if (!ReturnValue.isValid() || (RV && RV->getType()->isVoidType())) { in EmitReturnStmt()
1534 if (RV) { in EmitReturnStmt()
1535 EmitAnyExpr(RV); in EmitReturnStmt()
1537 } else if (!RV) { in EmitReturnStmt()
1542 RValue Result = EmitReferenceBindingToExpr(RV); in EmitReturnStmt()
1545 switch (getEvaluationKind(RV->getType())) { in EmitReturnStmt()
1547 llvm::Value *Ret = EmitScalarExpr(RV); in EmitReturnStmt()
1549 EmitStoreOfScalar(Ret, MakeAddrLValue(ReturnValue, RV->getType()), in EmitReturnStmt()
1556 EmitComplexExprIntoLValue(RV, MakeAddrLValue(ReturnValue, RV->getType()), in EmitReturnStmt()
1560 EmitAggExpr(RV, AggValueSlot::forAddr( in EmitReturnStmt()
1571 if (!RV || RV->isEvaluatable(getContext())) in EmitReturnStmt()