• Benedikt Meurer's avatar
    [turbofan] Constant-fold string concatenation during typed lowering. · faea5031
    Benedikt Meurer authored
    During JSTypedLowering, when we see a JSAdd where we know that at least
    one side is already a String, we can try to strength-reduce the other
    side to a string as well. And once we have that, check whether both
    sides are now String constants, and if the concatenation won't overflow
    the string length limit, we can just constant-fold the StringAdd.
    
    This improves the Six Speed template_string benchmarks by up to 5x, as
    we no longer need to perform the String concatenations on every loop
    iteration.
    
    Bug: v8:6815
    Change-Id: I8c47b2adf66b585d2f191cf805604b435f6256cd
    Also-By: jarin@chromium.org
    Reviewed-on: https://chromium-review.googlesource.com/663181
    Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
    Commit-Queue: Michael Stanton <mvstanton@chromium.org>
    Reviewed-by: 's avatarMichael Stanton <mvstanton@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#47974}
    faea5031
js-typed-lowering.cc 95.5 KB