• tzik's avatar
    Mark a non-primary path of ExtractHandlerContext as deferred · 06770cef
    tzik authored
    The performance regression comes from the extra time of
    ExtractHandlerContext called by TriggerPromiseReaction,
    On the previous code, it takes the current Context from Isolate,
    and on the typical case of the new code, the Context is taken from
    the promise reaction function, that adds a few memory read ops and
    a few conditional branches.
    
    This CL adds Label::kDeferred to non-typical cases of
    ExtractHandlerContext, so that newly added instructions have smaller
    impact under the speculative execution.
    On a local benchmark, this fixes half of the regression.
    
    Bug: chromium:936717
    Change-Id: I34ce858f77d7d604dd596711a239160ed8dac383
    Reviewed-on: https://chromium-review.googlesource.com/c/1496774
    Commit-Queue: Taiju Tsuiki <tzik@chromium.org>
    Reviewed-by: 's avatarBenedikt Meurer <bmeurer@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#59964}
    06770cef
Name
Last commit
Last update
benchmarks Loading commit data...
build_overrides Loading commit data...
custom_deps Loading commit data...
docs Loading commit data...
gni Loading commit data...
include Loading commit data...
infra Loading commit data...
samples Loading commit data...
src Loading commit data...
test Loading commit data...
testing Loading commit data...
third_party Loading commit data...
tools Loading commit data...
.clang-format Loading commit data...
.clang-tidy Loading commit data...
.editorconfig Loading commit data...
.git-blame-ignore-revs Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
.gn Loading commit data...
.vpython Loading commit data...
.ycm_extra_conf.py Loading commit data...
AUTHORS Loading commit data...
BUILD.gn Loading commit data...
CODE_OF_CONDUCT.md Loading commit data...
ChangeLog Loading commit data...
DEPS Loading commit data...
LICENSE Loading commit data...
LICENSE.fdlibm Loading commit data...
LICENSE.strongtalk Loading commit data...
LICENSE.v8 Loading commit data...
LICENSE.valgrind Loading commit data...
OWNERS Loading commit data...
PRESUBMIT.py Loading commit data...
README.md Loading commit data...
WATCHLISTS Loading commit data...
codereview.settings Loading commit data...
snapshot_toolchain.gni Loading commit data...