Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1480)

Unified Diff: src/wasm/wasm-module.cc

Issue 2385943002: Revert of [wasm] further simplification of WasmCompiledModule (Closed)
Patch Set: Created 4 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « src/wasm/wasm-module.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: src/wasm/wasm-module.cc
diff --git a/src/wasm/wasm-module.cc b/src/wasm/wasm-module.cc
index ad6ba05d6edb946b9b88c65024fccbbed8b50a68..d3470d80f7885265f42cd925ce96c1bf522506ff 100644
--- a/src/wasm/wasm-module.cc
+++ b/src/wasm/wasm-module.cc
@@ -852,8 +852,7 @@
WasmCompiledModule* compiled_module) {
Object* undefined = *isolate->factory()->undefined_value();
uint32_t old_mem_size = compiled_module->mem_size();
- uint32_t default_mem_size = compiled_module->default_mem_size();
- Object* mem_start = compiled_module->ptr_to_heap();
+ Object* mem_start = compiled_module->ptr_to_mem_start();
Address old_mem_address = nullptr;
Address globals_start =
GetGlobalStartAddressFromCodeTemplate(undefined, owner);
@@ -878,8 +877,8 @@
RelocInfo::Mode mode = it.rinfo()->rmode();
if (RelocInfo::IsWasmMemoryReference(mode) ||
RelocInfo::IsWasmMemorySizeReference(mode)) {
- it.rinfo()->update_wasm_memory_reference(
- old_mem_address, nullptr, old_mem_size, default_mem_size);
+ it.rinfo()->update_wasm_memory_reference(old_mem_address, nullptr,
+ old_mem_size, old_mem_size);
changed = true;
} else {
CHECK(RelocInfo::IsWasmGlobalReference(mode));
@@ -894,7 +893,7 @@
}
}
compiled_module->reset_weak_owning_instance();
- compiled_module->reset_heap();
+ compiled_module->reset_mem_start();
}
static void InstanceFinalizer(const v8::WeakCallbackInfo<void>& data) {
@@ -1051,8 +1050,7 @@
// and information needed at instantiation time. This object needs to be
// serializable. Instantiation may occur off a deserialized version of this
// object.
- Handle<WasmCompiledModule> ret = WasmCompiledModule::New(
- isolate, min_mem_pages, globals_size, mem_export, origin);
+ Handle<WasmCompiledModule> ret = WasmCompiledModule::New(isolate);
ret->set_code_table(code_table);
if (!indirect_table.is_null()) {
ret->set_indirect_function_tables(indirect_table.ToHandleChecked());
@@ -1126,8 +1124,12 @@
Handle<ByteArray> function_name_table =
BuildFunctionNamesTable(isolate, module_env.module);
ret->set_function_names(function_name_table);
+ ret->set_min_required_memory(min_mem_pages);
if (data_segments.size() > 0) SaveDataSegmentInfo(factory, this, ret);
- DCHECK_EQ(ret->default_mem_size(), temp_instance.mem_size);
+ ret->set_globals_size(globals_size);
+ ret->set_export_memory(mem_export);
+ ret->set_origin(origin);
+ ret->set_mem_size(temp_instance.mem_size);
return ret;
}
@@ -1247,6 +1249,7 @@
UNREACHABLE();
}
}
+ compiled_module->set_mem_size(original->mem_size());
RecordStats(isolate, code_table);
} else {
// There was no owner, so we can reuse the original.
@@ -1270,7 +1273,7 @@
MaybeHandle<JSArrayBuffer> old_memory;
// TODO(titzer): handle imported memory properly.
- uint32_t min_mem_pages = compiled_module->min_memory_pages();
+ uint32_t min_mem_pages = compiled_module->min_required_memory();
isolate->counters()->wasm_min_mem_pages_count()->AddSample(min_mem_pages);
// TODO(wasm): re-enable counter for max_mem_pages when we use that field.
@@ -1285,16 +1288,16 @@
uint32_t mem_size = static_cast<uint32_t>(memory->byte_length()->Number());
LoadDataSegments(compiled_module, mem_start, mem_size);
- uint32_t old_mem_size = compiled_module->has_heap()
- ? compiled_module->mem_size()
- : compiled_module->default_mem_size();
+ uint32_t old_mem_size = compiled_module->mem_size();
Address old_mem_start =
- compiled_module->has_heap()
- ? static_cast<Address>(compiled_module->heap()->backing_store())
+ compiled_module->has_mem_start()
+ ? static_cast<Address>(
+ compiled_module->mem_start()->backing_store())
: nullptr;
RelocateInstanceCode(instance, old_mem_start, mem_start, old_mem_size,
mem_size);
- compiled_module->set_heap(memory);
+ compiled_module->set_mem_size(mem_size);
+ compiled_module->set_mem_start(memory);
}
//--------------------------------------------------------------------------
@@ -1534,26 +1537,6 @@
return instance;
}
-Handle<WasmCompiledModule> WasmCompiledModule::New(Isolate* isolate,
- uint32_t min_memory_pages,
- uint32_t globals_size,
- bool export_memory,
- ModuleOrigin origin) {
- Handle<FixedArray> ret =
- isolate->factory()->NewFixedArray(PropertyIndices::Count, TENURED);
- // Globals size is expected to fit into an int without overflow. This is not
- // supported by the spec at the moment, however, we don't support array
- // buffer sizes over 1g, so, for now, we avoid alocating a HeapNumber for
- // the globals size. The CHECK guards this assumption.
- CHECK_GE(static_cast<int>(globals_size), 0);
- ret->set(kID_min_memory_pages,
- Smi::FromInt(static_cast<int>(min_memory_pages)));
- ret->set(kID_globals_size, Smi::FromInt(static_cast<int>(globals_size)));
- ret->set(kID_export_memory, Smi::FromInt(static_cast<int>(export_memory)));
- ret->set(kID_origin, Smi::FromInt(static_cast<int>(origin)));
- return handle(WasmCompiledModule::cast(*ret));
-}
-
compiler::CallDescriptor* ModuleEnv::GetCallDescriptor(Zone* zone,
uint32_t index) {
DCHECK(IsValidFunction(index));
@@ -1778,9 +1761,11 @@
DisallowHeapAllocation no_gc;
DCHECK(IsWasmObject(*instance));
instance->SetInternalField(kWasmMemArrayBuffer, buffer);
- WasmCompiledModule* module =
- WasmCompiledModule::cast(instance->GetInternalField(kWasmCompiledModule));
- module->set_ptr_to_heap(buffer);
+ Object* module = instance->GetInternalField(kWasmCompiledModule);
+ if (module->IsFixedArray()) {
+ WasmCompiledModule::cast(module)->set_mem_size(
+ buffer->byte_length()->Number());
+ }
}
namespace testing {
« no previous file with comments | « src/wasm/wasm-module.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698