Lines Matching full:compiler
1 //===--- Compiler.cpp - Code generator for expressions ---*- C++ -*-===//
9 #include "Compiler.h"
30 DeclScope(Compiler<Emitter> *Ctx, const ValueDecl *VD) in DeclScope()
59 OptionScope(Compiler<Emitter> *Ctx, bool NewDiscardResult, in OptionScope()
74 Compiler<Emitter> *Ctx;
81 bool InitLink::emit(Compiler<Emitter> *Ctx, const Expr *E) const { in emit()
104 LabelScope(Compiler<Emitter> *Ctx) : Ctx(Ctx) {} in LabelScope()
105 /// Compiler instance.
106 Compiler<Emitter> *Ctx;
112 using LabelTy = typename Compiler<Emitter>::LabelTy;
113 using OptLabelTy = typename Compiler<Emitter>::OptLabelTy;
115 LoopScope(Compiler<Emitter> *Ctx, LabelTy BreakLabel, LabelTy ContinueLabel) in LoopScope()
135 using LabelTy = typename Compiler<Emitter>::LabelTy;
136 using OptLabelTy = typename Compiler<Emitter>::OptLabelTy;
137 using CaseMap = typename Compiler<Emitter>::CaseMap;
139 SwitchScope(Compiler<Emitter> *Ctx, CaseMap &&CaseLabels, LabelTy BreakLabel, in SwitchScope()
163 StmtExprScope(Compiler<Emitter> *Ctx) : Ctx(Ctx), OldFlag(Ctx->InStmtExpr) { in StmtExprScope()
170 Compiler<Emitter> *Ctx;
178 bool Compiler<Emitter>::VisitCastExpr(const CastExpr *CE) { in VisitCastExpr()
642 bool Compiler<Emitter>::VisitIntegerLiteral(const IntegerLiteral *LE) { in VisitIntegerLiteral()
650 bool Compiler<Emitter>::VisitFloatingLiteral(const FloatingLiteral *E) { in VisitFloatingLiteral()
658 bool Compiler<Emitter>::VisitImaginaryLiteral(const ImaginaryLiteral *E) { in VisitImaginaryLiteral()
682 bool Compiler<Emitter>::VisitParenExpr(const ParenExpr *E) { in VisitParenExpr()
687 bool Compiler<Emitter>::VisitBinaryOperator(const BinaryOperator *BO) { in VisitBinaryOperator()
859 bool Compiler<Emitter>::VisitPointerArithBinOp(const BinaryOperator *E) { in VisitPointerArithBinOp()
907 bool Compiler<Emitter>::VisitLogicalBinOp(const BinaryOperator *E) { in VisitLogicalBinOp()
968 bool Compiler<Emitter>::VisitComplexBinOp(const BinaryOperator *E) { in VisitComplexBinOp()
1196 bool Compiler<Emitter>::VisitImplicitValueInitExpr( in VisitImplicitValueInitExpr()
1280 bool Compiler<Emitter>::VisitArraySubscriptExpr(const ArraySubscriptExpr *E) { in VisitArraySubscriptExpr()
1300 bool Compiler<Emitter>::visitInitList(ArrayRef<const Expr *> Inits, in visitInitList()
1550 bool Compiler<Emitter>::visitArrayElemInit(unsigned ElemIndex, in visitArrayElemInit()
1571 bool Compiler<Emitter>::VisitInitListExpr(const InitListExpr *E) { in VisitInitListExpr()
1576 bool Compiler<Emitter>::VisitCXXParenListInitExpr( in VisitCXXParenListInitExpr()
1582 bool Compiler<Emitter>::VisitSubstNonTypeTemplateParmExpr( in VisitSubstNonTypeTemplateParmExpr()
1588 bool Compiler<Emitter>::VisitConstantExpr(const ConstantExpr *E) { in VisitConstantExpr()
1604 bool Compiler<Emitter>::VisitEmbedExpr(const EmbedExpr *E) { in VisitEmbedExpr()
1633 bool Compiler<Emitter>::VisitUnaryExprOrTypeTraitExpr( in VisitUnaryExprOrTypeTraitExpr()
1723 bool Compiler<Emitter>::VisitMemberExpr(const MemberExpr *E) { in VisitMemberExpr()
1775 bool Compiler<Emitter>::VisitArrayInitIndexExpr(const ArrayInitIndexExpr *E) { in VisitArrayInitIndexExpr()
1784 bool Compiler<Emitter>::VisitArrayInitLoopExpr(const ArrayInitLoopExpr *E) { in VisitArrayInitLoopExpr()
1814 bool Compiler<Emitter>::VisitOpaqueValueExpr(const OpaqueValueExpr *E) { in VisitOpaqueValueExpr()
1850 bool Compiler<Emitter>::VisitAbstractConditionalOperator( in VisitAbstractConditionalOperator()
1882 bool Compiler<Emitter>::VisitStringLiteral(const StringLiteral *E) { in VisitStringLiteral()
1939 bool Compiler<Emitter>::VisitObjCStringLiteral(const ObjCStringLiteral *E) { in VisitObjCStringLiteral()
1944 bool Compiler<Emitter>::VisitObjCEncodeExpr(const ObjCEncodeExpr *E) { in VisitObjCEncodeExpr()
1955 bool Compiler<Emitter>::VisitSYCLUniqueStableNameExpr( in VisitSYCLUniqueStableNameExpr()
1979 bool Compiler<Emitter>::VisitCharacterLiteral(const CharacterLiteral *E) { in VisitCharacterLiteral()
1986 bool Compiler<Emitter>::VisitFloatCompoundAssignOperator( in VisitFloatCompoundAssignOperator()
2060 bool Compiler<Emitter>::VisitPointerCompoundAssignOperator( in VisitPointerCompoundAssignOperator()
2097 bool Compiler<Emitter>::VisitCompoundAssignOperator( in VisitCompoundAssignOperator()
2218 bool Compiler<Emitter>::VisitExprWithCleanups(const ExprWithCleanups *E) { in VisitExprWithCleanups()
2228 bool Compiler<Emitter>::VisitMaterializeTemporaryExpr( in VisitMaterializeTemporaryExpr()
2301 bool Compiler<Emitter>::VisitCXXBindTemporaryExpr( in VisitCXXBindTemporaryExpr()
2307 bool Compiler<Emitter>::VisitCompoundLiteralExpr(const CompoundLiteralExpr *E) { in VisitCompoundLiteralExpr()
2372 bool Compiler<Emitter>::VisitTypeTraitExpr(const TypeTraitExpr *E) { in VisitTypeTraitExpr()
2381 bool Compiler<Emitter>::VisitArrayTypeTraitExpr(const ArrayTypeTraitExpr *E) { in VisitArrayTypeTraitExpr()
2388 bool Compiler<Emitter>::VisitLambdaExpr(const LambdaExpr *E) { in VisitLambdaExpr()
2427 bool Compiler<Emitter>::VisitPredefinedExpr(const PredefinedExpr *E) { in VisitPredefinedExpr()
2435 bool Compiler<Emitter>::VisitCXXThrowExpr(const CXXThrowExpr *E) { in VisitCXXThrowExpr()
2443 bool Compiler<Emitter>::VisitCXXReinterpretCastExpr( in VisitCXXReinterpretCastExpr()
2452 bool Compiler<Emitter>::VisitCXXNoexceptExpr(const CXXNoexceptExpr *E) { in VisitCXXNoexceptExpr()
2461 bool Compiler<Emitter>::VisitCXXConstructExpr(const CXXConstructExpr *E) { in VisitCXXConstructExpr()
2580 bool Compiler<Emitter>::VisitSourceLocExpr(const SourceLocExpr *E) { in VisitSourceLocExpr()
2636 bool Compiler<Emitter>::VisitOffsetOfExpr(const OffsetOfExpr *E) { in VisitOffsetOfExpr()
2671 bool Compiler<Emitter>::VisitCXXScalarValueInitExpr( in VisitCXXScalarValueInitExpr()
2730 bool Compiler<Emitter>::VisitSizeOfPackExpr(const SizeOfPackExpr *E) { in VisitSizeOfPackExpr()
2735 bool Compiler<Emitter>::VisitGenericSelectionExpr( in VisitGenericSelectionExpr()
2741 bool Compiler<Emitter>::VisitChooseExpr(const ChooseExpr *E) { in VisitChooseExpr()
2746 bool Compiler<Emitter>::VisitObjCBoolLiteralExpr(const ObjCBoolLiteralExpr *E) { in VisitObjCBoolLiteralExpr()
2754 bool Compiler<Emitter>::VisitCXXInheritedCtorInitExpr( in VisitCXXInheritedCtorInitExpr()
2785 bool Compiler<Emitter>::VisitCXXNewExpr(const CXXNewExpr *E) { in VisitCXXNewExpr()
2885 bool Compiler<Emitter>::VisitCXXDeleteExpr(const CXXDeleteExpr *E) { in VisitCXXDeleteExpr()
2896 bool Compiler<Emitter>::VisitExpressionTraitExpr(const ExpressionTraitExpr *E) { in VisitExpressionTraitExpr()
2902 bool Compiler<Emitter>::VisitCXXUuidofExpr(const CXXUuidofExpr *E) { in VisitCXXUuidofExpr()
2939 bool Compiler<Emitter>::VisitRequiresExpr(const RequiresExpr *E) { in VisitRequiresExpr()
2947 bool Compiler<Emitter>::VisitConceptSpecializationExpr( in VisitConceptSpecializationExpr()
2956 bool Compiler<Emitter>::VisitCXXRewrittenBinaryOperator( in VisitCXXRewrittenBinaryOperator()
2962 bool Compiler<Emitter>::VisitPseudoObjectExpr(const PseudoObjectExpr *E) { in VisitPseudoObjectExpr()
2986 bool Compiler<Emitter>::VisitPackIndexingExpr(const PackIndexingExpr *E) { in VisitPackIndexingExpr()
2991 bool Compiler<Emitter>::VisitRecoveryExpr(const RecoveryExpr *E) { in VisitRecoveryExpr()
2996 bool Compiler<Emitter>::VisitAddrLabelExpr(const AddrLabelExpr *E) { in VisitAddrLabelExpr()
3006 bool Compiler<Emitter>::VisitConvertVectorExpr(const ConvertVectorExpr *E) { in VisitConvertVectorExpr()
3038 bool Compiler<Emitter>::VisitShuffleVectorExpr(const ShuffleVectorExpr *E) { in VisitShuffleVectorExpr()
3080 bool Compiler<Emitter>::VisitExtVectorElementExpr( in VisitExtVectorElementExpr()
3142 bool Compiler<Emitter>::VisitObjCBoxedExpr(const ObjCBoxedExpr *E) { in VisitObjCBoxedExpr()
3150 bool Compiler<Emitter>::VisitCXXStdInitializerListExpr( in VisitCXXStdInitializerListExpr()
3183 bool Compiler<Emitter>::VisitStmtExpr(const StmtExpr *E) { in VisitStmtExpr()
3209 template <class Emitter> bool Compiler<Emitter>::discard(const Expr *E) { in discard()
3215 template <class Emitter> bool Compiler<Emitter>::delegate(const Expr *E) { in delegate()
3225 template <class Emitter> bool Compiler<Emitter>::visit(const Expr *E) { in visit()
3252 bool Compiler<Emitter>::visitInitializer(const Expr *E) { in visitInitializer()
3263 template <class Emitter> bool Compiler<Emitter>::visitBool(const Expr *E) { in visitBool()
3297 bool Compiler<Emitter>::visitZeroInitializer(PrimType T, QualType QT, in visitZeroInitializer()
3336 bool Compiler<Emitter>::visitZeroRecordInitializer(const Record *R, in visitZeroRecordInitializer()
3405 bool Compiler<Emitter>::emitConst(T Value, PrimType Ty, const Expr *E) { in emitConst()
3439 bool Compiler<Emitter>::emitConst(T Value, const Expr *E) { in emitConst()
3444 bool Compiler<Emitter>::emitConst(const APSInt &Value, PrimType Ty, in emitConst()
3457 bool Compiler<Emitter>::emitConst(const APSInt &Value, const Expr *E) { in emitConst()
3462 unsigned Compiler<Emitter>::allocateLocalPrimitive(DeclTy &&Src, PrimType Ty, in allocateLocalPrimitive()
3487 Compiler<Emitter>::allocateLocal(DeclTy &&Src, const ValueDecl *ExtendingDecl) { in allocateLocal()
3528 const RecordType *Compiler<Emitter>::getRecordTy(QualType Ty) { in getRecordTy()
3534 template <class Emitter> Record *Compiler<Emitter>::getRecord(QualType Ty) { in getRecord()
3541 Record *Compiler<Emitter>::getRecord(const RecordDecl *RD) { in getRecord()
3546 const Function *Compiler<Emitter>::getFunction(const FunctionDecl *FD) { in getFunction()
3550 template <class Emitter> bool Compiler<Emitter>::visitExpr(const Expr *E) { in visitExpr()
3589 VarCreationState Compiler<Emitter>::visitDecl(const VarDecl *VD) { in visitDecl()
3617 bool Compiler<Emitter>::visitDeclAndReturn(const VarDecl *VD, in visitDeclAndReturn()
3677 VarCreationState Compiler<Emitter>::visitVarDecl(const VarDecl *VD, bool Toplevel) { in visitVarDecl()
3783 bool Compiler<Emitter>::visitAPValue(const APValue &Val, PrimType ValType, in visitAPValue()
3810 bool Compiler<Emitter>::visitAPValueInitializer(const APValue &Val, in visitAPValueInitializer()
3873 bool Compiler<Emitter>::VisitBuiltinCallExpr(const CallExpr *E) { in VisitBuiltinCallExpr()
3928 bool Compiler<Emitter>::VisitCallExpr(const CallExpr *E) { in VisitCallExpr()
4088 bool Compiler<Emitter>::VisitCXXDefaultInitExpr(const CXXDefaultInitExpr *E) { in VisitCXXDefaultInitExpr()
4095 bool Compiler<Emitter>::VisitCXXDefaultArgExpr(const CXXDefaultArgExpr *E) { in VisitCXXDefaultArgExpr()
4107 bool Compiler<Emitter>::VisitCXXBoolLiteralExpr(const CXXBoolLiteralExpr *E) { in VisitCXXBoolLiteralExpr()
4115 bool Compiler<Emitter>::VisitCXXNullPtrLiteralExpr( in VisitCXXNullPtrLiteralExpr()
4124 bool Compiler<Emitter>::VisitGNUNullExpr(const GNUNullExpr *E) { in VisitGNUNullExpr()
4135 bool Compiler<Emitter>::VisitCXXThisExpr(const CXXThisExpr *E) { in VisitCXXThisExpr()
4168 template <class Emitter> bool Compiler<Emitter>::visitStmt(const Stmt *S) { in visitStmt()
4219 template <class Emitter> bool Compiler<Emitter>::visitLoopBody(const Stmt *S) { in visitLoopBody()
4234 bool Compiler<Emitter>::visitCompoundStmt(const CompoundStmt *S) { in visitCompoundStmt()
4243 bool Compiler<Emitter>::visitDeclStmt(const DeclStmt *DS) { in visitDeclStmt()
4260 bool Compiler<Emitter>::visitReturnStmt(const ReturnStmt *RS) { in visitReturnStmt()
4294 template <class Emitter> bool Compiler<Emitter>::visitIfStmt(const IfStmt *IS) { in visitIfStmt()
4339 bool Compiler<Emitter>::visitWhileStmt(const WhileStmt *S) { in visitWhileStmt()
4373 template <class Emitter> bool Compiler<Emitter>::visitDoStmt(const DoStmt *S) { in visitDoStmt()
4404 bool Compiler<Emitter>::visitForStmt(const ForStmt *S) { in visitForStmt()
4452 bool Compiler<Emitter>::visitCXXForRangeStmt(const CXXForRangeStmt *S) { in visitCXXForRangeStmt()
4510 bool Compiler<Emitter>::visitBreakStmt(const BreakStmt *S) { in visitBreakStmt()
4519 bool Compiler<Emitter>::visitContinueStmt(const ContinueStmt *S) { in visitContinueStmt()
4528 bool Compiler<Emitter>::visitSwitchStmt(const SwitchStmt *S) { in visitSwitchStmt()
4598 bool Compiler<Emitter>::visitCaseStmt(const CaseStmt *S) { in visitCaseStmt()
4604 bool Compiler<Emitter>::visitDefaultStmt(const DefaultStmt *S) { in visitDefaultStmt()
4610 bool Compiler<Emitter>::visitAttributedStmt(const AttributedStmt *S) { in visitAttributedStmt()
4641 bool Compiler<Emitter>::visitCXXTryStmt(const CXXTryStmt *S) { in visitCXXTryStmt()
4647 bool Compiler<Emitter>::emitLambdaStaticInvokerBody(const CXXMethodDecl *MD) { in emitLambdaStaticInvokerBody()
4697 bool Compiler<Emitter>::visitFunc(const FunctionDecl *F) { in visitFunc()
4818 bool Compiler<Emitter>::VisitUnaryOperator(const UnaryOperator *E) { in VisitUnaryOperator()
5037 bool Compiler<Emitter>::VisitComplexUnaryOperator(const UnaryOperator *E) { in VisitComplexUnaryOperator()
5144 bool Compiler<Emitter>::visitDeclRef(const ValueDecl *D, const Expr *E) { in visitDeclRef()
5271 bool Compiler<Emitter>::VisitDeclRefExpr(const DeclRefExpr *E) { in VisitDeclRefExpr()
5276 template <class Emitter> void Compiler<Emitter>::emitCleanup() { in emitCleanup()
5282 unsigned Compiler<Emitter>::collectBaseOffset(const QualType BaseType, in collectBaseOffset()
5297 bool Compiler<Emitter>::emitPrimCast(PrimType FromT, PrimType ToT, in emitPrimCast()
5340 bool Compiler<Emitter>::emitComplexReal(const Expr *SubExpr) { in emitComplexReal()
5360 bool Compiler<Emitter>::emitComplexBoolCast(const Expr *E) { in emitComplexBoolCast()
5406 bool Compiler<Emitter>::emitComplexComparison(const Expr *LHS, const Expr *RHS, in emitComplexComparison()
5504 bool Compiler<Emitter>::emitRecordDestruction(const Record *R) { in emitRecordDestruction()
5552 bool Compiler<Emitter>::emitDestruction(const Descriptor *Desc) { in emitDestruction()
5595 template class Compiler<ByteCodeEmitter>; variable
5596 template class Compiler<EvalEmitter>; variable