- 13 Jul, 2022 1 commit
-
-
Jakob Kummerow authored
When the control-flow aware type of a Node doesn't actually change, then we shouldn't claim that it did (which causes later re-visiting of the node). Fixed: v8:13061 Change-Id: I064cedf3721a79844bfc36ad3142428bdfbaf891 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3760675 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Nico Hartmann <nicohartmann@chromium.org> Commit-Queue: Nico Hartmann <nicohartmann@chromium.org> Auto-Submit: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/main@{#81700}
-
- 08 Jul, 2022 1 commit
-
-
Jakob Kummerow authored
Duplicate subsections in the name section are disallowed by the spec. Since the whole name section is optional, we shouldn't fail validation because of it, but we'll ignore duplicate subsections. Drive-by cleanup: reduce code duplication by reusing DecodeNameMap from DecodeIndirectNameMap. Fixed: chromium:1342338 Change-Id: Icae14c27a0255c6107517354f07ec8eb78d2a7b1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3751211 Auto-Submit: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Manos Koukoutos <manoskouk@chromium.org> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/main@{#81608}
-
- 06 Jul, 2022 1 commit
-
-
Joyee Cheung authored
When the failed access callback is configured but it doesn't throw, we should return instead of expecting an exception, otherwise it would crash because there isn't one. This patch also adds --throw-on-failed-access-check and --noop-on-failed-access-check in d8 to mimic the behavior of the failed access check callback in chromium. Bug: chromium:1339722 Change-Id: Ie1db9d2fb364c6f8259eb9b8d81a21071c280a80 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3737305 Commit-Queue: Joyee Cheung <joyee@igalia.com> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/main@{#81557}
-
- 05 Jul, 2022 2 commits
-
-
Marja Hölttä authored
Bug: chromium:1309467,chromium:1308360,v8:9237 Change-Id: I77b004e263a9bed98a0dfe5936bdad055bde36a6 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3745365Reviewed-by:
Igor Sheludko <ishell@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/main@{#81530}
-
Jakob Kummerow authored
Fixed: chromium:1341180 Change-Id: Ib475310b18c31e5e3e0fc5e52dab736ebb6ac55a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3738745Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/main@{#81527}
-
- 01 Jul, 2022 1 commit
-
-
Manos Koukoutos authored
This makes the internal V8 name consistent with the text-format name. Bug: v8:7748 Change-Id: I44f7ac1eb5e634b4f829e596bf1f14caeb748d54 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3726291Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/main@{#81491}
-
- 30 Jun, 2022 3 commits
-
-
Jakob Kummerow authored
The previous combination of a conditional and an unconditional move produced an incorrect value when dst == rhs and lhs contained the expected result. Fixed: chromium:1338980 Change-Id: If3f722999ed9c0ffd687736280d048d232d75736 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3738219 Auto-Submit: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Reviewed-by:
Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/main@{#81475}
-
Jakob Kummerow authored
Waiting for a background thread to finish a task isn't going to work when there are no background threads. Luckily, we can sidestep the problem by compiling with Turbofan immediately, instead of triggering dynamic tier-up through repeated execution. As a nice bonus, this makes the test faster in non-predictable modes too. Fixed: v8:13020 Change-Id: I2d47bc07bbde48a210c6ea59551ae16e63bdae05 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3736443Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Auto-Submit: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#81459}
-
Jakob Kummerow authored
Fixed: chromium:1340488 Change-Id: Id3da10dd13256dfc15a6fef4dc412b5d30ccc8cc Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3735126Reviewed-by:
Manos Koukoutos <manoskouk@chromium.org> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Auto-Submit: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/main@{#81455}
-
- 28 Jun, 2022 1 commit
-
-
Jakob Kummerow authored
This remodels the tier-up checks on loop back edges to avoid modifying the cache state by taking temp registers passed in from the caller, and not causing the instance to get cached. Additionally, this introduces FreezeCacheState scopes, which allow us to enforce that certain ranges don't cause any cache modifications. Conditional jumps require such a scope to be around, which should help ensure that we don't forget to add them to any future code we write. Drive-by cleanup: drop {pinned} lists from a few Load helper functions. They don't allocate registers (and shouldn't), so they don't need to know about pinned registers. Fixed: chromium:1339321 Change-Id: I1c7660418a85259e96c5e0dcfeaf12dab2114e8c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3724787Reviewed-by:
Manos Koukoutos <manoskouk@chromium.org> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/main@{#81411}
-
- 27 Jun, 2022 1 commit
-
-
Manos Koukoutos authored
- Use the lowered 32-bit signature when linking the inlined and caller graphs. - Tolerate non-projection uses of Call nodes when linking the graphs. These can be left over by Int64Lowering. - Drive-by: Inline really small functions even if their call count is low. Bug: v8:12166 Change-Id: I5b472d3f617f2f23820a5d142102c0a6c5c769dc Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3720715Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/main@{#81386}
-
- 24 Jun, 2022 2 commits
-
-
Manos Koukoutos authored
The optimization of a trap inside a branch is being removed. Since it does not speed-up non-trapping programs, and it is quite narrow, it is not worth the maintenance cost. Bug: chromium:1338947, chromium:1338950, chromium:1339153 Change-Id: I5b3f52e2b11d4c5113dd44fe23c14d74124a15f6 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3721617 Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/main@{#81357}
-
Manos Koukoutos authored
Bug: v8:7748 Change-Id: Id886fa4c734bbd826770239ea145630570915749 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3723505Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/main@{#81355}
-
- 22 Jun, 2022 1 commit
-
-
Andreas Haas authored
With recent changes, we resolve the promise of e.g. WebAssembly.compile with the external API, and not the V8-internal API. The external API, however, also handles microtasks, and depending on the MicrotasksPolicy, may also execute microtasks immediately. This means the then-handler of WebAssembly.compile may get executed within all the scopes that were open when the external API was called. One of the open scopes is the CancelableTask that finishes WebAssembly compilation. The deadlock seen in the issue arises now when {quit()} gets called in the then-handler of WebAssembly compilation. The reason is that {quit()} terminates the isolate, and during isolate termination, we wait for all running CancelableTasks to finish. This, however, means a deadlock, because the task that terminates the isolate is waiting for itself to finish. R=jkummerow@chrommium.org Bug: chromium:1338150 Change-Id: I89243daffc76a456293519e24bfaad88277bb99a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3717990Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/main@{#81311}
-
- 21 Jun, 2022 2 commits
-
-
Jakob Kummerow authored
The tier-up check in any backwards jumps in a br_table list cause the instance to get cached if it wasn't cached before. When the branch is not taken, we must not rely on this caching to have happened. This is a variant of crbug.com/1314184. Fixed: chromium:1338075 Change-Id: Id511e98f29ec13f0a38b5595ceb4a607c58b92a4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3716478 Auto-Submit: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/main@{#81279}
-
Manos Koukoutos authored
Maintaining an AST class just for testing constant exressions does not seem justified. This CL changes constant expressions in mjsunit tests to be represented with bytes, like regular expressions. Change-Id: If5ec5f4d863176952442b1a7e2fec8a61e385971 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3714237Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/main@{#81266}
-
- 14 Jun, 2022 1 commit
-
-
Darius M authored
For FixedDoubleArrays that are not aligned on 8 bytes, the SIMD fast path of array.IndexOf actually falls back on a scalar loop. Because of how this loop was written, it was failing to see that 0.0 == -0.0. Bug: chromium:1335445 Change-Id: Idf70fd3ed9950e5b2b7cc72bb2ebca6879b3a04e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3702803Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Darius Mercadier <dmercadier@chromium.org> Cr-Commit-Position: refs/heads/main@{#81163}
-
- 13 Jun, 2022 1 commit
-
-
Igor Sheludko authored
... setting too low --max-old-space-size value. Fixes: v8:12725 Change-Id: I5b1b533992d6b1024e81263525ed90914582e27a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3695594 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Auto-Submit: Igor Sheludko <ishell@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#81107}
-
- 08 Jun, 2022 2 commits
-
-
Thibaud Michaud authored
Context: https://github.com/WebAssembly/exception-handling/pull/197 This change removes the wasm exception -> JS Error inheritance. R=jkummerow@chromium.org Bug: v8:8091 Change-Id: I479f16fe03d4d77d2ecd8409e96f9a3c063912b5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3688401 Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/main@{#80997}
-
Jakob Kummerow authored
Performing the "swap with TypeCast" input optimization causes inconsistent types for unreachable AssertNonNull instructions (that should inherit that TypeCast's <bot> type). Fixed: v8:12945 Change-Id: Ie51cd6531267a2828c6aac92948edda5c2a5db37 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3693708 Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Auto-Submit: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/main@{#80989}
-
- 07 Jun, 2022 1 commit
-
-
Nico Hartmann authored
In typed-optimization, Turbofan optimized NumberFloor(NumberDivide(...)) patterns where both inputs are known to be of Unsigned32 type, but the replacement couldn't be typed consistently. This CL introduces a new operator Unsigned32Divide, which has the same semantics, but can be typed consistently and thus allows the simplified lowering verifier to validate the graph correctly. Bug: v8:12619 Change-Id: Iad77154d3d840c94edfd3ab91ffa37c840da0bc9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3644790 Commit-Queue: Nico Hartmann <nicohartmann@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/main@{#80967}
-
- 31 May, 2022 1 commit
-
-
Maya Lekova authored
Bug: chromium:1329234 Change-Id: I59f171d3e2ab0c07f79f631971b1695b9f706600 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3677294Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Commit-Queue: Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/main@{#80850}
-
- 24 May, 2022 1 commit
-
-
Solomon Kinard authored
Change-Id: I924a2b4dc4ab5e7be22fd2a9a1084473ba65fc35 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3651039Reviewed-by:
Hannes Payer <hpayer@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#80711}
-
- 23 May, 2022 1 commit
-
-
Joyee Cheung authored
Previously the LookupIterator ignores private symbols (including private names) for the access check. This patch removes these exceptions so that they are always checked. Drive-by: removes the unused should_throw parameter in Runtime::DefineObjectOwnProperty() Bug: chromium:1321899 Change-Id: I9677b1e377f01d966daa1603eee1ed9535ffab92 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3623419Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Commit-Queue: Joyee Cheung <joyee@igalia.com> Cr-Commit-Position: refs/heads/main@{#80700}
-
- 20 May, 2022 1 commit
-
-
Jakob Kummerow authored
Fixed: chromium:1327321 Change-Id: I4868e0127b9dd14a0812cafca1681280534faa46 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3652788Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Auto-Submit: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/main@{#80661}
-
- 17 May, 2022 2 commits
-
-
Solomon Kinard authored
Change-Id: Ib5d2e24ee4a83547b9d403d5d8b5d75173b8310b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3648093Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Solomon Kinard <solomonkinard@chromium.org> Cr-Commit-Position: refs/heads/main@{#80597}
-
Manos Koukoutos authored
Loading from/storing to the same field with incompatible mutabilities is possible in unreachable code, specifically when a value is cast to two different types with incompatible mutability for the same field offset. Therefore, we allow this pattern in CsaLoadElimination. When we detect it, we emit an Unreachable node to immediately crash the program in case this unreachable code is somehow executed. Bug: v8:7748, v8:12874 Change-Id: Ieb359d3e1b9f7bc4a91c556af2bba0507526d20e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3644806 Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/main@{#80587}
-
- 16 May, 2022 2 commits
-
-
Solomon Kinard authored
Change-Id: Ib8ca0c771b50b712e5fd6acb470213235f69a99b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3650833Reviewed-by:
Adam Klein <adamk@chromium.org> Commit-Queue: Solomon Kinard <solomonkinard@chromium.org> Cr-Commit-Position: refs/heads/main@{#80569}
-
Jakob Kummerow authored
The LookupIterator only handles JSReceivers, so special-case oddballs. Change-Id: I03d2875124775390c9b928fb7cfe4d938213b5d0 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3645409 Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Auto-Submit: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/main@{#80548}
-
- 12 May, 2022 2 commits
-
-
Jakob Kummerow authored
Fixed: v8:12866 Change-Id: Icba2ffc7837bf4942fd4bc741abeb7c98694c2d8 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3644607Reviewed-by:
Manos Koukoutos <manoskouk@chromium.org> Auto-Submit: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Andy Wingo <wingo@igalia.com> Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Cr-Commit-Position: refs/heads/main@{#80500}
-
Jakob Kummerow authored
The IsValidSectionCode function shouldn't include internally-used numeric identifiers of well-known optional sections. Fixed: v8:12867 Change-Id: I9d894ee57157455e92a17ddcde94f32f05fb038d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3644612 Auto-Submit: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/main@{#80494}
-
- 03 May, 2022 1 commit
-
-
Camillo Bruni authored
To be consistent with the all the other tiers and avoid confusion, we rename --opt to ---turbofan, and --always-opt to --always-turbofan. Change-Id: Ie23dc8282b3fb4cf2fbf73b6c3d5264de5d09718 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3610431Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Reviewed-by:
Jakob Linke <jgruber@chromium.org> Cr-Commit-Position: refs/heads/main@{#80336}
-
- 02 May, 2022 2 commits
-
-
Patrick Thier authored
https://crrev.com/c/3571817 introduced a bug that string table lookups failed on SlicedStrings with a start offset of 0. This CL fixes the issue by re-using the already computed hash only if the length of the source string matches the length of the string to lookup. Bug: chromium:1320179, chromium:1321573 Change-Id: Ic8755a0266a9ec67fe5eb9c96fdab1b55d5009f2 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3616723 Auto-Submit: Patrick Thier <pthier@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/main@{#80309}
-
Jakob Linke authored
This is a reland of commit 91453880 Fixed: properly reference the ClearedValue in CSA (i.e. without the cage_base upper 32 bits). Original change's description: > Reland "[osr] Use the new OSR cache" > > This is a reland of commit 91da3883 > > Fixed: Use an X register for JumpIfCodeTIsMarkedForDeoptimization > on arm64. > > Original change's description: > > [osr] Use the new OSR cache > > > > This CL switches over our OSR system to be based on the feedback > > vector osr caches. > > > > - OSRing to Sparkplug is fully separated from OSR urgency. If > > SP code exists, we simply jump to it, no need to maintain an > > installation request. > > - Each JumpLoop checks its dedicated FeedbackVector cache slot. > > If a valid target code object exists, we enter it *without* > > calling into runtime to fetch the code object. > > - Finally, OSR urgency still remains as the heuristic for > > requesting Turbofan OSR compile jobs. Note it no longer has a > > double purpose of being a generic untargeted installation > > request. > > > > With the new system in place, we can remove now-unnecessary > > hacks: > > > > - Early OSR tierup is replaced by the standard OSR system. Any > > present OSR code is automatically entered. > > - The synchronous OSR compilation fallback is removed. With > > precise installation (= per-JumpLoop-bytecode) we no longer > > have the problem of 'getting unlucky' with JumpLoop/cache entry > > mismatches. Execution has moved on while compiling? Simply spawn > > a new concurrent compile job. > > - Remove the synchronous (non-OSR) Turbofan compile request now > > that we always enter available OSR code as early as possible. > > - Tiering into Sparkplug no longer messes with OSR state. > > > > Bug: v8:12161 > > Change-Id: I0a85e53d363504b7dac174dbaf69c03c35e66700 > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3596167 > > Commit-Queue: Jakob Linke <jgruber@chromium.org> > > Auto-Submit: Jakob Linke <jgruber@chromium.org> > > Reviewed-by: Leszek Swirski <leszeks@chromium.org> > > Commit-Queue: Leszek Swirski <leszeks@chromium.org> > > Cr-Commit-Position: refs/heads/main@{#80147} > > Bug: v8:12161 > Change-Id: Ib3597cf1d99cdb5d0f2c5ac18e311914f376231d > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3606232 > Auto-Submit: Jakob Linke <jgruber@chromium.org> > Reviewed-by: Leszek Swirski <leszeks@chromium.org> > Commit-Queue: Leszek Swirski <leszeks@chromium.org> > Cr-Commit-Position: refs/heads/main@{#80167} Bug: v8:12161,chromium:1320189 Change-Id: Ibd9a2ab61f51ebb32a3f5a66f7c602faead71c3e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3620273Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Commit-Queue: Jakob Linke <jgruber@chromium.org> Cr-Commit-Position: refs/heads/main@{#80306}
-
- 29 Apr, 2022 1 commit
-
-
Rohan Pavone authored
This reverts commit 91453880. Reason for revert: Breaking the Fuchsia Deterministic Builder Original change's description: > Reland "[osr] Use the new OSR cache" > > This is a reland of commit 91da3883 > > Fixed: Use an X register for JumpIfCodeTIsMarkedForDeoptimization > on arm64. > > Original change's description: > > [osr] Use the new OSR cache > > > > This CL switches over our OSR system to be based on the feedback > > vector osr caches. > > > > - OSRing to Sparkplug is fully separated from OSR urgency. If > > SP code exists, we simply jump to it, no need to maintain an > > installation request. > > - Each JumpLoop checks its dedicated FeedbackVector cache slot. > > If a valid target code object exists, we enter it *without* > > calling into runtime to fetch the code object. > > - Finally, OSR urgency still remains as the heuristic for > > requesting Turbofan OSR compile jobs. Note it no longer has a > > double purpose of being a generic untargeted installation > > request. > > > > With the new system in place, we can remove now-unnecessary > > hacks: > > > > - Early OSR tierup is replaced by the standard OSR system. Any > > present OSR code is automatically entered. > > - The synchronous OSR compilation fallback is removed. With > > precise installation (= per-JumpLoop-bytecode) we no longer > > have the problem of 'getting unlucky' with JumpLoop/cache entry > > mismatches. Execution has moved on while compiling? Simply spawn > > a new concurrent compile job. > > - Remove the synchronous (non-OSR) Turbofan compile request now > > that we always enter available OSR code as early as possible. > > - Tiering into Sparkplug no longer messes with OSR state. > > > > Bug: v8:12161 > > Change-Id: I0a85e53d363504b7dac174dbaf69c03c35e66700 > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3596167 > > Commit-Queue: Jakob Linke <jgruber@chromium.org> > > Auto-Submit: Jakob Linke <jgruber@chromium.org> > > Reviewed-by: Leszek Swirski <leszeks@chromium.org> > > Commit-Queue: Leszek Swirski <leszeks@chromium.org> > > Cr-Commit-Position: refs/heads/main@{#80147} > > Bug: v8:12161 > Change-Id: Ib3597cf1d99cdb5d0f2c5ac18e311914f376231d > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3606232 > Auto-Submit: Jakob Linke <jgruber@chromium.org> > Reviewed-by: Leszek Swirski <leszeks@chromium.org> > Commit-Queue: Leszek Swirski <leszeks@chromium.org> > Cr-Commit-Position: refs/heads/main@{#80167} Bug: v8:12161 Change-Id: I73e2d98660e9edfbe07a152a14402380ea9227de Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3615219Reviewed-by:
Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Owners-Override: Deepti Gandluri <gdeepti@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Cr-Commit-Position: refs/heads/main@{#80287}
-
- 27 Apr, 2022 1 commit
-
-
Jakob Gruber authored
This logic was confused in the presence of inlined frames; the deopt exit offset would point inside the innermost inlined frame while we incorrectly assumed it points at the outermost frame. Fix this by always referring to the bytecode offset of the outermost frame. Bug: v8:12161 Fixed: chromium:1320094 Change-Id: I2eb28498639432c5344859f64a9388d93ee23bde Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3608630 Auto-Submit: Jakob Linke <jgruber@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Commit-Queue: Jakob Linke <jgruber@chromium.org> Cr-Commit-Position: refs/heads/main@{#80212}
-
- 26 Apr, 2022 2 commits
-
-
Jakob Kummerow authored
When passing anyref-typed things to Wasm, we cannot expect that all functions are WasmExternalFunctions. Instead of adding a relatively expensive type check to such calls, this patch disables function unwrapping for anyref-typed values. Fixed: v8:12789 Change-Id: Ied57187bac7fde0326634f7b4fc428ad21dc9c2f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3605231 Auto-Submit: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/main@{#80179}
-
Jakob Gruber authored
This is a reland of commit 91da3883 Fixed: Use an X register for JumpIfCodeTIsMarkedForDeoptimization on arm64. Original change's description: > [osr] Use the new OSR cache > > This CL switches over our OSR system to be based on the feedback > vector osr caches. > > - OSRing to Sparkplug is fully separated from OSR urgency. If > SP code exists, we simply jump to it, no need to maintain an > installation request. > - Each JumpLoop checks its dedicated FeedbackVector cache slot. > If a valid target code object exists, we enter it *without* > calling into runtime to fetch the code object. > - Finally, OSR urgency still remains as the heuristic for > requesting Turbofan OSR compile jobs. Note it no longer has a > double purpose of being a generic untargeted installation > request. > > With the new system in place, we can remove now-unnecessary > hacks: > > - Early OSR tierup is replaced by the standard OSR system. Any > present OSR code is automatically entered. > - The synchronous OSR compilation fallback is removed. With > precise installation (= per-JumpLoop-bytecode) we no longer > have the problem of 'getting unlucky' with JumpLoop/cache entry > mismatches. Execution has moved on while compiling? Simply spawn > a new concurrent compile job. > - Remove the synchronous (non-OSR) Turbofan compile request now > that we always enter available OSR code as early as possible. > - Tiering into Sparkplug no longer messes with OSR state. > > Bug: v8:12161 > Change-Id: I0a85e53d363504b7dac174dbaf69c03c35e66700 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3596167 > Commit-Queue: Jakob Linke <jgruber@chromium.org> > Auto-Submit: Jakob Linke <jgruber@chromium.org> > Reviewed-by: Leszek Swirski <leszeks@chromium.org> > Commit-Queue: Leszek Swirski <leszeks@chromium.org> > Cr-Commit-Position: refs/heads/main@{#80147} Bug: v8:12161 Change-Id: Ib3597cf1d99cdb5d0f2c5ac18e311914f376231d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3606232 Auto-Submit: Jakob Linke <jgruber@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#80167}
-
- 25 Apr, 2022 2 commits
-
-
Nico Hartmann authored
This reverts commit 91da3883. Reason for revert: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux64%20-%20arm64%20-%20sim%20-%20pointer%20compression%20-%20builder/21150/overview Original change's description: > [osr] Use the new OSR cache > > This CL switches over our OSR system to be based on the feedback > vector osr caches. > > - OSRing to Sparkplug is fully separated from OSR urgency. If > SP code exists, we simply jump to it, no need to maintain an > installation request. > - Each JumpLoop checks its dedicated FeedbackVector cache slot. > If a valid target code object exists, we enter it *without* > calling into runtime to fetch the code object. > - Finally, OSR urgency still remains as the heuristic for > requesting Turbofan OSR compile jobs. Note it no longer has a > double purpose of being a generic untargeted installation > request. > > With the new system in place, we can remove now-unnecessary > hacks: > > - Early OSR tierup is replaced by the standard OSR system. Any > present OSR code is automatically entered. > - The synchronous OSR compilation fallback is removed. With > precise installation (= per-JumpLoop-bytecode) we no longer > have the problem of 'getting unlucky' with JumpLoop/cache entry > mismatches. Execution has moved on while compiling? Simply spawn > a new concurrent compile job. > - Remove the synchronous (non-OSR) Turbofan compile request now > that we always enter available OSR code as early as possible. > - Tiering into Sparkplug no longer messes with OSR state. > > Bug: v8:12161 > Change-Id: I0a85e53d363504b7dac174dbaf69c03c35e66700 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3596167 > Commit-Queue: Jakob Linke <jgruber@chromium.org> > Auto-Submit: Jakob Linke <jgruber@chromium.org> > Reviewed-by: Leszek Swirski <leszeks@chromium.org> > Commit-Queue: Leszek Swirski <leszeks@chromium.org> > Cr-Commit-Position: refs/heads/main@{#80147} Bug: v8:12161 Change-Id: I4a6955f4f20b6f3b13e98d5600c7c6a5205915bc No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3605608 Auto-Submit: Nico Hartmann <nicohartmann@chromium.org> Owners-Override: Nico Hartmann <nicohartmann@chromium.org> Reviewed-by:
Nico Hartmann <nicohartmann@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/main@{#80148}
-
Jakob Gruber authored
This CL switches over our OSR system to be based on the feedback vector osr caches. - OSRing to Sparkplug is fully separated from OSR urgency. If SP code exists, we simply jump to it, no need to maintain an installation request. - Each JumpLoop checks its dedicated FeedbackVector cache slot. If a valid target code object exists, we enter it *without* calling into runtime to fetch the code object. - Finally, OSR urgency still remains as the heuristic for requesting Turbofan OSR compile jobs. Note it no longer has a double purpose of being a generic untargeted installation request. With the new system in place, we can remove now-unnecessary hacks: - Early OSR tierup is replaced by the standard OSR system. Any present OSR code is automatically entered. - The synchronous OSR compilation fallback is removed. With precise installation (= per-JumpLoop-bytecode) we no longer have the problem of 'getting unlucky' with JumpLoop/cache entry mismatches. Execution has moved on while compiling? Simply spawn a new concurrent compile job. - Remove the synchronous (non-OSR) Turbofan compile request now that we always enter available OSR code as early as possible. - Tiering into Sparkplug no longer messes with OSR state. Bug: v8:12161 Change-Id: I0a85e53d363504b7dac174dbaf69c03c35e66700 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3596167 Commit-Queue: Jakob Linke <jgruber@chromium.org> Auto-Submit: Jakob Linke <jgruber@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#80147}
-