• Seth Brenith's avatar
    Reland "[interpreter] Short Star bytecode" · 7be64db4
    Seth Brenith authored
    This is a reland of cf93071c
    
    Original change's description:
    > [interpreter] Short Star bytecode
    >
    > Design doc:
    > https://docs.google.com/document/d/1g_NExMT78II_KnIYNa9MvyPYIj23qAiFUEsyemY5KRk/edit
    >
    > This change adds 16 new interpreter opcodes, kStar0 through kStar15, so
    > that we can use a single byte to represent the common operation of
    > storing to a low-numbered register. This generally reduces the quantity
    > of bytecode generated on web sites by 8-9%.
    >
    > In order to not degrade speed, a couple of other changes are required:
    >
    > The existing lookahead logic to check for Star after certain other
    > bytecode handlers is updated to check for these new short Star codes
    > instead. Furthermore, that lookahead logic is updated to contain its own
    > copy of the dispatch jump rather than merging control flow with the
    > lookahead-failed case, to improve branch prediction.
    >
    > A bunch of constants use bytecode size in bytes as a proxy for the size
    > or complexity of a function, and are adjusted downward proportionally to
    > the decrease in generated bytecode size.
    >
    > Other small drive-by fix: update generate-bytecode-expectations to emit
    > \n instead of \r\n on Windows.
    >
    > Change-Id: I6307c2b0f5794a3a1088bb0fb94f6e1615441ed5
    > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2641180
    > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
    > Commit-Queue: Seth Brenith <seth.brenith@microsoft.com>
    > Cr-Commit-Position: refs/heads/master@{#72773}
    
    Change-Id: I1afb670c25694498b3989de615858f984a8c7f6f
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2698057
    Commit-Queue: Seth Brenith <seth.brenith@microsoft.com>
    Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
    Reviewed-by: 's avatarMythri Alle <mythria@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#72821}
    7be64db4
Name
Last commit
Last update
..
DIR_METADATA Loading commit data...
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...