Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Posting-Version: version B 2.10.2 9/5/84; site reed.UUCP Path: utzoo!watmath!clyde!burl!ulysses!allegra!mit-eddie!genrad!decvax!tektronix!reed!bart From: bart@reed.UUCP (Bart Massey) Newsgroups: net.arch,net.lang.c,net.micro,net.micro.pc,net.micro.68k Subject: Re: Re: Re: Need 286 "C" benchmark Message-ID: <1576@reed.UUCP> Date: Wed, 29-May-85 20:23:16 EDT Article-I.D.: reed.1576 Posted: Wed May 29 20:23:16 1985 Date-Received: Fri, 31-May-85 04:44:53 EDT References: <426@oakhill.UUCP> <8745@microsoft.UUCP> <583@intelca.UUCP> <433@oakhill.UUCP> Organization: Reed College, Portland, Oregon Lines: 35 Xref: watmath net.arch:1275 net.lang.c:5315 net.micro:10575 net.micro.pc:4077 net.micro.68k:830 > In article <583@intelca.UUCP> cem@intelca.UUCP (Chuck McManis) writes: > >> [quoting someone else...] > >> I just love the contact sport of "combative benchmarking". I note how > >> the source code for the Hofstader (sp?) benchmark just accidentally > >> happens to declare its register variables from the least-used to the > >> most used, the opposite of normal C convention. And by coincidence, > >> there are three of those little hummers... and we're comparing a > >> 68K with >3 regvars against a 286 with only 2! > >> This means that the single most heavily used register variable will > >> be in a reg on the 68K and on the frame for a 286. My my, what a > >> terrible accident. > > When I posted the benchmark I was not aware of all that. But what's the > complaint? Are you saying that its not fair to use registers since one > chip only has 2 of them? In the real world programs would use a lot more > than two registers. Why are you trying to hide architectural weaknesses? > Benchmarks should be just the thing to point out such weaknesses. Quite aside from the rest of this argument, I believe some folks have still missed the point. It isn't that >3 regvars are declared in the code -- it's the ORDERING! K&R explicitly require compilers to allocate regvars IN THE ORDER THEY'RE DECLARED, stopping only when they run out of registers. The purpose of this ordering requirement is to ENSURE THAT THE MOST HEAVILY USED VARIABLES END UP IN REGISTERS. If you had put that "most heavily used register variable" ahead of all the other register variables in the declaration, no one would have complained. This may be an honest mistake, but it still makes for a poor "benchmark". Anyway, enough on this subject already, Bart Massey ..tektronix!reed!bart I learned to program on a TRS-80 in "Level II BASIC" -- thus, all other machines appear equally fast to me...