| OLD | NEW |
| 1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 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 "src/compiler/pipeline.h" | 5 #include "src/compiler/pipeline.h" |
| 6 | 6 |
| 7 #include "src/base/platform/elapsed-timer.h" | 7 #include "src/base/platform/elapsed-timer.h" |
| 8 #include "src/compiler/ast-graph-builder.h" | 8 #include "src/compiler/ast-graph-builder.h" |
| 9 #include "src/compiler/code-generator.h" | 9 #include "src/compiler/code-generator.h" |
| 10 #include "src/compiler/graph-replay.h" | 10 #include "src/compiler/graph-replay.h" |
| (...skipping 193 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 204 // Type the graph. | 204 // Type the graph. |
| 205 PhaseStats typer_stats(info(), PhaseStats::CREATE_GRAPH, "typer"); | 205 PhaseStats typer_stats(info(), PhaseStats::CREATE_GRAPH, "typer"); |
| 206 typer.Run(&graph, info()->context()); | 206 typer.Run(&graph, info()->context()); |
| 207 } | 207 } |
| 208 // All new nodes must be typed. | 208 // All new nodes must be typed. |
| 209 typer.DecorateGraph(&graph); | 209 typer.DecorateGraph(&graph); |
| 210 { | 210 { |
| 211 // Lower JSOperators where we can determine types. | 211 // Lower JSOperators where we can determine types. |
| 212 PhaseStats lowering_stats(info(), PhaseStats::CREATE_GRAPH, | 212 PhaseStats lowering_stats(info(), PhaseStats::CREATE_GRAPH, |
| 213 "typed lowering"); | 213 "typed lowering"); |
| 214 JSTypedLowering lowering(&jsgraph, &source_positions); | 214 SourcePositionTable::Scope pos(&source_positions, |
| 215 lowering.LowerAllNodes(); | 215 SourcePosition::Unknown()); |
| 216 JSTypedLowering lowering(&jsgraph); |
| 217 GraphReducer graph_reducer(&graph); |
| 218 graph_reducer.AddReducer(&lowering); |
| 219 graph_reducer.ReduceGraph(); |
| 216 | 220 |
| 217 VerifyAndPrintGraph(&graph, "Lowered typed"); | 221 VerifyAndPrintGraph(&graph, "Lowered typed"); |
| 218 } | 222 } |
| 219 } | 223 } |
| 220 | 224 |
| 221 Handle<Code> code = Handle<Code>::null(); | 225 Handle<Code> code = Handle<Code>::null(); |
| 222 if (SupportedTarget()) { | 226 if (SupportedTarget()) { |
| 223 { | 227 { |
| 224 // Lower any remaining generic JSOperators. | 228 // Lower any remaining generic JSOperators. |
| 225 PhaseStats lowering_stats(info(), PhaseStats::CREATE_GRAPH, | 229 PhaseStats lowering_stats(info(), PhaseStats::CREATE_GRAPH, |
| 226 "generic lowering"); | 230 "generic lowering"); |
| 231 SourcePositionTable::Scope pos(&source_positions, |
| 232 SourcePosition::Unknown()); |
| 227 MachineOperatorBuilder machine(zone()); | 233 MachineOperatorBuilder machine(zone()); |
| 228 JSGenericLowering lowering(info(), &jsgraph, &machine, &source_positions); | 234 JSGenericLowering lowering(info(), &jsgraph, &machine); |
| 229 lowering.LowerAllNodes(); | 235 GraphReducer graph_reducer(&graph); |
| 236 graph_reducer.AddReducer(&lowering); |
| 237 graph_reducer.ReduceGraph(); |
| 230 | 238 |
| 231 VerifyAndPrintGraph(&graph, "Lowered generic"); | 239 VerifyAndPrintGraph(&graph, "Lowered generic"); |
| 232 } | 240 } |
| 233 | 241 |
| 234 // Compute a schedule. | 242 // Compute a schedule. |
| 235 Schedule* schedule = ComputeSchedule(&graph); | 243 Schedule* schedule = ComputeSchedule(&graph); |
| 236 TraceSchedule(schedule); | 244 TraceSchedule(schedule); |
| 237 | 245 |
| 238 { | 246 { |
| 239 // Generate optimized code. | 247 // Generate optimized code. |
| (...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 341 } | 349 } |
| 342 | 350 |
| 343 | 351 |
| 344 void Pipeline::TearDown() { | 352 void Pipeline::TearDown() { |
| 345 InstructionOperand::TearDownCaches(); | 353 InstructionOperand::TearDownCaches(); |
| 346 } | 354 } |
| 347 | 355 |
| 348 } // namespace compiler | 356 } // namespace compiler |
| 349 } // namespace internal | 357 } // namespace internal |
| 350 } // namespace v8 | 358 } // namespace v8 |
| OLD | NEW |