- 31 Jan, 2018 1 commit
-
-
Mike Stanton authored
The FeedbackNexus classes initially were one-to-one with IC classes, but over time this got out of date. We also found Nexus' useful, so we made more classes even for cases that weren't ICs. The inheritence and polymorphism became confusing and led to duplication. Better, to just talk about a (single) FeedbackNexus. Bug: v8:7344 Change-Id: I509dc9657895d56c3859de6e6589695cdff9e73e Reviewed-on: https://chromium-review.googlesource.com/890452 Commit-Queue: Michael Stanton <mvstanton@chromium.org> Reviewed-by:
Franziska Hinkelmann <franzih@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#50997}
-
- 26 Jan, 2018 1 commit
-
-
Georg Neis authored
This is a reland of 181ac2b0 that fixes the issue with load elimination. Original change's description: > [ic] Improve performance of KeyedStoreIC on literal-based arrays. > > In mode STORE_AND_GROW_NO_TRANSITION, the handler for elements stores > used to bail out when seeing a COW array, even if the store that > installed the handler had been operating on the very same array. > > This CL adds support for COW arrays to the mode (and renames it to > STORE_AND_GROW_NO_TRANSITION_HANDLE_COW). > > Bug: v8:7334 > Change-Id: I6a15e8c1ff8d4ad4d5b8fc447745dce5d146c67c > Reviewed-on: https://chromium-review.googlesource.com/876014 > Commit-Queue: Georg Neis <neis@chromium.org> > Reviewed-by: Igor Sheludko <ishell@chromium.org> > Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> > Cr-Commit-Position: refs/heads/master@{#50840} TBR=bmeurer@chromium.org Bug: v8:7334, chromium:805768 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: I3d9c1b08583e08d68a1d30242a25e4a2190c8c55 Reviewed-on: https://chromium-review.googlesource.com/886261 Commit-Queue: Georg Neis <neis@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#50885}
-
- 25 Jan, 2018 1 commit
-
-
Georg Neis authored
This reverts commit 181ac2b0. Reason for revert: TF changes break load elimination. Original change's description: > [ic] Improve performance of KeyedStoreIC on literal-based arrays. > > In mode STORE_AND_GROW_NO_TRANSITION, the handler for elements stores > used to bail out when seeing a COW array, even if the store that > installed the handler had been operating on the very same array. > > This CL adds support for COW arrays to the mode (and renames it to > STORE_AND_GROW_NO_TRANSITION_HANDLE_COW). > > Bug: v8:7334 > Change-Id: I6a15e8c1ff8d4ad4d5b8fc447745dce5d146c67c > Reviewed-on: https://chromium-review.googlesource.com/876014 > Commit-Queue: Georg Neis <neis@chromium.org> > Reviewed-by: Igor Sheludko <ishell@chromium.org> > Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> > Cr-Commit-Position: refs/heads/master@{#50840} TBR=neis@chromium.org,ishell@chromium.org,bmeurer@chromium.org Change-Id: Id841d91b12d199045e0a9c4ddae2c2ead20b5e21 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:7334 Reviewed-on: https://chromium-review.googlesource.com/885814Reviewed-by:
Georg Neis <neis@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#50860}
-
- 24 Jan, 2018 1 commit
-
-
Georg Neis authored
In mode STORE_AND_GROW_NO_TRANSITION, the handler for elements stores used to bail out when seeing a COW array, even if the store that installed the handler had been operating on the very same array. This CL adds support for COW arrays to the mode (and renames it to STORE_AND_GROW_NO_TRANSITION_HANDLE_COW). Bug: v8:7334 Change-Id: I6a15e8c1ff8d4ad4d5b8fc447745dce5d146c67c Reviewed-on: https://chromium-review.googlesource.com/876014 Commit-Queue: Georg Neis <neis@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#50840}
-
- 12 Jan, 2018 1 commit
-
-
Sigurd Schneider authored
This changes the return type of - StringBuiltinsAssembler::LoadSurrogatePairAt - CodeStubAssembler::StringCharCodeAt from TNode<Uint32T> to TNode<Int32T>. This is justified because both functions only return values in the positive range of signed integer. This improves interoperatability, as Int32T can be SmiTagged, while this is not allowed for Uint32T. Bug: v8:7270 Change-Id: I2768b6ec320fa0fbcf3e55af784339472fa4909e Reviewed-on: https://chromium-review.googlesource.com/861782Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#50542}
-
- 21 Dec, 2017 1 commit
-
-
Igor Sheludko authored
... to ease its inlining to the bytecode handlers. The new code organisation still don't produce unwanted frame creation code on a fast path. Bug: v8:7206, chromium:576312 Change-Id: Ib516ae0795ff1788b3a7e0bb521f72dfa68444f0 Reviewed-on: https://chromium-review.googlesource.com/833869 Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#50257}
-
- 19 Dec, 2017 1 commit
-
-
Clemens Hammacher authored
... or sometimes by FATAL(...) to give a better error message. The benefit of UNREACHABLE() over CHECK(false) is that the compiler knows that this macro will never return, hence we can omit the return of a dummy value afterwards. R=neis@chromium.org Change-Id: I14e6a4f1d75f1338f481bd1520d841fd383d6202 Reviewed-on: https://chromium-review.googlesource.com/832431Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#50214}
-
- 18 Dec, 2017 2 commits
-
-
Igor Sheludko authored
This CL removes LoadScriptContextFieldStub and StoreScriptContextFieldStub. Bug: v8:7206, chromium:576312 Change-Id: I217eeb726ca7d1ec85a67331da4941b9ac2a4b7a Reviewed-on: https://chromium-review.googlesource.com/831867Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#50177}
-
Igor Sheludko authored
... by "inlining" the Tuple2 object into the data handler. Bug: v8:7206, v8:5561 Change-Id: I8517b2faa8d13bd16b8ec99c7ea8ab97c73a5f2a Reviewed-on: https://chromium-review.googlesource.com/819233Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#50164}
-
- 14 Dec, 2017 5 commits
-
-
Igor Sheludko authored
Bug: v8:7206, v8:5561 Change-Id: I3b0e569ac52c889e1b1897cd98bcb7799f308ffb Reviewed-on: https://chromium-review.googlesource.com/819254 Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#50114}
-
Igor Sheludko authored
This CL also adds support for "lookup on dictionary receivers" to store ICs. Bug: v8:7206, v8:5561 Change-Id: Icebbc2d52c71f5d25b43f2f2a8adf674e4ec2cbc Reviewed-on: https://chromium-review.googlesource.com/819232 Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#50113}
-
Igor Sheludko authored
Bug: v8:7206, v8:5561 Change-Id: Ieb8bae0a245c6135d375cec0f76ce80a240391b9 Reviewed-on: https://chromium-review.googlesource.com/819290 Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#50109}
-
Igor Sheludko authored
This CL also removes LoadICProtoArray* builtins which are no longer necessary. Bug: v8:7206, v8:5561 Change-Id: Ic5d9a3d4d21c4bd5e5e1cd110bd029ced157a000 Reviewed-on: https://chromium-review.googlesource.com/819252 Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#50104}
-
Igor Sheludko authored
... instead of checking if the property cell is still empty when loading/storing through JSGlobalObject prototype. Also invalidate the validity cell when new global lexical variables appear in the script. Bug: v8:5561 Change-Id: Iaf122dffe76d57b32e2b69291dee079e772b271c Reviewed-on: https://chromium-review.googlesource.com/819230Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#50100}
-
- 13 Dec, 2017 1 commit
-
-
Igor Sheludko authored
The dispatcher is responsible for handling stores to lexical environment variables and for storing directly to the JSGlobalObject. In the latter case the dispatcher also ensures that JSGlobalProxy is provided as a receiver if a setter function has to be called. Unlike StoreIC the calling convention for the StoreGlobalIC does not include receiver. Bug: v8:7206, chromium:576312, v8:5561 Change-Id: Ifa896c7b41bf440785b757c2272ec91211e79c98 Reviewed-on: https://chromium-review.googlesource.com/818965 Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#50081}
-
- 11 Dec, 2017 1 commit
-
-
Tobias Tebbi authored
This xor can never change the number of collisions, so it should be safe to remove. Bug: Change-Id: I253c0ece422f66e7cba15b13c041cfb6c8361674 Reviewed-on: https://chromium-review.googlesource.com/809113Reviewed-by:
Igor Sheludko <ishell@chromium.org> Commit-Queue: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#49985}
-
- 08 Dec, 2017 1 commit
-
-
Camillo Bruni authored
- Introduce explicit CallXXX helpers in PropertyCallbackArguments for all Callback functions exposed in the api. - Add bit on the Interceptors for checking whether they for names or indices. Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: Id862e4e39ba75b4610156adfe83f3eecfb2c048f Reviewed-on: https://chromium-review.googlesource.com/799910 Commit-Queue: Camillo Bruni <cbruni@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#49969}
-
- 07 Dec, 2017 1 commit
-
-
Igor Sheludko authored
Bug: v8:7109 Change-Id: I9766d28998fca49b0d3e6dc9aca3cc19f0b42124 Reviewed-on: https://chromium-review.googlesource.com/809244Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#49925}
-
- 06 Dec, 2017 2 commits
-
-
Igor Sheludko authored
They will eventually be used instead of Tuple3/FixedArray by the IC system. Bug: v8:5561, v8:7159 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: I39faad1b2dc10ce7d42cb7477ea87b64d1e0b44c Reviewed-on: https://chromium-review.googlesource.com/806178 Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#49908}
-
Igor Sheludko authored
- When a global object changes, invalidate its validity cell. - The global object prototypes don't need to be gathered into an array in InitPrototypeChecks. Bug: v8:7159 Change-Id: I3621c914d08b83e49e8a391800a92eb53ba19feb Reviewed-on: https://chromium-review.googlesource.com/808588Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#49901}
-
- 05 Dec, 2017 1 commit
-
-
Marja Hölttä authored
- When a dictionary mode prototype changes, invalidate the validity cell. - The dictionary mode prototypes don't need to be gathered into an array in InitPrototypeChecks. Bug: v8:7159 Change-Id: I1c7bbaf4b20556f44df18be1463d38fa4fbabe05 Reviewed-on: https://chromium-review.googlesource.com/793732Reviewed-by:
Igor Sheludko <ishell@chromium.org> Commit-Queue: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#49857}
-
- 01 Dec, 2017 1 commit
-
-
Shiyu Zhang authored
In the special case of KeyedLoadIC, where the key is always undefined, LowerCheckEqualsInternalizedString fails and triggers deoptimization loops. It's because {exp}, which is undefined_string, does not match {val}, which is undefined_value. This patch drops the convertion from undefined_value to undefined_string for undefined key in KeyedLoadIC. It makes undefined key be able to pass LowerCheckEqualsInternalizedString and avoids the deoptimization loops. Bug: Change-Id: Ie15358e705490fb2e4907f4d37a3ef7921f74844 Reviewed-on: https://chromium-review.googlesource.com/789613 Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#49779}
-
- 29 Nov, 2017 1 commit
-
-
Georg Neis authored
Prior to this change, the exponentiation operator was rewritten by the parser to a call of the Math.pow builtin. However, Math.pow does not accept BigInt arguments, while the exponentiation operator must accept them. This CL - removes the parser's special treatment of ** and **=, treating them like any other binary op instead. - adds a TFC builtin Exponentiate that does the right thing for all inputs. - adds interpreter bytecodes Exp and ExpSmi whose handlers call the Exponentiate builtin. For simplicity, they currently always collect kAny feedback. - adds a Turbofan operator JSExponentiate with a typed-lowering to the existing NumberPow and a generic-lowering to the Exponentiate builtin. There is currently no speculative lowering. Note that exponentiation for BigInts is actually not implemented yet, so we can't yet test it. Bug: v8:6791 Change-Id: Id90914c9c3fce310ce01e715c09eaa9f294f4f8a Reviewed-on: https://chromium-review.googlesource.com/785694Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Sathya Gunasekaran <gsathya@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Mythri Alle <mythria@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#49696}
-
- 23 Nov, 2017 1 commit
-
-
Igor Sheludko authored
This simplifies handling of DescriptorArray objects in deserializer. Bug: v8:5799 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: Ie4f9c6903afd8273d6320e6b0e0b05231db6cc00 Reviewed-on: https://chromium-review.googlesource.com/785676 Commit-Queue: Igor Sheludko <ishell@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#49605}
-
- 21 Nov, 2017 1 commit
-
-
Camillo Bruni authored
Not resetting the ticks regresses optimization time without substantial performance benenfits on twitter, facebook, youtube, linkedin and wikipedia. There was no net positive effect visible otherwise. Bug: chromium:786908 Change-Id: I98237dee170e7a387f09ccfbad178793361d4a67 Reviewed-on: https://chromium-review.googlesource.com/779435Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#49516}
-
- 20 Nov, 2017 1 commit
-
-
Benedikt Meurer authored
The "array protector" now guards the Object.prototype, the Array.prototype and the String.prototype, so the name was a bit misleading nowadays. So the new name "no elements protector" was chosen. Bug: v8:6936, v8:7014, v8:7027 Change-Id: I9a9d7caa2caf0ac9e78cc6658de2f0506970dfa2 Reviewed-on: https://chromium-review.googlesource.com/778162Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Camillo Bruni <cbruni@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#49471}
-
- 18 Nov, 2017 1 commit
-
-
Camillo Bruni authored
- This precents us from logging two ICEvents for a megamorphic miss that adds a new property - We don't have to reset the profiler ticks anymore for this miss The particular case for missing to add a new property happens ~1700 times in the Speedometer Angular benchmark where we get an already internalized key as property name. Change-Id: I2362c3b7a66d9def1bc4295f6f1e64c96b25fe8a Reviewed-on: https://chromium-review.googlesource.com/777259 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#49464}
-
- 17 Nov, 2017 1 commit
-
-
Ulan Degenbaev authored
The layout descriptor helper computes the object header size using map->instance_size() and map->GetInObjectProperties(). It races with finalization of slack tracking, which changes both the instance size and the in-object properties count. This patch replaces the in-object properties count byte in the map with the byte that stores the start offset of in-object properties. The new byte can be used in the layout descriptor to compute the object header size and it is immutable. This patch also renames InstanceSize to InstanceSizeInWords where the instance size is represented in words. Bug: chromium:786069, chromium:694255 Change-Id: I4b48c6944d3fe8a950bd7b0ba43d75216b177a78 Reviewed-on: https://chromium-review.googlesource.com/776720 Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#49461}
-
- 16 Nov, 2017 1 commit
-
-
Benedikt Meurer authored
We need to explicitly rule out negative indices for the out-of-bounds case, otherwise we can end up with a monomorphic KeyedLoadIC that allows OOB accesses, but doesn't properly check whether there are properties with negative integer names on the receiver. Bug: chromium:784835 Change-Id: Ic3ef5438b76094f024de0c6348183fb62b32088c Reviewed-on: https://chromium-review.googlesource.com/774278Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#49396}
-
- 15 Nov, 2017 1 commit
-
-
Toon Verwaest authored
Bug: v8:7065 Cq-Include-Trybots: master.tryserver.v8:v8_linux_noi18n_rel_ng Change-Id: I7882b719f72561cd22b874eae239000936fad35c Reviewed-on: https://chromium-review.googlesource.com/768874 Commit-Queue: Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#49381}
-
- 14 Nov, 2017 1 commit
-
-
Toon Verwaest authored
Unaligned access is still unused, but will be necessary to load String-length once we store it as an int32 next to the hash-field. Bug: v8:7065 Change-Id: I7fa9364e062774c0a6b32e7f961031dcd30c564c Reviewed-on: https://chromium-review.googlesource.com/763349 Commit-Queue: Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#49358}
-
- 07 Nov, 2017 5 commits
-
-
Toon Verwaest authored
Thanks Igor and Jakob for the hard work to migrate ICs to data-driven handlers! This is done as of this CL. Bug: v8:5561 Change-Id: Icf1ddf0065e3aa85ac7efe4b99f74821ce3c0ac2 Reviewed-on: https://chromium-review.googlesource.com/756842 Commit-Queue: Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#49203}
-
Toon Verwaest authored
Bug: v8:5561 Change-Id: If3a44d1e40c81a764b776725c7b28ead653437b9 Reviewed-on: https://chromium-review.googlesource.com/756833 Commit-Queue: Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#49193}
-
Toon Verwaest authored
Bug: v8:5561 Change-Id: Ieb44074280fa034b4f88e630e747211d73dedb6f Reviewed-on: https://chromium-review.googlesource.com/753374Reviewed-by:
Igor Sheludko <ishell@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#49184}
-
Yang Guo authored
Use (Seeded)NumberDictionary instead. Change-Id: I426cd0a33df7d47fe4fec0c108be5632ef7c0f19 Reviewed-on: https://chromium-review.googlesource.com/756697Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#49179}
-
Yang Guo authored
This change - adds new maps for elements, global, and named dictionaries. - adds support to embed these dictionaries in the startup snapshot. - adds support to embed these dictionaries in the code cache. - refactors the rehashing logic. TBR=mstarzinger@chromium.org, ishell@chromium.org, jgruber@chromium.org Bug: v8:6593 Change-Id: I2455fe2a9cc6e93247940de99de5f124c2ada137 Reviewed-on: https://chromium-review.googlesource.com/756693Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#49167}
-
- 06 Nov, 2017 4 commits
-
-
Toon Verwaest authored
Previously StaNamedProperty and StaKeyedProperty were in a weird state where they claimed to not touch the accumulator, but actually did in case they were deopted in the middle. A frame was added in the middle to overwrite the accumulator again with the right value before returning from the setter, using a lot of complexity in the deoptimizer. This changes those instructions to be marked as writing to the accumulator (e.g., the result of the setter), and uses to manually store and reload into the accumulator the value being stored. If we want to avoid the additional bytecodes, we could make sure that bytecodes that claim to leave the accumulator alone don't deopt back to Advance/Dispatch but LoadAccumulatorWithValue/Advance/Dispatch. That's in a way similar to what happened before this CL, but I believe could be implemented much simpler. Bug: Change-Id: I4850a690ef5a30976701d0e050951faa46fd1c18 Reviewed-on: https://chromium-review.googlesource.com/753487Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#49159}
-
Adam Klein authored
This reverts commit 3877bf6f. Reason for revert: failed compilation on Win64/clang: https://build.chromium.org/p/client.v8/builders/V8%20Win64%20-%20clang/builds/9015 Original change's description: > Snapshot: support rehashing property and element dictionaries. > > This change > - adds new maps for elements, global, and named dictionaries. > - adds support to embed these dictionaries in the startup snapshot. > - adds support to embed these dictionaries in the code cache. > - refactors the rehashing logic. > > R=ishell@chromium.org, jgruber@chromium.org, mstarzinger@chromium.org > > Bug: v8:6593 > Change-Id: I8d9a7ba7145f1af4e6e15301a4d5611f07c77f33 > Reviewed-on: https://chromium-review.googlesource.com/753323 > Reviewed-by: Igor Sheludko <ishell@chromium.org> > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Commit-Queue: Yang Guo <yangguo@chromium.org> > Cr-Commit-Position: refs/heads/master@{#49155} TBR=yangguo@chromium.org,mstarzinger@chromium.org,jgruber@chromium.org,ishell@chromium.org Change-Id: I0b45d2d07da97b9a7953abf4ad24eec4ea944306 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:6593 Reviewed-on: https://chromium-review.googlesource.com/755493Reviewed-by:
Adam Klein <adamk@chromium.org> Commit-Queue: Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#49156}
-
Yang Guo authored
This change - adds new maps for elements, global, and named dictionaries. - adds support to embed these dictionaries in the startup snapshot. - adds support to embed these dictionaries in the code cache. - refactors the rehashing logic. R=ishell@chromium.org, jgruber@chromium.org, mstarzinger@chromium.org Bug: v8:6593 Change-Id: I8d9a7ba7145f1af4e6e15301a4d5611f07c77f33 Reviewed-on: https://chromium-review.googlesource.com/753323Reviewed-by:
Igor Sheludko <ishell@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#49155}
-
Toon Verwaest authored
Bug: v8:5561 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: I47b7df39e80a66449a1ebe98e30052ced2ef2bd3 Reviewed-on: https://chromium-review.googlesource.com/753326Reviewed-by:
Igor Sheludko <ishell@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#49151}
-