As long as a map is stable, no object with this map has changed map, which
is a very useful property especially for optimized code. To be able to
exploit this in optimized code, transitioning from a previously stable map
will invalidate and deoptimize all optimized code that made use of the map
being stable up to this point.

- Tobias

On Tue, Dec 31, 2019 at 7:07 PM <janngodsp...@gmail.com> wrote:

> Thanks!
>
> What is the point of marking a map as stable? If there was a normalization
> isn't a new map created? So if types can't get mixed up after
> normalization, what is the point of marking a map as stable?
>
> - Jann
>
> On Tuesday, December 31, 2019 at 1:33:36 AM UTC-6, Leszek Swirski wrote:
>>
>> Hi,
>>
>> A stable map is one from which a transition has never been observed, i.e.
>> it's the leaf of the transition tree and objects with that map can be
>> assumed to be "stable". Perhaps "is_leaf" or "never_transitioned_away_from"
>> could be alternative names but it's a subtle concept to name and naming is
>> hard anyway :)
>>
>> In the code you linked, I'm not 100% familiar with the reasoning but I
>> assume that the compiler assumes that inferred stable maps are a "safe bet"
>> as far as speculation is concerned, since they're a reliable end state, and
>> can be assumed to be a correct inference even if the data is unreliable.
>> That's mostly just a guess from the context though.
>>
>> - Leszek
>>
>> On Tue, 31 Dec 2019, 05:46 , <janngo...@gmail.com> wrote:
>>
>>> What is the difference between a stable and unstable map?
>>>
>>> Context: I'm trying to understand this line of code
>>> https://cs.chromium.org/chromium/src/v8/src/compiler/js-native-context-specialization.cc?l=3227&rcl=4c53f9a51444393133ff303952f1296603d44ab7
>>> but can't seem to find any documentation about stable maps. Comments and
>>> diffs are sparse on the subject as well.
>>>
>>> --
>>> --
>>> v8-dev mailing list
>>> v8-...@googlegroups.com
>>> http://groups.google.com/group/v8-dev
>>> ---
>>> You received this message because you are subscribed to the Google
>>> Groups "v8-dev" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to v8-...@googlegroups.com.
>>> To view this discussion on the web visit
>>> https://groups.google.com/d/msgid/v8-dev/d8383180-787c-4bac-8ac3-d9295d400b2c%40googlegroups.com
>>> <https://groups.google.com/d/msgid/v8-dev/d8383180-787c-4bac-8ac3-d9295d400b2c%40googlegroups.com?utm_medium=email&utm_source=footer>
>>> .
>>>
>> --
> --
> v8-dev mailing list
> v8-dev@googlegroups.com
> http://groups.google.com/group/v8-dev
> ---
> You received this message because you are subscribed to the Google Groups
> "v8-dev" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to v8-dev+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/v8-dev/b2064f2a-93ea-4354-ac53-150a8eb56f68%40googlegroups.com
> <https://groups.google.com/d/msgid/v8-dev/b2064f2a-93ea-4354-ac53-150a8eb56f68%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
>

-- 
-- 
v8-dev mailing list
v8-dev@googlegroups.com
http://groups.google.com/group/v8-dev
--- 
You received this message because you are subscribed to the Google Groups 
"v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to v8-dev+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/v8-dev/CAN54oN7ViJc_KU9n%2BUxdGTG0bVvKUxwoN0WHgdS-qkK_3eOQRg%40mail.gmail.com.

Reply via email to