Reviewed by John.
authormjs <mjs@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 12 Apr 2005 22:18:35 +0000 (22:18 +0000)
committermjs <mjs@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Tue, 12 Apr 2005 22:18:35 +0000 (22:18 +0000)
commit20d145e087df462c3020938ded724f99d9656639
tree6494f2a500300a6cc864a2ca5c775e0bce0fc2a5
parentdd5b473891a3e6ee22e784d032b2a4787418ce49
    Reviewed by John.

<rdar://problem/4086819> Avoid using protect count hash table so much for 5.6% JS iBench speedup

- Avoid using protected values hash for the two most common cases
- Bump up ListImp high water mark, new testing shows 508 ListImps are
created during JS iBench.

Net result is a 5.6% speedup on JavaScript iBench

        * kjs/collector.cpp:
        (KJS::Collector::collect): mark protected lists as appropriate.
        * kjs/context.h:
        * kjs/list.cpp:
        (KJS::ListImp::markValues): Moved implementation from List::markValues
        (KJS::List::markProtectedLists): Implemented - scan pool and overflow
list.
        (KJS::allocateListImp): link lists outside the pool into a separate
doubly linked list to be able to mark protected lists
        (KJS::deallocateListImp): do the corresponding delinking
        (KJS::List::derefValues): do nothing in conservative GC mode
        (KJS::List::refValues): do nothing in conservative GC mode
        (KJS::List::markValues): call ListImp version
        (KJS::List::append):
        * kjs/list.h:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@9003 268f45cc-cd09-0410-ab3c-d52691b4dbfc
JavaScriptCore/ChangeLog
JavaScriptCore/kjs/collector.cpp
JavaScriptCore/kjs/context.h
JavaScriptCore/kjs/list.cpp
JavaScriptCore/kjs/list.h