• Andreas Haas's avatar
    [wasm][anyref] Cache export wrappers per signature · d56ee2e3
    Andreas Haas authored
    Up until now, we cached export wrappers per export index. With the
    anyref proposal potentially many more functions will need export
    wrappers, e.g. any function that is stored in a table, and any
    function accessed by the new ref.func instruction.
    
    With this CL, we change the caching scheme an do the caching per
    signature. Thereby we can guarantee that any export wrapper which
    potentially exists can be stored in the cache.
    
    For cctests which use wasm-run-utils, we don't know the size of the
    cache anymore ahead of time. However, we assume that no more than
    5 signatures will be used in any cctest. If this assumption is not
    true, we can just adjust the number.
    
    The cache is now accessed in all code paths where we need an export
    wrapper.
    
    Bug: chromium:962850
    
    Change-Id: I32df60dfa7801d1e71f7d837da091f388198af1f
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1615247
    Commit-Queue: Andreas Haas <ahaas@chromium.org>
    Reviewed-by: 's avatarClemens Hammacher <clemensh@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#61752}
    d56ee2e3
module-instantiate.cc 66 KB