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 <fstream> // NOLINT(readability/streams) | 7 #include <fstream> // NOLINT(readability/streams) |
8 #include <sstream> | 8 #include <sstream> |
9 | 9 |
10 #include "src/base/platform/elapsed-timer.h" | 10 #include "src/base/platform/elapsed-timer.h" |
(...skipping 373 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
384 void Run(PipelineData* data, Zone* temp_zone) { data->typer()->Run(); } | 384 void Run(PipelineData* data, Zone* temp_zone) { data->typer()->Run(); } |
385 }; | 385 }; |
386 | 386 |
387 | 387 |
388 struct TypedLoweringPhase { | 388 struct TypedLoweringPhase { |
389 static const char* phase_name() { return "typed lowering"; } | 389 static const char* phase_name() { return "typed lowering"; } |
390 | 390 |
391 void Run(PipelineData* data, Zone* temp_zone) { | 391 void Run(PipelineData* data, Zone* temp_zone) { |
392 SourcePositionTable::Scope pos(data->source_positions(), | 392 SourcePositionTable::Scope pos(data->source_positions(), |
393 SourcePosition::Unknown()); | 393 SourcePosition::Unknown()); |
394 ValueNumberingReducer vn_reducer(data->graph_zone()); | 394 ValueNumberingReducer vn_reducer(temp_zone); |
395 JSTypedLowering lowering(data->jsgraph()); | 395 JSTypedLowering lowering(data->jsgraph()); |
396 SimplifiedOperatorReducer simple_reducer(data->jsgraph()); | 396 SimplifiedOperatorReducer simple_reducer(data->jsgraph()); |
397 GraphReducer graph_reducer(data->graph(), temp_zone); | 397 GraphReducer graph_reducer(data->graph(), temp_zone); |
398 graph_reducer.AddReducer(&vn_reducer); | 398 graph_reducer.AddReducer(&vn_reducer); |
399 graph_reducer.AddReducer(&lowering); | 399 graph_reducer.AddReducer(&lowering); |
400 graph_reducer.AddReducer(&simple_reducer); | 400 graph_reducer.AddReducer(&simple_reducer); |
401 graph_reducer.ReduceGraph(); | 401 graph_reducer.ReduceGraph(); |
402 } | 402 } |
403 }; | 403 }; |
404 | 404 |
405 | 405 |
406 struct SimplifiedLoweringPhase { | 406 struct SimplifiedLoweringPhase { |
407 static const char* phase_name() { return "simplified lowering"; } | 407 static const char* phase_name() { return "simplified lowering"; } |
408 | 408 |
409 void Run(PipelineData* data, Zone* temp_zone) { | 409 void Run(PipelineData* data, Zone* temp_zone) { |
410 SourcePositionTable::Scope pos(data->source_positions(), | 410 SourcePositionTable::Scope pos(data->source_positions(), |
411 SourcePosition::Unknown()); | 411 SourcePosition::Unknown()); |
412 SimplifiedLowering lowering(data->jsgraph()); | 412 SimplifiedLowering lowering(data->jsgraph()); |
413 lowering.LowerAllNodes(); | 413 lowering.LowerAllNodes(); |
414 ValueNumberingReducer vn_reducer(data->graph_zone()); | 414 ValueNumberingReducer vn_reducer(temp_zone); |
415 SimplifiedOperatorReducer simple_reducer(data->jsgraph()); | 415 SimplifiedOperatorReducer simple_reducer(data->jsgraph()); |
416 GraphReducer graph_reducer(data->graph(), temp_zone); | 416 GraphReducer graph_reducer(data->graph(), temp_zone); |
417 graph_reducer.AddReducer(&vn_reducer); | 417 graph_reducer.AddReducer(&vn_reducer); |
418 graph_reducer.AddReducer(&simple_reducer); | 418 graph_reducer.AddReducer(&simple_reducer); |
419 graph_reducer.ReduceGraph(); | 419 graph_reducer.ReduceGraph(); |
420 } | 420 } |
421 }; | 421 }; |
422 | 422 |
423 | 423 |
424 struct ChangeLoweringPhase { | 424 struct ChangeLoweringPhase { |
425 static const char* phase_name() { return "change lowering"; } | 425 static const char* phase_name() { return "change lowering"; } |
426 | 426 |
427 void Run(PipelineData* data, Zone* temp_zone) { | 427 void Run(PipelineData* data, Zone* temp_zone) { |
428 SourcePositionTable::Scope pos(data->source_positions(), | 428 SourcePositionTable::Scope pos(data->source_positions(), |
429 SourcePosition::Unknown()); | 429 SourcePosition::Unknown()); |
430 Linkage linkage(data->graph_zone(), data->info()); | 430 Linkage linkage(data->graph_zone(), data->info()); |
431 ValueNumberingReducer vn_reducer(data->graph_zone()); | 431 ValueNumberingReducer vn_reducer(temp_zone); |
432 SimplifiedOperatorReducer simple_reducer(data->jsgraph()); | 432 SimplifiedOperatorReducer simple_reducer(data->jsgraph()); |
433 ChangeLowering lowering(data->jsgraph(), &linkage); | 433 ChangeLowering lowering(data->jsgraph(), &linkage); |
434 MachineOperatorReducer mach_reducer(data->jsgraph()); | 434 MachineOperatorReducer mach_reducer(data->jsgraph()); |
435 GraphReducer graph_reducer(data->graph(), temp_zone); | 435 GraphReducer graph_reducer(data->graph(), temp_zone); |
436 // TODO(titzer): Figure out if we should run all reducers at once here. | 436 // TODO(titzer): Figure out if we should run all reducers at once here. |
437 graph_reducer.AddReducer(&vn_reducer); | 437 graph_reducer.AddReducer(&vn_reducer); |
438 graph_reducer.AddReducer(&simple_reducer); | 438 graph_reducer.AddReducer(&simple_reducer); |
439 graph_reducer.AddReducer(&lowering); | 439 graph_reducer.AddReducer(&lowering); |
440 graph_reducer.AddReducer(&mach_reducer); | 440 graph_reducer.AddReducer(&mach_reducer); |
441 graph_reducer.ReduceGraph(); | 441 graph_reducer.ReduceGraph(); |
(...skipping 586 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1028 } | 1028 } |
1029 | 1029 |
1030 | 1030 |
1031 void Pipeline::TearDown() { | 1031 void Pipeline::TearDown() { |
1032 InstructionOperand::TearDownCaches(); | 1032 InstructionOperand::TearDownCaches(); |
1033 } | 1033 } |
1034 | 1034 |
1035 } // namespace compiler | 1035 } // namespace compiler |
1036 } // namespace internal | 1036 } // namespace internal |
1037 } // namespace v8 | 1037 } // namespace v8 |
OLD | NEW |