• jgruber's avatar
    [builtins] Reduce inlining in RegExp builtins · fce2a142
    jgruber authored
    RegExp builtins were the first to be ported to CSA roughly two years
    ago. Back then, we weren't really aware of issues surrounding code
    size and CSA inlining, and thus some of these builtins were bigger
    than they should be.
    
    This CL adds a few new helper builtins and removes inlined calls to
    SubString, RegExpExecInternal, and StringAdd. It significantly
    reduces the size of affected builtins. Minor performance regressions
    due to call overhead are expected.
    
    Before:
    TFS Builtin, RegExpReplace, 20008
    TFS Builtin, RegExpSplit, 17340
    TFS Builtin, RegExpMatchFast, 17064
    TFJ Builtin, RegExpStringIteratorPrototypeNext, 12862
    
    After:
    TFS Builtin, RegExpReplace, 5067
    TFS Builtin, RegExpSplit, 6329
    TFS Builtin, RegExpMatchFast, 8164
    TFJ Builtin, RegExpStringIteratorPrototypeNext, 6652
    
    Bug: v8:5737
    Change-Id: I1c077a084da85bb73c0c5adb7118b941f488e0ec
    Reviewed-on: https://chromium-review.googlesource.com/1127796Reviewed-by: 's avatarPeter Marshall <petermarshall@chromium.org>
    Commit-Queue: Jakob Gruber <jgruber@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#54293}
    fce2a142
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...
.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...