Kraken Info: Difference between revisions

Line 33: Line 33:
'''Key features.'''
'''Key features.'''
The benchmark features a quadruply-nested loop.  The inner loop is dominated by array gets and some highly repetitive array index computations, including numerous calls to Math.abs().
The benchmark features a quadruply-nested loop.  The inner loop is dominated by array gets and some highly repetitive array index computations, including numerous calls to Math.abs().
Similar to imaging-desaturate, this benchmark starts with the main array holding integers, but they quickly become doubles.


'''Mozilla-specific things.'''  
'''Mozilla-specific things.'''  
Nanojit's CSE pass commons up the repetitive index computations beautifully.  Using an integer-only version of Math.abs() is easy and makes things much faster ([https://bugzilla.mozilla.org/show_bug.cgi?id=606441 bug 606441]).
Nanojit's CSE pass commons up the repetitive index computations beautifully.  Using an integer-only version of Math.abs() is easy and makes things much faster ([https://bugzilla.mozilla.org/show_bug.cgi?id=606441 bug 606441]).
Again, similar to imaging-desaturate, because the array-of-ints becomes an array-of-doubles, the tracer generates code assuming it's always an array-of-ints, and so the fragment for the inner loop frequently (about 50% of the time) side-exits to a secondary fragment.


== imaging-darkroom ==
== imaging-darkroom ==
Confirmed users
1,345

edits