-
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:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Mythri Alle <mythria@chromium.org> Cr-Commit-Position: refs/heads/master@{#72821}
7be64db4
Name |
Last commit
|
Last update |
---|---|---|
.. | ||
api | Loading commit data... | |
asmjs | ||
ast | ||
base | ||
baseline | ||
builtins | ||
codegen | ||
common | ||
compiler | ||
compiler-dispatcher | ||
d8 | ||
date | ||
debug | ||
deoptimizer | ||
diagnostics | ||
execution | ||
extensions | ||
flags | ||
handles | ||
heap | ||
ic | ||
init | ||
inspector | ||
interpreter | ||
json | ||
libplatform | ||
libsampler | ||
logging | ||
numbers | ||
objects | ||
parsing | ||
profiler | ||
protobuf | ||
regexp | ||
roots | ||
runtime | ||
sanitizer | ||
snapshot | ||
strings | ||
tasks | ||
third_party | ||
torque | ||
tracing | ||
trap-handler | ||
utils | ||
wasm | ||
zone | ||
DEPS | ||
DIR_METADATA | ||
OWNERS |