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?

(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

Yeah, we're doing pretty well on gaussian-blur nowadays.