- 06 May, 2022 1 commit
-
-
Michael Lippautz authored
- Repurpose flag `treat_global_objects_as_roots` when taking a heap snapshot for toggling whether internals should be exposed (to `hide_internals`). - Use the toggle in creating heap snapshots for exposing class names as object names for C++ objects that have not explicitly been given a name. Change-Id: I77d71babfdfe53269964fe81ed985037a431c28b Bug: chromium:1321620 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3623740Reviewed-by: Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Omer Katz <omerkatz@chromium.org> Cr-Commit-Position: refs/heads/main@{#80391}
-
- 22 Apr, 2022 1 commit
-
-
Seth Brenith authored
One of the biggest categories in heap snapshots is named “(system)”, which gives developers no indication of why all that memory is used or what they might do to reduce it. In this change, I propose that we create a new category for Maps, DescriptorArrays, and related objects, and call this new category “(object shape)” in the devtools. I think that this category name would be more meaningful, while still grouping those objects together so that they mostly stay out of the way. Bug: v8:12769 Doc: https://docs.google.com/document/d/1a-6V_2LIJuRcsppwh6E18g8OSnC9j6gN4ao2gq--BiU Change-Id: I282a7b87c34ca6ed371ff32f3c7332d794ae42ca Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3587974Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Camillo Bruni <cbruni@chromium.org> Commit-Queue: Seth Brenith <seth.brenith@microsoft.com> Cr-Commit-Position: refs/heads/main@{#80123}
-
- 06 Apr, 2022 1 commit
-
-
Seth Brenith authored
Currently, the category named “(compiled code)” contains Code, SharedFunctionInfo, and Script objects. However, there are various other object types that are allocated per script function, such as BytecodeArray and FeedbackVector. There are also plain FixedArrays which are used for function-specific data such as polymorphic feedback and code deoptimization data. I propose we move all of this to the “(compiled code)” category, because this memory usage is related to the number of functions in the script, the size of those functions, and/or the number of times those functions have been called. Bug: v8:12769 Change-Id: Ib5e0265a9ef88063596c17419f5b65f683156c52 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3569876Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Seth Brenith <seth.brenith@microsoft.com> Cr-Commit-Position: refs/heads/main@{#79827}
-
- 04 Mar, 2022 1 commit
-
-
Seth Brenith authored
The heap snapshot generator is meant to apply descriptive names to Code objects, but was using CodeDataContainer instead. Attempting to set the name of the CodeDataContainer instances did nothing because they already had the name "system / CodeDataContainer". Bug: v8:11880 Change-Id: If7bd115bde36386d283d319c1ee28df565a39569 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3498849Reviewed-by: Camillo Bruni <cbruni@chromium.org> Commit-Queue: Seth Brenith <seth.brenith@microsoft.com> Cr-Commit-Position: refs/heads/main@{#79368}
-
- 02 Mar, 2022 1 commit
-
-
Camillo Bruni authored
GetConstructorName might allocate and thus triggers gcmole warnings. This is a temporary workaround until the called function is cleanly fixed. Bug: v8:12674 Change-Id: I43bd190d887abcd79116e8c328ceedfb0c9fad79 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3497769 Auto-Submit: Camillo Bruni <cbruni@chromium.org> Reviewed-by: Shu-yu Guo <syg@chromium.org> Commit-Queue: Shu-yu Guo <syg@chromium.org> Cr-Commit-Position: refs/heads/main@{#79333}
-
- 05 Feb, 2022 1 commit
-
-
Shu-yu Guo authored
Currently the Isolate is gotten off of the object that the operation is being performed on. Shared objects return the shared Isolate, which is incorrect as it shouldn't be used to run JS, nor does it have HandleScopes open. Plumb the executing Isolate through. Bug: v8:12547 Change-Id: I428d21f5e6a9c51c8c7c4577395bf27c8706bdb4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3441033Reviewed-by: Adam Klein <adamk@chromium.org> Commit-Queue: Shu-yu Guo <syg@chromium.org> Cr-Commit-Position: refs/heads/main@{#78963}
-
- 04 Feb, 2022 1 commit
-
-
Seth Brenith authored
The web app owner who notified me about bugs v8:12112 and v8:12126 asked me a reasonable question: "how am I ever supposed to trust the retaining paths in the devtools, if the heap snapshot is generated by a different component than the actual marking code?". This change is my attempt to answer that question. If verification is enabled, the heap snapshot generator will visit each heap object with a realistic marking visitor to find all references from that object. It will then check that those references match the HeapGraphEdges in the snapshot. I also considered the idea that we could collect retaining information during the last GC cycle before taking the heap snapshot, or during an extra GC cycle immediately after. However, running the full GC provides the embedder with the opportunity to run arbitrary code (including JS) both before and after PerformGarbageCollection, so there is no clear guarantee that the heap state during the snapshot actually matches the heap state during marking. Bug: v8:12112, v8:12126 Change-Id: Id29e75ecf9eee19e35daedbdb4a3e1df64785380 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3299590Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Camillo Bruni <cbruni@chromium.org> Commit-Queue: Seth Brenith <seth.brenith@microsoft.com> Cr-Commit-Position: refs/heads/main@{#78952}
-
- 17 Jan, 2022 1 commit
-
-
Victor Gomes authored
This is a reland of f605d778 Adds a GC safe (using handles) and unsafe versions of the iterator. V8HeapExplorer needs an unsafe one, since it does not allow the creation of handles. Original change's description: > [runtime] Adds LocalNameIterator > > ScopeInfo will contain either inlined (array) local names or > a hash table (names => index) containing the local names. > > We abstract iteration with LocalNameIterator and remove > ContextLocalName since accessing a local name by index in > the hash table would be expensive. > > This CL only implements the iterator for the array. > > Bug: v8:12315 > Change-Id: I2c62802652fca1cf47815ce8768a3f7487f2c39f > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3386603 > Reviewed-by: Toon Verwaest <verwaest@chromium.org> > Commit-Queue: Victor Gomes <victorgomes@chromium.org> > Cr-Commit-Position: refs/heads/main@{#78623} Bug: v8:12315 Change-Id: I6288a08b9c342cd3a9cabcb621c40bb44c08c9c4 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3394706Reviewed-by: Camillo Bruni <cbruni@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Commit-Queue: Victor Gomes <victorgomes@chromium.org> Cr-Commit-Position: refs/heads/main@{#78653}
-
- 14 Jan, 2022 2 commits
-
-
Leszek Swirski authored
This reverts commit f605d778. Reason for revert: Segfaults: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux%20-%20gc%20stress/36908/overview Original change's description: > [runtime] Adds LocalNameIterator > > ScopeInfo will contain either inlined (array) local names or > a hash table (names => index) containing the local names. > > We abstract iteration with LocalNameIterator and remove > ContextLocalName since accessing a local name by index in > the hash table would be expensive. > > This CL only implements the iterator for the array. > > Bug: v8:12315 > Change-Id: I2c62802652fca1cf47815ce8768a3f7487f2c39f > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3386603 > Reviewed-by: Toon Verwaest <verwaest@chromium.org> > Commit-Queue: Victor Gomes <victorgomes@chromium.org> > Cr-Commit-Position: refs/heads/main@{#78623} Bug: v8:12315 Change-Id: Ibabe231f4357a3dd02d24b89847d579b83867a1a No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3386385 Auto-Submit: Leszek Swirski <leszeks@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Owners-Override: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/main@{#78625}
-
Victor Gomes authored
ScopeInfo will contain either inlined (array) local names or a hash table (names => index) containing the local names. We abstract iteration with LocalNameIterator and remove ContextLocalName since accessing a local name by index in the hash table would be expensive. This CL only implements the iterator for the array. Bug: v8:12315 Change-Id: I2c62802652fca1cf47815ce8768a3f7487f2c39f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3386603Reviewed-by: Toon Verwaest <verwaest@chromium.org> Commit-Queue: Victor Gomes <victorgomes@chromium.org> Cr-Commit-Position: refs/heads/main@{#78623}
-
- 16 Dec, 2021 1 commit
-
-
Igor Sheludko authored
This CL * removes Builtins::codet() and Builtins::codet_handle() returning builtins as CodeT objects in favor of code() and code_handle(), * removes BUILTIN_CODET macro in favor of BUILTIN_CODE, * removes CodeDataContainer table. Bug: v8:11880 Change-Id: Ic868549030744b0ff3ea5d5edbfcacf77c6de96d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3344650Reviewed-by: Toon Verwaest <verwaest@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/main@{#78399}
-
- 06 Dec, 2021 1 commit
-
-
Igor Sheludko authored
In particular * use variadic templates in BodyDescriptorApply(), * ensure all the relevant classes have BodyDescriptor definition, * ensure "objects-body-descriptors[-inl].h" headers are included only where necessary. Bug: v8:12425 Change-Id: I7a95ed94bf62952e3d22d419d4a65ad2fe959d57 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3312273Reviewed-by: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/main@{#78242}
-
- 30 Nov, 2021 2 commits
-
-
Seth Brenith authored
Currently, JSFinalizationRegistry has a BodyDescriptor that iterates next_dirty as a custom weak field, and it has a WeakListVisitor that cleans up any items from the list that should be removed. However, none of that code is used, because JSFinalizationRegistry objects are created with visitor ID kVisitJSObjectFast. This change gives them a custom visitor ID so that next_dirty can be treated as weak. Bug: v8:12430 Change-Id: I31c1935257ad508b13a3e684662d2ca406d8ed19 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3307096 Commit-Queue: Seth Brenith <seth.brenith@microsoft.com> Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#78167}
-
Igor Sheludko authored
... by using cage-friendly versions of HeapObject::IsBlah(), HeapObject::map(), HeapObject::map_word() and HeapObject::Size() on hot paths. Bug: v8:11880 Change-Id: I70b72e46cc867b6b2ddbc48cd5e6a74ae4208397 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3308800Reviewed-by: Camillo Bruni <cbruni@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/main@{#78161}
-
- 29 Nov, 2021 1 commit
-
-
Seth Brenith authored
JSWeakRef and WeakCell both have weak pointers, which should be marked as such in heap profiler snapshots. Bug: v8:12112 Change-Id: Ie7aaa2cd3e44552427679e650e462d64704725d1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3299592Reviewed-by: Yang Guo <yangguo@chromium.org> Commit-Queue: Seth Brenith <seth.brenith@microsoft.com> Cr-Commit-Position: refs/heads/main@{#78133}
-
- 15 Nov, 2021 1 commit
-
-
Ng Zhi An authored
Bug: v8:12244,v8:12245 Change-Id: I3029cfb8e9afdcb5e53aa406359aa7246c23ea40 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3274021Reviewed-by: Maya Lekova <mslekova@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Dominik Inführ <dinfuehr@chromium.org> Reviewed-by: Camillo Bruni <cbruni@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/main@{#77906}
-
- 09 Nov, 2021 1 commit
-
-
Seth Brenith authored
The GC already treats some embedded object pointers in Code as weak, based on Code::IsWeakObject. If one of those embedded objects ends up unmarked during a full mark-collect GC, then the Code is marked for lazy deoptimization and the embedded objects are cleared. However, many of those same objects are often held strongly by the deoptimization literal array for the Code, which causes memory leaks. This change updates the deoptimization literals array to store those objects weakly. Any Code currently executing on the stack might need those deoptimization literals in order to deoptimize, so the deoptimization literal array is marked strongly in that case. Design document: https://docs.google.com/document/d/1gFRBYCeqz9Mysx8CVYQkldBbk3AZLo8UX0DMLZV_7qw/edit?usp=sharing Bug: v8:4578 Change-Id: I02e86683c59371e9f88ecf523750c9c6afebdb39 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3160299Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Seth Brenith <seth.brenith@microsoft.com> Cr-Commit-Position: refs/heads/main@{#77805}
-
- 08 Nov, 2021 1 commit
-
-
Ng Zhi An authored
Bug: v8:12244,v8:12245 Change-Id: If92311b47a6019cb9f7b96a7dcd313a658d426ec Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3265067Reviewed-by: Camillo Bruni <cbruni@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/main@{#77770}
-
- 03 Nov, 2021 1 commit
-
-
Igor Sheludko authored
In order to avoid some of the unnecessary Code <-> CodeDataContainer conversions in builtins we need to be able to embed CodeDataContainer references to builtins. This CL makes it possible by introducing a table of builtins' CDCs. Eventually, usages of the builtins table containing Code objects will be replaced by usages of this table. Bug: v8:11880 Change-Id: Iffffd1507d5c7b38af34c42071a4577a8d18e8eb Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3257710Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Camillo Bruni <cbruni@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Auto-Submit: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/main@{#77678}
-
- 29 Oct, 2021 1 commit
-
-
Kim-Anh Tran authored
This is a reland of 0e006a15 Difference: * progress_total_ and progress_counter_ access are guarded by checking if control_ is set. If not, we do not report any progress and both are not set. Original change's description: > [heap-snapshot] Preventing overflow in progress counter > > This prevents an overflow to happen in the heap snapshot generator. > Furthermore it changes the relation of progress_counter_ and > progress_total_ to always adhere to: > * progress_counter_ <= progress_total_, > * if: progress_counter_ == progress_total_, then it is done. > > With this change, if progress_counter_ happens to be bigger > than progress_total_ (latter is an estimate), it will continue > to report the same progress (<100%) until it is done. Before, > it would repeatedly report 100% until it is done. > > Fixed: chromium:1246860 > Change-Id: Iffd3f52355632f2b35abdbb3752912ba7b8bd821 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3250310 > Reviewed-by: Yang Guo <yangguo@chromium.org> > Commit-Queue: Kim-Anh Tran <kimanh@chromium.org> > Cr-Commit-Position: refs/heads/main@{#77589} Bug: chromium:1246860 Change-Id: I7522c1fe011954dd18828bdef507abe3e0237d42 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3251170Reviewed-by: Yang Guo <yangguo@chromium.org> Commit-Queue: Kim-Anh Tran <kimanh@chromium.org> Cr-Commit-Position: refs/heads/main@{#77608}
-
- 28 Oct, 2021 2 commits
-
-
Clemens Backes authored
This reverts commit 0e006a15. Reason for revert: MSan failures: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux%20-%20arm64%20-%20sim%20-%20MSAN/41031/overview Original change's description: > [heap-snapshot] Preventing overflow in progress counter > > This prevents an overflow to happen in the heap snapshot generator. > Furthermore it changes the relation of progress_counter_ and > progress_total_ to always adhere to: > * progress_counter_ <= progress_total_, > * if: progress_counter_ == progress_total_, then it is done. > > With this change, if progress_counter_ happens to be bigger > than progress_total_ (latter is an estimate), it will continue > to report the same progress (<100%) until it is done. Before, > it would repeatedly report 100% until it is done. > > Fixed: chromium:1246860 > Change-Id: Iffd3f52355632f2b35abdbb3752912ba7b8bd821 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3250310 > Reviewed-by: Yang Guo <yangguo@chromium.org> > Commit-Queue: Kim-Anh Tran <kimanh@chromium.org> > Cr-Commit-Position: refs/heads/main@{#77589} Change-Id: I81e8bb563a48ce6b877e83e30a5f426bef0bb58d No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3250901 Auto-Submit: Clemens Backes <clemensb@chromium.org> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Commit-Queue: Maya Lekova <mslekova@chromium.org> Reviewed-by: Maya Lekova <mslekova@chromium.org> Owners-Override: Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/main@{#77590}
-
Kim-Anh Tran authored
This prevents an overflow to happen in the heap snapshot generator. Furthermore it changes the relation of progress_counter_ and progress_total_ to always adhere to: * progress_counter_ <= progress_total_, * if: progress_counter_ == progress_total_, then it is done. With this change, if progress_counter_ happens to be bigger than progress_total_ (latter is an estimate), it will continue to report the same progress (<100%) until it is done. Before, it would repeatedly report 100% until it is done. Fixed: chromium:1246860 Change-Id: Iffd3f52355632f2b35abdbb3752912ba7b8bd821 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3250310Reviewed-by: Yang Guo <yangguo@chromium.org> Commit-Queue: Kim-Anh Tran <kimanh@chromium.org> Cr-Commit-Position: refs/heads/main@{#77589}
-
- 26 Oct, 2021 1 commit
-
-
Camillo Bruni authored
- Check that we only store internalized strings for context-allocated function names - Fix call to FunctionContextSlotIndex from V8HeapExplorer that could end up passing in a non-internalized string Bug: chromium:1255105 Change-Id: Ie8bd5577bd0086241d47991fbe285f5d64ae3d4a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3245113Reviewed-by: Kim-Anh Tran <kimanh@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/main@{#77540}
-
- 19 Oct, 2021 1 commit
-
-
Igor Sheludko authored
... by explicitly passing pointer compression cage base value to various IsXXX() and map() calls in order to avoid using incorrect auto-computed cage base value when applied to objects allocated in external code space. This CL also introduces IsCodeObject(HeapObject) predicate which checks the IS_EXECUTABLE bit in the page header's flags. Bug: v8:11880 Change-Id: Ib44398c3125392e46e939044a9bd27e09d7944d5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3229368Reviewed-by: Camillo Bruni <cbruni@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/main@{#77459}
-
- 12 Oct, 2021 1 commit
-
-
Igor Sheludko authored
... as a result of merging RelocInfo::target_object() with RelocInfo::target_object_no_host(PtrComprCageBase), where the cage base is used for accessing compressed embedded pointers. There are two reasons for this change: 1) the parameterless version used to compute the cage base value from the host Code object, however, when external code space is enabled such a base value will not work for non-Code objects, since they require different cage base for decompressing, 2) when external code space is enabled, there must be no need to embed compressed Code objects at all because CodeDataContainers must be used instead. In addition this CL introduces DCHECKs to enforce (2). Bug: v8:11880 Change-Id: I5b504f91dea87c2bcaa1165d2dbfaada70cba7be Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3211998Reviewed-by: Camillo Bruni <cbruni@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/main@{#77361}
-
- 11 Oct, 2021 1 commit
-
-
Victor Gomes authored
Compiling Sparkplug on the heap saved 10% of the CompileBaseline RCS metric, but that came with too much code complexity. Since in the end that corresponds to < 1% of the entire compilation time, we decided to revert this project. This reverts: commit e29b2ae4 commit d1f2a83b commit 4666e182 commit a1147408 commit e0d4254f commit 9ab8422d commit a3b24ecc commit 1eb87706 commit fe5c9dfd commit 7ac3b55a commit 7e95f30e commit 323b5962 commit 6bf0b704 commit e82b368b commit 5020d83e commit 642a4673 commit ec7b99d5 commit fb4f89ae commit 208854bb commit 63be6dde Bug: v8:12158 Change-Id: I9f2539be6c7d80c6e243c9ab173e3c5bb0dff97d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3136453 Auto-Submit: Victor Gomes <victorgomes@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Reviewed-by: Camillo Bruni <cbruni@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#77319}
-
- 29 Sep, 2021 1 commit
-
-
Jakob Gruber authored
.. and refactor js-regexp.h. - Hide the generic DataAt/SetDataAt accessors and replace them by dedicated accessors. Use the common lower_case naming scheme for these. - Shuffle around definitions in js-regexp.h s.t. they are in a meaningful order. - Dedupe the source/flags accessors - these fields are stored both on the instance and on the data array. We keep only accessors for the instance. Previously, these were disambiguated through naming oddities (e.g. Pattern() returned data->source). Change-Id: I3d53c8b095f0d59621ff779608438f7fa5e8c92a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3193534 Auto-Submit: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Reviewed-by: Maya Lekova <mslekova@chromium.org> Reviewed-by: Camillo Bruni <cbruni@chromium.org> Reviewed-by: Patrick Thier <pthier@chromium.org> Cr-Commit-Position: refs/heads/main@{#77138}
-
- 28 Sep, 2021 1 commit
-
-
Ng Zhi An authored
Bug: v8:12244 Change-Id: I7ea68dd74a376221631d7f56b4a012207f68a1ec Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3182899Reviewed-by: Hannes Payer <hpayer@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/main@{#77129}
-
- 27 Sep, 2021 1 commit
-
-
Igor Sheludko authored
... an ObjectVisitor subclass that takes care of caching values of both the main pointer compression cage base and code cage base (when the external code space is enabled). Drive-by: this CL also changes signature of RelocInfo::target_object_no_host(...) to accept PtrComprCageBase instead of Isolate*. Bug: v8:11880 Change-Id: I3fbb382e0a0170e28542bc495d8fecfd24da8a07 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3182231 Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by: Camillo Bruni <cbruni@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/main@{#77088}
-
- 06 Sep, 2021 1 commit
-
-
Leszek Swirski authored
Remove the BaselineData intermediate structure for baseline code, and write the baseline Code object into the SharedFunctionInfo directly. We still need a pointer to the BytecodeArray/InterpreterData, so re-use the Code object's deoptimization data slot for this (baseline code doesn't have deoptimization data). A consequence of this is that the BytecodeArray pointer becomes immutable when there is baseline code. This means that we cannot install a debug BytecodeArray while baseline code is active (we have to flush it first), and we can't tier-up code with debug BytecodeArray to baseline. Change-Id: I53b93ec4d4c64b833603d7992f246982fcd97596 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3118548 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Auto-Submit: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Camillo Bruni <cbruni@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/main@{#76675}
-
- 20 Aug, 2021 1 commit
-
-
Seth Brenith authored
The heap snapshot view in the dev tools reports some incorrect retaining paths involving weak references from relocation data in Code objects. This change updates IndexedReferencesExtractor::VisitEmbeddedPointer to better match the behavior in MarkingVisitorBase. Drive-by cleanup: ObjectVisitor::VisitRelocInfo needn't be virtual because there's only one implementation. Bug: v8:12126 Change-Id: I669a7408e7a46e797b8c2b372235b4ea42ee22e1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3107214Reviewed-by: Yang Guo <yangguo@chromium.org> Commit-Queue: Seth Brenith <seth.brenith@microsoft.com> Cr-Commit-Position: refs/heads/main@{#76406}
-
- 18 Aug, 2021 1 commit
-
-
Seth Brenith authored
The heap snapshot view in the dev tools reports a lot of incorrect retaining paths involving weak references from FeedbackVectors. To fix, when IndexedReferencesExtractor encounters a weak reference, it should record a weak reference rather than a hidden reference. This way, the forward reference is still visible when exploring in the summary view, but weak references aren't reported as retainers. Bug: v8:12112 Change-Id: Ib3bafc49482fb4f515877a90bae8707483d0a7a2 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3101266Reviewed-by: Yang Guo <yangguo@chromium.org> Commit-Queue: Seth Brenith <seth.brenith@microsoft.com> Cr-Commit-Position: refs/heads/main@{#76364}
-
- 20 Jul, 2021 1 commit
-
-
Igor Sheludko authored
... which will update both the CodeObjectSlot contents and the cached value of the code entry point when the pointed Code object is evacuated. This is done by introducing an OLD_TO_CODE remembered set which is populated with the recorded slots containing pointers to Code objects. CodeDataContainer is the only kind of holder that can contain Code pointers, so having a CodeObjectSlot is enough to compute the holder CodeDataContainer object and update the cached code entry point there. This CL fixes the data race in the previous implementation which were updating the code entry point during Code object migration. Bug: v8:11880 Change-Id: I44aa46af4bad7eb4eaa922b6876d5f2f836e0791 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3035084 Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by: Camillo Bruni <cbruni@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#75826}
-
- 19 Jul, 2021 1 commit
-
-
Igor Sheludko authored
... for visiting slots containing pointers to Code objects when external code space mode is enabled. These slots will require different handling once the code space is moved out of the V8 heap cage. This CL also introduces IsValidCodeObject() predicate similar to IsValidHeapObject() for checking if given HeapObject is a valid Code object. Tbr: cbruni@chromium.org Bug: v8:11880 Change-Id: I430940f4503cebfd2a6d387e44349810991a93e9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3032085Reviewed-by: Igor Sheludko <ishell@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#75787}
-
- 15 Jul, 2021 1 commit
-
-
Victor Gomes authored
Bug: v8:11872 Change-Id: I78c480e3266212adf1e71f728ca16b704c2e7d77 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3030702 Auto-Submit: Victor Gomes <victorgomes@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Commit-Queue: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#75738}
-
- 01 Jul, 2021 1 commit
-
-
Peter Kasting authored
There are still a few cases remaining that seem more controversial; I'll upload those separately. Bug: chromium:1066980 Change-Id: Iabbaf23f9bbe97781857c0c589f2b3db685dfdc2 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2994804 Commit-Queue: Peter Kasting <pkasting@chromium.org> Auto-Submit: Peter Kasting <pkasting@chromium.org> Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#75494}
-
- 22 Jun, 2021 1 commit
-
-
Clemens Backes authored
After a series of CLs per component, this removes all remaining NOLINT annotations that my script identified as not needed (because removing them does not cause a presubmit error). R=mlippautz@chromium.org, jkummerow@chromium.org, leszeks@chromium.org R=cbruni@chromium.org Bug: v8:11879 Change-Id: Ia403c23588a0c2871b987931f6c26f85821e9e9c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2972733Reviewed-by: Camillo Bruni <cbruni@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#75296}
-
- 21 Jun, 2021 1 commit
-
-
Igor Sheludko authored
... and OPTIMIZED_CODE_LIST and DEOPTIMIZED_CODE_LIST slots of NativeContext which serve as heads of respective weak lists of Code objects. Drive-by: trivial NativeContext methods are moved to contexts-inl.h header. Bug: v8:11880 Change-Id: I0f2ca967b2820f84c279fea702bab28829f65d0e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2968416Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Georg Neis <neis@chromium.org> Reviewed-by: Camillo Bruni <cbruni@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#75268}
-
- 18 Jun, 2021 1 commit
-
-
Dan Elphick authored
The adding of base:: was mostly prepared using git grep and sed: git grep -l <pattern> | grep -v base/vector.h | \ xargs sed -i 's/\b<pattern>\b/base::<pattern>/ with lots of manual clean-ups due to the resulting v8::internal::base::Vectors. #includes were fixed using: git grep -l "src/utils/vector.h" | \ axargs sed -i 's!src/utils/vector.h!src/base/vector.h!' Bug: v8:11879 Change-Id: I3e6d622987fee4478089c40539724c19735bd625 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2968412Reviewed-by: Clemens Backes <clemensb@chromium.org> Reviewed-by: Hannes Payer <hpayer@chromium.org> Commit-Queue: Dan Elphick <delphick@chromium.org> Cr-Commit-Position: refs/heads/master@{#75243}
-
- 20 May, 2021 1 commit
-
-
Ulan Degenbaev authored
This also removes small TODOs that are not worth tracking in a bug Change-Id: If61acd1239ac90a908327694b280846b1f676c25 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2909859Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#74698}
-