public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
From: Jim Wilson <wilson@chestnut.cygnus.com>
To: Bernd Schmidt <crux@Pool.Informatik.RWTH-Aachen.DE>
Cc: egcs@cygnus.com
Subject: Re: Some Haifa scheduler bugs
Date: Wed, 03 Sep 1997 11:58:00 -0000	[thread overview]
Message-ID: <199709031858.LAA27278@cygnus.com> (raw)
In-Reply-To: <15524.873304637@hurl.cygnus.com>

	Basically any machine that defines SMALL_REGISTER_CLASSES and passes args in
	registers is playing with fire -- reload can and will silently generate incorrect
	code for such targets.  For that reason I _highly_ recommend against using
	registers for parameter passing on the x86 targets.

I'll second it.  The x86 regparm attribute is unsafe, and should not be used.
It might be possible to fix the problem by hacking reload and the x86 port,
but it doesn't seem very worthwhile.  The problem is hard to fix, and exposes
people to unnecessary risks of compiler bugs.  There are probably easier
ways to get faster x86 code.

Jeff didn't mention it, but it is also unwise to schedule before
register allocation if SMALL_REGISTER_CLASSES is defined, even if you
are not using register parameters.  The goal of the scheduler is to reduce
pipeline stalls at the expense of increasing register pressure.  This is
exactly the wrong thing to do on a SMALL_REGISTER_CLASSES machine such as
the x86, because you will get so many extra spills that the code may run
slower.  A scheduler that has different goals might be able to do better,
but given the way the existing scheduler works, I would recommend avoiding
it before register allocation on the x86.

Jim

  parent reply	other threads:[~1997-09-03 11:58 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <Pine.SOL.3.90.970826140826.2901J-100000@maigret.informatik.rwth-aachen.de>
1997-09-01 20:33 ` Jeffrey A Law
1997-09-03  9:30   ` Bernd Schmidt
1997-09-03  9:37     ` Jeffrey A Law
1997-09-03  9:44       ` Bernd Schmidt
1997-09-03 10:07         ` Jeffrey A Law
1997-09-05  7:15           ` Bernd Schmidt
1997-09-05  7:55             ` Jeffrey A Law
1997-09-05  8:33             ` Ian Lance Taylor
1997-09-03 11:58       ` Jim Wilson [this message]
1997-09-04  1:16         ` regparm & other gcc bug Martynas Kunigelis
1997-09-05  9:29           ` Kamil Iskra
1997-09-06  5:19             ` Martynas Kunigelis
1997-09-03 11:39     ` Some Haifa scheduler bugs Paul Koning
1997-09-03 11:50       ` David Edelsohn
1997-09-03 13:13       ` Richard Henderson
1997-09-03 13:19       ` Jeffrey A Law
1997-09-04  9:33         ` Craig Burley
1997-09-04 11:12           ` Jeffrey A Law
1997-09-04 11:33             ` David S. Miller
1997-09-04 14:38               ` David Edelsohn
1997-09-04 11:27 meissner
     [not found] <Pine.SOL.3.90.970826141030.2901K-100000@maigret.informatik.rwth-aachen.de>
1997-09-01 20:42 ` Jeffrey A Law
  -- strict thread matches above, loose matches on Subject: below --
1997-08-26 14:34 Bernd Schmidt
1997-08-22 13:53 Building of generated parser files Andreas Schwab
1997-08-22 15:02 ` Some Haifa scheduler bugs Jeffrey A Law
1997-08-22 15:24 ` Jeffrey A Law
1997-08-22 10:48 Building of generated parser files Niklas Hallqvist
1997-08-22 13:28 ` Some Haifa scheduler bugs Bernd Schmidt
1997-08-21 16:51 Problems on PowerPC David Edelsohn
1997-08-21 17:43 ` Some Haifa scheduler bugs Jeffrey A Law
1997-08-21 15:20 egcs repository Joel Sherrill
1997-08-21 15:47 ` Some Haifa scheduler bugs Bernd Schmidt
1997-08-19 19:00 Jeffrey A Law
1997-08-19 17:54 Jeffrey A Law
1997-08-19  7:36 egcs: A new compiler project to merge the existing GCC forks (fwd) Robert Wilhelm
1997-08-19  9:34 ` Some Haifa scheduler bugs Bernd Schmidt

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=199709031858.LAA27278@cygnus.com \
    --to=wilson@chestnut.cygnus.com \
    --cc=crux@Pool.Informatik.RWTH-Aachen.DE \
    --cc=egcs@cygnus.com \
    /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).