Lines Matching refs:CGF

46   CodeGenFunction &CGF;  member in __anon7a4d3f6a0111::ComplexExprEmitter
52 : CGF(cgf), Builder(CGF.Builder), IgnoreReal(ir), IgnoreImag(ii) { in ComplexExprEmitter()
75 return EmitLoadOfLValue(CGF.EmitLValue(E), E->getExprLoc()); in EmitLoadOfLValue()
96 ApplyDebugLocation DL(CGF, E); in Visit()
101 S->dump(llvm::errs(), CGF.getContext()); in VisitStmt()
106 if (llvm::Constant *Result = ConstantEmitter(CGF).tryEmitConstantExpr(E)) in VisitConstantExpr()
121 return CGF.EmitCoawaitExpr(*S).getComplexVal(); in VisitCoawaitExpr()
124 return CGF.EmitCoyieldExpr(*S).getComplexVal(); in VisitCoyieldExpr()
134 return EmitLoadOfLValue(Constant.getReferenceLValue(CGF, E), in emitConstant()
144 if (CodeGenFunction::ConstantEmission Constant = CGF.tryEmitAsConstant(E)) in VisitDeclRefExpr()
152 return CGF.EmitObjCMessageExpr(E).getComplexVal(); in VisitObjCMessageExpr()
157 CGF.tryEmitAsConstant(ME)) { in VisitMemberExpr()
158 CGF.EmitIgnoredExpr(ME->getBase()); in VisitMemberExpr()
165 return EmitLoadOfLValue(CGF.getOrCreateOpaqueLValueMapping(E), in VisitOpaqueValueExpr()
167 return CGF.getOrCreateOpaqueRValueMapping(E).getComplexVal(); in VisitOpaqueValueExpr()
171 return CGF.EmitPseudoObjectRValue(E).getComplexVal(); in VisitPseudoObjectExpr()
184 CGF.CGM.EmitExplicitCastExprType(ECE, &CGF); in VisitCastExpr()
193 LValue LV = CGF.EmitLValue(E->getSubExpr()); in VisitPrePostIncDec()
194 return CGF.EmitComplexPrePostIncDec(E, LV, isInc, isPre); in VisitPrePostIncDec()
221 CodeGenFunction::CXXDefaultArgExprScope Scope(CGF, DAE); in VisitCXXDefaultArgExpr()
225 CodeGenFunction::CXXDefaultInitExprScope Scope(CGF, DIE); in VisitCXXDefaultInitExpr()
229 CodeGenFunction::RunCleanupsScope Scope(CGF); in VisitExprWithCleanups()
239 llvm::Constant *Null = llvm::Constant::getNullValue(CGF.ConvertType(Elem)); in VisitCXXScalarValueInitExpr()
246 llvm::Constant::getNullValue(CGF.ConvertType(Elem)); in VisitImplicitValueInitExpr()
328 return CGF.EmitAtomicExpr(E).getComplexVal(); in VisitAtomicExpr()
353 return CGF.EmitAtomicLoad(lvalue, loc).getComplexVal(); in EmitLoadOfLValue()
355 Address SrcPtr = lvalue.getAddress(CGF); in EmitLoadOfLValue()
361 Address RealP = CGF.emitAddrOfRealComponent(SrcPtr, lvalue.getType()); in EmitLoadOfLValue()
366 Address ImagP = CGF.emitAddrOfImagComponent(SrcPtr, lvalue.getType()); in EmitLoadOfLValue()
378 (!isInit && CGF.LValueIsSuitableForInlineAtomic(lvalue))) in EmitStoreOfComplex()
379 return CGF.EmitAtomicStore(RValue::getComplex(Val), lvalue, isInit); in EmitStoreOfComplex()
381 Address Ptr = lvalue.getAddress(CGF); in EmitStoreOfComplex()
382 Address RealPtr = CGF.emitAddrOfRealComponent(Ptr, lvalue.getType()); in EmitStoreOfComplex()
383 Address ImagPtr = CGF.emitAddrOfImagComponent(Ptr, lvalue.getType()); in EmitStoreOfComplex()
396 CGF.ErrorUnsupported(E, "complex expression"); in VisitExpr()
398 CGF.ConvertType(getComplexType(E->getType())->getElementType()); in VisitExpr()
405 llvm::Value *Imag = CGF.EmitScalarExpr(IL->getSubExpr()); in VisitImaginaryLiteral()
411 if (E->getCallReturnType(CGF.getContext())->isReferenceType()) in VisitCallExpr()
414 return CGF.EmitCallExpr(E).getComplexVal(); in VisitCallExpr()
418 CodeGenFunction::StmtExprEvaluation eval(CGF); in VisitStmtExpr()
419 Address RetAlloca = CGF.EmitCompoundStmt(*E->getSubStmt(), true); in VisitStmtExpr()
421 return EmitLoadOfLValue(CGF.MakeAddrLValue(RetAlloca, E->getType()), in VisitStmtExpr()
438 Val.first = CGF.EmitScalarConversion(Val.first, SrcType, DestType, Loc); in EmitComplexToComplexCast()
440 Val.second = CGF.EmitScalarConversion(Val.second, SrcType, DestType, Loc); in EmitComplexToComplexCast()
450 Val = CGF.EmitScalarConversion(Val, SrcType, DestType, Loc); in EmitScalarToComplexCast()
471 LValue origLV = CGF.EmitLValue(Op); in EmitCast()
472 Address V = origLV.getAddress(CGF); in EmitCast()
473 V = Builder.CreateElementBitCast(V, CGF.ConvertType(DestTy)); in EmitCast()
474 return EmitLoadOfLValue(CGF.MakeAddrLValue(V, DestTy), Op->getExprLoc()); in EmitCast()
478 LValue SourceLVal = CGF.EmitLValue(Op); in EmitCast()
479 Address Addr = Builder.CreateElementBitCast(SourceLVal.getAddress(CGF), in EmitCast()
480 CGF.ConvertTypeForMem(DestTy)); in EmitCast()
481 LValue DestLV = CGF.MakeAddrLValue(Addr, DestTy); in EmitCast()
541 CodeGenFunction::CGFPOptionsRAII FPOptsRAII(CGF, Op); in EmitCast()
542 return EmitScalarToComplexCast(CGF.EmitScalarExpr(Op), Op->getType(), in EmitCast()
550 CodeGenFunction::CGFPOptionsRAII FPOptsRAII(CGF, Op); in EmitCast()
651 QualType FQTy = CGF.getContext().getFunctionType(Op.Ty, ArgsQTys, EPI); in EmitComplexBinOpLibCall()
652 const CGFunctionInfo &FuncInfo = CGF.CGM.getTypes().arrangeFreeFunctionCall( in EmitComplexBinOpLibCall()
655 llvm::FunctionType *FTy = CGF.CGM.getTypes().GetFunctionType(FuncInfo); in EmitComplexBinOpLibCall()
656 llvm::FunctionCallee Func = CGF.CGM.CreateRuntimeFunction( in EmitComplexBinOpLibCall()
661 RValue Res = CGF.EmitCall(FuncInfo, Callee, ReturnValueSlot(), Args, &Call); in EmitComplexBinOpLibCall()
662 Call->setCallingConv(CGF.CGM.getRuntimeCC()); in EmitComplexBinOpLibCall()
692 llvm::MDBuilder MDHelper(CGF.getLLVMContext()); in EmitBinMul()
727 llvm::BasicBlock *ContBB = CGF.createBasicBlock("complex_mul_cont"); in EmitBinMul()
728 llvm::BasicBlock *INaNBB = CGF.createBasicBlock("complex_mul_imag_nan"); in EmitBinMul()
738 CGF.EmitBlock(INaNBB); in EmitBinMul()
740 llvm::BasicBlock *LibCallBB = CGF.createBasicBlock("complex_mul_libcall"); in EmitBinMul()
745 CGF.EmitBlock(LibCallBB); in EmitBinMul()
753 CGF.EmitBlock(ContBB); in EmitBinMul()
804 if (RHSi && !CGF.getLangOpts().FastMath) { in EmitBinDiv()
885 Ops.LHS = ComplexPairTy(CGF.EmitScalarExpr(E->getLHS()), nullptr); in EmitBinOps()
889 Ops.RHS = ComplexPairTy(CGF.EmitScalarExpr(E->getRHS()), nullptr); in EmitBinOps()
908 CodeGenFunction::CGFPOptionsRAII FPOptsRAII(CGF, E); in EmitCompoundAssignLValue()
920 CGF.getContext() in EmitCompoundAssignLValue()
922 OpInfo.RHS = ComplexPairTy(CGF.EmitScalarExpr(E->getRHS()), nullptr); in EmitCompoundAssignLValue()
924 assert(CGF.getContext() in EmitCompoundAssignLValue()
929 LValue LHS = CGF.EmitLValue(E->getLHS()); in EmitCompoundAssignLValue()
937 llvm::Value *LHSVal = CGF.EmitLoadOfScalar(LHS, Loc); in EmitCompoundAssignLValue()
941 if (!CGF.getContext().hasSameUnqualifiedType(ComplexElementTy, LHSTy)) in EmitCompoundAssignLValue()
942 LHSVal = CGF.EmitScalarConversion(LHSVal, LHSTy, ComplexElementTy, Loc); in EmitCompoundAssignLValue()
960 CGF.EmitComplexToScalarConversion(Result, OpInfo.Ty, LHSTy, Loc); in EmitCompoundAssignLValue()
961 CGF.EmitStoreOfScalar(ResVal, LHS, /*isInit*/ false); in EmitCompoundAssignLValue()
976 if (!CGF.getLangOpts().CPlusPlus) in EmitCompoundAssign()
988 assert(CGF.getContext().hasSameUnqualifiedType(E->getLHS()->getType(), in EmitBinAssignLValue()
998 LValue LHS = CGF.EmitLValue(E->getLHS()); in EmitBinAssignLValue()
1011 if (!CGF.getLangOpts().CPlusPlus) in VisitBinAssign()
1022 CGF.EmitIgnoredExpr(E->getLHS()); in VisitBinComma()
1030 llvm::BasicBlock *LHSBlock = CGF.createBasicBlock("cond.true"); in VisitAbstractConditionalOperator()
1031 llvm::BasicBlock *RHSBlock = CGF.createBasicBlock("cond.false"); in VisitAbstractConditionalOperator()
1032 llvm::BasicBlock *ContBlock = CGF.createBasicBlock("cond.end"); in VisitAbstractConditionalOperator()
1035 CodeGenFunction::OpaqueValueMapping binding(CGF, E); in VisitAbstractConditionalOperator()
1038 CodeGenFunction::ConditionalEvaluation eval(CGF); in VisitAbstractConditionalOperator()
1039 CGF.EmitBranchOnBoolExpr(E->getCond(), LHSBlock, RHSBlock, in VisitAbstractConditionalOperator()
1040 CGF.getProfileCount(E)); in VisitAbstractConditionalOperator()
1042 eval.begin(CGF); in VisitAbstractConditionalOperator()
1043 CGF.EmitBlock(LHSBlock); in VisitAbstractConditionalOperator()
1044 CGF.incrementProfileCounter(E); in VisitAbstractConditionalOperator()
1047 CGF.EmitBranch(ContBlock); in VisitAbstractConditionalOperator()
1048 eval.end(CGF); in VisitAbstractConditionalOperator()
1050 eval.begin(CGF); in VisitAbstractConditionalOperator()
1051 CGF.EmitBlock(RHSBlock); in VisitAbstractConditionalOperator()
1054 CGF.EmitBlock(ContBlock); in VisitAbstractConditionalOperator()
1055 eval.end(CGF); in VisitAbstractConditionalOperator()
1083 llvm::Value *Real = CGF.EmitScalarExpr(E->getInit(0)); in VisitInitListExpr()
1084 llvm::Value *Imag = CGF.EmitScalarExpr(E->getInit(1)); in VisitInitListExpr()
1093 llvm::Type* LTy = CGF.ConvertType(Ty); in VisitInitListExpr()
1100 Address ArgPtr = CGF.EmitVAArg(E, ArgValue); in VisitVAArgExpr()
1103 CGF.ErrorUnsupported(E, "complex va_arg expression"); in VisitVAArgExpr()
1105 CGF.ConvertType(E->getType()->castAs<ComplexType>()->getElementType()); in VisitVAArgExpr()
1110 return EmitLoadOfLValue(CGF.MakeAddrLValue(ArgPtr, E->getType()), in VisitVAArgExpr()