![]() |
v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
|
#include <wasm-engine.h>
Classes | |
struct | CurrentGCInfo |
struct | IsolateInfo |
class | LogCodesTask |
struct | NativeModuleInfo |
Public Types | |
using | DeadCodeMap = std::unordered_map<NativeModule*, std::vector<WasmCode*>> |
Static Public Member Functions | |
static void | InitializeOncePerProcess () |
static void | GlobalTearDown () |
static WasmOrphanedGlobalHandle * | NewOrphanedGlobalHandle (WasmOrphanedGlobalHandle **pointer) |
static void | FreeAllOrphanedGlobalHandles (WasmOrphanedGlobalHandle *start) |
static Address | GetNondeterminismAddr () |
static bool | had_nondeterminism () |
static void | set_had_nondeterminism () |
static bool | clear_nondeterminism () |
Private Member Functions | |
AsyncCompileJob * | CreateAsyncCompileJob (Isolate *isolate, WasmEnabledFeatures enabled, CompileTimeImports compile_imports, base::OwnedVector< const uint8_t > bytes, DirectHandle< Context > context, const char *api_method_name, std::shared_ptr< CompilationResultResolver > resolver, int compilation_id) |
void | TriggerCodeGC_Locked (size_t dead_code_limit) |
void | TriggerGC (int8_t gc_sequence_index) |
bool | RemoveIsolateFromCurrentGC (Isolate *) |
void | PotentiallyFinishCurrentGC () |
void | EnableCodeLogging (NativeModule *) |
void | DisableCodeLogging (NativeModule *) |
Private Attributes | |
AccountingAllocator | allocator_ |
std::atomic< int > | next_compilation_id_ {0} |
std::atomic< int > | deopts_executed_ {0} |
TypeCanonicalizer | type_canonicalizer_ |
compiler::WasmCallDescriptors | call_descriptors_ |
base::Mutex | mutex_ |
std::unordered_map< AsyncCompileJob *, std::unique_ptr< AsyncCompileJob > > | async_compile_jobs_ |
std::shared_ptr< CompilationStatistics > | compilation_stats_ |
std::unique_ptr< CodeTracer > | code_tracer_ |
std::unordered_map< Isolate *, std::unique_ptr< IsolateInfo > > | isolates_ |
std::unordered_map< NativeModule *, std::unique_ptr< NativeModuleInfo > > | native_modules_ |
std::shared_ptr< OperationsBarrier > | operations_barrier_ |
std::atomic< size_t > | num_modules_with_code_logging_ {0} |
size_t | new_potentially_dead_code_size_ = 0 |
std::unordered_set< WasmCode * > | potentially_dead_code_ |
int8_t | num_code_gcs_triggered_ = 0 |
std::unique_ptr< CurrentGCInfo > | current_gc_info_ |
NativeModuleCache | native_module_cache_ |
Static Private Attributes | |
static std::atomic< int32_t > | had_nondeterminism_ {0} |
Definition at line 162 of file wasm-engine.h.
using v8::internal::wasm::WasmEngine::DeadCodeMap = std::unordered_map<NativeModule*, std::vector<WasmCode*>> |
Definition at line 381 of file wasm-engine.h.
v8::internal::wasm::WasmEngine::WasmEngine | ( | ) |
|
delete |
v8::internal::wasm::WasmEngine::~WasmEngine | ( | ) |
Definition at line 1244 of file wasm-engine.cc.
Definition at line 1826 of file wasm-engine.cc.
|
inline |
void v8::internal::wasm::WasmEngine::AsyncCompile | ( | Isolate * | isolate, |
WasmEnabledFeatures | enabled, | ||
CompileTimeImports | compile_imports, | ||
std::shared_ptr< CompilationResultResolver > | resolver, | ||
base::OwnedVector< const uint8_t > | bytes, | ||
const char * | api_method_name_for_errors ) |
void v8::internal::wasm::WasmEngine::AsyncInstantiate | ( | Isolate * | isolate, |
std::unique_ptr< InstantiationResultResolver > | resolver, | ||
DirectHandle< WasmModuleObject > | module_object, | ||
MaybeDirectHandle< JSReceiver > | imports ) |
|
inline |
|
inlinestatic |
Definition at line 438 of file wasm-engine.h.
void v8::internal::wasm::WasmEngine::CompileFunction | ( | Counters * | counters, |
NativeModule * | native_module, | ||
uint32_t | function_index, | ||
ExecutionTier | tier ) |
|
private |
void v8::internal::wasm::WasmEngine::DecodeAllNameSections | ( | CanonicalTypeNamesProvider * | target | ) |
void v8::internal::wasm::WasmEngine::DeleteCompileJobsOnContext | ( | DirectHandle< Context > | context | ) |
Definition at line 1191 of file wasm-engine.cc.
|
private |
Definition at line 1507 of file wasm-engine.cc.
void v8::internal::wasm::WasmEngine::DumpAndResetTurboStatistics | ( | ) |
void v8::internal::wasm::WasmEngine::DumpTurboStatistics | ( | ) |
Definition at line 1141 of file wasm-engine.cc.
Definition at line 1478 of file wasm-engine.cc.
|
private |
size_t v8::internal::wasm::WasmEngine::EstimateCurrentMemoryConsumption | ( | ) | const |
Definition at line 2025 of file wasm-engine.cc.
DirectHandle< WasmModuleObject > v8::internal::wasm::WasmEngine::FinalizeTranslatedAsmJs | ( | Isolate * | isolate, |
DirectHandle< AsmWasmData > | asm_wasm_data, | ||
DirectHandle< Script > | script ) |
|
static |
void v8::internal::wasm::WasmEngine::FreeDeadCode | ( | const DeadCodeMap & | dead_code, |
std::vector< WasmCode * > & | dead_wrappers ) |
Definition at line 1878 of file wasm-engine.cc.
void v8::internal::wasm::WasmEngine::FreeDeadCodeLocked | ( | const DeadCodeMap & | dead_code, |
std::vector< WasmCode * > & | dead_wrappers ) |
Definition at line 1884 of file wasm-engine.cc.
void v8::internal::wasm::WasmEngine::FreeNativeModule | ( | NativeModule * | native_module | ) |
Definition at line 1697 of file wasm-engine.cc.
std::shared_ptr< OperationsBarrier > v8::internal::wasm::WasmEngine::GetBarrierForBackgroundCompile | ( | ) |
Definition at line 1932 of file wasm-engine.cc.
CodeTracer * v8::internal::wasm::WasmEngine::GetCodeTracer | ( | ) |
int v8::internal::wasm::WasmEngine::GetDeoptsExecutedCount | ( | ) | const |
size_t v8::internal::wasm::WasmEngine::GetLiftoffCodeSizeForTesting | ( | ) |
Definition at line 1113 of file wasm-engine.cc.
|
inlinestatic |
Definition at line 422 of file wasm-engine.h.
DirectHandle< Script > v8::internal::wasm::WasmEngine::GetOrCreateScript | ( | Isolate * | isolate, |
const std::shared_ptr< NativeModule > & | native_module, | ||
base::Vector< const char > | source_url ) |
Definition at line 1902 of file wasm-engine.cc.
std::shared_ptr< CompilationStatistics > v8::internal::wasm::WasmEngine::GetOrCreateTurboStatistics | ( | ) |
Definition at line 1123 of file wasm-engine.cc.
bool v8::internal::wasm::WasmEngine::GetStreamingCompilationOwnership | ( | size_t | prefix_hash, |
const CompileTimeImports & | compile_imports ) |
|
static |
Definition at line 2115 of file wasm-engine.cc.
|
inlinestatic |
Definition at line 427 of file wasm-engine.h.
Definition at line 1182 of file wasm-engine.cc.
DirectHandle< WasmModuleObject > v8::internal::wasm::WasmEngine::ImportNativeModule | ( | Isolate * | isolate, |
std::shared_ptr< NativeModule > | shared_module, | ||
base::Vector< const char > | source_url ) |
int v8::internal::wasm::WasmEngine::IncrementDeoptsExecutedCount | ( | ) |
Definition at line 2079 of file wasm-engine.cc.
|
static |
Definition at line 2101 of file wasm-engine.cc.
void v8::internal::wasm::WasmEngine::LogCode | ( | base::Vector< WasmCode * > | code_vec | ) |
Definition at line 1373 of file wasm-engine.cc.
Definition at line 1522 of file wasm-engine.cc.
Definition at line 1431 of file wasm-engine.cc.
std::shared_ptr< NativeModule > v8::internal::wasm::WasmEngine::MaybeGetNativeModule | ( | ModuleOrigin | origin, |
base::Vector< const uint8_t > | wire_bytes, | ||
const CompileTimeImports & | compile_imports, | ||
Isolate * | isolate ) |
Definition at line 1610 of file wasm-engine.cc.
size_t v8::internal::wasm::WasmEngine::NativeModuleCount | ( | ) | const |
Definition at line 149 of file wasm-engine.cc.
std::shared_ptr< NativeModule > v8::internal::wasm::WasmEngine::NewNativeModule | ( | Isolate * | isolate, |
WasmEnabledFeatures | enabled_features, | ||
WasmDetectedFeatures | detected_features, | ||
CompileTimeImports | compile_imports, | ||
std::shared_ptr< const WasmModule > | module, | ||
size_t | code_size_estimate ) |
Definition at line 1549 of file wasm-engine.cc.
|
static |
Definition at line 125 of file wasm-engine.cc.
|
delete |
|
private |
Definition at line 1976 of file wasm-engine.cc.
void v8::internal::wasm::WasmEngine::PrintCurrentMemoryConsumptionEstimate | ( | ) | const |
Definition at line 2069 of file wasm-engine.cc.
std::unique_ptr< AsyncCompileJob > v8::internal::wasm::WasmEngine::RemoveCompileJob | ( | AsyncCompileJob * | job | ) |
Definition at line 1297 of file wasm-engine.cc.
Definition at line 1970 of file wasm-engine.cc.
void v8::internal::wasm::WasmEngine::ReportLiveCodeForGC | ( | Isolate * | isolate, |
std::unordered_set< WasmCode * > & | live_code ) |
Definition at line 1751 of file wasm-engine.cc.
Definition at line 1793 of file wasm-engine.cc.
void v8::internal::wasm::WasmEngine::SampleTopTierCodeSizeInAllIsolates | ( | const std::shared_ptr< NativeModule > & | ) |
|
inlinestatic |
std::shared_ptr< StreamingDecoder > v8::internal::wasm::WasmEngine::StartStreamingCompilation | ( | Isolate * | isolate, |
WasmEnabledFeatures | enabled, | ||
CompileTimeImports | compile_imports, | ||
DirectHandle< Context > | context, | ||
const char * | api_method_name, | ||
std::shared_ptr< CompilationResultResolver > | resolver ) |
Definition at line 852 of file wasm-engine.cc.
void v8::internal::wasm::WasmEngine::StreamingCompilationFailed | ( | size_t | prefix_hash, |
const CompileTimeImports & | compile_imports ) |
Definition at line 1692 of file wasm-engine.cc.
MaybeDirectHandle< WasmModuleObject > v8::internal::wasm::WasmEngine::SyncCompile | ( | Isolate * | isolate, |
WasmEnabledFeatures | enabled, | ||
CompileTimeImports | compile_imports, | ||
ErrorThrower * | thrower, | ||
base::OwnedVector< const uint8_t > | bytes ) |
Definition at line 669 of file wasm-engine.cc.
MaybeHandle< AsmWasmData > v8::internal::wasm::WasmEngine::SyncCompileTranslatedAsmJs | ( | Isolate * | isolate, |
ErrorThrower * | thrower, | ||
base::OwnedVector< const uint8_t > | bytes, | ||
DirectHandle< Script > | script, | ||
base::Vector< const uint8_t > | asm_js_offset_table_bytes, | ||
DirectHandle< HeapNumber > | uses_bitset, | ||
LanguageMode | language_mode ) |
Definition at line 603 of file wasm-engine.cc.
MaybeDirectHandle< WasmInstanceObject > v8::internal::wasm::WasmEngine::SyncInstantiate | ( | Isolate * | isolate, |
ErrorThrower * | thrower, | ||
DirectHandle< WasmModuleObject > | module_object, | ||
MaybeDirectHandle< JSReceiver > | imports, | ||
MaybeDirectHandle< JSArrayBuffer > | memory ) |
Definition at line 743 of file wasm-engine.cc.
bool v8::internal::wasm::WasmEngine::SyncValidate | ( | Isolate * | isolate, |
WasmEnabledFeatures | enabled, | ||
CompileTimeImports | compile_imports, | ||
base::Vector< const uint8_t > | bytes ) |
Definition at line 1845 of file wasm-engine.cc.
void v8::internal::wasm::WasmEngine::TriggerCodeGCForTesting | ( | ) |
Definition at line 1865 of file wasm-engine.cc.
|
private |
Definition at line 1936 of file wasm-engine.cc.
|
inline |
std::shared_ptr< NativeModule > v8::internal::wasm::WasmEngine::UpdateNativeModuleCache | ( | bool | has_error, |
std::shared_ptr< NativeModule > | native_module, | ||
Isolate * | isolate ) |
Definition at line 1645 of file wasm-engine.cc.
|
private |
Definition at line 482 of file wasm-engine.h.
|
private |
Definition at line 508 of file wasm-engine.h.
|
private |
Definition at line 496 of file wasm-engine.h.
|
private |
Definition at line 511 of file wasm-engine.h.
|
private |
Definition at line 510 of file wasm-engine.h.
|
private |
Definition at line 539 of file wasm-engine.h.
|
private |
Definition at line 492 of file wasm-engine.h.
|
staticprivate |
Definition at line 480 of file wasm-engine.h.
|
private |
Definition at line 514 of file wasm-engine.h.
|
mutableprivate |
Definition at line 500 of file wasm-engine.h.
|
private |
Definition at line 541 of file wasm-engine.h.
|
private |
Definition at line 518 of file wasm-engine.h.
|
private |
Definition at line 530 of file wasm-engine.h.
|
private |
Definition at line 489 of file wasm-engine.h.
|
private |
Definition at line 535 of file wasm-engine.h.
|
private |
Definition at line 526 of file wasm-engine.h.
|
private |
Definition at line 520 of file wasm-engine.h.
|
private |
Definition at line 534 of file wasm-engine.h.
|
private |
Definition at line 494 of file wasm-engine.h.