- 21 Jan, 2020 2 commits
-
-
Clemens Backes authored
The test was supposed to manipulate the serialized bytes to make them invalid, but the value at the manipulated position was already 0, hence the bytes stayed valid. This went unnoticed before https://crrev.com/c/2010786, since there was a fallback anyway to re-compile the module if deserialization fails. This CL fixes this by using the right offset, and checking that the value there is not already zero. R=thibaudm@chromium.org Change-Id: Ie0eaf2c8ee9e8c4c477f717f3d8aed8564b3adbf Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2007493 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by: Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/master@{#65898}
-
Clemens Backes authored
This fixes a few issues: 1) It avoids using the {DeserializeOrCompile} API method, which is not used in chrome any more and will be deprecated soon. 2) It switches to the {DeserializeNativeModule} internal method, which really checks deserialization in isolation and does not fall back to compiling the wire bytes if the serialized bytes are incorrect. 3) It disables a test which tried to invalidate the number of functions, but the respective bytes were already zero, so nothing was invalidated. This still needs to be fixed in a follow-up CL. 4) It serializes the modules in a separate isolate, which then gets disposed to free references to the NativeModule and remove it from the modules cache. Otherwise we will just never deserialize, but use the cached module instead. R=thibaudm@chromium.org Bug: v8:6847, v8:10146 Change-Id: I37ef524a9c96c32fec2e7466488d67395fa5ccea Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2010786 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by: Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/master@{#65888}
-
- 17 Jan, 2020 1 commit
-
-
Thibaud Michaud authored
R=clemensb@chromium.org Bug: chromium:1041841 Change-Id: I4a5010fbf58a812e724ab95f2552dd4b6887113f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2004612 Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#65834}
-
- 27 Mar, 2019 1 commit
-
-
Sigurd Schneider authored
Bug: v8:9020 Change-Id: I3a939d65ec8468f034d4670d9b14a911e5ef5a61 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1541044Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#60492}
-
- 07 Dec, 2018 1 commit
-
-
Clemens Hammacher authored
We need to be able to serialize a NativeModule, which is not bound to any Isolate. Hence we should not want to pass any Isolate to the serializer. This CL removes the dependence by not using the ExternalReferenceTable from the Isolate, but instead using its own ExternalReferenceList for serialization and deserialization. This ExternalReferenceList only contains isolate-independent external references. R=mstarzinger@chromium.org Bug: chromium:912043, chromium:912031 Change-Id: Iea5abd95dce9c54e618255cc577b6b43f002ac5d Reviewed-on: https://chromium-review.googlesource.com/c/1363135 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#58099}
-
- 05 Dec, 2018 1 commit
-
-
Clemens Hammacher authored
We currently compute this value from the size of the external table, which we get from the Isolate. This size is isolate-independent though, so it can just be a constant. R=mstarzinger@chromium.org Bug: chromium:912043 Change-Id: If1c09a56b1a985b855f5b65818322979c194d772 Reviewed-on: https://chromium-review.googlesource.com/c/1362954Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#58045}
-
- 05 Oct, 2018 1 commit
-
-
Bill Budge authored
- Exposes IsSupportedVersion function which compares serialized version to current Wasm version. - Tweaks the comments on serialization to match the code. Bug: chromium:719172 Change-Id: I76df9605aee16fd98cd82b54dba2e9acbd56b41b Reviewed-on: https://chromium-review.googlesource.com/c/1265141Reviewed-by: Ben Smith <binji@chromium.org> Commit-Queue: Bill Budge <bbudge@chromium.org> Cr-Commit-Position: refs/heads/master@{#56420}
-
- 01 Aug, 2018 1 commit
-
-
Michael Starzinger authored
This changes the WebAssembly serializer to take a full snapshot of the code table before measuring and serializing the module. It allows other threads (or other Isolates) to mutate the native module while the main thread is serializing the module. R=clemensh@chromium.org BUG=v8:7424 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: I64bc27600452880f37f4fbb2f40c77c79975358f Reviewed-on: https://chromium-review.googlesource.com/1156596 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#54838}
-
- 13 Jun, 2018 1 commit
-
-
Clemens Hammacher authored
For serialization, we do not need the {WasmCompiledModule}. All we need is the {NativeModule}. R=mstarzinger@chromium.org Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: Iff7dc9cde3b1ab777028dbafcc1c870e45e28a93 Reviewed-on: https://chromium-review.googlesource.com/1097480Reviewed-by: Ben Titzer <titzer@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#53686}
-
- 11 May, 2018 1 commit
-
-
Michael Starzinger authored
This makes the fact that export wrapper code is shared across instances explicit by hanging the {export_wrappers} array off the module object instead of the instance-specific {WasmCompiledModule} object. R=titzer@chromium.org Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: Ic5c73bcc17f759e520c105317361e5654628b99e Reviewed-on: https://chromium-review.googlesource.com/1051987 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Ben Titzer <titzer@chromium.org> Cr-Commit-Position: refs/heads/master@{#53131}
-
- 03 May, 2018 1 commit
-
-
Bill Budge authored
- Separates measuring from wasm::SerializeNativeModule so caller can allocate or reserve the buffer memory. Call site thus avoid one unnecessary copy. Bug: chromium:719007 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: I50412c0c0279114dcdc1aead810ad39e7c4e2a6e Reviewed-on: https://chromium-review.googlesource.com/1039183 Commit-Queue: Bill Budge <bbudge@chromium.org> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#52965}
-
- 02 Feb, 2018 1 commit
-
-
jgruber authored
This check verifies that all .h files in the src/ directory have an include guard of the form #ifndef V8_PATH_TO_FILE_H_ #define V8_PATH_TO_FILE_H_ // ... #endif // V8_PATH_TO_FILE_H_ The check can be skipped with a magic comment: // PRESUBMIT_INTENTIONALLY_MISSING_INCLUDE_GUARD Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng;master.tryserver.blink:linux_trusty_blink_rel Change-Id: I0a7b96abec289ad60f64ba8418f1892a6969596d Reviewed-on: https://chromium-review.googlesource.com/897487Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#51079}
-
- 11 Jan, 2018 1 commit
-
-
Michael Starzinger authored
This funnels all serialization and deserialization calls through the common interface in the wasm-serialization.h file. All call sites are now uniform, independent of the --wasm-jit-to-native feature. R=titzer@chromium.org BUG=v8:6876 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: I105907acfeba4b0e277b2003d099c5db6ab59dd3 Reviewed-on: https://chromium-review.googlesource.com/860042Reviewed-by: Ben Titzer <titzer@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#50501}
-
- 09 Jan, 2018 1 commit
-
-
Ben L. Titzer authored
This CL simply moves the implementation classes for WASM native module serialization into the CC file and simplifies them a bit. R=mstarzinger@chromium.org Bug: Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: Id560d2c35eb12bdd461f5d80cb5211a2f4f51684 Reviewed-on: https://chromium-review.googlesource.com/856677Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Ben Titzer <titzer@chromium.org> Cr-Commit-Position: refs/heads/master@{#50434}
-
- 05 Dec, 2017 1 commit
-
-
Mircea Trofin authored
Rename to better capture what the files contain. Removed includes of wasm-code-manager.h from .h files to improve build time. Bug: Change-Id: I0f0108cfb00b061c4433b6ff9670e9c4cae9c699 Reviewed-on: https://chromium-review.googlesource.com/807368Reviewed-by: Ben Titzer <titzer@chromium.org> Commit-Queue: Mircea Trofin <mtrofin@chromium.org> Cr-Commit-Position: refs/heads/master@{#49875}
-
- 28 Nov, 2017 3 commits
-
-
Mircea Trofin authored
This reverts commit b301203e. Reason for revert: Fixed issues on arm. Original change's description: > Revert "[wasm] JIT using WasmCodeManager" > > This reverts commit d4c8393c. > > Reason for revert: Breaks ARM hardware: > https://build.chromium.org/p/client.v8.ports/builders/V8%20Arm%20-%20debug/builds/5268 > > Original change's description: > > [wasm] JIT using WasmCodeManager > > > > This is the first step towards wasm code sharing. This CL moves wasm > > code generation outside the JavaScript GC heap using the previously - > > introduced WasmCodeManager (all this, behind the --wasm-jit-to-native > > flag). > > > > See design document: go/wasm-on-native-heap-stage-1 > > > > This CL doesn't change other wasm architectural invariants. We still > > have per-Isolate wasm code generation, and per-wasm module instance > > code specialization. > > > > Bug:v8:6876 > > > > Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng > > Change-Id: I1e08cecad75f93fb081545c31228a4568be276d3 > > Reviewed-on: https://chromium-review.googlesource.com/674086 > > Reviewed-by: Ben Titzer <titzer@chromium.org> > > Reviewed-by: Eric Holk <eholk@chromium.org> > > Cr-Commit-Position: refs/heads/master@{#49689} > > TBR=bradnelson@chromium.org,titzer@chromium.org,mtrofin@chromium.org,eholk@chromium.org > > Change-Id: I89af1ea5decd841bc12cd2ceaf74d32bc4433885 > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: v8:6876 > Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng > Reviewed-on: https://chromium-review.googlesource.com/794690 > Reviewed-by: Michael Achenbach <machenbach@chromium.org> > Commit-Queue: Michael Achenbach <machenbach@chromium.org> > Cr-Commit-Position: refs/heads/master@{#49691} TBR=bradnelson@chromium.org,machenbach@chromium.org,titzer@chromium.org,mtrofin@chromium.org,eholk@chromium.org Change-Id: I1b07638d1bb2ba0664305b4b2dcfc1342dc8444f No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:6876 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Reviewed-on: https://chromium-review.googlesource.com/794434 Commit-Queue: Mircea Trofin <mtrofin@chromium.org> Reviewed-by: Mircea Trofin <mtrofin@chromium.org> Cr-Commit-Position: refs/heads/master@{#49692}
-
Michael Achenbach authored
This reverts commit d4c8393c. Reason for revert: Breaks ARM hardware: https://build.chromium.org/p/client.v8.ports/builders/V8%20Arm%20-%20debug/builds/5268 Original change's description: > [wasm] JIT using WasmCodeManager > > This is the first step towards wasm code sharing. This CL moves wasm > code generation outside the JavaScript GC heap using the previously - > introduced WasmCodeManager (all this, behind the --wasm-jit-to-native > flag). > > See design document: go/wasm-on-native-heap-stage-1 > > This CL doesn't change other wasm architectural invariants. We still > have per-Isolate wasm code generation, and per-wasm module instance > code specialization. > > Bug:v8:6876 > > Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng > Change-Id: I1e08cecad75f93fb081545c31228a4568be276d3 > Reviewed-on: https://chromium-review.googlesource.com/674086 > Reviewed-by: Ben Titzer <titzer@chromium.org> > Reviewed-by: Eric Holk <eholk@chromium.org> > Cr-Commit-Position: refs/heads/master@{#49689} TBR=bradnelson@chromium.org,titzer@chromium.org,mtrofin@chromium.org,eholk@chromium.org Change-Id: I89af1ea5decd841bc12cd2ceaf74d32bc4433885 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:6876 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Reviewed-on: https://chromium-review.googlesource.com/794690Reviewed-by: Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#49691}
-
Mircea Trofin authored
This is the first step towards wasm code sharing. This CL moves wasm code generation outside the JavaScript GC heap using the previously - introduced WasmCodeManager (all this, behind the --wasm-jit-to-native flag). See design document: go/wasm-on-native-heap-stage-1 This CL doesn't change other wasm architectural invariants. We still have per-Isolate wasm code generation, and per-wasm module instance code specialization. Bug:v8:6876 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: I1e08cecad75f93fb081545c31228a4568be276d3 Reviewed-on: https://chromium-review.googlesource.com/674086Reviewed-by: Ben Titzer <titzer@chromium.org> Reviewed-by: Eric Holk <eholk@chromium.org> Cr-Commit-Position: refs/heads/master@{#49689}
-