[arm] Eliminate SUBTARGET_CPU_DEFAULT
authorRichard Earnshaw <rearnsha@arm.com>
Thu, 3 Nov 2016 18:08:19 +0000 (18:08 +0000)
committerRichard Earnshaw <rearnsha@gcc.gnu.org>
Thu, 3 Nov 2016 18:08:19 +0000 (18:08 +0000)
* config.gcc (arm-wrs-vxworks): Set target_cpu_cname.
(arm*-freebsd*): Likewise.
(arm*-*-netbsdelf*): Likewise.
(arm*-*-linux*): Likewise.
(arm*-*-uclinux*eabi*): Likewise.
(arm*-*-phoenix*): Likewise.
(arm*-*-eabi*, arm*-*-symbianelf*, arm*-*-rtems*): Likewise.
(arm*-*-*): Don't clobber target_cpu_cname when --with-cpu is not
specified.  Default to arm6 if target_cpu_cname is not set.
* arm/arm.c (arm_option_override): Simplify logic.  Assert that the
default cpu has been correctly configured.
* arm/arm.h (TARGET_CPU_DEFAULT): Delete.
(target_cpus): Delete TARGET_CPU_generic, add TARGET_CPU_num_cores.
* arm/freebsd.h (SUBTARGET_CPU_DEFAULT): Delete.
* arm/linux-eabi.h (SUBTARGET_CPU_DEFAULT): Delete.
* arm/linux-elf.h (SUBTARGET_CPU_DEFAULT): Delete.
* arm/symbian.h (SUBTARGET_CPU_DEFAULT): Delete.
* arm/unknown-elf.h (SUBTARGET_CPU_DEFAULT): Delete.

From-SVN: r241827

gcc/ChangeLog
gcc/config/arm/arm.c
gcc/config/arm/arm.h
gcc/config/arm/freebsd.h
gcc/config/arm/linux-eabi.h
gcc/config/arm/linux-elf.h
gcc/config/arm/symbian.h
gcc/config/arm/unknown-elf.h

index aa47e5db81407a0cb78414e0ad39a0b9be783bc8..3888d217ed273f33118f90aa65aac3c41b2f0a9b 100644 (file)
@@ -1,3 +1,24 @@
+2016-11-03  Richard Earnshaw  <rearnsha@arm.com>
+
+       * config.gcc (arm-wrs-vxworks): Set target_cpu_cname.
+       (arm*-freebsd*): Likewise.
+       (arm*-*-netbsdelf*): Likewise.
+       (arm*-*-linux*): Likewise.
+       (arm*-*-uclinux*eabi*): Likewise.
+       (arm*-*-phoenix*): Likewise.
+       (arm*-*-eabi*, arm*-*-symbianelf*, arm*-*-rtems*): Likewise.
+       (arm*-*-*): Don't clobber target_cpu_cname when --with-cpu is not
+       specified.  Default to arm6 if target_cpu_cname is not set.
+       * arm/arm.c (arm_option_override): Simplify logic.  Assert that the
+       default cpu has been correctly configured.
+       * arm/arm.h (TARGET_CPU_DEFAULT): Delete.
+       (target_cpus): Delete TARGET_CPU_generic, add TARGET_CPU_num_cores.
+       * arm/freebsd.h (SUBTARGET_CPU_DEFAULT): Delete.
+       * arm/linux-eabi.h (SUBTARGET_CPU_DEFAULT): Delete.
+       * arm/linux-elf.h (SUBTARGET_CPU_DEFAULT): Delete.
+       * arm/symbian.h (SUBTARGET_CPU_DEFAULT): Delete.
+       * arm/unknown-elf.h (SUBTARGET_CPU_DEFAULT): Delete.
+
 2016-11-03  Jiong Wang  <jiong.wang@arm.com>
 
        * reg-notes.def (CFA_VAL_EXPRESSION): New entry.
index 5add0d6443b1e36ea04a76eaddf86aaf6d016820..6dc2d2d6577a80c8523b0fe1900ad0bd280322e9 100644 (file)
@@ -3104,17 +3104,7 @@ arm_option_override (void)
       arm_feature_set sought = ARM_FSET_EMPTY;;
 
       arm_selected_cpu = &all_cores[TARGET_CPU_DEFAULT];
-      if (!arm_selected_cpu->name)
-       {
-#ifdef SUBTARGET_CPU_DEFAULT
-         /* Use the subtarget default CPU if none was specified by
-            configure.  */
-         arm_selected_cpu = &all_cores[SUBTARGET_CPU_DEFAULT];
-#endif
-         /* Default to ARM6.  */
-         if (!arm_selected_cpu->name)
-           arm_selected_cpu = &all_cores[arm6];
-       }
+      gcc_assert (arm_selected_cpu->name);
 
       sel = arm_selected_cpu;
       insn_flags = sel->flags;
index b2d8422d494b84003239a14eb5196c1b5967ce50..3d11555d64750cbfc8eaf06e8a4aa2b153520cec 100644 (file)
@@ -55,7 +55,8 @@ enum target_cpus
   TARGET_CPU_##INTERNAL_IDENT,
 #include "arm-cores.def"
 #undef ARM_CORE
-  TARGET_CPU_generic
+  /* Total number of CPUs we handle.  */
+  TARGET_CPU_num_cores
 };
 
 /* The processor for which instructions should be scheduled.  */
@@ -83,12 +84,6 @@ extern GTY(()) rtx arm_target_insn;
 /* Callback to output language specific object attributes.  */
 extern void (*arm_lang_output_object_attributes_hook)(void);
 \f
-/* Just in case configure has failed to define anything.  */
-#ifndef TARGET_CPU_DEFAULT
-#define TARGET_CPU_DEFAULT TARGET_CPU_generic
-#endif
-
-
 #undef  CPP_SPEC
 #define CPP_SPEC "%(subtarget_cpp_spec)                                        \
 %{mfloat-abi=soft:%{mfloat-abi=hard:                                   \
index 0ade4e99be17ca5f752c034c1ca18ef33d5cb4bb..949c397521caa35894ef5552cd9de5055139b8b5 100644 (file)
 #undef  WCHAR_TYPE_SIZE
 #define WCHAR_TYPE_SIZE BITS_PER_WORD
 
-#if defined (TARGET_FREEBSD_ARMv6)
-#undef  SUBTARGET_CPU_DEFAULT
-#define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm1176jzs
-#else
-#undef  SUBTARGET_CPU_DEFAULT
-#define SUBTARGET_CPU_DEFAULT   TARGET_CPU_arm9
-#endif
-
 /* FreeBSD 10 does not support unaligned access for armv6 and up.
    Unaligned access support was added in FreeBSD 11.  */
 #if FBSD_MAJOR < 11
index ace84816e06c06a2e3c92aa34ba749abc5a1d3df..9cfcf9fffd965271ec5b54366d581061b2ea49d7 100644 (file)
 #undef  ARM_DEFAULT_ABI
 #define ARM_DEFAULT_ABI ARM_ABI_AAPCS_LINUX
 
-/* Default to armv5t so that thumb shared libraries work.
-   The ARM10TDMI core is the default for armv5t, so set
-   SUBTARGET_CPU_DEFAULT to achieve this.  */
-#undef  SUBTARGET_CPU_DEFAULT
-#define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm10tdmi
-
 /* TARGET_BIG_ENDIAN_DEFAULT is set in
    config.gcc for big endian configurations.  */
 #undef  TARGET_LINKER_EMULATION
index a94bd2d2f8de4024b852292fcb0d8e80fd27112f..cc17b51eeab45fe91d74efacd03808d948a1c87f 100644 (file)
@@ -45,8 +45,6 @@
 #undef  TARGET_DEFAULT
 #define TARGET_DEFAULT (TARGET_ENDIAN_DEFAULT)
 
-#define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm6
-
 #define SUBTARGET_EXTRA_LINK_SPEC " -m " TARGET_LINKER_EMULATION " -p"
 
 /* We do not have any MULTILIB_OPTIONS specified, so there are no
index fc9c350cd081a7390a2bb929f17889232669e1b3..af078d57a2c07c797279ea64dc771ba09d0f70e5 100644 (file)
 /* Support the "dllimport" attribute.  */
 #define TARGET_DLLIMPORT_DECL_ATTRIBUTES 1
 
-/* Symbian OS assumes ARM V5 or above.  Since -march=armv5 is
-   equivalent to making the ARM 10TDMI core the default, we can set
-   SUBTARGET_CPU_DEFAULT and get an equivalent effect.  */
-#undef SUBTARGET_CPU_DEFAULT
-#define SUBTARGET_CPU_DEFAULT TARGET_CPU_arm10tdmi
-
 /* The assembler should assume VFP FPU format, and armv5t.  */
 #undef SUBTARGET_ASM_FLOAT_SPEC
 #define SUBTARGET_ASM_FLOAT_SPEC \
index fafe0574ee1c6c64f85108d78bc8ed5b8cdc06f4..e5c050785a6174ef0fbe5615a8e7ee45bef385e7 100644 (file)
     }                                                                  \
   while (0)
 
-#ifndef SUBTARGET_CPU_DEFAULT
-#define SUBTARGET_CPU_DEFAULT          TARGET_CPU_arm7tdmi
-#endif
-
 /* The libgcc udivmod functions may throw exceptions.  If newlib is
    configured to support long longs in I/O, then printf will depend on
    udivmoddi4, which will depend on the exception unwind routines,