Bug 95953

Summary: Regressions on 32-bit platforms with revisions 125637 and 126387
Product: WebKit Reporter: Yuqiang Xian <yuqiang.xian>
Component: JavaScriptCoreAssignee: Nobody <webkit-unassigned>
Status: RESOLVED FIXED    
Severity: Normal CC: barraclough, fpizlo, webkit.review.bot
Priority: P2    
Version: 528+ (Nightly build)   
Hardware: Unspecified   
OS: Unspecified   
Attachments:
Description Flags
patch
none
Performance result (32bit) none

Description Yuqiang Xian 2012-09-06 02:01:17 PDT
Take a look at awfy.com (http://arewefastyet.com/?runs=1000&view=regress&machine=11), there are two obvious performance regressions.

The root cause is related to r125637, and it's further exposed in r126387. It's a typo in the baseline JIT compiler for op_get_by_val which causes the baseline JIT incorrectly falls back to the slow case. The value profiler knows the fact that the operation goes to the slow path, the DFG compiler then thinks it might clobber the world and the high level optimizations especially the local CSE are affected greatly.

The fix should recover both regressions. My local test indicates 5% on SunSpider, 2% on v8 and 23% on Kraken.

Patch forthcoming.
Comment 1 Yuqiang Xian 2012-09-06 02:08:51 PDT
Created attachment 162453 [details]
patch
Comment 2 Yuqiang Xian 2012-09-06 02:11:23 PDT
Created attachment 162454 [details]
Performance result (32bit)
Comment 3 WebKit Review Bot 2012-09-06 12:53:50 PDT
Comment on attachment 162453 [details]
patch

Clearing flags on attachment: 162453

Committed r127778: <http://trac.webkit.org/changeset/127778>
Comment 4 WebKit Review Bot 2012-09-06 12:53:53 PDT
All reviewed patches have been landed.  Closing bug.