public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
From: Jan Hubicka <hubicka@horac.ta.jcu.cz>
To: Sergio Ruocco <ruoccos@comm2000.it>
Cc: Robert Lipe <egcs@cygnus.com>
Subject: Re: EGCS performance ?
Date: Sat, 31 Oct 1998 05:02:00 -0000	[thread overview]
Message-ID: <19981031094857.63547@horac.ta.jcu.cz> (raw)
In-Reply-To: <1400.607T1017T5924019@comm2000.it>

> ...I was surprised to see a large performance gulf (?) in such a
> simple test among EGCS and other "proprietary" compilers, and I'm
> wondering what is causing these gaps:
> 
> - better intermediate optimizations (see the 50% improvement due
>   only to i/p analysis)
> ...
> - dedicated x86 schedulers
> - embedded-auto-recognition of Drystone benchmark code... :-)
I've compared the assembly output from Intel optimizing scheduler and egcs
and my conclusion is, that egcs is not so bad. Main sowdown seems to be caused
by fact, that dryrstone uses mostly char type. GCC is generaly very bad in
retyping variables. On i386 important point is also, that gcc can use just
low register halves to hold char values, so it runs into higher register
pressure and results in more spills.
You I've reported speedup with latest snapshot it is IMO caused by local
spilling patches that improved code in case of this register pressure.

Important role in dryrstone plays calling of function. What IOC does
is that it ignores push and uses moves saving the subl after call.
It generally don't seems to help (just makes code longer and worse)
but in this special case it should be advantage.
> 
> If someone could test with a better benchmark EGCS vs. other
> compilers on different (RISC) architectures we could determine this
I would expect better results at other architectures becuase of register
haves handicap.
> performance gap still exists, and how much is due to x86 scheduling
I've done some tests with scheduling and it don't seems to help.
There is not much place for it.
The small functions that can not be scheduled very well.
One of thinks that help on pentium is to set alignment to 16, as IOC does.
(gcc uses 8)
surprising enabling haifa and -fschedule-insns has same effect, but it is probably
not because of scheduling but because code is reoredered so it fits better to cache
or so.
So I can improve dryrstone test from 130 000 to 203 000 by enabling haifa
alignment and -fschedule-insns and improve it to 215 000 using my patches.
(the small speedup in my patches generaly isn't caused by scheduling changes,
but by modified instruction selection)
> arcana (if they come on par) vs to machine-independent optimizations
> (if the 30-200% performance gulf stays).

Honza
> 
> 	Sergio Ruocco - ruoccos@comm2000.it

-- 
------------------------------------------------------------------------------
                   Have you browsed my www pages? Look at:
                       http://www.paru.cas.cz/~hubicka
      Koules-the game for Svgalib,X11 and OS/2,  Xonix-the game for X11
      czech documentation for linux index, original 2D computer art and
              funny 100 years old photos and articles are there!

  parent reply	other threads:[~1998-10-31  5:02 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
1998-10-28  1:58 Bernd's reload patch installed Jeffrey A Law
1998-10-29  0:50 ` Ben Cheese Was: " Robert Lipe
1998-10-30  5:07   ` EGCS performance ? Sergio Ruocco
1998-10-30 15:21     ` Joe Buck
1998-10-30 15:21     ` David Edelsohn
1998-10-31 16:39       ` Joe Buck
1998-10-30 19:14     ` Robert Lipe
1998-10-31  5:02     ` Jan Hubicka [this message]
1998-10-30 19:14 N8TM
1998-10-31 16:39 ` Joe Buck

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=19981031094857.63547@horac.ta.jcu.cz \
    --to=hubicka@horac.ta.jcu.cz \
    --cc=egcs@cygnus.com \
    --cc=ruoccos@comm2000.it \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).