• Clemens Backes's avatar
    [wasm] Fix regression caused by multiple code spaces · 44c3b7b5
    Clemens Backes authored
    The {GetNearRuntimeStubEntry} and {GetNearCallTargetForFunction}
    functions need to find the code space that contains the current
    function. This lookup requires a lock and is non-trivial. The repeated
    lookup caused severe regressions.
    
    This CL introduces a {JumpTablesRef} struct which holds information
    about the jump tables to use. It can be looked up once and then used
    for a whole function or even several functions within the same code
    space (in {NativeModule::AddCompiledCode} which adds a whole vector of
    compilation results).
    
    This fixes the regressions.
    
    R=ahaas@chromium.org
    
    Bug: chromium:1004262, v8:9477
    Change-Id: I50bd8327a131e3bee79d86b6d7e867a506959312
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1840153
    Commit-Queue: Clemens Backes <clemensb@chromium.org>
    Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#64129}
    44c3b7b5
wasm-code-manager.h 30 KB