• 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
..
OWNERS Loading commit data...
decoder.h Loading commit data...
function-body-decoder-impl.h Loading commit data...
function-body-decoder.cc Loading commit data...
function-body-decoder.h Loading commit data...
leb-helper.h Loading commit data...
local-decl-encoder.cc Loading commit data...
local-decl-encoder.h Loading commit data...
module-decoder.cc Loading commit data...
module-decoder.h Loading commit data...
signature-map.cc Loading commit data...
signature-map.h Loading commit data...
streaming-decoder.cc Loading commit data...
streaming-decoder.h Loading commit data...
wasm-code-specialization.cc Loading commit data...
wasm-code-specialization.h Loading commit data...
wasm-debug.cc Loading commit data...
wasm-external-refs.cc Loading commit data...
wasm-external-refs.h Loading commit data...
wasm-interpreter.cc Loading commit data...
wasm-interpreter.h Loading commit data...
wasm-js.cc Loading commit data...
wasm-js.h Loading commit data...
wasm-limits.h Loading commit data...
wasm-module-builder.cc Loading commit data...
wasm-module-builder.h Loading commit data...
wasm-module.cc Loading commit data...
wasm-module.h Loading commit data...
wasm-objects.cc Loading commit data...
wasm-objects.h Loading commit data...
wasm-opcodes.cc Loading commit data...
wasm-opcodes.h Loading commit data...
wasm-result.cc Loading commit data...
wasm-result.h Loading commit data...
wasm-text.cc Loading commit data...
wasm-text.h Loading commit data...