You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
We may need to confirm that these bits are still useful and in a usable state. We also need to determine what other bits the powerset domain should support and sort them by priority.
For each optimization, the value space can be partitioned into values that allow an optimization, and some sister bits that cover the cases where the optimization does not apply.
We have two hierarchies of 'fake' types so that the type-masks can be used to make distinctions within a natural type. These are will be better expressed as powerset subdomains.
JSArray has fake subclasses to model the varieties of list - each subclass permits some optimization - e.g. fixed-length lists have a .length that can be hoisted.
The powerset domain would include other JSIndexables, including some @Native classes like NodeList.
JSInt has a similar set of partioning subclasses. JSUInt31 targets bit-operation optimizations.
In addition to small non-negative integers, it would be useful to model -0.0 since the absence of -0.0 from otherwise non-negative values allows lowering to %.
I would take on the JSInt-subclass-replacement domain later than some others since the transfer functions are harder to write.
Activity
rakudrama commentedon Jun 22, 2022
For each optimization, the value space can be partitioned into values that allow an optimization, and some sister bits that cover the cases where the optimization does not apply.
We have two hierarchies of 'fake' types so that the type-masks can be used to make distinctions within a natural type. These are will be better expressed as powerset subdomains.
JSArrayhas fake subclasses to model the varieties of list - each subclass permits some optimization - e.g. fixed-length lists have a.lengththat can be hoisted.The powerset domain would include other JSIndexables, including some
@Nativeclasses likeNodeList.JSInthas a similar set of partioning subclasses.JSUInt31targets bit-operation optimizations.In addition to small non-negative integers, it would be useful to model
-0.0since the absence of-0.0from otherwise non-negative values allows lowering to%.I would take on the
JSInt-subclass-replacement domain later than some others since the transfer functions are harder to write.