diff options
author | Richard Sandiford <richard.sandiford@arm.com> | 2022-09-29 11:32:55 +0100 |
---|---|---|
committer | Richard Sandiford <richard.sandiford@arm.com> | 2022-09-29 11:32:55 +0100 |
commit | 60dee638c8a7ae59c033868de7e7638c88b38ed2 (patch) | |
tree | f28201e0da3ce9629fb953074d75fa19e8640c7a /gcc/common/config | |
parent | 13af9e9fda391f4f0566ad8f0b4d0448a7e984d0 (diff) | |
download | gcc-60dee638c8a7ae59c033868de7e7638c88b38ed2.zip gcc-60dee638c8a7ae59c033868de7e7638c88b38ed2.tar.gz gcc-60dee638c8a7ae59c033868de7e7638c88b38ed2.tar.bz2 |
aarch64: Tweak constness of option-related data
Some of the option structures have all-const member variables.
That doesn't seem necessary: we can just use const on the objects
that are supposed to be read-only.
Also, with the new, more C++-heavy option handling, it seems
better to use constexpr for the static data, to make sure that
we're not adding unexpected overhead.
gcc/
* common/config/aarch64/aarch64-common.cc (aarch64_option_extension)
(processor_name_to_arch, arch_to_arch_name): Remove const from
member variables.
(all_extensions, all_cores, all_architectures): Make a constexpr.
* config/aarch64/aarch64.cc (processor): Remove const from
member variables.
(all_architectures): Make a constexpr.
* config/aarch64/driver-aarch64.cc (aarch64_core_data)
(aarch64_arch_driver_info): Remove const from member variables.
(aarch64_cpu_data, aarch64_arches): Make a constexpr.
(get_arch_from_id): Return a pointer to const.
(host_detect_local_cpu): Update accordingly.
Diffstat (limited to 'gcc/common/config')
-rw-r--r-- | gcc/common/config/aarch64/aarch64-common.cc | 26 |
1 files changed, 13 insertions, 13 deletions
diff --git a/gcc/common/config/aarch64/aarch64-common.cc b/gcc/common/config/aarch64/aarch64-common.cc index 8760e09..918ac84 100644 --- a/gcc/common/config/aarch64/aarch64-common.cc +++ b/gcc/common/config/aarch64/aarch64-common.cc @@ -127,14 +127,14 @@ aarch64_handle_option (struct gcc_options *opts, /* An ISA extension in the co-processor and main instruction set space. */ struct aarch64_option_extension { - const char *const name; - const uint64_t flag_canonical; - const uint64_t flags_on; - const uint64_t flags_off; + const char *name; + uint64_t flag_canonical; + uint64_t flags_on; + uint64_t flags_off; }; /* ISA extensions in AArch64. */ -static const struct aarch64_option_extension all_extensions[] = +static constexpr aarch64_option_extension all_extensions[] = { #define AARCH64_OPT_EXTENSION(NAME, IDENT, C, D, E, F) \ {NAME, AARCH64_FL_##IDENT, \ @@ -147,21 +147,21 @@ static const struct aarch64_option_extension all_extensions[] = struct processor_name_to_arch { - const char *const processor_name; - const enum aarch64_arch arch; - const uint64_t flags; + const char *processor_name; + aarch64_arch arch; + uint64_t flags; }; struct arch_to_arch_name { - const enum aarch64_arch arch; - const char *const arch_name; - const uint64_t flags; + aarch64_arch arch; + const char *arch_name; + uint64_t flags; }; /* Map processor names to the architecture revision they implement and the default set of architectural feature flags they support. */ -static const struct processor_name_to_arch all_cores[] = +static constexpr processor_name_to_arch all_cores[] = { #define AARCH64_CORE(NAME, CORE_IDENT, C, ARCH_IDENT, E, F, G, H, I) \ {NAME, AARCH64_ARCH_##ARCH_IDENT, feature_deps::cpu_##CORE_IDENT}, @@ -171,7 +171,7 @@ static const struct processor_name_to_arch all_cores[] = }; /* Map architecture revisions to their string representation. */ -static const struct arch_to_arch_name all_architectures[] = +static constexpr arch_to_arch_name all_architectures[] = { #define AARCH64_ARCH(NAME, B, ARCH_IDENT, D, E) \ {AARCH64_ARCH_##ARCH_IDENT, NAME, feature_deps::ARCH_IDENT ().enable}, |