- 05 May, 2021 2 commits
-
-
Benedikt Meurer authored
As per WebAssembly Web API[1], the engine should only consider names from the name section to synthesize function names in the context of call stacks. We previously also added support to harvest the exports table here in an attempt to improve the DevTools debugging experience, but that needs a separate fix specifically for the inspector (which should also take into account the imports to harvest names). [1]: https://webassembly.github.io/spec/web-api/index.html#conventions Fixed: chromium:1164305 Change-Id: I4bde5c8398a5164f1d8ac9060ad3743ed494c41e Bug: chromium:1159307, chromium:1164241, chromium:1071432 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2874464 Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Auto-Submit: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#74382}
-
Manos Koukoutos authored
Element segments and tables in tests used an ad-hoc mechanism to describe the different types of initializer expressions, e.g. an number which could denote either the value of a constant or the index of a global. This CL tidies up and generalizes the test infrastructure by directly using WasmInitExpr in those cases. Additional changes: - Introduce WasmElemSegment class. - Remove obsolete --experimental-wasm-bulk-memory flag from tests. - Rename WasmInitExpr.type -> kind. - Remove dependency of wasm-module-builder from mjsunit.js (except in assertTraps). Change-Id: I716254a04ceea9ceb8ac6b848e12e1637f618f0d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2857638 Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#74368}
-
- 29 Apr, 2021 1 commit
-
-
Jakob Kummerow authored
Replacing a crash with a TypeError. Bug: chromium:1203692 Change-Id: I6970f980b46f20033f29c1deb9bc5d49ea2014ae Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2856842 Auto-Submit: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#74266}
-
- 27 Apr, 2021 2 commits
-
-
Andreas Haas authored
R=clemensb@chromium.org Bug: chromium:1202736 Change-Id: Id4056ba60fdaa5d5fbe2099ef0823da70a28e6ac Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2853601 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#74234}
-
Manos Koukoutos authored
Changes: - Add WasmInitExpr class which knows how to create initializer expressions as pairs of {type, value}. Also define a default for every type. Emit such pairs to a byte array with emit_init_expr(). - Add an initializer expression to every global (addGlobal() uses the default if the argument is absent). - Introduce wasmI64Const(); - Update tests as needed. Change-Id: I75ffe96604891506ad78bd3677ce1efe5e0cee07 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2851892 Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#74231}
-
- 26 Apr, 2021 2 commits
-
-
Andreas Haas authored
R=clemensb@chromium.org Bug: chromium:1196837 Change-Id: I8945e25be12155482e1feefe1cfd980a94b0488d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2850646Reviewed-by:
Clemens Backes <clemensb@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#74180}
-
Clemens Backes authored
We were inconsistent in handling offsets >= 2GB on 32-bit systems. The code was still relying on this being detected as statically out of bounds, but with the increase of {kV8MaxWasmMemoryPages} to support 4GB memories, this is not the case any more. This CL fixes this by again detecting such situations as statically OOB. We do not expect to be able to allocate memories of size >2GB on such systems. If this assumptions turns out to be wrong, we will erroneously trap. If that happens, we will have to explicitly disallow memories of such size on 32-bit systems. R=jkummerow@chromium.org Bug: v8:7881, chromium:1201340 Change-Id: Ic89a67d38fb860eb8a48a4ff51bc02c53f8a2c2a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2848467Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#74175}
-
- 23 Apr, 2021 1 commit
-
-
Clemens Backes authored
JS-to-Wasm wrappers embed heap constants (like the undefined value), and those heap values are being accessed during compilation for tracing. This is not a data race, since those values are read-only. But if the isolate dies while we are compiling those wrappers, we might read from the heap after it has been free'd. Ideally we would not access the isolate or the heap at all during compilation, but delaying all tracing until the "finalization" phase is not feasible, and removing the heap value printing from tracing would significantly regress quality of this tracing. Hence this CL only fixes the actual issue: That we keep compiling wrappers when the isolate is already gone. It does so by introducing an {OperationsBarrier} per isolate that is being taken by each thread that executes wrapper compilation, and is used for waiting for background threads to finish before the isolate shuts down. Additionally, we actually cancel all compilation if a module dies (or the isolate shuts down) before it finished baseline compilation. In this state, the module cannot be shared between isolates yet, so it's safe to fully cancel all compilation. This cancellation is not strictly necessary, but it will reduce the time we are blocked while waiting for wrapper compilation to finish (because no new compilation will start). R=thibaudm@chromium.org CC=manoskouk@chromium.org Bug: v8:11626, chromium:1200231 Change-Id: I5b19141d22bd0cb00ba84ffa53fb07cf001e13cc Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2846881Reviewed-by:
Thibaud Michaud <thibaudm@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#74142}
-
- 21 Apr, 2021 1 commit
-
-
Manos Koukoutos authored
Changes: - Remove TypeCheckBranchResult. Change TypeCheckBranch() to return bool. Refactor call sites to reflect this (decouple current code reachability check from type check). - Unify TypeCheckBranch(), TypeCheckFallthrough(), and the type-checking part of Return() into TypeCheckStackAgainstMerge(). - Make sure all TypeCheck* functions are only called within VALIDATE. - In graph-builder-interface, rename end_env -> merge_env to reflect its function for loops. - Change expected error messages in some tests. Change-Id: I857edc18db9c2454ad12d539ffe7a10e96367710 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2839560Reviewed-by:
Clemens Backes <clemensb@chromium.org> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/master@{#74100}
-
- 19 Apr, 2021 1 commit
-
-
Ng Zhi An authored
Bug: v8:11542 Change-Id: Ib2f369cbbd91f3da07bd8f60476321ec99265872 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2836825 Commit-Queue: Zhi An Ng <zhin@chromium.org> Reviewed-by:
Bill Budge <bbudge@chromium.org> Cr-Commit-Position: refs/heads/master@{#74053}
-
- 15 Apr, 2021 1 commit
-
-
Manos Koukoutos authored
The typing of br_table was relaxed in https://github.com/WebAssembly/spec/pull/1305. Before, we had to compute the greatest lower bound of all branch types and make sure that stack values are subtypes of that type. Now, we have to check that the stack values are subtypes of each individual branch. This makes a difference only in polymorphic stacks, but greatly simplifies the code, especially with the upcoming introduction of a much more complex type system in wasm-gc. Change-Id: I6e3b410cfe0e71a97623b3030b3575ef707c4900 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2827897 Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#73982}
-
- 12 Apr, 2021 1 commit
-
-
Andreas Haas authored
The existing code assumes that the number of inputs is fixed to 4. However, the fuzzer says that at least 5 inputs are also possible. This CL makes the number of inputs more flexible. CC=sam.parker@arm.com Bug: chromium:1197393 Change-Id: I487ac96570b96f04b4d0a47065e7b383ba39016f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2821435Reviewed-by:
Maya Lekova <mslekova@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#73917}
-
- 29 Mar, 2021 1 commit
-
-
Thibaud Michaud authored
Don't switch to the catch state if it is never reached. Also steal the catch state instead of splitting it since it cannot be used after a delegate instruction. R=ahaas@chromium.org Bug: chromium:1192313 Change-Id: I3967ac81e066d2146c8aa37b26a35a99ba88bdf6 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2787488Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/master@{#73703}
-
- 22 Mar, 2021 1 commit
-
-
Manos Koukoutos authored
This is a more canonical type name, and is in line with {kVoidCode}. Change-Id: Iaae9524b6fb6ecaafd63ce81cf30e3d01ca3e525 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2775565 Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Reviewed-by:
Simon Zünd <szuend@chromium.org> Cr-Commit-Position: refs/heads/master@{#73557}
-
- 19 Mar, 2021 2 commits
-
-
Georg Neis authored
The condition can change between VisitBranch and VisitIf, so VisitIf can't assume that the condition is not yet in the ControlPathConditions list. Thanks Manos! Change-Id: Ic74253b6faf2663cfa5212765d81392cb89d73b9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2773312Reviewed-by:
Manos Koukoutos <manoskouk@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#73539}
-
Manos Koukoutos authored
This is a reland of a3b1233e Changes compared to original commit: - Use a more canonical way to replace TrapIf/Unless nodes that always trap. This fixes the issue where their outputs were marked dead even if they were Merge/Loop nodes. - Use Throw() over Return() to connect a dangling trap to End(). - Add regression test. Original change's description: > [turbofan] Optimize TrapIf/Unless in BranchElim. and CommonOp-Reducer > > Bug: v8:11510 > Change-Id: I1e8fcb54444e494c7d765ad556d09d954441361f > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2752876 > Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> > Reviewed-by: Georg Neis <neis@chromium.org> > Reviewed-by: Andreas Haas <ahaas@chromium.org> > Cr-Commit-Position: refs/heads/master@{#73468} Bug: v8:11510, chromium:1189454 Change-Id: I1d691a3ea299ed668cff925910ed231aad37cac6 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2772601 Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#73537}
-
- 18 Mar, 2021 3 commits
-
-
Ng Zhi An authored
This is a reland of 1a69d8d8 The fix is to skip this regression test on systems that do not support SIMD. Original change's description: > [wasm-simd] Fix i32x4.extadd_pairwise_i16x8_u codegen > > It did not handle the case where dst == src. We switch the registers > used around to write to scratch first and ensure we don't overwrite dst. > > Bug: chromium:1187831 > Change-Id: Idf447aa1a3eff3920f2dfa3e0ec11efae37778cd > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2762425 > Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> > Commit-Queue: Zhi An Ng <zhin@chromium.org> > Cr-Commit-Position: refs/heads/master@{#73521} Bug: chromium:1187831 Change-Id: I1bb6f4ce69f98064d3da5113e3b4c5a4f75a08c2 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2774133Reviewed-by:
Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#73526}
-
Clemens Backes authored
This reverts commit 1a69d8d8. Reason for revert: Fails on nosse: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux/41365/overview Original change's description: > [wasm-simd] Fix i32x4.extadd_pairwise_i16x8_u codegen > > It did not handle the case where dst == src. We switch the registers > used around to write to scratch first and ensure we don't overwrite dst. > > Bug: chromium:1187831 > Change-Id: Idf447aa1a3eff3920f2dfa3e0ec11efae37778cd > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2762425 > Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> > Commit-Queue: Zhi An Ng <zhin@chromium.org> > Cr-Commit-Position: refs/heads/master@{#73521} Bug: chromium:1187831 Change-Id: I40d360b16338ef52e7e4327d4166c194ee950827 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2773802 Auto-Submit: Clemens Backes <clemensb@chromium.org> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Cr-Commit-Position: refs/heads/master@{#73522}
-
Ng Zhi An authored
It did not handle the case where dst == src. We switch the registers used around to write to scratch first and ensure we don't overwrite dst. Bug: chromium:1187831 Change-Id: Idf447aa1a3eff3920f2dfa3e0ec11efae37778cd Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2762425Reviewed-by:
Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#73521}
-
- 17 Mar, 2021 2 commits
-
-
Thibaud Michaud authored
Throwing an object that needs special property lookup currently traps when we catch it in wasm. We should just return undefined to let the caller know that this is not a wasm exception object. Drive-by: use the named {caught_tag} register consistently. R=clemensb@chromium.org Bug: chromium:1188825 Change-Id: I8ebd4db756ac7ba04208ab43c7349c28b813fc49 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2767519Reviewed-by:
Clemens Backes <clemensb@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/master@{#73497}
-
Thibaud Michaud authored
If the block is unreachable, the interface is not called and the {try_info} field is not set. Therefore, check it before accessing it. R=clemensb@chromium.org Bug: chromium:1188975 Change-Id: Ic6d7d2b7e26b0448143076e25a89c036216e8618 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2767017Reviewed-by:
Clemens Backes <clemensb@chromium.org> Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/master@{#73480}
-
- 10 Mar, 2021 1 commit
-
-
Ng Zhi An authored
This is done with a script that does something like: files=$(ag 'v\d\d?x\d\d?[._]?all_?true' -l) sed -i 's/V\(8x16\|16x8\|32x4\|64x2\)\([._]\?\)\([aA]ll_\?[tT]rue\)/I\1\2\3/g' $(files) sed -i 's/v\(8x16\|16x8\|32x4\|64x2\)\([._]\?\)\([aA]ll_\?[tT]rue\)/i\1\2\3/g' $(files) And manual fixups in test-run-wasm-simd.cc and wasm-opcodes-inl.h. Bug: v8:10946 Change-Id: Ib5dad388dd6dd9cd0fb575ad961dffc189a2e6ef Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2740488Reviewed-by:
Bill Budge <bbudge@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#73309}
-
- 08 Mar, 2021 2 commits
-
-
Bill Budge authored
- Adds some missing types, to appease the fuzzers. Bug: chromium:1185464 Change-Id: I08c4ebe5f4ae0d036da9819b805aeac93be384fe Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2742017 Commit-Queue: Bill Budge <bbudge@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#73279}
-
Clemens Backes authored
Before dropping a value we should validate that there is indeed a value on the stack. R=jkummerow@chromium.org Bug: chromium:1184964 Change-Id: Iec3ac061df2545717749e664b10c383765d67c9d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2739588Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#73263}
-
- 28 Feb, 2021 1 commit
-
-
Paolo Severini authored
Fixes a problem with the inlining of JS-to-Wasm call wrappers into a surrounding exception handler and re-enables this case. Bug: v8:11092 Change-Id: I4937838c2b4a199e21f5ac90bee5b8e8de2470be Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2678341 Commit-Queue: Paolo Severini <paolosev@microsoft.com> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#73086}
-
- 23 Feb, 2021 3 commits
-
-
Thibaud Michaud authored
The flag should not be set after an exception is thrown in a runtime function. The unwinder still runs after the destructor, and should take care of setting the flag depending on the catching frame. R=ahaas@chromium.org,jkummerow@chromium.org Bug: chromium:1180690 Change-Id: I0013c90f759a5145309f6e08d61ed36aeecbac63 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2713103Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/master@{#72972}
-
Clemens Backes authored
After the runtime call for dynamic tiering, the instance cache is invalidated. This was assumed to be done in {SpillAllRegisters}, but the instance is still being accessed after that call, so the instance cache register might still be set after the runtime call. R=ahaas@chromium.org Bug: chromium:1179065 Change-Id: I375e7c388e5a74789050e374db50d21c2efe27e2 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2714544Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#72958}
-
Clemens Backes authored
This moves all tests that construct a wasm module (and load wasm-module-builder.js) from test/regress to the test/regress/wasm directory. This will make it easier to skip them all in the v8_enable_webassembly=false configuration. R=ahaas@chromium.org Bug: v8:11238 Change-Id: Ib22b0fb40a58f213182e68b78b34041651c436d1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2712243Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#72942}
-
- 22 Feb, 2021 1 commit
-
-
Clemens Backes authored
This moves all asm.js tests (tests that use "%IsAsmWasmCode") into a separate directory. This will make it easier to skip them all in the v8_enable_webassembly=false configuration. R=ahaas@chromium.org Bug: v8:11238 Change-Id: I805f222b7977f5508f7dbee1f1bd61a88ccd34aa Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2710427 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#72900}
-
- 19 Feb, 2021 3 commits
-
-
Thibaud Michaud authored
We always built a new Phi node for the delegate merge, which is incorrect when the target block's exception is already a Phi. Use CreateOrMergeIntoPhi instead. R=clemensb@chromium.org Bug: v8:11472 Change-Id: I8af3ab07d536ddfe247ace04cc844207d32adb99 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2707167Reviewed-by:
Clemens Backes <clemensb@chromium.org> Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/master@{#72874}
-
Clemens Backes authored
This is the first part of exception handling support in Liftoff. For now, the only supported instruction is throw, and only with empty payload or only i32 values. R=thibaudm@chromium.org Bug: v8:11453 Change-Id: I9fdf1328ef46655674a05186fb93216518886d03 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2704659Reviewed-by:
Thibaud Michaud <thibaudm@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#72871}
-
Clemens Backes authored
In {MergeFullStackWith}, we were accidentally looking at the cached instance in the current {cache_state_} instead of the state passed as {source}. This could lead to missing reload of the instance after a conditional branch. R=thibaudm@chromium.org Bug: chromium:1179182 Change-Id: Ida3c06491f7973a183c43745159abbf6aa8a058b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2704081Reviewed-by:
Thibaud Michaud <thibaudm@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#72864}
-
- 17 Feb, 2021 1 commit
-
-
Clemens Backes authored
Pinned registers were not considered correctly when taking a volatile register. This CL refactors handling of the pinned registers list by combining the candidates list and the pinned list early. This avoid additional parameters on some functions and might save some redundant masking. As a side effect, it also fixes the DCHECK error on arm. R=ahaas@chromium.org Bug: chromium:1179025 Change-Id: Ib9193b209c5741ea97fd1d0dffeeb9e824639439 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2699254Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#72812}
-
- 05 Feb, 2021 1 commit
-
-
Paolo Severini authored
This is a reland of 6ada6a90 - Fixed a GC issue https://bugs.chromium.org/p/v8/issues/detail?id=11335: GC expected all arguments on the stack from code with CodeKind::TURBOFAN to be tagged objects. This is not the case now with inlined Wasm calls, and this information can be passed in SafepointEntry for each call site. - Disabled JS-to-Wasm inlining for calls inside try/catch. For more details, see updated doc: https://docs.google.com/document/d/1mXxYnYN77tK-R1JOVo6tFG3jNpMzfueQN1Zp5h3r9aM/edit# Bug: v8:11092 Original change's description: > Reland "Faster JS-to-Wasm calls" > > This is a reland of 860fcb1b > > - Disabled the tests for this feature in V8-lite mode (the original > change broke V8-lite tests). > - Also modified test console-profile-wasm.js that was brittle with this > change because it assumed that there was always a JS-to-Wasm wrapper > but this is not the case when the TurboFan compilation completes before > the Liftoff-compiled code starts to run. > > More changes in Patchset 8: > > - Moved inlining of the "JSToWasm Wrapper" away from simplified-lowering, > into a new phase, wasm-inlining that reuses the JSInliner reducer. > The doc > https://docs.google.com/document/d/1mXxYnYN77tK-R1JOVo6tFG3jNpMzfueQN1Zp5h3r9aM/edit# > describes the new logic. > > - Fixed a couple of small issues in wasm_compiler.cc to make sure that > the graph "JSToWasm Wrapper" subgraph has a valid Control chain; > this should solve the problem we had inlining the calls in functions > that can throw exception. Original change's description: > Faster JS-to-Wasm calls > > This replaces https://chromium-review.googlesource.com/c/v8/v8/+/2376165/. > > Currently JS-to-Wasm calls go through a wrapper/trampoline, built on > the basis of the signature of a Wasm function to call, and whose task > is to: > - set "thread_in_wasm_flag" to true > - convert the arguments from tagged types into Wasm native types > - calculate the address of the Wasm function to call and call it > - convert back the result from Wasm native types into tagged types > - reset "thread_in_wasm_flag" to false. > > This CL tries to improve the performance of JS-to-Wasm calls by > inlining the code of the JS-to-Wasm wrappers in the call site. > > It introduces a new IR operand, JSWasmCall, which replaces JSCall for > this kind of calls. A 'JSWasmCall' node is associated to > WasmCallParameters, which contain information about the signature of > the Wasm function to call. > > WasmWrapperGraphBuilder::BuildJSToWasmWrapper is modified to avoid > generating code to convert the types for the arguments > of the Wasm function, when the conversion is not necessary. > The actual inlining of the graph generated for this wrapper happens in > the simplified-lowering phase. > > A new builtin, JSToWasmLazyDeoptContinuation, is introduced to manage > lazy deoptimizations that can happen if the Wasm function callee calls > back some JS code that invalidates the compiled JS caller function. > Bug: v8:11092 Cq-Include-Trybots: luci.v8.try:v8_linux_arm_lite_rel_ng Change-Id: Ie052634598754feab4ff36d10fd04e008b5227a5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2649777 Commit-Queue: Paolo Severini <paolosev@microsoft.com> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#72541}
-
- 02 Feb, 2021 1 commit
-
-
Jakob Kummerow authored
When constant-folding the test based on static types in the function body decoder, we have to ensure Liftoff's value stack is properly updated. Fixed: chromium:1172912 Change-Id: I618992608882b850a8a4bce0b267ce456e4c2a40 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2664447Reviewed-by:
Manos Koukoutos <manoskouk@chromium.org> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Auto-Submit: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#72482}
-
- 01 Feb, 2021 1 commit
-
-
Ng Zhi An authored
This is a reland of commit 9c09c227. The fix for gc stress failure is merged: https://crrev.com/c/2656857. Original change's description: > Bug: v8:11331 > Change-Id: Ie394ec841a1a1c4030c4f589eac2cee8a6a2a1f9 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2639033 > Reviewed-by: Georg Neis <neis@chromium.org> > Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> > Commit-Queue: Zhi An Ng <zhin@chromium.org> > Cr-Commit-Position: refs/heads/master@{#72304} Bug: v8:11331 Change-Id: I82f57b3fe5f0c456472aa7ce404703f34b73d17e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2659511Reviewed-by:
Deepti Gandluri <gdeepti@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#72465}
-
- 29 Jan, 2021 1 commit
-
-
Andreas Haas authored
... LiftoffStackSlots::Construct R=thibaudm@chromium.org Bug: chromium:1171788 Change-Id: Ifb8e20f4e81fe2c698fe1f51c0b833a6049f7558 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2659255Reviewed-by:
Thibaud Michaud <thibaudm@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#72433}
-
- 27 Jan, 2021 1 commit
-
-
Clemens Backes authored
Instead of updating the detected features set directly, use the synchronized {OnCompilationStopped} method. In order to avoid this error in the future, the whole {detected_features()} getter is removed, as it returns a pointer which can only be accessed when holding the mutex anyway. Also, the refactored code was the only user of this dangerous method. Drive-by: Pass the WasmFeatures set by value, since it's just an EnumSet. Drive-by 2: Remove a print line from the regression test which can be confusing if the test is picked up again by foozzie. R=ahaas@chromium.org CC=zhin@chromium.org Bug: v8:11357 Change-Id: I75b5c8f35983d2bc1fd2b61adcb2ecfc18564f39 Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_isolates_rel_ng Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_rel_ng Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2653226Reviewed-by:
Zhi An Ng <zhin@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#72375}
-
- 26 Jan, 2021 2 commits
-
-
Ng Zhi An authored
Bug: chromium:1161555 Change-Id: I449c10984a55bb43b7221d66b195552835af21a6 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2650352Reviewed-by:
Clemens Backes <clemensb@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#72335}
-
Zhi An Ng authored
This reverts commit 9c09c227. Reason for revert: gc stress failures https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux%20-%20arm64%20-%20sim%20-%20gc%20stress/20563/overview Original change's description: > [wasm-simd] Merge all any_true to v128.any_true > > In https://github.com/WebAssembly/simd/pull/423, all any_true > instructions were removed, and replaced with a single v128.any_true. > > This patch removes all but v8x16.any_true, and renames it to > v128.any_true. > > Bug: v8:11331 > Change-Id: Ie394ec841a1a1c4030c4f589eac2cee8a6a2a1f9 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2639033 > Reviewed-by: Georg Neis <neis@chromium.org> > Reviewed-by: Deepti Gandluri <gdeepti@chromium.org> > Commit-Queue: Zhi An Ng <zhin@chromium.org> > Cr-Commit-Position: refs/heads/master@{#72304} TBR=neis@chromium.org,gdeepti@chromium.org,neis@google.com,zhin@chromium.org Change-Id: I52dbf8de679059dd7b17908c1fe3ada0eb54ff84 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:11331 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2649240Reviewed-by:
Zhi An Ng <zhin@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#72305}
-