Chromium Code Reviews| Index: src/compiler/pipeline.cc |
| diff --git a/src/compiler/pipeline.cc b/src/compiler/pipeline.cc |
| index f799e51bd1ae3f3c29ec433b9b4de39bcfd7e265..d2b257b58ec732cae4b2ae84ebd8ffefbb4f7987 100644 |
| --- a/src/compiler/pipeline.cc |
| +++ b/src/compiler/pipeline.cc |
| @@ -137,14 +137,14 @@ class PipelineData { |
| // For machine graph testing entry point. |
| PipelineData(ZoneStats* zone_stats, CompilationInfo* info, Graph* graph, |
| - Schedule* schedule) |
| + Schedule* schedule, SourcePositionTable* source_positions) |
| : isolate_(info->isolate()), |
| info_(info), |
| debug_name_(info_->GetDebugName()), |
| zone_stats_(zone_stats), |
| graph_zone_scope_(zone_stats_, ZONE_NAME), |
| graph_(graph), |
| - source_positions_(new (info->zone()) SourcePositionTable(graph_)), |
| + source_positions_(source_positions), |
| schedule_(schedule), |
| instruction_zone_scope_(zone_stats_, ZONE_NAME), |
| instruction_zone_(instruction_zone_scope_.zone()), |
| @@ -1641,7 +1641,8 @@ Handle<Code> Pipeline::GenerateCodeForCodeStub(Isolate* isolate, |
| // Construct a pipeline for scheduling and code generation. |
| ZoneStats zone_stats(isolate->allocator()); |
| - PipelineData data(&zone_stats, &info, graph, schedule); |
| + SourcePositionTable source_positions(graph); |
| + PipelineData data(&zone_stats, &info, graph, schedule, &source_positions); |
| std::unique_ptr<PipelineStatistics> pipeline_statistics; |
| if (FLAG_turbo_stats || FLAG_turbo_stats_nvp) { |
| pipeline_statistics.reset(new PipelineStatistics(&info, &zone_stats)); |
| @@ -1689,13 +1690,14 @@ Handle<Code> Pipeline::GenerateCodeForTesting(CompilationInfo* info, |
| } |
| // static |
| -Handle<Code> Pipeline::GenerateCodeForTesting(CompilationInfo* info, |
| - CallDescriptor* call_descriptor, |
| - Graph* graph, |
| - Schedule* schedule) { |
| +Handle<Code> Pipeline::GenerateCodeForTesting( |
| + CompilationInfo* info, CallDescriptor* call_descriptor, Graph* graph, |
| + Schedule* schedule, SourcePositionTable* source_positions) { |
| // Construct a pipeline for scheduling and code generation. |
| ZoneStats zone_stats(info->isolate()->allocator()); |
| - PipelineData data(&zone_stats, info, graph, schedule); |
| + if (!source_positions) |
| + source_positions = new (info->zone()) SourcePositionTable(graph); |
|
titzer
2016/12/08 14:08:50
I don't think you need this in the CompilationInfo
Clemens Hammacher
2016/12/08 15:26:21
The table will actually never be filled, so there
|
| + PipelineData data(&zone_stats, info, graph, schedule, source_positions); |
| std::unique_ptr<PipelineStatistics> pipeline_statistics; |
| if (FLAG_turbo_stats || FLAG_turbo_stats_nvp) { |
| pipeline_statistics.reset(new PipelineStatistics(info, &zone_stats)); |