cbe423467c
Currently the fuzzer only tests Turbofan and Liftoff in isolation. In order to test that both tiers use the same ABI, it should also test calls from one tier to the other. This CL introduces a new flag which controls which function will be compiled by which tier, and uses that in the fuzzer. R=ahaas@chromium.org Bug: chromium:862931, v8:6600 Change-Id: I450b906700972cfdb496b1734faed9f8208d652f Reviewed-on: https://chromium-review.googlesource.com/1134775 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#54409}
47 lines
1.3 KiB
JavaScript
47 lines
1.3 KiB
JavaScript
// Copyright 2017 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 --liftoff --no-future --no-wasm-tier-up
|
|
// Compile functions 0 and 2 with Turbofan, the rest with Liftoff:
|
|
// Flags: --wasm-tier-mask-for-testing=5
|
|
|
|
load('test/mjsunit/wasm/wasm-constants.js');
|
|
load('test/mjsunit/wasm/wasm-module-builder.js');
|
|
|
|
const num_functions = 5;
|
|
|
|
function create_builder() {
|
|
const builder = new WasmModuleBuilder();
|
|
for (let i = 0; i < num_functions; ++i) {
|
|
builder.addFunction('f' + i, kSig_i_v)
|
|
.addBody(wasmI32Const(i))
|
|
.exportFunc();
|
|
}
|
|
return builder;
|
|
}
|
|
|
|
function check(instance) {
|
|
for (let i = 0; i < num_functions; ++i) {
|
|
const expect_liftoff = i != 0 && i != 2;
|
|
assertEquals(
|
|
expect_liftoff, %IsLiftoffFunction(instance.exports['f' + i]),
|
|
'function ' + i);
|
|
}
|
|
}
|
|
|
|
(function testTierTestingFlag() {
|
|
print(arguments.callee.name);
|
|
const instance = create_builder().instantiate();
|
|
check(instance);
|
|
})();
|
|
|
|
|
|
async function testTierTestingFlag() {
|
|
print(arguments.callee.name);
|
|
const instance = await create_builder().asyncInstantiate();
|
|
check(instance);
|
|
}
|
|
|
|
assertPromiseResult(testTierTestingFlag());
|