- 09 Sep, 2020 31 commits
-
-
Thibaud Michaud authored
Remove {available_task_ids_} and use the task ID provided by the JobDelegate instead. R=clemensb@chromium.org Bug: chromium:1123471 Change-Id: I62c7efd68fbb0a93ac3d36614b3248b60da65ff8 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2400986 Commit-Queue: Thibaud Michaud <thibaudm@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#69788}
-
Camillo Bruni authored
Using the Template::Set method which const char name is more ergonomic and it creates directly an internalized name instead of the normal string that most users pass in. Bug: v8:10884 Change-Id: I00c6d49fee9de16b8ebbfe75be4b383831f0d4dd Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2400980Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#69787}
-
Andreas Haas authored
The emitted safepoint entries had the wrong size, because it did not contain StandardFrameConstants::kFixedFrameSizeAboveFp. The code still worked because the indices of encoded in the entries where too low by StandardFrameConstants::kFixedFrameSizeAboveFp and thereby corrected the invalid size. It worked as follows: First the stack_slots_size gets calculated from the safepoint entry. Then the position of a stack slot was "frame_header_base + stack_slots_size - index * pointer_size", where "index" is what is encoded in the safepoint map. Because of the incorrect encoding, both stack_slot_size and index were too low by StandardFrameConstants::kFixedFrameSizeAboveFp. Therefore the errors in both values eliminated each other, making the end result correct. With --print-code, the safepoint entry size was also read, and it crashed because the encoded value was too low. The reland fixes the indices. Original message: With this CL we emit safepoint maps for externref values on the Liftoff value stack. With that there is support for externref parameters and locals in Liftoff, as well as for intermediate values of type externref. R=thibaudm@chromium.org Bug: v8:7581 Change-Id: I88444e57745d7b9fe8f1630e904d49736fa9d720 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2398531 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by: Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/master@{#69786}
-
Leszek Swirski authored
This is a reland of 1c7618ab The revert was due to an missing dependency in the incremental build, fixed in https://crrev.com/c/2400987. Original change's description: > [serializer] Remove new space > > The new space is unused in the snapshot, as we convert all new objects > to old space objects when serializing. This means we can get rid of > the snapshot new space entirely, and as a result get rid of the write > barrier checks. > > This also rejiggles the order of the general spaces enum so that the new > spaces are at the end, and can be truncated off for the SnapshotSpace > enum. > > As a drive by, fix a bug in an unrelated test-api test which this patch > exposed. > > Change-Id: If67ff8be5bf03104a3ffae7df707c22460bba3a1 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2390762 > Commit-Queue: Leszek Swirski <leszeks@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Dominik Inführ <dinfuehr@chromium.org> > Cr-Commit-Position: refs/heads/master@{#69761} Tbr: jgruber@chromium.org,dinfuehr@chromium.org Change-Id: I9fbc61a124fae09d12d6281baaca60eb6c39a6e5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2401420Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#69785}
-
Manos Koukoutos authored
Additional changes: - Add tests. - Rename some subtyping functions. Bug: v8:7748 Change-Id: I3635e93ea6bbab1942f927a8e414afc8efd31f69 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2389983 Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#69784}
-
Camillo Bruni authored
For testing log file parsing from JavaScript we need to be able to read open log files directly. This makes the default log file mode consistent with the temporary one. Bug: v8:1064 Change-Id: Ic77ba6864efe633e54792fc683edc2fe07af4cd5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2400993Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#69783}
-
Camillo Bruni authored
Bug: chromium:1121111 Change-Id: I34d60957fe972066928762be961b9a963bae7975 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2390148Reviewed-by: Toon Verwaest <verwaest@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#69782}
-
Maya Lekova authored
This reverts commit c99147c6. Reason for revert: Breaks UBSan - https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20UBSan/12773? Original change's description: > cppgc, heap: Don't eagerly allocate worklist segments > > Bug: chromium:1056170 > Change-Id: I75a6b5f52bfe8dd71abc086e5d1e060759ad7fc0 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2391254 > Commit-Queue: Omer Katz <omerkatz@chromium.org> > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > Cr-Commit-Position: refs/heads/master@{#69778} TBR=ulan@chromium.org,mlippautz@chromium.org,omerkatz@chromium.org Change-Id: Icf1b1a333b5f1b683c816c65662207914996e325 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:1056170 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2401422Reviewed-by: Maya Lekova <mslekova@chromium.org> Commit-Queue: Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/master@{#69781}
-
Michael Lippautz authored
Adds a field that can be propagated by embedders. The field holds the detachedness state of DOM objects but can be used in general by embedder to indicate which objects are for sure part of interesting application logic and which objects are not. This field is then processed properly by the DevTools front end. Bug: chromium:1110816 Change-Id: I53a172208cd69ce2ba2ed9524d36b6512aae7d30 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2332174Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#69780}
-
Leszek Swirski authored
This is a reland of 81577a79 The revert was due to an missing dependency in the incremental build, fixed in https://crrev.com/c/2400987. Original change's description: > [serializer] Change deferring to use forward refs > > Now that we have forward references, we can replace the body deferring > mechanism with forward references to the entire pointer. > > This ensures that objects are always deserialized with their contents > (aside from themselves maybe holding forward refs), and as a result we > can simplify the CanBeDeferred conditions which encode the constraint > that some objects either need immediately have contents, or cannot be > deferred because their fields are changed temporarily (e.g. backing > store refs). > > This also means that objects with length fields (e.g. arrays) will > always have those length fields deserialized when the object is > deserialized, which was not the case when the body could be deferred. > This helps us in the plan to make GC possible during deserialization. > > Bug: v8:10815 > Change-Id: Ib0e5399b9de6027765691e8cb47410a2ccc15485 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2390643 > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Commit-Queue: Leszek Swirski <leszeks@chromium.org> > Cr-Commit-Position: refs/heads/master@{#69760} Tbr: jgruber@chromium.org Bug: v8:10815 Change-Id: I235076a97c5dfa58513e880cc477ac72a28b29e9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2400992Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#69779}
-
Omer Katz authored
Bug: chromium:1056170 Change-Id: I75a6b5f52bfe8dd71abc086e5d1e060759ad7fc0 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2391254 Commit-Queue: Omer Katz <omerkatz@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#69778}
-
Jakob Gruber authored
The %BytecodeBudgetInterruptFromCode call resets the interrupt budget; prior to this CL we'd overwrite the value immediately after returning from runtime, resulting in repeated runtime calls. Drive-by: Add the interrupt budget to FeedbackCell's debug print. Bug: v8:8888 Change-Id: I2c98b839b8630a9e14df3d8a724e03c5afbec687 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2400991 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Auto-Submit: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Mythri Alle <mythria@chromium.org> Cr-Commit-Position: refs/heads/master@{#69777}
-
Leszek Swirski authored
tools/debug_helper:run_mkgrokdump used to only depend on mkgrokdump. However, the snapshot can change without affecting the mkgrokdump binary itself. So, if the mkgrokdump binary doesn't change, then run_mkgrokdump doesn't run, even if the snapshot changed. This could cause mysterious test failures in incremental builds, in particular for tests testing the contents of heap-constants-gen.cc. Now, we make run_mkgrokdump depend on run_mksnapshot_default directly, so that snapshot updates force an mkgrokdump run. Change-Id: Ia3871e1b4fa15ec2dbc0bc5463afdb427cb39c61 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2400987 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Reviewed-by: Michael Achenbach <machenbach@chromium.org> Auto-Submit: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#69776}
-
Georg Neis authored
1) Strengthen the ObjectData::As* cast methods to check that the kind is kSerializedHeapObject, because otherwise the data object is not a subclass instance and the cast is invalid. 2) Fix errors revealed by (1) and pave way for moving away from serialization. These changes are mechanical except for a needed refactoring of ContextRef::previous. Details regarding (2): Change (1) revealed a large number of places where we incorrectly casted object data. This went unnoticed so far because in the end we accessed the object through the corresponding ObjectRef interface which did the right thing depending on the data kind. These bugs were introduced when kUnserializedReadOnlyHeapObject was added, but they also affect the new kNeverSerializedHeapObject and would become show stoppers as we move more objects to the latter kind. The CL fixes all the issues that I found except one: There's still one place left where we assume a particular subclass instance for now (marked with a TODO). This is not a bug at the moment but will cause CHECK failures once we move the corresponding object type to never-serialized. A rewrite of map serialization might be needed to resolve that. Note: With the changes in (2) we lose some type safety in the implementation of the *Data classes. With some extra work that could be avoided. However, I think it's not worth it because (i) these classes are expected to be removed (and in the meantime to not change much), and (ii) their wrapper *Ref classes still ensure type safety. Bug: v8:7790 Change-Id: I9a5d03fa2f61e03c9c0ab4ac7f9869603d5be1d9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2398537Reviewed-by: Santiago Aboy Solanes <solanes@chromium.org> Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Auto-Submit: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#69775}
-
Omer Katz authored
Bug: chromium:1056170 Change-Id: Ibf561b663c74f9448139fd99945e5f4aea26419b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2390776 Commit-Queue: Omer Katz <omerkatz@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#69774}
-
Sathya Gunasekaran authored
Bug: v8:10582 Change-Id: I89597bb31d1a0aa50672e8f579f5011da6be29e3 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2400981Reviewed-by: Mythri Alle <mythria@chromium.org> Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#69773}
-
Mythri A authored
Bug: v8:10582 Change-Id: I4f86af0a2a190a52885fea5cc42c9e9983372119 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2398530Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> Commit-Queue: Mythri Alle <mythria@chromium.org> Cr-Commit-Position: refs/heads/master@{#69772}
-
Gus Caplan authored
See crrev.com/c/2383030 PerformCheckCast<Data>() itself should not invoke Data::Cast(), since there is no such method and every publicly available value can be casted to it anyway. This is an issue in e.g. GetDataFromSnapshotOnce<Data>(). Change-Id: I4acbff86ffd4537b744dafc588733428e792b4bd Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2399052Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Gus Caplan <snek@chromium.org> Cr-Commit-Position: refs/heads/master@{#69771}
-
Sathya Gunasekaran authored
This reverts commit 23531d82. Reason for revert: https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20GC%20Stress%20-%20custom%20snapshot/33007? Original change's description: > Reland "[test][d8] Add d8.log.getAndStop helper" > > This is a reland of 95aa697b > > Original change's description: > > [test][d8] Add d8.log.getAndStop helper > > > > The new helper function allows us to write tests for log parsing > > without the need to first generating a log file. This makes it easier > > to spot errors when the log format changes. > > > > - Add d8 global variable > > - Add file_name accessor to Logger and Log classes > > - Change OS::LogFileOpenMode to w+ / wb+ > > - Use separate Log::WriteLogHeader method > > - Remove unused logger_ instance variable from Log > > > > Bug: v8:10644 > > Change-Id: Ifc7e35aa4e91b3f01f0847843263946e085944c3 > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2387563 > > Commit-Queue: Camillo Bruni <cbruni@chromium.org> > > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > > Reviewed-by: Toon Verwaest <verwaest@chromium.org> > > Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> > > Cr-Commit-Position: refs/heads/master@{#69715} > > Bug: v8:10644 > > TBR=verwaest@chromium.org > > Change-Id: I54741344834d88a376b74e2e3a2047e880a94624 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2396081 > Commit-Queue: Camillo Bruni <cbruni@chromium.org> > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> > Cr-Commit-Position: refs/heads/master@{#69769} TBR=mlippautz@chromium.org,cbruni@chromium.org,gsathya@chromium.org,verwaest@chromium.org Change-Id: I493315e0d6498f0fa9bed3409725bb52d554b53a No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:10644 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2400982Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#69770}
-
Camillo Bruni authored
This is a reland of 95aa697b Original change's description: > [test][d8] Add d8.log.getAndStop helper > > The new helper function allows us to write tests for log parsing > without the need to first generating a log file. This makes it easier > to spot errors when the log format changes. > > - Add d8 global variable > - Add file_name accessor to Logger and Log classes > - Change OS::LogFileOpenMode to w+ / wb+ > - Use separate Log::WriteLogHeader method > - Remove unused logger_ instance variable from Log > > Bug: v8:10644 > Change-Id: Ifc7e35aa4e91b3f01f0847843263946e085944c3 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2387563 > Commit-Queue: Camillo Bruni <cbruni@chromium.org> > Reviewed-by: Michael Lippautz <mlippautz@chromium.org> > Reviewed-by: Toon Verwaest <verwaest@chromium.org> > Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> > Cr-Commit-Position: refs/heads/master@{#69715} Bug: v8:10644 TBR=verwaest@chromium.org Change-Id: I54741344834d88a376b74e2e3a2047e880a94624 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2396081 Commit-Queue: Camillo Bruni <cbruni@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#69769}
-
Victor Gomes authored
Change-Id: I0840a8fb34e8ef068580ad74e40e87c0bb56c1af Bug: v8:10201 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2400278 Commit-Queue: Victor Gomes <victorgomes@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Auto-Submit: Victor Gomes <victorgomes@chromium.org> Cr-Commit-Position: refs/heads/master@{#69768}
-
Omer Katz authored
This CL migrates cppgc to use Ulan's new worklist implementation. Since there is no central segments array anymore, we cannot rely on getting the same view (now renamed to Local) given the same task id. To avoid creating many short lived segments (e.g. for write barriers) marking state now holds local views for all worklists and provides access to them. Bug: chromium:1056170 Change-Id: Id19fe1196b79ed251810e91074046998dc2a9177 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2390771 Commit-Queue: Omer Katz <omerkatz@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#69767}
-
Sathya Gunasekaran authored
Flaky: https://logs.chromium.org/logs/v8/buildbucket/cr-buildbucket.appspot.com/8869650907931155856/+/steps/OptimizeForSize__flakes_/0/logs/pause-on-oom-wide/0 Bug: v8:10876 Change-Id: I3750dd049300cb9eed10a7d0952fac77066bbcb3 TBR: solanes@chromium.org Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2400341 Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Reviewed-by: Santiago Aboy Solanes <solanes@chromium.org> Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#69766}
-
Zhao Jiazhong authored
Port 3d40ec8d https://crrev.com/c/2349297 Change-Id: If362e7592ee81e1e428c4757c3ca03768ad366b4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2398767Reviewed-by: Igor Sheludko <ishell@chromium.org> Commit-Queue: Zhao Jiazhong <zhaojiazhong-hf@loongson.cn> Cr-Commit-Position: refs/heads/master@{#69765}
-
Martin Bidlingmaier authored
Follow up to 3f4f4a0d: "[regexp] Handle zero-length matches in experimental engine". We want to assert an equivalence, not an implication in the boring direction. Bug: v8:10765 Change-Id: Ia7b4851feb1f5f621d687779d0cae0e28433f00e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2398536Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Martin Bidlingmaier <mbid@google.com> Cr-Commit-Position: refs/heads/master@{#69764}
-
Sathya Gunasekaran authored
This reverts commit 81577a79. Reason for revert: https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20-%20shared/10544 Original change's description: > [serializer] Change deferring to use forward refs > > Now that we have forward references, we can replace the body deferring > mechanism with forward references to the entire pointer. > > This ensures that objects are always deserialized with their contents > (aside from themselves maybe holding forward refs), and as a result we > can simplify the CanBeDeferred conditions which encode the constraint > that some objects either need immediately have contents, or cannot be > deferred because their fields are changed temporarily (e.g. backing > store refs). > > This also means that objects with length fields (e.g. arrays) will > always have those length fields deserialized when the object is > deserialized, which was not the case when the body could be deferred. > This helps us in the plan to make GC possible during deserialization. > > Bug: v8:10815 > Change-Id: Ib0e5399b9de6027765691e8cb47410a2ccc15485 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2390643 > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Commit-Queue: Leszek Swirski <leszeks@chromium.org> > Cr-Commit-Position: refs/heads/master@{#69760} TBR=jgruber@chromium.org,leszeks@chromium.org Change-Id: I7a93a59217a2b38e2157c0f7ffc7ac648590a8d6 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:10815 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2398535Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#69763}
-
Sathya Gunasekaran authored
This reverts commit 1c7618ab. Reason for revert: https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20-%20shared/10544 Original change's description: > [serializer] Remove new space > > The new space is unused in the snapshot, as we convert all new objects > to old space objects when serializing. This means we can get rid of > the snapshot new space entirely, and as a result get rid of the write > barrier checks. > > This also rejiggles the order of the general spaces enum so that the new > spaces are at the end, and can be truncated off for the SnapshotSpace > enum. > > As a drive by, fix a bug in an unrelated test-api test which this patch > exposed. > > Change-Id: If67ff8be5bf03104a3ffae7df707c22460bba3a1 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2390762 > Commit-Queue: Leszek Swirski <leszeks@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Dominik Inführ <dinfuehr@chromium.org> > Cr-Commit-Position: refs/heads/master@{#69761} TBR=jgruber@chromium.org,leszeks@chromium.org,dinfuehr@chromium.org Change-Id: Iaf2362d8cd3a17d8410030aca0dd2250c5a0a7af No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2398533Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Cr-Commit-Position: refs/heads/master@{#69762}
-
Leszek Swirski authored
The new space is unused in the snapshot, as we convert all new objects to old space objects when serializing. This means we can get rid of the snapshot new space entirely, and as a result get rid of the write barrier checks. This also rejiggles the order of the general spaces enum so that the new spaces are at the end, and can be truncated off for the SnapshotSpace enum. As a drive by, fix a bug in an unrelated test-api test which this patch exposed. Change-Id: If67ff8be5bf03104a3ffae7df707c22460bba3a1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2390762 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Dominik Inführ <dinfuehr@chromium.org> Cr-Commit-Position: refs/heads/master@{#69761}
-
Leszek Swirski authored
Now that we have forward references, we can replace the body deferring mechanism with forward references to the entire pointer. This ensures that objects are always deserialized with their contents (aside from themselves maybe holding forward refs), and as a result we can simplify the CanBeDeferred conditions which encode the constraint that some objects either need immediately have contents, or cannot be deferred because their fields are changed temporarily (e.g. backing store refs). This also means that objects with length fields (e.g. arrays) will always have those length fields deserialized when the object is deserialized, which was not the case when the body could be deferred. This helps us in the plan to make GC possible during deserialization. Bug: v8:10815 Change-Id: Ib0e5399b9de6027765691e8cb47410a2ccc15485 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2390643Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#69760}
-
Martin Bidlingmaier authored
Previously to this commit only quantifiers of the form /<x>*/, i.e. arbitrarily often greedy repetition, were implemented. Now a much larger class is supported, e.g. + and ? and their non-greedy variants. Because it came up repeatedly during the implementation, the commit also adds the Label and DeferredLabel classes to patch JMP and FORK target addresses more easily. Still not supported are the following quantifiers: - Possessive quantifiers, where I'm not entirely sure whether they could be implemented in principle. Re2 doesn't support them. - Quantifiers with large but finite numbers for min and max numbers of repetitions, as in e.g. /<x>{9000, 90000}/. These are currently limited to some small value. This is because the body of such repetitions is unrolled explicitly, so the size of the bytecode is linear in the number of repetitions. Cq-Include-Trybots: luci.v8.try:v8_linux64_fyi_rel_ng Bug: v8:10765 Change-Id: Id04d893252588abb0f80c3cb33cfc707f6601ea0 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2387575 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#69759}
-
v8-ci-autoroll-builder authored
Rolling v8/build: https://chromium.googlesource.com/chromium/src/build/+log/2dc8141..9c1d422 Rolling v8/third_party/catapult: https://chromium.googlesource.com/catapult/+log/69e45dc..dc9083e Rolling v8/third_party/depot_tools: https://chromium.googlesource.com/chromium/tools/depot_tools/+log/9218ba2..fb6d901 Rolling v8/third_party/zlib: https://chromium.googlesource.com/chromium/src/third_party/zlib/+log/aec16ef..898c6c0 Rolling v8/tools/clang: https://chromium.googlesource.com/chromium/src/tools/clang/+log/03bacc3..97d6ab3 TBR=machenbach@chromium.org,tmrts@chromium.org,v8-waterfall-sheriff@grotations.appspotmail.com Change-Id: I3ce0abf36f3641e948f57e37a3f6f7f9cb45836b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2398861Reviewed-by: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com> Commit-Queue: v8-ci-autoroll-builder <v8-ci-autoroll-builder@chops-service-accounts.iam.gserviceaccount.com> Cr-Commit-Position: refs/heads/master@{#69758}
-
- 08 Sep, 2020 9 commits
-
-
Ng Zhi An authored
Add in f64x2 opcodes to simd scalar lowering, this allows us to enable most of the f64x2 test cases with quite little changes - the significant change is to make sure the comparisons return a Int64 node. Bug: v8:10507 Change-Id: I8c8920d37c0cd0841dafcdb0310b6340b3c16189 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2399051Reviewed-by: Bill Budge <bbudge@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#69757}
-
Ng Zhi An authored
SIMD lowering can result in int64 nodes (from i64x2), and int64 nodes won't create SIMD nodes. So run SIMD lowering first, then int64 lowering. Bug: v8:10507 Change-Id: Id720d98eda0bcd9ab441df687f974fd84bf9118c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2393497Reviewed-by: Bill Budge <bbudge@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#69756}
-
Ng Zhi An authored
v128.const was incorrectly always lowered to 4 word32 nodes, regardless of what the lowered type was set to be. In the test case, v128.const was consumed by i8x16.eq, so the lowered typed of v128.const node was set to SimdType::kInt8x16, but it was still lowered as a SimdType::kInt32x4, and then later crashes when lowering the comparisons. Bug: v8:10507 Change-Id: I24f16c94968cd8b6c7cd5d400d1a0046da3d47da Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2391919 Commit-Queue: Zhi An Ng <zhin@chromium.org> Reviewed-by: Bill Budge <bbudge@chromium.org> Cr-Commit-Position: refs/heads/master@{#69755}
-
Andreas Haas authored
This reverts commit 10348e8e. Reason for revert: https://crbug.com/1125951 Original change's description: > [wasm][liftoff] Emit safepoints for externref values on the stack > > With this CL we emit safepoint maps for externref values on the Liftoff > value stack. With that there is support for externref parameters and > locals in Liftoff, as well as for intermediate values of type > externref. > > R=thibaudm@chromium.org > > Bug: v8:7581 > Change-Id: I2df0a8d00b2da33fe06ff474b039cca4c7be726d > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2387571 > Commit-Queue: Andreas Haas <ahaas@chromium.org> > Reviewed-by: Thibaud Michaud <thibaudm@chromium.org> > Cr-Commit-Position: refs/heads/master@{#69725} TBR=ahaas@chromium.org,thibaudm@chromium.org Change-Id: I4cdf7fedfc91cd99302d5cb05e242dbb032c5803 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:7581 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2398529Reviewed-by: Andreas Haas <ahaas@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#69754}
-
Peter Kvitek authored
The original Profiler.getRuntimeCallStats implementation retrieved a bunch of V8 Counters instead of runtime call counters. This functionality is now available through the new APIs: enableCounters, disableCounters and getCounters. The getRuntimeCallStats API now retrieves real V8 Runtime Call Stats. Change-Id: I702f60a6c43773f5c41b6861be3f9435975c370f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2380853 Commit-Queue: Peter Kvitek <kvitekp@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#69753}
-
Seth Brenith authored
When counting which backedges conflict with a loop-top phi value, we should include values introduced at the start of the loop. I don't expect this change to make performance differences on its own, but it is a step toward changing the heuristic so that we're less likely to introduce unnecessary load/store pairs across the backedge. Bug: v8:10606 Change-Id: I299e388b0b964573119ba0b775d50f398c467c46 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2385715Reviewed-by: Thibaud Michaud <thibaudm@chromium.org> Commit-Queue: Seth Brenith <seth.brenith@microsoft.com> Cr-Commit-Position: refs/heads/master@{#69752}
-
Ng Zhi An authored
We need to also check SIMD support for v128.const and i8x16.shuffle, these are separate functions, not part of the SimdOp or SimdLaneOp. This was discovered while running some JS tests when trying to stage SIMD. Bug: v8:10835 Change-Id: I51c6e65cc9397058e0be83cf4116ab4bfe4c4ec9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2391332Reviewed-by: Clemens Backes <clemensb@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#69751}
-
Milad Farazmand authored
Port 3d40ec8d R=marja@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com BUG= LOG=N Change-Id: I978aa3a15e9c71e1907f49a5b22b6a01a96c5f1e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2399038Reviewed-by: Junliang Yan <jyan@ca.ibm.com> Commit-Queue: Milad Farazmand <miladfar@ca.ibm.com> Cr-Commit-Position: refs/heads/master@{#69750}
-
Leszek Swirski authored
Change FeedbackVector into a Torque-generated class, simplifying its C++ implementation. As a drive-by, also get rid of the lower-cased, integer-indexed slot accessors, and replace the calls that needed this integer index with FeedbackSlot (potentially with a new WithOffset adjustment for extra data slots). Change-Id: Ie4f7e99b462ef95419edab46b4ac7ceecae9a05f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2398638 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Dominik Inführ <dinfuehr@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Auto-Submit: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#69749}
-