Changeset 91869 in webkit


Ignore:
Timestamp:
Jul 27, 2011 2:44:49 PM (13 years ago)
Author:
Stephanie Lewis
Message:

Revert http://trac.webkit.org/changeset/90415.
Caused a 5% sunspider regression in-browser.

Unreviewed rollout.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::visitAggregate):

  • heap/Heap.cpp:

(JSC::Heap::collectAllGarbage):

  • heap/MarkStack.h:

(JSC::MarkStack::MarkStack):

  • runtime/JSGlobalData.cpp:

(JSC::JSGlobalData::releaseExecutableMemory):

  • runtime/RegExp.cpp:

(JSC::RegExp::compile):
(JSC::RegExp::invalidateCode):

  • runtime/RegExp.h:
Location:
trunk/Source/JavaScriptCore
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/ChangeLog

    r91837 r91869  
     12011-07-27  Stephanie Lewis  <slewis@apple.com>
     2
     3        Revert http://trac.webkit.org/changeset/90415.
     4        Caused a 5% sunspider regression in-browser.
     5
     6        Unreviewed rollout.
     7
     8        * bytecode/CodeBlock.cpp:
     9        (JSC::CodeBlock::visitAggregate):
     10        * heap/Heap.cpp:
     11        (JSC::Heap::collectAllGarbage):
     12        * heap/MarkStack.h:
     13        (JSC::MarkStack::MarkStack):
     14        * runtime/JSGlobalData.cpp:
     15        (JSC::JSGlobalData::releaseExecutableMemory):
     16        * runtime/RegExp.cpp:
     17        (JSC::RegExp::compile):
     18        (JSC::RegExp::invalidateCode):
     19        * runtime/RegExp.h:
     20
    1212011-07-27  Shinya Kawanaka  <shinyak@google.com>
    222
  • trunk/Source/JavaScriptCore/bytecode/CodeBlock.cpp

    r91706 r91869  
    15471547        visitor.append(&m_functionDecls[i]);
    15481548#if ENABLE(JIT)
    1549     if (visitor.shouldUnlinkCalls())
    1550         unlinkCalls();
    15511549    for (unsigned i = 0; i < numberOfCallLinkInfos(); ++i)
    15521550        if (callLinkInfo(i).isLinked())
  • trunk/Source/JavaScriptCore/heap/Heap.cpp

    r91039 r91869  
    540540    if (!m_isSafeToCollect)
    541541        return;
    542     m_slotVisitor.setShouldUnlinkCalls(true);
     542    if (!m_globalData->dynamicGlobalObject)
     543        m_globalData->recompileAllJSFunctions();
     544
    543545    collect(DoSweep);
    544     m_slotVisitor.setShouldUnlinkCalls(false);
    545546}
    546547
  • trunk/Source/JavaScriptCore/heap/MarkStack.h

    r90421 r91869  
    9898        void reset();
    9999
    100         bool shouldUnlinkCalls() const { return m_shouldUnlinkCalls; }
    101         void setShouldUnlinkCalls(bool shouldUnlinkCalls) { m_shouldUnlinkCalls = shouldUnlinkCalls; }
    102 
    103100    protected:
    104101#if ENABLE(GC_VALIDATION)
     
    124121        bool m_isDraining;
    125122#endif
    126 
    127     private:
    128         bool m_shouldUnlinkCalls;
    129123    };
    130124
     
    135129        , m_isDraining(false)
    136130#endif
    137         , m_shouldUnlinkCalls(false)
    138131    {
    139132    }
  • trunk/Source/JavaScriptCore/runtime/JSGlobalData.cpp

    r91199 r91869  
    498498        }
    499499        heap.forEachCell<StackPreservingRecompiler>(recompiler);
    500     } else
    501         recompileAllJSFunctions();
    502 
     500    }
    503501    m_regExpCache->invalidateCode();
    504502    heap.collectAllGarbage();
  • trunk/Source/JavaScriptCore/runtime/RegExp.cpp

    r91194 r91869  
    114114    ASSERT(m_state == NotCompiled);
    115115    m_representation = adoptPtr(new RegExpRepresentation);
    116     m_state = Compiling;
    117116    Yarr::YarrPattern pattern(m_patternString, ignoreCase(), multiline(), &m_constructionError);
    118117    if (m_constructionError) {
     
    125124
    126125    ASSERT(m_numSubpatterns == pattern.m_numSubpatterns);
     126
     127    m_state = ByteCode;
    127128
    128129#if ENABLE(YARR_JIT)
     
    144145
    145146    m_representation->m_regExpBytecode = Yarr::byteCompile(pattern, &globalData->m_regExpAllocator);
    146 
    147     m_state = ByteCode;
    148147}
    149148
     
    206205void RegExp::invalidateCode()
    207206{
    208     if (!m_representation || m_state == Compiling)
     207    if (!m_representation)
    209208        return;
    210209    m_state = NotCompiled;
  • trunk/Source/JavaScriptCore/runtime/RegExp.h

    r91194 r91869  
    8484            JITCode,
    8585            ByteCode,
    86             NotCompiled,
    87             Compiling
     86            NotCompiled
    8887        } m_state;
    8988
Note: See TracChangeset for help on using the changeset viewer.