Commit 0f4d68da authored by Clemens Backes's avatar Clemens Backes Committed by Commit Bot

[wasm][debug] Stage --debug-in-liftoff behind --future

There are only three tests with differing behaviour if Liftoff is used
for debugging.
This CL thus stages the --debug-in-liftoff flag behind --future (tested
by the "future" variant) and excludes the three tests.
This allows us to test the other (already working) tests for
regressions, and iteratively shrinking down the list of failing tests.

Drive-by: Tier down modules in tests before testing debugging features
to avoid hitting a DCHECK in Liftoff recompilation for debugging.

R=thibaudm@chromium.org, ecmziegler@chromium.org

Bug: v8:10351
Change-Id: I3b1dd1a29258ecf13c1f60020fb06358005558d4
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2122021Reviewed-by: 's avatarThibaud Michaud <thibaudm@chromium.org>
Commit-Queue: Clemens Backes <clemensb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#66889}
parent f2d0550a
......@@ -721,6 +721,7 @@ DEFINE_INT(wasm_tier_mask_for_testing, 0,
DEFINE_BOOL(debug_in_liftoff, false,
"use Liftoff instead of the C++ interpreter for debugging "
"WebAssembly (experimental)")
DEFINE_IMPLICATION(future, debug_in_liftoff)
DEFINE_BOOL(validate_asm, true, "validate asm.js modules before compiling")
DEFINE_BOOL(suppress_asm_messages, false,
......
......@@ -139,6 +139,7 @@ class BreakHandler : public debug::DebugDelegate {
Handle<BreakPoint> SetBreakpoint(WasmRunnerBase* runner, int function_index,
int byte_offset,
int expected_set_byte_offset = -1) {
runner->TierDown();
int func_offset =
runner->builder().GetFunctionAt(function_index)->code.offset();
int code_offset = func_offset + byte_offset;
......
......@@ -49,6 +49,7 @@ class TestCode {
}
Handle<BreakPoint> BreakOnReturn(WasmRunnerBase* runner) {
runner->TierDown();
uint32_t return_offset_in_function = FindReturn();
int function_index = compiler_->function_index();
......
......@@ -258,6 +258,8 @@ class TestingModuleBuilder {
void SetExecutable() { native_module_->SetExecutable(true); }
void TierDown() { native_module_->TierDown(isolate_); }
enum AssumeDebugging : bool { kDebug = true, kNoDebug = false };
CompilationEnv CreateCompilationEnv(AssumeDebugging = kNoDebug);
......@@ -444,6 +446,8 @@ class WasmRunnerBase : public HandleAndZoneScope {
bool interpret() { return builder_.interpret(); }
void TierDown() { builder_.TierDown(); }
template <typename ReturnType, typename... ParamTypes>
FunctionSig* CreateSig() {
return WasmRunnerBase::CreateSig<ReturnType, ParamTypes...>(&zone_);
......
......@@ -16,6 +16,18 @@
'debugger/script-on-after-compile-snapshot': [SKIP],
}], # ALWAYS
##############################################################################
['variant == future', {
# https://crbug.com/v8/10351
# --debug-in-liftoff is staged behind --future, but still shows some
# differences to the old behaviour (in particular, anyref is not
# implemented in Liftoff yet).
# TODO(clemensb/thibaudm): Get this list to zero and remove this block.
'debugger/wasm-scope-info-liftoff': [FAIL],
'debugger/wasm-stepping-in-from-js': [FAIL],
'debugger/wasm-anyref-global': [FAIL],
}],
##############################################################################
['system == android', {
# https://crbug.com/v8/8197
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment