This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [PATCH, ARM/AArch64] drop aarch32 support for falkor/qdf24xx
- From: Jim Wilson <jim dot wilson at linaro dot org>
- To: "Richard Earnshaw (lists)" <Richard dot Earnshaw at arm dot com>
- Cc: "gcc-patches at gcc dot gnu dot org" <gcc-patches at gcc dot gnu dot org>
- Date: Fri, 9 Jun 2017 13:03:34 -0700
- Subject: Re: [PATCH, ARM/AArch64] drop aarch32 support for falkor/qdf24xx
- Authentication-results: sourceware.org; auth=none
- References: <CABXYE2VG6iYFgRKxVQcFjoJEeSWUnyP+Vgq-P=NR67u+wStE=g@mail.gmail.com> <6ebb24ef-0912-cf5f-74a4-b4acd372dbf4@arm.com> <CABXYE2XMkTimK2vdZupJ6wOZNkG5m9z=P2aF7fM0jtZFspgz-A@mail.gmail.com> <a569aa5f-121b-7ea0-401d-79da1f34292b@arm.com> <CABXYE2UNTU44gX1cvej0QEmAusyHCgTPzRgYe11jX4SQ7jEN3A@mail.gmail.com> <8a59f4fc-5450-ff42-aabd-bb32da42cd89@arm.com> <a7897e0b-3ceb-c1a3-081c-215fc73643bf@arm.com>
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},