Lines Matching refs:ComplexPairTy
31 typedef CodeGenFunction::ComplexPairTy ComplexPairTy; typedef
45 : public StmtVisitor<ComplexExprEmitter, ComplexPairTy> {
74 ComplexPairTy EmitLoadOfLValue(const Expr *E) { in EmitLoadOfLValue()
78 ComplexPairTy EmitLoadOfLValue(LValue LV, SourceLocation Loc);
82 void EmitStoreOfComplex(ComplexPairTy Val, LValue LV, bool isInit);
85 ComplexPairTy EmitComplexToComplexCast(ComplexPairTy Val, QualType SrcType,
88 ComplexPairTy EmitScalarToComplexCast(llvm::Value *Val, QualType SrcType,
95 ComplexPairTy Visit(Expr *E) { in Visit()
97 return StmtVisitor<ComplexExprEmitter, ComplexPairTy>::Visit(E); in Visit()
100 ComplexPairTy VisitStmt(Stmt *S) { in VisitStmt()
104 ComplexPairTy VisitExpr(Expr *S);
105 ComplexPairTy VisitConstantExpr(ConstantExpr *E) { in VisitConstantExpr()
107 return ComplexPairTy(Result->getAggregateElement(0U), in VisitConstantExpr()
111 ComplexPairTy VisitParenExpr(ParenExpr *PE) { return Visit(PE->getSubExpr());} in VisitParenExpr()
112 ComplexPairTy VisitGenericSelectionExpr(GenericSelectionExpr *GE) { in VisitGenericSelectionExpr()
115 ComplexPairTy VisitImaginaryLiteral(const ImaginaryLiteral *IL);
116 ComplexPairTy
120 ComplexPairTy VisitCoawaitExpr(CoawaitExpr *S) { in VisitCoawaitExpr()
123 ComplexPairTy VisitCoyieldExpr(CoyieldExpr *S) { in VisitCoyieldExpr()
126 ComplexPairTy VisitUnaryCoawait(const UnaryOperator *E) { in VisitUnaryCoawait()
130 ComplexPairTy emitConstant(const CodeGenFunction::ConstantEmission &Constant, in emitConstant()
138 return ComplexPairTy(pair->getAggregateElement(0U), in emitConstant()
143 ComplexPairTy VisitDeclRefExpr(DeclRefExpr *E) { in VisitDeclRefExpr()
148 ComplexPairTy VisitObjCIvarRefExpr(ObjCIvarRefExpr *E) { in VisitObjCIvarRefExpr()
151 ComplexPairTy VisitObjCMessageExpr(ObjCMessageExpr *E) { in VisitObjCMessageExpr()
154 ComplexPairTy VisitArraySubscriptExpr(Expr *E) { return EmitLoadOfLValue(E); } in VisitArraySubscriptExpr()
155 ComplexPairTy VisitMemberExpr(MemberExpr *ME) { in VisitMemberExpr()
163 ComplexPairTy VisitOpaqueValueExpr(OpaqueValueExpr *E) { in VisitOpaqueValueExpr()
170 ComplexPairTy VisitPseudoObjectExpr(PseudoObjectExpr *E) { in VisitPseudoObjectExpr()
176 ComplexPairTy EmitCast(CastKind CK, Expr *Op, QualType DestTy);
177 ComplexPairTy VisitImplicitCastExpr(ImplicitCastExpr *E) { in VisitImplicitCastExpr()
182 ComplexPairTy VisitCastExpr(CastExpr *E) { in VisitCastExpr()
187 ComplexPairTy VisitCallExpr(const CallExpr *E);
188 ComplexPairTy VisitStmtExpr(const StmtExpr *E);
191 ComplexPairTy VisitPrePostIncDec(const UnaryOperator *E, in VisitPrePostIncDec()
196 ComplexPairTy VisitUnaryPostDec(const UnaryOperator *E) { in VisitUnaryPostDec()
199 ComplexPairTy VisitUnaryPostInc(const UnaryOperator *E) { in VisitUnaryPostInc()
202 ComplexPairTy VisitUnaryPreDec(const UnaryOperator *E) { in VisitUnaryPreDec()
205 ComplexPairTy VisitUnaryPreInc(const UnaryOperator *E) { in VisitUnaryPreInc()
208 ComplexPairTy VisitUnaryDeref(const Expr *E) { return EmitLoadOfLValue(E); } in VisitUnaryDeref()
209 ComplexPairTy VisitUnaryPlus (const UnaryOperator *E) { in VisitUnaryPlus()
214 ComplexPairTy VisitUnaryMinus (const UnaryOperator *E);
215 ComplexPairTy VisitUnaryNot (const UnaryOperator *E);
217 ComplexPairTy VisitUnaryExtension(const UnaryOperator *E) { in VisitUnaryExtension()
220 ComplexPairTy VisitCXXDefaultArgExpr(CXXDefaultArgExpr *DAE) { in VisitCXXDefaultArgExpr()
224 ComplexPairTy VisitCXXDefaultInitExpr(CXXDefaultInitExpr *DIE) { in VisitCXXDefaultInitExpr()
228 ComplexPairTy VisitExprWithCleanups(ExprWithCleanups *E) { in VisitExprWithCleanups()
230 ComplexPairTy Vals = Visit(E->getSubExpr()); in VisitExprWithCleanups()
236 ComplexPairTy VisitCXXScalarValueInitExpr(CXXScalarValueInitExpr *E) { in VisitCXXScalarValueInitExpr()
240 return ComplexPairTy(Null, Null); in VisitCXXScalarValueInitExpr()
242 ComplexPairTy VisitImplicitValueInitExpr(ImplicitValueInitExpr *E) { in VisitImplicitValueInitExpr()
247 return ComplexPairTy(Null, Null); in VisitImplicitValueInitExpr()
251 ComplexPairTy LHS;
252 ComplexPairTy RHS;
258 ComplexPairTy (ComplexExprEmitter::*Func)
261 ComplexPairTy EmitCompoundAssign(const CompoundAssignOperator *E,
262 ComplexPairTy (ComplexExprEmitter::*Func)
265 ComplexPairTy EmitBinAdd(const BinOpInfo &Op);
266 ComplexPairTy EmitBinSub(const BinOpInfo &Op);
267 ComplexPairTy EmitBinMul(const BinOpInfo &Op);
268 ComplexPairTy EmitBinDiv(const BinOpInfo &Op);
270 ComplexPairTy EmitComplexBinOpLibCall(StringRef LibCallName,
273 ComplexPairTy VisitBinAdd(const BinaryOperator *E) { in VisitBinAdd()
276 ComplexPairTy VisitBinSub(const BinaryOperator *E) { in VisitBinSub()
279 ComplexPairTy VisitBinMul(const BinaryOperator *E) { in VisitBinMul()
282 ComplexPairTy VisitBinDiv(const BinaryOperator *E) { in VisitBinDiv()
286 ComplexPairTy VisitCXXRewrittenBinaryOperator(CXXRewrittenBinaryOperator *E) { in VisitCXXRewrittenBinaryOperator()
291 ComplexPairTy VisitBinAddAssign(const CompoundAssignOperator *E) { in VisitBinAddAssign()
294 ComplexPairTy VisitBinSubAssign(const CompoundAssignOperator *E) { in VisitBinSubAssign()
297 ComplexPairTy VisitBinMulAssign(const CompoundAssignOperator *E) { in VisitBinMulAssign()
300 ComplexPairTy VisitBinDivAssign(const CompoundAssignOperator *E) { in VisitBinDivAssign()
310 ComplexPairTy &Val);
311 ComplexPairTy VisitBinAssign (const BinaryOperator *E);
312 ComplexPairTy VisitBinComma (const BinaryOperator *E);
315 ComplexPairTy
317 ComplexPairTy VisitChooseExpr(ChooseExpr *CE);
319 ComplexPairTy VisitInitListExpr(InitListExpr *E);
321 ComplexPairTy VisitCompoundLiteralExpr(CompoundLiteralExpr *E) { in VisitCompoundLiteralExpr()
325 ComplexPairTy VisitVAArgExpr(VAArgExpr *E);
327 ComplexPairTy VisitAtomicExpr(AtomicExpr *E) { in VisitAtomicExpr()
349 ComplexPairTy ComplexExprEmitter::EmitLoadOfLValue(LValue lvalue, in EmitLoadOfLValue()
370 return ComplexPairTy(Real, Imag); in EmitLoadOfLValue()
375 void ComplexExprEmitter::EmitStoreOfComplex(ComplexPairTy Val, LValue lvalue, in EmitStoreOfComplex()
395 ComplexPairTy ComplexExprEmitter::VisitExpr(Expr *E) { in VisitExpr()
400 return ComplexPairTy(U, U); in VisitExpr()
403 ComplexPairTy ComplexExprEmitter::
406 return ComplexPairTy(llvm::Constant::getNullValue(Imag->getType()), Imag); in VisitImaginaryLiteral()
410 ComplexPairTy ComplexExprEmitter::VisitCallExpr(const CallExpr *E) { in VisitCallExpr()
417 ComplexPairTy ComplexExprEmitter::VisitStmtExpr(const StmtExpr *E) { in VisitStmtExpr()
426 ComplexPairTy ComplexExprEmitter::EmitComplexToComplexCast(ComplexPairTy Val, in EmitComplexToComplexCast()
444 ComplexPairTy ComplexExprEmitter::EmitScalarToComplexCast(llvm::Value *Val, in EmitScalarToComplexCast()
453 return ComplexPairTy(Val, llvm::Constant::getNullValue(Val->getType())); in EmitScalarToComplexCast()
456 ComplexPairTy ComplexExprEmitter::EmitCast(CastKind CK, Expr *Op, in EmitCast()
559 ComplexPairTy ComplexExprEmitter::VisitUnaryMinus(const UnaryOperator *E) { in VisitUnaryMinus()
562 ComplexPairTy Op = Visit(E->getSubExpr()); in VisitUnaryMinus()
572 return ComplexPairTy(ResR, ResI); in VisitUnaryMinus()
575 ComplexPairTy ComplexExprEmitter::VisitUnaryNot(const UnaryOperator *E) { in VisitUnaryNot()
579 ComplexPairTy Op = Visit(E->getSubExpr()); in VisitUnaryNot()
586 return ComplexPairTy(Op.first, ResI); in VisitUnaryNot()
589 ComplexPairTy ComplexExprEmitter::EmitBinAdd(const BinOpInfo &Op) { in EmitBinAdd()
605 return ComplexPairTy(ResR, ResI); in EmitBinAdd()
608 ComplexPairTy ComplexExprEmitter::EmitBinSub(const BinOpInfo &Op) { in EmitBinSub()
624 return ComplexPairTy(ResR, ResI); in EmitBinSub()
628 ComplexPairTy ComplexExprEmitter::EmitComplexBinOpLibCall(StringRef LibCallName, in EmitComplexBinOpLibCall()
689 ComplexPairTy ComplexExprEmitter::EmitBinMul(const BinOpInfo &Op) { in EmitBinMul()
762 return ComplexPairTy(RealPHI, ImagPHI); in EmitBinMul()
786 return ComplexPairTy(ResR, ResI); in EmitBinMul()
791 ComplexPairTy ComplexExprEmitter::EmitBinDiv(const BinOpInfo &Op) { in EmitBinDiv()
876 return ComplexPairTy(DSTr, DSTi); in EmitBinDiv()
885 Ops.LHS = ComplexPairTy(CGF.EmitScalarExpr(E->getLHS()), nullptr); in EmitBinOps()
889 Ops.RHS = ComplexPairTy(CGF.EmitScalarExpr(E->getRHS()), nullptr); in EmitBinOps()
900 ComplexPairTy (ComplexExprEmitter::*Func)(const BinOpInfo&), in EmitCompoundAssignLValue()
922 OpInfo.RHS = ComplexPairTy(CGF.EmitScalarExpr(E->getRHS()), nullptr); in EmitCompoundAssignLValue()
934 ComplexPairTy LHSVal = EmitLoadOfLValue(LHS, Loc); in EmitCompoundAssignLValue()
943 OpInfo.LHS = ComplexPairTy(LHSVal, nullptr); in EmitCompoundAssignLValue()
950 ComplexPairTy Result = (this->*Func)(OpInfo); in EmitCompoundAssignLValue()
954 ComplexPairTy ResVal = in EmitCompoundAssignLValue()
969 ComplexPairTy ComplexExprEmitter::
971 ComplexPairTy (ComplexExprEmitter::*Func)(const BinOpInfo&)){ in EmitCompoundAssign()
987 ComplexPairTy &Val) { in EmitBinAssignLValue()
1006 ComplexPairTy ComplexExprEmitter::VisitBinAssign(const BinaryOperator *E) { in VisitBinAssign()
1007 ComplexPairTy Val; in VisitBinAssign()
1021 ComplexPairTy ComplexExprEmitter::VisitBinComma(const BinaryOperator *E) { in VisitBinComma()
1026 ComplexPairTy ComplexExprEmitter::
1045 ComplexPairTy LHS = Visit(E->getTrueExpr()); in VisitAbstractConditionalOperator()
1052 ComplexPairTy RHS = Visit(E->getFalseExpr()); in VisitAbstractConditionalOperator()
1067 return ComplexPairTy(RealPN, ImagPN); in VisitAbstractConditionalOperator()
1070 ComplexPairTy ComplexExprEmitter::VisitChooseExpr(ChooseExpr *E) { in VisitChooseExpr()
1074 ComplexPairTy ComplexExprEmitter::VisitInitListExpr(InitListExpr *E) { in VisitInitListExpr()
1085 return ComplexPairTy(Real, Imag); in VisitInitListExpr()
1095 return ComplexPairTy(zeroConstant, zeroConstant); in VisitInitListExpr()
1098 ComplexPairTy ComplexExprEmitter::VisitVAArgExpr(VAArgExpr *E) { in VisitVAArgExpr()
1107 return ComplexPairTy(U, U); in VisitVAArgExpr()
1120 ComplexPairTy CodeGenFunction::EmitComplexExpr(const Expr *E, bool IgnoreReal, in EmitComplexExpr()
1134 ComplexPairTy Val = Emitter.Visit(const_cast<Expr*>(E)); in EmitComplexExprIntoLValue()
1139 void CodeGenFunction::EmitStoreOfComplex(ComplexPairTy V, LValue dest, in EmitStoreOfComplex()
1145 ComplexPairTy CodeGenFunction::EmitLoadOfComplex(LValue src, in EmitLoadOfComplex()
1152 ComplexPairTy Val; // ignored in EmitComplexAssignmentLValue()
1160 typedef ComplexPairTy (ComplexExprEmitter::*CompoundFunc)(