Closed Bug 914478 Opened 11 years ago Closed 11 years ago

30% octane-Mandreel regression on Sept 10

Categories

(Core :: JavaScript Engine, defect)

x86
All
defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla26
Tracking Status
firefox26 + fixed

People

(Reporter: Hughman, Assigned: shu)

References

Details

(Keywords: regression)

Attachments

(1 file)

Just saw the octane-Mandreel regression on AWFY of 30% for both Mac Pros. http://hg.mozilla.org/integration/mozilla-inbound/pushloghtml?fromchange=afa6f48ffe9c&tochange=9ff0b038942a I don't think bz's change is enough it cause it so I blame Bug 899139.
Blocks: 899139
There's also a 400% (!) regression on misc-bugs-847389-jpeg2000 for the same changeset. It's probably the same bug, so I don't think it's needed to file a new one, but that benchmark should be checked too after fixing this.
Status: UNCONFIRMED → NEW
Ever confirmed: true
Shu, can you take a look? Thanks!
Flags: needinfo?(shu)
There's also a 20% Kraken crypto-ccm regression.
As part of bug 909764, djvj refactored a bunch of calls to |PropertyWriteNeedsTypeBarrier|. There's a typo in |setElemTryCache| resulting in the function basically always returning. This fixes the mandreel regression, but I have no idea why, since before my patch it was always inserting a CallSetElement, which should be slower.
Assignee: general → shu
Attachment #802179 - Flags: review?(jdemooij)
Flags: needinfo?(shu)
Also, mjrosenb found out that the regression needs --parallel-ion-compile=on to reproduce.
Comment on attachment 802179 [details] [diff] [review] mandreel-regress.patch Review of attachment 802179 [details] [diff] [review]: ----------------------------------------------------------------- Good catch.
Attachment #802179 - Flags: review?(jdemooij) → review+
What's going on is that the typo would erroneously returned false and thus would've been treated as a compilation error, disabling Ion. The reason *my* patch triggered this is because |setElemTryCache| before my patch never even reached that typo'd call, due to this change: - if (!icInspect.sawDenseWrite()) + if (!icInspect.sawDenseWrite() && !icInspect.sawTypedArrayWrite()) return true; Since in these benchmarks no dense write was ever observed, |setElemTryCache| would've just returned true.
AWFY confirms this fixes the Octane-mandreel regression and is a nice win on Octane-gameboy.. The Kraken crypto-ccm regression is still there though, a bit weird because Kraken doesn't use typed arrays at all.
I'll look at crypto-ccm, weird...
Should note we're also winning a bit on jpeg2000 now.
This also improved Dromaeo-CSS by 6% or so.
Which is odd, since I doubt that uses typed arrays.
What does dromaeo-css test mainly? The only other big part of this patch was refactoring of some value-to-int logic into the macro assembler.
> What does dromaeo-css test mainly? The behavior of things like $(stuff) in jQuery for various values of stuff, and similar for other JS libraries.
(In reply to Boris Zbarsky [:bz] from comment #15) > > What does dromaeo-css test mainly? > > The behavior of things like $(stuff) in jQuery for various values of stuff, > and similar for other JS libraries. This bug fixed a bug introduced by bug 909764 which accidentally disabled all setelem ICs. Maybe that was it?
Yes, that would certainly do it. As in, it fixed bug 913752?
Blocks: 913752
(In reply to Boris Zbarsky [:bz] from comment #17) > Yes, that would certainly do it. As in, it fixed bug 913752? Well, that I can't say for sure. If dromaeo-css was the only one that regressed, then I'd guess so.
Does this look like a fix to bug 913752, djvj?
Flags: needinfo?(kvijayan)
I'm pretty sure it is. Great job in tracking this down. I was trying to track down the dromaeo-css regression but not having a lot of luck.
Flags: needinfo?(kvijayan)
Status: NEW → RESOLVED
Closed: 11 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla26
Depends on: 915495
Depends on: 917401
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: