- 29 Apr, 2019 1 commit
-
-
Clemens Hammacher authored
Our {Vector} template provides both {start} and {begin} methods. They return exactly the same value. Since the {begin} method is needed for iteration, and is also what standard containers provide, this CL switches all uses of the {start} method to use {begin} instead. Patchset 1 was auto-generated by using this clang AST matcher: callExpr( callee( cxxMethodDecl( hasName("start"), ofClass(hasName("v8::internal::Vector"))) ), argumentCountIs(0)) Patchset 2 was created by running clang-format. Patchset 3 then removes the now unused {Vector::start} method. R=jkummerow@chromium.org TBR=mstarzinger@chromium.org,yangguo@chromium.org,verwaest@chromium.org Bug: v8:9183 Change-Id: Id9f01c92870872556e2bb3f6d5667463b0e3e5c6 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1587381Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#61081}
-
- 06 Mar, 2019 1 commit
-
-
Clemens Hammacher authored
This fixes a bug in the offset computation when instantiating the decoder to decode a VarInt32. It also extends the streaming decoder test to check the error location. R=ahaas@chromium.org Bug: v8:8814 Change-Id: Id8ce31ce7e494cce14231febbb5b0c7d91a26e01 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1505453Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#60067}
-
- 28 Feb, 2019 1 commit
-
-
Clemens Hammacher authored
We sometimes store function indexes and number of functions as {size_t} and sometimes as {int}. Unify a few places to be {int}. R=ahaas@chromium.org Change-Id: I1d204cbd9388245f97f291a469b32743457ab2c0 Reviewed-on: https://chromium-review.googlesource.com/c/1491607Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#59946}
-
- 26 Feb, 2019 1 commit
-
-
Michael Starzinger authored
R=ahaas@chromium.org TEST=mjsunit/regress/wasm/regress-935138 BUG=chromium:935138 Change-Id: I73465e0edcdfcd33b96764ffaf5f33519e424bb8 Reviewed-on: https://chromium-review.googlesource.com/c/1486471 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#59852}
-
- 19 Feb, 2019 1 commit
-
-
Michael Starzinger authored
This removes an outdated section order check from {CreateNewBuffer} and relies solely on the checks done in {ProcessSection}. Those checks are more comprehensive and will remain coherent with synchronous decoding. R=ahaas@chromium.org TEST=mjsunit/regress/wasm/regress-8846 BUG=v8:8846 Change-Id: Id0cdc3bf3ad78f7970c9fceff66a17ab20f4666b Reviewed-on: https://chromium-review.googlesource.com/c/1477211Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#59702}
-
- 14 Feb, 2019 1 commit
-
-
Clemens Hammacher authored
In the wasm streaming decoder error position test, do also check the error messages generated. This revealed messages that were not quite fitting and some that were formatted differently than the majority. R=ahaas@chromium.org Bug: v8:8814 Change-Id: If157f1083a104413bf14797ac56e756baac98c17 Reviewed-on: https://chromium-review.googlesource.com/c/1463780 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#59604}
-
- 31 Jan, 2019 1 commit
-
-
Clemens Hammacher authored
This CL revises some of our error messages to be more precise or more aesthetically appealing. R=titzer@chromium.org, ahaas@chromium.org Cq-Include-Trybots: luci.chromium.try:linux-blink-rel Bug: chromium:926311 Change-Id: I38eaee09fd37f9b67fdb08bc7b0df64a6eaf96f9 Reviewed-on: https://chromium-review.googlesource.com/c/1445980Reviewed-by:
Ben Titzer <titzer@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#59249}
-
- 30 Jan, 2019 1 commit
-
-
Clemens Hammacher authored
Instead of passing the error explicitly, make the callbacks get the error from the CompilationState. This prepares a change to call the callbacks asynchronously, because from the background we cannot construct the final error message (because this requires access to the wire bytes). Thus the callbacks will have to get the actual compile error from the CompilationState from a foreground task if they need it. R=mstarzinger@chromium.org Bug: v8:8689 Change-Id: I22accabf895bf21fa7492e2f5cb8bac93237c765 Reviewed-on: https://chromium-review.googlesource.com/c/1445975 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#59216}
-
- 29 Jan, 2019 1 commit
-
-
Clemens Hammacher authored
Registered callbacks should not keep the NativeModule alive. Otherwise, tiering will always run to completion, even if the NativeModule is not being used any more. This change can cause the callback to not be called if the module dies before it finishes top-tier compilation. This is the desired behaviour. R=ahaas@chromium.org CC=titzer@chromium.org, bbudge@chromium.org Bug: v8:8689, chromium:719172 Change-Id: Ide9d639f465497c3ed3439c7ce25c76dceeb97eb Reviewed-on: https://chromium-review.googlesource.com/c/1435937Reviewed-by:
Bill Budge <bbudge@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#59175}
-
- 15 Jan, 2019 1 commit
-
-
Clemens Hammacher authored
We often use ResultBase or VoidResult to store or pass wasm errors (errors with locations). This CL extracts a WasmError class which can store an error (can also be empty), and Result<T> which stores an error or a T (exactly one of them). R=titzer@chromium.org Bug: v8:8689 Change-Id: I3f5203559984a0ae8757e0130a9184957fa28df5 Reviewed-on: https://chromium-review.googlesource.com/c/1409365 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Ben Titzer <titzer@chromium.org> Cr-Commit-Position: refs/heads/master@{#58827}
-
- 10 Jan, 2019 1 commit
-
-
Andreas Haas authored
Originally, the NativeModule and the WasmModuleObject were created together, and the streaming decoder was notified after the WasmModuleObject was created. A recent CL (https://crrev.com/c/1402544), however, changed that. The NativeModule gets created before compilation starts, the WasmModuleObject, however, gets created after compilation. The streaming decoder only needs the NativeModule to register a callback before compilation. Therefore this CL we change the notification of the streaming decoder to receive only the NativeModule, not the WasmModuleObject, before starting compilation. R=clemensh@chromium.org CC=bbudge@chromium.org Bug: chromium:719172 Change-Id: I4ad879e4ebd2d88174d7e2a0c6359f2836926763 Reviewed-on: https://chromium-review.googlesource.com/c/1404442 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#58703}
-
- 08 Jan, 2019 2 commits
-
-
Michael Achenbach authored
This reverts commit ac2fb66b. Reason for revert: Flakily crashes on several bots: https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Win32/18524 https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Win64%20-%20msvc/6824 https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Linux64%20-%20internal%20snapshot/19766 Original change's description: > [wasm] Remove finisher task > > This removes the finisher task and instead finishes compilation units > from the background. > It also changes ownership of the AsyncCompileJob to be shared among all > tasks that still operate on it. The AsyncCompileJob dies when the last > reference dies. > > R=ahaas@chromium.org > CC=mstarzinger@chromium.org > > Bug: v8:7921, v8:8423 > Change-Id: Id09378327dfc146459ef41bc97176a8716756ae4 > Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_rel > Reviewed-on: https://chromium-review.googlesource.com/c/1335553 > Reviewed-by: Andreas Haas <ahaas@chromium.org> > Commit-Queue: Clemens Hammacher <clemensh@chromium.org> > Cr-Commit-Position: refs/heads/master@{#58630} TBR=ahaas@chromium.org,clemensh@chromium.org Change-Id: I6b332b66adaec8f713fb31f4c8517cae7ebb4645 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:7921, v8:8423 Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_rel Reviewed-on: https://chromium-review.googlesource.com/c/1400420Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#58634}
-
Clemens Hammacher authored
This removes the finisher task and instead finishes compilation units from the background. It also changes ownership of the AsyncCompileJob to be shared among all tasks that still operate on it. The AsyncCompileJob dies when the last reference dies. R=ahaas@chromium.org CC=mstarzinger@chromium.org Bug: v8:7921, v8:8423 Change-Id: Id09378327dfc146459ef41bc97176a8716756ae4 Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_rel Reviewed-on: https://chromium-review.googlesource.com/c/1335553Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#58630}
-
- 21 Dec, 2018 1 commit
-
-
Bill Budge authored
- Removes ModuleCompiledCallback typedef and Set function. - Adds WasmStreaming::Client abstraction and Set function. Bug: chromium:719172 Change-Id: I8a207b628394a7660bda73cde560da1e461248a7 Reviewed-on: https://chromium-review.googlesource.com/c/1377450Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Adam Klein <adamk@chromium.org> Commit-Queue: Bill Budge <bbudge@chromium.org> Cr-Commit-Position: refs/heads/master@{#58454}
-
- 11 Dec, 2018 1 commit
-
-
Clemens Hammacher authored
The AsyncCompileJob should be decoupled from tiering, hence the top-tier-finished callback should not be delivered via the AsyncCompileJob. Instead, store it directly on the CompilationState. R=ahaas@chromium.org Bug: v8:8050, v8:7921, chromium:912031 Change-Id: Iebd64655667a8078c34caea4edeb6cf5f40833fd Reviewed-on: https://chromium-review.googlesource.com/c/1371604Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#58165}
-
- 15 Nov, 2018 1 commit
-
-
Clemens Hammacher authored
We often need to create a {Vector} view of data owned by a container like {std::vector}. The canonical way to do this is this: Vector<T>{vec.data(), vec.size()} This pattern is repeating information which can be deduced automatically, like the type T. This CL introduces a {VectorOf} helper which can construct a {Vector} for any container providing a {data()} and {size()} accessor, and uses it to replace the pattern above. R=ishell@chromium.org Bug: v8:8238 Change-Id: Ib3a11662acc82cb83f2b4afd07ba88e579d71dba Reviewed-on: https://chromium-review.googlesource.com/c/1337584Reviewed-by:
Igor Sheludko <ishell@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#57538}
-
- 12 Nov, 2018 1 commit
-
-
Clemens Hammacher authored
After the first decoder error, the streaming processor should not be called again. To enforce this, reset the {processor_} field. This also makes the {ok_} field redundant. Note that this refactoring is also necessary for a future CL which makes the {StreamingProcessor} keep the {AsyncCompileJob} alive. By resetting the processor, we also remove that link. R=ahaas@chromium.org Bug: v8:7921 Change-Id: I42f5ed26a8f26c3dc8db5676557a0d82021e132e Reviewed-on: https://chromium-review.googlesource.com/c/1329179 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#57435}
-
- 07 Nov, 2018 1 commit
-
-
Clemens Hammacher authored
Compilation units currently contain pointers into allocated space that contains the code of the respective function. This requires us to keep the StreamingDecoder alive as long as compilation is still running (including tiering). This CL refactors this by having an additional redirection (WireBytesStorage) which can point to either the StreamingDecoder or the NativeModule. We only keep the code section buffer alive as long as the StreamingWireBytesStorage is still in use. I will further refactor memory ownership in a follow-up CL to not make the AsyncCompileJob keep the StreamingDecoder alive. R=ahaas@chromium.org Bug: v8:8343,v8:7921,v8:8050 Change-Id: I780582c3217abf64000454f2c9c108b9ac9fbff1 Reviewed-on: https://chromium-review.googlesource.com/c/1319588Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#57317}
-
- 06 Nov, 2018 1 commit
-
-
Clemens Hammacher authored
Instead of passing and storing uint8_t* and size_t, we now more often store a Vector or OwnedVector, which encapsulates these two fields. This provides some more DCHECKs which happen automatically when getting a subvector into the buffer. Drive-by: More refactorings and removals of unneeded or rarely used helper methods. R=ahaas@chromium.org Bug: v8:8238 Change-Id: I1b24f90f1517fc50360854f46c2d001075544858 Reviewed-on: https://chromium-review.googlesource.com/c/1317817 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#57263}
-
- 05 Nov, 2018 1 commit
-
-
Clemens Hammacher authored
Use early returns instead. The general scheme is to return early in the abnormal case (e.g. error) and fall through to the end of the method in the normal case. R=ahaas@chromium.org Bug: v8:8238 Change-Id: I281d35f5aad1f51b6d476fdc685565d9819397bb Reviewed-on: https://chromium-review.googlesource.com/c/1317812 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#57245}
-
- 12 Oct, 2018 1 commit
-
-
Bill Budge authored
- Adds embedder callback to notify fully tiered compilation is finished, returning a WasmCompiledModule for serialization. - Adds function to pass previously compiled bytes into WASM streaming compilation, for deserialization. - Plumbs this API through StreamingDecoder. Bug: chromium:719172 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: Ibe376f3a8ccfa90fda730ef4ff6628a1532da45c Reviewed-on: https://chromium-review.googlesource.com/c/1252884Reviewed-by:
Adam Klein <adamk@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Bill Budge <bbudge@chromium.org> Cr-Commit-Position: refs/heads/master@{#56617}
-
- 14 Aug, 2018 1 commit
-
-
Andreas Haas authored
The problem was that in AsyncCompileJob::FinishModule we allocate a handle, but when this function is called from streaming compilation, then there was no HandleScope around AsyncCompileJob::FinishModule. This issue was fixed in another CL, https://crrev.com/c/1172357. This CL is just a rebase of the original CL. 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=starzinger@chromium.org Bug: chromium:860637 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: Ib0cb25488654d2b325b4f529d33b76b846c64436 Reviewed-on: https://chromium-review.googlesource.com/1172429Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#55106}
-
- 02 Aug, 2018 1 commit
-
-
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}
-
- 01 Aug, 2018 1 commit
-
-
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}
-
- 28 Jun, 2018 1 commit
-
-
Clemens Hammacher authored
Another pair of {std::unique_ptr} and {size_t} that can be stored as one {OwnedVector}, which allows to pass it as one thing. R=mstarzinger@chromium.org Bug: v8:7754 Change-Id: Ideac0dbd390ba8147b6620daa86f0d3da6c3b609 Reviewed-on: https://chromium-review.googlesource.com/1118236 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#54091}
-
- 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}
-
- 02 Dec, 2017 1 commit
-
-
Mathias Bynens authored
This patch normalizes the casing of hexadecimal digits in escape sequences of the form `\xNN` and integer literals of the form `0xNNNN`. Previously, the V8 code base used an inconsistent mixture of uppercase and lowercase. Google’s C++ style guide uses uppercase in its examples: https://google.github.io/styleguide/cppguide.html#Non-ASCII_Characters Moreover, uppercase letters more clearly stand out from the lowercase `x` (or `u`) characters at the start, as well as lowercase letters elsewhere in strings. BUG=v8:7109 TBR=marja@chromium.org,titzer@chromium.org,mtrofin@chromium.org,mstarzinger@chromium.org,rossberg@chromium.org,yangguo@chromium.org,mlippautz@chromium.org NOPRESUBMIT=true Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: I790e21c25d96ad5d95c8229724eb45d2aa9e22d6 Reviewed-on: https://chromium-review.googlesource.com/804294 Commit-Queue: Mathias Bynens <mathias@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#49810}
-
- 01 Dec, 2017 1 commit
-
-
Andreas Haas authored
R=clemensh@chromium.org Bug: v8:7109 Change-Id: I8836663f4c66fd0f8c50f2cb66ab4cb8e2712f6c Reviewed-on: https://chromium-review.googlesource.com/803274Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#49782}
-
- 20 Nov, 2017 2 commits
-
-
Andreas Haas authored
R=clemensh@chromium.org Change-Id: Ie66315bc3fdb44387f4dc8e4dd6e1058c173b786 Reviewed-on: https://chromium-review.googlesource.com/779123 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#49500}
-
Andreas Haas authored
Streaming compilation started the compilation of a module at the beginning of the code section. However, there exist valid modules which do not contain a code section. In this CL we check for the existence of a code section when we finish the stream. We do this by checking if the module compiler in the AsyncCompileJob exists, because the module compiler gets initialized at the beginning of the code section. If we detect that compilation has not been started because there was no code section, then we start compilation when the stream finishes. R=clemensh@chromium.org Bug: chromium:771973 Change-Id: I7c95a7a791d02254f086961e7cd81885eec27382 Reviewed-on: https://chromium-review.googlesource.com/778541 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#49494}
-
- 15 Nov, 2017 1 commit
-
-
Andreas Haas authored
The streaming decoder allocates the whole section buffer of the code section when it reads the section length of the code section. Therefore we have to check that the different parts of the code section actually use all the bytes, and that the different parts of the code section do not need more bytes than available. The check that all bytes are used was missing in the case where the code section contained zero functions. In addition, this CL adds some tracing to the streaming decoder which may be useful in future debugging. R=clemensh@chromium.org Bug: chromium:783595 Change-Id: Icf056c25a3000b4a08a791939dab0ccde9fc3f80 Reviewed-on: https://chromium-review.googlesource.com/768788 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#49380}
-
- 05 Oct, 2017 1 commit
-
-
Andreas Haas authored
At the moment we check only in the module-decoder if the sections in a module appear at most once. The code section, however, we process already before this check. With this CL we check that there is at most one code section before we start processing it. R=clemensh@chromium.org TEST=WasmStreamingDecoderTest.TwoCodeSections Bug: chromium:771916 Change-Id: Icc79d5a87ab39f450a35c688f74ea5e67cae4b3c Reviewed-on: https://chromium-review.googlesource.com/702379Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#48314}
-
- 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}
-
- 31 Aug, 2017 1 commit
-
-
Clemens Hammacher authored
They violate the style guide, and cause problems for jumbo builds. This CL removes all occurrences in src/wasm except for the file wasm-objects.cc, which is a bit more involved and will be fixed in a separate CL. R=titzer@chromium.org CC=mostynb@opera.com Bug: chromium:746958 Change-Id: If5d9c03e0d6fa364e1d21feda49773468a48fba6 Reviewed-on: https://chromium-review.googlesource.com/645707 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Ben Titzer <titzer@chromium.org> Cr-Commit-Position: refs/heads/master@{#47743}
-
- 09 Aug, 2017 1 commit
-
-
Mostyn Bramley-Moore authored
To speed up compilation times, jumbo allows files to be compiled together. This is a well known method ("unity builds") to both compile faster and create a poor man's "full program optimization". We are only interested in compile times. Background: https://chromium.googlesource.com/chromium/src/+/master/docs/jumbo.md Note that jumbo builds are not enabled by default. To try this out, add use_jumbo_build=true to your GN args. BUG=chromium:746958 Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel Change-Id: Ieb9fdccb6c135e9806dbed91c09a29aa8b8bee11 Reviewed-on: https://chromium-review.googlesource.com/579090 Commit-Queue: Mostyn Bramley-Moore <mostynb@opera.com> Reviewed-by:
Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#47239}
-
- 31 Jul, 2017 1 commit
-
-
Clemens Hammacher authored
This reverts commit 072d0e3e. Reason for revert: Performance regressions (https://crbug.com/749041). Original change's description: > [wasm] Allow for arbitrarily long error messages > > We currently have a fixed limit of 256 characters for error messages > generated in the decoder. However, we sometimes embed names in it, > which makes it easy to generate a crash by using long names (e.g. for > exports) in invalid wasm modules. > This CL fixes this by switching to a stream based interface, allowing > to pass arbitrary objects to be printed. With this interface, we can > easily limit the length of output later. > > R=titzer@chromium.org > > Bug: chromium:740023 > Change-Id: I2848c31c63a015157e2a3a9458b54e523060cd69 > Reviewed-on: https://chromium-review.googlesource.com/565282 > Reviewed-by: Ben Titzer <titzer@chromium.org> > Commit-Queue: Clemens Hammacher <clemensh@chromium.org> > Cr-Commit-Position: refs/heads/master@{#46860} TBR=titzer@chromium.org,clemensh@chromium.org # Not skipping CQ checks because original CL landed > 1 day ago. Bug: chromium:740023, chromium:749041 Change-Id: I005a60d55dcf01d350230f8d98f715bab9c43886 Reviewed-on: https://chromium-review.googlesource.com/593807 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Ben Titzer <titzer@chromium.org> Cr-Commit-Position: refs/heads/master@{#47008}
-
- 25 Jul, 2017 1 commit
-
-
Clemens Hammacher authored
We currently have a fixed limit of 256 characters for error messages generated in the decoder. However, we sometimes embed names in it, which makes it easy to generate a crash by using long names (e.g. for exports) in invalid wasm modules. This CL fixes this by switching to a stream based interface, allowing to pass arbitrary objects to be printed. With this interface, we can easily limit the length of output later. R=titzer@chromium.org Bug: chromium:740023 Change-Id: I2848c31c63a015157e2a3a9458b54e523060cd69 Reviewed-on: https://chromium-review.googlesource.com/565282Reviewed-by:
Ben Titzer <titzer@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#46860}
-
- 09 Jun, 2017 1 commit
-
-
Clemens Hammacher authored
Introduce base::make_unique as a replacement for std::make_unique, introduced in C++14. Use it in the wasm code base to construct new objects and wrap them in a unique_ptr, making the code more compact and readable. R=ahaas@chromium.org BUG=v8:6474 Change-Id: I2b9c800edc456021b057f1e69d3c144889b1c9f4 Reviewed-on: https://chromium-review.googlesource.com/529167Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#45822}
-
- 12 May, 2017 1 commit
-
-
Mircea Trofin authored
Bug: Change-Id: Ic5b96bfb6b8b468434c06aed5e12b4ddb278dd08 Reviewed-on: https://chromium-review.googlesource.com/503440 Commit-Queue: Mircea Trofin <mtrofin@chromium.org> Commit-Queue: Brad Nelson <bradnelson@chromium.org> Reviewed-by:
Brad Nelson <bradnelson@chromium.org> Cr-Commit-Position: refs/heads/master@{#45270}
-
- 11 May, 2017 1 commit
-
-
Andreas Haas authored
The error_pc was only used to calculated the relative error offset. Switching to an error_offset directly will allow us later to give the decoder a base offset. Thereby we can get correct error positions even when the decoder is executed on multiple memory chunks, which will happen with streaming compilation. With this change I also had to provide "kind of" reasonable error position in the StreamingDecoder. R=clemensh@chromium.org Change-Id: I736fa082c51c64334d23771061acf97e2c47778e Reviewed-on: https://chromium-review.googlesource.com/502909 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#45264}
-