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

Side by Side Diff: src/compiler/ast-graph-builder.cc

Issue 2428503002: [ignition/turbo] Add liveness analysis for the accumulator (Closed)
Patch Set: Remove unused accumulator state value read in release build Created 4 years, 2 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 | src/compiler/bytecode-graph-builder.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 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/ast-graph-builder.h" 5 #include "src/compiler/ast-graph-builder.h"
6 6
7 #include "src/ast/compile-time-value.h" 7 #include "src/ast/compile-time-value.h"
8 #include "src/ast/scopes.h" 8 #include "src/ast/scopes.h"
9 #include "src/compilation-info.h" 9 #include "src/compilation-info.h"
10 #include "src/compiler.h" 10 #include "src/compiler.h"
(...skipping 415 matching lines...) Expand 10 before | Expand all | Expand 10 after
426 execution_control_(nullptr), 426 execution_control_(nullptr),
427 execution_context_(nullptr), 427 execution_context_(nullptr),
428 try_nesting_level_(0), 428 try_nesting_level_(0),
429 input_buffer_size_(0), 429 input_buffer_size_(0),
430 input_buffer_(nullptr), 430 input_buffer_(nullptr),
431 exit_controls_(local_zone), 431 exit_controls_(local_zone),
432 loop_assignment_analysis_(loop), 432 loop_assignment_analysis_(loop),
433 type_hint_analysis_(type_hint_analysis), 433 type_hint_analysis_(type_hint_analysis),
434 state_values_cache_(jsgraph), 434 state_values_cache_(jsgraph),
435 liveness_analyzer_(static_cast<size_t>(info->scope()->num_stack_slots()), 435 liveness_analyzer_(static_cast<size_t>(info->scope()->num_stack_slots()),
436 local_zone), 436 false, local_zone),
437 frame_state_function_info_(common()->CreateFrameStateFunctionInfo( 437 frame_state_function_info_(common()->CreateFrameStateFunctionInfo(
438 FrameStateType::kJavaScriptFunction, info->num_parameters() + 1, 438 FrameStateType::kJavaScriptFunction, info->num_parameters() + 1,
439 info->scope()->num_stack_slots(), info->shared_info())) { 439 info->scope()->num_stack_slots(), info->shared_info())) {
440 InitializeAstVisitor(info->isolate()); 440 InitializeAstVisitor(info->isolate());
441 } 441 }
442 442
443 443
444 Node* AstGraphBuilder::GetFunctionClosureForContext() { 444 Node* AstGraphBuilder::GetFunctionClosureForContext() {
445 DeclarationScope* closure_scope = current_scope()->GetClosureScope(); 445 DeclarationScope* closure_scope = current_scope()->GetClosureScope();
446 if (closure_scope->is_script_scope() || 446 if (closure_scope->is_script_scope() ||
(...skipping 159 matching lines...) Expand 10 before | Expand all | Expand 10 after
606 606
607 607
608 void AstGraphBuilder::ClearNonLiveSlotsInFrameStates() { 608 void AstGraphBuilder::ClearNonLiveSlotsInFrameStates() {
609 if (!FLAG_analyze_environment_liveness || 609 if (!FLAG_analyze_environment_liveness ||
610 !info()->is_deoptimization_enabled()) { 610 !info()->is_deoptimization_enabled()) {
611 return; 611 return;
612 } 612 }
613 613
614 NonLiveFrameStateSlotReplacer replacer( 614 NonLiveFrameStateSlotReplacer replacer(
615 &state_values_cache_, jsgraph()->OptimizedOutConstant(), 615 &state_values_cache_, jsgraph()->OptimizedOutConstant(),
616 liveness_analyzer()->local_count(), local_zone()); 616 liveness_analyzer()->local_count(), false, local_zone());
617 Variable* arguments = info()->scope()->arguments(); 617 Variable* arguments = info()->scope()->arguments();
618 if (arguments != nullptr && arguments->IsStackAllocated()) { 618 if (arguments != nullptr && arguments->IsStackAllocated()) {
619 replacer.MarkPermanentlyLive(arguments->index()); 619 replacer.MarkPermanentlyLive(arguments->index());
620 } 620 }
621 liveness_analyzer()->Run(&replacer); 621 liveness_analyzer()->Run(&replacer);
622 if (FLAG_trace_environment_liveness) { 622 if (FLAG_trace_environment_liveness) {
623 OFStream os(stdout); 623 OFStream os(stdout);
624 liveness_analyzer()->Print(os); 624 liveness_analyzer()->Print(os);
625 } 625 }
626 } 626 }
(...skipping 3728 matching lines...) Expand 10 before | Expand all | Expand 10 after
4355 // Phi does not exist yet, introduce one. 4355 // Phi does not exist yet, introduce one.
4356 value = NewPhi(inputs, value, control); 4356 value = NewPhi(inputs, value, control);
4357 value->ReplaceInput(inputs - 1, other); 4357 value->ReplaceInput(inputs - 1, other);
4358 } 4358 }
4359 return value; 4359 return value;
4360 } 4360 }
4361 4361
4362 } // namespace compiler 4362 } // namespace compiler
4363 } // namespace internal 4363 } // namespace internal
4364 } // namespace v8 4364 } // namespace v8
OLDNEW
« no previous file with comments | « no previous file | src/compiler/bytecode-graph-builder.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698