Home | History | Annotate | Download | only in CodeGen

Lines Matching defs:ComplexPairTy

29 typedef CodeGenFunction::ComplexPairTy ComplexPairTy;
43 : public StmtVisitor<ComplexExprEmitter, ComplexPairTy> {
72 ComplexPairTy EmitLoadOfLValue(const Expr *E) {
76 ComplexPairTy EmitLoadOfLValue(LValue LV, SourceLocation Loc);
80 void EmitStoreOfComplex(ComplexPairTy Val, LValue LV, bool isInit);
83 ComplexPairTy EmitComplexToComplexCast(ComplexPairTy Val, QualType SrcType,
86 ComplexPairTy EmitScalarToComplexCast(llvm::Value *Val, QualType SrcType,
93 ComplexPairTy Visit(Expr *E) {
94 return StmtVisitor<ComplexExprEmitter, ComplexPairTy>::Visit(E);
97 ComplexPairTy VisitStmt(Stmt *S) {
101 ComplexPairTy VisitExpr(Expr *S);
102 ComplexPairTy VisitParenExpr(ParenExpr *PE) { return Visit(PE->getSubExpr());}
103 ComplexPairTy VisitGenericSelectionExpr(GenericSelectionExpr *GE) {
106 ComplexPairTy VisitImaginaryLiteral(const ImaginaryLiteral *IL);
107 ComplexPairTy
113 ComplexPairTy VisitDeclRefExpr(DeclRefExpr *E) {
120 return ComplexPairTy(pair->getAggregateElement(0U),
125 ComplexPairTy VisitObjCIvarRefExpr(ObjCIvarRefExpr *E) {
128 ComplexPairTy VisitObjCMessageExpr(ObjCMessageExpr *E) {
131 ComplexPairTy VisitArraySubscriptExpr(Expr *E) { return EmitLoadOfLValue(E); }
132 ComplexPairTy VisitMemberExpr(const Expr *E) { return EmitLoadOfLValue(E); }
133 ComplexPairTy VisitOpaqueValueExpr(OpaqueValueExpr *E) {
139 ComplexPairTy VisitPseudoObjectExpr(PseudoObjectExpr *E) {
145 ComplexPairTy EmitCast(CastExpr::CastKind CK, Expr *Op, QualType DestTy);
146 ComplexPairTy VisitImplicitCastExpr(ImplicitCastExpr *E) {
151 ComplexPairTy VisitCastExpr(CastExpr *E) {
154 ComplexPairTy VisitCallExpr(const CallExpr *E);
155 ComplexPairTy VisitStmtExpr(const StmtExpr *E);
158 ComplexPairTy VisitPrePostIncDec(const UnaryOperator *E,
163 ComplexPairTy VisitUnaryPostDec(const UnaryOperator *E) {
166 ComplexPairTy VisitUnaryPostInc(const UnaryOperator *E) {
169 ComplexPairTy VisitUnaryPreDec(const UnaryOperator *E) {
172 ComplexPairTy VisitUnaryPreInc(const UnaryOperator *E) {
175 ComplexPairTy VisitUnaryDeref(const Expr *E) { return EmitLoadOfLValue(E); }
176 ComplexPairTy VisitUnaryPlus (const UnaryOperator *E) {
181 ComplexPairTy VisitUnaryMinus (const UnaryOperator *E);
182 ComplexPairTy VisitUnaryNot (const UnaryOperator *E);
184 ComplexPairTy VisitUnaryExtension(const UnaryOperator *E) {
187 ComplexPairTy VisitCXXDefaultArgExpr(CXXDefaultArgExpr *DAE) {
190 ComplexPairTy VisitCXXDefaultInitExpr(CXXDefaultInitExpr *DIE) {
194 ComplexPairTy VisitExprWithCleanups(ExprWithCleanups *E) {
199 ComplexPairTy VisitCXXScalarValueInitExpr(CXXScalarValueInitExpr *E) {
203 return ComplexPairTy(Null, Null);
205 ComplexPairTy VisitImplicitValueInitExpr(ImplicitValueInitExpr *E) {
210 return ComplexPairTy(Null, Null);
214 ComplexPairTy LHS;
215 ComplexPairTy RHS;
221 ComplexPairTy (ComplexExprEmitter::*Func)
224 ComplexPairTy EmitCompoundAssign(const CompoundAssignOperator *E,
225 ComplexPairTy (ComplexExprEmitter::*Func)
228 ComplexPairTy EmitBinAdd(const BinOpInfo &Op);
229 ComplexPairTy EmitBinSub(const BinOpInfo &Op);
230 ComplexPairTy EmitBinMul(const BinOpInfo &Op);
231 ComplexPairTy EmitBinDiv(const BinOpInfo &Op);
233 ComplexPairTy VisitBinAdd(const BinaryOperator *E) {
236 ComplexPairTy VisitBinSub(const BinaryOperator *E) {
239 ComplexPairTy VisitBinMul(const BinaryOperator *E) {
242 ComplexPairTy VisitBinDiv(const BinaryOperator *E) {
247 ComplexPairTy VisitBinAddAssign(const CompoundAssignOperator *E) {
250 ComplexPairTy VisitBinSubAssign(const CompoundAssignOperator *E) {
253 ComplexPairTy VisitBinMulAssign(const CompoundAssignOperator *E) {
256 ComplexPairTy VisitBinDivAssign(const CompoundAssignOperator *E) {
266 ComplexPairTy &Val);
267 ComplexPairTy VisitBinAssign (const BinaryOperator *E);
268 ComplexPairTy VisitBinComma (const BinaryOperator *E);
271 ComplexPairTy
273 ComplexPairTy VisitChooseExpr(ChooseExpr *CE);
275 ComplexPairTy VisitInitListExpr(InitListExpr *E);
277 ComplexPairTy VisitCompoundLiteralExpr(CompoundLiteralExpr *E) {
281 ComplexPairTy VisitVAArgExpr(VAArgExpr *E);
283 ComplexPairTy VisitAtomicExpr(AtomicExpr *E) {
295 ComplexPairTy ComplexExprEmitter::EmitLoadOfLValue(LValue lvalue,
324 return ComplexPairTy(Real, Imag);
329 void ComplexExprEmitter::EmitStoreOfComplex(ComplexPairTy Val,
356 ComplexPairTy ComplexExprEmitter::VisitExpr(Expr *E) {
361 return ComplexPairTy(U, U);
364 ComplexPairTy ComplexExprEmitter::
367 return ComplexPairTy(llvm::Constant::getNullValue(Imag->getType()), Imag);
371 ComplexPairTy ComplexExprEmitter::VisitCallExpr(const CallExpr *E) {
378 ComplexPairTy ComplexExprEmitter::VisitStmtExpr(const StmtExpr *E) {
387 ComplexPairTy ComplexExprEmitter::EmitComplexToComplexCast(ComplexPairTy Val,
402 ComplexPairTy ComplexExprEmitter::EmitScalarToComplexCast(llvm::Value *Val,
410 return ComplexPairTy(Val, llvm::Constant::getNullValue(Val->getType()));
413 ComplexPairTy ComplexExprEmitter::EmitCast(CastExpr::CastKind CK, Expr *Op,
496 ComplexPairTy ComplexExprEmitter::VisitUnaryMinus(const UnaryOperator *E) {
499 ComplexPairTy Op = Visit(E->getSubExpr());
509 return ComplexPairTy(ResR, ResI);
512 ComplexPairTy ComplexExprEmitter::VisitUnaryNot(const UnaryOperator *E) {
516 ComplexPairTy Op = Visit(E->getSubExpr());
523 return ComplexPairTy(Op.first, ResI);
526 ComplexPairTy ComplexExprEmitter::EmitBinAdd(const BinOpInfo &Op) {
536 return ComplexPairTy(ResR, ResI);
539 ComplexPairTy ComplexExprEmitter::EmitBinSub(const BinOpInfo &Op) {
548 return ComplexPairTy(ResR, ResI);
552 ComplexPairTy ComplexExprEmitter::EmitBinMul(const BinOpInfo &Op) {
573 return ComplexPairTy(ResR, ResI);
576 ComplexPairTy ComplexExprEmitter::EmitBinDiv(const BinOpInfo &Op) {
621 return ComplexPairTy(DSTr, DSTi);
638 ComplexPairTy (ComplexExprEmitter::*Func)(const BinOpInfo&),
661 ComplexPairTy LHSVal = EmitLoadOfLValue(LHS, E->getExprLoc());
669 ComplexPairTy Result = (this->*Func)(OpInfo);
673 ComplexPairTy ResVal = EmitComplexToComplexCast(Result, OpInfo.Ty, LHSTy);
687 ComplexPairTy ComplexExprEmitter::
689 ComplexPairTy (ComplexExprEmitter::*Func)(const BinOpInfo&)){
705 ComplexPairTy &Val) {
724 ComplexPairTy ComplexExprEmitter::VisitBinAssign(const BinaryOperator *E) {
725 ComplexPairTy Val;
739 ComplexPairTy ComplexExprEmitter::VisitBinComma(const BinaryOperator *E) {
744 ComplexPairTy ComplexExprEmitter::
762 ComplexPairTy LHS = Visit(E->getTrueExpr());
769 ComplexPairTy RHS = Visit(E->getFalseExpr());
784 return ComplexPairTy(RealPN, ImagPN);
787 ComplexPairTy ComplexExprEmitter::VisitChooseExpr(ChooseExpr *E) {
791 ComplexPairTy ComplexExprEmitter::VisitInitListExpr(InitListExpr *E) {
802 return ComplexPairTy(Real, Imag);
812 return ComplexPairTy(zeroConstant, zeroConstant);
815 ComplexPairTy ComplexExprEmitter::VisitVAArgExpr(VAArgExpr *E) {
824 return ComplexPairTy(U, U);
837 ComplexPairTy CodeGenFunction::EmitComplexExpr(const Expr *E, bool IgnoreReal,
851 ComplexPairTy Val = Emitter.Visit(const_cast<Expr*>(E));
856 void CodeGenFunction::EmitStoreOfComplex(ComplexPairTy V, LValue dest,
862 ComplexPairTy CodeGenFunction::EmitLoadOfComplex(LValue src,
869 ComplexPairTy Val; // ignored
873 typedef ComplexPairTy (ComplexExprEmitter::*CompoundFunc)(