[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/+/2122021 Reviewed-by: Thibaud Michaud <thibaudm@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#66889}
This commit is contained in:
parent
f2d0550a84
commit
0f4d68dac9
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user