-
leszeks authored
The value numbering reducer has collision checks for nodes that mutated, but kept the same hash, and are now equivalent to another node. However, it can also accidentally hit itself, if it mutated, changed hash, but ran over the location it was previously in. After this patch, it checks to see if it is comparing against itself, and skips over itself. Additionally, if this check is at the end of the collisions, it opportunistically removes the duplicate entry and reduces the size pressure on the list. We can do the same opportunistic clean up if we happen to find a colliding equivalent entry, since we move it from its original position to a new one. Drive-by change: Ensure that the collision replacement checks types in the same way that normal replacement does. Review-Url: https://codereview.chromium.org/2475653002 Cr-Commit-Position: refs/heads/master@{#40757}
b7761100