Reviewers: Vyacheslav Egorov,

Description:
Optimize code flushing by using mark bit on code objects.

This changes the way we do code flushing during GC by NOT marking code
objects that can be flushed during the marking phase. When sweeping,
we then simply change the code object to the lazy compile stub if the
code object is not marked.

Because we visit all live function and shared function info objects
during marking we will never flush any code that belongs to a function
or a shared function info which is non-flushable. In addition, we are
always guaranteed to flush the code from all function and shared
function info objects that has a pointer to a code object that is not
marked.

I will consider making an additional change that stores the static
part of the informtion in shared function info objects as a bit (i.e.,
all the information available a creation time that we also test in
IsFlushable could be stored as a single bit).



Please review this at http://codereview.chromium.org/3450017/show

SVN Base: http://v8.googlecode.com/svn/branches/bleeding_edge/

Affected files:
  M     src/mark-compact.h
  M     src/mark-compact.cc


--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev

Reply via email to