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

Side by Side Diff: src/compiler/js-native-context-specialization.cc

Issue 1675433003: [turbofan] Reducers should revisit end after merging to it. (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 4 years, 10 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 | « src/compiler/js-intrinsic-lowering.cc ('k') | src/compiler/pipeline.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 the V8 project authors. All rights reserved. 1 // Copyright 2015 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/js-native-context-specialization.h" 5 #include "src/compiler/js-native-context-specialization.h"
6 6
7 #include "src/accessors.h" 7 #include "src/accessors.h"
8 #include "src/code-factory.h" 8 #include "src/code-factory.h"
9 #include "src/compilation-dependencies.h" 9 #include "src/compilation-dependencies.h"
10 #include "src/compiler/access-builder.h" 10 #include "src/compiler/access-builder.h"
(...skipping 400 matching lines...) Expand 10 before | Expand all | Expand 10 after
411 Node* exit_control = 411 Node* exit_control =
412 (exit_control_count == 1) 412 (exit_control_count == 1)
413 ? exit_controls.front() 413 ? exit_controls.front()
414 : graph()->NewNode(common()->Merge(exit_control_count), 414 : graph()->NewNode(common()->Merge(exit_control_count),
415 exit_control_count, &exit_controls.front()); 415 exit_control_count, &exit_controls.front());
416 Node* deoptimize = 416 Node* deoptimize =
417 graph()->NewNode(common()->Deoptimize(DeoptimizeKind::kEager), 417 graph()->NewNode(common()->Deoptimize(DeoptimizeKind::kEager),
418 frame_state, exit_effect, exit_control); 418 frame_state, exit_effect, exit_control);
419 // TODO(bmeurer): This should be on the AdvancedReducer somehow. 419 // TODO(bmeurer): This should be on the AdvancedReducer somehow.
420 NodeProperties::MergeControlToEnd(graph(), common(), deoptimize); 420 NodeProperties::MergeControlToEnd(graph(), common(), deoptimize);
421 Revisit(graph()->end());
421 422
422 // Generate the final merge point for all (polymorphic) branches. 423 // Generate the final merge point for all (polymorphic) branches.
423 int const control_count = static_cast<int>(controls.size()); 424 int const control_count = static_cast<int>(controls.size());
424 if (control_count == 0) { 425 if (control_count == 0) {
425 value = effect = control = jsgraph()->Dead(); 426 value = effect = control = jsgraph()->Dead();
426 } else if (control_count == 1) { 427 } else if (control_count == 1) {
427 value = values.front(); 428 value = values.front();
428 effect = effects.front(); 429 effect = effects.front();
429 control = controls.front(); 430 control = controls.front();
430 } else { 431 } else {
(...skipping 412 matching lines...) Expand 10 before | Expand all | Expand 10 after
843 Node* exit_control = 844 Node* exit_control =
844 (exit_control_count == 1) 845 (exit_control_count == 1)
845 ? exit_controls.front() 846 ? exit_controls.front()
846 : graph()->NewNode(common()->Merge(exit_control_count), 847 : graph()->NewNode(common()->Merge(exit_control_count),
847 exit_control_count, &exit_controls.front()); 848 exit_control_count, &exit_controls.front());
848 Node* deoptimize = 849 Node* deoptimize =
849 graph()->NewNode(common()->Deoptimize(DeoptimizeKind::kEager), 850 graph()->NewNode(common()->Deoptimize(DeoptimizeKind::kEager),
850 frame_state, exit_effect, exit_control); 851 frame_state, exit_effect, exit_control);
851 // TODO(bmeurer): This should be on the AdvancedReducer somehow. 852 // TODO(bmeurer): This should be on the AdvancedReducer somehow.
852 NodeProperties::MergeControlToEnd(graph(), common(), deoptimize); 853 NodeProperties::MergeControlToEnd(graph(), common(), deoptimize);
854 Revisit(graph()->end());
853 855
854 // Generate the final merge point for all (polymorphic) branches. 856 // Generate the final merge point for all (polymorphic) branches.
855 int const control_count = static_cast<int>(controls.size()); 857 int const control_count = static_cast<int>(controls.size());
856 if (control_count == 0) { 858 if (control_count == 0) {
857 value = effect = control = jsgraph()->Dead(); 859 value = effect = control = jsgraph()->Dead();
858 } else if (control_count == 1) { 860 } else if (control_count == 1) {
859 value = values.front(); 861 value = values.front();
860 effect = effects.front(); 862 effect = effects.front();
861 control = controls.front(); 863 control = controls.front();
862 } else { 864 } else {
(...skipping 161 matching lines...) Expand 10 before | Expand all | Expand 10 after
1024 } 1026 }
1025 1027
1026 1028
1027 SimplifiedOperatorBuilder* JSNativeContextSpecialization::simplified() const { 1029 SimplifiedOperatorBuilder* JSNativeContextSpecialization::simplified() const {
1028 return jsgraph()->simplified(); 1030 return jsgraph()->simplified();
1029 } 1031 }
1030 1032
1031 } // namespace compiler 1033 } // namespace compiler
1032 } // namespace internal 1034 } // namespace internal
1033 } // namespace v8 1035 } // namespace v8
OLDNEW
« no previous file with comments | « src/compiler/js-intrinsic-lowering.cc ('k') | src/compiler/pipeline.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698