diff options
author | Steve Ellcey <sellcey@marvell.com> | 2019-02-14 21:04:12 +0000 |
---|---|---|
committer | Steve Ellcey <sje@gcc.gnu.org> | 2019-02-14 21:04:12 +0000 |
commit | 497f281c25c4af5fc62c8662c23fc2a615abc4bd (patch) | |
tree | d4c26625a946756e69ec7e6667d579141374e7f6 | |
parent | 86b69c6b11d70efe97dd6ff1f1047c37256fd202 (diff) | |
download | gcc-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/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/config/aarch64/aarch64.c | 16 |
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 |