Ignore:
Timestamp:
Jul 5, 2011, 4:55:45 PM (14 years ago)
Author:
[email protected]
Message:

2011-07-05 Oliver Hunt <[email protected]>

Don't throw out compiled code repeatedly
https://bugs.webkit.org/show_bug.cgi?id=63960

Reviewed by Gavin Barraclough.

Stop throwing away all compiled code every time
we're told to do a full GC. Instead unlink all
callsites during such GC passes to maximise the
number of collectable functions, but otherwise
leave compiled functions alone.

  • API/JSBase.cpp: (JSGarbageCollect):
  • bytecode/CodeBlock.cpp: (JSC::CodeBlock::visitAggregate):
  • heap/Heap.cpp: (JSC::Heap::collectAllGarbage):
  • heap/MarkStack.h: (JSC::MarkStack::shouldUnlinkCalls): (JSC::MarkStack::setShouldUnlinkCalls):
  • runtime/JSGlobalData.cpp: (JSC::JSGlobalData::recompileAllJSFunctions): (JSC::JSGlobalData::releaseExecutableMemory):
  • runtime/RegExp.cpp: (JSC::RegExp::compile): (JSC::RegExp::invalidateCode):
  • runtime/RegExp.h:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/bytecode/CodeBlock.cpp

    r90371 r90415  
    15371537        visitor.append(&m_functionDecls[i]);
    15381538#if ENABLE(JIT)
     1539    if (visitor.shouldUnlinkCalls())
     1540        unlinkCalls();
    15391541    for (unsigned i = 0; i < numberOfCallLinkInfos(); ++i)
    15401542        if (callLinkInfo(i).isLinked())
Note: See TracChangeset for help on using the changeset viewer.