- 20 Aug, 2020 2 commits
-
-
Maya Lekova authored
This reverts commit d7b20edc. Reason for revert: Introduces data races - https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20TSAN/32898 Original change's description: > [wasm][ukm] Add tests for Wasm events > > Ensure that events are triggered when a module is decoded, compiled, > instantiated and tiered-up. > > R=clemensb@chromium.org > > Bug: chromium:1092417 > > Change-Id: I9dc87957fc03023c5ab1c4f49e865957c8324e1a > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2351676 > Commit-Queue: Emanuel Ziegler <ecmziegler@chromium.org> > Reviewed-by: Clemens Backes <clemensb@chromium.org> > Cr-Commit-Position: refs/heads/master@{#69508} TBR=clemensb@chromium.org,ecmziegler@chromium.org Change-Id: I9bcfeda1048939a8142f5003b03feab399f9de96 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:1092417 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2366785Reviewed-by: Maya Lekova <mslekova@chromium.org> Commit-Queue: Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/master@{#69509}
-
Emanuel Ziegler authored
Ensure that events are triggered when a module is decoded, compiled, instantiated and tiered-up. R=clemensb@chromium.org Bug: chromium:1092417 Change-Id: I9dc87957fc03023c5ab1c4f49e865957c8324e1a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2351676 Commit-Queue: Emanuel Ziegler <ecmziegler@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#69508}
-
- 17 Aug, 2020 1 commit
-
-
Emanuel Ziegler authored
Add an event for recording metrics related to decoding Wasm modules. R=clemensb@chromium.org Bug: chromium:1092417 Change-Id: Id60560d8eb8c14edb5b863857b18c1c82f48e7e7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2351672 Commit-Queue: Emanuel Ziegler <ecmziegler@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#69425}
-
- 06 Apr, 2020 1 commit
-
-
Z Nguyen-Huu authored
Currently, only one memory is supported. For memory, we would use name as follows. 1. If import: use <import_module>.<field_name> from WasmImport. 2. If export: use <field_name> from WasmExport. 3. Use memory<index>. Doc: https://docs.google.com/document/d/1XoXWONLBgZWQ9dhtoMpQPvD0fnnWA50OorsuSXfME3g Bug: v8:10242 Change-Id: Ifd342bcd86ac302f5b43f2ee88a8ea21a28b5a0f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2132724 Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com> Reviewed-by: Clemens Backes <clemensb@chromium.org> Reviewed-by: Kim-Anh Tran <kimanh@chromium.org> Cr-Commit-Position: refs/heads/master@{#67020}
-
- 30 Mar, 2020 1 commit
-
-
Z Nguyen-Huu authored
For globals, we would use name as follows. 1. If import: use <import_module>.<field_name> from WasmImport. 2. If export: use <field_name> from WasmExport. 3. Use global<index>. Add DecodeGlobalNames similar to DecodeFunctionNames. Doc: https://docs.google.com/document/d/1XoXWONLBgZWQ9dhtoMpQPvD0fnnWA50OorsuSXfME3g Bug: v8:10242 Change-Id: I11131528fc6ae6ca50727e9b428f76e76b0000e5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2122523 Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com> Reviewed-by: Clemens Backes <clemensb@chromium.org> Reviewed-by: Kim-Anh Tran <kimanh@chromium.org> Cr-Commit-Position: refs/heads/master@{#66910}
-
- 26 Mar, 2020 1 commit
-
-
Z Nguyen-Huu authored
For exported functions that do not have a name yet, we use the field name (see <name> of WasmExport) of the first export entry. Doc: https://docs.google.com/document/d/1XoXWONLBgZWQ9dhtoMpQPvD0fnnWA50OorsuSXfME3g/edit#heading=h.6yuhg1v2w3q4 Bug: v8:10242 Change-Id: Icfa55fd50e5d1c4cf10581b7d322112e9f113388 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2112684 Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com> Reviewed-by: Clemens Backes <clemensb@chromium.org> Reviewed-by: Kim-Anh Tran <kimanh@chromium.org> Cr-Commit-Position: refs/heads/master@{#66877}
-
- 17 Mar, 2020 1 commit
-
-
Philip Pfaffe authored
Add a scriptLanguage enum to the new scripts events. This overhauls crrev.com/c/2011083 that was related. Report the code section offset as well as the script language on the Debugger.scriptParsed and Debugger.scriptFailedToParse events. Bug: chromium:1057569 Change-Id: I40b43f28f0b3e094720db4fc1f07db1a0c293ee0 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2083025Reviewed-by: Sigurd Schneider <sigurds@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Commit-Queue: Philip Pfaffe <pfaffe@chromium.org> Cr-Commit-Position: refs/heads/master@{#66749}
-
- 27 Feb, 2020 1 commit
-
-
Clemens Backes authored
Most function signatures are created once and never changed. Hence pass them as const pointer. This makes it clear in function signatures that these parameters will not be modified. This also avoids a few ugly const_casts where we were passing pointers to constexpr FunctionSigs via non-const pointers. R=jkummerow@chromium.org Bug: v8:10155 Change-Id: Ieb658ab5582bff276f76babdaf7ddb8f72bd4790 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2072739Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#66478}
-
- 25 Feb, 2020 1 commit
-
-
Andreas Haas authored
This is a reland of 03d5a7ba Nothing changed here compared to the original test. The tests on the blink side were invalid, I fixed them in https://crrev.com/c/2066907. Original change's description: > [wasm] The name of a custom section can cause a validation error > > The WebAssembly spec defines that the name of a custom section can cause > a validation error. The streaming decoder, however, used a separate > Decoder object to decode the name, and thereby avoided a validation > error. With this CL the streaming decoder uses the main decoder to > decode the name of the custom section. > > In addition this CL removes the test mjsunit/regress/wasm/regress-789952. > This test defined an invalid WebAssembly module and expected it to > compile. As it is a regression test, it makes no sense to fix the test. > The module is invalid because it defines the length of the custom section > to be '0', so there are no bytes in the custom section for its name. > > R=clemensb@chromium.org > CC=thibaudm@chromium.org > > Bug: v8:10126 > Change-Id: I8cfc77c9a5916570d5362d5922e0179a29774da8 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2041446 > Commit-Queue: Andreas Haas <ahaas@chromium.org> > Reviewed-by: Clemens Backes <clemensb@chromium.org> > Cr-Commit-Position: refs/heads/master@{#66348} Bug: v8:10126 Change-Id: I48aaed8eb9899da1703030fb6809fe46a6e66191 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2069325 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#66431}
-
- 24 Feb, 2020 1 commit
-
-
Philip Pfaffe authored
This reverts commit 827107a7. Reason for revert: https://bugs.chromium.org/p/chromium/issues/detail?id=1054664 Original change's description: > [wasm-debug] Let wasm scripts report correct column information. > > In the debugger, wasm scripts currently do not contain meaningful column > informations. Fix that by keeping track of the offset and size of the > wasm code section inthe module and reporting that to the debugger. > > Bug: chromium:1042636 > Change-Id: Ie2b5d3a50952a467d256f815c16e459cb0ae600e > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2011083 > Commit-Queue: Philip Pfaffe <pfaffe@chromium.org> > Reviewed-by: Simon Zünd <szuend@chromium.org> > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> > Cr-Commit-Position: refs/heads/master@{#65913} Bug: chromium:1042636 Change-Id: Ic59d71111c3274688828bdbf6894f7f3274dc50a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2066983 Commit-Queue: Philip Pfaffe <pfaffe@chromium.org> Reviewed-by: Sigurd Schneider <sigurds@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Simon Zünd <szuend@chromium.org> Cr-Commit-Position: refs/heads/master@{#66409}
-
- 19 Feb, 2020 2 commits
-
-
Michael Achenbach authored
This reverts commit 03d5a7ba. Reason for revert: Needs rebaseline: https://ci.chromium.org/p/v8/builders/ci/V8%20Blink%20Linux/3243 Original change's description: > [wasm] The name of a custom section can cause a validation error > > The WebAssembly spec defines that the name of a custom section can cause > a validation error. The streaming decoder, however, used a separate > Decoder object to decode the name, and thereby avoided a validation > error. With this CL the streaming decoder uses the main decoder to > decode the name of the custom section. > > In addition this CL removes the test mjsunit/regress/wasm/regress-789952. > This test defined an invalid WebAssembly module and expected it to > compile. As it is a regression test, it makes no sense to fix the test. > The module is invalid because it defines the length of the custom section > to be '0', so there are no bytes in the custom section for its name. > > R=clemensb@chromium.org > CC=thibaudm@chromium.org > > Bug: v8:10126 > Change-Id: I8cfc77c9a5916570d5362d5922e0179a29774da8 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2041446 > Commit-Queue: Andreas Haas <ahaas@chromium.org> > Reviewed-by: Clemens Backes <clemensb@chromium.org> > Cr-Commit-Position: refs/heads/master@{#66348} TBR=ahaas@chromium.org,clemensb@chromium.org Change-Id: I5a7ea265ce47b9e685a5056bb83db6dc58f774a9 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:10126 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2065168Reviewed-by: Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#66356}
-
Andreas Haas authored
The WebAssembly spec defines that the name of a custom section can cause a validation error. The streaming decoder, however, used a separate Decoder object to decode the name, and thereby avoided a validation error. With this CL the streaming decoder uses the main decoder to decode the name of the custom section. In addition this CL removes the test mjsunit/regress/wasm/regress-789952. This test defined an invalid WebAssembly module and expected it to compile. As it is a regression test, it makes no sense to fix the test. The module is invalid because it defines the length of the custom section to be '0', so there are no bytes in the custom section for its name. R=clemensb@chromium.org CC=thibaudm@chromium.org Bug: v8:10126 Change-Id: I8cfc77c9a5916570d5362d5922e0179a29774da8 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2041446 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#66348}
-
- 24 Jan, 2020 1 commit
-
-
Clemens Backes authored
We currently print asm.js functions converted to wasm as "function foo() { [native code] }", even though without asm to wasm translation we get the proper source code. This is an observable difference that should not be, and also foozzie finds this frequently in different variations. This CL makes us remember the start position (position of the "function" token) and end position (right behind the closing "}") of each function we transform to wasm. These offsets, together with the Script that contained the function, allows us to reconstruct the source code of the function for the {toString()} method. R=jkummerow@chromium.org Bug: chromium:667678 Change-Id: If22471cad4cefdfc67f6d1b8fda85aa0eeb411bd Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2016582 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#65972}
-
- 22 Jan, 2020 1 commit
-
-
Philip Pfaffe authored
In the debugger, wasm scripts currently do not contain meaningful column informations. Fix that by keeping track of the offset and size of the wasm code section inthe module and reporting that to the debugger. Bug: chromium:1042636 Change-Id: Ie2b5d3a50952a467d256f815c16e459cb0ae600e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2011083 Commit-Queue: Philip Pfaffe <pfaffe@chromium.org> Reviewed-by: Simon Zünd <szuend@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#65913}
-
- 21 Jan, 2020 1 commit
-
-
Clemens Backes authored
The asm.js offset table exists in two forms: Delta-encoded in a byte array, as generated during asm translation, and decoded, for faster lookup. This CL moves the encoded version from the {AsmWasmData} and {WasmModuleObject} to the {WasmModule}, and stores it off-heap in a C++ array instead of a {ByteArray}. Also, it moves the decoded version off-heap by storing it in a C++ data structure that makes lookup easy, instead of encoding it again in another {ByteArray}. This change is a nice refactoring in itself, but it also prepares adding more information to the offset table. For reconstructing the source code of an asm.js function, we will need to store the start and end offsets of the whole function as well (see linked bug). R=jkummerow@chromium.org Bug: chromium:667678 Change-Id: I79b789c3122dd8ba803cedc6bfdcc3d4b1fa0fd4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2011108 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#65900}
-
- 16 Jan, 2020 1 commit
-
-
Clemens Backes authored
We were decoding the names of locals into a C++ data structure, and then generated a FixedArray out of that, stored in the on-heap WasmDebugInfo. In order to support name lookup for debugging with Liftoff, where no WasmDebugInfo will be present, this CL refactors the C++ data structure to allow direct lookups and stores it in the C++ DebugInfo structure. With this CL, the names are still only used from the old interpreter-based debugging path. A follow-up CL will then also use it from Liftoff. R=thibaudm@chromium.org Bug: v8:10019 Change-Id: I1397021b5d69b9346fc26f5e83653360f428c5e7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2002541 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by: Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/master@{#65819}
-
- 13 Sep, 2019 1 commit
-
-
Clemens Hammacher authored
After https://crrev.com/c/1800575 and https://crrev.com/c/1803343, which tried to fix this on occuring compile errors, this CL systematically adds the <memory> include to each header that uses {std::unique_ptr}. R=sigurds@chromium.org TBR=mlippautz@chromium.org,alph@chromium.org,rmcilroy@chromium.org,verwaest@chromium.org Bug: v8:9396 Change-Id: If7f9c3140842f9543135dddd7344c0f357999da0 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1803349Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Sigurd Schneider <sigurds@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#63767}
-
- 08 Jul, 2019 2 commits
-
-
Clemens Hammacher authored
R=ahaas@chromium.org Bug: v8:9429, v8:9396 Change-Id: I79e5d707f6c3970c96eb2186604d8b26fda787e5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1687897Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#62556}
-
Clemens Hammacher authored
Cpplint usually checks for non-const reference arguments. They are forbidden in the style guide, and v8 does not explicitly make an exception here. This CL re-enables that warning, and fixes all current violations by adding an explicit "NOLINT(runtime/references)" comment. In follow-up CLs, we should aim to remove as many of them as possible. TBR=mlippautz@chromium.org Bug: v8:9429 Change-Id: If7054d0b366138b731972ed5d4e304b5ac8423bb Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1687891Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#62551}
-
- 24 May, 2019 1 commit
-
-
Yang Guo authored
TBR=mvstanton@chromium.org,neis@chromium.org,ahaas@chromium.org Bug: v8:9247 Change-Id: I5433c863a54f3412d73df0d38aba3fdbcfac7ebe Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1627973 Commit-Queue: Yang Guo <yangguo@chromium.org> Auto-Submit: Yang Guo <yangguo@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#61830}
-
- 29 Mar, 2019 1 commit
-
-
Clemens Hammacher authored
Even though both are allowed in the style guide, it recommends to use 'using', as its syntax is more consistent with the rest of C++. This CL turns all typedefs in wasm code to 'using' declarations. R=ahaas@chromium.org Bug: v8:8834 Change-Id: Ibdce88a5cc31e0785cbc1b34088bd39aa3ec84b3 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1545890Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#60519}
-
- 18 Mar, 2019 1 commit
-
-
Frederik Gossen authored
Implements decoding of compilation hints section in {ModuleDecoderImpl}. The {wasm-module-builder.js} supports the creation of that section. The feature can be enabled with {--experimental-wasm-compilation-hints}. Bug: v8:9003 Change-Id: Ic87e19d916f2ce316de453ea8c7c48c236a6d673 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1521115Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Frederik Gossen <frgossen@google.com> Cr-Commit-Position: refs/heads/master@{#60299}
-
- 23 Oct, 2018 1 commit
-
-
Clemens Hammacher authored
R=mstarzinger@chromium.org Bug: v8:8238 Change-Id: I93c9d2a643731766f15f4db1bf7647a85488a6d0 Reviewed-on: https://chromium-review.googlesource.com/c/1296454Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Ben Titzer <titzer@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#56906}
-
- 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}
-
- 01 Aug, 2018 1 commit
-
-
Ben L. Titzer authored
This removes the need to pass Counters into the function body decoder by making timing happen in the callers. R=mstarzinger@chromium.org Change-Id: I05c8d2c85b1c315150cbf9e9b3f68efa03114b75 Reviewed-on: https://chromium-review.googlesource.com/1156700 Commit-Queue: Ben Titzer <titzer@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#54842}
-
- 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}
-
- 20 Jul, 2018 1 commit
-
-
Michael Starzinger authored
R=clemensh@chromium.org BUG=v8:7754 Change-Id: Ia4c2fb2d87c8a5de96fa9f1f0621d21ae3eda611 Reviewed-on: https://chromium-review.googlesource.com/1145181Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#54591}
-
- 18 Jul, 2018 1 commit
-
-
Leszek Swirski authored
ReadOnlyRoots means that some added Isolate parameters are no longer needed. So, we can remove them. This patch was generated mostly automatically with a bespoke tool. Bug: v8:7786 Bug: v8:7754 Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng Change-Id: Ia44fd2a66652253f780e3674bf7fb431caef0493 Reviewed-on: https://chromium-review.googlesource.com/1136305 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Dan Elphick <delphick@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#54526}
-
- 18 Jun, 2018 1 commit
-
-
Clemens Hammacher authored
We currently store the {WasmModule} (generated during decoding) in a unique_ptr and pass ownership to the {WasmModuleObject} after compilation. I plan to move the {Managed<NativeModule>} from {WasmCompiledModule} to {WasmModuleObject}, which will force us to create the {WasmModuleObject} *before* compilation, so that the {CompilationState} is available during compilation. This CL prepares that refactoring by storing the {WasmModule} in a {shared_ptr} in the {AsyncCompileJob}. Note that it will eventually be stored in a {shared_ptr} in the {Managed} anyway. R=titzer@chromium.org Change-Id: Iac5e3c1067af2801e938f77a455a68807801526a Reviewed-on: https://chromium-review.googlesource.com/1104117 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Ben Titzer <titzer@chromium.org> Cr-Commit-Position: refs/heads/master@{#53801}
-
- 19 Apr, 2018 1 commit
-
-
Clemens Hammacher authored
This refactoring is a big step towards separating Turbofan-related code from backend independent code. This will allow us to include way less headers from "src/compiler" at various places. The {WasmCompilationUnit} contained information for Turbofan compilation, and for Liftoff compilation. This CL tears this apart, such that {WasmCompilationUnit} holds backend-independent information, plus a pointer to either {LiftoffCompilationUnit} or {TurbofanWasmCompilationUnit}. These pointers are opaque, so that {function-compiler.h}, defining {WasmCompilationUnit}, does not need to include any Turbofan specific or Liftoff specific headers. R=ahaas@chromium.org, titzer@chromium.org, mstarzinger@chromium.org Bug: v8:7570, v8:6600 Change-Id: I024c9a23508ee1b4b3cbe1d068c8e785d732daca Reviewed-on: https://chromium-review.googlesource.com/1016640 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#52684}
-
- 16 Mar, 2018 1 commit
-
-
Stephan Herhut authored
The streaming compilation pipeline did not parse the names section and this is also not longer needed for getting function or local names. However, the module name still needs to be set eagerly. Change-Id: I1ac12e98b970ea0781302dc44ee684510bdf2d69 Reviewed-on: https://chromium-review.googlesource.com/962452Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: Stephan Herhut <herhut@chromium.org> Cr-Commit-Position: refs/heads/master@{#51979}
-
- 13 Mar, 2018 1 commit
-
-
Stephan Herhut authored
Function names are optional in wasm and might not be present for most functions. Instead of storing an empty name with each function, this change loads names, if present, on first access of the name. This also fixes an inconsistency with streaming compilation. Under streaming compilation, functions are compiled before parsing the name section. Hence, they always received an empty name. With this change, assignment of names is typically deferred until the whole module was parsed. Bug: chromium:820291 Change-Id: I86d76aa40b7c45897d152725547795c8b6b9b9ba Reviewed-on: https://chromium-review.googlesource.com/955647 Commit-Queue: Stephan Herhut <herhut@chromium.org> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#51909}
-
- 11 Jan, 2018 1 commit
-
-
Ben L. Titzer authored
This CL centralizes constants related to decoding from several places into one place and makes it no longer necessary to include wasm-opcodes.h for some simple constants. R=clemensh@chromium.org Bug: Change-Id: I53aa81e34167df467bc7455b717bf67083033943 Reviewed-on: https://chromium-review.googlesource.com/859764 Commit-Queue: Ben Titzer <titzer@chromium.org> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#50503}
-
- 13 Oct, 2017 1 commit
-
-
Andreas Haas authored
This flag describes that the memory defined in a wasm module has a maximum size. Therefore I think kHasMaximumFlag is more appropriate. R=titzer@chromium.org Bug: v8:6921 Change-Id: Ie794d670f74e7f1f9a42822e2f774da85aaaaa4b Reviewed-on: https://chromium-review.googlesource.com/718198Reviewed-by: Ben Titzer <titzer@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#48517}
-
- 15 Sep, 2017 1 commit
-
-
Andreas Haas authored
In this CL I implement streaming compilation for WebAssembly, as described in the design doc I have sent out already. In this implementation the decoding of sections other than the code section is done immediately on the foreground thread. Eventually all decoding should happen in the background. I think it is acceptable to do the decoding on the foreground thread for now because I have finished it already, and decoding in the background would add even more complexity to this CL. Bug:v8:6785 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: I285e1e5e1a5a243113c92571b25ee9bae551d0ed Reviewed-on: https://chromium-review.googlesource.com/631721Reviewed-by: Mircea Trofin <mtrofin@chromium.org> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#48022}
-
- 14 Sep, 2017 1 commit
-
-
Deepti Gandluri authored
- Validate that atomic ops can only be called when shared memory is declared - Throw Compile/Link erros on mismatch between declared, imported memory - Test harness helpers for setting shared memory, tests BUG=v8:6532 R=binji@chromium.org, bradnelson@chromium.org Change-Id: I43fe3d04bb7e3e0a2cecca0528578f98844d2608 Reviewed-on: https://chromium-review.googlesource.com/665379 Commit-Queue: Brad Nelson <bradnelson@chromium.org> Reviewed-by: Brad Nelson <bradnelson@chromium.org> Cr-Commit-Position: refs/heads/master@{#48019}
-
- 28 Aug, 2017 1 commit
-
-
Michael Starzinger authored
This makes sure the minimum memory size for WebAssembly modules derived from asm.js is set to zero. It allows instatiation without allocating an underlying memory, when such memory is unused. It also fixes a bug in patching of embedded memory sizes for asm.js modules. R=ahaas@chromium.org TEST=mjsunit/regress/regress-crbug-759327 BUG=chromium:759327 Change-Id: If5a965b96a03cbb5ba15bc41fbaf359f74961f41 Reviewed-on: https://chromium-review.googlesource.com/637912 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#47646}
-
- 19 Aug, 2017 2 commits
-
-
Mircea Trofin authored
This reverts commit e79d4f06. Reason for revert: Fixed compile error Original change's description: > Revert "[wasm] Move the ModuleEnv to compiler and make it immutable." > > This reverts commit d04660db. > > Reason for revert: Suspect for blocking the roll: > https://chromium-review.googlesource.com/c/621191 > > See: > https://build.chromium.org/p/tryserver.chromium.win/builders/win_optional_gpu_tests_rel/builds/13583 > > Original change's description: > > [wasm] Move the ModuleEnv to compiler and make it immutable. > > > > This CL (finally) makes the contract between the compiler and the module > > environment clear. In order to compile a function, the caller must provide > > an instance of the compiler::ModuleEnv struct, which contains references > > to code, function and signature tables, memory start, etc. > > > > R=mtrofin@chromium.org,ahaas@chromium.org > > > > Bug: > > Change-Id: I68e44d5da2c5ad44dad402029c2e57f2d5d25b4f > > Reviewed-on: https://chromium-review.googlesource.com/613880 > > Reviewed-by: Mircea Trofin <mtrofin@chromium.org> > > Reviewed-by: Andreas Haas <ahaas@chromium.org> > > Commit-Queue: Ben Titzer <titzer@chromium.org> > > Cr-Commit-Position: refs/heads/master@{#47418} > > TBR=titzer@chromium.org,mtrofin@chromium.org,ahaas@chromium.org > > Change-Id: I60a369a43121720fbb13ea6c2ec6ca948d60a20b > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Reviewed-on: https://chromium-review.googlesource.com/622547 > Commit-Queue: Michael Achenbach <machenbach@chromium.org> > Reviewed-by: Michael Achenbach <machenbach@chromium.org> > Cr-Commit-Position: refs/heads/master@{#47451} TBR=machenbach@chromium.org,titzer@chromium.org,mtrofin@chromium.org,ahaas@chromium.org Change-Id: Ie0efa6204c41b2cb672586a7ac0a622ca13ce5fe No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/622033 Commit-Queue: Mircea Trofin <mtrofin@chromium.org> Reviewed-by: Mircea Trofin <mtrofin@chromium.org> Cr-Commit-Position: refs/heads/master@{#47453}
-
Michael Achenbach authored
This reverts commit d04660db. Reason for revert: Suspect for blocking the roll: https://chromium-review.googlesource.com/c/621191 See: https://build.chromium.org/p/tryserver.chromium.win/builders/win_optional_gpu_tests_rel/builds/13583 Original change's description: > [wasm] Move the ModuleEnv to compiler and make it immutable. > > This CL (finally) makes the contract between the compiler and the module > environment clear. In order to compile a function, the caller must provide > an instance of the compiler::ModuleEnv struct, which contains references > to code, function and signature tables, memory start, etc. > > R=mtrofin@chromium.org,ahaas@chromium.org > > Bug: > Change-Id: I68e44d5da2c5ad44dad402029c2e57f2d5d25b4f > Reviewed-on: https://chromium-review.googlesource.com/613880 > Reviewed-by: Mircea Trofin <mtrofin@chromium.org> > Reviewed-by: Andreas Haas <ahaas@chromium.org> > Commit-Queue: Ben Titzer <titzer@chromium.org> > Cr-Commit-Position: refs/heads/master@{#47418} TBR=titzer@chromium.org,mtrofin@chromium.org,ahaas@chromium.org Change-Id: I60a369a43121720fbb13ea6c2ec6ca948d60a20b No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/622547 Commit-Queue: Michael Achenbach <machenbach@chromium.org> Reviewed-by: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#47451}
-
- 18 Aug, 2017 1 commit
-
-
Ben L. Titzer authored
This CL (finally) makes the contract between the compiler and the module environment clear. In order to compile a function, the caller must provide an instance of the compiler::ModuleEnv struct, which contains references to code, function and signature tables, memory start, etc. R=mtrofin@chromium.org,ahaas@chromium.org Bug: Change-Id: I68e44d5da2c5ad44dad402029c2e57f2d5d25b4f Reviewed-on: https://chromium-review.googlesource.com/613880Reviewed-by: Mircea Trofin <mtrofin@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: Ben Titzer <titzer@chromium.org> Cr-Commit-Position: refs/heads/master@{#47418}
-