diff options
author | Richard Ball <richard.ball@arm.com> | 2024-04-09 16:31:35 +0100 |
---|---|---|
committer | Richard Ball <richard.ball@arm.com> | 2024-04-09 16:33:46 +0100 |
commit | 685d822e524cc8b2726ad6c44c2ccaabe55a198c (patch) | |
tree | b9d15fcac5af50af6856f67570a2ce5751eec359 /libgcc | |
parent | de82b0cf981e49a0bda957c0ac31146b17407e23 (diff) | |
download | gcc-685d822e524cc8b2726ad6c44c2ccaabe55a198c.zip gcc-685d822e524cc8b2726ad6c44c2ccaabe55a198c.tar.gz gcc-685d822e524cc8b2726ad6c44c2ccaabe55a198c.tar.bz2 |
aarch64: Fix ACLE SME streaming mode error in neon-sve-bridge
When using LTO, handling the pragma for sme before the pragma
for the neon-sve-bridge caused the following error on svset_neonq,
in the neon-sve-bridge.c test.
error: ACLE function '0' can only be called when SME streaming mode is enabled.
This has been resolved by changing the pragma handlers to accept two modes.
One where they add functions normally and a second in which registered_functions
is filled with a placeholder value.
By using this, the ordering of the functions can be maintained.
gcc/ChangeLog:
* config/aarch64/aarch64-c.cc (aarch64_pragma_aarch64):
Add functions_nulls parameter to pragma_handlers.
* config/aarch64/aarch64-protos.h: Likewise.
* config/aarch64/aarch64-sve-builtins.h
(enum handle_pragma_index): Add enum to count
number of pragmas to be handled.
* config/aarch64/aarch64-sve-builtins.cc
(GTY): Add global variable for initial indexes
and change overload_names to an array.
(function_builder::function_builder):
Add pragma handler information.
(function_builder::add_function):
Add code for overwriting previous
registered_functions entries.
(add_unique_function):
Use an array to register overload_names
for both pragma handler modes.
(add_overloaded_function): Likewise.
(init_builtins):
Add functions_nulls parameter to pragma_handlers.
(handle_arm_sve_h):
Initialize pragma handler information.
(handle_arm_neon_sve_bridge_h): Likewise.
(handle_arm_sme_h): Likewise.
Diffstat (limited to 'libgcc')
0 files changed, 0 insertions, 0 deletions