#include "src/wasm/wasm-subtyping.h"
#include "src/wasm/canonical-types.h"
#include "src/wasm/wasm-module.h"
namespace v8::internal::wasm {
namespace {
V8_INLINE bool EquivalentIndices(uint32_t index1, uint32_t index2,
const WasmModule* module1,
const WasmModule* module2) { … }
bool ValidStructSubtypeDefinition(uint32_t subtype_index,
uint32_t supertype_index,
const WasmModule* sub_module,
const WasmModule* super_module) { … }
bool ValidArraySubtypeDefinition(uint32_t subtype_index,
uint32_t supertype_index,
const WasmModule* sub_module,
const WasmModule* super_module) { … }
bool ValidFunctionSubtypeDefinition(uint32_t subtype_index,
uint32_t supertype_index,
const WasmModule* sub_module,
const WasmModule* super_module) { … }
HeapType::Representation NullSentinelImpl(HeapType type,
const WasmModule* module) { … }
bool IsNullSentinel(HeapType type) { … }
}
bool ValidSubtypeDefinition(uint32_t subtype_index, uint32_t supertype_index,
const WasmModule* sub_module,
const WasmModule* super_module) { … }
namespace {
bool IsShared(HeapType type, const WasmModule* module) { … }
HeapType::Representation MaybeShared(HeapType::Representation base,
bool shared) { … }
}
V8_EXPORT_PRIVATE bool IsShared(ValueType type, const WasmModule* module) { … }
V8_NOINLINE V8_EXPORT_PRIVATE bool IsSubtypeOfImpl(
ValueType subtype, ValueType supertype, const WasmModule* sub_module,
const WasmModule* super_module) { … }
V8_NOINLINE V8_EXPORT_PRIVATE bool IsHeapSubtypeOfImpl(
HeapType sub_heap, HeapType super_heap, const WasmModule* sub_module,
const WasmModule* super_module) { … }
V8_NOINLINE bool EquivalentTypes(ValueType type1, ValueType type2,
const WasmModule* module1,
const WasmModule* module2) { … }
namespace {
HeapType::Representation CommonAncestor(uint32_t type_index1,
uint32_t type_index2,
const WasmModule* module1,
const WasmModule* module2) { … }
HeapType::Representation CommonAncestorWithAbstract(HeapType heap1,
HeapType heap2,
const WasmModule* module2) { … }
}
V8_EXPORT_PRIVATE TypeInModule Union(ValueType type1, ValueType type2,
const WasmModule* module1,
const WasmModule* module2) { … }
TypeInModule Intersection(ValueType type1, ValueType type2,
const WasmModule* module1,
const WasmModule* module2) { … }
ValueType ToNullSentinel(TypeInModule type) { … }
bool IsSameTypeHierarchy(HeapType type1, HeapType type2,
const WasmModule* module) { … }
}