diff options
author | Andrew Pinski <quic_apinski@quicinc.com> | 2024-11-21 11:10:56 -0800 |
---|---|---|
committer | Andrew Pinski <quic_apinski@quicinc.com> | 2024-11-29 12:09:10 -0800 |
commit | 4c46ad730acf8c119a99210c1485b456cdb06f19 (patch) | |
tree | 10f047254ef75816f2b89b7eff21d65b89ff739b /gcc | |
parent | 5034cecefcb1b3dce460f166d63fdbc825820946 (diff) | |
download | gcc-4c46ad730acf8c119a99210c1485b456cdb06f19.zip gcc-4c46ad730acf8c119a99210c1485b456cdb06f19.tar.gz gcc-4c46ad730acf8c119a99210c1485b456cdb06f19.tar.bz2 |
aarch64: Add attributes to the data intrinsics.
All of the data intrinsics don't read/write memory nor they are fp related.
So adding the attributes will improve the code generation slightly.
Built and tested for aarch64-linux-gnu
gcc/ChangeLog:
* config/aarch64/aarch64-builtins.cc (aarch64_init_data_intrinsics): Call
aarch64_get_attributes and update calls to aarch64_general_add_builtin.
Signed-off-by: Andrew Pinski <quic_apinski@quicinc.com>
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/config/aarch64/aarch64-builtins.cc | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/gcc/config/aarch64/aarch64-builtins.cc b/gcc/config/aarch64/aarch64-builtins.cc index 9705f2d..bc1719a 100644 --- a/gcc/config/aarch64/aarch64-builtins.cc +++ b/gcc/config/aarch64/aarch64-builtins.cc @@ -2162,6 +2162,8 @@ aarch64_init_ls64_builtins (void) static void aarch64_init_data_intrinsics (void) { + /* These intrinsics are not fp nor they read/write memory. */ + tree attrs = aarch64_get_attributes (FLAG_NONE, SImode); tree uint32_fntype = build_function_type_list (uint32_type_node, uint32_type_node, NULL_TREE); tree ulong_fntype = build_function_type_list (long_unsigned_type_node, @@ -2171,22 +2173,22 @@ aarch64_init_data_intrinsics (void) uint64_type_node, NULL_TREE); aarch64_builtin_decls[AARCH64_REV16] = aarch64_general_add_builtin ("__builtin_aarch64_rev16", uint32_fntype, - AARCH64_REV16); + AARCH64_REV16, attrs); aarch64_builtin_decls[AARCH64_REV16L] = aarch64_general_add_builtin ("__builtin_aarch64_rev16l", ulong_fntype, - AARCH64_REV16L); + AARCH64_REV16L, attrs); aarch64_builtin_decls[AARCH64_REV16LL] = aarch64_general_add_builtin ("__builtin_aarch64_rev16ll", uint64_fntype, - AARCH64_REV16LL); + AARCH64_REV16LL, attrs); aarch64_builtin_decls[AARCH64_RBIT] = aarch64_general_add_builtin ("__builtin_aarch64_rbit", uint32_fntype, - AARCH64_RBIT); + AARCH64_RBIT, attrs); aarch64_builtin_decls[AARCH64_RBITL] = aarch64_general_add_builtin ("__builtin_aarch64_rbitl", ulong_fntype, - AARCH64_RBITL); + AARCH64_RBITL, attrs); aarch64_builtin_decls[AARCH64_RBITLL] = aarch64_general_add_builtin ("__builtin_aarch64_rbitll", uint64_fntype, - AARCH64_RBITLL); + AARCH64_RBITLL, attrs); } /* Implement #pragma GCC aarch64 "arm_acle.h". */ |