OLD | NEW |
1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2016, the Dart project authors. Please see the AUTHORS file |
2 // for details. All rights reserved. Use of this source code is governed by a | 2 // for details. All rights reserved. Use of this source code is governed by a |
3 // BSD-style license that can be found in the LICENSE file. | 3 // BSD-style license that can be found in the LICENSE file. |
4 | 4 |
5 #ifndef RUNTIME_VM_KERNEL_TO_IL_H_ | 5 #ifndef RUNTIME_VM_KERNEL_TO_IL_H_ |
6 #define RUNTIME_VM_KERNEL_TO_IL_H_ | 6 #define RUNTIME_VM_KERNEL_TO_IL_H_ |
7 | 7 |
8 #if !defined(DART_PRECOMPILED_RUNTIME) | 8 #if !defined(DART_PRECOMPILED_RUNTIME) |
9 | 9 |
10 #include "vm/growable_array.h" | 10 #include "vm/growable_array.h" |
(...skipping 433 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
444 virtual void VisitFunctionType(FunctionType* node); | 444 virtual void VisitFunctionType(FunctionType* node); |
445 | 445 |
446 virtual void VisitTypeParameterType(TypeParameterType* node); | 446 virtual void VisitTypeParameterType(TypeParameterType* node); |
447 | 447 |
448 virtual void VisitInterfaceType(InterfaceType* node); | 448 virtual void VisitInterfaceType(InterfaceType* node); |
449 | 449 |
450 virtual void VisitDynamicType(DynamicType* node); | 450 virtual void VisitDynamicType(DynamicType* node); |
451 | 451 |
452 virtual void VisitVoidType(VoidType* node); | 452 virtual void VisitVoidType(VoidType* node); |
453 | 453 |
| 454 virtual void VisitVectorType(VectorType* node); |
| 455 |
454 virtual void VisitBottomType(BottomType* node); | 456 virtual void VisitBottomType(BottomType* node); |
455 | 457 |
456 // Will return `TypeArguments::null()` in case any of the arguments are | 458 // Will return `TypeArguments::null()` in case any of the arguments are |
457 // malformed. | 459 // malformed. |
458 const TypeArguments& TranslateInstantiatedTypeArguments( | 460 const TypeArguments& TranslateInstantiatedTypeArguments( |
459 const dart::Class& receiver_class, | 461 const dart::Class& receiver_class, |
460 DartType** receiver_type_arguments, | 462 DartType** receiver_type_arguments, |
461 intptr_t length); | 463 intptr_t length); |
462 | 464 |
463 // Will return `TypeArguments::null()` in case any of the arguments are | 465 // Will return `TypeArguments::null()` in case any of the arguments are |
(...skipping 359 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
823 virtual void VisitLogicalExpression(LogicalExpression* node); | 825 virtual void VisitLogicalExpression(LogicalExpression* node); |
824 virtual void VisitNot(Not* node); | 826 virtual void VisitNot(Not* node); |
825 virtual void VisitThisExpression(ThisExpression* node); | 827 virtual void VisitThisExpression(ThisExpression* node); |
826 virtual void VisitStringConcatenation(StringConcatenation* node); | 828 virtual void VisitStringConcatenation(StringConcatenation* node); |
827 virtual void VisitListLiteral(ListLiteral* node); | 829 virtual void VisitListLiteral(ListLiteral* node); |
828 virtual void VisitMapLiteral(MapLiteral* node); | 830 virtual void VisitMapLiteral(MapLiteral* node); |
829 virtual void VisitFunctionExpression(FunctionExpression* node); | 831 virtual void VisitFunctionExpression(FunctionExpression* node); |
830 virtual void VisitLet(Let* node); | 832 virtual void VisitLet(Let* node); |
831 virtual void VisitThrow(Throw* node); | 833 virtual void VisitThrow(Throw* node); |
832 virtual void VisitRethrow(Rethrow* node); | 834 virtual void VisitRethrow(Rethrow* node); |
| 835 virtual void VisitVectorCreation(VectorCreation* node); |
| 836 virtual void VisitVectorGet(VectorGet* node); |
| 837 virtual void VisitVectorSet(VectorSet* node); |
| 838 virtual void VisitVectorCopy(VectorCopy* node); |
| 839 virtual void VisitClosureCreation(ClosureCreation* node); |
833 | 840 |
834 virtual void VisitInvalidStatement(InvalidStatement* node); | 841 virtual void VisitInvalidStatement(InvalidStatement* node); |
835 virtual void VisitEmptyStatement(EmptyStatement* node); | 842 virtual void VisitEmptyStatement(EmptyStatement* node); |
836 virtual void VisitBlock(Block* node); | 843 virtual void VisitBlock(Block* node); |
837 virtual void VisitReturnStatement(ReturnStatement* node); | 844 virtual void VisitReturnStatement(ReturnStatement* node); |
838 virtual void VisitExpressionStatement(ExpressionStatement* node); | 845 virtual void VisitExpressionStatement(ExpressionStatement* node); |
839 virtual void VisitVariableDeclaration(VariableDeclaration* node); | 846 virtual void VisitVariableDeclaration(VariableDeclaration* node); |
840 virtual void VisitFunctionDeclaration(FunctionDeclaration* node); | 847 virtual void VisitFunctionDeclaration(FunctionDeclaration* node); |
841 virtual void VisitIfStatement(IfStatement* node); | 848 virtual void VisitIfStatement(IfStatement* node); |
842 virtual void VisitWhileStatement(WhileStatement* node); | 849 virtual void VisitWhileStatement(WhileStatement* node); |
(...skipping 11 matching lines...) Expand all Loading... |
854 | 861 |
855 private: | 862 private: |
856 FlowGraph* BuildGraphOfFunction(FunctionNode* node, | 863 FlowGraph* BuildGraphOfFunction(FunctionNode* node, |
857 Constructor* constructor = NULL); | 864 Constructor* constructor = NULL); |
858 FlowGraph* BuildGraphOfFieldAccessor(Field* node, | 865 FlowGraph* BuildGraphOfFieldAccessor(Field* node, |
859 LocalVariable* setter_value); | 866 LocalVariable* setter_value); |
860 FlowGraph* BuildGraphOfStaticFieldInitializer(Field* node); | 867 FlowGraph* BuildGraphOfStaticFieldInitializer(Field* node); |
861 FlowGraph* BuildGraphOfMethodExtractor(const Function& method); | 868 FlowGraph* BuildGraphOfMethodExtractor(const Function& method); |
862 FlowGraph* BuildGraphOfImplicitClosureFunction(FunctionNode* kernel_function, | 869 FlowGraph* BuildGraphOfImplicitClosureFunction(FunctionNode* kernel_function, |
863 const Function& function); | 870 const Function& function); |
| 871 FlowGraph* BuildGraphOfConvertedClosureFunction(FunctionNode* kernel_function, |
| 872 const Function& function); |
864 FlowGraph* BuildGraphOfNoSuchMethodDispatcher(const Function& function); | 873 FlowGraph* BuildGraphOfNoSuchMethodDispatcher(const Function& function); |
865 FlowGraph* BuildGraphOfInvokeFieldDispatcher(const Function& function); | 874 FlowGraph* BuildGraphOfInvokeFieldDispatcher(const Function& function); |
866 | 875 |
867 Fragment NativeFunctionBody(FunctionNode* kernel_function, | 876 Fragment NativeFunctionBody(FunctionNode* kernel_function, |
868 const Function& function); | 877 const Function& function); |
869 | 878 |
870 void SetupDefaultParameterValues(FunctionNode* function); | 879 void SetupDefaultParameterValues(FunctionNode* function); |
871 | 880 |
872 TargetEntryInstr* BuildTargetEntry(); | 881 TargetEntryInstr* BuildTargetEntry(); |
873 JoinEntryInstr* BuildJoinEntry(); | 882 JoinEntryInstr* BuildJoinEntry(); |
(...skipping 487 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1361 namespace kernel { | 1370 namespace kernel { |
1362 | 1371 |
1363 RawObject* EvaluateMetadata(const dart::Field& metadata_field); | 1372 RawObject* EvaluateMetadata(const dart::Field& metadata_field); |
1364 RawObject* BuildParameterDescriptor(const Function& function); | 1373 RawObject* BuildParameterDescriptor(const Function& function); |
1365 | 1374 |
1366 } // namespace kernel | 1375 } // namespace kernel |
1367 } // namespace dart | 1376 } // namespace dart |
1368 | 1377 |
1369 #endif // !defined(DART_PRECOMPILED_RUNTIME) | 1378 #endif // !defined(DART_PRECOMPILED_RUNTIME) |
1370 #endif // RUNTIME_VM_KERNEL_TO_IL_H_ | 1379 #endif // RUNTIME_VM_KERNEL_TO_IL_H_ |
OLD | NEW |