• Jakob Gruber's avatar
    [coverage] Reduce IncBlockCounter overhead · ae6a47ba
    Jakob Gruber authored
    When collecting JS block coverage, we track block execution counts on
    so-called CoverageInfo objects. Generated bytecode and native code
    contains inlined snippets of code to increment the appropriate
    counters.
    
    These used to be implemented as calls to the IncBlockCounter runtime
    function. Each call incurred the entire CEntry overhead.
    
    This CL reduces that overhead by moving logic over into a new
    IncBlockCounter TFS builtin. The builtin is called directly from
    bytecode, and lowered to the same builtin call for optimized code.
    
    Drive-by: Tweak CoverageInfo layout to generate faster code.
    
    Tbr: jarin@chromium.org
    Bug: v8:9149, v8:6000
    Change-Id: I2d7cb0db649edf7c56b5ef5a4683d27b1c34605c
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1571420Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
    Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
    Reviewed-by: 's avatarPeter Marshall <petermarshall@chromium.org>
    Commit-Queue: Jakob Gruber <jgruber@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#60981}
    ae6a47ba
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...