| OLD | NEW |
| 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2015, 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 #include "vm/precompiler.h" | 5 #include "vm/precompiler.h" |
| 6 | 6 |
| 7 #include "vm/aot_optimizer.h" | 7 #include "vm/aot_optimizer.h" |
| 8 #include "vm/assembler.h" | 8 #include "vm/assembler.h" |
| 9 #include "vm/ast_printer.h" | 9 #include "vm/ast_printer.h" |
| 10 #include "vm/branch_optimizer.h" | 10 #include "vm/branch_optimizer.h" |
| (...skipping 1090 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1101 void Precompiler::AddConstObject(const Instance& instance) { | 1101 void Precompiler::AddConstObject(const Instance& instance) { |
| 1102 const Class& cls = Class::Handle(Z, instance.clazz()); | 1102 const Class& cls = Class::Handle(Z, instance.clazz()); |
| 1103 AddInstantiatedClass(cls); | 1103 AddInstantiatedClass(cls); |
| 1104 | 1104 |
| 1105 if (instance.IsClosure()) { | 1105 if (instance.IsClosure()) { |
| 1106 // An implicit static closure. | 1106 // An implicit static closure. |
| 1107 const Function& func = | 1107 const Function& func = |
| 1108 Function::Handle(Z, Closure::Cast(instance).function()); | 1108 Function::Handle(Z, Closure::Cast(instance).function()); |
| 1109 ASSERT(func.is_static()); | 1109 ASSERT(func.is_static()); |
| 1110 AddFunction(func); | 1110 AddFunction(func); |
| 1111 AddTypeArguments(TypeArguments::Handle(Z, instance.GetTypeArguments())); | 1111 AddTypeArguments( |
| 1112 TypeArguments::Handle(Z, Closure::Cast(instance).instantiator())); |
| 1112 return; | 1113 return; |
| 1113 } | 1114 } |
| 1114 | 1115 |
| 1115 // Can't ask immediate objects if they're canoncial. | 1116 // Can't ask immediate objects if they're canoncial. |
| 1116 if (instance.IsSmi()) return; | 1117 if (instance.IsSmi()) return; |
| 1117 | 1118 |
| 1118 // Some Instances in the ObjectPool aren't const objects, such as | 1119 // Some Instances in the ObjectPool aren't const objects, such as |
| 1119 // argument descriptors. | 1120 // argument descriptors. |
| 1120 if (!instance.IsCanonical()) return; | 1121 if (!instance.IsCanonical()) return; |
| 1121 | 1122 |
| (...skipping 2432 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3554 | 3555 |
| 3555 ASSERT(FLAG_precompiled_mode); | 3556 ASSERT(FLAG_precompiled_mode); |
| 3556 const bool optimized = function.IsOptimizable(); // False for natives. | 3557 const bool optimized = function.IsOptimizable(); // False for natives. |
| 3557 DartPrecompilationPipeline pipeline(zone, field_type_map); | 3558 DartPrecompilationPipeline pipeline(zone, field_type_map); |
| 3558 return PrecompileFunctionHelper(precompiler, &pipeline, function, optimized); | 3559 return PrecompileFunctionHelper(precompiler, &pipeline, function, optimized); |
| 3559 } | 3560 } |
| 3560 | 3561 |
| 3561 #endif // DART_PRECOMPILER | 3562 #endif // DART_PRECOMPILER |
| 3562 | 3563 |
| 3563 } // namespace dart | 3564 } // namespace dart |
| OLD | NEW |