| 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 575 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 586     AddReducer(data, &graph_reducer, &vn_reducer); | 586     AddReducer(data, &graph_reducer, &vn_reducer); | 
| 587     AddReducer(data, &graph_reducer, &simple_reducer); | 587     AddReducer(data, &graph_reducer, &simple_reducer); | 
| 588     AddReducer(data, &graph_reducer, &lowering); | 588     AddReducer(data, &graph_reducer, &lowering); | 
| 589     AddReducer(data, &graph_reducer, &machine_reducer); | 589     AddReducer(data, &graph_reducer, &machine_reducer); | 
| 590     AddReducer(data, &graph_reducer, &common_reducer); | 590     AddReducer(data, &graph_reducer, &common_reducer); | 
| 591     graph_reducer.ReduceGraph(); | 591     graph_reducer.ReduceGraph(); | 
| 592   } | 592   } | 
| 593 }; | 593 }; | 
| 594 | 594 | 
| 595 | 595 | 
| 596 struct ControlReductionPhase { | 596 struct EarlyControlReductionPhase { | 
|  | 597   static const char* phase_name() { return "early control reduction"; } | 
| 597   void Run(PipelineData* data, Zone* temp_zone) { | 598   void Run(PipelineData* data, Zone* temp_zone) { | 
| 598     SourcePositionTable::Scope pos(data->source_positions(), | 599     SourcePositionTable::Scope pos(data->source_positions(), | 
| 599                                    SourcePosition::Unknown()); | 600                                    SourcePosition::Unknown()); | 
| 600     ControlReducer::ReduceGraph(temp_zone, data->jsgraph(), data->common()); | 601     ControlReducer::ReduceGraph(temp_zone, data->jsgraph(), data->common(), 1); | 
| 601   } | 602   } | 
| 602 }; | 603 }; | 
| 603 | 604 | 
| 604 | 605 | 
| 605 struct EarlyControlReductionPhase : ControlReductionPhase { | 606 struct LateControlReductionPhase { | 
| 606   static const char* phase_name() { return "early control reduction"; } | 607   static const char* phase_name() { return "late control reduction"; } | 
|  | 608   void Run(PipelineData* data, Zone* temp_zone) { | 
|  | 609     SourcePositionTable::Scope pos(data->source_positions(), | 
|  | 610                                    SourcePosition::Unknown()); | 
|  | 611     ControlReducer::ReduceGraph(temp_zone, data->jsgraph(), data->common(), 0); | 
|  | 612   } | 
| 607 }; | 613 }; | 
| 608 | 614 | 
| 609 | 615 | 
| 610 struct LateControlReductionPhase : ControlReductionPhase { |  | 
| 611   static const char* phase_name() { return "late control reduction"; } |  | 
| 612 }; |  | 
| 613 |  | 
| 614 |  | 
| 615 struct StressLoopPeelingPhase { | 616 struct StressLoopPeelingPhase { | 
| 616   static const char* phase_name() { return "stress loop peeling"; } | 617   static const char* phase_name() { return "stress loop peeling"; } | 
| 617 | 618 | 
| 618   void Run(PipelineData* data, Zone* temp_zone) { | 619   void Run(PipelineData* data, Zone* temp_zone) { | 
| 619     SourcePositionTable::Scope pos(data->source_positions(), | 620     SourcePositionTable::Scope pos(data->source_positions(), | 
| 620                                    SourcePosition::Unknown()); | 621                                    SourcePosition::Unknown()); | 
| 621     // Peel the first outer loop for testing. | 622     // Peel the first outer loop for testing. | 
| 622     // TODO(titzer): peel all loops? the N'th loop? Innermost loops? | 623     // TODO(titzer): peel all loops? the N'th loop? Innermost loops? | 
| 623     LoopTree* loop_tree = LoopFinder::BuildLoopTree(data->graph(), temp_zone); | 624     LoopTree* loop_tree = LoopFinder::BuildLoopTree(data->graph(), temp_zone); | 
| 624     if (loop_tree != NULL && loop_tree->outer_loops().size() > 0) { | 625     if (loop_tree != NULL && loop_tree->outer_loops().size() > 0) { | 
| (...skipping 611 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 1236 | 1237 | 
| 1237   if (FLAG_trace_turbo && !data->MayHaveUnverifiableGraph()) { | 1238   if (FLAG_trace_turbo && !data->MayHaveUnverifiableGraph()) { | 
| 1238     TurboCfgFile tcf(data->isolate()); | 1239     TurboCfgFile tcf(data->isolate()); | 
| 1239     tcf << AsC1VAllocator("CodeGen", data->register_allocator()); | 1240     tcf << AsC1VAllocator("CodeGen", data->register_allocator()); | 
| 1240   } | 1241   } | 
| 1241 } | 1242 } | 
| 1242 | 1243 | 
| 1243 }  // namespace compiler | 1244 }  // namespace compiler | 
| 1244 }  // namespace internal | 1245 }  // namespace internal | 
| 1245 }  // namespace v8 | 1246 }  // namespace v8 | 
| OLD | NEW | 
|---|