From: Rob Hooft (hooft@fys.ruu.nl)
Date: 08/18/92


From: hooft@fys.ruu.nl (Rob Hooft)
Subject: Jumptable Performance (Was: Re: shared libs - can everyone be happy with this?)
Date: Tue, 18 Aug 1992 08:04:37 GMT

In <NOP.92Aug17135014@theory.Mankato.MSUS.EDU> nop@theory.Mankato.MSUS.EDU (Jay A. Carlson) writes:

>I'm not sure that all this trouble is worth it. Does anyone have any
>hard data on the performance loss of jump tables?

Well, I think the only way to correctly test thi is to run the BYTE
bench again. Especially the 'concurrent shell script' part. I didn't
do this yet, but I had a very strange experience with the jumptables
yesterday, and it is reproducible (so far).

I compiled the 'flops.c' V1.2 program thas has been posted to
comp.benchmarks last february. This is a program, as the name implies,
that tests the FPU and certainly not the library. On my 486/33 results were:

   gcc -O6 -N -s -o flops flops.c ===> 1.65 Mflops

   gcc -O6 -N -s -o flops flops.c -jump ===> 1.70 Mflops

(Note that I didn't try to -m486 the thing... yet. And: yes: I know that -O6 is
not better than -O2)

I didn't believe this, so I repeated it many times. Is there any one
who has an explanation for the fact that the '-jump'ed executable is
3% faster? Could this be caused by a difference in the crt0.o?

For the people that are interested in performance, some more results:

   gcc -O6 -N -s -o flops flops.c -jump -fomit-frame-pointer -funroll-all-loops
                                         ===> 1.80 Mflops

   gcc -O6 -N -s -o flops flops.c -jump -msoft-float
                                         ===> 0.60 Mflops

-- 
Rob Hooft, Bijvoet Center for Biomolecular Research, 
Chemistry department University of Utrecht, the Netherlands
hooft@hutruu54.bitnet hooft@chem.ruu.nl hooft@fys.ruu.nl hooft@cc.ruu.nl