This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH, ARM/AArch64] drop aarch32 support for falkor/qdf24xx


On Thu, May 25, 2017 at 2:25 AM, Richard Earnshaw (lists)
<Richard.Earnshaw@arm.com> wrote:
> Having pondered this over night, I think the lowest risk thing to do,
> provided it applies cleanly to the gcc-7 branch, is just commit the
> entire patch on the branch and be done with it.  The risk from removing
> this code is pretty minimal and removing it all is the best way of
> avoiding things like unexpected compiler warnings breaking the build.
> If it doesn't apply cleanly, then just drop the documentation.

The patch backports cleanly.  I've tested the patch on the
gcc-7-branch, with both armv8 and aarch64 bootstraps and make checks,
with no regressions.  Ok to check in?

Jim
	gcc/
	* config/aarch64/aarch64-cost-tables.h (qdf24xx_extra_costs): Move to
	here.
	* config/arm/aarch-cost-tables.h (qdf24xx_extra_costs): From here.
	* config/arm/arm-cpu-cdata.h: Regenerate.
	* config/arm/arm-cpu-data.h, config/arm/arm-cpu.h: Likewise.
	* config/arm/arm-tables.opt, config/arm/arm-tune.md: Likewise.
	* config/arm/arm-cpus.in: Delete falkor and qdf24xx entries.
	* config/arm/arm.c (arm_qdf24xx_tune): Delete.
	* config/arm/bpabi.h (BE8_LINK_SPEC): Delete falkor and qdf24xx
	support.
	* config/arm/t-aprofile (MULTILIB_MATCHES): Delete falkor and qdf24xx
	support.
	* config/arm/t-rmprofile: Likewise.
	* doc/invoke.texi (ARM Options): Drop falkor and qdf24xx support.

Index: gcc/config/aarch64/aarch64-cost-tables.h
===================================================================
--- gcc/config/aarch64/aarch64-cost-tables.h	(revision 249025)
+++ gcc/config/aarch64/aarch64-cost-tables.h	(working copy)
@@ -23,7 +23,111 @@
 
 #include "config/arm/aarch-cost-tables.h"
 
-/* ThunderX does not have implement AArch32.  */
+/* QDF24xx does not implement AArch32.  */
+const struct cpu_cost_table qdf24xx_extra_costs =
+{
+  /* ALU */
+  {
+    0,                 /* arith.  */
+    0,                 /* logical.  */
+    0,                 /* shift.  */
+    0,                 /* shift_reg.  */
+    COSTS_N_INSNS (1), /* arith_shift.  */
+    COSTS_N_INSNS (1), /* arith_shift_reg.  */
+    0,                 /* log_shift.  */
+    0,                 /* log_shift_reg.  */
+    0,                 /* extend.  */
+    0,                 /* extend_arith.  */
+    0,                 /* bfi.  */
+    0,                 /* bfx.  */
+    0,                 /* clz.  */
+    0,	               /* rev.  */
+    0,                 /* non_exec.  */
+    true               /* non_exec_costs_exec.  */
+  },
+  {
+    /* MULT SImode */
+    {
+      COSTS_N_INSNS (2),       /* simple.  */
+      COSTS_N_INSNS (2),       /* flag_setting.  */
+      COSTS_N_INSNS (2),       /* extend.  */
+      COSTS_N_INSNS (2),       /* add.  */
+      COSTS_N_INSNS (2),       /* extend_add.  */
+      COSTS_N_INSNS (4)       /* idiv.  */
+    },
+    /* MULT DImode */
+    {
+      COSTS_N_INSNS (3),       /* simple.  */
+      0,                       /* flag_setting (N/A).  */
+      COSTS_N_INSNS (3),       /* extend.  */
+      COSTS_N_INSNS (3),       /* add.  */
+      COSTS_N_INSNS (3),       /* extend_add.  */
+      COSTS_N_INSNS (9)       /* idiv.  */
+    }
+  },
+  /* LD/ST */
+  {
+    COSTS_N_INSNS (2),         /* load.  */
+    COSTS_N_INSNS (2),         /* load_sign_extend.  */
+    COSTS_N_INSNS (2),         /* ldrd.  */
+    COSTS_N_INSNS (2),         /* ldm_1st.  */
+    1,                         /* ldm_regs_per_insn_1st.  */
+    2,                         /* ldm_regs_per_insn_subsequent.  */
+    COSTS_N_INSNS (2),         /* loadf.  */
+    COSTS_N_INSNS (2),         /* loadd.  */
+    COSTS_N_INSNS (3),         /* load_unaligned.  */
+    0,                         /* store.  */
+    0,                         /* strd.  */
+    0,                         /* stm_1st.  */
+    1,                         /* stm_regs_per_insn_1st.  */
+    2,                         /* stm_regs_per_insn_subsequent.  */
+    0,                         /* storef.  */
+    0,                         /* stored.  */
+    COSTS_N_INSNS (1),         /* store_unaligned.  */
+    COSTS_N_INSNS (1),         /* loadv.  */
+    COSTS_N_INSNS (1)          /* storev.  */
+  },
+  {
+    /* FP SFmode */
+    {
+      COSTS_N_INSNS (6),      /* div.  */
+      COSTS_N_INSNS (5),       /* mult.  */
+      COSTS_N_INSNS (5),       /* mult_addsub. */
+      COSTS_N_INSNS (5),       /* fma.  */
+      COSTS_N_INSNS (3),       /* addsub.  */
+      COSTS_N_INSNS (1),       /* fpconst. */
+      COSTS_N_INSNS (1),       /* neg.  */
+      COSTS_N_INSNS (2),       /* compare.  */
+      COSTS_N_INSNS (4),       /* widen.  */
+      COSTS_N_INSNS (4),       /* narrow.  */
+      COSTS_N_INSNS (4),       /* toint.  */
+      COSTS_N_INSNS (4),       /* fromint.  */
+      COSTS_N_INSNS (2)        /* roundint.  */
+    },
+    /* FP DFmode */
+    {
+      COSTS_N_INSNS (11),      /* div.  */
+      COSTS_N_INSNS (6),       /* mult.  */
+      COSTS_N_INSNS (6),       /* mult_addsub.  */
+      COSTS_N_INSNS (6),       /* fma.  */
+      COSTS_N_INSNS (3),       /* addsub.  */
+      COSTS_N_INSNS (1),       /* fpconst.  */
+      COSTS_N_INSNS (1),       /* neg.  */
+      COSTS_N_INSNS (2),       /* compare.  */
+      COSTS_N_INSNS (4),       /* widen.  */
+      COSTS_N_INSNS (4),       /* narrow.  */
+      COSTS_N_INSNS (4),       /* toint.  */
+      COSTS_N_INSNS (4),       /* fromint.  */
+      COSTS_N_INSNS (2)        /* roundint.  */
+    }
+  },
+  /* Vector */
+  {
+    COSTS_N_INSNS (1)  /* alu.  */
+  }
+};
+
+/* ThunderX does not implement AArch32.  */
 const struct cpu_cost_table thunderx_extra_costs =
 {
   /* ALU */
@@ -230,6 +334,4 @@ const struct cpu_cost_table thunderx2t99_extra_cos
   }
 };
 
-
 #endif
-
Index: gcc/config/arm/aarch-cost-tables.h
===================================================================
--- gcc/config/arm/aarch-cost-tables.h	(revision 249025)
+++ gcc/config/arm/aarch-cost-tables.h	(working copy)
@@ -537,107 +537,4 @@ const struct cpu_cost_table xgene1_extra_costs =
   }
 };
 
-const struct cpu_cost_table qdf24xx_extra_costs =
-{
-  /* ALU */
-  {
-    0,                 /* arith.  */
-    0,                 /* logical.  */
-    0,                 /* shift.  */
-    0,                 /* shift_reg.  */
-    COSTS_N_INSNS (1), /* arith_shift.  */
-    COSTS_N_INSNS (1), /* arith_shift_reg.  */
-    0,                 /* log_shift.  */
-    0,                 /* log_shift_reg.  */
-    0,                 /* extend.  */
-    0,                 /* extend_arith.  */
-    0,                 /* bfi.  */
-    0,                 /* bfx.  */
-    0,                 /* clz.  */
-    0,	               /* rev.  */
-    0,                 /* non_exec.  */
-    true               /* non_exec_costs_exec.  */
-  },
-  {
-    /* MULT SImode */
-    {
-      COSTS_N_INSNS (2),       /* simple.  */
-      COSTS_N_INSNS (2),       /* flag_setting.  */
-      COSTS_N_INSNS (2),       /* extend.  */
-      COSTS_N_INSNS (2),       /* add.  */
-      COSTS_N_INSNS (2),       /* extend_add.  */
-      COSTS_N_INSNS (4)       /* idiv.  */
-    },
-    /* MULT DImode */
-    {
-      COSTS_N_INSNS (3),       /* simple.  */
-      0,                       /* flag_setting (N/A).  */
-      COSTS_N_INSNS (3),       /* extend.  */
-      COSTS_N_INSNS (3),       /* add.  */
-      COSTS_N_INSNS (3),       /* extend_add.  */
-      COSTS_N_INSNS (9)       /* idiv.  */
-    }
-  },
-  /* LD/ST */
-  {
-    COSTS_N_INSNS (2),         /* load.  */
-    COSTS_N_INSNS (2),         /* load_sign_extend.  */
-    COSTS_N_INSNS (2),         /* ldrd.  */
-    COSTS_N_INSNS (2),         /* ldm_1st.  */
-    1,                         /* ldm_regs_per_insn_1st.  */
-    2,                         /* ldm_regs_per_insn_subsequent.  */
-    COSTS_N_INSNS (2),         /* loadf.  */
-    COSTS_N_INSNS (2),         /* loadd.  */
-    COSTS_N_INSNS (3),         /* load_unaligned.  */
-    0,                         /* store.  */
-    0,                         /* strd.  */
-    0,                         /* stm_1st.  */
-    1,                         /* stm_regs_per_insn_1st.  */
-    2,                         /* stm_regs_per_insn_subsequent.  */
-    0,                         /* storef.  */
-    0,                         /* stored.  */
-    COSTS_N_INSNS (1),         /* store_unaligned.  */
-    COSTS_N_INSNS (1),         /* loadv.  */
-    COSTS_N_INSNS (1)          /* storev.  */
-  },
-  {
-    /* FP SFmode */
-    {
-      COSTS_N_INSNS (6),      /* div.  */
-      COSTS_N_INSNS (5),       /* mult.  */
-      COSTS_N_INSNS (5),       /* mult_addsub. */
-      COSTS_N_INSNS (5),       /* fma.  */
-      COSTS_N_INSNS (3),       /* addsub.  */
-      COSTS_N_INSNS (1),       /* fpconst. */
-      COSTS_N_INSNS (1),       /* neg.  */
-      COSTS_N_INSNS (2),       /* compare.  */
-      COSTS_N_INSNS (4),       /* widen.  */
-      COSTS_N_INSNS (4),       /* narrow.  */
-      COSTS_N_INSNS (4),       /* toint.  */
-      COSTS_N_INSNS (4),       /* fromint.  */
-      COSTS_N_INSNS (2)        /* roundint.  */
-    },
-    /* FP DFmode */
-    {
-      COSTS_N_INSNS (11),      /* div.  */
-      COSTS_N_INSNS (6),       /* mult.  */
-      COSTS_N_INSNS (6),       /* mult_addsub.  */
-      COSTS_N_INSNS (6),       /* fma.  */
-      COSTS_N_INSNS (3),       /* addsub.  */
-      COSTS_N_INSNS (1),       /* fpconst.  */
-      COSTS_N_INSNS (1),       /* neg.  */
-      COSTS_N_INSNS (2),       /* compare.  */
-      COSTS_N_INSNS (4),       /* widen.  */
-      COSTS_N_INSNS (4),       /* narrow.  */
-      COSTS_N_INSNS (4),       /* toint.  */
-      COSTS_N_INSNS (4),       /* fromint.  */
-      COSTS_N_INSNS (2)        /* roundint.  */
-    }
-  },
-  /* Vector */
-  {
-    COSTS_N_INSNS (1)  /* alu.  */
-  }
-};
-
 #endif /* GCC_AARCH_COST_TABLES_H */
Index: gcc/config/arm/arm-cpu-cdata.h
===================================================================
--- gcc/config/arm/arm-cpu-cdata.h	(revision 249025)
+++ gcc/config/arm/arm-cpu-cdata.h	(working copy)
@@ -740,20 +740,6 @@ static const struct arm_arch_core_flag arm_arch_co
     },
   },
   {
-    "falkor",
-    {
-      ISA_ARMv8a,isa_bit_crc32,
-      isa_nobit
-    },
-  },
-  {
-    "qdf24xx",
-    {
-      ISA_ARMv8a,isa_bit_crc32,
-      isa_nobit
-    },
-  },
-  {
     "xgene1",
     {
       ISA_ARMv8a,
Index: gcc/config/arm/arm-cpu-data.h
===================================================================
--- gcc/config/arm/arm-cpu-data.h	(revision 249025)
+++ gcc/config/arm/arm-cpu-data.h	(working copy)
@@ -1144,28 +1144,6 @@ static const struct processors all_cores[] =
     &arm_exynosm1_tune
   },
   {
-    "falkor",
-    TARGET_CPU_cortexa57,
-    (TF_LDSCHED),
-    "8A", BASE_ARCH_8A,
-    {
-      ISA_ARMv8a,isa_bit_crc32,
-      isa_nobit
-    },
-    &arm_qdf24xx_tune
-  },
-  {
-    "qdf24xx",
-    TARGET_CPU_cortexa57,
-    (TF_LDSCHED),
-    "8A", BASE_ARCH_8A,
-    {
-      ISA_ARMv8a,isa_bit_crc32,
-      isa_nobit
-    },
-    &arm_qdf24xx_tune
-  },
-  {
     "xgene1",
     TARGET_CPU_xgene1,
     (TF_LDSCHED),
Index: gcc/config/arm/arm-cpu.h
===================================================================
--- gcc/config/arm/arm-cpu.h	(revision 249025)
+++ gcc/config/arm/arm-cpu.h	(working copy)
@@ -123,8 +123,6 @@ enum processor_type
   TARGET_CPU_cortexa72,
   TARGET_CPU_cortexa73,
   TARGET_CPU_exynosm1,
-  TARGET_CPU_falkor,
-  TARGET_CPU_qdf24xx,
   TARGET_CPU_xgene1,
   TARGET_CPU_cortexa57cortexa53,
   TARGET_CPU_cortexa72cortexa53,
Index: gcc/config/arm/arm-cpus.in
===================================================================
--- gcc/config/arm/arm-cpus.in	(revision 249025)
+++ gcc/config/arm/arm-cpus.in	(working copy)
@@ -1020,20 +1020,6 @@ begin cpu exynos-m1
  costs exynosm1
 end cpu exynos-m1
 
-begin cpu falkor
- tune for cortex-a57
- tune flags LDSCHED
- architecture armv8-a+crc
- costs qdf24xx
-end cpu falkor
-
-begin cpu qdf24xx
- tune for cortex-a57
- tune flags LDSCHED
- architecture armv8-a+crc
- costs qdf24xx
-end cpu qdf24xx
-
 begin cpu xgene1
  tune flags LDSCHED
  architecture armv8-a
Index: gcc/config/arm/arm-tables.opt
===================================================================
--- gcc/config/arm/arm-tables.opt	(revision 249025)
+++ gcc/config/arm/arm-tables.opt	(working copy)
@@ -328,12 +328,6 @@ EnumValue
 Enum(processor_type) String(exynos-m1) Value( TARGET_CPU_exynosm1)
 
 EnumValue
-Enum(processor_type) String(falkor) Value( TARGET_CPU_falkor)
-
-EnumValue
-Enum(processor_type) String(qdf24xx) Value( TARGET_CPU_qdf24xx)
-
-EnumValue
 Enum(processor_type) String(xgene1) Value( TARGET_CPU_xgene1)
 
 EnumValue
Index: gcc/config/arm/arm-tune.md
===================================================================
--- gcc/config/arm/arm-tune.md	(revision 249025)
+++ gcc/config/arm/arm-tune.md	(working copy)
@@ -54,8 +54,7 @@
 	cortexm3,marvell_pj4,cortexa15cortexa7,
 	cortexa17cortexa7,cortexa32,cortexa35,
 	cortexa53,cortexa57,cortexa72,
-	cortexa73,exynosm1,falkor,
-	qdf24xx,xgene1,cortexa57cortexa53,
-	cortexa72cortexa53,cortexa73cortexa35,cortexa73cortexa53,
-	cortexm23,cortexm33"
+	cortexa73,exynosm1,xgene1,
+	cortexa57cortexa53,cortexa72cortexa53,cortexa73cortexa35,
+	cortexa73cortexa53,cortexm23,cortexm33"
 	(const (symbol_ref "((enum attr_tune) arm_tune)")))
Index: gcc/config/arm/arm.c
===================================================================
--- gcc/config/arm/arm.c	(revision 249025)
+++ gcc/config/arm/arm.c	(working copy)
@@ -2090,28 +2090,6 @@ const struct tune_params arm_xgene1_tune =
   tune_params::SCHED_AUTOPREF_OFF
 };
 
-const struct tune_params arm_qdf24xx_tune =
-{
-  &qdf24xx_extra_costs,
-  NULL,                                         /* Scheduler cost adjustment.  */
-  arm_default_branch_cost,
-  &arm_default_vec_cost,			/* Vectorizer costs.  */
-  1,						/* Constant limit.  */
-  2,						/* Max cond insns.  */
-  8,						/* Memset max inline.  */
-  4,						/* Issue rate.  */
-  ARM_PREFETCH_BENEFICIAL (0, -1, 64),
-  tune_params::PREF_CONST_POOL_FALSE,
-  tune_params::PREF_LDRD_TRUE,
-  tune_params::LOG_OP_NON_SHORT_CIRCUIT_TRUE,	/* Thumb.  */
-  tune_params::LOG_OP_NON_SHORT_CIRCUIT_TRUE,	/* ARM.  */
-  tune_params::DISPARAGE_FLAGS_ALL,
-  tune_params::PREF_NEON_64_FALSE,
-  tune_params::PREF_NEON_STRINGOPS_TRUE,
-  FUSE_OPS (tune_params::FUSE_MOVW_MOVT),
-  tune_params::SCHED_AUTOPREF_FULL
-};
-
 /* Branches can be dual-issued on Cortex-A5, so conditional execution is
    less appealing.  Set max_insns_skipped to a low value.  */
 
Index: gcc/config/arm/bpabi.h
===================================================================
--- gcc/config/arm/bpabi.h	(revision 249025)
+++ gcc/config/arm/bpabi.h	(working copy)
@@ -79,8 +79,6 @@
    |mcpu=cortex-a73.cortex-a35				\
    |mcpu=cortex-a73.cortex-a53				\
    |mcpu=exynos-m1                                      \
-   |mcpu=falkor						\
-   |mcpu=qdf24xx					\
    |mcpu=xgene1                                         \
    |mcpu=cortex-m1.small-multiply                       \
    |mcpu=cortex-m0.small-multiply                       \
@@ -118,8 +116,6 @@
    |mcpu=cortex-a73.cortex-a35				\
    |mcpu=cortex-a73.cortex-a53				\
    |mcpu=exynos-m1                                      \
-   |mcpu=falkor						\
-   |mcpu=qdf24xx					\
    |mcpu=xgene1                                         \
    |mcpu=cortex-m1.small-multiply                       \
    |mcpu=cortex-m0.small-multiply                       \
Index: gcc/config/arm/t-aprofile
===================================================================
--- gcc/config/arm/t-aprofile	(revision 249025)
+++ gcc/config/arm/t-aprofile	(working copy)
@@ -92,8 +92,6 @@ MULTILIB_MATCHES       += march?armv8-a=mcpu?corte
 MULTILIB_MATCHES       += march?armv8-a=mcpu?cortex-a73.cortex-a35
 MULTILIB_MATCHES       += march?armv8-a=mcpu?cortex-a73.cortex-a53
 MULTILIB_MATCHES       += march?armv8-a=mcpu?exynos-m1
-MULTILIB_MATCHES       += march?armv8-a=mcpu?falkor
-MULTILIB_MATCHES       += march?armv8-a=mcpu?qdf24xx
 MULTILIB_MATCHES       += march?armv8-a=mcpu?xgene1
 
 # Arch Matches
Index: gcc/config/arm/t-rmprofile
===================================================================
--- gcc/config/arm/t-rmprofile	(revision 249025)
+++ gcc/config/arm/t-rmprofile	(working copy)
@@ -131,7 +131,6 @@ MULTILIB_MATCHES       += march?armv7=mcpu?cortex-
 MULTILIB_MATCHES       += march?armv7=mcpu?cortex-a73.cortex-a35
 MULTILIB_MATCHES       += march?armv7=mcpu?cortex-a73.cortex-a53
 MULTILIB_MATCHES       += march?armv7=mcpu?exynos-m1
-MULTILIB_MATCHES       += march?armv7=mcpu?qdf24xx
 MULTILIB_MATCHES       += march?armv7=mcpu?xgene1
 
 # Arch Matches
Index: gcc/doc/invoke.texi
===================================================================
--- gcc/doc/invoke.texi	(revision 249025)
+++ gcc/doc/invoke.texi	(working copy)
@@ -13983,8 +13983,8 @@ processors implementing the target architecture.
 Specify the name of the target processor for which GCC should tune the
 performance of the code.  Permissible values for this option are:
 @samp{generic}, @samp{cortex-a35}, @samp{cortex-a53}, @samp{cortex-a57},
-@samp{cortex-a72}, @samp{cortex-a73}, @samp{exynos-m1}, @samp{falkor},
-@samp{qdf24xx}, @samp{xgene1}, @samp{vulcan}, @samp{thunderx},
+@samp{cortex-a72}, @samp{cortex-a73}, @samp{exynos-m1},
+@samp{xgene1}, @samp{vulcan}, @samp{thunderx},
 @samp{thunderxt88}, @samp{thunderxt88p1}, @samp{thunderxt81},
 @samp{thunderxt83}, @samp{thunderx2t99}, @samp{cortex-a57.cortex-a53},
 @samp{cortex-a72.cortex-a53}, @samp{cortex-a73.cortex-a35},

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]