f6a3ef5643
We potentially emitted the same gap move multiple times to satisfy slot constraint of live ranges defined by a constant. Avoid this by keeping track of already spilled ranges for a given instruction. This is not expected to cause any regression because this case is rare. If it does, a better approach to save allocations would be to re-use the same vector by storing it somewhere that survives the function calls, e.g. in the ConstraintBuilder. Drive-by: Remove unused functions. R=sigurds@chromium.org CC=nicohartmann@chromium.org Bug: chromium:1204748 Change-Id: I75a838a8b27775ecdeddb4c60cf72c56d5f1c2a4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2871462 Reviewed-by: Sigurd Schneider <sigurds@chromium.org> Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/master@{#74375}
25 lines
646 B
JavaScript
25 lines
646 B
JavaScript
// Copyright 2021 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 --assert-types
|
|
|
|
function __f_2(__v_4, __v_5) {
|
|
let __v_6 = __v_4 >= __v_5;
|
|
while (__v_6 != 0) {
|
|
__v_4 = __v_4 | __v_5 - __v_4;
|
|
let __v_7 = __v_4 >= __v_5;
|
|
new Int32Array(__v_4);
|
|
__v_6 = __v_4 < __v_5;
|
|
}
|
|
}
|
|
function __f_3() {
|
|
__f_2(Infinity, 1);
|
|
__f_2();
|
|
}
|
|
%PrepareFunctionForOptimization(__f_3);
|
|
%PrepareFunctionForOptimization(__f_2);
|
|
__f_3();
|
|
%OptimizeFunctionOnNextCall(__f_3);
|
|
__f_3();
|