Bug 37571

Summary: Do YARR JIT fallback earlier than the JIT code generation
Product: WebKit Reporter: Peter Varga <pvarga>
Component: JavaScriptCoreAssignee: Nobody <webkit-unassigned>
Severity: Normal CC: abecsi, barraclough, commit-queue, ggaren, ossy, zherczeg
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: All   
OS: All   
Description Flags
proposed patch v1 none

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

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.