• Benedikt Meurer's avatar
    [turbofan] Inline StringCharCodeAt like Crankshaft did. · 93d67d20
    Benedikt Meurer authored
    This avoids the call to the StringCharCodeAt builtin from
    within TurboFan optimized code and instead emits a loop
    that does the character load. This (together with previously
    reverted CL to the JSCallReducer) almost completely recovers
    the performance regression caused when we shipped TurboFan.
    
    Without untrusted code mitigations the benchmark goes from
    580ms to roughly 490ms, and with the patch to the JSCallReducer
    the time goes down to 280ms, which is very close to what we
    had with Crankshaft.
    
    This also renames the LoadFromString helper method in the
    EffectControlLinearizer to LoadFromSeqString to make it
    clear what it does.
    
    Bug: v8:7326
    Change-Id: Ibe0ec1847911a234f244bd8dcec6be18b241fda0
    Reviewed-on: https://chromium-review.googlesource.com/873376Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
    Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#50702}
    93d67d20
builtins-definitions.h 98.5 KB