• Mircea Trofin's avatar
    [wasm] Consolidate ownership of instantiation/specialization parameters · f9d4090b
    Mircea Trofin authored
    This CL consolidates ownership of parameters used to compile code (which
    we always specialize) in 2 places:
    - ModuleEnv for compile-time data
    - WasmCompiledModule for runtime data
    
    The parameters in question are: memory size and start; globals start; 
    address of indirect function tables (and their signatures, respectively); 
    and address to be used for wasm call sites.
    
    Ideally, we'd collapse this down to one place, however, we need
    specialization data to survive serialization. We can achieve this we get off 
    the GC heap and use a different wasm code serializer.
    
    The CL:
    - removes aliasing of parts of the specialization data, and moves
    to using ModuleEnv as a token of passing around compile-time data, instead
    of a mixture of ModuleEnv, WasmInstance, and some other structures. ModuleEnv
    is responsible for providing a consistent view of the specialization data,
    e.g. valid memory sizes (multiples of page size), and matching sized function
    tables and signatures.
    
    - removes WasmInstance, as its data is now contained by ModuleEnv.
    
    - removes ModuleBytesEnv. We now pass the wire bytes explicitly. They can't
    always be assumed as present (e.g. streaming compilation), and probably more
    refactoring may need to happen once streaming compilation lands and we
    better understand our dependencies.
    
    Change-Id: Id7e6f2cf29e51b5756eee8b6f8827fb1f375e5c3
    Reviewed-on: https://chromium-review.googlesource.com/592531
    Commit-Queue: Mircea Trofin <mtrofin@chromium.org>
    Reviewed-by: 's avatarBen Titzer <titzer@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#47229}
    f9d4090b
Name
Last commit
Last update
..
api Loading commit data...
asmjs Loading commit data...
base Loading commit data...
compiler Loading commit data...
compiler-dispatcher Loading commit data...
heap Loading commit data...
interpreter Loading commit data...
libplatform Loading commit data...
parser Loading commit data...
wasm Loading commit data...
zone Loading commit data...
BUILD.gn Loading commit data...
DEPS Loading commit data...
cancelable-tasks-unittest.cc Loading commit data...
char-predicates-unittest.cc Loading commit data...
counters-unittest.cc Loading commit data...
eh-frame-iterator-unittest.cc Loading commit data...
eh-frame-writer-unittest.cc Loading commit data...
locked-queue-unittest.cc Loading commit data...
object-unittest.cc Loading commit data...
register-configuration-unittest.cc Loading commit data...
run-all-unittests.cc Loading commit data...
source-position-table-unittest.cc Loading commit data...
test-helpers.cc Loading commit data...
test-helpers.h Loading commit data...
test-utils.cc Loading commit data...
test-utils.h Loading commit data...
unicode-unittest.cc Loading commit data...
unittests.gyp Loading commit data...
unittests.isolate Loading commit data...
unittests.status Loading commit data...
value-serializer-unittest.cc Loading commit data...