OLD | NEW |
1 // Copyright 2013 the V8 project authors. All rights reserved. | 1 // Copyright 2013 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include <deque> | 5 #include <deque> |
6 #include <queue> | 6 #include <queue> |
7 | 7 |
8 #include "src/compiler/scheduler.h" | 8 #include "src/compiler/scheduler.h" |
9 | 9 |
10 #include "src/compiler/graph.h" | 10 #include "src/compiler/graph.h" |
(...skipping 221 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
232 schedule_root_nodes_(zone), | 232 schedule_root_nodes_(zone), |
233 node_data_(graph_->NodeCount(), DefaultSchedulerData(), zone), | 233 node_data_(graph_->NodeCount(), DefaultSchedulerData(), zone), |
234 has_floating_control_(false) {} | 234 has_floating_control_(false) {} |
235 | 235 |
236 | 236 |
237 Schedule* Scheduler::ComputeSchedule(Graph* graph) { | 237 Schedule* Scheduler::ComputeSchedule(Graph* graph) { |
238 Schedule* schedule; | 238 Schedule* schedule; |
239 bool had_floating_control = false; | 239 bool had_floating_control = false; |
240 do { | 240 do { |
241 Zone tmp_zone(graph->zone()->isolate()); | 241 Zone tmp_zone(graph->zone()->isolate()); |
242 schedule = new (graph->zone()) Schedule(graph->zone()); | 242 schedule = new (graph->zone()) |
| 243 Schedule(graph->zone(), static_cast<size_t>(graph->NodeCount())); |
243 Scheduler scheduler(&tmp_zone, graph, schedule); | 244 Scheduler scheduler(&tmp_zone, graph, schedule); |
244 | 245 |
245 scheduler.BuildCFG(); | 246 scheduler.BuildCFG(); |
246 | 247 |
247 Scheduler::ComputeSpecialRPO(schedule); | 248 Scheduler::ComputeSpecialRPO(schedule); |
248 scheduler.GenerateImmediateDominatorTree(); | 249 scheduler.GenerateImmediateDominatorTree(); |
249 | 250 |
250 scheduler.PrepareUses(); | 251 scheduler.PrepareUses(); |
251 scheduler.ScheduleEarly(); | 252 scheduler.ScheduleEarly(); |
252 scheduler.ScheduleLate(); | 253 scheduler.ScheduleLate(); |
(...skipping 863 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1116 | 1117 |
1117 #if DEBUG | 1118 #if DEBUG |
1118 if (FLAG_trace_turbo_scheduler) PrintRPO(num_loops, loops, final_order); | 1119 if (FLAG_trace_turbo_scheduler) PrintRPO(num_loops, loops, final_order); |
1119 VerifySpecialRPO(num_loops, loops, final_order); | 1120 VerifySpecialRPO(num_loops, loops, final_order); |
1120 #endif | 1121 #endif |
1121 return final_order; | 1122 return final_order; |
1122 } | 1123 } |
1123 } | 1124 } |
1124 } | 1125 } |
1125 } // namespace v8::internal::compiler | 1126 } // namespace v8::internal::compiler |
OLD | NEW |