• Jakob Kummerow's avatar
    [wasm] Fix tier-up budget tracking for recursive calls · 15f372af
    Jakob Kummerow authored
    In the previous implementation, functions overwrote any budget
    decrements caused by recursive invocations of themselves, which
    could cause tier-up decisions for certain unlucky functions to
    get delayed unreasonably long.
    This patch avoids this by working with the on-instance value
    directly instead of caching it in a stack slot. That generates
    the same amount of Liftoff code as the status quo, but handles
    recursive functions properly.
    The "barista3" benchmark's peak performance improves by almost 20%.
    
    Bug: v8:12281
    Change-Id: I8b487a88da99c2d22e132f2cc72bdf36aa5f6e63
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3693710
    Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
    Reviewed-by: 's avatarClemens Backes <clemensb@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#81249}
    15f372af
Name
Last commit
Last update
..
DIR_METADATA Loading commit data...
OWNERS Loading commit data...
runtime-array.cc Loading commit data...
runtime-atomics.cc Loading commit data...
runtime-bigint.cc Loading commit data...
runtime-classes.cc Loading commit data...
runtime-collections.cc Loading commit data...
runtime-compiler.cc Loading commit data...
runtime-date.cc Loading commit data...
runtime-debug.cc Loading commit data...
runtime-forin.cc Loading commit data...
runtime-function.cc Loading commit data...
runtime-futex.cc Loading commit data...
runtime-generator.cc Loading commit data...
runtime-internal.cc Loading commit data...
runtime-intl.cc Loading commit data...
runtime-literals.cc Loading commit data...
runtime-module.cc Loading commit data...
runtime-numbers.cc Loading commit data...
runtime-object.cc Loading commit data...
runtime-operators.cc Loading commit data...
runtime-promise.cc Loading commit data...
runtime-proxy.cc Loading commit data...
runtime-regexp.cc Loading commit data...
runtime-scopes.cc Loading commit data...
runtime-shadow-realm.cc Loading commit data...
runtime-strings.cc Loading commit data...
runtime-symbol.cc Loading commit data...
runtime-temporal.cc Loading commit data...
runtime-test-wasm.cc Loading commit data...
runtime-test.cc Loading commit data...
runtime-trace.cc Loading commit data...
runtime-typedarray.cc Loading commit data...
runtime-utils.h Loading commit data...
runtime-wasm.cc Loading commit data...
runtime-weak-refs.cc Loading commit data...
runtime.cc Loading commit data...
runtime.h Loading commit data...