From: Andrew Pinski <apin...@marvell.com>

Right if someone supplies a -mcpu= option and then overrides
that option with -march=*, we get a warning when they conflict.
What we need is a generic cpu for each arch level but that is not
that useful because the only difference would be the arch level.
The best option is to allow -mcpu=generic -march=armv8.5-a not to
warn and that is now a generic armv8.5-a arch.

OK?  Bootstrapped and tested on aarch64-linux-gnu with no regressions.

Thanks,
Andrew Pinski

ChangeLog:
* config/aarch64/aarch64.c (aarch64_override_options): Don't
warn when the selected cpu was generic.
---
 gcc/config/aarch64/aarch64.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c
index 4a34dce..9173afe 100644
--- a/gcc/config/aarch64/aarch64.c
+++ b/gcc/config/aarch64/aarch64.c
@@ -14075,10 +14075,12 @@ aarch64_override_options (void)
        explicit_tune_core = selected_tune->ident;
     }
   /* If both -mcpu and -march are specified check that they are architecturally
-     compatible, warn if they're not and prefer the -march ISA flags.  */
+     compatible, warn if they're not and prefer the -march ISA flags.
+     Only warn if not using the generic cpu.  */
   else if (selected_arch)
     {
-      if (selected_arch->arch != selected_cpu->arch)
+      if (selected_cpu->ident != generic
+         && selected_arch->arch != selected_cpu->arch)
        {
          warning (0, "switch %<-mcpu=%s%> conflicts with %<-march=%s%> switch",
                       all_architectures[selected_cpu->arch].name,
-- 
1.8.3.1

Reply via email to