Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(169)

Side by Side Diff: src/compiler/pipeline.cc

Issue 2048543002: [turbofan] Only run TypeHintAnalysis when --turbo-type-feedback is on. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
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 581 matching lines...) Expand 10 before | Expand all | Expand 10 after
592 if (!FLAG_always_opt) { 592 if (!FLAG_always_opt) {
593 info()->MarkAsBailoutOnUninitialized(); 593 info()->MarkAsBailoutOnUninitialized();
594 } 594 }
595 if (FLAG_native_context_specialization) { 595 if (FLAG_native_context_specialization) {
596 info()->MarkAsNativeContextSpecializing(); 596 info()->MarkAsNativeContextSpecializing();
597 } 597 }
598 } 598 }
599 if (!info()->shared_info()->asm_function() || FLAG_turbo_asm_deoptimization) { 599 if (!info()->shared_info()->asm_function() || FLAG_turbo_asm_deoptimization) {
600 info()->MarkAsDeoptimizationEnabled(); 600 info()->MarkAsDeoptimizationEnabled();
601 } 601 }
602 if (info()->is_deoptimization_enabled() && FLAG_turbo_type_feedback) {
603 info()->MarkAsTypeFeedbackEnabled();
604 }
605 if (!info()->is_optimizing_from_bytecode()) { 602 if (!info()->is_optimizing_from_bytecode()) {
603 if (info()->is_deoptimization_enabled() && FLAG_turbo_type_feedback) {
604 info()->MarkAsTypeFeedbackEnabled();
605 }
606 if (!Compiler::EnsureDeoptimizationSupport(info())) return FAILED; 606 if (!Compiler::EnsureDeoptimizationSupport(info())) return FAILED;
607 } 607 }
608 608
609 linkage_ = new (&zone_) Linkage(Linkage::ComputeIncoming(&zone_, info())); 609 linkage_ = new (&zone_) Linkage(Linkage::ComputeIncoming(&zone_, info()));
610 610
611 if (!pipeline_.CreateGraph()) { 611 if (!pipeline_.CreateGraph()) {
612 if (isolate()->has_pending_exception()) return FAILED; // Stack overflowed. 612 if (isolate()->has_pending_exception()) return FAILED; // Stack overflowed.
613 return AbortOptimization(kGraphBuildingFailed); 613 return AbortOptimization(kGraphBuildingFailed);
614 } 614 }
615 615
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
717 data->set_loop_assignment(loop_assignment); 717 data->set_loop_assignment(loop_assignment);
718 } 718 }
719 } 719 }
720 }; 720 };
721 721
722 722
723 struct TypeHintAnalysisPhase { 723 struct TypeHintAnalysisPhase {
724 static const char* phase_name() { return "type hint analysis"; } 724 static const char* phase_name() { return "type hint analysis"; }
725 725
726 void Run(PipelineData* data, Zone* temp_zone) { 726 void Run(PipelineData* data, Zone* temp_zone) {
727 if (!data->info()->is_optimizing_from_bytecode()) { 727 if (data->info()->is_type_feedback_enabled()) {
728 TypeHintAnalyzer analyzer(data->graph_zone()); 728 TypeHintAnalyzer analyzer(data->graph_zone());
729 Handle<Code> code(data->info()->shared_info()->code(), data->isolate()); 729 Handle<Code> code(data->info()->shared_info()->code(), data->isolate());
730 TypeHintAnalysis* type_hint_analysis = analyzer.Analyze(code); 730 TypeHintAnalysis* type_hint_analysis = analyzer.Analyze(code);
731 data->set_type_hint_analysis(type_hint_analysis); 731 data->set_type_hint_analysis(type_hint_analysis);
732 } 732 }
733 } 733 }
734 }; 734 };
735 735
736 736
737 struct GraphBuilderPhase { 737 struct GraphBuilderPhase {
(...skipping 1073 matching lines...) Expand 10 before | Expand all | Expand 10 after
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
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698