- 09 Aug, 2018 1 commit
-
-
Ben L. Titzer authored
This CL introduces a set of configuration options implemented as a struct of booleans that together comprise the set of enabled or detected features. The configuration options replace command-line flags that were checked deep in the implementation. As such, it is necessary to plumb them through multiple levels of abstraction. R=ahaas@chromium.org CC=mstarzinger@chromium.org BUG=chromium:868844 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: I1b82f5826e4fd263f68e8cafcd923bac5818a637 Reviewed-on: https://chromium-review.googlesource.com/1163670Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Ben Titzer <titzer@chromium.org> Cr-Commit-Position: refs/heads/master@{#55018}
-
- 07 Aug, 2018 1 commit
-
-
Andreas Haas authored
For async instantiation of WebAssembly code we had the assumption that a pending exceptions (an exception which comes from execution JS code) and an ErrorThrower error cannot occur at the same time. This assumption turned out to be wrong. With this CL we handle this case by prefering pending_exceptions over ErrorThrower errors. In addition I extended the tests for failing instantiation to also exercise async instantiation, and I added a regression test. R=clemensh@chromium.org Bug: chromium:870646 Change-Id: I4cb54ff8642ad4ea193b20f79905c9f6508c2b2e Reviewed-on: https://chromium-review.googlesource.com/1163511Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#54940}
-
- 02 Aug, 2018 2 commits
-
-
Andreas Haas authored
This reverts commit b556c9ea. Reason for revert: Flakes in layout tests: https://crbug.com/870187 Original change's description: > [wasm] Implement the new API for WebAssembly.instantiateStreaming > > This is the second V8 CL to refactor WebAssembly.instantiateStreaming to > make it spec compliant again. The design doc where the whole change is > discussed is available in the tracking bug. The tracking bug also > references prototype implementations of the whole change, which includes > the changes in this CL. > > R=mstarzinger@chromium.org > > Bug: chromium:860637 > Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng > Change-Id: I776c0f24959ab5663727d3dfee0248a9b0642a42 > Reviewed-on: https://chromium-review.googlesource.com/1143187 > Commit-Queue: Andreas Haas <ahaas@chromium.org> > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Cr-Commit-Position: refs/heads/master@{#54834} TBR=mstarzinger@chromium.org,ahaas@chromium.org # Not skipping CQ checks because original CL landed > 1 day ago. Bug: chromium:860637 Change-Id: Icbf2603143068a49c61de162aa7185a753703e5d Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Reviewed-on: https://chromium-review.googlesource.com/1160261Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#54872}
-
Ben L. Titzer authored
The wasm/ directory is inconsistent in many places, often within the same file. For all code that exists in a v8::internal::wasm namespace, this CL removes any wasm:: qualifiers, which is especially helpful since most types are already Wasm-named, such as WasmCode, WasmModule, etc. Namespace qualifiers are redundant inside the wasm:: namespace and thus go against the main point of using namespaces. Removing the qualifiers for non Wasm-named classes also makes the code somewhat more future-proof, should we move some things that are not really WASM-specific (such as ErrorThrower and Decoder) into a higher namespace. R=clemensh@chromium.org,mstarzinger@chromium.org Change-Id: Ibff3e1e93c64c12dcb53c46c03d1bfb2fb0b7586 Reviewed-on: https://chromium-review.googlesource.com/1160232 Commit-Queue: Ben Titzer <titzer@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#54862}
-
- 01 Aug, 2018 3 commits
-
-
Michael Starzinger authored
This changes the predicate in question to only check for async compile jobs belonging to a given Isolate, having an engine-wide predicate is not desirable for draining message queues. R=clemensh@chromium.org BUG=v8:7424 Change-Id: If990378400cc4484d413c4d7771ec6deb6bfd244 Reviewed-on: https://chromium-review.googlesource.com/1158565 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#54844}
-
Clemens Hammacher authored
All compile tasks are already canceled when the {CompilationState} dies. This happens when the {NativeModule} dies, and all {NativeModule}s die before the {WasmEngine} dies. Thus, the WasmEngine does not need to cancel any compile jobs, because there are none anyway. R=mstarzinger@chromium.org Bug: chromium:869420 Change-Id: I7e006392a1f9126333733c81c4c19985f626a470 Reviewed-on: https://chromium-review.googlesource.com/1158411Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#54840}
-
Andreas Haas authored
This is the second V8 CL to refactor WebAssembly.instantiateStreaming to make it spec compliant again. The design doc where the whole change is discussed is available in the tracking bug. The tracking bug also references prototype implementations of the whole change, which includes the changes in this CL. R=mstarzinger@chromium.org Bug: chromium:860637 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: I776c0f24959ab5663727d3dfee0248a9b0642a42 Reviewed-on: https://chromium-review.googlesource.com/1143187 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#54834}
-
- 31 Jul, 2018 2 commits
-
-
Michael Starzinger authored
R=ahaas@chromium.org TEST=cctest/test-wasm-shared-engine BUG=v8:7424 Change-Id: Idad7bcfe2734df7395c62ec56fb737e180035c76 Reviewed-on: https://chromium-review.googlesource.com/1152918 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#54808}
-
Michael Starzinger authored
This avoids serializing and deserializing the sharable part of a module when it is transferred via {TransferrableModule}, which is possible when all Isolates run off the same engine via the --wasm-shared-engine flag. This adds a new --wasm-shared-code flag to enable this feature. R=ahaas@chromium.org BUG=v8:7424 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: I099d581d7ccc4d058a4646f545a011745fd84eb4 Reviewed-on: https://chromium-review.googlesource.com/1142144 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#54806}
-
- 26 Jul, 2018 1 commit
-
-
Michael Starzinger authored
R=clemensh@chromium.org TEST=cctest/test-wasm-shared-engine BUG=v8:7424 Change-Id: I32510f33fb88c2f1a79864e6033d3aa53ad9fe48 Reviewed-on: https://chromium-review.googlesource.com/1150149 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#54727}
-
- 25 Jul, 2018 1 commit
-
-
Michael Starzinger authored
This flag allows to share a single WasmEngine among all Isolates within the same process. It will ultimately allow to share the WasmCode objects associated with modules that are transferred via structured cloning. R=clemensh@chromium.org TEST=mjsunit/wasm/worker-module BUG=v8:7424 Change-Id: I70d852d319b2a80bd02e0a2a838dcdfa071df6e1 Reviewed-on: https://chromium-review.googlesource.com/1138213 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#54678}
-
- 24 Jul, 2018 1 commit
-
-
Michael Starzinger authored
R=ahaas@chromium.org Change-Id: I7c6fd17f36d33451ce7605e74002515295c7ad1c Reviewed-on: https://chromium-review.googlesource.com/1145195Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#54629}
-
- 16 Jul, 2018 3 commits
-
-
Michael Starzinger authored
This is a reland of b7f0951f Original change's description: > [wasm] Add a separate CodeTracer to the WasmEngine. > > This makes sure the TurboFan pipeline is independent of the Isolate by > getting the CodeTracer from the WasmEngine for WebAssembly compilations. > > R=clemensh@chromium.org > > Change-Id: I343af1a2bfaeff77e2f41ef0c53fbfe165e2e202 > Reviewed-on: https://chromium-review.googlesource.com/1134997 > Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> > Reviewed-by: Clemens Hammacher <clemensh@chromium.org> > Cr-Commit-Position: refs/heads/master@{#54455} Change-Id: I48b161b5f35dd388fd3ef299afe04214a666b5a6 Reviewed-on: https://chromium-review.googlesource.com/1138114 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#54462}
-
Sigurd Schneider authored
This reverts commit b7f0951f. Reason for revert: https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Linux64%20TSAN/21517 Original change's description: > [wasm] Add a separate CodeTracer to the WasmEngine. > > This makes sure the TurboFan pipeline is independent of the Isolate by > getting the CodeTracer from the WasmEngine for WebAssembly compilations. > > R=clemensh@chromium.org > > Change-Id: I343af1a2bfaeff77e2f41ef0c53fbfe165e2e202 > Reviewed-on: https://chromium-review.googlesource.com/1134997 > Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> > Reviewed-by: Clemens Hammacher <clemensh@chromium.org> > Cr-Commit-Position: refs/heads/master@{#54455} TBR=mstarzinger@chromium.org,clemensh@chromium.org Change-Id: I5f69f12ab29dcb92e7b7f53632eb73a3abc1f6af No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/1138113Reviewed-by:
Sigurd Schneider <sigurds@chromium.org> Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#54459}
-
Michael Starzinger authored
This makes sure the TurboFan pipeline is independent of the Isolate by getting the CodeTracer from the WasmEngine for WebAssembly compilations. R=clemensh@chromium.org Change-Id: I343af1a2bfaeff77e2f41ef0c53fbfe165e2e202 Reviewed-on: https://chromium-review.googlesource.com/1134997 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#54455}
-
- 10 Jul, 2018 1 commit
-
-
Michael Starzinger authored
This gathers TurboFan compilation statistics for WebAssembly separately from the JavaScript statistics. It is a preparation to having multiple Isolates trigger TurboFan compilations in a shared engine. By adding compilation statistics to the engine, their lifetime is independent of any particular Isolate. R=ahaas@chromium.org Change-Id: I1bd0fbe6d6bde65ca813ccfd1154558ea6cddb07 Reviewed-on: https://chromium-review.googlesource.com/1131121 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#54357}
-
- 28 Jun, 2018 1 commit
-
-
Clemens Hammacher authored
We should only cancel asynchronous compilation jobs for the isolate which is being recycled. R=titzer@chromium.org Bug: chromium:854755 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: I31d6c3ccb648f5465e52f4bc47c4261894458e60 Reviewed-on: https://chromium-review.googlesource.com/1118378Reviewed-by:
Ben Titzer <titzer@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#54092}
-
- 13 Jun, 2018 1 commit
-
-
Clemens Hammacher authored
We assumed that if the ErrorThrower is empty after instantiation, then instantiation succeeded and an instance exists which we can return. However, if the start function throws, no instance exists, which caused a crash. With this CL we handle execeptions thrown by the start function correctly. R=clemensh@chromium.org Bug: chromium:848966 Change-Id: I51dc94e6bc563aa4a4b88c44a14e831af913fbd8 Reviewed-on: https://chromium-review.googlesource.com/1092234Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#53687}
-
- 11 Jun, 2018 1 commit
-
-
Leszek Swirski authored
Whenever an Isolate is available on a variable, field, or method parameter, use that instead of GetIsolate(). Also convert simple cases of the one-argument handle constructor to either use an available Isolate, or use GetIsolate() if their first parameter is a variable. Bug: v8:7786 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: I52805905a9ca8729615ead78859f43d5e8f605f1 Reviewed-on: https://chromium-review.googlesource.com/1092853 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#53629}
-
- 24 May, 2018 2 commits
-
-
Andreas Haas authored
At the moment, WebAssembly.instantiate(bytes) is implemented by desugaring it to WebAssembly.compile(bytes).then(WebAssembly.instantiate). The problem is that the {then} in this snippet is observable. With this CL I introduce a CompilationResultResolver which allows to do the desugaring internally and thereby make the {then} unobservable. Unfortunately the result of WebAssembly.instantiate(bytes) is different than the result of WebAssembly.instantiate(module). Therefore I also introduced an InstantiationResultResolver for symmetry with WebAssembly.compile. R=mstarzinger@chromium.org Bug: chromium:837417 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: I2d98e03d65f2ada19041d5a9e2df5da91b24ccca Reviewed-on: https://chromium-review.googlesource.com/1059783 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#53347}
-
Marja Hölttä authored
Moving them away was a mistake. Fixing this enables getting rid of a bunch of includes. BUG=v8:5402 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: I5482eab4281c7450350f058fe0a04a6f375ea082 Reviewed-on: https://chromium-review.googlesource.com/1070188Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#53328}
-
- 09 May, 2018 1 commit
-
-
Andreas Haas authored
The CompilationManager was introduced to manage the memory of AsyncCompileJobs. However, by now this can be done better by the new WasmEngine. This CL just moves the code to wasm-engine.[h,cc] and adjusts the callsites. R=titzer@chromium.org Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: Icd2c1f19feeaa854c74e020b41e314b8ad00cea5 Reviewed-on: https://chromium-review.googlesource.com/1052109Reviewed-by:
Ben Titzer <titzer@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#53112}
-
- 30 Apr, 2018 1 commit
-
-
Marja Hölttä authored
BUG=v8:7490,v8:7570 Change-Id: I74fa43a747b0d399c700acc43eb82e15ea90ba16 Reviewed-on: https://chromium-review.googlesource.com/1032736Reviewed-by:
Andreas Haas <ahaas@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#52876}
-
- 27 Apr, 2018 1 commit
-
-
Ben L. Titzer authored
R=ahaas@chromium.org Bug: v8:7570 Change-Id: I5327d1b8e2f2bf4c1538f565442305a0e1f05b65 Reviewed-on: https://chromium-review.googlesource.com/1032550Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Ben Titzer <titzer@chromium.org> Cr-Commit-Position: refs/heads/master@{#52835}
-
- 19 Mar, 2018 1 commit
-
-
Kim-Anh Tran authored
The compilation state of a native module is now extracted into its own datastructure. It reflects which functions are left to compile, and contains task managers to accomplish parallel and asynchronous compilation. Bug: Change-Id: I45308c7b32ba78e6c83f2d260990846a653bbd9c Reviewed-on: https://chromium-review.googlesource.com/958865 Commit-Queue: Kim-Anh Tran <kimanh@google.com> Reviewed-by:
Ben Titzer <titzer@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#52013}
-
- 02 Feb, 2018 1 commit
-
-
Michael Starzinger authored
R=adamk@chromium.org Change-Id: Ib6b66003aaf8694c1e5eed6db7d2537322eddad8 Reviewed-on: https://chromium-review.googlesource.com/897498Reviewed-by:
Andreas Haas <ahaas@chromium.org> Reviewed-by:
Adam Klein <adamk@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#51051}
-
- 31 Jan, 2018 1 commit
-
-
Michael Starzinger authored
This prevents unnecessary switching back and forth between internal and public API boundaries. It is also a step towards making all WebAssembly internals completely independent of "scheduled exception" values. R=ahaas@chromium.org Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: I46e8cb4fad3d255d9bd20b9c343901a03a25426c Reviewed-on: https://chromium-review.googlesource.com/895742Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#51002}
-
- 22 Jan, 2018 1 commit
-
-
Mostyn Bramley-Moore authored
These functions are duplicated in module-compiler.cc and therefore cause jumbo build failures. It looks like this is planned to be refactored later by titzer. So let's just give them new names for now, to unbreak jumbo builds. Bug: v8:7316 Change-Id: I4ba0c8dcc8474a4b02a47c16f2da77650861cfe4 Reviewed-on: https://chromium-review.googlesource.com/877279Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Mostyn Bramley-Moore <mostynb@vewd.com> Cr-Commit-Position: refs/heads/master@{#50743}
-
- 18 Jan, 2018 1 commit
-
-
Ben L. Titzer authored
This is a further step to separate the implementation of the JavaScript API from the internals of the WASM implementation. Now, wasm-js.cc only needs to interact with the WASM engine and is (almost) independent of module-decoder.h and module-compiler.h. Also, move SyncCompileAndInstantiate() into wasm-module-runner.cc. Bug: v8:7316 R=clemensh@chromium.org, mstarzinger@chromium.org Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: I7765af54ac16f53a5ff88c17a22c5d36bacaf926 Reviewed-on: https://chromium-review.googlesource.com/870871 Commit-Queue: Ben Titzer <titzer@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#50679}
-
- 17 Jan, 2018 1 commit
-
-
Ben L. Titzer authored
This is the first in a series of CLs that will separate the JS API from the implementation of WebAssembly by bottlenecking interactions through the WasmEngine. In the long run, the JS API and much of V8 should rely only on the WasmEngine interface, which will represent the "public interface" for embedding WebAssembly. Next: hide compilation-related methods behind WasmEngine. Bug: v8:7316 Change-Id: I93404f0dc8a201ae99d30b4c1ca34606e3dddbca Reviewed-on: https://chromium-review.googlesource.com/868590 Commit-Queue: Ben Titzer <titzer@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#50660}
-