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 <memory> | 8 #include <memory> |
9 #include <sstream> | 9 #include <sstream> |
10 | 10 |
(...skipping 1596 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1607 // Lower changes that have been inserted before. | 1607 // Lower changes that have been inserted before. |
1608 Run<LateOptimizationPhase>(); | 1608 Run<LateOptimizationPhase>(); |
1609 // TODO(jarin, rossberg): Remove UNTYPED once machine typing works. | 1609 // TODO(jarin, rossberg): Remove UNTYPED once machine typing works. |
1610 RunPrintAndVerify("Late optimized", true); | 1610 RunPrintAndVerify("Late optimized", true); |
1611 | 1611 |
1612 data->source_positions()->RemoveDecorator(); | 1612 data->source_positions()->RemoveDecorator(); |
1613 | 1613 |
1614 return ScheduleAndSelectInstructions(linkage, true); | 1614 return ScheduleAndSelectInstructions(linkage, true); |
1615 } | 1615 } |
1616 | 1616 |
1617 // TODO(ishell): Remove verify_graph parameter and always enable the | |
1618 // verification once all the issues are fixed. | |
1619 Handle<Code> Pipeline::GenerateCodeForCodeStub(Isolate* isolate, | 1617 Handle<Code> Pipeline::GenerateCodeForCodeStub(Isolate* isolate, |
1620 CallDescriptor* call_descriptor, | 1618 CallDescriptor* call_descriptor, |
1621 Graph* graph, Schedule* schedule, | 1619 Graph* graph, Schedule* schedule, |
1622 Code::Flags flags, | 1620 Code::Flags flags, |
1623 const char* debug_name, | 1621 const char* debug_name) { |
1624 bool verify_graph) { | |
1625 CompilationInfo info(CStrVector(debug_name), isolate, graph->zone(), flags); | 1622 CompilationInfo info(CStrVector(debug_name), isolate, graph->zone(), flags); |
1626 if (isolate->serializer_enabled()) info.PrepareForSerializing(); | 1623 if (isolate->serializer_enabled()) info.PrepareForSerializing(); |
1627 | 1624 |
1628 // Construct a pipeline for scheduling and code generation. | 1625 // Construct a pipeline for scheduling and code generation. |
1629 ZoneStats zone_stats(isolate->allocator()); | 1626 ZoneStats zone_stats(isolate->allocator()); |
1630 SourcePositionTable source_positions(graph); | 1627 SourcePositionTable source_positions(graph); |
1631 PipelineData data(&zone_stats, &info, graph, schedule, &source_positions); | 1628 PipelineData data(&zone_stats, &info, graph, schedule, &source_positions); |
1632 data.set_verify_graph(verify_graph); | 1629 data.set_verify_graph(FLAG_csa_verify); |
1633 std::unique_ptr<PipelineStatistics> pipeline_statistics; | 1630 std::unique_ptr<PipelineStatistics> pipeline_statistics; |
1634 if (FLAG_turbo_stats || FLAG_turbo_stats_nvp) { | 1631 if (FLAG_turbo_stats || FLAG_turbo_stats_nvp) { |
1635 pipeline_statistics.reset(new PipelineStatistics(&info, &zone_stats)); | 1632 pipeline_statistics.reset(new PipelineStatistics(&info, &zone_stats)); |
1636 pipeline_statistics->BeginPhaseKind("stub codegen"); | 1633 pipeline_statistics->BeginPhaseKind("stub codegen"); |
1637 } | 1634 } |
1638 | 1635 |
1639 PipelineImpl pipeline(&data); | 1636 PipelineImpl pipeline(&data); |
1640 DCHECK_NOT_NULL(data.schedule()); | 1637 DCHECK_NOT_NULL(data.schedule()); |
1641 | 1638 |
1642 if (FLAG_trace_turbo) { | 1639 if (FLAG_trace_turbo) { |
(...skipping 339 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1982 data->DeleteRegisterAllocationZone(); | 1979 data->DeleteRegisterAllocationZone(); |
1983 } | 1980 } |
1984 | 1981 |
1985 CompilationInfo* PipelineImpl::info() const { return data_->info(); } | 1982 CompilationInfo* PipelineImpl::info() const { return data_->info(); } |
1986 | 1983 |
1987 Isolate* PipelineImpl::isolate() const { return info()->isolate(); } | 1984 Isolate* PipelineImpl::isolate() const { return info()->isolate(); } |
1988 | 1985 |
1989 } // namespace compiler | 1986 } // namespace compiler |
1990 } // namespace internal | 1987 } // namespace internal |
1991 } // namespace v8 | 1988 } // namespace v8 |
OLD | NEW |