Lines Matching refs:ComplexPairTy
33 typedef CodeGenFunction::ComplexPairTy ComplexPairTy; typedef
47 : public StmtVisitor<ComplexExprEmitter, ComplexPairTy> {
76 ComplexPairTy EmitLoadOfLValue(const Expr *E) { in EmitLoadOfLValue()
80 ComplexPairTy EmitLoadOfLValue(LValue LV, SourceLocation Loc);
84 void EmitStoreOfComplex(ComplexPairTy Val, LValue LV, bool isInit);
87 ComplexPairTy EmitComplexToComplexCast(ComplexPairTy Val, QualType SrcType,
90 ComplexPairTy EmitScalarToComplexCast(llvm::Value *Val, QualType SrcType,
97 ComplexPairTy Visit(Expr *E) { in Visit()
99 return StmtVisitor<ComplexExprEmitter, ComplexPairTy>::Visit(E); in Visit()
102 ComplexPairTy VisitStmt(Stmt *S) { in VisitStmt()
106 ComplexPairTy VisitExpr(Expr *S);
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
118 ComplexPairTy VisitDeclRefExpr(DeclRefExpr *E) { in VisitDeclRefExpr()
125 return ComplexPairTy(pair->getAggregateElement(0U), in VisitDeclRefExpr()
130 ComplexPairTy VisitObjCIvarRefExpr(ObjCIvarRefExpr *E) { in VisitObjCIvarRefExpr()
133 ComplexPairTy VisitObjCMessageExpr(ObjCMessageExpr *E) { in VisitObjCMessageExpr()
136 ComplexPairTy VisitArraySubscriptExpr(Expr *E) { return EmitLoadOfLValue(E); } in VisitArraySubscriptExpr()
137 ComplexPairTy VisitMemberExpr(const Expr *E) { return EmitLoadOfLValue(E); } in VisitMemberExpr()
138 ComplexPairTy VisitOpaqueValueExpr(OpaqueValueExpr *E) { in VisitOpaqueValueExpr()
144 ComplexPairTy VisitPseudoObjectExpr(PseudoObjectExpr *E) { in VisitPseudoObjectExpr()
150 ComplexPairTy EmitCast(CastKind CK, Expr *Op, QualType DestTy);
151 ComplexPairTy VisitImplicitCastExpr(ImplicitCastExpr *E) { in VisitImplicitCastExpr()
156 ComplexPairTy VisitCastExpr(CastExpr *E) { in VisitCastExpr()
161 ComplexPairTy VisitCallExpr(const CallExpr *E);
162 ComplexPairTy VisitStmtExpr(const StmtExpr *E);
165 ComplexPairTy VisitPrePostIncDec(const UnaryOperator *E, in VisitPrePostIncDec()
170 ComplexPairTy VisitUnaryPostDec(const UnaryOperator *E) { in VisitUnaryPostDec()
173 ComplexPairTy VisitUnaryPostInc(const UnaryOperator *E) { in VisitUnaryPostInc()
176 ComplexPairTy VisitUnaryPreDec(const UnaryOperator *E) { in VisitUnaryPreDec()
179 ComplexPairTy VisitUnaryPreInc(const UnaryOperator *E) { in VisitUnaryPreInc()
182 ComplexPairTy VisitUnaryDeref(const Expr *E) { return EmitLoadOfLValue(E); } in VisitUnaryDeref()
183 ComplexPairTy VisitUnaryPlus (const UnaryOperator *E) { in VisitUnaryPlus()
188 ComplexPairTy VisitUnaryMinus (const UnaryOperator *E);
189 ComplexPairTy VisitUnaryNot (const UnaryOperator *E);
191 ComplexPairTy VisitUnaryExtension(const UnaryOperator *E) { in VisitUnaryExtension()
194 ComplexPairTy VisitCXXDefaultArgExpr(CXXDefaultArgExpr *DAE) { in VisitCXXDefaultArgExpr()
197 ComplexPairTy VisitCXXDefaultInitExpr(CXXDefaultInitExpr *DIE) { in VisitCXXDefaultInitExpr()
201 ComplexPairTy VisitExprWithCleanups(ExprWithCleanups *E) { in VisitExprWithCleanups()
206 ComplexPairTy VisitCXXScalarValueInitExpr(CXXScalarValueInitExpr *E) { in VisitCXXScalarValueInitExpr()
210 return ComplexPairTy(Null, Null); in VisitCXXScalarValueInitExpr()
212 ComplexPairTy VisitImplicitValueInitExpr(ImplicitValueInitExpr *E) { in VisitImplicitValueInitExpr()
217 return ComplexPairTy(Null, Null); in VisitImplicitValueInitExpr()
221 ComplexPairTy LHS;
222 ComplexPairTy RHS;
228 ComplexPairTy (ComplexExprEmitter::*Func)
231 ComplexPairTy EmitCompoundAssign(const CompoundAssignOperator *E,
232 ComplexPairTy (ComplexExprEmitter::*Func)
235 ComplexPairTy EmitBinAdd(const BinOpInfo &Op);
236 ComplexPairTy EmitBinSub(const BinOpInfo &Op);
237 ComplexPairTy EmitBinMul(const BinOpInfo &Op);
238 ComplexPairTy EmitBinDiv(const BinOpInfo &Op);
240 ComplexPairTy EmitComplexBinOpLibCall(StringRef LibCallName,
243 ComplexPairTy VisitBinAdd(const BinaryOperator *E) { in VisitBinAdd()
246 ComplexPairTy VisitBinSub(const BinaryOperator *E) { in VisitBinSub()
249 ComplexPairTy VisitBinMul(const BinaryOperator *E) { in VisitBinMul()
252 ComplexPairTy VisitBinDiv(const BinaryOperator *E) { in VisitBinDiv()
257 ComplexPairTy VisitBinAddAssign(const CompoundAssignOperator *E) { in VisitBinAddAssign()
260 ComplexPairTy VisitBinSubAssign(const CompoundAssignOperator *E) { in VisitBinSubAssign()
263 ComplexPairTy VisitBinMulAssign(const CompoundAssignOperator *E) { in VisitBinMulAssign()
266 ComplexPairTy VisitBinDivAssign(const CompoundAssignOperator *E) { in VisitBinDivAssign()
276 ComplexPairTy &Val);
277 ComplexPairTy VisitBinAssign (const BinaryOperator *E);
278 ComplexPairTy VisitBinComma (const BinaryOperator *E);
281 ComplexPairTy
283 ComplexPairTy VisitChooseExpr(ChooseExpr *CE);
285 ComplexPairTy VisitInitListExpr(InitListExpr *E);
287 ComplexPairTy VisitCompoundLiteralExpr(CompoundLiteralExpr *E) { in VisitCompoundLiteralExpr()
291 ComplexPairTy VisitVAArgExpr(VAArgExpr *E);
293 ComplexPairTy VisitAtomicExpr(AtomicExpr *E) { in VisitAtomicExpr()
318 ComplexPairTy ComplexExprEmitter::EmitLoadOfLValue(LValue lvalue, in EmitLoadOfLValue()
339 return ComplexPairTy(Real, Imag); in EmitLoadOfLValue()
344 void ComplexExprEmitter::EmitStoreOfComplex(ComplexPairTy Val, LValue lvalue, in EmitStoreOfComplex()
364 ComplexPairTy ComplexExprEmitter::VisitExpr(Expr *E) { in VisitExpr()
369 return ComplexPairTy(U, U); in VisitExpr()
372 ComplexPairTy ComplexExprEmitter::
375 return ComplexPairTy(llvm::Constant::getNullValue(Imag->getType()), Imag); in VisitImaginaryLiteral()
379 ComplexPairTy ComplexExprEmitter::VisitCallExpr(const CallExpr *E) { in VisitCallExpr()
386 ComplexPairTy ComplexExprEmitter::VisitStmtExpr(const StmtExpr *E) { in VisitStmtExpr()
395 ComplexPairTy ComplexExprEmitter::EmitComplexToComplexCast(ComplexPairTy Val, in EmitComplexToComplexCast()
411 ComplexPairTy ComplexExprEmitter::EmitScalarToComplexCast(llvm::Value *Val, in EmitScalarToComplexCast()
420 return ComplexPairTy(Val, llvm::Constant::getNullValue(Val->getType())); in EmitScalarToComplexCast()
423 ComplexPairTy ComplexExprEmitter::EmitCast(CastKind CK, Expr *Op, in EmitCast()
505 ComplexPairTy ComplexExprEmitter::VisitUnaryMinus(const UnaryOperator *E) { in VisitUnaryMinus()
508 ComplexPairTy Op = Visit(E->getSubExpr()); in VisitUnaryMinus()
518 return ComplexPairTy(ResR, ResI); in VisitUnaryMinus()
521 ComplexPairTy ComplexExprEmitter::VisitUnaryNot(const UnaryOperator *E) { in VisitUnaryNot()
525 ComplexPairTy Op = Visit(E->getSubExpr()); in VisitUnaryNot()
532 return ComplexPairTy(Op.first, ResI); in VisitUnaryNot()
535 ComplexPairTy ComplexExprEmitter::EmitBinAdd(const BinOpInfo &Op) { in EmitBinAdd()
551 return ComplexPairTy(ResR, ResI); in EmitBinAdd()
554 ComplexPairTy ComplexExprEmitter::EmitBinSub(const BinOpInfo &Op) { in EmitBinSub()
570 return ComplexPairTy(ResR, ResI); in EmitBinSub()
574 ComplexPairTy ComplexExprEmitter::EmitComplexBinOpLibCall(StringRef LibCallName, in EmitComplexBinOpLibCall()
634 ComplexPairTy ComplexExprEmitter::EmitBinMul(const BinOpInfo &Op) { in EmitBinMul()
707 return ComplexPairTy(RealPHI, ImagPHI); in EmitBinMul()
731 return ComplexPairTy(ResR, ResI); in EmitBinMul()
736 ComplexPairTy ComplexExprEmitter::EmitBinDiv(const BinOpInfo &Op) { in EmitBinDiv()
801 return ComplexPairTy(DSTr, DSTi); in EmitBinDiv()
810 Ops.LHS = ComplexPairTy(CGF.EmitScalarExpr(E->getLHS()), nullptr); in EmitBinOps()
814 Ops.RHS = ComplexPairTy(CGF.EmitScalarExpr(E->getRHS()), nullptr); in EmitBinOps()
825 ComplexPairTy (ComplexExprEmitter::*Func)(const BinOpInfo&), in EmitCompoundAssignLValue()
846 OpInfo.RHS = ComplexPairTy(CGF.EmitScalarExpr(E->getRHS()), nullptr); in EmitCompoundAssignLValue()
858 ComplexPairTy LHSVal = EmitLoadOfLValue(LHS, Loc); in EmitCompoundAssignLValue()
867 OpInfo.LHS = ComplexPairTy(LHSVal, nullptr); in EmitCompoundAssignLValue()
874 ComplexPairTy Result = (this->*Func)(OpInfo); in EmitCompoundAssignLValue()
878 ComplexPairTy ResVal = in EmitCompoundAssignLValue()
893 ComplexPairTy ComplexExprEmitter::
895 ComplexPairTy (ComplexExprEmitter::*Func)(const BinOpInfo&)){ in EmitCompoundAssign()
911 ComplexPairTy &Val) { in EmitBinAssignLValue()
930 ComplexPairTy ComplexExprEmitter::VisitBinAssign(const BinaryOperator *E) { in VisitBinAssign()
931 ComplexPairTy Val; in VisitBinAssign()
945 ComplexPairTy ComplexExprEmitter::VisitBinComma(const BinaryOperator *E) { in VisitBinComma()
950 ComplexPairTy ComplexExprEmitter::
969 ComplexPairTy LHS = Visit(E->getTrueExpr()); in VisitAbstractConditionalOperator()
976 ComplexPairTy RHS = Visit(E->getFalseExpr()); in VisitAbstractConditionalOperator()
991 return ComplexPairTy(RealPN, ImagPN); in VisitAbstractConditionalOperator()
994 ComplexPairTy ComplexExprEmitter::VisitChooseExpr(ChooseExpr *E) { in VisitChooseExpr()
998 ComplexPairTy ComplexExprEmitter::VisitInitListExpr(InitListExpr *E) { in VisitInitListExpr()
1009 return ComplexPairTy(Real, Imag); in VisitInitListExpr()
1019 return ComplexPairTy(zeroConstant, zeroConstant); in VisitInitListExpr()
1022 ComplexPairTy ComplexExprEmitter::VisitVAArgExpr(VAArgExpr *E) { in VisitVAArgExpr()
1031 return ComplexPairTy(U, U); in VisitVAArgExpr()
1044 ComplexPairTy CodeGenFunction::EmitComplexExpr(const Expr *E, bool IgnoreReal, in EmitComplexExpr()
1058 ComplexPairTy Val = Emitter.Visit(const_cast<Expr*>(E)); in EmitComplexExprIntoLValue()
1063 void CodeGenFunction::EmitStoreOfComplex(ComplexPairTy V, LValue dest, in EmitStoreOfComplex()
1069 ComplexPairTy CodeGenFunction::EmitLoadOfComplex(LValue src, in EmitLoadOfComplex()
1076 ComplexPairTy Val; // ignored in EmitComplexAssignmentLValue()
1080 typedef ComplexPairTy (ComplexExprEmitter::*CompoundFunc)(