| 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 2656 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2667 compiler_timeline, | 2667 compiler_timeline, |
| 2668 "AllocationSinking::DetachMaterializations"); | 2668 "AllocationSinking::DetachMaterializations"); |
| 2669 #endif // !PRODUCT | 2669 #endif // !PRODUCT |
| 2670 // Remove all MaterializeObject instructions inserted by allocation | 2670 // Remove all MaterializeObject instructions inserted by allocation |
| 2671 // sinking from the flow graph and let them float on the side | 2671 // sinking from the flow graph and let them float on the side |
| 2672 // referenced only from environments. Register allocator will consider | 2672 // referenced only from environments. Register allocator will consider |
| 2673 // them as part of a deoptimization environment. | 2673 // them as part of a deoptimization environment. |
| 2674 sinking->DetachMaterializations(); | 2674 sinking->DetachMaterializations(); |
| 2675 } | 2675 } |
| 2676 | 2676 |
| 2677 // Replace bounds check instruction with a generic one. |
| 2678 optimizer.ReplaceArrayBoundChecks(); |
| 2679 |
| 2677 // Compute and store graph informations (call & instruction counts) | 2680 // Compute and store graph informations (call & instruction counts) |
| 2678 // to be later used by the inliner. | 2681 // to be later used by the inliner. |
| 2679 FlowGraphInliner::CollectGraphInfo(flow_graph, true); | 2682 FlowGraphInliner::CollectGraphInfo(flow_graph, true); |
| 2680 | 2683 |
| 2681 { | 2684 { |
| 2682 #ifndef PRODUCT | 2685 #ifndef PRODUCT |
| 2683 TimelineDurationScope tds2(thread(), | 2686 TimelineDurationScope tds2(thread(), |
| 2684 compiler_timeline, | 2687 compiler_timeline, |
| 2685 "AllocateRegisters"); | 2688 "AllocateRegisters"); |
| 2686 #endif // !PRODUCT | 2689 #endif // !PRODUCT |
| (...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2880 CompilationPipeline::New(thread->zone(), function); | 2883 CompilationPipeline::New(thread->zone(), function); |
| 2881 | 2884 |
| 2882 ASSERT(FLAG_precompiled_mode); | 2885 ASSERT(FLAG_precompiled_mode); |
| 2883 const bool optimized = function.IsOptimizable(); // False for natives. | 2886 const bool optimized = function.IsOptimizable(); // False for natives. |
| 2884 return PrecompileFunctionHelper(pipeline, function, optimized); | 2887 return PrecompileFunctionHelper(pipeline, function, optimized); |
| 2885 } | 2888 } |
| 2886 | 2889 |
| 2887 #endif // DART_PRECOMPILER | 2890 #endif // DART_PRECOMPILER |
| 2888 | 2891 |
| 2889 } // namespace dart | 2892 } // namespace dart |
| OLD | NEW |