![]() |
v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
|
#include <wasm-code-manager.h>
Classes | |
struct | CodeSpaceData |
struct | JumpTablesRef |
Public Types | |
enum class | RemoveFilter { kRemoveDebugCode , kRemoveNonDebugCode , kRemoveLiftoffCode , kRemoveTurbofanCode , kRemoveAllCode } |
enum class | JumpTableType { kJumpTable , kFarJumpTable , kLazyCompileTable } |
using | CallIndirectTargetMap = absl::flat_hash_map<WasmCodePointer, uint32_t> |
Static Public Attributes | |
static constexpr ExternalPointerTag | kManagedTag = kWasmNativeModuleTag |
static constexpr bool | kNeedsFarJumpsBetweenCodeSpaces = false |
Private Member Functions | |
NativeModule (WasmEnabledFeatures enabled_features, WasmDetectedFeatures detected_features, CompileTimeImports compile_imports, VirtualMemory code_space, std::shared_ptr< const WasmModule > module, std::shared_ptr< Counters > async_counters, std::shared_ptr< NativeModule > *shared_this) | |
std::unique_ptr< WasmCode > | AddCodeWithCodeSpace (int index, const CodeDesc &desc, int stack_slots, int ool_spill_count, uint32_t tagged_parameter_slots, base::Vector< const uint8_t > protected_instructions_data, base::Vector< const uint8_t > source_position_table, base::Vector< const uint8_t > inlining_positions, base::Vector< const uint8_t > deopt_data, WasmCode::Kind kind, ExecutionTier tier, ForDebugging for_debugging, bool frame_has_feedback_slot, base::Vector< uint8_t > code_space, const JumpTablesRef &jump_tables_ref) |
WasmCode * | CreateEmptyJumpTableLocked (int jump_table_size, JumpTableType type) |
WasmCode * | CreateEmptyJumpTableInRegionLocked (int jump_table_size, base::AddressRegion, JumpTableType type) |
JumpTablesRef | FindJumpTablesForRegionLocked (base::AddressRegion) const |
void | UpdateCodeSize (size_t, ExecutionTier, ForDebugging) |
void | PatchJumpTablesLocked (uint32_t slot_index, Address target, Address code_pointer_table_target, uint64_t signature_hash) |
void | PatchJumpTableLocked (WritableJumpTablePair &jump_table_pair, const CodeSpaceData &, uint32_t slot_index, Address target) |
void | AddCodeSpaceLocked (base::AddressRegion) |
WasmCode * | PublishCodeLocked (std::unique_ptr< WasmCode >, AssumptionsJournal *) |
void | TransferNewOwnedCodeLocked () const |
bool | should_update_code_table (WasmCode *new_code, WasmCode *prior_code) const |
Friends | |
class | WasmCode |
class | WasmCodeAllocator |
class | WasmCodeManager |
class | CodeSpaceWriteScope |
Definition at line 579 of file wasm-code-manager.h.
using v8::internal::wasm::NativeModule::CallIndirectTargetMap = absl::flat_hash_map<WasmCodePointer, uint32_t> |
Definition at line 699 of file wasm-code-manager.h.
|
strong |
Enumerator | |
---|---|
kJumpTable | |
kFarJumpTable | |
kLazyCompileTable |
Definition at line 865 of file wasm-code-manager.h.
|
strong |
Enumerator | |
---|---|
kRemoveDebugCode | |
kRemoveNonDebugCode | |
kRemoveLiftoffCode | |
kRemoveTurbofanCode | |
kRemoveAllCode |
Definition at line 812 of file wasm-code-manager.h.
|
delete |
v8::internal::wasm::NativeModule::~NativeModule | ( | ) |
|
private |
std::unique_ptr< WasmCode > v8::internal::wasm::NativeModule::AddCode | ( | int | index, |
const CodeDesc & | desc, | ||
int | stack_slots, | ||
int | ool_spill_count, | ||
uint32_t | tagged_parameter_slots, | ||
base::Vector< const uint8_t > | protected_instructions, | ||
base::Vector< const uint8_t > | source_position_table, | ||
base::Vector< const uint8_t > | inlining_positions, | ||
base::Vector< const uint8_t > | deopt_data, | ||
WasmCode::Kind | kind, | ||
ExecutionTier | tier, | ||
ForDebugging | for_debugging ) |
WasmCode * v8::internal::wasm::NativeModule::AddCodeForTesting | ( | DirectHandle< Code > | code, |
uint64_t | signature_hash ) |
|
private |
Definition at line 1787 of file wasm-code-manager.cc.
|
private |
Definition at line 1268 of file wasm-code-manager.cc.
std::vector< UnpublishedWasmCode > v8::internal::wasm::NativeModule::AddCompiledCode | ( | base::Vector< WasmCompilationResult > | results | ) |
UnpublishedWasmCode v8::internal::wasm::NativeModule::AddCompiledCode | ( | WasmCompilationResult & | result | ) |
Definition at line 2583 of file wasm-code-manager.cc.
std::unique_ptr< WasmCode > v8::internal::wasm::NativeModule::AddDeserializedCode | ( | int | index, |
base::Vector< uint8_t > | instructions, | ||
int | stack_slots, | ||
int | ool_spills, | ||
uint32_t | tagged_parameter_slots, | ||
int | safepoint_table_offset, | ||
int | handler_table_offset, | ||
int | constant_pool_offset, | ||
int | code_comments_offset, | ||
int | unpadded_binary_size, | ||
base::Vector< const uint8_t > | protected_instructions_data, | ||
base::Vector< const uint8_t > | reloc_info, | ||
base::Vector< const uint8_t > | source_position_table, | ||
base::Vector< const uint8_t > | inlining_positions, | ||
base::Vector< const uint8_t > | deopt_data, | ||
WasmCode::Kind | kind, | ||
ExecutionTier | tier ) |
Definition at line 1571 of file wasm-code-manager.cc.
void v8::internal::wasm::NativeModule::AddLazyCompilationTimeSample | ( | int64_t | sample | ) |
Definition at line 1931 of file wasm-code-manager.cc.
|
inline |
Definition at line 781 of file wasm-code-manager.h.
std::pair< base::Vector< uint8_t >, NativeModule::JumpTablesRef > v8::internal::wasm::NativeModule::AllocateForDeserializedCode | ( | size_t | total_code_size | ) |
Definition at line 1562 of file wasm-code-manager.cc.
|
inline |
|
inline |
|
inline |
|
inline |
Definition at line 850 of file wasm-code-manager.h.
|
private |
Definition at line 1684 of file wasm-code-manager.cc.
|
private |
Definition at line 1662 of file wasm-code-manager.cc.
NativeModule::CallIndirectTargetMap v8::internal::wasm::NativeModule::CreateIndirectCallTargetToFunctionIndexMap | ( | ) | const |
Definition at line 2057 of file wasm-code-manager.cc.
|
inline |
|
inline |
|
inline |
size_t v8::internal::wasm::NativeModule::EstimateCurrentMemoryConsumption | ( | ) | const |
Definition at line 2819 of file wasm-code-manager.cc.
|
inline |
|
inline |
|
private |
Definition at line 1982 of file wasm-code-manager.cc.
void v8::internal::wasm::NativeModule::FreeCode | ( | base::Vector< WasmCode *const > | codes | ) |
Definition at line 2773 of file wasm-code-manager.cc.
void v8::internal::wasm::NativeModule::FreeCodePointerTableHandles | ( | ) |
Definition at line 1240 of file wasm-code-manager.cc.
|
inline |
Definition at line 730 of file wasm-code-manager.h.
WasmCode * v8::internal::wasm::NativeModule::GetCode | ( | uint32_t | index | ) | const |
Definition at line 1635 of file wasm-code-manager.cc.
WasmCodePointer v8::internal::wasm::NativeModule::GetCodePointerHandle | ( | int | index | ) | const |
Definition at line 2087 of file wasm-code-manager.cc.
DebugInfo * v8::internal::wasm::NativeModule::GetDebugInfo | ( | ) |
uint32_t v8::internal::wasm::NativeModule::GetFunctionIndexFromJumpTableSlot | ( | Address | slot_address | ) | const |
Address v8::internal::wasm::NativeModule::GetJumpTableEntryForBuiltin | ( | Builtin | builtin, |
const JumpTablesRef & | jump_tables ) const |
Definition at line 2031 of file wasm-code-manager.cc.
NamesProvider * v8::internal::wasm::NativeModule::GetNamesProvider | ( | ) |
Definition at line 2809 of file wasm-code-manager.cc.
Address v8::internal::wasm::NativeModule::GetNearCallTargetForFunction | ( | uint32_t | func_index, |
const JumpTablesRef & | jump_tables ) const |
Definition at line 2024 of file wasm-code-manager.cc.
size_t v8::internal::wasm::NativeModule::GetNumberOfCodeSpacesForTesting | ( | ) | const |
Definition at line 2793 of file wasm-code-manager.cc.
WasmModuleSourceMap * v8::internal::wasm::NativeModule::GetWasmSourceMap | ( | ) | const |
|
inline |
Definition at line 912 of file wasm-code-manager.h.
bool v8::internal::wasm::NativeModule::HasCode | ( | uint32_t | index | ) | const |
Definition at line 1642 of file wasm-code-manager.cc.
bool v8::internal::wasm::NativeModule::HasCodeWithTier | ( | uint32_t | index, |
ExecutionTier | tier ) const |
Definition at line 1647 of file wasm-code-manager.cc.
bool v8::internal::wasm::NativeModule::HasDebugInfo | ( | ) | const |
|
inline |
void v8::internal::wasm::NativeModule::InitializeCodePointerTableHandles | ( | uint32_t | num_wasm_functions | ) |
Definition at line 1251 of file wasm-code-manager.cc.
void v8::internal::wasm::NativeModule::InitializeJumpTableForLazyCompilation | ( | uint32_t | num_wasm_functions | ) |
Definition at line 1140 of file wasm-code-manager.cc.
|
inline |
|
inline |
|
inline |
|
inline |
Definition at line 733 of file wasm-code-manager.h.
|
inline |
Definition at line 736 of file wasm-code-manager.h.
|
inline |
Definition at line 1011 of file wasm-code-manager.cc.
Definition at line 1969 of file wasm-code-manager.cc.
|
inline |
Definition at line 755 of file wasm-code-manager.h.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Definition at line 745 of file wasm-code-manager.h.
|
delete |
|
private |
Definition at line 1758 of file wasm-code-manager.cc.
|
private |
Definition at line 1734 of file wasm-code-manager.cc.
void v8::internal::wasm::NativeModule::PrintCurrentMemoryConsumptionEstimate | ( | ) | const |
Definition at line 2880 of file wasm-code-manager.cc.
std::vector< WasmCode * > v8::internal::wasm::NativeModule::PublishCode | ( | base::Vector< UnpublishedWasmCode > | unpublished_codes | ) |
WasmCode * v8::internal::wasm::NativeModule::PublishCode | ( | UnpublishedWasmCode | unpublished_code | ) |
Definition at line 1374 of file wasm-code-manager.cc.
|
private |
Definition at line 1431 of file wasm-code-manager.cc.
std::pair< size_t, size_t > v8::internal::wasm::NativeModule::RemoveCompiledCode | ( | RemoveFilter | filter | ) |
Definition at line 2725 of file wasm-code-manager.cc.
|
inline |
Definition at line 908 of file wasm-code-manager.h.
Definition at line 720 of file wasm-code-manager.h.
void v8::internal::wasm::NativeModule::SetDebugState | ( | DebugState | new_debug_state | ) |
void v8::internal::wasm::NativeModule::SetWasmSourceMap | ( | std::unique_ptr< WasmModuleSourceMap > | source_map | ) |
void v8::internal::wasm::NativeModule::SetWireBytes | ( | base::OwnedVector< const uint8_t > | wire_bytes | ) |
|
inline |
Definition at line 726 of file wasm-code-manager.h.
|
private |
Definition at line 1504 of file wasm-code-manager.cc.
|
inline |
Definition at line 763 of file wasm-code-manager.h.
|
inline |
Definition at line 770 of file wasm-code-manager.h.
std::vector< WasmCode * > v8::internal::wasm::NativeModule::SnapshotAllOwnedCode | ( | ) | const |
Definition at line 1624 of file wasm-code-manager.cc.
std::pair< std::vector< WasmCode * >, std::vector< WellKnownImport > > v8::internal::wasm::NativeModule::SnapshotCodeTable | ( | ) | const |
Definition at line 1610 of file wasm-code-manager.cc.
|
inline |
Definition at line 749 of file wasm-code-manager.h.
size_t v8::internal::wasm::NativeModule::SumLiftoffCodeSizeForTesting | ( | ) | const |
|
inline |
|
private |
Definition at line 1945 of file wasm-code-manager.cc.
|
inline |
Definition at line 877 of file wasm-code-manager.h.
|
inline |
Definition at line 739 of file wasm-code-manager.h.
|
private |
void v8::internal::wasm::NativeModule::UpdateWellKnownImports | ( | base::Vector< WellKnownImport > | entries | ) |
void v8::internal::wasm::NativeModule::UseLazyStubLocked | ( | uint32_t | func_index | ) |
Definition at line 1185 of file wasm-code-manager.cc.
|
inline |
|
friend |
Definition at line 926 of file wasm-code-manager.h.
|
friend |
Definition at line 923 of file wasm-code-manager.h.
|
friend |
Definition at line 924 of file wasm-code-manager.h.
|
friend |
Definition at line 925 of file wasm-code-manager.h.
|
mutableprivate |
Definition at line 1053 of file wasm-code-manager.h.
|
private |
Definition at line 1007 of file wasm-code-manager.h.
|
private |
Definition at line 1077 of file wasm-code-manager.h.
|
private |
Definition at line 1080 of file wasm-code-manager.h.
|
private |
Definition at line 1083 of file wasm-code-manager.h.
|
private |
Definition at line 1072 of file wasm-code-manager.h.
|
private |
Definition at line 1042 of file wasm-code-manager.h.
|
private |
Definition at line 1015 of file wasm-code-manager.h.
|
private |
Definition at line 1089 of file wasm-code-manager.h.
|
private |
Definition at line 1093 of file wasm-code-manager.h.
|
private |
Definition at line 1012 of file wasm-code-manager.h.
|
private |
Definition at line 1003 of file wasm-code-manager.h.
|
private |
Definition at line 1121 of file wasm-code-manager.h.
|
private |
Definition at line 1120 of file wasm-code-manager.h.
|
staticconstexpr |
Definition at line 581 of file wasm-code-manager.h.
|
staticconstexpr |
Definition at line 588 of file wasm-code-manager.h.
|
private |
Definition at line 1098 of file wasm-code-manager.h.
|
private |
Definition at line 1037 of file wasm-code-manager.h.
|
private |
Definition at line 1099 of file wasm-code-manager.h.
|
private |
Definition at line 1100 of file wasm-code-manager.h.
|
private |
Definition at line 1118 of file wasm-code-manager.h.
|
private |
Definition at line 1033 of file wasm-code-manager.h.
|
private |
Definition at line 1030 of file wasm-code-manager.h.
|
private |
Definition at line 1106 of file wasm-code-manager.h.
|
private |
Definition at line 1019 of file wasm-code-manager.h.
|
private |
Definition at line 1091 of file wasm-code-manager.h.
|
mutableprivate |
Definition at line 1066 of file wasm-code-manager.h.
|
private |
Definition at line 1104 of file wasm-code-manager.h.
|
mutableprivate |
Definition at line 1061 of file wasm-code-manager.h.
|
private |
Definition at line 1107 of file wasm-code-manager.h.
|
private |
Definition at line 1111 of file wasm-code-manager.h.
|
private |
Definition at line 1021 of file wasm-code-manager.h.
|
private |
Definition at line 1105 of file wasm-code-manager.h.
|
private |
Definition at line 1045 of file wasm-code-manager.h.
|
private |
Definition at line 1101 of file wasm-code-manager.h.
|
private |
Definition at line 1025 of file wasm-code-manager.h.