Commit 497f281c by Steve Ellcey Committed by Steve Ellcey

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
parent 86b69c6b
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> 2019-02-14 Tamar Christina <tamar.christina@arm.com>
PR target/88850 PR target/88850
......
...@@ -1180,7 +1180,7 @@ static const struct attribute_spec aarch64_attribute_table[] = ...@@ -1180,7 +1180,7 @@ static const struct attribute_spec aarch64_attribute_table[] =
{ {
/* { name, min_len, max_len, decl_req, type_req, fn_type_req, /* { name, min_len, max_len, decl_req, type_req, fn_type_req,
affects_type_identity, handler, exclude } */ 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 } { NULL, 0, 0, false, false, false, false, NULL, NULL }
}; };
...@@ -18709,6 +18709,17 @@ aarch64_simd_clone_usable (struct cgraph_node *node) ...@@ -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 /* Implement TARGET_STACK_PROTECT_GUARD. In case of a
global variable based guard use the default else global variable based guard use the default else
return a null tree. */ return a null tree. */
...@@ -19228,6 +19239,9 @@ aarch64_libgcc_floating_mode_supported_p ...@@ -19228,6 +19239,9 @@ aarch64_libgcc_floating_mode_supported_p
#undef TARGET_SIMD_CLONE_USABLE #undef TARGET_SIMD_CLONE_USABLE
#define TARGET_SIMD_CLONE_USABLE aarch64_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 #if CHECKING_P
#undef TARGET_RUN_TARGET_SELFTESTS #undef TARGET_RUN_TARGET_SELFTESTS
#define TARGET_RUN_TARGET_SELFTESTS selftest::aarch64_run_selftests #define TARGET_RUN_TARGET_SELFTESTS selftest::aarch64_run_selftests
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment