| OLD | NEW |
| 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2012, 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/compiler.h" | 5 #include "vm/compiler.h" |
| 6 | 6 |
| 7 #include "vm/assembler.h" | 7 #include "vm/assembler.h" |
| 8 | 8 |
| 9 #include "vm/ast_printer.h" | 9 #include "vm/ast_printer.h" |
| 10 #include "vm/block_scheduler.h" | 10 #include "vm/block_scheduler.h" |
| (...skipping 531 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 542 // Propagate types to create more inlining opportunities. | 542 // Propagate types to create more inlining opportunities. |
| 543 FlowGraphTypePropagator::Propagate(flow_graph); | 543 FlowGraphTypePropagator::Propagate(flow_graph); |
| 544 DEBUG_ASSERT(flow_graph->VerifyUseLists()); | 544 DEBUG_ASSERT(flow_graph->VerifyUseLists()); |
| 545 | 545 |
| 546 // Use propagated class-ids to create more inlining opportunities. | 546 // Use propagated class-ids to create more inlining opportunities. |
| 547 optimizer.ApplyClassIds(); | 547 optimizer.ApplyClassIds(); |
| 548 DEBUG_ASSERT(flow_graph->VerifyUseLists()); | 548 DEBUG_ASSERT(flow_graph->VerifyUseLists()); |
| 549 | 549 |
| 550 FlowGraphInliner inliner(flow_graph, | 550 FlowGraphInliner inliner(flow_graph, |
| 551 &inline_id_to_function, | 551 &inline_id_to_function, |
| 552 &caller_inline_id); | 552 &caller_inline_id, |
| 553 use_speculative_inlining, |
| 554 &inlining_black_list); |
| 553 inliner.Inline(); | 555 inliner.Inline(); |
| 554 // Use lists are maintained and validated by the inliner. | 556 // Use lists are maintained and validated by the inliner. |
| 555 DEBUG_ASSERT(flow_graph->VerifyUseLists()); | 557 DEBUG_ASSERT(flow_graph->VerifyUseLists()); |
| 556 } | 558 } |
| 557 | 559 |
| 558 // Propagate types and eliminate more type tests. | 560 // Propagate types and eliminate more type tests. |
| 559 FlowGraphTypePropagator::Propagate(flow_graph); | 561 FlowGraphTypePropagator::Propagate(flow_graph); |
| 560 DEBUG_ASSERT(flow_graph->VerifyUseLists()); | 562 DEBUG_ASSERT(flow_graph->VerifyUseLists()); |
| 561 | 563 |
| 562 // Use propagated class-ids to optimize further. | 564 // Use propagated class-ids to optimize further. |
| (...skipping 1330 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1893 } | 1895 } |
| 1894 | 1896 |
| 1895 | 1897 |
| 1896 void BackgroundCompiler::EnsureInit(Thread* thread) { | 1898 void BackgroundCompiler::EnsureInit(Thread* thread) { |
| 1897 UNREACHABLE(); | 1899 UNREACHABLE(); |
| 1898 } | 1900 } |
| 1899 | 1901 |
| 1900 #endif // DART_PRECOMPILED | 1902 #endif // DART_PRECOMPILED |
| 1901 | 1903 |
| 1902 } // namespace dart | 1904 } // namespace dart |
| OLD | NEW |