- 13 May, 2019 1 commit
-
-
Andreas Haas authored
I did the implementation with a runtime function. I extracted some code from the implementation of table.get. By accident I formatted anyfunc.js. However, since it's an improvement, I don't want to undo it. I didn't change anything in the older tests though, I only added new tests at the end. R=mstarzinger@chromium.org Bug: v8:7581 Change-Id: I31832ccc817e1e7989f486d6487108c14d21bbea Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1602701 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#61442}
-
- 07 May, 2019 1 commit
-
-
Andreas Haas authored
The implementation is done with a runtime function. R=mstarzinger@chromium.org Bug: v8:7581 Change-Id: I5f27b1fdc7cc2baf6919b4db3bf053a350b91a74 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1596738 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#61274}
-
- 06 May, 2019 1 commit
-
-
Michael Starzinger authored
This fixes the source position printed in the stack trace for exceptions thrown from within Wasm code. Specifically this affects the stack trace attached to the exception object, as well as the message propagated to the console. Both are tested by the new message test. R=clemensh@chromium.org TEST=message/fail/wasm-exception-throw BUG=v8:8091 Change-Id: I5b2f76191cf47457ac113dce9d9601a8a810ee19 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1591603Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#61239}
-
- 03 May, 2019 2 commits
-
-
Andreas Haas authored
This CL adds decoding and code generation for the table.size instruction. R=mstarzinger@chromium.org Bug: v8:7581 Change-Id: I0e689a993d25db72281ebba0854454be12f4d350 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1593302 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#61195}
-
Andreas Haas authored
This CL add decoding and code generation for the table.grow instruction. For code generation we just generate a runtime call. The implementation is quite straight-forward. However, I did several small cleanups along the way. I hope it's still acceptable. I could also split out some cleanups into separate CLs. R=mstarzinger@chromium.org Bug: v8:7581 Change-Id: Id885b7e70eb4f5bccfe779eb216f7cc9302ea3a5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1593078 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#61192}
-
- 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}
-
- 24 Apr, 2019 1 commit
-
-
Michael Starzinger authored
R=titzer@chromium.org TEST=mjsunit/regress/regress-9165 BUG=v8:9165 Change-Id: If6d7d56bf164a85675590e69bf9857c11fc1b218 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1578463Reviewed-by:
Ben Titzer <titzer@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#60969}
-
- 21 Mar, 2019 1 commit
-
-
Andreas Haas authored
The reason for the revert was that Liftoff did not bail out on indirect calls to tables other than table 0. Whenever the Liftoff code got executed, the test would fail. Original message: With this CL it is possible to use any anyfunc table in call-indirect, not just the first table. The current implementation is based on runtime calls. This is just an initial implementation which should be replaced by a dispatch-table-based eventually. However, this implementation allows us to move forward with the anyref proposal implementation. R=mstarzinger@chromium.org Bug: v8:7581 Change-Id: Iedd56ee7acb281441bca32ffd3dc7157203ee1ac Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1532072 Commit-Queue: Andreas Haas <ahaas@chromium.org> Auto-Submit: Andreas Haas <ahaas@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#60382}
-
- 20 Mar, 2019 2 commits
-
-
Andreas Haas authored
This reverts commit 9d167f57. Reason for revert: There is a crash on https://ci.chromium.org/p/v8/builders/ci/V8%20Win32/20026 Original change's description: > [wasm][anyref] Add support of call-indirect for multiple tables > > With this CL it is possible to use any anyfunc table in call-indirect, > not just the first table. > > The current implementation is based on runtime calls. This is just an > initial implementation which should be replaced by a > dispatch-table-based eventually. However, this implementation allows > us to move forward with the anyref proposal implementation. > > R=mstarzinger@chromium.org > > Bug: v8:7581 > Change-Id: I57d09b18add7f525555bf7c949aef17a64b0e7c5 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1530801 > Commit-Queue: Andreas Haas <ahaas@chromium.org> > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Cr-Commit-Position: refs/heads/master@{#60360} TBR=mstarzinger@chromium.org,ahaas@chromium.org Change-Id: Iba4b84078aa070498be7e79212970b94595f5757 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:7581 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1532069Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#60362}
-
Andreas Haas authored
With this CL it is possible to use any anyfunc table in call-indirect, not just the first table. The current implementation is based on runtime calls. This is just an initial implementation which should be replaced by a dispatch-table-based eventually. However, this implementation allows us to move forward with the anyref proposal implementation. R=mstarzinger@chromium.org Bug: v8:7581 Change-Id: I57d09b18add7f525555bf7c949aef17a64b0e7c5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1530801 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#60360}
-
- 07 Mar, 2019 1 commit
-
-
Francis McCabe authored
Implement ReturnCall functionality for TurboFan compiler. Bug: v8:7431 Change-Id: I1e20473a9b3eba9ee48c0c11f89029356dd9b9eb Cq-Include-Trybots: luci.v8.try:v8_linux64_ubsan_rel_ng Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1467344 Commit-Queue: Francis McCabe <fgm@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#60103}
-
- 14 Feb, 2019 1 commit
-
-
Francis McCabe authored
Focuses on decoder implementation and unittests of decoding return call instructions Bug: v8:7431 Change-Id: Ib1351bb26f8bac0a766d633486492fcd8ead627b Reviewed-on: https://chromium-review.googlesource.com/c/1455476 Commit-Queue: Francis McCabe <fgm@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#59582}
-
- 12 Feb, 2019 1 commit
-
-
Andreas Haas authored
This CL contains the following changes: (1) Allocate memory for WasmTables in the WasmInstance. - We extend the WasmInstance by a FixedArray which stores references to the WasmTables. (2) Rename the name of the backing store of WasmTables from `functions` to `elements`. - The name `functions` just does not fit anyref tables. (3) Generate code with TurboFan for table.get and table.set. (4) Extend wasm-module-builder.js to be able to generate modules with multiple tables. (5) Add mjsunit tests to test table.get and table.set. R=mstarzinger@chromium.org Bug: v8:7581 Change-Id: I44af4838ee7a37b394841a2f673ecae5734a4d1c Reviewed-on: https://chromium-review.googlesource.com/c/1463519 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#59529}
-
- 07 Feb, 2019 1 commit
-
-
Andreas Haas authored
R=titzer@chromium.org Bug: v8:7581 Change-Id: I857a40a0f955b3506d7958d2128a1b4560cff0bc Reviewed-on: https://chromium-review.googlesource.com/c/1458236 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by:
Ben Titzer <titzer@chromium.org> Cr-Commit-Position: refs/heads/master@{#59439}
-
- 31 Jan, 2019 2 commits
-
-
Ben Smith authored
The new names for memory.drop and table.drop are data.drop and elem.drop respectively. See https://github.com/WebAssembly/bulk-memory-operations/issues/23 and https://github.com/WebAssembly/bulk-memory-operations/pull/46. Change-Id: I07aab8448fabe24eb9734dc7dac6f91c570cb553 Reviewed-on: https://chromium-review.googlesource.com/c/1446148 Commit-Queue: Ben Smith <binji@chromium.org> Reviewed-by:
Ben Titzer <titzer@chromium.org> Cr-Commit-Position: refs/heads/master@{#59261}
-
Ben Smith authored
* There are now two indexes for table.copy and memory.copy, one for the source and the one for the destination table/memory. (see https://github.com/WebAssembly/bulk-memory-operations/pull/43) * Reverse the order of the table.init and memory.init indexes, so the segment index is first and the table/memory index is second. (see https://github.com/WebAssembly/bulk-memory-operations/pull/45) Change-Id: I1781edd4200a7b693e3d0814999e6292aafa58d3 Reviewed-on: https://chromium-review.googlesource.com/c/1446149Reviewed-by:
Ben Titzer <titzer@chromium.org> Commit-Queue: Ben Smith <binji@chromium.org> Cr-Commit-Position: refs/heads/master@{#59259}
-
- 25 Jan, 2019 1 commit
-
-
Jakob Kummerow authored
Not even when copying 0 bytes. Same for memmove and memcmp. Bug: v8:3770 Change-Id: I3ed45a4572467ec7a9fc697ac28c004aa9b8b274 Reviewed-on: https://chromium-review.googlesource.com/c/1436217Reviewed-by:
Sathya Gunasekaran <gsathya@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#59101}
-
- 23 Jan, 2019 1 commit
-
-
Andreas Haas authored
R=titzer@chromium.org Bug: v8:7581 Change-Id: I153b09ac1676c75590f37c4b7d1f8659c37bbe96 Reviewed-on: https://chromium-review.googlesource.com/c/1421837 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by:
Ben Titzer <titzer@chromium.org> Cr-Commit-Position: refs/heads/master@{#59029}
-
- 17 Jan, 2019 1 commit
-
-
Clemens Hammacher authored
The function body decoder already tracks reachability and only calls the backend for reachable code. Thus the checks in the TF backend can be skipped. Note that there was already a DCHECK in place that checks whether {SsaEnv::reached()} always returns true. This was to give fuzzers a chance to prove the reachability analysis in the function body decoder wrong. Since this did not happen, we can not remove the {reached()} method from SsaEnv, since it always returned true anyway. R=titzer@chromium.org Bug: v8:8423, v8:8611 Change-Id: I2336aa7a092e381e3d94d87051b6e14db0dbab99 Reviewed-on: https://chromium-review.googlesource.com/c/1415493Reviewed-by:
Ben Titzer <titzer@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#58871}
-
- 16 Jan, 2019 1 commit
-
-
Ben L. Titzer authored
The table.copy bytecode copies a range of table entries in a similar way to memcopy. This CL implements the behavior in a runtime call that calls into the wasm engine. R=mstarzinger@chromium.org,binji@chromium.org BUG=v8:7747 Change-Id: I420451202b1b78ea92cbd10387a644ed57e111c8 Reviewed-on: https://chromium-review.googlesource.com/c/1414919 Commit-Queue: Ben Titzer <titzer@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#58858}
-
- 15 Jan, 2019 1 commit
-
-
Michael Starzinger authored
This switches the experimental exception handling implementation to the new proposal where 'catch' blocks behave in a catch-all fashion and a new 'br_on_exn' operation is used to check for a certain exception type and extract the exception values on a match. R=clemensh@chromium.org TEST=unittests/FunctionBodyDecoderTest,mjsunit/wasm/exceptions BUG=v8:8091 Change-Id: Ib12ba28b3aa2a7d831312a83abcb00bf56d0adc3 Reviewed-on: https://chromium-review.googlesource.com/c/1409431 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#58832}
-
- 14 Jan, 2019 1 commit
-
-
Ben L. Titzer authored
This CL adds two new runtime calls for table operations: - Runtime_WasmTableInit - Runtime_WasmTableCopy These runtime calls (will) implement the semantics for the corresponding bytecodes from the bulk memory proposal. The actual implementation of these runtime calls will be done in further CLs. The third table operation, table.drop, will be implemented with inline code, similar to memory.drop. This is also be done in a further CL. R=mstarzinger@chromium.org CC=binji@chromium.org BUG=v8:7747 Change-Id: I498aa054329baf9f72ae55d245b12c3ccd4157b7 Reviewed-on: https://chromium-review.googlesource.com/c/1408994 Commit-Queue: Ben Titzer <titzer@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#58786}
-
- 21 Dec, 2018 1 commit
-
-
Clemens Hammacher authored
Since FallThruTo is often followed by PopControl, we can save a few cache state copy operations in Liftoff by merging the two. On epic workloads, this saves ~18% of Steal operations and ~22% of Split operations. R=herhut@chromium.org Bug: v8:8423 Change-Id: I99900eaa49ae14ead6a0c08b69da2175730e077e Reviewed-on: https://chromium-review.googlesource.com/c/1384093Reviewed-by:
Stephan Herhut <herhut@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#58420}
-
- 20 Dec, 2018 1 commit
-
-
Clemens Hammacher authored
Avoid named constructors for Value and Control and the hack to also have them on subclasses. Instead, add a new template type and a constructor to create the subtype from this template. Instead of the named constructors on the subtype, we now create a template and initialize the subtype from the template. R=herhut@chromium.org Bug: v8:8562 Change-Id: I374fc4104ab1ae5769c587bdf5a4ca7f9a0a10d7 Reviewed-on: https://chromium-review.googlesource.com/c/1382454Reviewed-by:
Stephan Herhut <herhut@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#58408}
-
- 19 Dec, 2018 1 commit
-
-
Clemens Hammacher authored
Reachability is already being tracked in the function body decoder. This CL adds a DCHECK that the reachability tracked in the SsaEnv matches the reachability tracked in the function body decoder. Most of our methods will only be called for reachable code anyway. For exceptions, we still track reachability explicitly for now in the wasm graph builder, this can be refactored in the future by improving reachability tracking for catch blocks in the function body decoder. If this DCHECK survives fuzzing for a few days, we can remove code that handles unreachable code in graph-building-interface.cc. R=herhut@chromium.org Bug: v8:8423, v8:8611 Change-Id: I0fb375c99497352aad396816566883fe234ca0ac Reviewed-on: https://chromium-review.googlesource.com/c/1384089Reviewed-by:
Stephan Herhut <herhut@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#58368}
-
- 12 Dec, 2018 3 commits
-
-
Clemens Hammacher authored
Should be num_locals, and const. R=titzer@chromium.org Bug: v8:8562 Change-Id: I60889c9912ef95d344ede4d7755028116feee47e Reviewed-on: https://chromium-review.googlesource.com/c/1373784Reviewed-by:
Ben Titzer <titzer@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#58197}
-
Ben Smith authored
`memory.init` copies bytes from a passive data segment to linear memory. `memory.drop` is an instruction that informs the wasm VM that the instance no longer needs access to the passive data segment. Information about the passive data segments, including their contents, length, and whether they are dropped, is stored in the `WasmInstanceObject` as primitive arrays. Bug: v8:7747 Change-Id: I1515c8868c9be227743456a539126c15280b5365 Reviewed-on: https://chromium-review.googlesource.com/c/1370691Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Ben Smith <binji@chromium.org> Cr-Commit-Position: refs/heads/master@{#58196}
-
Clemens Hammacher authored
Neither the TF backend nor Liftoff use the signature, thus remove it. R=titzer@chromium.org Bug: v8:8423 Change-Id: I909e9a0095cac67aaefaebcb4240f7d9829e4c87 Reviewed-on: https://chromium-review.googlesource.com/c/1373777Reviewed-by:
Ben Titzer <titzer@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#58190}
-
- 11 Dec, 2018 3 commits
-
-
Clemens Hammacher authored
Since implicit returns are gone, this environment is never being used. R=titzer@chromium.org Bug: v8:8423 Change-Id: I24d61a1316433fde6835fd608c3d308592721a5c Reviewed-on: https://chromium-review.googlesource.com/c/1371569 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Ben Titzer <titzer@chromium.org> Cr-Commit-Position: refs/heads/master@{#58155}
-
Clemens Hammacher authored
In most places we already call them "branches", and the spec also only uses this name. Hence remove the remaining mentions of "break". R=titzer@chromium.org Bug: v8:8562 Change-Id: I64ac39324681b8214cd2e68315eb86a69d85cba8 Reviewed-on: https://chromium-review.googlesource.com/c/1371567Reviewed-by:
Ben Titzer <titzer@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#58153}
-
Clemens Hammacher authored
Instead, return directly when branching to the outermost block. When falling through the end of the function block, generate a standard return, otherwise do not generate a return at the end of the function block. R=titzer@chromium.org Bug: v8:8423 Change-Id: I3c5ffacfa4ef7a960d41bea62920bd98e63d78df Reviewed-on: https://chromium-review.googlesource.com/c/1369958 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Ben Titzer <titzer@chromium.org> Cr-Commit-Position: refs/heads/master@{#58151}
-
- 10 Dec, 2018 2 commits
-
-
Ben Smith authored
This implementation currently only supports the optimized tier. Bug: v8:7747 Change-Id: Ia1af29b11a5d3e8a48b122f6cf3240c9f5948bfb Reviewed-on: https://chromium-review.googlesource.com/c/1364710Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Ben Smith <binji@chromium.org> Cr-Commit-Position: refs/heads/master@{#58137}
-
Clemens Hammacher authored
This loop is redundant in {GetNodes}. R=titzer@chromium.org Bug: v8:8423 Change-Id: Ia624fbe145ae2cd77ea099c3f109899ea6fac9c0 Reviewed-on: https://chromium-review.googlesource.com/c/1370031Reviewed-by:
Ben Titzer <titzer@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#58131}
-
- 04 Dec, 2018 3 commits
-
-
Clemens Hammacher authored
This is a reland of c2aaf0a6 Original change's description: > [wasm][liftoff] Optimize one-armed ifs > > Do not implement one-armed ifs by emulating an empty else branch. In > Liftoff, we can generate better code and save compile time by handling > this specially. If the merge point at the end of the if is not reached > by the if-branch, we do not need to generate any merge code. > > R=titzer@chromium.org > > Bug: v8:6600, v8:8423 > Change-Id: Ie8ea69dd7491f225605a8e1b986d275d869aa90b > Reviewed-on: https://chromium-review.googlesource.com/c/1356508 > Commit-Queue: Clemens Hammacher <clemensh@chromium.org> > Reviewed-by: Ben Titzer <titzer@chromium.org> > Cr-Commit-Position: refs/heads/master@{#57968} Bug: v8:6600, v8:8423 Change-Id: I6d5eea9f860486768779a33bf6bd7b87cbfc2af0 Reviewed-on: https://chromium-review.googlesource.com/c/1361040Reviewed-by:
Ben Titzer <titzer@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#58024}
-
Clemens Hammacher authored
Improve readability by avoiding a helper method. Just read from the stack directly. R=titzer@chromium.org Change-Id: I38c944fac45c721f328a2b7bec3a3f4602f05c05 Reviewed-on: https://chromium-review.googlesource.com/c/1360572 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Ben Titzer <titzer@chromium.org> Cr-Commit-Position: refs/heads/master@{#58023}
-
Clemens Hammacher authored
This reverts commit c2aaf0a6. Reason for revert: Benchmarks fail, and ClusterFuzz is not happy (issue 911406, issue 911271) Original change's description: > [wasm][liftoff] Optimize one-armed ifs > > Do not implement one-armed ifs by emulating an empty else branch. In > Liftoff, we can generate better code and save compile time by handling > this specially. If the merge point at the end of the if is not reached > by the if-branch, we do not need to generate any merge code. > > R=titzer@chromium.org > > Bug: v8:6600, v8:8423 > Change-Id: Ie8ea69dd7491f225605a8e1b986d275d869aa90b > Reviewed-on: https://chromium-review.googlesource.com/c/1356508 > Commit-Queue: Clemens Hammacher <clemensh@chromium.org> > Reviewed-by: Ben Titzer <titzer@chromium.org> > Cr-Commit-Position: refs/heads/master@{#57968} TBR=titzer@chromium.org,clemensh@chromium.org # Not skipping CQ checks because original CL landed > 1 day ago. Bug: v8:6600, v8:8423 Change-Id: I5cb3b069f40e34f34da4013e666f6ff293752567 Reviewed-on: https://chromium-review.googlesource.com/c/1360633Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#58012}
-
- 30 Nov, 2018 1 commit
-
-
Clemens Hammacher authored
Do not implement one-armed ifs by emulating an empty else branch. In Liftoff, we can generate better code and save compile time by handling this specially. If the merge point at the end of the if is not reached by the if-branch, we do not need to generate any merge code. R=titzer@chromium.org Bug: v8:6600, v8:8423 Change-Id: Ie8ea69dd7491f225605a8e1b986d275d869aa90b Reviewed-on: https://chromium-review.googlesource.com/c/1356508 Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Ben Titzer <titzer@chromium.org> Cr-Commit-Position: refs/heads/master@{#57968}
-
- 26 Nov, 2018 1 commit
-
-
Ben Smith authored
The style guide says that only `int` should be used of the builtin integer types. Instead, we should use the stdint types. See https://google.github.io/styleguide/cppguide.html#Integer_Types Change-Id: I1af53a3bceefbfed85589b74a602c8ebe1c7ee25 Reviewed-on: https://chromium-review.googlesource.com/c/1342663Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Ben Smith <binji@chromium.org> Cr-Commit-Position: refs/heads/master@{#57851}
-
- 19 Nov, 2018 1 commit
-
-
Ben Smith authored
These instructions aren't implemented yet in TF or in Liftoff, but they are properly decoded. The table instructions (i.e. `table.{init,drop,copy}`) are validated, since the table and element sections occur before the code section. The memory instructions (i.e. `memory.{init,drop,copy,fill}`) are not validated because the data section occurs after the code section, so it can't be verified in one pass (without throwing a validation error later). There is currently a discussion about whether to add a new section (similar to `func`) that predefines the number of expected data segments. If we add this, then we can validate in one pass. For now, we'll leave it unimplemented. Bug: v8:7747 Change-Id: I839edf51721105a47a1fa8dd5e5e1bd855e72447 Reviewed-on: https://chromium-review.googlesource.com/c/1339241 Commit-Queue: Ben Smith <binji@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#57622}
-
- 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}
-