• Jakob Kummerow's avatar
    [wasm] AdaptiveMap for DecodedNameSection · 838a220c
    Jakob Kummerow authored
    This is a performance improvement; no change in functional
    behavior is intended.
    AdaptiveMap is an abstraction over a std::map or a std::vector:
    after being initialized iteratively with a set of entries, it
    can switch to dense vector-based storage if that would be more
    efficient.
    The motivation is that we expect most name sections, if they
    are present at all, to give fairly complete information, so the
    dense mode will likely be the typical case. However, it's easy
    enough to support sparse mode as well, and parsing the name
    section into a std::map at first is particularly convenient for
    cases where we can't guess the expected number of entries, such
    as for function locals.
    
    Change-Id: Ia17f27576a3061eb05c912f7081411d6f38137e6
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3726150Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
    Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#81474}
    838a220c
module-decoder.cc 99.9 KB