Commit d75c4e3e authored by Leszek Swirski's avatar Leszek Swirski Committed by V8 LUCI CQ

[maglev] Skip functions with handler tables

We were doing this for synchronous compiles, but not for asynchronous
ones.

Bug: v8:7700
Change-Id: I10173ddc34bd8750051272c0ec065e21bbd20082
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3581767
Commit-Queue: Leszek Swirski <leszeks@chromium.org>
Reviewed-by: 's avatarVictor Gomes <victorgomes@chromium.org>
Commit-Queue: Victor Gomes <victorgomes@chromium.org>
Cr-Commit-Position: refs/heads/main@{#79925}
parent 734cf8b9
...@@ -154,6 +154,12 @@ void MaglevCompiler::Compile() { ...@@ -154,6 +154,12 @@ void MaglevCompiler::Compile() {
new MaglevGraphLabeller()); new MaglevGraphLabeller());
} }
// TODO(v8:7700): Support exceptions in maglev. We currently bail if exception
// handler table is non-empty.
if (toplevel_compilation_unit_->bytecode().handler_table_size() > 0) {
return;
}
MaglevGraphBuilder graph_builder(local_isolate(), toplevel_compilation_unit_); MaglevGraphBuilder graph_builder(local_isolate(), toplevel_compilation_unit_);
graph_builder.Build(); graph_builder.Build();
......
...@@ -16,9 +16,6 @@ MaybeHandle<CodeT> Maglev::Compile(Isolate* isolate, ...@@ -16,9 +16,6 @@ MaybeHandle<CodeT> Maglev::Compile(Isolate* isolate,
DCHECK(FLAG_maglev); DCHECK(FLAG_maglev);
auto info = maglev::MaglevCompilationInfo::New(isolate, function); auto info = maglev::MaglevCompilationInfo::New(isolate, function);
maglev::MaglevCompilationUnit* const unit = info->toplevel_compilation_unit(); maglev::MaglevCompilationUnit* const unit = info->toplevel_compilation_unit();
// TODO(v8:7700): Support exceptions in maglev. We currently bail if exception
// handler table is non-empty.
if (unit->bytecode().handler_table_size() > 0) return {};
maglev::MaglevCompiler::Compile(isolate->main_thread_local_isolate(), unit); maglev::MaglevCompiler::Compile(isolate->main_thread_local_isolate(), unit);
return maglev::MaglevCompiler::GenerateCode(unit); return maglev::MaglevCompiler::GenerateCode(unit);
} }
......
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