public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
* front end changes for altivec
@ 2001-11-16  9:10 Aldy Hernandez
  2001-11-16  9:25 ` Andreas Jaeger
                   ` (2 more replies)
  0 siblings, 3 replies; 237+ messages in thread
From: Aldy Hernandez @ 2001-11-16  9:10 UTC (permalink / raw)
  To: gcc

hi guys!

the altivec specs require changes to the gcc front end.  this has been
brought up before but no one has really commented.  now before everyone
start raising shields and going "yuck, no way", hear me out.

i would really hate to perpetually maintain a set of front end patches,
so i'm wondering if there's any sensible, least intrusive way to
implement these changes and have them incorporated into mainline gcc.

i am not a fan at all of these front end changes, but the specs are
already out there and a variety of other compilers already conform to
them.

the changes are very few and are outlined below:

    __vector keyword:
    
    	__vector int	=> mode(V4SI)
    	__vector char	=> mode(V16QI)
    	etc etc
    	
        (it could really be __altivec_vector for all i care because the
        specs allow part of the definitions to be in a separate include
        file (altivec.h?), so we could have
        
        #define __vector __altivec_vector
        
	   ...in a separate file.
    
    vector constant initializers:
    
    	__vector int foo = (5, 8, 3, 2);
    
    (yes, those are parentheses, not curlys :-()
    
i'd first like to discuss the feasability of incorporating these changes
with irritating the least amount of people, and having them accepted.

failing this, i have a few thoughts on extending the lexical analyzer to
include some sort of front end plugin support.-- but i'd like to discuss
the previous option first.

bomb away.

-- 
Aldy Hernandez			E-mail: aldyh@redhat.com
Professional Gypsy
Red Hat, Inc.

^ permalink raw reply	[flat|nested] 237+ messages in thread
* Re: Target-specific Front-Ends? (Was: front end changes for altivec)
@ 2001-11-18  8:02 mike stump
  2001-11-26 19:52 ` mike stump
  0 siblings, 1 reply; 237+ messages in thread
From: mike stump @ 2001-11-18  8:02 UTC (permalink / raw)
  To: gcc, zlaski; +Cc: aldyh, jsm28

> Date: Mon, 26 Nov 2001 18:26:45 -0800
> From: Ziemowit Laski <zlaski@apple.com>

> 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:

For the purposes you want it for, I propose we put this off into the
future as far as we can, with a little luck, we never do it.

> AltiVec is merely one example of an idiosyncratic extension that
> exists on only a small fraction of targets that GCC supports.  It
> would be nice to only enable the extension for the targets that need
> it

What would be nice, is to come up with language independent, machine
independent semantics that are nice, and provide them to the
frontends, and encourage the front ends to allow/expose them to the
user, in a MI way, since they are after all, MI.  We then use the
existing standard practice, if well designed, and we like it, to form
the basis of some future addition to the C/C++ language standard.  I
mean, they have MUL-ADD defined in the C99 standard (see fma in the
library), they certainly can add vector stuff.

Imagine a valarray of floats specialization in the C++ library that
uses vector float[8] internally, and feeds the += member functions to
the vector float[8] += gcc backend support code.  Just use valarray in
the natural way, and presto, the code uses a dual pipelined float[4]
hardware vector unit.  All the transformations to accomplish this
would be trivial enough (certainly easier than trying to intuit vector
usage in normal code.

Compile on a platform that doesn't have such hardware, the compiler
generates 8 calls to float +, as normal.  Maybe we want to expose the
maximal useful vec size, MATH_VEC_MAX_SIZE...  We might need to expose
the existence of particular operations.  Maybe...

By offering a MI way to do this, users can write their code in a
fairly portable way, and gain the benefits of such a standard.

The failings of the backend now, are, if the insn isn't supported by
the CPU, it doesn't work and the backend doesn't actually have any
operations, just a few types.  The failings of C/C++ languages are, we
need a standardized header to get at the operations, with standardized
names (not __builtin_addv4si), we might need a better syntax.  We need
to document all of the operations, and all operations always have to
work.  And we need to use these features in valarray.  We need to push
the standard out to the real folks that use these types of units, and
refine what we have to match what they need.

^ permalink raw reply	[flat|nested] 237+ messages in thread
[parent not found: <CB35D7B2-E374-11D5-AE62-0030658361CA@apple.com.suse.lists.egcs>]
* Re: Target-specific Front-Ends? (Was: front end changes for  altivec)
@ 2001-11-20  4:44 mike stump
  2001-11-20 10:10 ` Aldy Hernandez
  2001-11-27 18:12 ` mike stump
  0 siblings, 2 replies; 237+ messages in thread
From: mike stump @ 2001-11-20  4:44 UTC (permalink / raw)
  To: geoffk, ira; +Cc: gcc

> To: Ira Ruben <ira@apple.com>
> CC: gcc@gcc.gnu.org
> From: Geoff Keating <geoffk@geoffk.org>
> Date: 27 Nov 2001 12:10:15 -0800

> It won't work.  There's little or nothing that can be done about that;
> it wouldn't work even if 'vector' was a keyword.

#include <vector>
#include <gosh_what_name_here.h>

using gnu::gcc::vector;

vector<int[4]> a, b;
std::vector<int> cxx_vec;

void foo() {
     a += b;
     cxx_vec.begin();
}

or

#include <vector>
#include <gosh_what_name_here.h>

using std;

gnu::gcc::vector<int[4]> a, b;
vector<int> cxx_vec;

void foo() {
     a += b;
     cxx_vec.begin();
}

A completely trivial problem.  :-)

^ permalink raw reply	[flat|nested] 237+ messages in thread

end of thread, other threads:[~2001-12-04 19:25 UTC | newest]

Thread overview: 237+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
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
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

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).