Lines Matching refs:CGF
45 CodeGenFunction &CGF; member in __anon009c106e0111::ComplexExprEmitter
51 : CGF(cgf), Builder(CGF.Builder), IgnoreReal(ir), IgnoreImag(ii) { in ComplexExprEmitter()
74 return EmitLoadOfLValue(CGF.EmitLValue(E), E->getExprLoc()); in EmitLoadOfLValue()
95 ApplyDebugLocation DL(CGF, E); in Visit()
100 S->dump(CGF.getContext().getSourceManager()); in VisitStmt()
117 return CGF.EmitCoawaitExpr(*S).getComplexVal(); in VisitCoawaitExpr()
120 return CGF.EmitCoyieldExpr(*S).getComplexVal(); in VisitCoyieldExpr()
130 return EmitLoadOfLValue(Constant.getReferenceLValue(CGF, E), in emitConstant()
140 if (CodeGenFunction::ConstantEmission Constant = CGF.tryEmitAsConstant(E)) in VisitDeclRefExpr()
148 return CGF.EmitObjCMessageExpr(E).getComplexVal(); in VisitObjCMessageExpr()
153 CGF.tryEmitAsConstant(ME)) { in VisitMemberExpr()
154 CGF.EmitIgnoredExpr(ME->getBase()); in VisitMemberExpr()
161 return EmitLoadOfLValue(CGF.getOrCreateOpaqueLValueMapping(E), in VisitOpaqueValueExpr()
163 return CGF.getOrCreateOpaqueRValueMapping(E).getComplexVal(); in VisitOpaqueValueExpr()
167 return CGF.EmitPseudoObjectRValue(E).getComplexVal(); in VisitPseudoObjectExpr()
180 CGF.CGM.EmitExplicitCastExprType(ECE, &CGF); in VisitCastExpr()
189 LValue LV = CGF.EmitLValue(E->getSubExpr()); in VisitPrePostIncDec()
190 return CGF.EmitComplexPrePostIncDec(E, LV, isInc, isPre); in VisitPrePostIncDec()
220 CodeGenFunction::CXXDefaultInitExprScope Scope(CGF); in VisitCXXDefaultInitExpr()
224 CGF.enterFullExpression(E); in VisitExprWithCleanups()
225 CodeGenFunction::RunCleanupsScope Scope(CGF); in VisitExprWithCleanups()
235 llvm::Constant *Null = llvm::Constant::getNullValue(CGF.ConvertType(Elem)); in VisitCXXScalarValueInitExpr()
242 llvm::Constant::getNullValue(CGF.ConvertType(Elem)); in VisitImplicitValueInitExpr()
320 return CGF.EmitAtomicExpr(E).getComplexVal(); in VisitAtomicExpr()
348 return CGF.EmitAtomicLoad(lvalue, loc).getComplexVal(); in EmitLoadOfLValue()
356 Address RealP = CGF.emitAddrOfRealComponent(SrcPtr, lvalue.getType()); in EmitLoadOfLValue()
361 Address ImagP = CGF.emitAddrOfImagComponent(SrcPtr, lvalue.getType()); in EmitLoadOfLValue()
373 (!isInit && CGF.LValueIsSuitableForInlineAtomic(lvalue))) in EmitStoreOfComplex()
374 return CGF.EmitAtomicStore(RValue::getComplex(Val), lvalue, isInit); in EmitStoreOfComplex()
377 Address RealPtr = CGF.emitAddrOfRealComponent(Ptr, lvalue.getType()); in EmitStoreOfComplex()
378 Address ImagPtr = CGF.emitAddrOfImagComponent(Ptr, lvalue.getType()); in EmitStoreOfComplex()
391 CGF.ErrorUnsupported(E, "complex expression"); in VisitExpr()
393 CGF.ConvertType(getComplexType(E->getType())->getElementType()); in VisitExpr()
400 llvm::Value *Imag = CGF.EmitScalarExpr(IL->getSubExpr()); in VisitImaginaryLiteral()
406 if (E->getCallReturnType(CGF.getContext())->isReferenceType()) in VisitCallExpr()
409 return CGF.EmitCallExpr(E).getComplexVal(); in VisitCallExpr()
413 CodeGenFunction::StmtExprEvaluation eval(CGF); in VisitStmtExpr()
414 Address RetAlloca = CGF.EmitCompoundStmt(*E->getSubStmt(), true); in VisitStmtExpr()
416 return EmitLoadOfLValue(CGF.MakeAddrLValue(RetAlloca, E->getType()), in VisitStmtExpr()
432 Val.first = CGF.EmitScalarConversion(Val.first, SrcType, DestType, Loc); in EmitComplexToComplexCast()
433 Val.second = CGF.EmitScalarConversion(Val.second, SrcType, DestType, Loc); in EmitComplexToComplexCast()
443 Val = CGF.EmitScalarConversion(Val, SrcType, DestType, Loc); in EmitScalarToComplexCast()
464 LValue origLV = CGF.EmitLValue(Op); in EmitCast()
466 V = Builder.CreateElementBitCast(V, CGF.ConvertType(DestTy)); in EmitCast()
467 return EmitLoadOfLValue(CGF.MakeAddrLValue(V, DestTy), Op->getExprLoc()); in EmitCast()
520 return EmitScalarToComplexCast(CGF.EmitScalarExpr(Op), Op->getType(), in EmitCast()
626 QualType FQTy = CGF.getContext().getFunctionType(Op.Ty, ArgsQTys, EPI); in EmitComplexBinOpLibCall()
627 const CGFunctionInfo &FuncInfo = CGF.CGM.getTypes().arrangeFreeFunctionCall( in EmitComplexBinOpLibCall()
630 llvm::FunctionType *FTy = CGF.CGM.getTypes().GetFunctionType(FuncInfo); in EmitComplexBinOpLibCall()
631 llvm::Constant *Func = CGF.CGM.CreateBuiltinFunction(FTy, LibCallName); in EmitComplexBinOpLibCall()
635 RValue Res = CGF.EmitCall(FuncInfo, Callee, ReturnValueSlot(), Args, &Call); in EmitComplexBinOpLibCall()
636 cast<llvm::CallInst>(Call)->setCallingConv(CGF.CGM.getRuntimeCC()); in EmitComplexBinOpLibCall()
666 llvm::MDBuilder MDHelper(CGF.getLLVMContext()); in EmitBinMul()
701 llvm::BasicBlock *ContBB = CGF.createBasicBlock("complex_mul_cont"); in EmitBinMul()
702 llvm::BasicBlock *INaNBB = CGF.createBasicBlock("complex_mul_imag_nan"); in EmitBinMul()
712 CGF.EmitBlock(INaNBB); in EmitBinMul()
714 llvm::BasicBlock *LibCallBB = CGF.createBasicBlock("complex_mul_libcall"); in EmitBinMul()
719 CGF.EmitBlock(LibCallBB); in EmitBinMul()
727 CGF.EmitBlock(ContBB); in EmitBinMul()
778 if (RHSi && !CGF.getLangOpts().FastMath) { in EmitBinDiv()
859 Ops.LHS = ComplexPairTy(CGF.EmitScalarExpr(E->getLHS()), nullptr); in EmitBinOps()
863 Ops.RHS = ComplexPairTy(CGF.EmitScalarExpr(E->getRHS()), nullptr); in EmitBinOps()
893 CGF.getContext() in EmitCompoundAssignLValue()
895 OpInfo.RHS = ComplexPairTy(CGF.EmitScalarExpr(E->getRHS()), nullptr); in EmitCompoundAssignLValue()
897 assert(CGF.getContext() in EmitCompoundAssignLValue()
902 LValue LHS = CGF.EmitLValue(E->getLHS()); in EmitCompoundAssignLValue()
910 llvm::Value *LHSVal = CGF.EmitLoadOfScalar(LHS, Loc); in EmitCompoundAssignLValue()
914 if (!CGF.getContext().hasSameUnqualifiedType(ComplexElementTy, LHSTy)) in EmitCompoundAssignLValue()
915 LHSVal = CGF.EmitScalarConversion(LHSVal, LHSTy, ComplexElementTy, Loc); in EmitCompoundAssignLValue()
933 CGF.EmitComplexToScalarConversion(Result, OpInfo.Ty, LHSTy, Loc); in EmitCompoundAssignLValue()
934 CGF.EmitStoreOfScalar(ResVal, LHS, /*isInit*/ false); in EmitCompoundAssignLValue()
949 if (!CGF.getLangOpts().CPlusPlus) in EmitCompoundAssign()
961 assert(CGF.getContext().hasSameUnqualifiedType(E->getLHS()->getType(), in EmitBinAssignLValue()
971 LValue LHS = CGF.EmitLValue(E->getLHS()); in EmitBinAssignLValue()
984 if (!CGF.getLangOpts().CPlusPlus) in VisitBinAssign()
995 CGF.EmitIgnoredExpr(E->getLHS()); in VisitBinComma()
1003 llvm::BasicBlock *LHSBlock = CGF.createBasicBlock("cond.true"); in VisitAbstractConditionalOperator()
1004 llvm::BasicBlock *RHSBlock = CGF.createBasicBlock("cond.false"); in VisitAbstractConditionalOperator()
1005 llvm::BasicBlock *ContBlock = CGF.createBasicBlock("cond.end"); in VisitAbstractConditionalOperator()
1008 CodeGenFunction::OpaqueValueMapping binding(CGF, E); in VisitAbstractConditionalOperator()
1011 CodeGenFunction::ConditionalEvaluation eval(CGF); in VisitAbstractConditionalOperator()
1012 CGF.EmitBranchOnBoolExpr(E->getCond(), LHSBlock, RHSBlock, in VisitAbstractConditionalOperator()
1013 CGF.getProfileCount(E)); in VisitAbstractConditionalOperator()
1015 eval.begin(CGF); in VisitAbstractConditionalOperator()
1016 CGF.EmitBlock(LHSBlock); in VisitAbstractConditionalOperator()
1017 CGF.incrementProfileCounter(E); in VisitAbstractConditionalOperator()
1020 CGF.EmitBranch(ContBlock); in VisitAbstractConditionalOperator()
1021 eval.end(CGF); in VisitAbstractConditionalOperator()
1023 eval.begin(CGF); in VisitAbstractConditionalOperator()
1024 CGF.EmitBlock(RHSBlock); in VisitAbstractConditionalOperator()
1027 CGF.EmitBlock(ContBlock); in VisitAbstractConditionalOperator()
1028 eval.end(CGF); in VisitAbstractConditionalOperator()
1056 llvm::Value *Real = CGF.EmitScalarExpr(E->getInit(0)); in VisitInitListExpr()
1057 llvm::Value *Imag = CGF.EmitScalarExpr(E->getInit(1)); in VisitInitListExpr()
1066 llvm::Type* LTy = CGF.ConvertType(Ty); in VisitInitListExpr()
1073 Address ArgPtr = CGF.EmitVAArg(E, ArgValue); in VisitVAArgExpr()
1076 CGF.ErrorUnsupported(E, "complex va_arg expression"); in VisitVAArgExpr()
1078 CGF.ConvertType(E->getType()->castAs<ComplexType>()->getElementType()); in VisitVAArgExpr()
1083 return EmitLoadOfLValue(CGF.MakeAddrLValue(ArgPtr, E->getType()), in VisitVAArgExpr()