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
This commit is contained in:
Steve Ellcey 2019-02-14 21:04:12 +00:00 committed by Steve Ellcey
parent 86b69c6b11
commit 497f281c25
2 changed files with 22 additions and 1 deletions

View file

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

View file

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