Description[turbofan] Fixed reuse of nested ObjectState in escape analysis
The problem is that writes to nested objects do not lead to a copy of a referencing VirtualObject, and that each VirtualObjects maintains a cache of an ObjectState node. Together, this leads to inappropriate reuse of ObjectState nodes.
This fix simply always copies all virtual objects when a new VirtualState is created. This is clearly not optimal to avoid clones, but determining precisely which virtual objects are affected by a write is a transitive closure computation on the virtual objects of a virtual state. Alternatively, one could change the semantics of the node cache.
BUG=v8:5611
Committed: https://crrev.com/288d38127a953eb43f0175637ac16d3c371c1422
Cr-Commit-Position: refs/heads/master@{#40854}
Patch Set 1 #
Messages
Total messages: 10 (5 generated)
|