Changeset 38745 in webkit for trunk/JavaScriptCore/wrec/WREC.cpp


Ignore:
Timestamp:
Nov 24, 2008, 10:10:17 PM (17 years ago)
Author:
[email protected]
Message:

2008-11-24 Geoffrey Garen <[email protected]>

Reviewed by Sam Weinig.


Unroll the regexp matching loop by 1. 10% speedup on simple matching
stress test. No change on SunSpider.


(I decided not to unroll to arbitrary levels because the returns diminsh
quickly.)

  • wrec/WREC.cpp: (JSC::WREC::compileRegExp):
  • wrec/WRECGenerator.cpp: (JSC::WREC::Generator::generateJumpIfEndOfInput): (JSC::WREC::Generator::generateJumpIfNotEndOfInput):
  • wrec/WRECGenerator.h:
  • wrec/WRECParser.h: (JSC::WREC::Parser::error): (JSC::WREC::Parser::parsePattern):
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/JavaScriptCore/wrec/WREC.cpp

    r38669 r38745  
    6060
    6161    Generator::JmpDst beginPattern = __ label();
    62     if (!parser.parsePattern(failures)) {
    63         *error_ptr = "Regular expression malformed.";
    64         return 0;
    65     }
     62    parser.parsePattern(failures);
    6663    generator.generateReturnSuccess();
    6764
    6865    __ link(failures, __ label());
    6966    generator.generateIncrementIndex();
    70     generator.generateLoopIfNotEndOfInput(beginPattern);
     67    generator.generateJumpIfEndOfInput(failures);
     68    parser.parsePattern(failures);
     69    generator.generateReturnSuccess();
     70
     71    __ link(failures, __ label());
     72    generator.generateIncrementIndex();
     73    generator.generateJumpIfNotEndOfInput(beginPattern);
    7174    generator.generateReturnFailure();
     75
     76    if (parser.error()) {
     77        *error_ptr = "Regular expression malformed.";
     78        return 0;
     79    }
    7280
    7381    *numSubpatterns_ptr = parser.numSubpatterns();
Note: See TracChangeset for help on using the changeset viewer.