fyi: egcs performance.

Tyson Dowd trd at cs.mu.oz.au
Mon Dec 15 19:09:25 AEDT 1997


Hi folks,

egcs-1.0 (the new experimental development branch of gcc) was released
a little while ago.  Apparently it has a new instruction scheduler and
better support for Pentium and PPro, so I tried it out on hydra.

----------------------------

The installed compiler (EXTRA_MCFLAGS=-O3 --opt-space) with gcc:
   -rwxr-xr-x   1 fjh      pgrad     3242273 Dec 11 06:24 mercury_compile*

   compiling make_hlds.m:
   47.190u 0.890s 0:49.10 97.9% 0+0k 0+0io 701pf+0w
   47.120u 0.780s 0:49.02 97.7% 0+0k 0+0io 701pf+0w
   47.060u 0.750s 0:48.86 97.8% 0+0k 0+0io 701pf+0w

----------------------------

The compiler (EXTRA_MCFLAGS=-O3 --opt-space) with egcs:
   -rwx------   1 trd      pgrad     2750492 Dec 11 17:08 mercury_compile*

   compiling make_hlds.m:
   46.210u 0.860s 0:47.99 98.0% 0+0k 0+0io 777pf+0w
   46.060u 0.960s 0:47.98 97.9% 0+0k 0+0io 777pf+0w
   46.140u 0.760s 0:47.84 98.0% 0+0k 0+0io 777pf+0w

So it's 15% smaller and 2% faster.

----------------------------

Using egcs with -O2 rather than just -O:

-rwx------   1 trd      pgrad     2754440 Dec 11 18:21 mercury_compile*

   compiling make_hlds.m:
   46.980u 0.890s 0:48.51 98.6% 0+0k 0+0io 778pf+0w
   46.810u 0.830s 0:48.07 99.1% 0+0k 0+0io 778pf+0w
   46.870u 0.800s 0:48.19 98.9% 0+0k 0+0io 778pf+0w

Still around 15% smaller, but less than 1% faster.

When I get around to it, I might try maximum optimization.

The options I used were:
-fno-exceptions -mpentiumpro -mcpu=pentiumpro -march=pentiumpro
(you probably don't need all these, but I wanted to be sure).

(no-exceptions means it won't necessarily work when linked with C++ code).


-- 
       Tyson Dowd           # 
                            #         Linux versus Windows is a 
     trd at cs.mu.oz.au        #            Win lose situation.
http://www.cs.mu.oz.au/~trd #



More information about the developers mailing list