[Webkit-unassigned] [Bug 15607] New: Add float/double specific versions of getUInt32() for a 6% speedup in SunSpider

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Mon Oct 22 00:41:52 PDT 2007


http://bugs.webkit.org/show_bug.cgi?id=15607

           Summary: Add float/double specific versions of getUInt32() for a
                    6% speedup in SunSpider
           Product: WebKit
           Version: 522+ (nightly)
          Platform: Macintosh
        OS/Version: Mac OS X 10.4
            Status: NEW
          Severity: Normal
          Priority: P2
         Component: JavaScriptCore
        AssignedTo: webkit-unassigned at lists.webkit.org
        ReportedBy: eric at webkit.org


Add float/double specific versions of getUInt32() for a 6% speedup in SunSpider

This patch pushes the getUInt32() logic down into JSImmediate (into the
FPBitValues structs) to avoid unnecessary double/float conversions on 32bit
machines.  This resulted in a 6% overall speedup on SunSpider, with a 22%
speedup for bitops tests.

Before this patch:
========================================
RESULTS (means and 95% confidence intervals)
----------------------------------------
Total:                  6546.6ms [ +/- 4.13ms | +/- 0.06% ]
----------------------------------------
  3d:                   1251.4ms [ +/- 1.97ms | +/- 0.16% ]
    cube:                430.6ms [ +/- 1.19ms | +/- 0.28% ]
    morph:               486.0ms [ +/- 1.36ms | +/- 0.28% ]
    raytrace:            334.8ms [ +/- 0.35ms | +/- 0.10% ]
  access:                490.2ms [ +/- 3.97ms | +/- 0.81% ]
    binary-trees:        141.2ms [ +/- 2.44ms | +/- 1.73% ]
    nsieve:              349.0ms [ +/- 3.14ms | +/- 0.90% ]
  bitops:               1682.2ms [ +/- 3.74ms | +/- 0.22% ]
    3bit-bits-in-byte:   347.8ms [ +/- 0.66ms | +/- 0.19% ]
    bits-in-byte:        449.8ms [ +/- 1.02ms | +/- 0.23% ]
    bitwise-and:         334.2ms [ +/- 4.31ms | +/- 1.29% ]
    nsieve-bits:         550.4ms [ +/- 1.19ms | +/- 0.22% ]
  crypto:                823.0ms [ +/- 3.28ms | +/- 0.40% ]
    aes:                 238.2ms [ +/- 0.35ms | +/- 0.15% ]
    md5:                 297.8ms [ +/- 1.16ms | +/- 0.39% ]
    sha1:                287.0ms [ +/- 1.92ms | +/- 0.67% ]
  math:                 1138.6ms [ +/- 0.70ms | +/- 0.06% ]
    cordic:              613.0ms [ +/- 0.78ms | +/- 0.13% ]
    partial-sums:        263.4ms [ +/- 0.70ms | +/- 0.27% ]
    spectral-norm:       262.2ms [ +/- 0.35ms | +/- 0.13% ]
  string:               1161.2ms [ +/- 1.02ms | +/- 0.09% ]
    base64:              322.2ms [ +/- 0.35ms | +/- 0.11% ]
    fasta:               338.2ms [ +/- 0.35ms | +/- 0.10% ]
    tagcloud:            277.4ms [ +/- 0.89ms | +/- 0.32% ]
    unpack-code:         223.4ms [ +/- 0.43ms | +/- 0.19% ]


After this patch:
========================================
RESULTS (means and 95% confidence intervals)
----------------------------------------
Total:                  6099.2ms [ +/- 3.20ms | +/- 0.05% ]
----------------------------------------
  3d:                   1240.4ms [ +/- 1.80ms | +/- 0.15% ]
    cube:                428.4ms [ +/- 0.43ms | +/- 0.10% ]
    morph:               479.8ms [ +/- 2.18ms | +/- 0.45% ]
    raytrace:            332.2ms [ +/- 1.29ms | +/- 0.39% ]
  access:                485.6ms [ +/- 1.19ms | +/- 0.24% ]
    binary-trees:        141.2ms [ +/- 1.02ms | +/- 0.72% ]
    nsieve:              344.4ms [ +/- 0.70ms | +/- 0.20% ]
  bitops:               1287.4ms [ +/- 2.33ms | +/- 0.18% ]
    3bit-bits-in-byte:   340.6ms [ +/- 1.19ms | +/- 0.35% ]
    bits-in-byte:        439.6ms [ +/- 0.70ms | +/- 0.16% ]
    bitwise-and:         331.4ms [ +/- 1.19ms | +/- 0.36% ]
    nsieve-bits:         175.8ms [ +/- 0.35ms | +/- 0.20% ]
  crypto:                763.8ms [ +/- 2.38ms | +/- 0.31% ]
    aes:                 232.2ms [ +/- 0.86ms | +/- 0.37% ]
    md5:                 271.0ms [ +/- 0.55ms | +/- 0.20% ]
    sha1:                260.6ms [ +/- 1.97ms | +/- 0.76% ]
  math:                 1141.6ms [ +/- 1.80ms | +/- 0.16% ]
    cordic:              609.8ms [ +/- 1.70ms | +/- 0.28% ]
    partial-sums:        267.6ms [ +/- 0.89ms | +/- 0.33% ]
    spectral-norm:       264.2ms [ +/- 0.86ms | +/- 0.33% ]
  string:               1180.4ms [ +/- 2.64ms | +/- 0.22% ]
    base64:              320.8ms [ +/- 0.66ms | +/- 0.20% ]
    fasta:               341.2ms [ +/- 1.87ms | +/- 0.55% ]
    tagcloud:            277.4ms [ +/- 0.43ms | +/- 0.15% ]
    unpack-code:         241.0ms [ +/- 0.00ms | +/- 0.00% ]


-- 
Configure bugmail: http://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.



More information about the webkit-unassigned mailing list