Bug 37571 - Do YARR JIT fallback earlier than the JIT code generation
Summary: Do YARR JIT fallback earlier than the JIT code generation
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: JavaScriptCore (show other bugs)
Version: 528+ (Nightly build)
Hardware: All All
: P2 Normal
Assignee: Nobody
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-04-14 07:12 PDT by Peter Varga
Modified: 2010-04-14 14:38 PDT (History)
6 users (show)

See Also:


Attachments
proposed patch v1 (6.43 KB, patch)
2010-04-14 07:16 PDT, Peter Varga
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Peter Varga 2010-04-14 07:12:40 PDT
Now the detection of the YARR JIT fallback to pcre happens during the JIT code generation phase.
It can be done earlier in the YARR compiler phase. Thus the unnecessary code generation can be avoided in the fallback cases.

This modification improve performance to YARR JIT when it does fallback.
The WindScorpion's email.js regexp performance test run 1.26x as fast (3463.2ms +/- 0.4% -> 2754.4ms +/-0.4%).

You download our benchmark suit from this link: http://www.sed.hu/webkit/?page=downloads&dl=windscorpion.zip
Comment 1 Peter Varga 2010-04-14 07:16:47 PDT
Created attachment 53329 [details]
proposed patch v1

Move the YARR JIT fallback detection from RegexJIT.cpp to RegexCompiler.cpp.
Comment 2 Geoffrey Garen 2010-04-14 09:25:49 PDT
Can you provide SunSpider results too please?
Comment 3 Geoffrey Garen 2010-04-14 09:26:12 PDT
Comment on attachment 53329 [details]
proposed patch v1

r-, waiting on SunSpider results.
Comment 4 Andras Becsi 2010-04-14 09:33:58 PDT
(In reply to comment #2)
> Can you provide SunSpider results too please?
I do not think SunSpider has tests where this fallback occures, so the gain won't show there, but let's test.
Comment 5 Csaba Osztrogonác 2010-04-14 09:55:51 PDT
Comment on attachment 53329 [details]
proposed patch v1

SunSpider result: 642.5ms +/- 0.6% -> 639.6ms +/- 0.3%
V8 result: 3432.1ms +/- 0.4% -> 3442.6ms +/- 0.2%

There are no gains on SunSpider and on V8 as we expected, 
so I marked the patch with r? flag to wait for review.
Comment 6 Geoffrey Garen 2010-04-14 10:11:08 PDT
Comment on attachment 53329 [details]
proposed patch v1

r=me
Comment 7 Zoltan Herczeg 2010-04-14 11:10:00 PDT
nice work!
Comment 8 WebKit Commit Bot 2010-04-14 14:38:52 PDT
Comment on attachment 53329 [details]
proposed patch v1

Clearing flags on attachment: 53329

Committed r57608: <http://trac.webkit.org/changeset/57608>
Comment 9 WebKit Commit Bot 2010-04-14 14:38:58 PDT
All reviewed patches have been landed.  Closing bug.