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 430 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
441 AstGraphBuilderWithPositions(Zone* local_zone, CompilationInfo* info, | 441 AstGraphBuilderWithPositions(Zone* local_zone, CompilationInfo* info, |
442 JSGraph* jsgraph, | 442 JSGraph* jsgraph, |
443 LoopAssignmentAnalysis* loop_assignment, | 443 LoopAssignmentAnalysis* loop_assignment, |
444 TypeHintAnalysis* type_hint_analysis, | 444 TypeHintAnalysis* type_hint_analysis, |
445 SourcePositionTable* source_positions) | 445 SourcePositionTable* source_positions) |
446 : AstGraphBuilder(local_zone, info, jsgraph, loop_assignment, | 446 : AstGraphBuilder(local_zone, info, jsgraph, loop_assignment, |
447 type_hint_analysis), | 447 type_hint_analysis), |
448 source_positions_(source_positions), | 448 source_positions_(source_positions), |
449 start_position_(info->shared_info()->start_position()) {} | 449 start_position_(info->shared_info()->start_position()) {} |
450 | 450 |
451 bool CreateGraph(bool stack_check) { | 451 bool CreateGraph() { |
452 SourcePositionTable::Scope pos_scope(source_positions_, start_position_); | 452 SourcePositionTable::Scope pos_scope(source_positions_, start_position_); |
453 return AstGraphBuilder::CreateGraph(stack_check); | 453 return AstGraphBuilder::CreateGraph(); |
454 } | 454 } |
455 | 455 |
456 #define DEF_VISIT(type) \ | 456 #define DEF_VISIT(type) \ |
457 void Visit##type(type* node) override { \ | 457 void Visit##type(type* node) override { \ |
458 SourcePositionTable::Scope pos(source_positions_, \ | 458 SourcePositionTable::Scope pos(source_positions_, \ |
459 SourcePosition(node->position())); \ | 459 SourcePosition(node->position())); \ |
460 AstGraphBuilder::Visit##type(node); \ | 460 AstGraphBuilder::Visit##type(node); \ |
461 } | 461 } |
462 AST_NODE_LIST(DEF_VISIT) | 462 AST_NODE_LIST(DEF_VISIT) |
463 #undef DEF_VISIT | 463 #undef DEF_VISIT |
(...skipping 293 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
757 data->set_type_hint_analysis(type_hint_analysis); | 757 data->set_type_hint_analysis(type_hint_analysis); |
758 } | 758 } |
759 } | 759 } |
760 }; | 760 }; |
761 | 761 |
762 | 762 |
763 struct GraphBuilderPhase { | 763 struct GraphBuilderPhase { |
764 static const char* phase_name() { return "graph builder"; } | 764 static const char* phase_name() { return "graph builder"; } |
765 | 765 |
766 void Run(PipelineData* data, Zone* temp_zone) { | 766 void Run(PipelineData* data, Zone* temp_zone) { |
767 bool stack_check = !data->info()->IsStub(); | |
768 bool succeeded = false; | 767 bool succeeded = false; |
769 | 768 |
770 if (data->info()->is_optimizing_from_bytecode()) { | 769 if (data->info()->is_optimizing_from_bytecode()) { |
771 BytecodeGraphBuilder graph_builder(temp_zone, data->info(), | 770 BytecodeGraphBuilder graph_builder(temp_zone, data->info(), |
772 data->jsgraph()); | 771 data->jsgraph()); |
773 succeeded = graph_builder.CreateGraph(); | 772 succeeded = graph_builder.CreateGraph(); |
774 } else { | 773 } else { |
775 AstGraphBuilderWithPositions graph_builder( | 774 AstGraphBuilderWithPositions graph_builder( |
776 temp_zone, data->info(), data->jsgraph(), data->loop_assignment(), | 775 temp_zone, data->info(), data->jsgraph(), data->loop_assignment(), |
777 data->type_hint_analysis(), data->source_positions()); | 776 data->type_hint_analysis(), data->source_positions()); |
778 succeeded = graph_builder.CreateGraph(stack_check); | 777 succeeded = graph_builder.CreateGraph(); |
779 } | 778 } |
780 | 779 |
781 if (!succeeded) { | 780 if (!succeeded) { |
782 data->set_compilation_failed(); | 781 data->set_compilation_failed(); |
783 } | 782 } |
784 } | 783 } |
785 }; | 784 }; |
786 | 785 |
787 | 786 |
788 struct InliningPhase { | 787 struct InliningPhase { |
(...skipping 1160 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1949 data->DeleteRegisterAllocationZone(); | 1948 data->DeleteRegisterAllocationZone(); |
1950 } | 1949 } |
1951 | 1950 |
1952 CompilationInfo* PipelineImpl::info() const { return data_->info(); } | 1951 CompilationInfo* PipelineImpl::info() const { return data_->info(); } |
1953 | 1952 |
1954 Isolate* PipelineImpl::isolate() const { return info()->isolate(); } | 1953 Isolate* PipelineImpl::isolate() const { return info()->isolate(); } |
1955 | 1954 |
1956 } // namespace compiler | 1955 } // namespace compiler |
1957 } // namespace internal | 1956 } // namespace internal |
1958 } // namespace v8 | 1957 } // namespace v8 |
OLD | NEW |