| Index: src/compiler/pipeline.cc
|
| diff --git a/src/compiler/pipeline.cc b/src/compiler/pipeline.cc
|
| index e07ce7691f3b4e55c3c58667f116581a5809e6eb..92a0be6203c0e47b99d7ee9d19fa128cd68604c3 100644
|
| --- a/src/compiler/pipeline.cc
|
| +++ b/src/compiler/pipeline.cc
|
| @@ -312,6 +312,8 @@ class PipelineData {
|
| };
|
|
|
|
|
| +namespace {
|
| +
|
| struct TurboCfgFile : public std::ofstream {
|
| explicit TurboCfgFile(Isolate* isolate)
|
| : std::ofstream(isolate->GetTurboCfgFileName().c_str(),
|
| @@ -319,7 +321,7 @@ struct TurboCfgFile : public std::ofstream {
|
| };
|
|
|
|
|
| -static void TraceSchedule(CompilationInfo* info, Schedule* schedule) {
|
| +void TraceSchedule(CompilationInfo* info, Schedule* schedule) {
|
| if (FLAG_trace_turbo) {
|
| FILE* json_file = OpenVisualizerLogFile(info, NULL, "json", "a+");
|
| if (json_file != nullptr) {
|
| @@ -341,7 +343,7 @@ static void TraceSchedule(CompilationInfo* info, Schedule* schedule) {
|
| }
|
|
|
|
|
| -static SmartArrayPointer<char> GetDebugName(CompilationInfo* info) {
|
| +SmartArrayPointer<char> GetDebugName(CompilationInfo* info) {
|
| if (info->code_stub() != NULL) {
|
| CodeStub::Major major_key = info->code_stub()->MajorKey();
|
| const char* major_name = CodeStub::MajorName(major_key, false);
|
| @@ -356,7 +358,7 @@ static SmartArrayPointer<char> GetDebugName(CompilationInfo* info) {
|
| }
|
|
|
|
|
| -class AstGraphBuilderWithPositions : public AstGraphBuilder {
|
| +class AstGraphBuilderWithPositions final : public AstGraphBuilder {
|
| public:
|
| AstGraphBuilderWithPositions(Zone* local_zone, CompilationInfo* info,
|
| JSGraph* jsgraph,
|
| @@ -383,45 +385,43 @@ class AstGraphBuilderWithPositions : public AstGraphBuilder {
|
| #undef DEF_VISIT
|
|
|
| private:
|
| - SourcePositionTable* source_positions_;
|
| - SourcePosition start_position_;
|
| + SourcePositionTable* const source_positions_;
|
| + SourcePosition const start_position_;
|
| };
|
|
|
|
|
| -namespace {
|
| -
|
| -class SourcePositionWrapper : public Reducer {
|
| +class SourcePositionWrapper final : public Reducer {
|
| public:
|
| SourcePositionWrapper(Reducer* reducer, SourcePositionTable* table)
|
| : reducer_(reducer), table_(table) {}
|
| - virtual ~SourcePositionWrapper() {}
|
| + ~SourcePositionWrapper() final {}
|
|
|
| - virtual Reduction Reduce(Node* node) {
|
| - SourcePosition pos = table_->GetSourcePosition(node);
|
| + Reduction Reduce(Node* node) final {
|
| + SourcePosition const pos = table_->GetSourcePosition(node);
|
| SourcePositionTable::Scope position(table_, pos);
|
| return reducer_->Reduce(node);
|
| }
|
|
|
| private:
|
| - Reducer* reducer_;
|
| - SourcePositionTable* table_;
|
| + Reducer* const reducer_;
|
| + SourcePositionTable* const table_;
|
|
|
| DISALLOW_COPY_AND_ASSIGN(SourcePositionWrapper);
|
| };
|
|
|
|
|
| -static void AddReducer(PipelineData* data, GraphReducer* graph_reducer,
|
| - Reducer* reducer) {
|
| - if (FLAG_turbo_source_positions) {
|
| - void* buffer = data->graph_zone()->New(sizeof(SourcePositionWrapper));
|
| - SourcePositionWrapper* wrapper =
|
| +void AddReducer(PipelineData* data, GraphReducer* graph_reducer,
|
| + Reducer* reducer) {
|
| + if (data->info()->is_source_positions_enabled()) {
|
| + void* const buffer = data->graph_zone()->New(sizeof(SourcePositionWrapper));
|
| + SourcePositionWrapper* const wrapper =
|
| new (buffer) SourcePositionWrapper(reducer, data->source_positions());
|
| graph_reducer->AddReducer(wrapper);
|
| } else {
|
| graph_reducer->AddReducer(reducer);
|
| }
|
| }
|
| -} // namespace
|
| +
|
|
|
| class PipelineRunScope {
|
| public:
|
| @@ -438,6 +438,8 @@ class PipelineRunScope {
|
| ZonePool::Scope zone_scope_;
|
| };
|
|
|
| +} // namespace
|
| +
|
|
|
| template <typename Phase>
|
| void Pipeline::Run() {
|
| @@ -712,9 +714,12 @@ struct InstructionSelectionPhase {
|
| static const char* phase_name() { return "select instructions"; }
|
|
|
| void Run(PipelineData* data, Zone* temp_zone, Linkage* linkage) {
|
| - InstructionSelector selector(temp_zone, data->graph()->NodeCount(), linkage,
|
| - data->sequence(), data->schedule(),
|
| - data->source_positions());
|
| + InstructionSelector selector(
|
| + temp_zone, data->graph()->NodeCount(), linkage, data->sequence(),
|
| + data->schedule(), data->source_positions(),
|
| + data->info()->is_source_positions_enabled()
|
| + ? InstructionSelector::kAllSourcePositions
|
| + : InstructionSelector::kCallSourcePositions);
|
| selector.SelectInstructions();
|
| }
|
| };
|
|
|