- 17 May, 2021 1 commit
-
-
Santiago Aboy Solanes authored
This ends up cleaning up the last of the macros in object-macros which were using `synchronized_`. There are still a few methods which use `synchronized_` but those were defined ad-hoc (i.e. w/o macros). Bug: v8:7790 Change-Id: Ib2d35030fd032293e746c09e10156e526af8d032 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2897085Reviewed-by: Dominik Inführ <dinfuehr@chromium.org> Reviewed-by: Nico Hartmann <nicohartmann@chromium.org> Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Cr-Commit-Position: refs/heads/master@{#74589}
-
- 28 Apr, 2021 2 commits
-
-
Jakob Gruber authored
This reverts commit 317462be. Reason for revert: Landed prematurely. Original change's description: > [compiler] Make BigInts bg-serialized > > BigInts are immutable after initialization, thus an acquire-release > synchronization point is sufficient to read safely from the background > thread. This CL introduces the `length` field as that sync point. > > Bug: v8:7790 > Change-Id: I977f30836b311c3851896dd29e708f78a090f547 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2854745 > Auto-Submit: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Michael Stanton <mvstanton@chromium.org> > Commit-Queue: Michael Stanton <mvstanton@chromium.org> > Cr-Commit-Position: refs/heads/master@{#74245} Tbr: mvstanton@chromium.org Bug: v8:7790 Change-Id: I0fab1a8e161c75267aead3735708e26620686fa6 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2854749 Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Auto-Submit: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#74247}
-
Jakob Gruber authored
BigInts are immutable after initialization, thus an acquire-release synchronization point is sufficient to read safely from the background thread. This CL introduces the `length` field as that sync point. Bug: v8:7790 Change-Id: I977f30836b311c3851896dd29e708f78a090f547 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2854745 Auto-Submit: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Michael Stanton <mvstanton@chromium.org> Commit-Queue: Michael Stanton <mvstanton@chromium.org> Cr-Commit-Position: refs/heads/master@{#74245}
-
- 26 Apr, 2021 1 commit
-
-
Leszek Swirski authored
It's unfortunate that there is both a LocalIsolate template parameter, and an actual LocalIsolate class. Clean this up by renaming the template parameters to IsolateT Change-Id: Iecefc3eca5aeb7bbd21e78818b90f9e75cdff10f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2846880 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Auto-Submit: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#74173}
-
- 19 Apr, 2021 1 commit
-
-
Jakob Kummerow authored
Also replace the schoolbook algorithm with an optimized version that runs about twice as fast. This also adds infrastructure to support interrupt checks from BigInt library code. Bug: v8:11515 Change-Id: I5f812913697384afca98937e1fb7361b4ec22d62 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2773043 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Michael Achenbach <machenbach@chromium.org> Reviewed-by: Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/master@{#74045}
-
- 23 Mar, 2021 1 commit
-
-
Jakob Kummerow authored
This is a reland of c4b44d5d Original change's description: > [bigint] Begin src/bigint refactoring > > This patch moves a first function, Compare, from src/objects/bigint.cc > to src/bigint/, to blaze the trail. More to follow! > > Bug: v8:11515 > Change-Id: Id7fa0b40ea852dbed1360f7ab439cb32d0c15762 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2737295 > Reviewed-by: Thibaud Michaud <thibaudm@chromium.org> > Reviewed-by: Hannes Payer <hpayer@chromium.org> > Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> > Cr-Commit-Position: refs/heads/master@{#73511} Bug: v8:11515 Change-Id: I50a81593a8acaa91161bb01a445bddbb8e6315c4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2773804Reviewed-by: Hannes Payer <hpayer@chromium.org> Reviewed-by: Thibaud Michaud <thibaudm@chromium.org> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#73610}
-
- 18 Mar, 2021 2 commits
-
-
Leszek Swirski authored
This reverts commit c4b44d5d. Reason for revert: UBSan failures (https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux64%20UBSan/15621/overview) Original change's description: > [bigint] Begin src/bigint refactoring > > This patch moves a first function, Compare, from src/objects/bigint.cc > to src/bigint/, to blaze the trail. More to follow! > > Bug: v8:11515 > Change-Id: Id7fa0b40ea852dbed1360f7ab439cb32d0c15762 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2737295 > Reviewed-by: Thibaud Michaud <thibaudm@chromium.org> > Reviewed-by: Hannes Payer <hpayer@chromium.org> > Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> > Cr-Commit-Position: refs/heads/master@{#73511} Bug: v8:11515 Change-Id: I98f3e385c785297b1b71de07fc4835da2bbe816c No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2773048 Auto-Submit: Leszek Swirski <leszeks@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@{#73515}
-
Jakob Kummerow authored
This patch moves a first function, Compare, from src/objects/bigint.cc to src/bigint/, to blaze the trail. More to follow! Bug: v8:11515 Change-Id: Id7fa0b40ea852dbed1360f7ab439cb32d0c15762 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2737295Reviewed-by: Thibaud Michaud <thibaudm@chromium.org> Reviewed-by: Hannes Payer <hpayer@chromium.org> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#73511}
-
- 26 Nov, 2020 1 commit
-
-
Jakob Kummerow authored
Fixed: chromium:1151890 Change-Id: I26f5c76494a9ff3f5a141f381e1c9a543e368571 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2561618 Auto-Submit: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#71422}
-
- 20 Nov, 2020 1 commit
-
-
Leszek Swirski authored
Because of LocalHeap safepoints, our existing assert scopes don't necessarily maintain the same guarantees as desired. In particular, DisallowHeapAllocation no longer guarantees that objects don't move. This patch transitions DisallowHeapAllocation to DisallowGarbageCollection, to ensure that code using this scope is also protected against safepoints. Change-Id: I0411425884f6849982611205fb17bb072881c722 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2540547 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Peter Marshall <petermarshall@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#71319}
-
- 17 Nov, 2020 1 commit
-
-
John Xu authored
Bug: v8:10927 Change-Id: Icbdc0d7329ddd466e7d67a954246a35795b4dece Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2507310 Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Peter Marshall <petermarshall@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#71220}
-
- 10 Nov, 2020 1 commit
-
-
Georg Neis authored
This is a reland of 3b6f7802. The compilation failures due to call-by-reference have been fixed. Original change's description: > [cleanup] Replace more uses of Min/Max by std::min/max > > Bug: v8:11074 > Change-Id: I94d53ea0aac123459ae60fc61748fedf0faac2f4 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2521147 > Reviewed-by: Maya Lekova <mslekova@chromium.org> > Commit-Queue: Georg Neis <neis@chromium.org> > Auto-Submit: Georg Neis <neis@chromium.org> > Cr-Commit-Position: refs/heads/master@{#71022} Bug: v8:11074 Change-Id: Ia01bfd014e481d3a13b306974f6837a65391b19c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2527064 Commit-Queue: Maya Lekova <mslekova@chromium.org> Reviewed-by: Maya Lekova <mslekova@chromium.org> Auto-Submit: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#71072}
-
- 09 Nov, 2020 1 commit
-
-
Zhi An Ng authored
This reverts commit 3b6f7802. Reason for revert: Build failure https://ci.chromium.org/p/v8/builders/ci/V8%20Linux%20-%20full%20debug/14666 Original change's description: > [cleanup] Replace more uses of Min/Max by std::min/max > > Bug: v8:11074 > Change-Id: I94d53ea0aac123459ae60fc61748fedf0faac2f4 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2521147 > Reviewed-by: Maya Lekova <mslekova@chromium.org> > Commit-Queue: Georg Neis <neis@chromium.org> > Auto-Submit: Georg Neis <neis@chromium.org> > Cr-Commit-Position: refs/heads/master@{#71022} TBR=neis@chromium.org,zhin@chromium.org,mslekova@chromium.org # Not skipping CQ checks because original CL landed > 1 day ago. Bug: v8:11074 Change-Id: Id6c50bd9ba4132e83f4eecec9e23c6c15e2d787b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2524412Reviewed-by: Zhi An Ng <zhin@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#71026}
-
- 07 Nov, 2020 1 commit
-
-
Georg Neis authored
Bug: v8:11074 Change-Id: I94d53ea0aac123459ae60fc61748fedf0faac2f4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2521147Reviewed-by: Maya Lekova <mslekova@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Auto-Submit: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#71022}
-
- 07 Sep, 2020 1 commit
-
-
Marcel Laverdet authored
The BigInt constructor has quadratic complexity while parsing strings, and the input is unbounded. Interrupts should be checked during this operation to ensure the embedder has control over runaway execution. since the implicit cast from string may now throw. BigInt: :CompareToString and BigInt::EqualToString now return Maybe<..> Change-Id: Iccb85fafac4df69075a34d1de647cb4f0184cb12 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2392629Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#69720}
-
- 14 Aug, 2020 1 commit
-
-
Leszek Swirski authored
This patch introduces a new LocalIsolate and LocalFactory, which use LocalHeap and replace OffThreadIsolate and OffThreadFactory. This allows us to remove those classes, as well as the related OffThreadSpace, OffThreadLargeObjectSpace, OffThreadHeap, and OffThreadTransferHandle. OffThreadLogger becomes LocalLogger. LocalHeap behaves more like Heap than OffThreadHeap did, so this allows us to additionally remove the concept of "Finish" and "Publish" that the OffThreadIsolate had, and allows us to internalize strings directly with the newly-concurrent string table (where the implementation can now move to FactoryBase). This patch also removes the off-thread support from the deserializer entirely, as well as removing the LocalIsolateWrapper which allowed run-time distinction between Isolate and OffThreadIsolate. LocalHeap doesn't support the reservation model used by the deserializer, and we will likely move the deserializer to use LocalIsolate unconditionally once we figure out the details of how to do this. Bug: chromium:1011762 Change-Id: I1a1a0a72952b19a8a4c167c11a863c153a1252fc Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2315990 Commit-Queue: Andreas Haas <ahaas@chromium.org> Auto-Submit: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/master@{#69397}
-
- 22 Jun, 2020 1 commit
-
-
Ng Zhi An authored
This changes the use of "sane" to "sensible" or "valid". I tried to be sensible in my choice of replacement, by trying to read the comments or code to see which word matches the intention closest. Referenced https://fuchsia.dev/fuchsia-src/contribute/best-practices/respectful_code?hl=en#what_are_examples_of_terminology_to_be_avoided. Bug: v8:10619 Change-Id: Id957b2e6ff11e95270e1372005e1006d8cf1008d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2254483 Commit-Queue: Zhi An Ng <zhin@chromium.org> Reviewed-by: Michael Achenbach <machenbach@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#68471}
-
- 20 Mar, 2020 1 commit
-
-
Leszek Swirski authored
Squash a couple of remaining places where compilation finalization was allocating new-space objects. Bug: chromium:1011762 Change-Id: Ie0462eed422016f860146724a06dd2f1963bd88e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2110019 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#66807}
-
- 02 Mar, 2020 1 commit
-
-
Leszek Swirski authored
Remove OffThreadHandle, HandleOrOffThreadHandle, and HandleFor, and make the OffThreadIsolate allocate "real" Handles. Rather than using the main-thread Isolate's handle scopes, these off-thread Handles are backed by a Zone, which is tied to the lifetime of the nearest OffThreadHandleScope. Eventually, we'll likely want to merge the implementation of OffThreadHandleScope and HandleScope, but currently the latter is too tightly coupled to the main thread to do so. Bug: chromium:1011762 Change-Id: I2a6361931fe3f90a7bef4cc28ee42155fa8d062f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2071865Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#66516}
-
- 04 Feb, 2020 1 commit
-
-
Leszek Swirski authored
This CL templatizes some methods in BigInt on the Isolate type, to allow BigInts to be allocated off-thread from a BigInt literal. A necessary side-effect is exporting the Isolate class in its entirety, to allow it to be used as a specializing type for ' HandleFor' in unittests. Bug: chromium:1011762 Change-Id: I768f9e4d46a4532d6818d9a67c13801bc5952e5d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2036079 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#66105}
-
- 28 Oct, 2019 1 commit
-
-
Seth Brenith authored
This change begins making use of the fact that Torque now knows about the relationship between classes and instance types, to replace a few repetitive lists: - Instance type checkers (single and range), defined in src/objects/instance-type.h - Verification dispatch in src/diagnostics/objects-debug.cc - Printer dispatch in src/diagnostics/objects-printer.cc - Postmortem object type detection in tools/debug_helper/get-object-properties.cc Torque is updated to generate four macro lists for the instance types, representing all of the classes separated in two dimensions: classes that correspond to a single instance type versus those that have a range, and classes that are fully defined in Torque (with fields and methods inside '{}') versus those that are only declared. The latter distinction is useful because fully-defined classes are guaranteed to correspond to real C++ classes, whereas only-declared classes are not. A few other changes were required to make the lists above work: - Renamed IsFiller to IsFreeSpaceOrFiller to better reflect what it does and avoid conflicts with the new macro-generated IsFiller method. This is the part I'm most worried about: I think the new name is an improvement for clarity and consistency, but I could imagine someone typing IsFiller out of habit and introducing a bug. If we'd prefer to keep the name IsFiller, my other idea is to rename FreeSpace to VariableSizeFiller and Filler to FixedSizeFiller. - Made Tuple3 extend from Struct, not Tuple2, because IsTuple2 is expected to check for only TUPLE2_TYPE and not include TUPLE3_TYPE. - Normalized the dispatched behavior for BigIntBase and HeapNumber. - Added a few new object printers. Bug: v8:7793 Change-Id: I5462bb105f8a314baa59bd6ab6ab6215df6f313c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1860314 Commit-Queue: Seth Brenith <seth.brenith@microsoft.com> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Dan Elphick <delphick@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#64597}
-
- 11 Sep, 2019 1 commit
-
-
Victor Gomes authored
From verwaest@ work on the Json's parser, we know that removing the allocation type argument when creating objects using the factory class increases performance. This will also allow us to optimise these functions in a latter CL. Change-Id: If78f62a63fe41453f4def8bea77b6eddc2ab7f36 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1792168Reviewed-by: Toon Verwaest <verwaest@chromium.org> Commit-Queue: Victor Gomes <victorgomes@google.com> Cr-Commit-Position: refs/heads/master@{#63670}
-
- 28 Aug, 2019 1 commit
-
-
Dan Elphick authored
Replace several NewStringFromStaticChars calls with the explicit root string access. Bug: v8:9396 Change-Id: I381e676fa81de24e892afe703b804b7c724a6083 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1774719Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Dan Elphick <delphick@chromium.org> Cr-Commit-Position: refs/heads/master@{#63429}
-
- 22 Aug, 2019 1 commit
-
-
Dominik Inführ authored
This reverts commit 74e68e6a. Reason for revert: We want to keep this API. Original change's description: > [heap] Remove ClearRecordedSlots > > Do not pass it as argument to CreateObjectFillerAt and remove the enum. > > Bug: v8:9454 > Change-Id: Iafa37acbfea73d3cabb1732dbec0944db859fac2 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1762017 > Reviewed-by: Peter Marshall <petermarshall@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> > Cr-Commit-Position: refs/heads/master@{#63282} TBR=ulan@chromium.org,petermarshall@chromium.org,dinfuehr@chromium.org # Not skipping CQ checks because original CL landed > 1 day ago. Bug: v8:9454 Change-Id: I9a0a249294957740f831b28f5fefef132123d0e8 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1762523Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Peter Marshall <petermarshall@chromium.org> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/master@{#63338}
-
- 20 Aug, 2019 1 commit
-
-
Dominik Inführ authored
Do not pass it as argument to CreateObjectFillerAt and remove the enum. Bug: v8:9454 Change-Id: Iafa37acbfea73d3cabb1732dbec0944db859fac2 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1762017Reviewed-by: Peter Marshall <petermarshall@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/master@{#63282}
-
- 19 Aug, 2019 2 commits
-
-
Dominik Inführ authored
This reverts commit 60843b42. Reason for revert: TSAN detected issue between Scavenge workers. One task could invoke RefillFreeList(), while the other task iterates the remembered set of a swept page. Original change's description: > Use list of invalidated objects for old-to-new refs > > Instead of inserting "deletion" entries into the store buffer, keep a > list of invalidated objects to filter out invalid old-to-new slots. > > The first CL https://crrev.com/c/1704109 got reverted because both the > sweeper and the main task were modifying the invalidated slots data > structure concurrently. This CL changes this, such that the sweeper > only modifies the invalidated slots during the final atomic pause when > the main thread is not running. The sweeper does not need to clean this > data structure after the pause, since the "update pointers" phase > already removed all invalidated slots. > > The second CL https://crrev.com/c/1733081 got reverted because the > sweeper might find more free space than the full GC before it. If an > object shrinks after the pause but before the sweep, the invalidated > object might span free memory and potentially new allocated objects. > Therefore shrink invalidated objects when processing swept pages on > the main thread. Also clean recorded slots in the gap. > > TBR=petermarshall@chromium.org > > Bug: v8:9454 > Change-Id: I80d1fa3bbc24e97f7c97a373aaad66f105456f12 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1751795 > Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Cr-Commit-Position: refs/heads/master@{#63239} TBR=ulan@chromium.org,hpayer@chromium.org,dinfuehr@chromium.org Change-Id: I9c6a371ebe36a1873acbe0d6c6a75dd2f5a55f4e No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:9454 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1760817Reviewed-by: Dominik Inführ <dinfuehr@chromium.org> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/master@{#63253}
-
Dominik Inführ authored
Instead of inserting "deletion" entries into the store buffer, keep a list of invalidated objects to filter out invalid old-to-new slots. The first CL https://crrev.com/c/1704109 got reverted because both the sweeper and the main task were modifying the invalidated slots data structure concurrently. This CL changes this, such that the sweeper only modifies the invalidated slots during the final atomic pause when the main thread is not running. The sweeper does not need to clean this data structure after the pause, since the "update pointers" phase already removed all invalidated slots. The second CL https://crrev.com/c/1733081 got reverted because the sweeper might find more free space than the full GC before it. If an object shrinks after the pause but before the sweep, the invalidated object might span free memory and potentially new allocated objects. Therefore shrink invalidated objects when processing swept pages on the main thread. Also clean recorded slots in the gap. TBR=petermarshall@chromium.org Bug: v8:9454 Change-Id: I80d1fa3bbc24e97f7c97a373aaad66f105456f12 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1751795 Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#63239}
-
- 08 Aug, 2019 1 commit
-
-
Dominik Inführ authored
This reverts commit e2f98ec2. Reason for revert: Caused performance regression in ArrayLiteralInitialSpreadSmallHoley. Original change's description: > Use list of invalidated objects for old-to-new refs > > Instead of inserting "deletion" entries into the store buffer, keep > a list of invalidated objects to filter out invalid old-to-new slots. > > The first CL https://crrev.com/c/1704109 got reverted because both the sweeper and the main task were modifying the invalidated slots data structure concurrently. This CL changes this, such that the sweeper only modifies the invalidated slots during the final atomic pause when the main thread is not running. The sweeper does not need to clean this data structure after the pause, since the "update pointers" phase already removed all invalidated slots. > > Bug: v8:9454 > Change-Id: Iffb5bf96de2c89eee1ee1231a3414a0f2a155cbc > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1733081 > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Reviewed-by: Peter Marshall <petermarshall@chromium.org> > Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> > Cr-Commit-Position: refs/heads/master@{#63087} TBR=ulan@chromium.org,petermarshall@chromium.org,dinfuehr@chromium.org # Not skipping CQ checks because original CL landed > 1 day ago. Bug: v8:9454 Change-Id: I328b9f72df45fc9570d4a4d1b5389eac010638c7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1743970 Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Reviewed-by: Dominik Inführ <dinfuehr@chromium.org> Reviewed-by: Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#63131}
-
- 06 Aug, 2019 1 commit
-
-
Dominik Inführ authored
Instead of inserting "deletion" entries into the store buffer, keep a list of invalidated objects to filter out invalid old-to-new slots. The first CL https://crrev.com/c/1704109 got reverted because both the sweeper and the main task were modifying the invalidated slots data structure concurrently. This CL changes this, such that the sweeper only modifies the invalidated slots during the final atomic pause when the main thread is not running. The sweeper does not need to clean this data structure after the pause, since the "update pointers" phase already removed all invalidated slots. Bug: v8:9454 Change-Id: Iffb5bf96de2c89eee1ee1231a3414a0f2a155cbc Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1733081Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Peter Marshall <petermarshall@chromium.org> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/master@{#63087}
-
- 17 Jul, 2019 1 commit
-
-
Nico Hartmann authored
Turbofan can propagate truncation on BigInts in some cases, effectively optimizing away BigIntTooBig exceptions in some (rare) cases. To prevent the fuzzer from detecting this semantic difference from the interpreted code, we crash the program on this exception if the runtime flag FLAG_correctness_fuzzer_suppressions is set. Bug: v8:9407 Change-Id: I3a2604a43b7d883ecdecc3125c1d0be859a09422 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1702608 Commit-Queue: Nico Hartmann <nicohartmann@google.com> Reviewed-by: Sigurd Schneider <sigurds@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#62773}
-
- 16 Jul, 2019 2 commits
-
-
Dominik Inführ authored
This reverts commit dcac02ee. Reason for revert: TSAN discovered issue with cleaning invalidated slots in sweeper threads and inserting new slots in the main thread. Original change's description: > Use list of invalidated objects for old-to-new refs > > Instead of inserting "deletion" entries into the store buffer, keep > a list of invalidated objects to filter out invalid old-to-new slots. > > Bug: v8:9454 > Change-Id: Icd21d8cb2159190457f54d0f8b56742ecc820419 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1695474 > Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Reviewed-by: Peter Marshall <petermarshall@chromium.org> > Cr-Commit-Position: refs/heads/master@{#62744} TBR=ulan@chromium.org,petermarshall@chromium.org,dinfuehr@chromium.org Change-Id: I4278e9100c76657663e0a6a62f5d86bb3a343c0e No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:9454 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1704109Reviewed-by: Dominik Inführ <dinfuehr@chromium.org> Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/master@{#62746}
-
Dominik Inführ authored
Instead of inserting "deletion" entries into the store buffer, keep a list of invalidated objects to filter out invalid old-to-new slots. Bug: v8:9454 Change-Id: Icd21d8cb2159190457f54d0f8b56742ecc820419 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1695474 Commit-Queue: Dominik Inführ <dinfuehr@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#62744}
-
- 12 Jul, 2019 1 commit
-
-
Nico Hartmann authored
This change implements lowering of speculative BigInt addition as well as BigInt heap constants to corresponding int64 versions, if they are used in a context where the result is truncated to the least significant 64 bits (e.g. using asUintN). The JSHeapBroker is extended to provide access to the BigInt's least significant digit during concurrent compilation. The BigInt context (required to introduce correct conversions) is recognized in the RepresentationChanger by either the output type propagated downward or the TypeCheckKind propagated upward. This is necessary, because the TypeCheckKind may only be set by nodes that may potentially deopt (and sit in the effect chain). This is the case for SpeculativeBigIntAdd, but not for BigIntAsUintN. This CL contains a simple fix to prevent int64-lowered BigInts to flow into state values as the deoptimizer cannot handle them yet. A more sophisticated solution to allow the deoptimizer to materialize truncated BigInts will be added in a following CL. Bug: v8:9407 Change-Id: I96a293e9077962f53e5f199857644f004e3ae56e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1684183 Commit-Queue: Nico Hartmann <nicohartmann@google.com> Reviewed-by: Georg Neis <neis@chromium.org> Reviewed-by: Sigurd Schneider <sigurds@chromium.org> Reviewed-by: Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/master@{#62665}
-
- 17 Jun, 2019 1 commit
-
-
Jakob Kummerow authored
which was probably added by mistake. Change-Id: Iba265309710115aae8d9a0b7c0ede7e0160a662a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1662302 Auto-Submit: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#62220}
-
- 07 Jun, 2019 1 commit
-
-
Nico Hartmann authored
Implements the addition of BigInts as a Torque builtin, which performs necessary checks and then calls into C++. The core logic of MutableBigInt::AbsoluteAdd, MutableBigInt::AbsoluteSub and MutableBigInt::AbsoluteCompare is now used by both the runtime and the Torque generated builtin for best performance. Bug: v8:9213 Change-Id: I5f6af4dd226f11e6287bd04272ccae6ee5c26498 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1640211Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Sigurd Schneider <sigurds@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Nico Hartmann <nicohartmann@google.com> Cr-Commit-Position: refs/heads/master@{#62049}
-
- 23 May, 2019 2 commits
-
-
Yang Guo authored
TBR=bmeurer@chromium.org,leszeks@chromium.org Bug: v8:9247 Change-Id: I8d14d0192ea8c705f8274e8e61a162531826edb6 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1624220Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Hannes Payer <hpayer@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#61769}
-
Clemens Hammacher authored
This CL was generated by an automatic clang AST rewriter using this matcher expression: callExpr( callee( cxxMethodDecl( hasName("operator->"), ofClass(isSameOrDerivedFrom("v8::internal::Object")) ) ), argumentCountIs(1) ) The "->" at the expression location was then rewritten to ".". R=jkummerow@chromium.org TBR=mstarzinger@chromium.org,verwaest@chromium.org,yangguo@chromium.org Bug: v8:9183, v8:3770 No-Try: true No-Tree-Checks: true Change-Id: I0a7ecabdeafe51d0cf427f5280af0c7cab96869e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1624209Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Commit-Queue: Yang Guo <yangguo@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#61764}
-
- 22 May, 2019 1 commit
-
-
Yang Guo authored
Bug: v8:9247 Change-Id: I79e0553e8a0d6dac2aa16b94a6c0e05b6ccde4a1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1621934 Commit-Queue: Yang Guo <yangguo@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#61725}
-
- 21 May, 2019 1 commit
-
-
Sigurd Schneider authored
Bug: v8:9264 Change-Id: I936d203d38410a6aefff8a54acf49468abb20e39 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1621933 Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#61707}
-
- 15 May, 2019 1 commit
-
-
Yang Guo authored
R=bmeurer@chromium.org, clemensh@chromium.org, jkummerow@chromium.org, sigurds@chromium.org, ulan@chromium.org, verwaest@chromium.org Bug: v8:9247 Change-Id: I153a6bbfc55989fe7a86c052f95c5cb8ee61e841 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1613244 Commit-Queue: Yang Guo <yangguo@chromium.org> Auto-Submit: Yang Guo <yangguo@chromium.org> Reviewed-by: Sigurd Schneider <sigurds@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#61557}
-