• Benedikt Meurer's avatar
    [ic] Collect new.target feedback for Construct bytecodes. · 650d65c9
    Benedikt Meurer authored
    Change the CALL_IC machinery inside of Ignition to collect new.target
    feedback for Construct and ConstructWithSpread bytecodes instead of
    collecting feedback about the target, and adapt TurboFan's JSCallReducer
    to consume feedback for new.target instead of target on JSConstruct
    nodes.
    
    This enables TurboFan to inline JSCreate - and thus the actual instance
    allocation - into derived leaf constructors even if the leaf constructor
    itself is not inlined, and thereby removes this weird performance cliff.
    The feedback for target in case of class constructors is provided by
    the function context specialization, and in case of `new A`, we can
    just use the feedback for new.target, as both target and new.target are
    A in that case.
    
    Bug: v8:5517, v8:6399, v8:6679
    Change-Id: I0475e2500e787fd672ed037ac0faed78a8fa5dc0
    Reviewed-on: https://chromium-review.googlesource.com/604790Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
    Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#47210}
    650d65c9
Name
Last commit
Last update
benchmarks Loading commit data...
build_overrides Loading commit data...
docs Loading commit data...
gni Loading commit data...
gypfiles 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...
.editorconfig Loading commit data...
.gitignore Loading commit data...
.gn 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...
Makefile Loading commit data...
Makefile.android 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...