diff options
Diffstat (limited to 'deps/v8/src/compiler/csa-load-elimination.cc')
-rw-r--r-- | deps/v8/src/compiler/csa-load-elimination.cc | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/deps/v8/src/compiler/csa-load-elimination.cc b/deps/v8/src/compiler/csa-load-elimination.cc index 43f5572e78..ac25df2392 100644 --- a/deps/v8/src/compiler/csa-load-elimination.cc +++ b/deps/v8/src/compiler/csa-load-elimination.cc @@ -354,7 +354,15 @@ Reduction CsaLoadElimination::ReduceLoadFromObject(Node* node, if (!(is_mutable ? &state->immutable_state : &state->mutable_state) ->Lookup(object, offset) .IsEmpty()) { - return AssertUnreachable(node); + Node* control = NodeProperties::GetControlInput(node); + Node* unreachable = + graph()->NewNode(jsgraph()->common()->Unreachable(), effect, control); + auto rep = ObjectAccessOf(node->op()).machine_type.representation(); + Node* dead_value = + graph()->NewNode(jsgraph()->common()->DeadValue(rep), unreachable); + ReplaceWithValue(node, dead_value, unreachable, control); + node->Kill(); + return Replace(dead_value); } HalfState const* half_state = is_mutable ? &state->mutable_state : &state->immutable_state; |