• 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
builtins-definitions.h 108 KB