359a00bf6f
Reason for revert: mac gc stress failures: https://build.chromium.org/p/client.v8/builders/V8%20Mac%20GC%20Stress/builds/8341 Original issue's description: > [wasm] reuse the first compiled module. > > This change avoids needing to keep around an unused compiled > module. Instead, the result of compiling the wasm bytes is > given to the first instance. The module object and that instance object > point to the same compiled module. Instances are, then, cloned from > the compiled module the module object points to. When an instance is > collected, we make sure that the module object still has a clone > available, and, if the last instance is GC-ed, we also reset the compiled > module so that it does not reference its heap, so that it (==heap) may > be collected. > > This is achieved by linking the clones in a double-linked list and > registering a finalizer for each. When we create an instance, we tie it > in the front of the list, making the module object point to it (O(1)). When > the finalizer is called, we relink the list over the dying object (O(1)). The > costliest operation is finalizing the last instance, since we need to visit > all wasm functions and reset heap references. > > BUG=v8:5316 > > Committed: https://crrev.com/01f5af515728aebe6c5246f4f7dd6c573e8748af > Cr-Commit-Position: refs/heads/master@{#39153} TBR=bradnelson@chromium.org,verwaest@chromium.org,vogelheim@chromium.org,yangguo@chromium.org,mtrofin@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:5316 Review-Url: https://codereview.chromium.org/2306403002 Cr-Commit-Position: refs/heads/master@{#39154} |
||
---|---|---|
.. | ||
embenchen | ||
adapter-frame.js | ||
asm-wasm-copy.js | ||
asm-wasm-deopt.js | ||
asm-wasm-f32.js | ||
asm-wasm-f64.js | ||
asm-wasm-heap.js | ||
asm-wasm-i32.js | ||
asm-wasm-literals.js | ||
asm-wasm-stdlib.js | ||
asm-wasm-switch.js | ||
asm-wasm-u32.js | ||
asm-wasm.js | ||
calls.js | ||
compiled-module-serialization.js | ||
debug-disassembly.js | ||
divrem-trap.js | ||
ensure-wasm-binaries-up-to-date.js | ||
export-table.js | ||
ffi-error.js | ||
ffi.js | ||
frame-inspection.js | ||
function-names.js | ||
function-prototype.js | ||
gc-frame.js | ||
grow-memory.js | ||
import-table.js | ||
incrementer.wasm | ||
indirect-calls.js | ||
instantiate-module-basic.js | ||
instantiate-run-basic.js | ||
module-memory.js | ||
no-wasm-by-default.js | ||
OWNERS | ||
parallel_compilation.js | ||
params.js | ||
receiver.js | ||
stack.js | ||
stackwalk.js | ||
start-function.js | ||
test-import-export-wrapper.js | ||
test-wasm-module-builder.js | ||
trap-location.js | ||
unicode-validation.js | ||
unreachable.js | ||
verify-function-basic-errors.js | ||
verify-function-simple.js | ||
verify-module-basic-errors.js | ||
wasm-constants.js | ||
wasm-module-builder.js | ||
wasm-object-api.js |