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/adapters.h" | 10 #include "src/base/adapters.h" |
(...skipping 504 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
515 | 515 |
516 private: | 516 private: |
517 PhaseScope phase_scope_; | 517 PhaseScope phase_scope_; |
518 ZonePool::Scope zone_scope_; | 518 ZonePool::Scope zone_scope_; |
519 }; | 519 }; |
520 | 520 |
521 PipelineStatistics* CreatePipelineStatistics(CompilationInfo* info, | 521 PipelineStatistics* CreatePipelineStatistics(CompilationInfo* info, |
522 ZonePool* zone_pool) { | 522 ZonePool* zone_pool) { |
523 PipelineStatistics* pipeline_statistics = nullptr; | 523 PipelineStatistics* pipeline_statistics = nullptr; |
524 | 524 |
525 if (FLAG_turbo_stats) { | 525 if (FLAG_turbo_stats || FLAG_turbo_stats_nvp) { |
526 pipeline_statistics = new PipelineStatistics(info, zone_pool); | 526 pipeline_statistics = new PipelineStatistics(info, zone_pool); |
527 pipeline_statistics->BeginPhaseKind("initializing"); | 527 pipeline_statistics->BeginPhaseKind("initializing"); |
528 } | 528 } |
529 | 529 |
530 if (FLAG_trace_turbo) { | 530 if (FLAG_trace_turbo) { |
531 TurboJsonFile json_of(info, std::ios_base::trunc); | 531 TurboJsonFile json_of(info, std::ios_base::trunc); |
532 Handle<Script> script = info->script(); | 532 Handle<Script> script = info->script(); |
533 base::SmartArrayPointer<char> function_name = info->GetDebugName(); | 533 base::SmartArrayPointer<char> function_name = info->GetDebugName(); |
534 int pos = info->shared_info()->start_position(); | 534 int pos = info->shared_info()->start_position(); |
535 json_of << "{\"function\":\"" << function_name.get() | 535 json_of << "{\"function\":\"" << function_name.get() |
(...skipping 961 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1497 CallDescriptor* call_descriptor, | 1497 CallDescriptor* call_descriptor, |
1498 Graph* graph, Schedule* schedule, | 1498 Graph* graph, Schedule* schedule, |
1499 Code::Flags flags, | 1499 Code::Flags flags, |
1500 const char* debug_name) { | 1500 const char* debug_name) { |
1501 CompilationInfo info(CStrVector(debug_name), isolate, graph->zone(), flags); | 1501 CompilationInfo info(CStrVector(debug_name), isolate, graph->zone(), flags); |
1502 | 1502 |
1503 // Construct a pipeline for scheduling and code generation. | 1503 // Construct a pipeline for scheduling and code generation. |
1504 ZonePool zone_pool(isolate->allocator()); | 1504 ZonePool zone_pool(isolate->allocator()); |
1505 PipelineData data(&zone_pool, &info, graph, schedule); | 1505 PipelineData data(&zone_pool, &info, graph, schedule); |
1506 base::SmartPointer<PipelineStatistics> pipeline_statistics; | 1506 base::SmartPointer<PipelineStatistics> pipeline_statistics; |
1507 if (FLAG_turbo_stats) { | 1507 if (FLAG_turbo_stats || FLAG_turbo_stats_nvp) { |
1508 pipeline_statistics.Reset(new PipelineStatistics(&info, &zone_pool)); | 1508 pipeline_statistics.Reset(new PipelineStatistics(&info, &zone_pool)); |
1509 pipeline_statistics->BeginPhaseKind("stub codegen"); | 1509 pipeline_statistics->BeginPhaseKind("stub codegen"); |
1510 } | 1510 } |
1511 | 1511 |
1512 PipelineImpl pipeline(&data); | 1512 PipelineImpl pipeline(&data); |
1513 DCHECK_NOT_NULL(data.schedule()); | 1513 DCHECK_NOT_NULL(data.schedule()); |
1514 | 1514 |
1515 if (FLAG_trace_turbo) { | 1515 if (FLAG_trace_turbo) { |
1516 { | 1516 { |
1517 TurboJsonFile json_of(&info, std::ios_base::trunc); | 1517 TurboJsonFile json_of(&info, std::ios_base::trunc); |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1551 | 1551 |
1552 // static | 1552 // static |
1553 Handle<Code> Pipeline::GenerateCodeForTesting(CompilationInfo* info, | 1553 Handle<Code> Pipeline::GenerateCodeForTesting(CompilationInfo* info, |
1554 CallDescriptor* call_descriptor, | 1554 CallDescriptor* call_descriptor, |
1555 Graph* graph, | 1555 Graph* graph, |
1556 Schedule* schedule) { | 1556 Schedule* schedule) { |
1557 // Construct a pipeline for scheduling and code generation. | 1557 // Construct a pipeline for scheduling and code generation. |
1558 ZonePool zone_pool(info->isolate()->allocator()); | 1558 ZonePool zone_pool(info->isolate()->allocator()); |
1559 PipelineData data(&zone_pool, info, graph, schedule); | 1559 PipelineData data(&zone_pool, info, graph, schedule); |
1560 base::SmartPointer<PipelineStatistics> pipeline_statistics; | 1560 base::SmartPointer<PipelineStatistics> pipeline_statistics; |
1561 if (FLAG_turbo_stats) { | 1561 if (FLAG_turbo_stats || FLAG_turbo_stats_nvp) { |
1562 pipeline_statistics.Reset(new PipelineStatistics(info, &zone_pool)); | 1562 pipeline_statistics.Reset(new PipelineStatistics(info, &zone_pool)); |
1563 pipeline_statistics->BeginPhaseKind("test codegen"); | 1563 pipeline_statistics->BeginPhaseKind("test codegen"); |
1564 } | 1564 } |
1565 | 1565 |
1566 PipelineImpl pipeline(&data); | 1566 PipelineImpl pipeline(&data); |
1567 | 1567 |
1568 if (FLAG_trace_turbo) { | 1568 if (FLAG_trace_turbo) { |
1569 TurboJsonFile json_of(info, std::ios_base::trunc); | 1569 TurboJsonFile json_of(info, std::ios_base::trunc); |
1570 json_of << "{\"function\":\"" << info->GetDebugName().get() | 1570 json_of << "{\"function\":\"" << info->GetDebugName().get() |
1571 << "\", \"source\":\"\",\n\"phases\":["; | 1571 << "\", \"source\":\"\",\n\"phases\":["; |
(...skipping 239 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1811 data->DeleteRegisterAllocationZone(); | 1811 data->DeleteRegisterAllocationZone(); |
1812 } | 1812 } |
1813 | 1813 |
1814 CompilationInfo* PipelineImpl::info() const { return data_->info(); } | 1814 CompilationInfo* PipelineImpl::info() const { return data_->info(); } |
1815 | 1815 |
1816 Isolate* PipelineImpl::isolate() const { return info()->isolate(); } | 1816 Isolate* PipelineImpl::isolate() const { return info()->isolate(); } |
1817 | 1817 |
1818 } // namespace compiler | 1818 } // namespace compiler |
1819 } // namespace internal | 1819 } // namespace internal |
1820 } // namespace v8 | 1820 } // namespace v8 |
OLD | NEW |