| Index: src/compiler/liveness-analyzer.cc
|
| diff --git a/src/compiler/liveness-analyzer.cc b/src/compiler/liveness-analyzer.cc
|
| index 5a60d50e9086aa67ff2688a30147c77d1eea4068..0cf13332f4e8240de629eb7a13df71f908a60e21 100644
|
| --- a/src/compiler/liveness-analyzer.cc
|
| +++ b/src/compiler/liveness-analyzer.cc
|
| @@ -160,13 +160,20 @@ void NonLiveFrameStateSlotReplacer::ClearNonLiveFrameStateSlots(
|
| Node* NonLiveFrameStateSlotReplacer::ClearNonLiveStateValues(
|
| Node* values, BitVector* liveness) {
|
| DCHECK(inputs_buffer_.empty());
|
| - for (StateValuesAccess::TypedNode node : StateValuesAccess(values)) {
|
| +
|
| + int var = 0;
|
| + for (Node* value_node : values->inputs()) {
|
| + // Make sure this isn't a state value tree
|
| + DCHECK(value_node->opcode() != IrOpcode::kStateValues);
|
| +
|
| // Index of the next variable is its furure index in the inputs buffer,
|
| // i.e., the buffer's size.
|
| - int var = static_cast<int>(inputs_buffer_.size());
|
| bool live = liveness->Contains(var) || permanently_live_.Contains(var);
|
| - inputs_buffer_.push_back(live ? node.node : replacement_node_);
|
| + inputs_buffer_.push_back(live ? value_node : replacement_node_);
|
| +
|
| + var++;
|
| }
|
| +
|
| Node* result = state_values_cache()->GetNodeForValues(
|
| inputs_buffer_.empty() ? nullptr : &(inputs_buffer_.front()),
|
| inputs_buffer_.size());
|
|
|