Skip to content

Commit 0df7f62

Browse files
thibaudmichaudCommit Bot
authored andcommitted
[wasm] Use wasm engine allocator for export wrappers
Prefer using the wasm engine's allocator, as the isolate may not be available during asynchronous compilation. Bug: v8:9554 Change-Id: Iee3777efb62d18de6b2a64fa7a71d4ef4c6b3a92 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1722559 Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#62955}
1 parent 58f1b31 commit 0df7f62

6 files changed

Lines changed: 15 additions & 14 deletions

File tree

src/compiler/pipeline.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1062,7 +1062,7 @@ class WasmHeapStubCompilationJob final : public OptimizedCompilationJob {
10621062
debug_name_(std::move(debug_name)),
10631063
info_(CStrVector(debug_name_.get()), graph->zone(), kind),
10641064
call_descriptor_(call_descriptor),
1065-
zone_stats_(isolate->allocator()),
1065+
zone_stats_(zone->allocator()),
10661066
zone_(std::move(zone)),
10671067
graph_(graph),
10681068
data_(&zone_stats_, &info_, isolate, graph_, nullptr, source_positions,

src/compiler/wasm-compiler.cc

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6166,13 +6166,13 @@ void AppendSignature(char* buffer, size_t max_name_len,
61666166
} // namespace
61676167

61686168
std::unique_ptr<OptimizedCompilationJob> NewJSToWasmCompilationJob(
6169-
Isolate* isolate, wasm::FunctionSig* sig, bool is_import,
6170-
const wasm::WasmFeatures& enabled_features) {
6169+
Isolate* isolate, wasm::WasmEngine* wasm_engine, wasm::FunctionSig* sig,
6170+
bool is_import, const wasm::WasmFeatures& enabled_features) {
61716171
//----------------------------------------------------------------------------
61726172
// Create the Graph.
61736173
//----------------------------------------------------------------------------
61746174
std::unique_ptr<Zone> zone =
6175-
base::make_unique<Zone>(isolate->allocator(), ZONE_NAME);
6175+
base::make_unique<Zone>(wasm_engine->allocator(), ZONE_NAME);
61766176
Graph* graph = new (zone.get()) Graph(zone.get());
61776177
CommonOperatorBuilder common(zone.get());
61786178
MachineOperatorBuilder machine(

src/compiler/wasm-compiler.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -131,8 +131,8 @@ wasm::WasmCode* CompileWasmCapiCallWrapper(wasm::WasmEngine*,
131131

132132
// Returns an OptimizedCompilationJob object for a JS to Wasm wrapper.
133133
std::unique_ptr<OptimizedCompilationJob> NewJSToWasmCompilationJob(
134-
Isolate* isolate, wasm::FunctionSig* sig, bool is_import,
135-
const wasm::WasmFeatures& enabled_features);
134+
Isolate* isolate, wasm::WasmEngine* wasm_engine, wasm::FunctionSig* sig,
135+
bool is_import, const wasm::WasmFeatures& enabled_features);
136136

137137
// Compiles a stub that redirects a call to a wasm function to the wasm
138138
// interpreter. It's ABI compatible with the compiled wasm function.

src/wasm/function-compiler.cc

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -263,10 +263,10 @@ void WasmCompilationUnit::CompileWasmFunction(Isolate* isolate,
263263
}
264264

265265
JSToWasmWrapperCompilationUnit::JSToWasmWrapperCompilationUnit(
266-
Isolate* isolate, FunctionSig* sig, bool is_import,
266+
Isolate* isolate, WasmEngine* wasm_engine, FunctionSig* sig, bool is_import,
267267
const WasmFeatures& enabled_features)
268-
: job_(compiler::NewJSToWasmCompilationJob(isolate, sig, is_import,
269-
enabled_features)) {}
268+
: job_(compiler::NewJSToWasmCompilationJob(isolate, wasm_engine, sig,
269+
is_import, enabled_features)) {}
270270

271271
JSToWasmWrapperCompilationUnit::~JSToWasmWrapperCompilationUnit() = default;
272272

@@ -298,8 +298,8 @@ Handle<Code> JSToWasmWrapperCompilationUnit::CompileJSToWasmWrapper(
298298
Isolate* isolate, FunctionSig* sig, bool is_import) {
299299
// Run the compilation unit synchronously.
300300
WasmFeatures enabled_features = WasmFeaturesFromIsolate(isolate);
301-
JSToWasmWrapperCompilationUnit unit(isolate, sig, is_import,
302-
enabled_features);
301+
JSToWasmWrapperCompilationUnit unit(isolate, isolate->wasm_engine(), sig,
302+
is_import, enabled_features);
303303
unit.Prepare(isolate);
304304
unit.Execute();
305305
return unit.Finalize(isolate);

src/wasm/function-compiler.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -108,8 +108,8 @@ STATIC_ASSERT(sizeof(WasmCompilationUnit) <= 2 * kSystemPointerSize);
108108

109109
class V8_EXPORT_PRIVATE JSToWasmWrapperCompilationUnit final {
110110
public:
111-
JSToWasmWrapperCompilationUnit(Isolate* isolate, FunctionSig* sig,
112-
bool is_import,
111+
JSToWasmWrapperCompilationUnit(Isolate* isolate, WasmEngine* wasm_engine,
112+
FunctionSig* sig, bool is_import,
113113
const WasmFeatures& enabled_features);
114114
~JSToWasmWrapperCompilationUnit();
115115

src/wasm/module-compiler.cc

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2460,7 +2460,8 @@ void CompileJsToWasmWrappers(Isolate* isolate, const WasmModule* module,
24602460
JSToWasmWrapperKey key(function.imported, *function.sig);
24612461
if (queue.insert(key)) {
24622462
auto unit = base::make_unique<JSToWasmWrapperCompilationUnit>(
2463-
isolate, function.sig, function.imported, enabled_features);
2463+
isolate, isolate->wasm_engine(), function.sig, function.imported,
2464+
enabled_features);
24642465
unit->Prepare(isolate);
24652466
compilation_units.emplace(key, std::move(unit));
24662467
}

0 commit comments

Comments
 (0)