Changeset 37763 in webkit for trunk/JavaScriptCore


Ignore:
Timestamp:
Oct 21, 2008, 2:29:31 PM (17 years ago)
Author:
Darin Adler
Message:

2008-10-21 Darin Adler <Darin Adler>

Reviewed by Maciej Stachowiak.

  • convert post-increment to pre-increment in a couple more places for speed

Speeds up V8 benchmarks a little on most computers. (But, strangely, slows
them down a little on my computer.)

  • kjs/nodes.cpp: (JSC::statementListEmitCode): Removed default argument, since we always want to specify this explicitly. (JSC::ForNode::emitCode): Tolerate ignoredResult() as the dst -- means the same thing as 0. (JSC::ReturnNode::emitCode): Ditto. (JSC::ThrowNode::emitCode): Ditto. (JSC::FunctionBodyNode::emitCode): Pass ignoredResult() so that we know we don't have to compute the result of function statements.
Location:
trunk/JavaScriptCore
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/ChangeLog

    r37762 r37763  
     12008-10-21  Darin Adler  <[email protected]>
     2
     3        Reviewed by Maciej Stachowiak.
     4
     5        - convert post-increment to pre-increment in a couple more places for speed
     6
     7        Speeds up V8 benchmarks a little on most computers. (But, strangely, slows
     8        them down a little on my computer.)
     9
     10        * kjs/nodes.cpp:
     11        (JSC::statementListEmitCode): Removed default argument, since we always want
     12        to specify this explicitly.
     13        (JSC::ForNode::emitCode): Tolerate ignoredResult() as the dst -- means the
     14        same thing as 0.
     15        (JSC::ReturnNode::emitCode): Ditto.
     16        (JSC::ThrowNode::emitCode): Ditto.
     17        (JSC::FunctionBodyNode::emitCode): Pass ignoredResult() so that we know we
     18        don't have to compute the result of function statements.
     19
    1202008-10-21  Peter Kasting  <[email protected]>
    221
  • trunk/JavaScriptCore/kjs/nodes.cpp

    r37681 r37763  
    10581058// ------------------------------ Helper functions for handling Vectors of StatementNode -------------------------------
    10591059
    1060 static inline RegisterID* statementListEmitCode(StatementVector& statements, CodeGenerator& generator, RegisterID* dst = 0)
     1060static inline RegisterID* statementListEmitCode(StatementVector& statements, CodeGenerator& generator, RegisterID* dst)
    10611061{
    10621062    StatementVector::iterator end = statements.end();
     
    12281228RegisterID* ForNode::emitCode(CodeGenerator& generator, RegisterID* dst)
    12291229{
     1230    if (dst == ignoredResult())
     1231        dst = 0;
     1232
    12301233    generator.emitDebugHook(WillExecuteStatement, firstLine(), lastLine());
    12311234
     
    14081411    if (generator.codeType() != FunctionCode)
    14091412        return emitThrowError(generator, SyntaxError, "Invalid return statement.");
    1410        
     1413
     1414    if (dst == ignoredResult())
     1415        dst = 0;
    14111416    RegisterID* r0 = m_value ? generator.emitNode(dst, m_value.get()) : generator.emitLoad(dst, jsUndefined());
    14121417    if (generator.scopeDepth()) {
     
    16131618RegisterID* ThrowNode::emitCode(CodeGenerator& generator, RegisterID* dst)
    16141619{
     1620    if (dst == ignoredResult())
     1621        dst = 0;
    16151622    RefPtr<RegisterID> expr = generator.emitNode(dst, m_expr.get());
    16161623    generator.emitExpressionInfo(m_divot, m_startOffset, m_endOffset);
     
    18091816{
    18101817    generator.emitDebugHook(DidEnterCallFrame, firstLine(), lastLine());
    1811     statementListEmitCode(m_children, generator);
     1818    statementListEmitCode(m_children, generator, ignoredResult());
    18121819    if (!m_children.size() || !m_children.last()->isReturnNode()) {
    18131820        RegisterID* r0 = generator.emitLoad(0, jsUndefined());
Note: See TracChangeset for help on using the changeset viewer.