- 12 Mar, 2021 1 commit
-
-
Toon Verwaest authored
This improves performance a little for especially small parsed objects, e.g., parsing json-parse-financial data in kraken 100.000 times goes from 3.25 s to 3.1 or below. Change-Id: Ic9b668b44fc766da9d8ad03f51924f7dd8b5cc7a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2752881Reviewed-by:
Victor Gomes <victorgomes@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#73360}
-
- 08 Mar, 2021 1 commit
-
-
Santiago Aboy Solanes authored
If a method happens on the main thread and only on the main thread (i.e. it will never be run on the background), it is safer to use non-atomic accessors as TSAN will give warnings if we use them improperly. As a drive-by, pass the isolate as a parameter where it was readily available as it saves us from getting the isolate from the object later on. Bug: v8:7790 Change-Id: Id9bdd69254edc60b0331a32fccf1479a95b7d286 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2732669Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Cr-Commit-Position: refs/heads/master@{#73251}
-
- 11 Feb, 2021 1 commit
-
-
Santiago Aboy Solanes authored
Reasons: * We disabled it more than a year ago for all configs * Not easy to re-enable * Not compatible with pointer compression as-is * Not compatible with concurrent TP/TF as-is * No concrete plans to re-enable it Also remove Map's layout_descriptor since it was only used for double field unboxing. Bug: v8:11422 Change-Id: I9260906eac199213b3210712e9903f1ecf1d7979 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2676637Reviewed-by:
Igor Sheludko <ishell@chromium.org> Reviewed-by:
Nico Hartmann <nicohartmann@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Cr-Commit-Position: refs/heads/master@{#72671}
-
- 26 Nov, 2020 1 commit
-
-
Leszek Swirski authored
Make the IsEqualTo equality type parameter a template parameter, and add an option to skip the length check for cases where the length is known (e.g. in string table key comparisons). Change-Id: I893ac880ec1e830a50ba6d8f58f375ed96d6e14e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2562247 Auto-Submit: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#71435}
-
- 24 Nov, 2020 3 commits
-
-
Leszek Swirski authored
Add a CompareCharsEqual to complement CompareChars, where we only care about equality and not ordering. For such cases, we can memcmp for two- byte as well as one-byte strings (we can't for CompareChars because the ordering would be incorrect on little-endian systems). Replace uses of CompareChars that only compare the result against zero, with CompareCharsEqual. Additionally, use some template magic to simplify the "make unsigned" operation in these methods. Change-Id: I0d65bee81b98d3938d15daa4af331c90558ea84f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2557980 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#71385}
-
Georg Neis authored
Apart from removing Min and Max (utils.h), this is mostly a renaming. In a few cases I had to add a cast. In a bunch of cases I had to use initializer lists to force call-by-value for static member constants because call-by-reference wouldn't compile (like in the previous CL). In a few places I used initializer lists in place of nested min/max operations. Bug: v8:11074 Change-Id: I53a5411be6334ff41e7a8517e6b87fb46f14d086 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2545523 Commit-Queue: Georg Neis <neis@chromium.org> Reviewed-by:
Hannes Payer <hpayer@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#71380}
-
Leszek Swirski authored
Make String::IsEqualTo use a direct string shape dispatch and a direct call to CompareChars, rather than splitting the behaviour over IsOneByte/IsTwoByte/HasOneBytePrefix. Avoiding GetFlatContent will make this method easier to make efficient while staying string-access-lock safe. Also, redefines the sequential string table key's matcher in terms of this IsEqualTo method. Change-Id: Iab71246e12044ebaeff06f0dbc14d28b3482dcbe Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2557979 Commit-Queue: Igor Sheludko <ishell@chromium.org> Auto-Submit: Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#71378}
-
- 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}
-
- 24 Oct, 2020 1 commit
-
-
Camillo Bruni authored
This is a reland of eb6b4ce1 Skip test that serializes Error which references a Script. All errors created by ThrowAt store the current Script under the error_script_symbol. Original change's description: > [runtime] Use Isolate::ThrowAt with MessageLocation > > Fix various missing source positions when reporting parse and compile > errors. Namely this fixes missing source positions when having invalid > module imports. > > - Use Isolate::ThrowAt with valid MessageLocation objects > - Change public Isolate::Throw to no longer accept MessageLocation to > avoid misues > - Introduce private Isolate::ThrowInternal that accepts MessageLocation > > Bug: v8:6513 > Change-Id: I3ee633c9fff8c9d361bddb37f56e28a50c280ec1 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2467839 > Commit-Queue: Camillo Bruni <cbruni@chromium.org> > Reviewed-by: Marja Hölttä <marja@chromium.org> > Reviewed-by: Igor Sheludko <ishell@chromium.org> > Cr-Commit-Position: refs/heads/master@{#70623} Bug: v8:6513 Change-Id: Icba74f74178e28fbda0fd0c237eeb7bacbc33570 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2487123Reviewed-by:
Igor Sheludko <ishell@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#70741}
-
- 20 Oct, 2020 1 commit
-
-
Edward Lesmes authored
Generate DIR_METADATA files and remove metadata from OWNERS files for v8. R=jkummerow@chromium.org, ochang@chromium.org, yangguo@chromium.org Bug: chromium:1113033 Change-Id: I82cbb62e438d82dbbc408e87120af39fa9da0afa Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2476680Reviewed-by:
Adam Klein <adamk@chromium.org> Reviewed-by:
Maya Lekova <mslekova@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org> Auto-Submit: Edward Lesmes <ehmaldonado@chromium.org> Cr-Commit-Position: refs/heads/master@{#70669}
-
- 19 Oct, 2020 2 commits
-
-
Michael Achenbach authored
This reverts commit eb6b4ce1. Reason for revert: Might need rebaseline: https://ci.chromium.org/p/v8/builders/ci/V8%20Blink%20Linux/7519 Original change's description: > [runtime] Use Isolate::ThrowAt with MessageLocation > > Fix various missing source positions when reporting parse and compile > errors. Namely this fixes missing source positions when having invalid > module imports. > > - Use Isolate::ThrowAt with valid MessageLocation objects > - Change public Isolate::Throw to no longer accept MessageLocation to > avoid misues > - Introduce private Isolate::ThrowInternal that accepts MessageLocation > > Bug: v8:6513 > Change-Id: I3ee633c9fff8c9d361bddb37f56e28a50c280ec1 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2467839 > Commit-Queue: Camillo Bruni <cbruni@chromium.org> > Reviewed-by: Marja Hölttä <marja@chromium.org> > Reviewed-by: Igor Sheludko <ishell@chromium.org> > Cr-Commit-Position: refs/heads/master@{#70623} TBR=marja@chromium.org,cbruni@chromium.org,ishell@chromium.org Change-Id: Ifa16ef8b6e5e411712fbad2e2a58fd700da12a69 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:6513 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2485498Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#70631}
-
Camillo Bruni authored
Fix various missing source positions when reporting parse and compile errors. Namely this fixes missing source positions when having invalid module imports. - Use Isolate::ThrowAt with valid MessageLocation objects - Change public Isolate::Throw to no longer accept MessageLocation to avoid misues - Introduce private Isolate::ThrowInternal that accepts MessageLocation Bug: v8:6513 Change-Id: I3ee633c9fff8c9d361bddb37f56e28a50c280ec1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2467839 Commit-Queue: Camillo Bruni <cbruni@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#70623}
-
- 05 Oct, 2020 1 commit
-
-
Santiago Aboy Solanes authored
We can use tag dispatching to distinguish between the synchronized and non-synchronized accessors. Also eliminated the need of adding explicit "synchronized" in the name when using the macros. As a note, we currently have one case of using both relaxed and synchronized accessors (Map::instance_descriptors). Cleaned up: * BytecodeArray::source_position_table * Code::code_data_container * Code::source_position_table * FunctionTemplateInfo::call_code * Map::instance_descriptors * Map::layout_descriptor * SharedFunctionInfo::function_data Bug: v8:7790 Change-Id: I5a502f4b2df6addb6c45056e77061271012c7d90 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2424130 Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Reviewed-by:
Dominik Inführ <dinfuehr@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#70306}
-
- 10 Jun, 2020 1 commit
-
-
Jakob Gruber authored
Prior to this change, uc16 was typedef'd to (unsigned) uint16_t while uc32 was typedef'd to (signed) int32_t. For consistency, and to avoid unexpected behavior around signed/unsigned comparisons, this changes uc32 to the unsigned uint32_t type. As part of this change, old-style error passing (return -1, check for negative return values) was updated to use named error values. Bug: v8:10568 Change-Id: I8524e66ee20e8738749cd34c4fe82c14e885dcb3 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2235533Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Clemens Backes <clemensb@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#68282}
-
- 04 May, 2020 1 commit
-
-
Toon Verwaest authored
Previously such maps were marked as prototype, but that has bad performance / memory characteristics if objects are used as dictionaries. Bug: b:148346655, v8:10339 Change-Id: I287c5664c8b7799a084669aaaffe3affcf73e95f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2179322Reviewed-by:
Igor Sheludko <ishell@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#67537}
-
- 30 Apr, 2020 6 commits
-
-
Deepti Gandluri authored
This reverts commit fd2548f3. Reason for revert: Breaks telemetry benchmark, blocks deps roll. https://ci.chromium.org/p/chromium/builders/try/linux-rel/373686? https://chromium-swarm.appspot.com/task?id=4be57eb0279bbb10 Original change's description: > Reland^4 "[runtime] Amortize descriptor array growing for fast-mode prototypes" > > This CL: > - stops tracking transitions for fast maps that are known to be detached > - reuses descriptor arrays when transitioning detached maps to avoid O(n^2) performance and garbage creation > > Fix2 in reland: constructor_or_backpointer can be a smi since it can also hold a user-provided function.prototype > Fix in reland: check whether the map of the back pointer is the metamap rather than reading the map of the constructor-or-backpointer slot. If the slot contains a constructor, it's possible that the object transitions while the concurrent marker is reading the map (from which it's reading the instance type); and it's possible that the transitioned map isn't set up yet fully when we read the instance type. An acquire load for the constructor-or-backpointer map would also fix it by serializing stores, but is more expensive. Checking the metamap is faster. > > Original commit message: > > This avoids an O(n^2) algorithm that creates an equal amount of garbage. > > Even though the actual final descriptor array might be a little bigger, > > it reduces peak memory usage by allocating less. > > Change-Id: Id99dc76a369057e5c4d76a31163605cb38a66867 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2172080 > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Commit-Queue: Toon Verwaest <verwaest@chromium.org> > Cr-Commit-Position: refs/heads/master@{#67501} TBR=ulan@chromium.org,verwaest@chromium.org Change-Id: If305b5410ca37e04e9ec0ce50e9b494f5c4cd4dc No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2174767Reviewed-by:
Deepti Gandluri <gdeepti@chromium.org> Commit-Queue: Deepti Gandluri <gdeepti@chromium.org> Cr-Commit-Position: refs/heads/master@{#67510}
-
Toon Verwaest authored
This CL: - stops tracking transitions for fast maps that are known to be detached - reuses descriptor arrays when transitioning detached maps to avoid O(n^2) performance and garbage creation Fix2 in reland: constructor_or_backpointer can be a smi since it can also hold a user-provided function.prototype Fix in reland: check whether the map of the back pointer is the metamap rather than reading the map of the constructor-or-backpointer slot. If the slot contains a constructor, it's possible that the object transitions while the concurrent marker is reading the map (from which it's reading the instance type); and it's possible that the transitioned map isn't set up yet fully when we read the instance type. An acquire load for the constructor-or-backpointer map would also fix it by serializing stores, but is more expensive. Checking the metamap is faster. Original commit message: > This avoids an O(n^2) algorithm that creates an equal amount of garbage. > Even though the actual final descriptor array might be a little bigger, > it reduces peak memory usage by allocating less. Change-Id: Id99dc76a369057e5c4d76a31163605cb38a66867 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2172080Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#67501}
-
Toon Verwaest authored
This reverts commit 65630850. Reason for revert: due to failures Original change's description: > Reland^3 "[runtime] Amortize descriptor array growing for fast-mode prototypes" > > This CL: > - stops tracking transitions for fast maps that are known to be detached > - reuses descriptor arrays when transitioning detached maps to avoid O(n^2) performance and garbage creation > > Fix in reland: check whether the map of the back pointer is the metamap rather than reading the map of the constructor-or-backpointer slot. If the slot contains a constructor, it's possible that the object transitions while the concurrent marker is reading the map (from which it's reading the instance type); and it's possible that the transitioned map isn't set up yet fully when we read the instance type. An acquire load for the constructor-or-backpointer map would also fix it by serializing stores, but is more expensive. Checking the metamap is faster. > > Original commit message: > > This avoids an O(n^2) algorithm that creates an equal amount of garbage. > > Even though the actual final descriptor array might be a little bigger, > > it reduces peak memory usage by allocating less. > > TBR=ulan@chromium.org,ishell@chromium.org > > Change-Id: I57000949debdee2b69dd41e0c5975b3e8a34c6f4 > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: b:148346655, v8:10339 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2173363 > Commit-Queue: Toon Verwaest <verwaest@chromium.org> > Reviewed-by: Toon Verwaest <verwaest@chromium.org> > Cr-Commit-Position: refs/heads/master@{#67499} TBR=ulan@chromium.org,clemensb@chromium.org,ishell@chromium.org,verwaest@chromium.org Change-Id: Ie7018912f591d397c8acede9b31fbf269d225fe4 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: b:148346655, v8:10339 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2174299Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#67500}
-
Toon Verwaest authored
This CL: - stops tracking transitions for fast maps that are known to be detached - reuses descriptor arrays when transitioning detached maps to avoid O(n^2) performance and garbage creation Fix in reland: check whether the map of the back pointer is the metamap rather than reading the map of the constructor-or-backpointer slot. If the slot contains a constructor, it's possible that the object transitions while the concurrent marker is reading the map (from which it's reading the instance type); and it's possible that the transitioned map isn't set up yet fully when we read the instance type. An acquire load for the constructor-or-backpointer map would also fix it by serializing stores, but is more expensive. Checking the metamap is faster. Original commit message: > This avoids an O(n^2) algorithm that creates an equal amount of garbage. > Even though the actual final descriptor array might be a little bigger, > it reduces peak memory usage by allocating less. TBR=ulan@chromium.org,ishell@chromium.org Change-Id: I57000949debdee2b69dd41e0c5975b3e8a34c6f4 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: b:148346655, v8:10339 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2173363 Commit-Queue: Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#67499}
-
Toon Verwaest authored
This reverts commit d29b2f81. Reason for revert: accidental reland without fix Original change's description: > Reland^2 "[runtime] Amortize descriptor array growing for fast-mode prototypes" > > Fix: check whether the map of the back pointer is the metamap rather than reading the map of the constructor-or-backpointer slot. If the slot contains a constructor, it's possible that the object transitions while the concurrent marker is reading the map (from which it's reading the instance type); and it's possible that the transitioned map isn't set up yet fully when we read the instance type. An acquire load for the constructor-or-backpointer map would also fix it by serializing stores, but is more expensive. Checking the metamap is faster. > > In case of false negatives (it is a map but we read the field before it was properly initialized) we'll simply mark too many descriptors in the worst case. > > Original change's description: > > Revert "Reland "[runtime] Amortize descriptor array growing for fast-mode prototypes"" > > > > This reverts commit 71f9c117. > > > > Reason for revert: Seems to cause several TSan flakes, e.g. https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20TSAN%20-%20concurrent%20marking/12926 > > > > Original change's description: > > > Reland "[runtime] Amortize descriptor array growing for fast-mode prototypes" > > > > > > This is a reland of 2de2d3dc > > > > > > Original change's description: > > > > [runtime] Amortize descriptor array growing for fast-mode prototypes > > > > > > > > This avoids an O(n^2) algorithm that creates an equal amount of garbage. > > > > Even though the actual final descriptor array might be a little bigger, > > > > it reduces peak memory usage by allocating less. > > > > > > > > Bug: b:148346655 > > > > Change-Id: I984159d36e9e0b37c19bc81afc90c94c9a9d168a > > > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2135728 > > > > Commit-Queue: Toon Verwaest <verwaest@chromium.org> > > > > Reviewed-by: Igor Sheludko <ishell@chromium.org> > > > > Cr-Commit-Position: refs/heads/master@{#67031} > > > > > > Bug: b:148346655, v8:10339 > > > Change-Id: I24436d8f49dc1fe527c4f6558db1abcba323b6f8 > > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2139215 > > > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > > > Reviewed-by: Igor Sheludko <ishell@chromium.org> > > > Auto-Submit: Toon Verwaest <verwaest@chromium.org> > > > Commit-Queue: Igor Sheludko <ishell@chromium.org> > > > Cr-Commit-Position: refs/heads/master@{#67475} > > > > TBR=ulan@chromium.org,ishell@chromium.org,verwaest@chromium.org > > > > Change-Id: I6fa02d0c89557eae33b792c1fe62c9c15eb0f7c7 > > No-Presubmit: true > > No-Tree-Checks: true > > No-Try: true > > Bug: b:148346655, v8:10339 > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2172749 > > Reviewed-by: Clemens Backes <clemensb@chromium.org> > > Commit-Queue: Clemens Backes <clemensb@chromium.org> > > Cr-Commit-Position: refs/heads/master@{#67478} > > TBR=ulan@chromium.org,clemensb@chromium.org,ishell@chromium.org,verwaest@chromium.org > > Change-Id: Ib86e039374e721919cd5b02495c252ee7af283bd > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: b:148346655, v8:10339 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2173359 > Reviewed-by: Toon Verwaest <verwaest@chromium.org> > Commit-Queue: Toon Verwaest <verwaest@chromium.org> > Cr-Commit-Position: refs/heads/master@{#67495} TBR=ulan@chromium.org,clemensb@chromium.org,ishell@chromium.org,verwaest@chromium.org Change-Id: Ia624ac774c021146b9b3b7e60372113c50a1ec61 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: b:148346655, v8:10339 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2173361Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#67497}
-
Toon Verwaest authored
Fix: check whether the map of the back pointer is the metamap rather than reading the map of the constructor-or-backpointer slot. If the slot contains a constructor, it's possible that the object transitions while the concurrent marker is reading the map (from which it's reading the instance type); and it's possible that the transitioned map isn't set up yet fully when we read the instance type. An acquire load for the constructor-or-backpointer map would also fix it by serializing stores, but is more expensive. Checking the metamap is faster. In case of false negatives (it is a map but we read the field before it was properly initialized) we'll simply mark too many descriptors in the worst case. Original change's description: > Revert "Reland "[runtime] Amortize descriptor array growing for fast-mode prototypes"" > > This reverts commit 71f9c117. > > Reason for revert: Seems to cause several TSan flakes, e.g. https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20TSAN%20-%20concurrent%20marking/12926 > > Original change's description: > > Reland "[runtime] Amortize descriptor array growing for fast-mode prototypes" > > > > This is a reland of 2de2d3dc > > > > Original change's description: > > > [runtime] Amortize descriptor array growing for fast-mode prototypes > > > > > > This avoids an O(n^2) algorithm that creates an equal amount of garbage. > > > Even though the actual final descriptor array might be a little bigger, > > > it reduces peak memory usage by allocating less. > > > > > > Bug: b:148346655 > > > Change-Id: I984159d36e9e0b37c19bc81afc90c94c9a9d168a > > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2135728 > > > Commit-Queue: Toon Verwaest <verwaest@chromium.org> > > > Reviewed-by: Igor Sheludko <ishell@chromium.org> > > > Cr-Commit-Position: refs/heads/master@{#67031} > > > > Bug: b:148346655, v8:10339 > > Change-Id: I24436d8f49dc1fe527c4f6558db1abcba323b6f8 > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2139215 > > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > > Reviewed-by: Igor Sheludko <ishell@chromium.org> > > Auto-Submit: Toon Verwaest <verwaest@chromium.org> > > Commit-Queue: Igor Sheludko <ishell@chromium.org> > > Cr-Commit-Position: refs/heads/master@{#67475} > > TBR=ulan@chromium.org,ishell@chromium.org,verwaest@chromium.org > > Change-Id: I6fa02d0c89557eae33b792c1fe62c9c15eb0f7c7 > No-Presubmit: true > No-Tree-Checks: true > No-Try: true > Bug: b:148346655, v8:10339 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2172749 > Reviewed-by: Clemens Backes <clemensb@chromium.org> > Commit-Queue: Clemens Backes <clemensb@chromium.org> > Cr-Commit-Position: refs/heads/master@{#67478} TBR=ulan@chromium.org,clemensb@chromium.org,ishell@chromium.org,verwaest@chromium.org Change-Id: Ib86e039374e721919cd5b02495c252ee7af283bd No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: b:148346655, v8:10339 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2173359Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#67495}
-
- 29 Apr, 2020 2 commits
-
-
Clemens Backes authored
This reverts commit 71f9c117. Reason for revert: Seems to cause several TSan flakes, e.g. https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20TSAN%20-%20concurrent%20marking/12926 Original change's description: > Reland "[runtime] Amortize descriptor array growing for fast-mode prototypes" > > This is a reland of 2de2d3dc > > Original change's description: > > [runtime] Amortize descriptor array growing for fast-mode prototypes > > > > This avoids an O(n^2) algorithm that creates an equal amount of garbage. > > Even though the actual final descriptor array might be a little bigger, > > it reduces peak memory usage by allocating less. > > > > Bug: b:148346655 > > Change-Id: I984159d36e9e0b37c19bc81afc90c94c9a9d168a > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2135728 > > Commit-Queue: Toon Verwaest <verwaest@chromium.org> > > Reviewed-by: Igor Sheludko <ishell@chromium.org> > > Cr-Commit-Position: refs/heads/master@{#67031} > > Bug: b:148346655, v8:10339 > Change-Id: I24436d8f49dc1fe527c4f6558db1abcba323b6f8 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2139215 > Reviewed-by: Ulan Degenbaev <ulan@chromium.org> > Reviewed-by: Igor Sheludko <ishell@chromium.org> > Auto-Submit: Toon Verwaest <verwaest@chromium.org> > Commit-Queue: Igor Sheludko <ishell@chromium.org> > Cr-Commit-Position: refs/heads/master@{#67475} TBR=ulan@chromium.org,ishell@chromium.org,verwaest@chromium.org Change-Id: I6fa02d0c89557eae33b792c1fe62c9c15eb0f7c7 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: b:148346655, v8:10339 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2172749Reviewed-by:
Clemens Backes <clemensb@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#67478}
-
Toon Verwaest authored
This is a reland of 2de2d3dc Original change's description: > [runtime] Amortize descriptor array growing for fast-mode prototypes > > This avoids an O(n^2) algorithm that creates an equal amount of garbage. > Even though the actual final descriptor array might be a little bigger, > it reduces peak memory usage by allocating less. > > Bug: b:148346655 > Change-Id: I984159d36e9e0b37c19bc81afc90c94c9a9d168a > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2135728 > Commit-Queue: Toon Verwaest <verwaest@chromium.org> > Reviewed-by: Igor Sheludko <ishell@chromium.org> > Cr-Commit-Position: refs/heads/master@{#67031} Bug: b:148346655, v8:10339 Change-Id: I24436d8f49dc1fe527c4f6558db1abcba323b6f8 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2139215Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Auto-Submit: Toon Verwaest <verwaest@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#67475}
-
- 11 Feb, 2020 1 commit
-
-
Leszek Swirski authored
Adds support for off-thread allocation to Script allocation and line-end calculation. This includes adding support for keeping/merging a script list on the OffThreadIsolate, and adding syntactical support for logging (in the future this could do actual logging). Bug: chromium:1011762 Change-Id: Id90f2ad7458e90e06f6926f1fce7ef7a1ef50b3d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2046884Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#66213}
-
- 17 Dec, 2019 1 commit
-
-
Toon Verwaest authored
Objects in arrays take the shape of the object right before as feedback to speed up object creation. If a subsequent object with the same shape has a member that also has the same shape, that member can cause the feedback map to be deprecated. To avoid confusion, we now update (dedeprecate) the feedback map before use. Thanks a bunch Seth Brenith for figuring out the issue! Bug: chromium:1029077 Change-Id: I047b1acfd4906616a2302f253ab9cd29272bdc79 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1970211 Commit-Queue: Toon Verwaest <verwaest@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Auto-Submit: Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#65474}
-
- 26 Nov, 2019 1 commit
-
-
Jakob Kummerow authored
(1) One more place in ic.cc must guard against "lookup->name()" calls when the LookupIterator might be in indexed mode. (2) Rather than burdening LookupIterator users with specifying "kGuaranteedNoTypedArray", we can do the corresponding calculation in the LookupIterator itself, which makes it robust towards any callers that haven't been updated (specifically, in Object.values). Bug: chromium:1027461,chromium:1028213 Change-Id: I76b5d08e309fc2a694955b537adbeb5a30e681f7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1936474Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#65177}
-
- 25 Nov, 2019 3 commits
-
-
Jakob Kummerow authored
This is a reland of e1ad9b89 Original change's description: > Fixes for size_t LookupIterator > > Fixing some fallout from c968607e > aka r65078 > > Bug: chromium:1026729,chromium:1026856,chromium:1026909,chromium:1026974 > Change-Id: I98a4466595fbf1635af403ab58842977882c0453 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1930907 > Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Reviewed-by: Toon Verwaest <verwaest@chromium.org> > Cr-Commit-Position: refs/heads/master@{#65158} Tbr: verwaest@chromium.org,mstarzinger@chromium.org Bug: chromium:1026729, chromium:1026856, chromium:1026909, chromium:1026974 Change-Id: I66695f05c4910c46f3c75209e14135075721f2cf Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1932839Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#65162}
-
Shu-yu Guo authored
This reverts commit e1ad9b89. Reason for revert: Landed test that fails with GC stress Original change's description: > Fixes for size_t LookupIterator > > Fixing some fallout from c968607e > aka r65078 > > Bug: chromium:1026729,chromium:1026856,chromium:1026909,chromium:1026974 > Change-Id: I98a4466595fbf1635af403ab58842977882c0453 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1930907 > Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Reviewed-by: Toon Verwaest <verwaest@chromium.org> > Cr-Commit-Position: refs/heads/master@{#65158} TBR=jkummerow@chromium.org,mstarzinger@chromium.org,verwaest@chromium.org Change-Id: I1f1e95d37b033e53330adae08071cbe34e1d9488 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:1026729, chromium:1026856, chromium:1026909, chromium:1026974 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1933599Reviewed-by:
Shu-yu Guo <syg@chromium.org> Commit-Queue: Shu-yu Guo <syg@chromium.org> Cr-Commit-Position: refs/heads/master@{#65159}
-
Jakob Kummerow authored
Fixing some fallout from c968607e aka r65078 Bug: chromium:1026729,chromium:1026856,chromium:1026909,chromium:1026974 Change-Id: I98a4466595fbf1635af403ab58842977882c0453 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1930907 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#65158}
-
- 20 Nov, 2019 1 commit
-
-
Jakob Kummerow authored
They have to be in sync, so this patch updates both systems. Bug: v8:4153 Change-Id: I09252e41a710e79f823fe6818c1c6c0038faeb31 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1903434Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#65078}
-
- 15 Nov, 2019 1 commit
-
-
Dan Elphick authored
utils.h itself is fairly large and contains lots of unrelated functions as well as having a fair number of dependencies itself, so this splits bounds checking and bit field operations into their own headers in base and replaces uses of utils.h with the more appropriate header where possible. (Also fixes some cases where other headers were previously brought in transitively). Bug: v8:9810, v8:8912 Change-Id: I76c53f953848a57e2c5bfad6ce45abcd6d2a4f1b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1916604Reviewed-by:
Clemens Backes <clemensb@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Dan Elphick <delphick@chromium.org> Cr-Commit-Position: refs/heads/master@{#64983}
-
- 31 Oct, 2019 1 commit
-
-
Yang Guo authored
R=hpayer@chromium.org Change-Id: If3586bf451e08ab4bbf6d91b9f15382fad411219 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1868609 Auto-Submit: Yang Guo <yangguo@chromium.org> Commit-Queue: Hannes Payer <hpayer@chromium.org> Reviewed-by:
Hannes Payer <hpayer@chromium.org> Cr-Commit-Position: refs/heads/master@{#64679}
-
- 11 Oct, 2019 1 commit
-
-
Jakob Kummerow authored
This is for consistency and compiler-enforced type safety. No change in behavior intended. Change-Id: I31467832ba6c63fd5f97df9fee6221559b283d67 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1852766 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#64244}
-
- 02 Oct, 2019 1 commit
-
-
Igor Sheludko authored
... which fail when double fields unboxing is disabled. Bug: v8:9799 Change-Id: I77f11046d5a50c37c113aa8d9c5b8ca1148a746b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1835549Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#64087}
-
- 28 Aug, 2019 1 commit
-
-
Sigurd Schneider authored
This change allows the KeyAccumulator to throw a range error if there are too many properties to be enumerated. This CL introduces extensive checks during key enumeration in the run-time, and might introduce regressions. If so, feel free to revert. Bug: chromium:918301 Change-Id: I6166c0b15f1a05eac7116a979f12ba4833d1d1b1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1545902 Auto-Submit: Sigurd Schneider <sigurds@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#63430}
-
- 26 Aug, 2019 1 commit
-
-
Toon Verwaest authored
By marking maps detached from the transition tree as prototypes, we'll automatically stop tracking transitions from those detached fast maps. That allows us to quickly check whether a map is detached (or the initial map anyway); and saves memory. We can use this information to ignore sibling type feedback when parsing a JSON array with many distinctly shaped json objects. Bug: chromium:993980 Change-Id: I86d493ac2cabec2c31c6e322ad5c5a7ace059dfc Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1771778Reviewed-by:
Igor Sheludko <ishell@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#63403}
-
- 20 Aug, 2019 1 commit
-
-
Leszek Swirski authored
Since the mutability of HeapNumbers is determined by their owning object's descriptor array, we can remove the MutableHeapNumber type entirely, at the cost of a few fewer DCHECKs and a couple of TODOs to use the descriptor array information. This is a necessary step towards a follow-up which allows in-place Double -> Tagged transitions Design doc: https://docs.google.com/document/d/1VeKIskAakxQFnUBNkhBmVswgR7Vk6T1kAyKRLhqerb4/ Bug: v8:9606 Change-Id: I13209f9c86f1f204088f6fd80089e17d956b4a50 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1743972 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#63294}
-
- 05 Aug, 2019 1 commit
-
-
Clemens Hammacher authored
Instead of exposing a {kNext} constant to be used to construct the next bitfield, expose a templatized {Next} type alias. This ensures that the storage type is the same for all bitfields created this way. It's also shorter. Apart from the expected changes in the code base, the AST node classes are changed to expose a {NextBitField} templated type alias instead of a {kNextBitFieldIndex} constant. They thus follow the same pattern as {BitField} itself. R=jkummerow@chromium.org, mstarzinger@chromium.org, verwaest@chromium.org Bug: v8:9396 Change-Id: I70a1b0bd71cde694ec53444de0ca55e4cf0a3836 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1728615Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#63068}
-
- 09 Jul, 2019 1 commit
-
-
Igor Sheludko authored
Tbr: verwaest@chromium.org Bug: v8:9353 Change-Id: I8164e2235ca43e203410277b86e6f166010c11d6 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1687673Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#62597}
-
- 26 Jun, 2019 1 commit
-
-
Sathya Gunasekaran authored
Change-Id: I8e6f10d6a5cba981134b44fda1a8ae3a4ea0fc97 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1675959 Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#62371}
-