273511200d
Check whether the exception phi for the accumulator (i.e. the exception message object) is dead, and don't assign rax to it if yes. Note that maglev node liveness can differ from bytecode liveness, since the bytecode accumulator could have been considered "live" just because of a move to a (dead) register. Bug: v8:7700 Change-Id: If1384284f6f55a565e2ae94e5e7a32455fdedb93 Fixed: chromium:1359382 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3892353 Auto-Submit: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Jakob Linke <jgruber@chromium.org> Commit-Queue: Jakob Linke <jgruber@chromium.org> Cr-Commit-Position: refs/heads/main@{#83197}
20 lines
393 B
JavaScript
20 lines
393 B
JavaScript
// Copyright 2022 the V8 project authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
//
|
|
// Flags: --maglev --allow-natives-syntax
|
|
|
|
function foo() {
|
|
try {
|
|
throw null;
|
|
} catch (x) {
|
|
} finally {
|
|
return;
|
|
}
|
|
}
|
|
%PrepareFunctionForOptimization(foo);
|
|
foo();
|
|
foo();
|
|
%OptimizeMaglevOnNextCall(foo);
|
|
foo();
|