public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
From: cgd@broadcom.com
To: s.bosscher@student.tudelft.nl
Cc: gcc@gcc.gnu.org
Subject: Re: GCC
Date: Thu, 31 Jul 2003 19:38:00 -0000	[thread overview]
Message-ID: <yov5smomk5sv.fsf@ldt-sj3-010.sj.broadcom.com> (raw)
In-Reply-To: <mailpost.1059633748.1819@news-sj1-1>

this discussion isn't really specific to gcc, it applies to, say,
binutils too.  but since gcc is where it started that's where i'm
going to leave it.  8-)


At Thu, 31 Jul 2003 06:42:29 +0000 (UTC), "Steven Bosscher" wrote:
> I'm not sure why they think it is so difficult.

I'm not a "processor architect," but I interact with some of them, and
i've tried to get some of them to be more GCC cognizant.  I am,
however, somebody who works on low-level "processor stuff," and these
are factors in my experience:

(1) the assignments *are* a pain in the butt, but the amount of pain
    can be highly variable.  Originallly, no problem to get them
    signed (though the processing lag was annoying).  Later, new
    lawyers, much wrangling to get something OK to all sides,
    ultimately consumed about 5 months...  "ugh."

(2) slow patch approval times can be a problem, especially for people
    who are new.

    Looking back at my old patch list back to when I started
    submitting stuff (mid-2000), wait-for-approval time of > a month
    wasn't uncommon.

    These days, for me at least, the time is shorter.  I don't know if
    that's the experience of new developers, though.

(3) at least when i started doing this, there wasn't that much working
    documentation about how stuff could/should be tested (i.e., run
    with this sim, which is actually likely to work, by doing these
    steps...)  That made me uncertain of what I was doing, at least a
    bit.  I think this is getting better.

So, that's for me, a low-level OS hacker who thinks himself fairly
adaptable.  8-)

Note that these are all things that people care about only if doing
the GCC work themselves.  They can be addressed easily by hiring
somebody to do a port and submit it back.  Costs some money, but then,
so does processor design.



Sounds like the panel included processor architects who had been
"reached."  I think if you actually want to reach "processor
architects" generally, there are more problems IMO:

Processor architects do processor architecture.  Typically, they don't
know GCC internals.  (Often some will have *some* compiler exposure,
but the amount varies.)  If they're making a new processor, they
probably don't have time to learn GCC internals, or even to become
involved in the GCC community.

The result of that is that they might not be cognizant of things that
they should try to avoid if they want a good GCC back-end (if they're
designing with a new architecture) or a good scheduler description (if
they're doing a new implementation of an existing architecture).

Some seem obvious, e.g., if you make your scheduling rules bizarre and
with many exceptions, it'll be difficult to create an "optimal" (or
close to) code schduler for them.  Seems obvious enough to someone who
touches GCC a lot, but

        (1) it might not be to someone who doesn't, and

        (2) at some point, you hit a wall where "difficult" is "really
            really difficult," i.e., 2 pages of instruction issue rule
            special cases can translate into much more if you want to
            model them well.  8-)

Other stuff pops into mind: e.g. if you're designing a new
architecture, and want a good GCC port, and are on the fence about
branch delay slots (or whatever): obviously GCC supports them on
multiple architectures...  Does that mean they're *easy* to cope with
in GCC (or the other tools)?  etc.  

I think these are questions that you don't know about GCC unless
you've been in it for some amount of time -- which architects aren't
likely to have put in.

A collection of wisdom related to "designing architecture to make GCC
happy" would probably help.

These types of issues are ones where, unless you get it right early on
during the architecture of your part, it may be very very difficult to
get a good GCC port years later.  I don't know that they can be
addressed well by throwing money at some GCC developers, either.  (I
mean, they probably can be addressed, but it IMO it doesn't appear to
be a good way to spend money, up front.)



cgd

WARNING: multiple messages have this Message-ID
From: cgd@broadcom.com
To: gcc@gcc.gnu.org
Subject: Re: GCC
Date: Thu, 31 Jul 2003 19:45:00 -0000	[thread overview]
Message-ID: <yov5smomk5sv.fsf@ldt-sj3-010.sj.broadcom.com> (raw)
Message-ID: <20030731194500.0cezr2pwk4w6rpfwQPvhBjVCX9pvt7PRxF9ocbXf6KY@z> (raw)
In-Reply-To: <mailpost.1059633748.1819@news-sj1-1>

this discussion isn't really specific to gcc, it applies to, say,
binutils too.  but since gcc is where it started that's where i'm
going to leave it.  8-)


At Thu, 31 Jul 2003 06:42:29 +0000 (UTC), "Steven Bosscher" wrote:
> I'm not sure why they think it is so difficult.

I'm not a "processor architect," but I interact with some of them, and
i've tried to get some of them to be more GCC cognizant.  I am,
however, somebody who works on low-level "processor stuff," and these
are factors in my experience:

(1) the assignments *are* a pain in the butt, but the amount of pain
    can be highly variable.  Originallly, no problem to get them
    signed (though the processing lag was annoying).  Later, new
    lawyers, much wrangling to get something OK to all sides,
    ultimately consumed about 5 months...  "ugh."

(2) slow patch approval times can be a problem, especially for people
    who are new.

    Looking back at my old patch list back to when I started
    submitting stuff (mid-2000), wait-for-approval time of > a month
    wasn't uncommon.

    These days, for me at least, the time is shorter.  I don't know if
    that's the experience of new developers, though.

(3) at least when i started doing this, there wasn't that much working
    documentation about how stuff could/should be tested (i.e., run
    with this sim, which is actually likely to work, by doing these
    steps...)  That made me uncertain of what I was doing, at least a
    bit.  I think this is getting better.

So, that's for me, a low-level OS hacker who thinks himself fairly
adaptable.  8-)

Note that these are all things that people care about only if doing
the GCC work themselves.  They can be addressed easily by hiring
somebody to do a port and submit it back.  Costs some money, but then,
so does processor design.



Sounds like the panel included processor architects who had been
"reached."  I think if you actually want to reach "processor
architects" generally, there are more problems IMO:

Processor architects do processor architecture.  Typically, they don't
know GCC internals.  (Often some will have *some* compiler exposure,
but the amount varies.)  If they're making a new processor, they
probably don't have time to learn GCC internals, or even to become
involved in the GCC community.

The result of that is that they might not be cognizant of things that
they should try to avoid if they want a good GCC back-end (if they're
designing with a new architecture) or a good scheduler description (if
they're doing a new implementation of an existing architecture).

Some seem obvious, e.g., if you make your scheduling rules bizarre and
with many exceptions, it'll be difficult to create an "optimal" (or
close to) code schduler for them.  Seems obvious enough to someone who
touches GCC a lot, but

        (1) it might not be to someone who doesn't, and

        (2) at some point, you hit a wall where "difficult" is "really
            really difficult," i.e., 2 pages of instruction issue rule
            special cases can translate into much more if you want to
            model them well.  8-)

Other stuff pops into mind: e.g. if you're designing a new
architecture, and want a good GCC port, and are on the fence about
branch delay slots (or whatever): obviously GCC supports them on
multiple architectures...  Does that mean they're *easy* to cope with
in GCC (or the other tools)?  etc.  

I think these are questions that you don't know about GCC unless
you've been in it for some amount of time -- which architects aren't
likely to have put in.

A collection of wisdom related to "designing architecture to make GCC
happy" would probably help.

These types of issues are ones where, unless you get it right early on
during the architecture of your part, it may be very very difficult to
get a good GCC port years later.  I don't know that they can be
addressed well by throwing money at some GCC developers, either.  (I
mean, they probably can be addressed, but it IMO it doesn't appear to
be a good way to spend money, up front.)



cgd


  parent reply	other threads:[~2003-07-31 16:41 UTC|newest]

Thread overview: 142+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-07-31  9:25 GCC Steven Bosscher
2003-07-31  9:30 ` GCC Aaron Lehmann
2003-07-31  9:47   ` GCC Randy.Dunlap
2003-07-31 14:07   ` GCC Gerald Pfeifer
2003-07-31 18:15     ` GCC Steven Bosscher
2003-08-04  5:46   ` GCC David O'Brien
2003-08-04  7:42     ` GCC Zack Weinberg
2003-08-08 19:05     ` GCC Bernardo Innocenti
2003-07-31 10:49 ` GCC Lars Segerlund
     [not found] ` <mailpost.1059633748.1819@news-sj1-1>
2003-07-31 19:38   ` cgd [this message]
2003-07-31 19:45     ` GCC cgd
2003-08-04 17:12 ` processor architects say it's hard to work with us? Joe Buck
2003-08-05  7:47   ` Lars Segerlund
  -- strict thread matches above, loose matches on Subject: below --
2024-05-02 21:15 Gcc Sophia Taylor
2023-11-22 12:02 Gcc Suma Luther
2023-10-20  7:09 Gcc Suma Luther
2022-11-11 12:36 gcc Michael Davide
2022-05-23 11:28 gcc Sarah Burgener
2021-12-18  8:09 Gcc Navidullah Mehrtash
2021-12-18 12:59 ` Gcc Jonathan Wakely
2021-12-21 20:13   ` Gcc Navidullah Mehrtash
2021-06-21  9:47 Gcc Doris Amor
2021-01-11  2:22 gcc Peter Liu
2020-09-16  6:15 Gcc Sarah Cokins
2020-09-11 14:25 Gcc Helen Ames
2019-12-16  8:48 Gcc Isabella Kathryn
2012-09-24 10:54 GCC Jerome Huck
2012-09-24 12:33 ` GCC Robert Dewar
2011-06-30 20:21 gcc chandanchaudhary26
2011-06-19 10:19 gcc chandanchaudhary26
2011-04-07 16:05 gcc ymousnw2
2011-03-28  7:26 gcc vleihulu
2010-09-06 14:13 gcc xie pan
2010-09-09  2:26 ` gcc Tom Browder
2006-02-10 13:22 gcc Sapojnikova T.F.
2006-02-10 20:10 ` gcc Mike Stump
2006-02-10 13:22 gcc Sapojnikova T.F.
2005-10-02 13:00 gcc Bill Cunningham
2005-10-02 15:55 ` gcc Joe Buck
2004-01-20  3:23 gcc Bill Cunningham
2004-01-21  0:09 ` gcc Alexandre Oliva
2004-01-21  0:32 ` gcc Jim Wilson
2003-10-13  9:41 gcc SRUTHY C.N.
2003-10-13 12:19 ` gcc SRUTHY C.N.
2003-10-09  7:44 GCC SRUTHY C.N.
2003-10-09  7:53 ` GCC SRUTHY C.N.
2003-08-01 11:13 GCC Robert Dewar
     [not found] <Pine.LNX.4.21.0307311224210.23423-100000@mail.kloo.net>
2003-08-01  9:56 ` GCC Martin
2003-08-01 13:55   ` GCC Dave Hudson
2003-08-01 14:07     ` GCC Martin
     [not found]       ` <mailpost.1059737856.958@news-sj1-1>
2003-08-01 15:39         ` GCC cgd
2003-07-31 10:57 GCC Robert Dewar
2003-08-04 17:19 ` GCC Joe Buck
2003-04-14 15:39 gcc Leonardo B. Cuquejo
2002-12-19  7:54 GCC Robert Dewar
2002-12-18 21:51 GCC Daniel Madri
2002-12-18 21:47 GCC Daniel Madri
2002-12-18 21:54 ` GCC Andrew Pinski
     [not found] <616BE6A276E3714788D2AC35C40CD18D8EA584@whale.softwire.co.uk>
2002-11-13  4:16 ` gcc Rupert Wood
2002-11-13  2:25 gcc reza afshar
2002-08-16  3:42 GCC Tres Melton
2002-07-21 17:16 gcc Huidong Yu
2002-07-19  7:52 GCC stephen miller
2002-07-19  8:24 ` GCC Maggie
2002-04-02 10:34 Gcc Every, Vanessa
2002-04-02 10:50 ` Gcc Joe Buck
2002-03-06 13:19 gcc Stéphane THOMAS
2002-03-06 14:36 ` gcc Janis Johnson
2001-10-16  3:52 gcc Narendra Singh
2001-10-16  4:05 ` gcc Gerald Pfeifer
2001-09-20 10:43 GCC mike stump
2001-09-19 17:15 GCC Jimmy X. Jia
2001-09-19 10:50 GCC mike stump
2001-09-19 16:31 ` GCC Joern Rennecke
2001-09-19  5:37 GCC thomas joseph
2001-09-19  7:05 ` GCC Joern Rennecke
2001-09-19  9:56   ` GCC Frank Klemm
2001-09-19 16:45     ` GCC Joern Rennecke
2001-09-04 16:02 gcc Brian Dilley
2001-08-10 14:03 GCC Alex Avner
2001-08-11 11:23 ` GCC Alexandre Oliva
2001-07-31  6:07 GCC Kutzler, Paul
2001-07-31  6:47 ` GCC Alexandre Oliva
2001-07-14  1:51 gcc Umesh V Bywar
2001-07-20 21:52 ` gcc Alexandre Oliva
2001-05-18 14:31 GCC mike stump
2001-05-18  8:55 GCC H. Rane
2001-05-18 11:06 ` GCC Erik Mouw
2001-05-18 11:20   ` GCC Diego Novillo
2001-05-03 10:44 GCC Christopher Fournier
2001-05-03  7:20 GCC BABICA, Rasto
2001-05-03  7:31 ` GCC Alexandre Oliva
2001-03-16  7:40 gcc Jumblat, Ghassan
2001-03-16  8:42 ` gcc Craig Rodrigues
2001-03-16  9:15 ` gcc Gerald Pfeifer
2001-03-14 15:37 GCC Brad Roberts
2001-03-14 15:21 GCC Brad Roberts
2001-02-01  1:14 gcc Aimin Pan
2001-02-01 12:50 ` gcc Alexandre Oliva
2001-02-01 18:33   ` gcc Aimin Pan
2001-02-01 18:53     ` gcc Alexandre Oliva
2001-02-01 21:56       ` gcc Aimin Pan
2001-02-01 22:11         ` gcc Alexandre Oliva
2000-12-07 11:09 GCC c958179
2000-12-07 11:53 ` GCC Eric Christopher
2000-12-07 12:07 ` GCC Aldy Hernandez
2000-09-13  7:31 GCC Ansie de Hoop
2000-09-13  7:43 ` GCC Erik Mouw
2000-09-13  8:20 ` GCC Benedetto Proietti
2000-05-28  0:04 gcc Hendrix
2000-05-28  8:07 ` gcc Martin v. Loewis
2000-03-27 11:53 GCC Gibson, Terry
2000-03-27 12:59 ` GCC Martin v. Loewis
2000-03-28  0:29   ` GCC Erik Mouw
2000-01-21  4:41 gcc Xroxcat
2000-01-21  4:47 ` gcc Christian Jönsson FOA 72
1999-12-15  8:09 GCC anwar.sayid
1999-12-15  8:28 ` GCC Gerald Pfeifer
1999-12-31 23:54   ` GCC Gerald Pfeifer
1999-12-31 23:54 ` GCC anwar.sayid
1999-11-06 10:17 GCC salmena
1999-11-06 14:26 ` GCC Martin v. Loewis
1999-11-30 23:37   ` GCC Martin v. Loewis
1999-11-30 23:37 ` GCC salmena
1999-09-15 13:34 GCC dmitry milman cis stnt
1999-09-15 13:38 ` GCC Brian Ford
1999-09-30 18:02   ` GCC Brian Ford
1999-09-30 18:02 ` GCC dmitry milman cis stnt
1998-05-06  9:19 GCC P. van Leeuwen
1998-05-06  1:02 ` GCC David O'Brien
1998-05-06 11:36   ` GCC Gerald Pfeifer
1998-05-06  9:19     ` GCC Wes Peters
1998-05-06 14:01       ` GCC Joel Sherrill
1998-05-06 18:07   ` GCC Jim Wilson
     [not found] <19980430041417.42994@nuxi.com>
1998-05-03  9:27 ` GCC Gerald Pfeifer
1998-05-04  9:11   ` GCC Joe Buck
1998-05-04 18:07     ` GCC Jeffrey A Law
1998-05-12 15:25       ` GCC Mikael Karpberg
1998-05-14 15:38         ` GCC Martin von Loewis
1998-05-15  1:48         ` GCC Jim Wilson
     [not found]         ` <199805150243.TAA10200.cygnus.egcs@rtl.cygnus.com>
1998-05-15 15:17           ` GCC Nathan Myers
1998-05-18 18:06             ` GCC Jim Wilson

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=yov5smomk5sv.fsf@ldt-sj3-010.sj.broadcom.com \
    --to=cgd@broadcom.com \
    --cc=gcc@gcc.gnu.org \
    --cc=s.bosscher@student.tudelft.nl \
    /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).