• Benedikt Meurer's avatar
    [async] Reduce generated size of `await` builtins. · 8201da29
    Benedikt Meurer authored
    There's a AsyncBuiltinsAssembler::InitializeNativeClosure() helper which
    is used by the `await` builtins to initialize the native closures, which
    are registered as fulfill/reject handlers. This helper initializes a
    JSFunction based on the builtin SharedFunctionInfo. Since we are dealing
    with builtins here, there's no point in using the fully generic helper
    CodeStubAssembler::GetSharedFunctionInfoCode(), but we can immediately
    assume that the SharedFunctionInfo::function_data() field contains a Smi
    builtin index (guarded by TNode CASTs).
    
    This almost cuts the generated code size for the `await` builtins in a
    half, and might also yield some performance improvements due to reduced
    register and instruction cache pressure.
    
    Bug: v8:7253, v8:8238
    Change-Id: I3415c2f9e0f04a7154c4bf4c3fe8156854dbfe13
    Reviewed-on: https://chromium-review.googlesource.com/c/1281604Reviewed-by: 's avatarSathya Gunasekaran <gsathya@chromium.org>
    Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#56662}
    8201da29
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...