Please take another look.

After testing on a few popular websites, I did the following changes:

- instead of maintaining the dependent IC stubs in the dependent code array, I use the next_code_link field of a stub (which was unused before) to chain the stubs together in a linked list. The reason for this is that there are maps with tens of thousands dependent IC stubs which makes the overhead of the dependent
code array too large.

- the head of the list is stored as a separate weak field in the Map. I
considered storing it as an element of the dependent code array, but there are many Maps that have dependent IC stubs but do not have dependent code array, so
the memory overhead is the same in both cases.

- I added two flags to IC stubs: is_weak_stub and is_invalidated_weak_stub. This
makes sure that we only treat a map weakly after the stub was added to the
dependent IC list of the map.



https://codereview.chromium.org/188783003/diff/180001/src/objects-visiting.cc
File src/objects-visiting.cc (right):

https://codereview.chromium.org/188783003/diff/180001/src/objects-visiting.cc#newcode215
src/objects-visiting.cc:215: template <class T>
Code from here to the end of file comes from heap.cc without any change.

https://codereview.chromium.org/188783003/

--
--
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.
For more options, visit https://groups.google.com/d/optout.

Reply via email to