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()
504 ComplexPairTy ComplexExprEmitter::VisitUnaryMinus(const UnaryOperator *E) { in VisitUnaryMinus()
507 ComplexPairTy Op = Visit(E->getSubExpr()); in VisitUnaryMinus()
517 return ComplexPairTy(ResR, ResI); in VisitUnaryMinus()
520 ComplexPairTy ComplexExprEmitter::VisitUnaryNot(const UnaryOperator *E) { in VisitUnaryNot()
524 ComplexPairTy Op = Visit(E->getSubExpr()); in VisitUnaryNot()
531 return ComplexPairTy(Op.first, ResI); in VisitUnaryNot()
534 ComplexPairTy ComplexExprEmitter::EmitBinAdd(const BinOpInfo &Op) { in EmitBinAdd()
550 return ComplexPairTy(ResR, ResI); in EmitBinAdd()
553 ComplexPairTy ComplexExprEmitter::EmitBinSub(const BinOpInfo &Op) { in EmitBinSub()
569 return ComplexPairTy(ResR, ResI); in EmitBinSub()
573 ComplexPairTy ComplexExprEmitter::EmitComplexBinOpLibCall(StringRef LibCallName, in EmitComplexBinOpLibCall()
633 ComplexPairTy ComplexExprEmitter::EmitBinMul(const BinOpInfo &Op) { in EmitBinMul()
706 return ComplexPairTy(RealPHI, ImagPHI); in EmitBinMul()
730 return ComplexPairTy(ResR, ResI); in EmitBinMul()
735 ComplexPairTy ComplexExprEmitter::EmitBinDiv(const BinOpInfo &Op) { in EmitBinDiv()
800 return ComplexPairTy(DSTr, DSTi); in EmitBinDiv()
809 Ops.LHS = ComplexPairTy(CGF.EmitScalarExpr(E->getLHS()), nullptr); in EmitBinOps()
813 Ops.RHS = ComplexPairTy(CGF.EmitScalarExpr(E->getRHS()), nullptr); in EmitBinOps()
824 ComplexPairTy (ComplexExprEmitter::*Func)(const BinOpInfo&), in EmitCompoundAssignLValue()
845 OpInfo.RHS = ComplexPairTy(CGF.EmitScalarExpr(E->getRHS()), nullptr); in EmitCompoundAssignLValue()
857 ComplexPairTy LHSVal = EmitLoadOfLValue(LHS, Loc); in EmitCompoundAssignLValue()
866 OpInfo.LHS = ComplexPairTy(LHSVal, nullptr); in EmitCompoundAssignLValue()
873 ComplexPairTy Result = (this->*Func)(OpInfo); in EmitCompoundAssignLValue()
877 ComplexPairTy ResVal = in EmitCompoundAssignLValue()
892 ComplexPairTy ComplexExprEmitter::
894 ComplexPairTy (ComplexExprEmitter::*Func)(const BinOpInfo&)){ in EmitCompoundAssign()
910 ComplexPairTy &Val) { in EmitBinAssignLValue()
929 ComplexPairTy ComplexExprEmitter::VisitBinAssign(const BinaryOperator *E) { in VisitBinAssign()
930 ComplexPairTy Val; in VisitBinAssign()
944 ComplexPairTy ComplexExprEmitter::VisitBinComma(const BinaryOperator *E) { in VisitBinComma()
949 ComplexPairTy ComplexExprEmitter::
968 ComplexPairTy LHS = Visit(E->getTrueExpr()); in VisitAbstractConditionalOperator()
975 ComplexPairTy RHS = Visit(E->getFalseExpr()); in VisitAbstractConditionalOperator()
990 return ComplexPairTy(RealPN, ImagPN); in VisitAbstractConditionalOperator()
993 ComplexPairTy ComplexExprEmitter::VisitChooseExpr(ChooseExpr *E) { in VisitChooseExpr()
997 ComplexPairTy ComplexExprEmitter::VisitInitListExpr(InitListExpr *E) { in VisitInitListExpr()
1008 return ComplexPairTy(Real, Imag); in VisitInitListExpr()
1018 return ComplexPairTy(zeroConstant, zeroConstant); in VisitInitListExpr()
1021 ComplexPairTy ComplexExprEmitter::VisitVAArgExpr(VAArgExpr *E) { in VisitVAArgExpr()
1030 return ComplexPairTy(U, U); in VisitVAArgExpr()
1043 ComplexPairTy CodeGenFunction::EmitComplexExpr(const Expr *E, bool IgnoreReal, in EmitComplexExpr()
1057 ComplexPairTy Val = Emitter.Visit(const_cast<Expr*>(E)); in EmitComplexExprIntoLValue()
1062 void CodeGenFunction::EmitStoreOfComplex(ComplexPairTy V, LValue dest, in EmitStoreOfComplex()
1068 ComplexPairTy CodeGenFunction::EmitLoadOfComplex(LValue src, in EmitLoadOfComplex()
1075 ComplexPairTy Val; // ignored in EmitComplexAssignmentLValue()
1079 typedef ComplexPairTy (ComplexExprEmitter::*CompoundFunc)(