Go to file
Paolo Bonzini 4a5eab38a4 c-common.c (c_common_type_for_mode): Build vector types on demand.
gcc/ChangeLog
2004-03-16  Paolo Bonzini  <bonzini@gnu.org>

	* c-common.c (c_common_type_for_mode): Build vector types on
	demand.
	(handle_mode_attribute): Deprecate using the mode attribute
	to create vector types.  Fix indentation.
	(vector_type_node_list): Remove.
	(handle_vector_size_attribute): Create vector types on demand.
	Strip a NON_LVALUE_EXPR from the attribute if there is one.
	* c-typeck.c (comptypes): Make vector types compatible if they
	have the same underlying mode.
	(convert_for_assignment): Use comptypes to convert between
	vector types.
	* tree.c (build_common_tree_nodes_2): Do not create vector types.
	* config/arm/arm.c (arm_init_iwmmxt_builtins): Create necessary
	vector types.
	* tree.h: Remove vector types.
	* config/i386/i386.c (i386_init_mmx_sse_builtins): Likewise.
	* config/rs6000/rs6000.c (rs6000_init_builtins): Likewise.
	(V16QI_type_node, V2SI_type_node, V2SF_type_node, V4HI_type_node,
	V4SI_type_node, V4SF_type_node, V8HI_type_node): New globals.
	* doc/extend.texi (Vector Types): Document how to use the
	vector_size attribute to create vectors, rather than mode.

	* config/arm/mmintrin.h: Use vector_size attribute, not mode.
	* config/i386/emmintrin.h: Likewise.
	* config/i386/mmintrin.h: Likewise.
	* config/i386/xmmintrin.h: Likewise.
	* config/sh/ushmedia.h: Likwise.

testsuite/ChangeLog
2004-03-16  Paolo Bonzini  <bonzini@gnu.org>

	* g++.dg/eh/simd-1.C: Use vector_size attribute, not mode.
	* g++.dg/eh/simd-2.C: Likewise.
	* g++.dg/init/array10.C: Likewise.
	* gcc.c-torture/compile/simd-1.c: Likewise.
	* gcc.c-torture/compile/simd-2.c: Likewise.
	* gcc.c-torture/compile/simd-3.c: Likewise.
	* gcc.c-torture/compile/simd-4.c: Likewise.
	* gcc.c-torture/compile/simd-6.c: Likewise.
	* gcc.c-torture/execute/simd-1.c: Likewise.
	* gcc.c-torture/execute/simd-2.c: Likewise.
	* gcc.dg/compat/vector-defs.h: Likewise.
	* gcc.dg/20020531-1.c: Likewise.
	* gcc.dg/altivec-3.c: Likewise.
	* gcc.dg/altivec-4.c: Likewise.
	* gcc.dg/altivec-varargs-1.c: Likewise.
	* testsuite/gcc.dg/compat/vector-defs.h: Likewise.
	* gcc.dg/i386-mmx-3.c: Likewise.
	* gcc.dg/i386-sse-4.c: Likewise.
	* gcc.dg/i386-sse-5.c: Likewise.
	* gcc.dg/i386-sse-8.c: Likewise.
	* gcc.dg/simd-1.c: Likewise.
	* gcc.dg/20030218-1.c: Likewise.  Plus, do not declare
	__ev64_opaque__ since the machine description provides it.

Index: c-common.c
===================================================================
RCS file: /cvs/gcc/gcc/gcc/c-common.c,v
retrieving revision 1.487
diff -u -r1.487 c-common.c
--- c-common.c	26 Feb 2004 01:24:37 -0000	1.487
+++ c-common.c	10 Mar 2004 10:25:28 -0000
@@ -1874,38 +1874,12 @@
   if (mode == TYPE_MODE (build_pointer_type (integer_type_node)))
     return unsignedp ? make_unsigned_type (mode) : make_signed_type (mode);

-  switch (mode)
+  if (VECTOR_MODE_P (mode))
     {
-    case V16QImode:

From-SVN: r79544
2004-03-16 20:37:31 +00:00
boehm-gc configure.ac: Bump AC_PREREQ to 2.59. 2004-03-11 00:27:41 +00:00
config (top level) 2004-03-11 05:01:17 +00:00
contrib gcc_update (files_and_dependencies): Insert libffi dependencies. 2004-03-16 20:19:19 +01:00
fastjar configure.ac: Bump AC_PREREQ to 2.59. 2004-03-11 00:27:41 +00:00
gcc c-common.c (c_common_type_for_mode): Build vector types on demand. 2004-03-16 20:37:31 +00:00
include * dyn-string.h: Update copyright date. 2004-02-25 01:42:20 +00:00
INSTALL
intl configure.ac: Bump AC_PREREQ to 2.59. 2004-03-11 00:27:41 +00:00
libada configure.ac: Bump AC_PREREQ to 2.59. 2004-03-11 00:27:41 +00:00
libf2c darwin.h (TARGET_OPTION_TRANSLATE_TABLE): Refer to SUBTARGET_OPTION_TRANSLATE_TABLE for architecture-specific options. 2004-02-21 09:08:37 +00:00
libffi types.c: Fix alignment size of X86_WIN32 case int64 and double. 2004-03-16 20:17:33 +01:00
libiberty configure.ac: Bump version to 2.59. 2004-03-09 23:02:47 +00:00
libjava 2004-03-16 Michael Koch <konqueror@gmx.de> 2004-03-16 11:51:23 +00:00
libobjc Makefile.in, [...]: Update copyright years. 2004-03-16 10:45:26 +00:00
libstdc++-v3 Daily bump. 2004-03-16 00:16:11 +00:00
maintainer-scripts gcc_release (SNAPSHOTS_DIR): New variable. 2004-03-14 22:38:57 +00:00
zlib
.cvsignore
ABOUT-NLS
ChangeLog Makefile.tpl: Introduce experimental top level bootstrap support. 2004-03-16 00:03:30 +00:00
config-ml.in
config.guess Index: ChangeLog 2004-02-20 16:15:55 +00:00
config.if
config.rpath
config.sub Index: ChangeLog 2004-02-20 16:15:55 +00:00
configure Makefile.tpl: Introduce experimental top level bootstrap support. 2004-03-16 00:03:30 +00:00
configure.in Makefile.tpl: Introduce experimental top level bootstrap support. 2004-03-16 00:03:30 +00:00
COPYING
COPYING.LIB
install-sh re PR bootstrap/11932 (Parallel bootstrap failure with sparc libiberty multilib) 2004-02-20 02:01:16 +00:00
libtool.m4
ltcf-c.sh
ltcf-cxx.sh
ltcf-gcj.sh
ltconfig ltconfig: Disable building static libraries if building shared libraries on AIX 5L. 2004-03-05 16:03:19 -05:00
ltmain.sh Partial merge from upstream: 2004-02-04 23:58:48 +00:00
MAINTAINERS * MAINTAINERS: Update my email address. 2004-03-11 09:30:09 +11:00
Makefile.def PR ada/6637, PR ada/5911 2004-02-10 11:54:48 +01:00
Makefile.in Makefile.tpl: Introduce experimental top level bootstrap support. 2004-03-16 00:03:30 +00:00
Makefile.tpl Makefile.tpl: Introduce experimental top level bootstrap support. 2004-03-16 00:03:30 +00:00
missing
mkdep
mkinstalldirs re PR bootstrap/11932 (Parallel bootstrap failure with sparc libiberty multilib) 2004-02-20 02:01:16 +00:00
move-if-change
README
README.SCO
symlink-tree
ylwrap

This directory contains the GNU Compiler Collection (GCC).

The GNU Compiler Collection is free software.  See the file COPYING
for copying permission.  The manuals, and some of the runtime
libraries, are under different terms; see the individual source files
for details.

The directory INSTALL contains copies of the installation information
as HTML and plain text.  The source of this information is
gcc/doc/install.texi.  The installation information includes details
of what is included in the GCC sources and what files GCC installs.

See the file gcc/doc/gcc.texi (together with other files that it
includes) for usage and porting information.  An online readable
version of the manual is in the files gcc/doc/gcc.info*.

See http://gcc.gnu.org/bugs.html for how to report bugs usefully.