aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSteve Ellcey <sellcey@marvell.com>2019-02-14 21:04:12 +0000
committerSteve Ellcey <sje@gcc.gnu.org>2019-02-14 21:04:12 +0000
commit497f281c25c4af5fc62c8662c23fc2a615abc4bd (patch)
treed4c26625a946756e69ec7e6667d579141374e7f6
parent86b69c6b11d70efe97dd6ff1f1047c37256fd202 (diff)
downloadgcc-497f281c25c4af5fc62c8662c23fc2a615abc4bd.zip
gcc-497f281c25c4af5fc62c8662c23fc2a615abc4bd.tar.gz
gcc-497f281c25c4af5fc62c8662c23fc2a615abc4bd.tar.bz2
aarch64.c (aarch64_attribute_table): Change affects_type_identity to true for aarch64_vector_pcs.
2018-02-14 Steve Ellcey <sellcey@marvell.com> * config/aarch64/aarch64.c (aarch64_attribute_table): Change affects_type_identity to true for aarch64_vector_pcs. (aarch64_comp_type_attributes): New function. (TARGET_COMP_TYPE_ATTRIBUTES): New macro. From-SVN: r268902
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/config/aarch64/aarch64.c16
2 files changed, 22 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 727e37e..1c4aa5d 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,10 @@
+2018-02-14 Steve Ellcey <sellcey@marvell.com>
+
+ * config/aarch64/aarch64.c (aarch64_attribute_table): Change
+ affects_type_identity to true for aarch64_vector_pcs.
+ (aarch64_comp_type_attributes): New function.
+ (TARGET_COMP_TYPE_ATTRIBUTES): New macro.
+
2019-02-14 Tamar Christina <tamar.christina@arm.com>
PR target/88850
diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c
index 1fa28fe..9f52cc9 100644
--- a/gcc/config/aarch64/aarch64.c
+++ b/gcc/config/aarch64/aarch64.c
@@ -1180,7 +1180,7 @@ static const struct attribute_spec aarch64_attribute_table[] =
{
/* { name, min_len, max_len, decl_req, type_req, fn_type_req,
affects_type_identity, handler, exclude } */
- { "aarch64_vector_pcs", 0, 0, false, true, true, false, NULL, NULL },
+ { "aarch64_vector_pcs", 0, 0, false, true, true, true, NULL, NULL },
{ NULL, 0, 0, false, false, false, false, NULL, NULL }
};
@@ -18709,6 +18709,17 @@ aarch64_simd_clone_usable (struct cgraph_node *node)
}
}
+/* Implement TARGET_COMP_TYPE_ATTRIBUTES */
+
+static int
+aarch64_comp_type_attributes (const_tree type1, const_tree type2)
+{
+ if (lookup_attribute ("aarch64_vector_pcs", TYPE_ATTRIBUTES (type1))
+ != lookup_attribute ("aarch64_vector_pcs", TYPE_ATTRIBUTES (type2)))
+ return 0;
+ return 1;
+}
+
/* Implement TARGET_STACK_PROTECT_GUARD. In case of a
global variable based guard use the default else
return a null tree. */
@@ -19228,6 +19239,9 @@ aarch64_libgcc_floating_mode_supported_p
#undef TARGET_SIMD_CLONE_USABLE
#define TARGET_SIMD_CLONE_USABLE aarch64_simd_clone_usable
+#undef TARGET_COMP_TYPE_ATTRIBUTES
+#define TARGET_COMP_TYPE_ATTRIBUTES aarch64_comp_type_attributes
+
#if CHECKING_P
#undef TARGET_RUN_TARGET_SELFTESTS
#define TARGET_RUN_TARGET_SELFTESTS selftest::aarch64_run_selftests