IonMonkey: Need optimistic GVN for gaussian-blur

RESOLVED FIXED

Status

()

Core
JavaScript Engine
RESOLVED FIXED
5 years ago
5 years ago

People

(Reporter: jandem, Unassigned)

Tracking

(Blocks: 1 bug)

Firefox Tracking Flags

(Not tracked)

Details

(Reporter)

Description

5 years ago
Kraken gaussian-blur has many duplicate expressions, so it's a good CSE/GVN testcase:
--
r += squidImageData[4 * ((y + j) * width + (x + i)) + 0] * kernel[Math.abs(j)][Math.abs(i)];
g += squidImageData[4 * ((y + j) * width + (x + i)) + 1] * kernel[Math.abs(j)][Math.abs(i)];
b += squidImageData[4 * ((y + j) * width + (x + i)) + 2] * kernel[Math.abs(j)][Math.abs(i)];
a += squidImageData[4 * ((y + j) * width + (x + i)) + 3] * kernel[Math.abs(j)][Math.abs(i)];
--
For bug 723536, the default GVN mode was switched from optimistic to pessimistic. Turns out that we probably need optimistic GVN here:

IM+TI optimistic GVN : 325 ms
JM+TI                : 498 ms
IM+TI no GVN         : 507 ms
IM+TI pessimistic GVN: 522 ms
Interesting that no GVN is faster than pessimistic GVN?

Comment 2

5 years ago
(In reply to David Anderson [:dvander] from comment #1)
> Interesting that no GVN is faster than pessimistic GVN?

I would assume due to register pressure increasing.
GVN was recently turned on with the following commits:
http://hg.mozilla.org/projects/ionmonkey/rev/488290bd2644
http://hg.mozilla.org/projects/ionmonkey/rev/60def326b4d0
http://hg.mozilla.org/projects/ionmonkey/rev/1d0f999708ca
(Reporter)

Comment 4

5 years ago
Yeah, we're doing pretty well on gaussian-blur nowadays.
Status: NEW → RESOLVED
Last Resolved: 5 years ago
Resolution: --- → FIXED
You need to log in before you can comment on or make changes to this bug.