• Clemens Hammacher's avatar
    Reland "[wasm] Don't store global handles in the interpreter" · b53141ec
    Clemens Hammacher authored
    This is a reland of 5648aad5.
    Previous compile error should be fixed by disabling strict aliasing
    assumptions on gyp: https://chromium-review.googlesource.com/c/571806
    
    Original change's description:
    > [wasm] Don't store global handles in the interpreter
    > 
    > Storing global handles in the interpreter is dangerous, because the
    > global handles are strong roots into the heap. The interpreter itself is
    > referenced from the heap via a Managed. Hence the interpreter keeps the
    > instance alive, while the instance keeps the Managed alive. So the GC
    > will never collect them.
    > 
    > This CL refactors this to only store the handle to the instance object
    > while executing in the interpreter, and clearing it when returning.
    > It also removes the cache of import wrappers, as it should not be
    > performance critical, but keeps lots of objects alive. If it turns out
    > to be performance critical, we will have to reintroduce such a cache
    > stored in the WasmDebugInfo object.
    > 
    > R=titzer@chromium.org
    > CC=ahaas@chromium.org
    > 
    > Bug: chromium:610330
    > Change-Id: I54b489dadc16685887c0c1a98da6fd0df5ad7cbb
    > Reviewed-on: https://chromium-review.googlesource.com/567058
    > Reviewed-by: Ben Titzer <titzer@chromium.org>
    > Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
    > Cr-Commit-Position: refs/heads/master@{#46629}
    
    TBR=titzer@chromium.org
    
    Bug: chromium:610330
    Change-Id: Ic7836b1b1a044a89f2138f0c76f92acd3a1b2f2b
    Reviewed-on: https://chromium-review.googlesource.com/570578
    Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
    Reviewed-by: 's avatarClemens Hammacher <clemensh@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#46679}
    b53141ec
wasm-module-runner.cc 6.04 KB