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 #include "vm/ast_printer.h" | 8 #include "vm/ast_printer.h" |
9 #include "vm/code_generator.h" | 9 #include "vm/code_generator.h" |
10 #include "vm/code_patcher.h" | 10 #include "vm/code_patcher.h" |
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
170 FlowGraphPrinter printer(*flow_graph); | 170 FlowGraphPrinter printer(*flow_graph); |
171 printer.PrintBlocks(); | 171 printer.PrintBlocks(); |
172 } | 172 } |
173 if (Dart::flow_graph_writer() != NULL) { | 173 if (Dart::flow_graph_writer() != NULL) { |
174 // Write flow graph to file. | 174 // Write flow graph to file. |
175 FlowGraphVisualizer printer(*flow_graph); | 175 FlowGraphVisualizer printer(*flow_graph); |
176 printer.PrintFunction(); | 176 printer.PrintFunction(); |
177 } | 177 } |
178 | 178 |
179 if (optimized) { | 179 if (optimized) { |
180 FlowGraphOptimizer optimizer(*flow_graph); | 180 // TODO(vegorov): we need to compute uses for the |
| 181 // purposes of unboxing. Move unboxing to a later |
| 182 // stage. |
| 183 // Compute the use lists. |
| 184 flow_graph->ComputeUseLists(); |
| 185 |
| 186 FlowGraphOptimizer optimizer(flow_graph); |
181 optimizer.ApplyICData(); | 187 optimizer.ApplyICData(); |
182 | 188 |
183 // Compute the use lists. | 189 // Compute the use lists. |
184 flow_graph->ComputeUseLists(); | 190 flow_graph->ComputeUseLists(); |
185 | 191 |
186 // Propagate types and eliminate more type tests. | 192 // Propagate types and eliminate more type tests. |
187 FlowGraphTypePropagator propagator(*flow_graph); | 193 FlowGraphTypePropagator propagator(*flow_graph); |
188 propagator.PropagateTypes(); | 194 propagator.PropagateTypes(); |
189 | 195 |
190 // TODO(zerny): Here we assume that the use lists remain valid after | 196 // TODO(zerny): Here we assume that the use lists remain valid after |
(...skipping 364 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
555 result = isolate->object_store()->sticky_error(); | 561 result = isolate->object_store()->sticky_error(); |
556 isolate->object_store()->clear_sticky_error(); | 562 isolate->object_store()->clear_sticky_error(); |
557 isolate->set_long_jump_base(base); | 563 isolate->set_long_jump_base(base); |
558 return result.raw(); | 564 return result.raw(); |
559 } | 565 } |
560 UNREACHABLE(); | 566 UNREACHABLE(); |
561 return Object::null(); | 567 return Object::null(); |
562 } | 568 } |
563 | 569 |
564 } // namespace dart | 570 } // namespace dart |
OLD | NEW |