• Caitlin Potter's avatar
    [esnext] re-implement template strings · 8ae19e08
    Caitlin Potter authored
    - Add a new bytecode for the ToString operation, replacing the old
    intrinsic call (currently does not collect type feedback).
    - Add a new AST node to represent TemplateLiterals, and avoid
    generating unnecessary ToString operations in some simple cases.
    - Use a single feedback slot for each string addition, because the
    type feedback should always be the same for each addition
    
    This seems to produce a very slight improvement on JSTests benchmarks
    and bench-ruben.js from v8:7415, and it's possible that type feedback
    for the ToString bytecode could provide more opportunities to eliminate
    the runtime call in TurboFan.
    
    Doesn't touch tagged templates
    
    BUG=v8:7415
    R=rmcilroy@chromium.org, ishell@chromium.org, bmeurer@chromium.org
    
    Change-Id: If5a8c68558431f058db894d65776324abf54218e
    Reviewed-on: https://chromium-review.googlesource.com/945408Reviewed-by: 's avatarBenedikt Meurer <bmeurer@chromium.org>
    Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
    Commit-Queue: Caitlin Potter <caitp@igalia.com>
    Cr-Commit-Position: refs/heads/master@{#51853}
    8ae19e08
Name
Last commit
Last update
..
OWNERS Loading commit data...
block-coverage-builder.h Loading commit data...
bytecode-array-accessor.cc Loading commit data...
bytecode-array-accessor.h Loading commit data...
bytecode-array-builder.cc Loading commit data...
bytecode-array-builder.h Loading commit data...
bytecode-array-iterator.cc Loading commit data...
bytecode-array-iterator.h Loading commit data...
bytecode-array-random-iterator.cc Loading commit data...
bytecode-array-random-iterator.h Loading commit data...
bytecode-array-writer.cc Loading commit data...
bytecode-array-writer.h Loading commit data...
bytecode-decoder.cc Loading commit data...
bytecode-decoder.h Loading commit data...
bytecode-flags.cc Loading commit data...
bytecode-flags.h Loading commit data...
bytecode-generator.cc Loading commit data...
bytecode-generator.h Loading commit data...
bytecode-jump-table.h Loading commit data...
bytecode-label.cc Loading commit data...
bytecode-label.h Loading commit data...
bytecode-node.cc Loading commit data...
bytecode-node.h Loading commit data...
bytecode-operands.cc Loading commit data...
bytecode-operands.h Loading commit data...
bytecode-register-allocator.h Loading commit data...
bytecode-register-optimizer.cc Loading commit data...
bytecode-register-optimizer.h Loading commit data...
bytecode-register.cc Loading commit data...
bytecode-register.h Loading commit data...
bytecode-source-info.cc Loading commit data...
bytecode-source-info.h Loading commit data...
bytecode-traits.h Loading commit data...
bytecodes.cc Loading commit data...
bytecodes.h Loading commit data...
constant-array-builder.cc Loading commit data...
constant-array-builder.h Loading commit data...
control-flow-builders.cc Loading commit data...
control-flow-builders.h Loading commit data...
handler-table-builder.cc Loading commit data...
handler-table-builder.h Loading commit data...
interpreter-assembler.cc Loading commit data...
interpreter-assembler.h Loading commit data...
interpreter-generator.cc Loading commit data...
interpreter-generator.h Loading commit data...
interpreter-intrinsics-generator.cc Loading commit data...
interpreter-intrinsics-generator.h Loading commit data...
interpreter-intrinsics.cc Loading commit data...
interpreter-intrinsics.h Loading commit data...
interpreter.cc Loading commit data...
interpreter.h Loading commit data...
setup-interpreter-internal.cc Loading commit data...
setup-interpreter.h Loading commit data...