Ignore:
Timestamp:
Oct 19, 2011, 12:45:35 PM (14 years ago)
Author:
[email protected]
Message:

Some rope cleanup following r97827
https://bugs.webkit.org/show_bug.cgi?id=70398

Reviewed by Oliver Hunt.

9% speedup on date-format-xparb, neutral overall.

  • Removed RopeImpl*.
  • Removed JSString::m_fiberCount, since this can be deduced from other data.
  • Renamed a jsString() variant to jsStringFromArguments for clarity.
  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileGetCharCodeAt):
(JSC::DFG::SpeculativeJIT::compileGetByValOnString):

  • jit/JITInlineMethods.h:

(JSC::JIT::emitLoadCharacterString):

  • jit/JITPropertyAccess.cpp:

(JSC::JIT::stringGetByValStubGenerator):

  • jit/JITPropertyAccess32_64.cpp:

(JSC::JIT::stringGetByValStubGenerator):

  • jit/SpecializedThunkJIT.h:

(JSC::SpecializedThunkJIT::loadJSStringArgument):

  • jit/ThunkGenerators.cpp:

(JSC::stringCharLoad): Use a NULL m_value to signal rope-iness, instead
of testing m_fiberCount, since m_fiberCount is gone now.

  • runtime/JSString.cpp:

(JSC::JSString::RopeBuilder::expand):
(JSC::JSString::visitChildren):
(JSC::JSString::resolveRope):
(JSC::JSString::resolveRopeSlowCase):
(JSC::JSString::outOfMemory): Use a NULL fiber to indicate "last fiber
in the vector" instead of testing m_fiberCount, since m_fiberCount is gone now.

  • runtime/JSString.h:

(JSC::RopeBuilder::JSString):
(JSC::RopeBuilder::finishCreation):
(JSC::RopeBuilder::offsetOfLength):
(JSC::RopeBuilder::isRope):
(JSC::RopeBuilder::string): Removed m_fiberCount. Renamed
jsString => jsStringFromArguments for clarity.

  • runtime/Operations.h:

(JSC::jsStringFromArguments): Renamed.

  • runtime/RopeImpl.cpp: Removed.
  • runtime/RopeImpl.h: Removed.
  • runtime/SmallStrings.cpp:

(JSC::SmallStrings::createEmptyString): Switched to StringImpl::empty,
which is slightly faster.

  • runtime/StringPrototype.cpp:

(JSC::stringProtoFuncConcat): Updated for rename.

  • wtf/text/StringImplBase.h:

(WTF::StringImplBase::StringImplBase): Removed the concept of an invalid
StringImpl, since this was only used by RopeImpl, which is now gone.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/JavaScriptCore/jit/SpecializedThunkJIT.h

    r95901 r97872  
    6262            loadCellArgument(argument, dst);
    6363            m_failures.append(branchPtr(NotEqual, Address(dst, 0), TrustedImmPtr(m_globalData->jsStringVPtr)));
    64             m_failures.append(branchTest32(NonZero, Address(dst, OBJECT_OFFSETOF(JSString, m_fiberCount))));
    6564        }
    6665       
Note: See TracChangeset for help on using the changeset viewer.