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

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

Issue 2415603002: [wasm] Clean up wasm module implementation (Closed)
Patch Set: Created 4 years, 2 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 | « no previous file | 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 93293c086b8f7f1f18298003276aff702be11bec..b403f4424c9ad139ef0003a44c6531c5a53d3310 100644
--- a/src/wasm/wasm-module.cc
+++ b/src/wasm/wasm-module.cc
@@ -24,9 +24,9 @@
#include "src/compiler/wasm-compiler.h"
-namespace v8 {
-namespace internal {
-namespace wasm {
+using namespace v8::internal;
+using namespace v8::internal::wasm;
+namespace base = v8::base;
#define TRACE(...) \
do { \
@@ -756,7 +756,7 @@ Handle<FixedArray> SetupIndirectFunctionTable(
} // namespace
-const char* SectionName(WasmSectionCode code) {
+const char* wasm::SectionName(WasmSectionCode code) {
switch (code) {
case kUnknownSectionCode:
return "Unknown";
@@ -789,7 +789,7 @@ const char* SectionName(WasmSectionCode code) {
}
}
-std::ostream& operator<<(std::ostream& os, const WasmModule& module) {
+std::ostream& wasm::operator<<(std::ostream& os, const WasmModule& module) {
os << "WASM module with ";
os << (module.min_mem_pages * module.kPageSize) << " min mem";
os << (module.max_mem_pages * module.kPageSize) << " max mem";
@@ -799,7 +799,7 @@ std::ostream& operator<<(std::ostream& os, const WasmModule& module) {
return os;
}
-std::ostream& operator<<(std::ostream& os, const WasmFunction& function) {
+std::ostream& wasm::operator<<(std::ostream& os, const WasmFunction& function) {
os << "WASM function with signature " << *function.sig;
os << " code bytes: "
@@ -807,7 +807,7 @@ std::ostream& operator<<(std::ostream& os, const WasmFunction& function) {
return os;
}
-std::ostream& operator<<(std::ostream& os, const WasmFunctionName& pair) {
+std::ostream& wasm::operator<<(std::ostream& os, const WasmFunctionName& pair) {
os << "#" << pair.function_->func_index << ":";
if (pair.function_->name_offset > 0) {
if (pair.module_) {
@@ -823,7 +823,7 @@ std::ostream& operator<<(std::ostream& os, const WasmFunctionName& pair) {
return os;
}
-Handle<JSFunction> WrapExportCodeAsJSFunction(
+Handle<JSFunction> wasm::WrapExportCodeAsJSFunction(
Isolate* isolate, Handle<Code> export_code, Handle<String> name, int arity,
MaybeHandle<ByteArray> maybe_signature, Handle<JSObject> module_instance) {
Handle<SharedFunctionInfo> shared =
@@ -845,7 +845,7 @@ Handle<JSFunction> WrapExportCodeAsJSFunction(
return function;
}
-Object* GetOwningWasmInstance(Code* code) {
+Object* wasm::GetOwningWasmInstance(Code* code) {
DCHECK(code->kind() == Code::WASM_FUNCTION);
DisallowHeapAllocation no_gc;
FixedArray* deopt_data = code->deoptimization_data();
@@ -857,7 +857,7 @@ Object* GetOwningWasmInstance(Code* code) {
return cell->value();
}
-int GetNumImportedFunctions(Handle<JSObject> wasm_object) {
+int wasm::GetNumImportedFunctions(Handle<JSObject> wasm_object) {
// TODO(wasm): Cache this number if it ever becomes a performance problem.
DCHECK(IsWasmObject(*wasm_object));
WasmCompiledModule* compiled_module = GetCompiledModule(*wasm_object);
@@ -887,6 +887,8 @@ WasmModule::WasmModule(byte* module_start)
num_exported_functions(0),
pending_tasks(new base::Semaphore(0)) {}
+namespace {
+
void EncodeInit(const WasmModule* module, Factory* factory,
Handle<FixedArray> entry, int kind_index, int value_index,
const WasmInitExpr& expr) {
@@ -923,6 +925,8 @@ void EncodeInit(const WasmModule* module, Factory* factory,
entry->set(value_index, *value);
}
+} // namespace
+
MaybeHandle<WasmCompiledModule> WasmModule::CompileFunctions(
Isolate* isolate, ErrorThrower* thrower) const {
Factory* factory = isolate->factory();
@@ -1864,7 +1868,7 @@ class WasmInstanceBuilder {
break;
}
- Maybe<bool> status = JSReceiver::DefineOwnProperty(
+ v8::Maybe<bool> status = JSReceiver::DefineOwnProperty(
isolate_, exports_object, name, &desc, Object::THROW_ON_ERROR);
if (!status.IsJust()) {
thrower_->Error("export of %.*s failed.", name->length(),
@@ -1952,8 +1956,9 @@ void WasmCompiledModule::PrintInstancesChain() {
#endif
}
-Handle<Object> GetWasmFunctionNameOrNull(Isolate* isolate, Handle<Object> wasm,
- uint32_t func_index) {
+Handle<Object> wasm::GetWasmFunctionNameOrNull(Isolate* isolate,
+ Handle<Object> wasm,
+ uint32_t func_index) {
if (!wasm->IsUndefined(isolate)) {
DCHECK(IsWasmObject(*wasm));
WasmCompiledModule* compiled_module =
@@ -1969,8 +1974,8 @@ Handle<Object> GetWasmFunctionNameOrNull(Isolate* isolate, Handle<Object> wasm,
return isolate->factory()->null_value();
}
-Handle<String> GetWasmFunctionName(Isolate* isolate, Handle<Object> wasm,
- uint32_t func_index) {
+Handle<String> wasm::GetWasmFunctionName(Isolate* isolate, Handle<Object> wasm,
+ uint32_t func_index) {
Handle<Object> name_or_null =
GetWasmFunctionNameOrNull(isolate, wasm, func_index);
if (!name_or_null->IsNull(isolate)) {
@@ -1979,7 +1984,7 @@ Handle<String> GetWasmFunctionName(Isolate* isolate, Handle<Object> wasm,
return isolate->factory()->NewStringFromStaticChars("<WASM UNNAMED>");
}
-bool IsWasmObject(Object* object) {
+bool wasm::IsWasmObject(Object* object) {
if (!object->IsJSObject()) return false;
JSObject* obj = JSObject::cast(object);
@@ -2000,36 +2005,36 @@ bool IsWasmObject(Object* object) {
return true;
}
-WasmCompiledModule* GetCompiledModule(JSObject* wasm) {
+WasmCompiledModule* wasm::GetCompiledModule(JSObject* wasm) {
return WasmCompiledModule::cast(wasm->GetInternalField(kWasmCompiledModule));
}
-bool WasmIsAsmJs(Object* wasm, Isolate* isolate) {
+bool wasm::WasmIsAsmJs(Object* wasm, Isolate* isolate) {
if (wasm->IsUndefined(isolate)) return false;
DCHECK(IsWasmObject(wasm));
WasmCompiledModule* compiled_module = GetCompiledModule(JSObject::cast(wasm));
return compiled_module->has_asm_js_script();
}
-Handle<Script> GetAsmWasmScript(Handle<JSObject> wasm) {
+Handle<Script> wasm::GetAsmWasmScript(Handle<JSObject> wasm) {
DCHECK(IsWasmObject(*wasm));
WasmCompiledModule* compiled_module = GetCompiledModule(*wasm);
return compiled_module->asm_js_script();
}
-int GetAsmWasmSourcePosition(Handle<JSObject> wasm, int func_index,
- int byte_offset) {
+int wasm::GetAsmWasmSourcePosition(Handle<JSObject> wasm, int func_index,
+ int byte_offset) {
return WasmDebugInfo::GetAsmJsSourcePosition(GetDebugInfo(wasm), func_index,
byte_offset);
}
-Handle<SeqOneByteString> GetWasmBytes(Handle<JSObject> wasm) {
+Handle<SeqOneByteString> wasm::GetWasmBytes(Handle<JSObject> wasm) {
DCHECK(IsWasmObject(*wasm));
WasmCompiledModule* compiled_module = GetCompiledModule(*wasm);
return compiled_module->module_bytes();
}
-Handle<WasmDebugInfo> GetDebugInfo(Handle<JSObject> wasm) {
+Handle<WasmDebugInfo> wasm::GetDebugInfo(Handle<JSObject> wasm) {
Handle<Object> info(wasm->GetInternalField(kWasmDebugInfo),
wasm->GetIsolate());
if (!info->IsUndefined(wasm->GetIsolate()))
@@ -2039,9 +2044,9 @@ Handle<WasmDebugInfo> GetDebugInfo(Handle<JSObject> wasm) {
return new_info;
}
-bool UpdateWasmModuleMemory(Handle<JSObject> object, Address old_start,
- Address new_start, uint32_t old_size,
- uint32_t new_size) {
+bool wasm::UpdateWasmModuleMemory(Handle<JSObject> object, Address old_start,
+ Address new_start, uint32_t old_size,
+ uint32_t new_size) {
DisallowHeapAllocation no_allocation;
if (!IsWasmObject(*object)) {
return false;
@@ -2071,8 +2076,8 @@ bool UpdateWasmModuleMemory(Handle<JSObject> object, Address old_start,
return true;
}
-Handle<FixedArray> BuildFunctionTable(Isolate* isolate, uint32_t index,
- const WasmModule* module) {
+Handle<FixedArray> wasm::BuildFunctionTable(Isolate* isolate, uint32_t index,
+ const WasmModule* module) {
const WasmIndirectFunctionTable* table = &module->function_tables[index];
DCHECK_EQ(table->size, table->values.size());
DCHECK_GE(table->max_size, table->size);
@@ -2096,8 +2101,8 @@ Handle<FixedArray> BuildFunctionTable(Isolate* isolate, uint32_t index,
return values;
}
-void PopulateFunctionTable(Handle<FixedArray> table, uint32_t table_size,
- const std::vector<Handle<Code>>* code_table) {
+void wasm::PopulateFunctionTable(Handle<FixedArray> table, uint32_t table_size,
+ const std::vector<Handle<Code>>* code_table) {
uint32_t max_size = table->length() / 2;
for (uint32_t i = max_size; i < max_size + table_size; ++i) {
int index = Smi::cast(table->get(static_cast<int>(i)))->value();
@@ -2107,7 +2112,7 @@ void PopulateFunctionTable(Handle<FixedArray> table, uint32_t table_size,
}
}
-int GetNumberOfFunctions(Handle<JSObject> wasm) {
+int wasm::GetNumberOfFunctions(Handle<JSObject> wasm) {
DCHECK(IsWasmObject(*wasm));
WasmCompiledModule* compiled_module = GetCompiledModule(*wasm);
ByteArray* func_names_arr = compiled_module->ptr_to_function_names();
@@ -2115,7 +2120,7 @@ int GetNumberOfFunctions(Handle<JSObject> wasm) {
return func_names_arr->get_int(0);
}
-Handle<JSObject> CreateCompiledModuleObject(
+Handle<JSObject> wasm::CreateCompiledModuleObject(
Isolate* isolate, Handle<WasmCompiledModule> compiled_module,
ModuleOrigin origin) {
Handle<JSObject> module_obj;
@@ -2140,7 +2145,7 @@ Handle<JSObject> CreateCompiledModuleObject(
}
// TODO(clemensh): origin can be inferred from asm_js_script; remove it.
-MaybeHandle<JSObject> CreateModuleObjectFromBytes(
+MaybeHandle<JSObject> wasm::CreateModuleObjectFromBytes(
Isolate* isolate, const byte* start, const byte* end, ErrorThrower* thrower,
ModuleOrigin origin, Handle<Script> asm_js_script,
const byte* asm_js_offset_tables_start,
@@ -2178,8 +2183,9 @@ MaybeHandle<JSObject> CreateModuleObjectFromBytes(
return CreateCompiledModuleObject(isolate, compiled_module, origin);
}
-bool ValidateModuleBytes(Isolate* isolate, const byte* start, const byte* end,
- ErrorThrower* thrower, ModuleOrigin origin) {
+bool wasm::ValidateModuleBytes(Isolate* isolate, const byte* start,
+ const byte* end, ErrorThrower* thrower,
+ ModuleOrigin origin) {
Zone zone(isolate->allocator());
ModuleResult result =
DecodeWasmModule(isolate, &zone, start, end, false, origin);
@@ -2191,6 +2197,8 @@ bool ValidateModuleBytes(Isolate* isolate, const byte* start, const byte* end,
return false;
}
+namespace {
+
MaybeHandle<JSArrayBuffer> GetInstanceMemory(Isolate* isolate,
Handle<JSObject> instance) {
Object* mem = instance->GetInternalField(kWasmMemArrayBuffer);
@@ -2207,7 +2215,10 @@ void SetInstanceMemory(Handle<JSObject> instance, JSArrayBuffer* buffer) {
compiled_module->set_ptr_to_heap(buffer);
}
-int32_t GetInstanceMemorySize(Isolate* isolate, Handle<JSObject> instance) {
+} // namespace
+
+int32_t wasm::GetInstanceMemorySize(Isolate* isolate,
+ Handle<JSObject> instance) {
MaybeHandle<JSArrayBuffer> maybe_mem_buffer =
GetInstanceMemory(isolate, instance);
Handle<JSArrayBuffer> buffer;
@@ -2218,8 +2229,8 @@ int32_t GetInstanceMemorySize(Isolate* isolate, Handle<JSObject> instance) {
}
}
-int32_t GrowInstanceMemory(Isolate* isolate, Handle<JSObject> instance,
- uint32_t pages) {
+int32_t wasm::GrowInstanceMemory(Isolate* isolate, Handle<JSObject> instance,
+ uint32_t pages) {
if (pages == 0) {
return GetInstanceMemorySize(isolate, instance);
}
@@ -2267,10 +2278,9 @@ int32_t GrowInstanceMemory(Isolate* isolate, Handle<JSObject> instance,
return (old_size / WasmModule::kPageSize);
}
-namespace testing {
-
-void ValidateInstancesChain(Isolate* isolate, Handle<JSObject> module_obj,
- int instance_count) {
+void testing::ValidateInstancesChain(Isolate* isolate,
+ Handle<JSObject> module_obj,
+ int instance_count) {
CHECK_GE(instance_count, 0);
DisallowHeapAllocation no_gc;
WasmCompiledModule* compiled_module =
@@ -2297,7 +2307,8 @@ void ValidateInstancesChain(Isolate* isolate, Handle<JSObject> module_obj,
CHECK_EQ(found_instances, instance_count);
}
-void ValidateModuleState(Isolate* isolate, Handle<JSObject> module_obj) {
+void testing::ValidateModuleState(Isolate* isolate,
+ Handle<JSObject> module_obj) {
DisallowHeapAllocation no_gc;
WasmCompiledModule* compiled_module =
WasmCompiledModule::cast(module_obj->GetInternalField(0));
@@ -2308,15 +2319,11 @@ void ValidateModuleState(Isolate* isolate, Handle<JSObject> module_obj) {
CHECK(!compiled_module->has_weak_owning_instance());
}
-void ValidateOrphanedInstance(Isolate* isolate, Handle<JSObject> instance) {
+void testing::ValidateOrphanedInstance(Isolate* isolate,
+ Handle<JSObject> instance) {
DisallowHeapAllocation no_gc;
CHECK(IsWasmObject(*instance));
WasmCompiledModule* compiled_module = GetCompiledModule(*instance);
CHECK(compiled_module->has_weak_module_object());
CHECK(compiled_module->ptr_to_weak_module_object()->cleared());
}
-
-} // namespace testing
-} // namespace wasm
-} // namespace internal
-} // namespace v8
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698