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
Created attachment 53329 [details] proposed patch v1 Move the YARR JIT fallback detection from RegexJIT.cpp to RegexCompiler.cpp.
Can you provide SunSpider results too please?
Comment on attachment 53329 [details] proposed patch v1 r-, waiting on SunSpider results.
(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 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 on attachment 53329 [details] proposed patch v1 r=me
nice work!
Comment on attachment 53329 [details] proposed patch v1 Clearing flags on attachment: 53329 Committed r57608: <http://trac.webkit.org/changeset/57608>
All reviewed patches have been landed. Closing bug.