[Webkit-unassigned] [Bug 38446] New: SunSpider: all four bitops benchmarks can be replaced with NOP

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Sun May 2 20:55:35 PDT 2010


https://bugs.webkit.org/show_bug.cgi?id=38446

           Summary: SunSpider: all four bitops benchmarks can be replaced
                    with NOP
           Product: WebKit
           Version: 528+ (Nightly build)
          Platform: PC
        OS/Version: Mac OS X 10.5
            Status: UNCONFIRMED
          Severity: Normal
          Priority: P2
         Component: Tools / Tests
        AssignedTo: webkit-unassigned at lists.webkit.org
        ReportedBy: nnethercote at mozilla.com


There are four bitops benchmarks in SunSpider:  3bit-bits-in-byte,
bits-in-byte, bitwise-and, nsieve-bits.  All of them compute things but never
do anything with the computed values which means a sufficiently clever compiler
can optimise them all down to a single NOP.

I noticed this because I'm working on improving dead code elimination for
Mozilla's TraceMonkey, which is now sufficiently clever to turn this (from
3bit-bits-in-byte):

  for(var y=0; y<256; y++) func(y);

into an empty loop, because func() has no side effects and its result isn't
used.  While this provides me personally with a certain level of satisfaction
it doesn't seem a desirable property for a benchmark.

Note that some of these contain empty loops like this:

  for(var x=0; x<500; x++)

which are presumably there to "spin up" the benchmark, but can also be
eliminated entirely.

It's possible that some of the other SunSpider benchmarks have the same
undesirable property, I haven't checked;  the bitops ones are certainly the
smallest and so the most affected.  They should be changed to record a value
and print it out at the end, something like that.

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



More information about the webkit-unassigned mailing list