b6bdd7415c
If type checks in simplified lowering produced dead value (i.e., of type Type::None()), we have only propagated deadness along value edges. With this CL, we also insert an Unreachable node after every effectful node that produces dead value. This is more consistent with dead code elimination, which also inserts unreachable nodes after effectful nodes with value output None. Bug: chromium:884052 Change-Id: Idcb168461f05f1811b2c9c16ab8ff179b259fbd3 Reviewed-on: https://chromium-review.googlesource.com/1228125 Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#55987}
17 lines
377 B
JavaScript
17 lines
377 B
JavaScript
// Copyright 2018 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: --allow-natives-syntax
|
|
|
|
function foo() {
|
|
var a = new Array(2);
|
|
for (var i = 1; i > -1; i = i - 2) {
|
|
if (i < a.length) a = new Array(i);
|
|
}
|
|
}
|
|
|
|
foo();
|
|
%OptimizeFunctionOnNextCall(foo);
|
|
foo();
|