- 01 Dec, 2017 1 commit
-
-
Yang Guo authored
R=ulan@chromium.org Bug: v8:7141 Change-Id: I21b82f5c3f6a2cd5f6e525d267d6c6819b1370fb Reviewed-on: https://chromium-review.googlesource.com/796370 Commit-Queue: Yang Guo <yangguo@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#49784}
-
- 26 Sep, 2017 3 commits
-
-
Yang Guo authored
This is a reland of 629406d1 Original change's description: > [snapshot] include version string in the startup snapshot. > > This is to easier diagnose build issues involving the snapshot. > Sample error message for mismatching snapshot: > > # > # Fatal error in ../../src/snapshot/snapshot-common.cc, line 286 > # Version mismatch between V8 binary and snapshot. > # V8 binary version: 6.3.1 (candidate) > # Snapshot version: 6.3.0 (candidate) > # The snapshot consists of 2820444 bytes and contains 1 contexts. > # > > > R=machenbach@chromium.org > > Bug: chromium:764327 > Change-Id: Icdc7aeac77819b113985b424feda814a072d5406 > Reviewed-on: https://chromium-review.googlesource.com/684295 > Reviewed-by: Michael Achenbach <machenbach@chromium.org> > Commit-Queue: Yang Guo <yangguo@chromium.org> > Cr-Commit-Position: refs/heads/master@{#48161} Bug: chromium:764327 Change-Id: I3721689824e0a6909eede86d0829dc258ae40c4d Reviewed-on: https://chromium-review.googlesource.com/684494Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Commit-Queue: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#48164}
-
Yang Guo authored
This reverts commit 629406d1. Reason for revert: cross platform builds break. Original change's description: > [snapshot] include version string in the startup snapshot. > > This is to easier diagnose build issues involving the snapshot. > Sample error message for mismatching snapshot: > > # > # Fatal error in ../../src/snapshot/snapshot-common.cc, line 286 > # Version mismatch between V8 binary and snapshot. > # V8 binary version: 6.3.1 (candidate) > # Snapshot version: 6.3.0 (candidate) > # The snapshot consists of 2820444 bytes and contains 1 contexts. > # > > > R=machenbach@chromium.org > > Bug: chromium:764327 > Change-Id: Icdc7aeac77819b113985b424feda814a072d5406 > Reviewed-on: https://chromium-review.googlesource.com/684295 > Reviewed-by: Michael Achenbach <machenbach@chromium.org> > Commit-Queue: Yang Guo <yangguo@chromium.org> > Cr-Commit-Position: refs/heads/master@{#48161} TBR=machenbach@chromium.org,yangguo@chromium.org Change-Id: I35a9b575e4f7fe5c45c9dc6f9e774c3e6d30049c No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:764327 Reviewed-on: https://chromium-review.googlesource.com/684315Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#48162}
-
Yang Guo authored
This is to easier diagnose build issues involving the snapshot. Sample error message for mismatching snapshot: # # Fatal error in ../../src/snapshot/snapshot-common.cc, line 286 # Version mismatch between V8 binary and snapshot. # V8 binary version: 6.3.1 (candidate) # Snapshot version: 6.3.0 (candidate) # The snapshot consists of 2820444 bytes and contains 1 contexts. # R=machenbach@chromium.org Bug: chromium:764327 Change-Id: Icdc7aeac77819b113985b424feda814a072d5406 Reviewed-on: https://chromium-review.googlesource.com/684295Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Commit-Queue: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#48161}
-
- 19 Sep, 2017 1 commit
-
-
Jakob Gruber authored
This CL refactors allocation & reservation logic into a new DefaultSerializerAllocator class. In upcoming work, this will be further extended by a custom allocator for builtin serialization. Additionally, this cleans up a bunch of cosmetics (encapsulation and other nits). Bug: v8:6624 Change-Id: Ibcf12a525c8fcb26d9c16b7a12fd598c37a0e10a Reviewed-on: https://chromium-review.googlesource.com/650357Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#48077}
-
- 30 Aug, 2017 1 commit
-
-
jgruber authored
This is a reland of 49e3bfd5 Original change's description: > [snapshot] Move builtins to dedicated snapshot area > > As a first step towards lazy builtin deserialization, this CL moves > builtins to their own dedicated area in the snapshot blob, physically > located after startup data and before context-specific data. > > The startup- and partial serializers now serialize all seen builtins as > references, i.e. they only encode the relevant builtin id (taking care > to preserve special behavior around the interpreter trampoline and > CompileLazy). Builtins are later fully serialized by the > BuiltinSerializer. The separate blobs are finally glued together by > CreateSnapshotBlob. > > Deserialization takes the same steps: when we see builtin reference > bytecodes before builtins have been deserialized, we push to a list of > deferred builtin references. After builtin deserialization, this list is > iterated and all builtin references are fixed up. > > Bug: v8:6624 > Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng > Change-Id: Idee42fa9c92bdbe8d5b8c4b8bf3ca9dd39634004 > Reviewed-on: https://chromium-review.googlesource.com/610225 > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > Reviewed-by: Yang Guo <yangguo@chromium.org> > Commit-Queue: Jakob Gruber <jgruber@chromium.org> > Cr-Commit-Position: refs/heads/master@{#47596} Bug: v8:6624 Change-Id: I8bfac56c482d992987c270bf0fea7acd9e4ca0c7 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Reviewed-on: https://chromium-review.googlesource.com/638271Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#47705}
-
- 28 Aug, 2017 1 commit
-
-
Michael Hablich authored
This reverts commit 49e3bfd5. Reason for revert: Primary suspect for blocked roll: 759552 Original change's description: > [snapshot] Move builtins to dedicated snapshot area > > As a first step towards lazy builtin deserialization, this CL moves > builtins to their own dedicated area in the snapshot blob, physically > located after startup data and before context-specific data. > > The startup- and partial serializers now serialize all seen builtins as > references, i.e. they only encode the relevant builtin id (taking care > to preserve special behavior around the interpreter trampoline and > CompileLazy). Builtins are later fully serialized by the > BuiltinSerializer. The separate blobs are finally glued together by > CreateSnapshotBlob. > > Deserialization takes the same steps: when we see builtin reference > bytecodes before builtins have been deserialized, we push to a list of > deferred builtin references. After builtin deserialization, this list is > iterated and all builtin references are fixed up. > > Bug: v8:6624 > Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng > Change-Id: Idee42fa9c92bdbe8d5b8c4b8bf3ca9dd39634004 > Reviewed-on: https://chromium-review.googlesource.com/610225 > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > Reviewed-by: Yang Guo <yangguo@chromium.org> > Commit-Queue: Jakob Gruber <jgruber@chromium.org> > Cr-Commit-Position: refs/heads/master@{#47596} TBR=yangguo@chromium.org,mlippautz@chromium.org,jgruber@chromium.org # Not skipping CQ checks because original CL landed > 1 day ago. Bug: v8:6624 Change-Id: I9906c9ea15a623226b890f63bc65876a6f5203f8 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Reviewed-on: https://chromium-review.googlesource.com/638331Reviewed-by:
Michael Hablich <hablich@chromium.org> Commit-Queue: Michael Hablich <hablich@chromium.org> Cr-Commit-Position: refs/heads/master@{#47648}
-
- 25 Aug, 2017 1 commit
-
-
Jakob Gruber authored
As a first step towards lazy builtin deserialization, this CL moves builtins to their own dedicated area in the snapshot blob, physically located after startup data and before context-specific data. The startup- and partial serializers now serialize all seen builtins as references, i.e. they only encode the relevant builtin id (taking care to preserve special behavior around the interpreter trampoline and CompileLazy). Builtins are later fully serialized by the BuiltinSerializer. The separate blobs are finally glued together by CreateSnapshotBlob. Deserialization takes the same steps: when we see builtin reference bytecodes before builtins have been deserialized, we push to a list of deferred builtin references. After builtin deserialization, this list is iterated and all builtin references are fixed up. Bug: v8:6624 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: Idee42fa9c92bdbe8d5b8c4b8bf3ca9dd39634004 Reviewed-on: https://chromium-review.googlesource.com/610225Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#47596}
-
- 24 Aug, 2017 1 commit
-
-
Yang Guo authored
Bug: v8:6747 Change-Id: If4b9c1ccd23c3ef1ed5e173f0143d2cc85581154 Reviewed-on: https://chromium-review.googlesource.com/631678Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#47567}
-
- 23 Aug, 2017 1 commit
-
-
Peter Marshall authored
Bug: v8:6333 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: I50d4357a7e7a0e8f2d04d5d34952cf524c012d5f Reviewed-on: https://chromium-review.googlesource.com/625740 Commit-Queue: Peter Marshall <petermarshall@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#47538}
-
- 30 Mar, 2017 1 commit
-
-
vchigrin authored
Compiler-generated copy constructor does not generate correct code for this class, so make it move-only type. Review-Url: https://codereview.chromium.org/2781993005 Cr-Commit-Position: refs/heads/master@{#44266}
-
- 27 Mar, 2017 1 commit
-
-
Clemens Hammacher authored
The SerializeGeneric method assumes that the object was not serialized before. Hence, we should not call it repeatedly for the same builtin. This CL now exposes SerializeBuiltin, and calls that directly. We also serialize the Illegal builtin for wasm interpreter entries, which are never reused across instantiations anyway. R=ahaas@chromium.org, yangguo@chromium.org BUG=v8:5822 Change-Id: Id74b86fe29171908ed35ddbc06c93f0d241e4917 Reviewed-on: https://chromium-review.googlesource.com/458380Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#44155}
-
- 07 Mar, 2017 1 commit
-
-
jkummerow authored
This requires serialized data to track the number of API-provided external references separately. And it flushes out a case of serialized data corruption (stored "length" field too large) that we didn't handle without crashing. BUG=v8:6055 Review-Url: https://codereview.chromium.org/2736923002 Cr-Commit-Position: refs/heads/master@{#43649}
-
- 18 Jan, 2017 1 commit
-
-
clemensh authored
Breakpoints are always re-set by the embedder after compilation, so we don't want to store the corresponding breakpoint objects. Also don't serialize WASM_INTERPRETER_ENTRY stubs as they are replaced by ordinary WASM_FUNCTION code at instantiation anyway, and skip WASM_TO_JS wrappers which are recompiled on each instantiation. Instead, we serialize the Illegal builtin, and also use that one instead of the placeholder when compiling the wasm code initially. R=titzer@chromium.org, yangguo@chromium.org BUG=v8:5822 Review-Url: https://codereview.chromium.org/2629853004 Cr-Commit-Position: refs/heads/master@{#42451}
-
- 22 Oct, 2016 1 commit
-
-
mtrofin authored
Since the public API for deserialization is now just DeserializeOrCompile, we can trickle down the wire bytes to the deserialization logic, and avoid the need for duplicating the wire bytes when serializing. BUG=chromium:657316 Review-Url: https://chromiumcodereview.appspot.com/2433273002 Cr-Commit-Position: refs/heads/master@{#40516}
-
- 19 Oct, 2016 1 commit
-
-
titzer authored
This CL refactors the handling of metadata associated with WebAssembly modules to reduce the duplicate marshalling of data from the C++ world to the JavaScript world. It does this by wrapping the C++ WasmModule* object in a Foreign that is rooted from the on-heap WasmCompiledModule (which is itself just a FixedArray). Upon serialization, the C++ object is ignored and the original WASM wire bytes are serialized. Upon deserialization, the C++ object is reconstituted by reparsing the bytes. This is motivated by increasing complications in implementing the JS API, in particular WebAssembly.Table, which must perform signature canonicalization across instances. Additionally, this CL implements the proper base + offset initialization behavior for tables. R=rossberg@chromium.org,bradnelson@chromium.org,mtrofin@chromium.org,yangguo@chromium.org BUG=v8:5507, chromium:575167, chromium:657316 Review-Url: https://chromiumcodereview.appspot.com/2424623002 Cr-Commit-Position: refs/heads/master@{#40434}
-
- 14 Oct, 2016 1 commit
-
-
mtrofin authored
A test where the deserialization data has a header, but the header is invalid. This is in addition to the current test where we have empty deserialization data. BUG= Review-Url: https://codereview.chromium.org/2418483002 Cr-Commit-Position: refs/heads/master@{#40321}
-
- 06 Oct, 2016 1 commit
-
-
mtrofin authored
One step closer to the informally-agreed upon specification that structured cloning will always succeed, meaning, if we fail to deserialize (e.g. because version mismatch in serialized format and v8 version), we recompile. As part of this work, the deserializer will need to become more resilient to invalid input data, and fail graciously rather than CHECK-ing. This CL addresses some of that, sufficient to unblock the current serialization tests. Subsequent CLs will add more testing and the appropriate fixes. BUG=639090 Review-Url: https://codereview.chromium.org/2395793003 Cr-Commit-Position: refs/heads/master@{#40058}
-
- 12 Sep, 2016 1 commit
-
-
mtrofin authored
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 Review-Url: https://codereview.chromium.org/2305903002 Cr-Original-Commit-Position: refs/heads/master@{#39153} Cr-Commit-Position: refs/heads/master@{#39361}
-
- 05 Sep, 2016 2 commits
-
-
machenbach authored
Revert of [wasm] reuse the first compiled module (patchset #12 id:220001 of https://codereview.chromium.org/2305903002/ ) 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}
-
mtrofin authored
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 Review-Url: https://codereview.chromium.org/2305903002 Cr-Commit-Position: refs/heads/master@{#39153}
-
- 12 Aug, 2016 1 commit
-
-
yangguo authored
So far we only snapshot the payload data for the deserializer, but not the data for heap reservation or the code stub keys. At the same time this change turns some CHECKs that fail in the wild to DCHECKs. We can try turning them back to CHECKs some other time. TBR=ahaas@chromium.org BUG=chromium:636876 Review-Url: https://codereview.chromium.org/2237883002 Cr-Commit-Position: refs/heads/master@{#38594}
-
- 09 Aug, 2016 1 commit
-
-
mtrofin authored
Implementation of serialization/deserialization for compiled wasm module. BUG=v8:5072 Review-Url: https://codereview.chromium.org/2205973003 Cr-Commit-Position: refs/heads/master@{#38498}
-
- 10 Jun, 2016 2 commits
-
-
yangguo authored
R=vogelheim@chromium.org Review-Url: https://codereview.chromium.org/2052433003 Cr-Commit-Position: refs/heads/master@{#36890}
-
yangguo authored
R=vogelheim@chromium.org Review-Url: https://codereview.chromium.org/2051043003 Cr-Commit-Position: refs/heads/master@{#36887}
-
- 18 May, 2016 1 commit
-
-
yangguo authored
Currently attached references are only used for global proxy, source string and code stubs. Mid-term future we want to use attached references for arbitrary objects (in fixed order) provided from outside. This change renames BackReference to SerializerReference to include both back references and attached references. R=mtrofin@chromium.org, vogelheim@chromium.org Review-Url: https://codereview.chromium.org/1992723002 Cr-Commit-Position: refs/heads/master@{#36318}
-
- 03 May, 2016 1 commit
-
-
yangguo authored
Some uninitialized ICs used to be implemented as builtins. This is apparently no longer the case. R=bmeurer@chromium.org, mvstanton@chromium.org Review-Url: https://codereview.chromium.org/1940283002 Cr-Commit-Position: refs/heads/master@{#35980}
-
- 01 Mar, 2016 1 commit
-
-
yangguo authored
R=rossberg@chromium.org, ulan@chromium.org, vogelheim@chromium.org Review URL: https://codereview.chromium.org/1751863002 Cr-Commit-Position: refs/heads/master@{#34395}
-