• Clemens Hammacher's avatar
    [wasm] Speed up LEB decoding · 79b075be
    Clemens Hammacher authored
    Speed up LEB decoding by forcing the decoding loop to be unrolled.
    Even though the compiler was free to unroll the loop before, clang did
    not do so. We now manually unroll by using a template function which
    calls itself recursively, passing the byte index to be decoded next.
    For efficient execution, we still depend on the compiler to inline the
    recursive calls (which clang does).
    
    This optimization speeds up interpreted execution of the Jetstream
    benchmarks by 15 percent.
    Speedup on module decoding is negligible though.
    
    Drive-by: Change "unsigned" to "uint32_t".
    
    R=ahaas@chromium.org
    BUG=v8:5822
    
    Change-Id: I06d4230f92bfb2a80cdc5029d965fc3bf84ca1cc
    Reviewed-on: https://chromium-review.googlesource.com/506188
    Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
    Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#45308}
    79b075be
Name
Last commit
Last update
benchmarks Loading commit data...
build_overrides Loading commit data...
docs Loading commit data...
gni Loading commit data...
gypfiles Loading commit data...
include Loading commit data...
infra Loading commit data...
samples Loading commit data...
src Loading commit data...
test Loading commit data...
testing Loading commit data...
third_party Loading commit data...
tools Loading commit data...
.clang-format Loading commit data...
.gitignore Loading commit data...
.gn Loading commit data...
.ycm_extra_conf.py Loading commit data...
AUTHORS Loading commit data...
BUILD.gn Loading commit data...
CODE_OF_CONDUCT.md Loading commit data...
ChangeLog Loading commit data...
DEPS Loading commit data...
LICENSE Loading commit data...
LICENSE.fdlibm Loading commit data...
LICENSE.strongtalk Loading commit data...
LICENSE.v8 Loading commit data...
LICENSE.valgrind Loading commit data...
Makefile Loading commit data...
Makefile.android Loading commit data...
OWNERS Loading commit data...
PRESUBMIT.py Loading commit data...
README.md Loading commit data...
WATCHLISTS Loading commit data...
codereview.settings Loading commit data...
snapshot_toolchain.gni Loading commit data...