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

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

Issue 2509623002: [turbofan] Sparse representation for state values (Closed)
Patch Set: Remove the optimized_out input entirely, return nullptr when iterating Created 4 years, 1 month 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
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/bytecode-graph-builder.h" 5 #include "src/compiler/bytecode-graph-builder.h"
6 6
7 #include "src/ast/ast.h" 7 #include "src/ast/ast.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/bytecode-branch-analysis.h" 10 #include "src/compiler/bytecode-branch-analysis.h"
(...skipping 429 matching lines...) Expand 10 before | Expand all | Expand 10 after
440 Node* rename = 440 Node* rename =
441 graph()->NewNode(common()->LoopExitValue(), values_[i], loop_exit); 441 graph()->NewNode(common()->LoopExitValue(), values_[i], loop_exit);
442 values_[i] = rename; 442 values_[i] = rename;
443 } 443 }
444 } 444 }
445 445
446 void BytecodeGraphBuilder::Environment::UpdateStateValues(Node** state_values, 446 void BytecodeGraphBuilder::Environment::UpdateStateValues(Node** state_values,
447 int offset, 447 int offset,
448 int count) { 448 int count) {
449 if (StateValuesRequireUpdate(state_values, offset, count)) { 449 if (StateValuesRequireUpdate(state_values, offset, count)) {
450 const Operator* op = common()->StateValues(count); 450 const Operator* op = common()->StateValues(count, 0u);
451 (*state_values) = graph()->NewNode(op, count, &values()->at(offset)); 451 (*state_values) = graph()->NewNode(op, count, &values()->at(offset));
452 } 452 }
453 } 453 }
454 454
455 Node* BytecodeGraphBuilder::Environment::Checkpoint( 455 Node* BytecodeGraphBuilder::Environment::Checkpoint(
456 BailoutId bailout_id, OutputFrameStateCombine combine, 456 BailoutId bailout_id, OutputFrameStateCombine combine,
457 bool owner_has_exception) { 457 bool owner_has_exception) {
458 UpdateStateValues(&parameters_state_values_, 0, parameter_count()); 458 UpdateStateValues(&parameters_state_values_, 0, parameter_count());
459 UpdateStateValues(&registers_state_values_, register_base(), 459 UpdateStateValues(&registers_state_values_, register_base(),
460 register_count()); 460 register_count());
(...skipping 1740 matching lines...) Expand 10 before | Expand all | Expand 10 after
2201 it->source_position().ScriptOffset(), start_position_.InliningId())); 2201 it->source_position().ScriptOffset(), start_position_.InliningId()));
2202 it->Advance(); 2202 it->Advance();
2203 } else { 2203 } else {
2204 DCHECK_GT(it->code_offset(), offset); 2204 DCHECK_GT(it->code_offset(), offset);
2205 } 2205 }
2206 } 2206 }
2207 2207
2208 } // namespace compiler 2208 } // namespace compiler
2209 } // namespace internal 2209 } // namespace internal
2210 } // namespace v8 2210 } // namespace v8
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698