reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
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, 83 ComplexPairTy EmitComplexToComplexCast(ComplexPairTy Val, QualType SrcType, 86 ComplexPairTy EmitScalarToComplexCast(llvm::Value *Val, QualType SrcType, 93 ComplexPairTy Visit(Expr *E) { 98 ComplexPairTy VisitStmt(Stmt *S) { 102 ComplexPairTy VisitExpr(Expr *S); 103 ComplexPairTy VisitConstantExpr(ConstantExpr *E) { 106 ComplexPairTy VisitParenExpr(ParenExpr *PE) { return Visit(PE->getSubExpr());} 107 ComplexPairTy VisitGenericSelectionExpr(GenericSelectionExpr *GE) { 110 ComplexPairTy VisitImaginaryLiteral(const ImaginaryLiteral *IL); 111 ComplexPairTy 115 ComplexPairTy VisitCoawaitExpr(CoawaitExpr *S) { 118 ComplexPairTy VisitCoyieldExpr(CoyieldExpr *S) { 121 ComplexPairTy VisitUnaryCoawait(const UnaryOperator *E) { 125 ComplexPairTy emitConstant(const CodeGenFunction::ConstantEmission &Constant, 138 ComplexPairTy VisitDeclRefExpr(DeclRefExpr *E) { 143 ComplexPairTy VisitObjCIvarRefExpr(ObjCIvarRefExpr *E) { 146 ComplexPairTy VisitObjCMessageExpr(ObjCMessageExpr *E) { 149 ComplexPairTy VisitArraySubscriptExpr(Expr *E) { return EmitLoadOfLValue(E); } 150 ComplexPairTy VisitMemberExpr(MemberExpr *ME) { 158 ComplexPairTy VisitOpaqueValueExpr(OpaqueValueExpr *E) { 165 ComplexPairTy VisitPseudoObjectExpr(PseudoObjectExpr *E) { 171 ComplexPairTy EmitCast(CastKind CK, Expr *Op, QualType DestTy); 172 ComplexPairTy VisitImplicitCastExpr(ImplicitCastExpr *E) { 177 ComplexPairTy VisitCastExpr(CastExpr *E) { 182 ComplexPairTy VisitCallExpr(const CallExpr *E); 183 ComplexPairTy VisitStmtExpr(const StmtExpr *E); 186 ComplexPairTy VisitPrePostIncDec(const UnaryOperator *E, 191 ComplexPairTy VisitUnaryPostDec(const UnaryOperator *E) { 194 ComplexPairTy VisitUnaryPostInc(const UnaryOperator *E) { 197 ComplexPairTy VisitUnaryPreDec(const UnaryOperator *E) { 200 ComplexPairTy VisitUnaryPreInc(const UnaryOperator *E) { 203 ComplexPairTy VisitUnaryDeref(const Expr *E) { return EmitLoadOfLValue(E); } 204 ComplexPairTy VisitUnaryPlus (const UnaryOperator *E) { 209 ComplexPairTy VisitUnaryMinus (const UnaryOperator *E); 210 ComplexPairTy VisitUnaryNot (const UnaryOperator *E); 212 ComplexPairTy VisitUnaryExtension(const UnaryOperator *E) { 215 ComplexPairTy VisitCXXDefaultArgExpr(CXXDefaultArgExpr *DAE) { 219 ComplexPairTy VisitCXXDefaultInitExpr(CXXDefaultInitExpr *DIE) { 223 ComplexPairTy VisitExprWithCleanups(ExprWithCleanups *E) { 226 ComplexPairTy Vals = Visit(E->getSubExpr()); 232 ComplexPairTy VisitCXXScalarValueInitExpr(CXXScalarValueInitExpr *E) { 238 ComplexPairTy VisitImplicitValueInitExpr(ImplicitValueInitExpr *E) { 247 ComplexPairTy LHS; 248 ComplexPairTy RHS; 257 ComplexPairTy EmitCompoundAssign(const CompoundAssignOperator *E, 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) { 272 ComplexPairTy VisitBinSub(const BinaryOperator *E) { 275 ComplexPairTy VisitBinMul(const BinaryOperator *E) { 278 ComplexPairTy VisitBinDiv(const BinaryOperator *E) { 282 ComplexPairTy VisitCXXRewrittenBinaryOperator(CXXRewrittenBinaryOperator *E) { 287 ComplexPairTy VisitBinAddAssign(const CompoundAssignOperator *E) { 290 ComplexPairTy VisitBinSubAssign(const CompoundAssignOperator *E) { 293 ComplexPairTy VisitBinMulAssign(const CompoundAssignOperator *E) { 296 ComplexPairTy VisitBinDivAssign(const CompoundAssignOperator *E) { 306 ComplexPairTy &Val); 307 ComplexPairTy VisitBinAssign (const BinaryOperator *E); 308 ComplexPairTy VisitBinComma (const BinaryOperator *E); 311 ComplexPairTy 313 ComplexPairTy VisitChooseExpr(ChooseExpr *CE); 315 ComplexPairTy VisitInitListExpr(InitListExpr *E); 317 ComplexPairTy VisitCompoundLiteralExpr(CompoundLiteralExpr *E) { 321 ComplexPairTy VisitVAArgExpr(VAArgExpr *E); 323 ComplexPairTy VisitAtomicExpr(AtomicExpr *E) { 345 ComplexPairTy ComplexExprEmitter::EmitLoadOfLValue(LValue lvalue, 371 void ComplexExprEmitter::EmitStoreOfComplex(ComplexPairTy Val, LValue lvalue, 391 ComplexPairTy ComplexExprEmitter::VisitExpr(Expr *E) { 399 ComplexPairTy ComplexExprEmitter:: 406 ComplexPairTy ComplexExprEmitter::VisitCallExpr(const CallExpr *E) { 413 ComplexPairTy ComplexExprEmitter::VisitStmtExpr(const StmtExpr *E) { 422 ComplexPairTy ComplexExprEmitter::EmitComplexToComplexCast(ComplexPairTy Val, 422 ComplexPairTy ComplexExprEmitter::EmitComplexToComplexCast(ComplexPairTy Val, 438 ComplexPairTy ComplexExprEmitter::EmitScalarToComplexCast(llvm::Value *Val, 450 ComplexPairTy ComplexExprEmitter::EmitCast(CastKind CK, Expr *Op, 546 ComplexPairTy ComplexExprEmitter::VisitUnaryMinus(const UnaryOperator *E) { 549 ComplexPairTy Op = Visit(E->getSubExpr()); 562 ComplexPairTy ComplexExprEmitter::VisitUnaryNot(const UnaryOperator *E) { 566 ComplexPairTy Op = Visit(E->getSubExpr()); 576 ComplexPairTy ComplexExprEmitter::EmitBinAdd(const BinOpInfo &Op) { 595 ComplexPairTy ComplexExprEmitter::EmitBinSub(const BinOpInfo &Op) { 615 ComplexPairTy ComplexExprEmitter::EmitComplexBinOpLibCall(StringRef LibCallName, 676 ComplexPairTy ComplexExprEmitter::EmitBinMul(const BinOpInfo &Op) { 778 ComplexPairTy ComplexExprEmitter::EmitBinDiv(const BinOpInfo &Op) { 920 ComplexPairTy LHSVal = EmitLoadOfLValue(LHS, Loc); 936 ComplexPairTy Result = (this->*Func)(OpInfo); 940 ComplexPairTy ResVal = 955 ComplexPairTy ComplexExprEmitter:: 973 ComplexPairTy &Val) { 992 ComplexPairTy ComplexExprEmitter::VisitBinAssign(const BinaryOperator *E) { 993 ComplexPairTy Val; 1007 ComplexPairTy ComplexExprEmitter::VisitBinComma(const BinaryOperator *E) { 1012 ComplexPairTy ComplexExprEmitter:: 1031 ComplexPairTy LHS = Visit(E->getTrueExpr()); 1038 ComplexPairTy RHS = Visit(E->getFalseExpr()); 1056 ComplexPairTy ComplexExprEmitter::VisitChooseExpr(ChooseExpr *E) { 1060 ComplexPairTy ComplexExprEmitter::VisitInitListExpr(InitListExpr *E) { 1084 ComplexPairTy ComplexExprEmitter::VisitVAArgExpr(VAArgExpr *E) { 1106 ComplexPairTy CodeGenFunction::EmitComplexExpr(const Expr *E, bool IgnoreReal, 1131 ComplexPairTy CodeGenFunction::EmitLoadOfComplex(LValue src,