Lines Matching refs:ComplexPairTy
30 typedef CodeGenFunction::ComplexPairTy ComplexPairTy; typedef
44 : public StmtVisitor<ComplexExprEmitter, ComplexPairTy> {
73 ComplexPairTy EmitLoadOfLValue(const Expr *E) { in EmitLoadOfLValue()
77 ComplexPairTy EmitLoadOfLValue(LValue LV, SourceLocation Loc);
81 void EmitStoreOfComplex(ComplexPairTy Val, LValue LV, bool isInit);
84 ComplexPairTy EmitComplexToComplexCast(ComplexPairTy Val, QualType SrcType,
87 ComplexPairTy EmitScalarToComplexCast(llvm::Value *Val, QualType SrcType,
94 ComplexPairTy Visit(Expr *E) { in Visit()
96 return StmtVisitor<ComplexExprEmitter, ComplexPairTy>::Visit(E); in Visit()
99 ComplexPairTy VisitStmt(Stmt *S) { in VisitStmt()
103 ComplexPairTy VisitExpr(Expr *S);
104 ComplexPairTy VisitConstantExpr(ConstantExpr *E) { in VisitConstantExpr()
107 ComplexPairTy VisitParenExpr(ParenExpr *PE) { return Visit(PE->getSubExpr());} in VisitParenExpr()
108 ComplexPairTy VisitGenericSelectionExpr(GenericSelectionExpr *GE) { in VisitGenericSelectionExpr()
111 ComplexPairTy VisitImaginaryLiteral(const ImaginaryLiteral *IL);
112 ComplexPairTy
116 ComplexPairTy VisitCoawaitExpr(CoawaitExpr *S) { in VisitCoawaitExpr()
119 ComplexPairTy VisitCoyieldExpr(CoyieldExpr *S) { in VisitCoyieldExpr()
122 ComplexPairTy VisitUnaryCoawait(const UnaryOperator *E) { in VisitUnaryCoawait()
126 ComplexPairTy emitConstant(const CodeGenFunction::ConstantEmission &Constant, in emitConstant()
134 return ComplexPairTy(pair->getAggregateElement(0U), in emitConstant()
139 ComplexPairTy VisitDeclRefExpr(DeclRefExpr *E) { in VisitDeclRefExpr()
144 ComplexPairTy VisitObjCIvarRefExpr(ObjCIvarRefExpr *E) { in VisitObjCIvarRefExpr()
147 ComplexPairTy VisitObjCMessageExpr(ObjCMessageExpr *E) { in VisitObjCMessageExpr()
150 ComplexPairTy VisitArraySubscriptExpr(Expr *E) { return EmitLoadOfLValue(E); } in VisitArraySubscriptExpr()
151 ComplexPairTy VisitMemberExpr(MemberExpr *ME) { in VisitMemberExpr()
159 ComplexPairTy VisitOpaqueValueExpr(OpaqueValueExpr *E) { in VisitOpaqueValueExpr()
166 ComplexPairTy VisitPseudoObjectExpr(PseudoObjectExpr *E) { in VisitPseudoObjectExpr()
172 ComplexPairTy EmitCast(CastKind CK, Expr *Op, QualType DestTy);
173 ComplexPairTy VisitImplicitCastExpr(ImplicitCastExpr *E) { in VisitImplicitCastExpr()
178 ComplexPairTy VisitCastExpr(CastExpr *E) { in VisitCastExpr()
183 ComplexPairTy VisitCallExpr(const CallExpr *E);
184 ComplexPairTy VisitStmtExpr(const StmtExpr *E);
187 ComplexPairTy VisitPrePostIncDec(const UnaryOperator *E, in VisitPrePostIncDec()
192 ComplexPairTy VisitUnaryPostDec(const UnaryOperator *E) { in VisitUnaryPostDec()
195 ComplexPairTy VisitUnaryPostInc(const UnaryOperator *E) { in VisitUnaryPostInc()
198 ComplexPairTy VisitUnaryPreDec(const UnaryOperator *E) { in VisitUnaryPreDec()
201 ComplexPairTy VisitUnaryPreInc(const UnaryOperator *E) { in VisitUnaryPreInc()
204 ComplexPairTy VisitUnaryDeref(const Expr *E) { return EmitLoadOfLValue(E); } in VisitUnaryDeref()
205 ComplexPairTy VisitUnaryPlus (const UnaryOperator *E) { in VisitUnaryPlus()
210 ComplexPairTy VisitUnaryMinus (const UnaryOperator *E);
211 ComplexPairTy VisitUnaryNot (const UnaryOperator *E);
213 ComplexPairTy VisitUnaryExtension(const UnaryOperator *E) { in VisitUnaryExtension()
216 ComplexPairTy VisitCXXDefaultArgExpr(CXXDefaultArgExpr *DAE) { in VisitCXXDefaultArgExpr()
219 ComplexPairTy VisitCXXDefaultInitExpr(CXXDefaultInitExpr *DIE) { in VisitCXXDefaultInitExpr()
223 ComplexPairTy VisitExprWithCleanups(ExprWithCleanups *E) { in VisitExprWithCleanups()
226 ComplexPairTy Vals = Visit(E->getSubExpr()); in VisitExprWithCleanups()
232 ComplexPairTy VisitCXXScalarValueInitExpr(CXXScalarValueInitExpr *E) { in VisitCXXScalarValueInitExpr()
236 return ComplexPairTy(Null, Null); in VisitCXXScalarValueInitExpr()
238 ComplexPairTy VisitImplicitValueInitExpr(ImplicitValueInitExpr *E) { in VisitImplicitValueInitExpr()
243 return ComplexPairTy(Null, Null); in VisitImplicitValueInitExpr()
247 ComplexPairTy LHS;
248 ComplexPairTy RHS;
254 ComplexPairTy (ComplexExprEmitter::*Func)
257 ComplexPairTy EmitCompoundAssign(const CompoundAssignOperator *E,
258 ComplexPairTy (ComplexExprEmitter::*Func)
261 ComplexPairTy EmitBinAdd(const BinOpInfo &Op);
262 ComplexPairTy EmitBinSub(const BinOpInfo &Op);
263 ComplexPairTy EmitBinMul(const BinOpInfo &Op);
264 ComplexPairTy EmitBinDiv(const BinOpInfo &Op);
266 ComplexPairTy EmitComplexBinOpLibCall(StringRef LibCallName,
269 ComplexPairTy VisitBinAdd(const BinaryOperator *E) { in VisitBinAdd()
272 ComplexPairTy VisitBinSub(const BinaryOperator *E) { in VisitBinSub()
275 ComplexPairTy VisitBinMul(const BinaryOperator *E) { in VisitBinMul()
278 ComplexPairTy VisitBinDiv(const BinaryOperator *E) { in VisitBinDiv()
283 ComplexPairTy VisitBinAddAssign(const CompoundAssignOperator *E) { in VisitBinAddAssign()
286 ComplexPairTy VisitBinSubAssign(const CompoundAssignOperator *E) { in VisitBinSubAssign()
289 ComplexPairTy VisitBinMulAssign(const CompoundAssignOperator *E) { in VisitBinMulAssign()
292 ComplexPairTy VisitBinDivAssign(const CompoundAssignOperator *E) { in VisitBinDivAssign()
302 ComplexPairTy &Val);
303 ComplexPairTy VisitBinAssign (const BinaryOperator *E);
304 ComplexPairTy VisitBinComma (const BinaryOperator *E);
307 ComplexPairTy
309 ComplexPairTy VisitChooseExpr(ChooseExpr *CE);
311 ComplexPairTy VisitInitListExpr(InitListExpr *E);
313 ComplexPairTy VisitCompoundLiteralExpr(CompoundLiteralExpr *E) { in VisitCompoundLiteralExpr()
317 ComplexPairTy VisitVAArgExpr(VAArgExpr *E);
319 ComplexPairTy VisitAtomicExpr(AtomicExpr *E) { in VisitAtomicExpr()
344 ComplexPairTy ComplexExprEmitter::EmitLoadOfLValue(LValue lvalue, in EmitLoadOfLValue()
365 return ComplexPairTy(Real, Imag); in EmitLoadOfLValue()
370 void ComplexExprEmitter::EmitStoreOfComplex(ComplexPairTy Val, LValue lvalue, in EmitStoreOfComplex()
390 ComplexPairTy ComplexExprEmitter::VisitExpr(Expr *E) { in VisitExpr()
395 return ComplexPairTy(U, U); in VisitExpr()
398 ComplexPairTy ComplexExprEmitter::
401 return ComplexPairTy(llvm::Constant::getNullValue(Imag->getType()), Imag); in VisitImaginaryLiteral()
405 ComplexPairTy ComplexExprEmitter::VisitCallExpr(const CallExpr *E) { in VisitCallExpr()
412 ComplexPairTy ComplexExprEmitter::VisitStmtExpr(const StmtExpr *E) { in VisitStmtExpr()
421 ComplexPairTy ComplexExprEmitter::EmitComplexToComplexCast(ComplexPairTy Val, in EmitComplexToComplexCast()
437 ComplexPairTy ComplexExprEmitter::EmitScalarToComplexCast(llvm::Value *Val, in EmitScalarToComplexCast()
446 return ComplexPairTy(Val, llvm::Constant::getNullValue(Val->getType())); in EmitScalarToComplexCast()
449 ComplexPairTy ComplexExprEmitter::EmitCast(CastKind CK, Expr *Op, in EmitCast()
534 ComplexPairTy ComplexExprEmitter::VisitUnaryMinus(const UnaryOperator *E) { in VisitUnaryMinus()
537 ComplexPairTy Op = Visit(E->getSubExpr()); in VisitUnaryMinus()
547 return ComplexPairTy(ResR, ResI); in VisitUnaryMinus()
550 ComplexPairTy ComplexExprEmitter::VisitUnaryNot(const UnaryOperator *E) { in VisitUnaryNot()
554 ComplexPairTy Op = Visit(E->getSubExpr()); in VisitUnaryNot()
561 return ComplexPairTy(Op.first, ResI); in VisitUnaryNot()
564 ComplexPairTy ComplexExprEmitter::EmitBinAdd(const BinOpInfo &Op) { in EmitBinAdd()
580 return ComplexPairTy(ResR, ResI); in EmitBinAdd()
583 ComplexPairTy ComplexExprEmitter::EmitBinSub(const BinOpInfo &Op) { in EmitBinSub()
599 return ComplexPairTy(ResR, ResI); in EmitBinSub()
603 ComplexPairTy ComplexExprEmitter::EmitComplexBinOpLibCall(StringRef LibCallName, in EmitComplexBinOpLibCall()
663 ComplexPairTy ComplexExprEmitter::EmitBinMul(const BinOpInfo &Op) { in EmitBinMul()
736 return ComplexPairTy(RealPHI, ImagPHI); in EmitBinMul()
760 return ComplexPairTy(ResR, ResI); in EmitBinMul()
765 ComplexPairTy ComplexExprEmitter::EmitBinDiv(const BinOpInfo &Op) { in EmitBinDiv()
850 return ComplexPairTy(DSTr, DSTi); in EmitBinDiv()
859 Ops.LHS = ComplexPairTy(CGF.EmitScalarExpr(E->getLHS()), nullptr); in EmitBinOps()
863 Ops.RHS = ComplexPairTy(CGF.EmitScalarExpr(E->getRHS()), nullptr); in EmitBinOps()
874 ComplexPairTy (ComplexExprEmitter::*Func)(const BinOpInfo&), in EmitCompoundAssignLValue()
895 OpInfo.RHS = ComplexPairTy(CGF.EmitScalarExpr(E->getRHS()), nullptr); in EmitCompoundAssignLValue()
907 ComplexPairTy LHSVal = EmitLoadOfLValue(LHS, Loc); in EmitCompoundAssignLValue()
916 OpInfo.LHS = ComplexPairTy(LHSVal, nullptr); in EmitCompoundAssignLValue()
923 ComplexPairTy Result = (this->*Func)(OpInfo); in EmitCompoundAssignLValue()
927 ComplexPairTy ResVal = in EmitCompoundAssignLValue()
942 ComplexPairTy ComplexExprEmitter::
944 ComplexPairTy (ComplexExprEmitter::*Func)(const BinOpInfo&)){ in EmitCompoundAssign()
960 ComplexPairTy &Val) { in EmitBinAssignLValue()
979 ComplexPairTy ComplexExprEmitter::VisitBinAssign(const BinaryOperator *E) { in VisitBinAssign()
980 ComplexPairTy Val; in VisitBinAssign()
994 ComplexPairTy ComplexExprEmitter::VisitBinComma(const BinaryOperator *E) { in VisitBinComma()
999 ComplexPairTy ComplexExprEmitter::
1018 ComplexPairTy LHS = Visit(E->getTrueExpr()); in VisitAbstractConditionalOperator()
1025 ComplexPairTy RHS = Visit(E->getFalseExpr()); in VisitAbstractConditionalOperator()
1040 return ComplexPairTy(RealPN, ImagPN); in VisitAbstractConditionalOperator()
1043 ComplexPairTy ComplexExprEmitter::VisitChooseExpr(ChooseExpr *E) { in VisitChooseExpr()
1047 ComplexPairTy ComplexExprEmitter::VisitInitListExpr(InitListExpr *E) { in VisitInitListExpr()
1058 return ComplexPairTy(Real, Imag); in VisitInitListExpr()
1068 return ComplexPairTy(zeroConstant, zeroConstant); in VisitInitListExpr()
1071 ComplexPairTy ComplexExprEmitter::VisitVAArgExpr(VAArgExpr *E) { in VisitVAArgExpr()
1080 return ComplexPairTy(U, U); in VisitVAArgExpr()
1093 ComplexPairTy CodeGenFunction::EmitComplexExpr(const Expr *E, bool IgnoreReal, in EmitComplexExpr()
1107 ComplexPairTy Val = Emitter.Visit(const_cast<Expr*>(E)); in EmitComplexExprIntoLValue()
1112 void CodeGenFunction::EmitStoreOfComplex(ComplexPairTy V, LValue dest, in EmitStoreOfComplex()
1118 ComplexPairTy CodeGenFunction::EmitLoadOfComplex(LValue src, in EmitLoadOfComplex()
1125 ComplexPairTy Val; // ignored in EmitComplexAssignmentLValue()
1129 typedef ComplexPairTy (ComplexExprEmitter::*CompoundFunc)(