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
