• Clemens Backes's avatar
    Reland "[wasm] Further reduce the size of WasmCode" · 13cdf3a7
    Clemens Backes authored
    This is a reland of 79398ab0
    
    Original change's description:
    > [wasm] Further reduce the size of WasmCode
    >
    > Also, save dynamic allocations (plus their memory overhead).
    > This is realized by storing the relocation information, source position
    > table, and protected instruction information together in one "metadata"
    > byte array.
    > For each of the three components, we just store their size, such that
    > the accessors can return the respecitive {Vector} views as before.
    >
    > This makes each WasmCode object 24 bytes smaller on 64-bit
    > architectures. It also saves a few more bytes per code object because
    > less padding is needed for the individual allocations, and each dynamic
    > allocation comes with some constant memory overhead.
    >
    > Since the protected instructions will just be stored in a byte array
    > now, some APIs are refactored to just return that byte array directly
    > (instead of an array of {ProtectedInstructionData}). This also
    > simplifies serialization and deserialization, and will allow for
    > switching to a more compact representation in the future.
    >
    > Drive-by: Add some more checks to {Vector::cast} to protect against
    >   undefined behaviour.
    >
    > R=ahaas@chromium.org
    >
    > Bug: v8:10254
    > Change-Id: I81ca847023841110e3e52cc402fcb0349325d7af
    > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2078545
    > Reviewed-by: Andreas Haas <ahaas@chromium.org>
    > Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
    > Commit-Queue: Clemens Backes <clemensb@chromium.org>
    > Cr-Commit-Position: refs/heads/master@{#66596}
    
    Tbr: ahaas@chromium.org
    Bug: v8:10254
    Change-Id: Idcdcb4f13c3eb7a3f7fb5ef8a1229103ca0ae975
    Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2089934Reviewed-by: 's avatarClemens Backes <clemensb@chromium.org>
    Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
    Commit-Queue: Clemens Backes <clemensb@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#66598}
    13cdf3a7
Name
Last commit
Last update
..
baseline Loading commit data...
DEPS Loading commit data...
OWNERS Loading commit data...
c-api.cc Loading commit data...
c-api.h Loading commit data...
compilation-environment.h 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...
function-compiler.cc Loading commit data...
function-compiler.h Loading commit data...
graph-builder-interface.cc Loading commit data...
graph-builder-interface.h Loading commit data...
jump-table-assembler.cc Loading commit data...
jump-table-assembler.h Loading commit data...
leb-helper.h Loading commit data...
local-decl-encoder.cc Loading commit data...
local-decl-encoder.h Loading commit data...
memory-tracing.cc Loading commit data...
memory-tracing.h Loading commit data...
module-compiler.cc Loading commit data...
module-compiler.h Loading commit data...
module-decoder.cc Loading commit data...
module-decoder.h Loading commit data...
module-instantiate.cc Loading commit data...
module-instantiate.h Loading commit data...
object-access.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...
value-type.h Loading commit data...
wasm-arguments.h Loading commit data...
wasm-code-manager.cc Loading commit data...
wasm-code-manager.h Loading commit data...
wasm-constants.h Loading commit data...
wasm-debug.cc Loading commit data...
wasm-debug.h Loading commit data...
wasm-engine.cc Loading commit data...
wasm-engine.h Loading commit data...
wasm-external-refs.cc Loading commit data...
wasm-external-refs.h Loading commit data...
wasm-feature-flags.h Loading commit data...
wasm-features.cc Loading commit data...
wasm-features.h Loading commit data...
wasm-import-wrapper-cache.cc Loading commit data...
wasm-import-wrapper-cache.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-linkage.h Loading commit data...
wasm-module-builder.cc Loading commit data...
wasm-module-builder.h Loading commit data...
wasm-module-sourcemap.cc Loading commit data...
wasm-module-sourcemap.h Loading commit data...
wasm-module.cc Loading commit data...
wasm-module.h Loading commit data...
wasm-objects-inl.h Loading commit data...
wasm-objects.cc Loading commit data...
wasm-objects.h Loading commit data...
wasm-objects.tq 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-serialization.cc Loading commit data...
wasm-serialization.h Loading commit data...
wasm-tier.h Loading commit data...
wasm-value.h Loading commit data...