aboutsummaryrefslogtreecommitdiff
path: root/gcc/tree.c
diff options
context:
space:
mode:
authorPaolo Bonzini <bonzini@gcc.gnu.org>2009-04-16 09:11:39 +0000
committerPaolo Bonzini <bonzini@gcc.gnu.org>2009-04-16 09:11:39 +0000
commitb6fc2cdb350cd4f4d1591264caf57ad07a7ff78a (patch)
treed76cd3e5993a1a60d42ee32e88262c35591e9e3a /gcc/tree.c
parentb4763f5c4a9d2bde0963bbb9422aa3480c5e81da (diff)
downloadgcc-b6fc2cdb350cd4f4d1591264caf57ad07a7ff78a.zip
gcc-b6fc2cdb350cd4f4d1591264caf57ad07a7ff78a.tar.gz
gcc-b6fc2cdb350cd4f4d1591264caf57ad07a7ff78a.tar.bz2
c-common.c (vector_targets_convertible_p, [...]): Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p.
2009-04-16 Paolo Bonzini <bonzini@gnu.org> * c-common.c (vector_targets_convertible_p, vector_types_convertible_p): Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p. * c-typeck.c (really_start_incremental_init): Likewise. * target-def.h (TARGET_VECTOR_OPAQUE_P): Remove. (TARGET_INITIALIZER): Remove it. * target.h (struct target): Remove vector_opaque_p. * tree.c (build_opaque_vector_type): New. * tree.h (TYPE_VECTOR_OPAQUE): New. (build_opaque_vector_type): Declare. * doc/tm.texi (TARGET_VECTOR_OPAQUE_P): Remove. * config/rs6000/rs6000.c (build_opaque_vector_type, rs6000_is_vector_type, TARGET_VECTOR_OPAQUE_P): Remove. (rs6000_init_builtins): Use build_opaque_vector_type for opaque_V4SI_type_node. cp: 2009-04-16 Paolo Bonzini <bonzini@gnu.org> * decl.c (check_initializer): Use TYPE_VECTOR_OPAQUE instead of targetm.vector_opaque_p. From-SVN: r146153
Diffstat (limited to 'gcc/tree.c')
-rw-r--r--gcc/tree.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/gcc/tree.c b/gcc/tree.c
index a66479d..ac6c31e 100644
--- a/gcc/tree.c
+++ b/gcc/tree.c
@@ -7970,6 +7970,19 @@ build_vector_type (tree innertype, int nunits)
return make_vector_type (innertype, nunits, VOIDmode);
}
+/* Similarly, but takes the inner type and number of units, which must be
+ a power of two. */
+
+tree
+build_opaque_vector_type (tree innertype, int nunits)
+{
+ tree t;
+ innertype = build_distinct_type_copy (innertype);
+ t = make_vector_type (innertype, nunits, VOIDmode);
+ TYPE_VECTOR_OPAQUE (t) = true;
+ return t;
+}
+
/* Build RESX_EXPR with given REGION_NUMBER. */
tree