As far as I can tell this only affects a few microbenchmarks in sunspider, which are buggy. They are buggy in the sense that they want to use local variables for computation, but "forget" to put var in front of the variable name. E.g., "var
a1 = a2 = a3 = ..." makes a1 local, but a2, a3, ... global.

It affects them since now we need a write barrier. However, in all those
micro-benchmarks we store numbers. Representation tracking for globals will
allow us to avoid both the write barrier and the double allocation in
Crankshaft, hopefully restoring (and perhaps even improving beyond original)
performance.

The reason for removal was that it's just an extra source of fragmentation, and causes extra GC overhead (splay actually improved slightly when I removed it). The only cost is the write barrier, but "proper code" shouldn't write to globals
so frequently anyway. (It isn't measurable outside of sunspider.)

The reason why I disinherited PropertyCell from Cell is that they have nothing to do with each other, apart from the fact that they both contain a value-field. Both used to omit write-barriers, but now PropertyCell doesn't anymore. Putting them in the same hierarchy became dangerous, as Dan noted in his comment on this
CL.

https://codereview.chromium.org/1016803002/

--
--
v8-dev mailing list
[email protected]
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 [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to