Date: Tue, 9 Mar 1999 17:58:15 +0100 To: pgcc AT delorie DOT com Subject: Re: gcc-2.7 creates faster code than pgcc-1.1.1 Message-ID: <19990309175815.H2217@cerebro.laendle> Mail-Followup-To: pgcc AT delorie DOT com References: <001701be6634$045ba500$a18330d4 AT main DOT medtech DOT ru> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii In-Reply-To: <001701be6634$045ba500$a18330d4@main.medtech.ru>; from Eugene M. Indenbom on Thu, Mar 04, 1999 at 02:37:17PM +0300 X-Operating-System: Linux version 2.2.2 (marc AT cerebro) (gcc driver version pgcc-2.93.04 19990131 (gcc2 ss-980929 experimental) executing gcc version 2.7.2.3) From: Marc Lehmann Reply-To: pgcc AT delorie DOT com X-Mailing-List: pgcc AT delorie DOT com X-Unsubscribes-To: listserv AT delorie DOT com Precedence: bulk On Thu, Mar 04, 1999 at 02:37:17PM +0300, Eugene M. Indenbom wrote: > As I wrote previously gcc-2.7.2.3 generates faster gzip > than egcs-1.1.1/pgcc-1.1.1 on PentiumPro. > The slowdown is greater than 10% on decompression operation. > This can be easily checked if you have RedHat 5.2. > The shipped gzip is gcc-2.7.2.3 compiled. > > After several day of search I finally find out offending > instruction that slow down gzip compiled with egcs-1.1.1/pgcc-1.1.1 > on PentiumPro 180MHz (132MB RAM) but the result seems crazy to me. > > This instruction is: > andl $255, %eax > in flush_window (util.c) function body (it is inlined from updcrc) > > if you manually replace it with > movzbl %al, $eax > this will boost decompression by 20%. If that is the only problem than we can consider the whole issue "bad luck" on side of the compiler. This is also one of the problems that got introduced with the egcs merge. egcs "seems" to be slower in some cases (and faster in others) than gcc-2.7.2. That was one of the reasons why I started the egcs benchmark suite (but I haven't got around making the results public in an easily parseable form) > And finally if you have Pentium Pro or Pentium II please > do this check and report result to me. > I wonder whether I have brain damaged Pentium Pro. According to the docs there andl shouldn't be very bad. I'm sure its some parasitic effect that only shows up in an inner loop. In any case, people should refer to the discussion about improving this case on the egcs list. -- -----==- | ----==-- _ | ---==---(_)__ __ ____ __ Marc Lehmann +-- --==---/ / _ \/ // /\ \/ / pcg AT goof DOT com |e| -=====/_/_//_/\_,_/ /_/\_\ XX11-RIPE --+ The choice of a GNU generation | |