| Index: src/compiler/bytecode-graph-builder.cc
|
| diff --git a/src/compiler/bytecode-graph-builder.cc b/src/compiler/bytecode-graph-builder.cc
|
| index 8a33edd8b8db4a0ff59b7dadaed53846d6c220fb..c9087b1a9910dc4ffe7e01dfc3bc869726f875c5 100644
|
| --- a/src/compiler/bytecode-graph-builder.cc
|
| +++ b/src/compiler/bytecode-graph-builder.cc
|
| @@ -55,7 +55,8 @@ class BytecodeGraphBuilder::Environment : public ZoneObject {
|
| // Preserve a checkpoint of the environment for the IR graph. Any
|
| // further mutation of the environment will not affect checkpoints.
|
| Node* Checkpoint(BailoutId bytecode_offset, OutputFrameStateCombine combine,
|
| - bool owner_has_exception, const BitVector* liveness);
|
| + bool owner_has_exception,
|
| + const BytecodeLivenessState* liveness);
|
|
|
| // Control dependency tracked by this environment.
|
| Node* GetControlDependency() const { return control_dependency_; }
|
| @@ -409,7 +410,7 @@ void BytecodeGraphBuilder::Environment::UpdateStateValuesWithCache(
|
|
|
| Node* BytecodeGraphBuilder::Environment::Checkpoint(
|
| BailoutId bailout_id, OutputFrameStateCombine combine,
|
| - bool owner_has_exception, const BitVector* liveness) {
|
| + bool owner_has_exception, const BytecodeLivenessState* liveness) {
|
| UpdateStateValues(¶meters_state_values_, &values()->at(0),
|
| parameter_count());
|
|
|
| @@ -417,12 +418,12 @@ Node* BytecodeGraphBuilder::Environment::Checkpoint(
|
| Node* optimized_out = builder()->jsgraph()->OptimizedOutConstant();
|
|
|
| for (int i = 0; i < register_count(); ++i) {
|
| - state_value_working_area_[i] = liveness->Contains(i)
|
| + state_value_working_area_[i] = liveness->RegisterIsLive(i)
|
| ? values()->at(register_base() + i)
|
| : optimized_out;
|
| }
|
|
|
| - Node* accumulator_value = liveness->Contains(register_count())
|
| + Node* accumulator_value = liveness->AccumulatorIsLive()
|
| ? values()->at(accumulator_base())
|
| : optimized_out;
|
|
|
| @@ -569,8 +570,9 @@ void BytecodeGraphBuilder::PrepareEagerCheckpoint() {
|
| NodeProperties::GetFrameStateInput(node)->opcode());
|
| BailoutId bailout_id(bytecode_iterator().current_offset());
|
|
|
| - const BitVector* liveness_before = bytecode_analysis()->GetInLivenessFor(
|
| - bytecode_iterator().current_offset());
|
| + const BytecodeLivenessState* liveness_before =
|
| + bytecode_analysis()->GetInLivenessFor(
|
| + bytecode_iterator().current_offset());
|
|
|
| Node* frame_state_before = environment()->Checkpoint(
|
| bailout_id, OutputFrameStateCombine::Ignore(), false, liveness_before);
|
| @@ -589,8 +591,9 @@ void BytecodeGraphBuilder::PrepareFrameState(Node* node,
|
| BailoutId bailout_id(bytecode_iterator().current_offset());
|
| bool has_exception = NodeProperties::IsExceptionalCall(node);
|
|
|
| - const BitVector* liveness_after = bytecode_analysis()->GetOutLivenessFor(
|
| - bytecode_iterator().current_offset());
|
| + const BytecodeLivenessState* liveness_after =
|
| + bytecode_analysis()->GetOutLivenessFor(
|
| + bytecode_iterator().current_offset());
|
|
|
| Node* frame_state_after = environment()->Checkpoint(
|
| bailout_id, combine, has_exception, liveness_after);
|
|
|