public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
From: Stan Shebs <shebs@apple.com>
To: Ziemowit Laski <zlaski@apple.com>
Cc: gcc@gcc.gnu.org, Aldy Hernandez <aldyh@redhat.com>,
	"Joseph S. Myers" <jsm28@cam.ac.uk>
Subject: Re: Target-specific Front-Ends? (Was: front end changes for altivec)
Date: Sun, 18 Nov 2001 08:19:00 -0000	[thread overview]
Message-ID: <3C033117.F8EDD78A@apple.com> (raw)
In-Reply-To: <339DE634-E2DE-11D5-A770-0030658361CA@apple.com>

Ziemowit Laski wrote:
> 
> But this brings up a more general question, one that I've been meaning to
> ask of the wider community for quite some time: Should we come up with a
> generalized architecture in GCC (for all front-ends) to enable front-end
> extensions:
>    1) only for specific platforms (e.g., Altivec for PPC targets,
> 'dllexport'
>       for Windows, etc.); and/or
>    2) only when explicitly specified via the configure script (e.g.,
>       '--enable-altivec-keywords', '--enable-pascal-strings')

When you put it that way, my general reaction is to say "bleah". :-)

GCC philosophy has never been to implement every feature ever seen
in somebody else's compiler, but instead to have a single compiler
that behaves consistently across a range of architectures and
operating systems.  There are frontend extension mechanisms, such
as pragmas and attributes for C dialects for instance, as well as
builtin functions, so there is plenty to work with already.  It
may be that these are inadequate, but the case would have to
be pretty compelling on technical grounds.

For instance, in the case of AltiVec extensions, the effect of
vector/pixel keywords can be almost entirely achieved with mode
attributes, the overloaded builtins could be handled by adding
a general concept of overloaded builtins, leaving only the vector
constant syntax as an oddball.  From what I know of the AltiVec-
using population, the total aggregate effort of changing the
syntax of all the vector constants in source code might add up
to as much as one day - less than the effort needed to get the
extension working in GCC.  So should we implement the extension
and support it forever, or get users to spend a few minutes to
change their sources?

The moral of the story with respect to AltiVec is that GNU people
should try to be more involved when new technologies are being
introduced.  As far as I know (I admit to being out of the loop
myself), the AltiVec programming model was designed by a group
working on various proprietary compilers, and the question of GCC
support didn't come up until later.  There were some real boners,
such as the context sensitivity of the vector keyword, that I think
could have been avoided if some GCC folks had participated.

It's easy to say "oh, I can't do anything without having a signed
contract first" or "why should I care about PowerPC/x86/ARM/etc",
but in cases like these some upfront interest and nosiness will
pay off in the long run; we can then spend our development time on
improvements that benefit everybody, rather than tricky hacks to
support another limited-interest target-specific extension.

Stan

WARNING: multiple messages have this Message-ID
From: Stan Shebs <shebs@apple.com>
To: Ziemowit Laski <zlaski@apple.com>
Cc: gcc@gcc.gnu.org, Aldy Hernandez <aldyh@redhat.com>,
	"Joseph S. Myers" <jsm28@cam.ac.uk>
Subject: Re: Target-specific Front-Ends? (Was: front end changes for altivec)
Date: Mon, 26 Nov 2001 22:22:00 -0000	[thread overview]
Message-ID: <3C033117.F8EDD78A@apple.com> (raw)
Message-ID: <20011126222200.YErRP8ih9UAD74lQ6V5NO5g5z7baXVm1ydbYR3hpv4E@z> (raw)
In-Reply-To: <339DE634-E2DE-11D5-A770-0030658361CA@apple.com>

Ziemowit Laski wrote:
> 
> But this brings up a more general question, one that I've been meaning to
> ask of the wider community for quite some time: Should we come up with a
> generalized architecture in GCC (for all front-ends) to enable front-end
> extensions:
>    1) only for specific platforms (e.g., Altivec for PPC targets,
> 'dllexport'
>       for Windows, etc.); and/or
>    2) only when explicitly specified via the configure script (e.g.,
>       '--enable-altivec-keywords', '--enable-pascal-strings')

When you put it that way, my general reaction is to say "bleah". :-)

GCC philosophy has never been to implement every feature ever seen
in somebody else's compiler, but instead to have a single compiler
that behaves consistently across a range of architectures and
operating systems.  There are frontend extension mechanisms, such
as pragmas and attributes for C dialects for instance, as well as
builtin functions, so there is plenty to work with already.  It
may be that these are inadequate, but the case would have to
be pretty compelling on technical grounds.

For instance, in the case of AltiVec extensions, the effect of
vector/pixel keywords can be almost entirely achieved with mode
attributes, the overloaded builtins could be handled by adding
a general concept of overloaded builtins, leaving only the vector
constant syntax as an oddball.  From what I know of the AltiVec-
using population, the total aggregate effort of changing the
syntax of all the vector constants in source code might add up
to as much as one day - less than the effort needed to get the
extension working in GCC.  So should we implement the extension
and support it forever, or get users to spend a few minutes to
change their sources?

The moral of the story with respect to AltiVec is that GNU people
should try to be more involved when new technologies are being
introduced.  As far as I know (I admit to being out of the loop
myself), the AltiVec programming model was designed by a group
working on various proprietary compilers, and the question of GCC
support didn't come up until later.  There were some real boners,
such as the context sensitivity of the vector keyword, that I think
could have been avoided if some GCC folks had participated.

It's easy to say "oh, I can't do anything without having a signed
contract first" or "why should I care about PowerPC/x86/ARM/etc",
but in cases like these some upfront interest and nosiness will
pay off in the long run; we can then spend our development time on
improvements that benefit everybody, rather than tricky hacks to
support another limited-interest target-specific extension.

Stan

  parent reply	other threads:[~2001-11-27  6:22 UTC|newest]

Thread overview: 237+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-11-16  9:10 front end changes for altivec Aldy Hernandez
2001-11-16  9:25 ` Andreas Jaeger
2001-11-26  2:55   ` Andreas Jaeger
2001-11-18  3:56 ` Joseph S. Myers
2001-11-18  4:24   ` Aldy Hernandez
2001-11-18  5:09     ` Joseph S. Myers
2001-11-18  6:10       ` Aldy Hernandez
2001-11-18  7:35         ` Richard Henderson
2001-11-26 19:50           ` Richard Henderson
2001-11-26 18:19         ` Aldy Hernandez
2001-11-18 12:41       ` Aldy Hernandez
2001-11-18 13:38         ` Andreas Jaeger
2001-11-18 15:32           ` Aldy Hernandez
2001-11-18 16:49             ` Bernd Schmidt
2001-11-18 17:06               ` Aldy Hernandez
2001-11-27  8:29                 ` Aldy Hernandez
2001-11-27  8:00               ` Bernd Schmidt
2001-11-27  7:55             ` Aldy Hernandez
2001-11-27  7:50           ` Andreas Jaeger
2001-11-19  8:02         ` Richard Henderson
2001-11-19  8:35           ` Aldy Hernandez
2001-11-19  9:19             ` Richard Henderson
2001-11-19 11:51               ` Stan Shebs
2001-11-19 13:41                 ` Richard Henderson
2001-11-19 16:13                   ` Aldy Hernandez
2001-11-19 17:51                     ` Richard Henderson
2001-11-19 19:15                       ` Aldy Hernandez
2001-11-19 20:50                         ` Richard Henderson
2001-11-27 17:14                           ` Richard Henderson
2001-11-27 17:10                         ` Aldy Hernandez
2001-11-21 13:08                       ` Alexandre Oliva
2001-11-21 13:12                         ` Daniel Berlin
2001-11-21 13:29                           ` Alexandre Oliva
2001-11-21 13:31                             ` Daniel Berlin
2001-11-21 13:41                               ` Jack Lloyd
2001-11-28 23:44                                 ` Jack Lloyd
2001-11-28 23:00                               ` Daniel Berlin
2001-11-28 22:34                             ` Alexandre Oliva
2001-11-21 13:33                           ` Richard Henderson
2001-11-21 13:49                             ` Daniel Berlin
2001-11-29  4:45                               ` Daniel Berlin
2001-11-28 23:16                             ` Richard Henderson
2001-11-28 22:21                           ` Daniel Berlin
2001-11-21 13:24                         ` Per Bothner
2001-11-28 22:25                           ` Per Bothner
2001-11-28 21:07                         ` Alexandre Oliva
2001-11-27 17:03                       ` Richard Henderson
2001-11-27 16:57                     ` Aldy Hernandez
2001-11-27 15:16                   ` Richard Henderson
2001-11-27 14:50                 ` Stan Shebs
2001-11-19 15:25               ` Aldy Hernandez
2001-11-19 17:46                 ` Richard Henderson
2001-11-19 21:39                   ` Aldy Hernandez
2001-11-20  1:05                     ` Dale Johannesen
2001-11-20  2:23                       ` Richard Henderson
2001-11-27 17:45                         ` Richard Henderson
2001-11-27 17:40                       ` Dale Johannesen
2001-11-20  2:46                     ` Richard Henderson
2001-11-20  2:56                       ` front end changes for altivec-- conclusion Aldy Hernandez
2001-11-27 18:00                         ` Aldy Hernandez
2001-11-27 17:50                       ` front end changes for altivec Richard Henderson
2001-11-27 17:24                     ` Aldy Hernandez
2001-11-27 17:02                   ` Richard Henderson
2001-11-27 16:50                 ` Aldy Hernandez
2001-11-27 14:01               ` Richard Henderson
2001-11-27 13:52             ` Aldy Hernandez
2001-11-27 13:40           ` Richard Henderson
2001-11-27  7:24         ` Aldy Hernandez
2001-11-26 17:04       ` Joseph S. Myers
2001-11-26 16:39     ` Aldy Hernandez
2001-11-18  6:40   ` Target-specific Front-Ends? (Was: front end changes for altivec) Ziemowit Laski
2001-11-18  6:33     ` Aldy Hernandez
2001-11-26 18:46       ` Aldy Hernandez
2001-11-18  8:19     ` Stan Shebs [this message]
2001-11-18  9:13       ` Ira Ruben
2001-11-18 12:26         ` Aldy Hernandez
2001-11-19  4:45           ` Ira Ruben
2001-11-19  6:04             ` Geoff Keating
2001-11-19  7:28               ` Ira Ruben
2001-11-19 12:04                 ` Phil Edwards
2001-11-27 14:58                   ` Phil Edwards
2001-11-27 12:47                 ` Ira Ruben
2001-11-27 12:10               ` Geoff Keating
2001-11-19  7:50             ` Aldy Hernandez
2001-11-27 13:12               ` Aldy Hernandez
2001-11-27 10:53             ` Target-specific Front-Ends? (Was: front end changes foraltivec) Ira Ruben
2001-11-19  6:26           ` Target-specific Front-Ends? (Was: front end changes for altivec) Ziemowit Laski
2001-11-19  7:53             ` Aldy Hernandez
2001-11-19  7:56               ` Ziemowit Laski
2001-11-27 13:21                 ` Ziemowit Laski
2001-11-27 13:13               ` Aldy Hernandez
2001-11-27 12:41             ` Ziemowit Laski
2001-11-27  6:46           ` Aldy Hernandez
2001-11-18 18:51         ` Per Bothner
2001-11-27  9:20           ` Per Bothner
2001-11-18 23:55         ` Stan Shebs
2001-11-19  4:18           ` Ira Ruben
2001-11-19  4:48             ` Per Bothner
2001-11-19  5:28               ` Daniel Berlin
2001-11-27 11:35                 ` Daniel Berlin
2001-11-19  6:26               ` Ziemowit Laski
2001-11-20  0:33                 ` Per Bothner
2001-11-20  3:16                   ` Ziemowit Laski
2001-11-20  6:33                     ` Per Bothner
2001-11-27 18:27                       ` Per Bothner
2001-11-20 11:05                     ` Stan Shebs
2001-11-27 18:35                       ` Stan Shebs
2001-11-27 18:06                     ` Ziemowit Laski
2001-11-20  3:19                   ` Stan Shebs
2001-11-20  5:25                     ` Joseph S. Myers
2001-11-27 18:24                       ` Joseph S. Myers
2001-11-20 11:27                     ` Per Bothner
2001-11-27 19:59                       ` Per Bothner
2001-11-20 11:37                     ` Mark Mitchell
2001-11-20 17:03                       ` Aldy Hernandez
2001-11-20 18:25                         ` Mark Mitchell
2001-11-28  9:45                           ` Target-specific Front-Ends? (Was: front end changes foraltivec) Mark Mitchell
2001-11-28  7:11                         ` Target-specific Front-Ends? (Was: front end changes for altivec) Aldy Hernandez
2001-11-20 19:20                       ` Stan Shebs
2001-11-20 20:24                         ` Mark Mitchell
2001-11-20 23:47                           ` Target-specific Front-Ends? (Was: front end changes for Joe Buck
2001-11-28 12:43                             ` Joe Buck
2001-11-28 11:31                           ` Target-specific Front-Ends? (Was: front end changes foraltivec) Mark Mitchell
2001-11-20 20:27                         ` Target-specific Front-Ends? (Was: front end changes for altivec) Dale Johannesen
2001-11-20 20:38                           ` Stan Shebs
2001-11-21  4:47                             ` Syd Polk
2001-11-21 12:31                               ` Tim Hollebeek
2001-11-28 16:15                                 ` Tim Hollebeek
2001-11-28 14:12                               ` Syd Polk
2001-11-28 11:55                             ` Stan Shebs
2001-11-28 11:44                           ` Dale Johannesen
2001-11-28 11:19                         ` Stan Shebs
2001-11-27 20:40                       ` Target-specific Front-Ends? (Was: front end changes foraltivec) Mark Mitchell
2001-11-27 18:09                     ` Target-specific Front-Ends? (Was: front end changes for altivec) Stan Shebs
2001-11-27 17:35                   ` Per Bothner
2001-11-27 12:34                 ` Ziemowit Laski
2001-11-27 11:16               ` Per Bothner
2001-11-27 10:47             ` Target-specific Front-Ends? (Was: front end changes foraltivec) Ira Ruben
2001-11-19  6:19           ` Target-specific Front-Ends? (Was: front end changes for altivec) Ziemowit Laski
2001-11-19  7:13             ` Joseph S. Myers
2001-11-19  7:34               ` Stan Shebs
2001-11-19  8:01                 ` Joseph S. Myers
2001-11-19  9:18                   ` Aldy Hernandez
2001-11-19 11:23                     ` Dale Johannesen
2001-11-27 14:46                       ` Dale Johannesen
2001-11-27 13:56                     ` Aldy Hernandez
2001-11-27 13:27                   ` Joseph S. Myers
2001-11-27 12:57                 ` Stan Shebs
2001-11-19  7:56               ` Ziemowit Laski
2001-11-19  8:31                 ` Richard Henderson
2001-11-27 13:44                   ` Richard Henderson
2001-11-19 10:23                 ` Mark Mitchell
2001-11-19 11:55                   ` Target-specific Front-Ends? (Was: front end changes for Joe Buck
2001-11-19 14:03                     ` Mark Mitchell
2001-11-19 14:46                       ` Joe Buck
2001-11-27 16:13                         ` Joe Buck
2001-11-20  0:56                       ` Devang Patel
2001-11-27 17:37                         ` Devang Patel
2001-11-20  5:17                       ` Aldy Hernandez
2001-11-20 11:15                         ` Ziemowit Laski
2001-11-20 17:09                           ` Aldy Hernandez
2001-11-20 17:26                             ` Joe Buck
2001-11-20 17:57                               ` Aldy Hernandez
2001-11-20 19:16                                 ` Neil Booth
2001-11-20 21:10                                   ` Input Stream Rewriting (Was: Target-specific Front-Ends?) Ziemowit Laski
2001-11-21  0:24                                     ` Neil Booth
2001-11-21  1:05                                       ` Ziemowit Laski
2001-11-21  4:38                                         ` Neil Booth
2001-11-28 13:57                                           ` Neil Booth
2001-11-28 13:25                                         ` Ziemowit Laski
2001-11-28 12:45                                       ` Neil Booth
2001-11-28 12:01                                     ` Ziemowit Laski
2001-11-28 11:06                                   ` Target-specific Front-Ends? (Was: front end changes for Neil Booth
2001-11-28  9:16                                 ` Aldy Hernandez
2001-11-28  9:11                               ` Joe Buck
2001-11-20 20:53                             ` Ziemowit Laski
2001-11-20 22:08                               ` Joe Buck
2001-11-28 12:26                                 ` Joe Buck
2001-11-20 23:37                               ` Per Bothner
2001-11-21  3:14                                 ` Ziemowit Laski
2001-11-21 12:32                                   ` David Edelsohn
2001-11-21 12:44                                     ` Ziemowit Laski
2001-11-28 18:40                                       ` Ziemowit Laski
2001-11-28 18:29                                     ` David Edelsohn
2001-11-28 13:36                                   ` Ziemowit Laski
2001-11-28 12:36                                 ` Per Bothner
2001-11-28 11:55                               ` Ziemowit Laski
2001-11-28  7:33                             ` Aldy Hernandez
2001-11-27 19:40                           ` Ziemowit Laski
2001-11-20 19:17                         ` Devang Patel
2001-11-28 11:09                           ` Devang Patel
2001-11-27 18:21                         ` Aldy Hernandez
2001-11-27 15:32                       ` Mark Mitchell
2001-12-04  0:14                       ` Alex Rosenberg
2001-12-04  0:33                         ` Mark Mitchell
2001-12-04 11:25                         ` Aldy Hernandez
2001-11-27 14:53                     ` Joe Buck
2001-11-27 14:36                   ` Target-specific Front-Ends? (Was: front end changes foraltivec) Mark Mitchell
2001-11-27 13:19                 ` Target-specific Front-Ends? (Was: front end changes for altivec) Ziemowit Laski
2001-11-27 12:44               ` Joseph S. Myers
2001-11-19  8:34             ` Aldy Hernandez
2001-11-19 12:54               ` Stan Shebs
2001-11-19 15:41                 ` Aldy Hernandez
2001-11-19 19:08                   ` Dale Johannesen
2001-11-19 19:15                     ` Aldy Hernandez
2001-11-27 17:10                       ` Aldy Hernandez
2001-11-27 17:06                     ` Dale Johannesen
2001-11-27 16:56                   ` Aldy Hernandez
2001-11-27 15:06                 ` Stan Shebs
2001-11-27 13:44               ` Aldy Hernandez
2001-11-19  9:26             ` Bernd Schmidt
2001-11-19  9:53               ` Ziemowit Laski
2001-11-19 10:59                 ` Bernd Schmidt
2001-11-19 14:12                   ` Ziemowit Laski
2001-11-27 15:37                     ` Ziemowit Laski
2001-11-27 14:41                   ` Bernd Schmidt
2001-11-27 14:30                 ` Ziemowit Laski
2001-11-27 14:13               ` Bernd Schmidt
2001-11-19  9:40             ` Stan Shebs
2001-11-19 11:27               ` Ziemowit Laski
2001-11-27 14:50                 ` Ziemowit Laski
2001-11-27 14:20               ` Stan Shebs
2001-11-27 12:24             ` Ziemowit Laski
2001-11-27  9:48           ` Stan Shebs
2001-11-26 23:45         ` Target-specific Front-Ends? (Was: front end changes foraltivec) Ira Ruben
2001-11-26 22:22       ` Target-specific Front-Ends? (Was: front end changes for altivec) Stan Shebs
2001-11-26 18:47     ` Ziemowit Laski
2001-11-26 15:45   ` front end changes for altivec Joseph S. Myers
2001-11-26  2:51 ` Aldy Hernandez
2001-11-18  8:02 Target-specific Front-Ends? (Was: front end changes for altivec) mike stump
2001-11-26 19:52 ` mike stump
     [not found] <CB35D7B2-E374-11D5-AE62-0030658361CA@apple.com.suse.lists.egcs>
     [not found] ` <m3r8qjvqd1.fsf@litecycle.cc.andrews.edu.suse.lists.egcs>
     [not found]   ` <p73bshnss5x.fsf@amdsim2.suse.de>
2001-11-19 17:20     ` Aldy Hernandez
2001-11-27 16:58       ` Aldy Hernandez
2001-11-20  4:44 mike stump
2001-11-20 10:10 ` Aldy Hernandez
2001-11-27 18:28   ` Aldy Hernandez
2001-11-27 18:12 ` mike stump

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=3C033117.F8EDD78A@apple.com \
    --to=shebs@apple.com \
    --cc=aldyh@redhat.com \
    --cc=gcc@gcc.gnu.org \
    --cc=jsm28@cam.ac.uk \
    --cc=zlaski@apple.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).