WebKit Bugzilla
New
Browse
Log In
×
Sign in with GitHub
or
Remember my login
Create Account
·
Forgot Password
Forgotten password account recovery
NEW
125950
REGRESSION(
r157480
): ~8% on Dromaeo/jslib-style-prototype and ~3% on jslib-modify-prototype
https://bugs.webkit.org/show_bug.cgi?id=125950
Summary
REGRESSION(r157480): ~8% on Dromaeo/jslib-style-prototype and ~3% on jslib-mo...
Ryosuke Niwa
Reported
2013-12-18 14:07:27 PST
https://perf.webkit.org/#mode=charts&chartList=%5B%5B%22mac-lion%22%2C%22Dromaeo%2Fjslib-modify-prototype%3ARuns%22%5D%2C%5B%22mac-mountainlion%22%2C%22Dromaeo%2Fjslib-modify-prototype%3ARuns%22%5D%5D&days=168&zoom=%5B1381602895786.1099%2C1382081401306.1758%5D
WebKit:
http://trac.webkit.org/log/?rev=157480&stop_rev=157479&verbose=on
Attachments
A/B test result
(25.76 KB, text/html)
2013-12-20 19:58 PST
,
Ryosuke Niwa
no flags
Details
View All
Add attachment
proposed patch, testcase, etc.
Ryosuke Niwa
Comment 1
2013-12-18 14:23:03 PST
Also regressed jslib-style-prototype by 7-11%:
https://perf.webkit.org/#mode=charts&chartList=%5B%5B%22mac-mountainlion%22%2C%22Dromaeo%2Fjslib-style-prototype%3ARuns%22%5D%2C%5B%22mac-lion%22%2C%22Dromaeo%2Fjslib-style-prototype%3ARuns%22%5D%5D&days=227&zoom=%5B1381603911466.8372%2C1382407158427.6333%5D
Radar WebKit Bug Importer
Comment 2
2013-12-20 13:12:13 PST
<
rdar://problem/15711021
>
Ryosuke Niwa
Comment 3
2013-12-20 19:58:07 PST
Created
attachment 219833
[details]
A/B test result
Ryosuke Niwa
Comment 4
2013-12-20 20:01:19 PST
This regression is caused by
http://trac.webkit.org/changeset/157480
. Maybe we can improve elsewhere to compensate the effect? It seems unfortunate not being able to share the code between baseline JIT and DFG JIT.
Filip Pizlo
Comment 5
2013-12-20 20:07:23 PST
(In reply to
comment #4
)
> This regression is caused by
http://trac.webkit.org/changeset/157480
.
Oh! That's great news! Previously we had two completely separate implementations of inline caching (IC): the baseline JIT version and the DFG version. In many ways, the DFG version was better (cleaner implementation, somewhat more complete) but in other ways the baseline version was more complete (it had more performance hacks). This patch killed the baseline version because we all sort of agreed that it was no longer maintainable. This regression tells us that there were some performance hacks in the baseline JIT IC that apparently the DFG IC doesn't yet have. We know that there was a finite set of things that the baseline JIT IC did that the DFG JIT IC didn't do, so we can either: - Go through that set of optimizations and implement each of them in the DFG JIT IC. - Check out
r157479
and selectively turn off different baseline JIT IC optimizations to figure out which one these benchmarks love so much.
> > Maybe we can improve elsewhere to compensate the effect?
We can probably do that, but we could also just add whatever performance hack the Baseline JIT IC had that to the DFG JIT IC.
> It seems unfortunate not being able to share the code between baseline JIT and DFG JIT.
There's no fundamental problem with the DFG JIT IC - it's just newer code that doesn't have all of the same optimization hacks that the 5-year-old baseline JIT IC had. We thought that the DFG JIT IC had enough hacks to perform well on benchmarks but I guess we were wrong. Now it's just a matter of figuring out which gnarly path through the baseline JIT IC code was so beneficial to these benchmarks. Then it'll probably take no more than a 10KB patch to add that same stuff to the DFG JIT IC.
Ryosuke Niwa
Comment 6
2014-01-21 20:51:10 PST
This appears to be also affecting DoYouEvenBench by ~1%.
Note
You need to
log in
before you can comment on or make changes to this bug.
Top of Page
Format For Printing
XML
Clone This Bug