Hi, I was looking at the AArch64 and ARM tuning structures, and realised we had a spelling mistake which leaks out in to dumps. This set of three patches fixes that mistake, in the ARM and AArch64 back-ends and in sched-deps.c.
Committed as r223938 (AArch64), r223939 (ARM) and r224940 (sched-deps.c) under the obvious rule. Thanks, James --- [AArch64 Obvious] "Fuseable" is not a word -> s/fuseable/fusible/g 2015-06-01 James Greenhalgh <james.greenha...@arm.com> * config/aarch64/aarch64-protos.h (tune_params): Rename fuseable_ops to fusible_ops. * config/aarch64/aarch64.c (generic_tunings): Rename fuseable_ops to fusible_ops. (cortexa53_tunings): Likewise. (cortexa57_tunings): Likewise. (thunderx_tunings): Likewise. (xgene1_tunings): Likewise. (aarch64_macro_fusion_p): Likewise. (aarch64_macro_fusion_pair_p): Likewise. --- [ARM Obvious] Fuseable is not a word -> s/fuseable/fusible/g 2015-06-01 James Greenhalgh <james.greenha...@arm.com> * gcc/config/arm/arm-protos.h (tune_params): Rename fuseable_ops to fusible_ops. * gcc/config/arm/arm.c (arm_print_tune_info): Likewise. (arm_macro_fusion_p): Likewise. (arm_macro_fusion_pair_p): Likewise. --- [Patch obvious] Fuseable is not a word -> s/fuseable/fusible/g 2015-06-01 James Greenhalgh <james.greenha...@arm.com> * sched-deps.c (sched_analyze_2): Replace fuseable with fusible in comment.
Index: gcc/ChangeLog =================================================================== --- gcc/ChangeLog (revision 223936) +++ gcc/ChangeLog (working copy) @@ -1,3 +1,16 @@ +2015-06-01 James Greenhalgh <james.greenha...@arm.com> + + * config/aarch64/aarch64-protos.h (tune_params): Rename + fuseable_ops to fusible_ops. + * config/aarch64/aarch64.c (generic_tunings): Rename + fuseable_ops to fusible_ops. + (cortexa53_tunings): Likewise. + (cortexa57_tunings): Likewise. + (thunderx_tunings): Likewise. + (xgene1_tunings): Likewise. + (aarch64_macro_fusion_p): Likewise. + (aarch64_macro_fusion_pair_p): Likewise. + 2015-06-01 Dominik Vogt <v...@linux.vnet.ibm.com> * config/s390/driver-native.c: New file. Index: gcc/config/aarch64/aarch64-protos.h =================================================================== --- gcc/config/aarch64/aarch64-protos.h (revision 223936) +++ gcc/config/aarch64/aarch64-protos.h (working copy) @@ -178,7 +178,7 @@ const struct cpu_branch_cost *const branch_costs; const int memmov_cost; const int issue_rate; - const unsigned int fuseable_ops; + const unsigned int fusible_ops; const int function_align; const int jump_align; const int loop_align; Index: gcc/config/aarch64/aarch64.c =================================================================== --- gcc/config/aarch64/aarch64.c (revision 223936) +++ gcc/config/aarch64/aarch64.c (working copy) @@ -356,7 +356,7 @@ &generic_branch_cost, 4, /* memmov_cost */ 2, /* issue_rate */ - AARCH64_FUSE_NOTHING, /* fuseable_ops */ + AARCH64_FUSE_NOTHING, /* fusible_ops */ 8, /* function_align. */ 8, /* jump_align. */ 4, /* loop_align. */ @@ -377,7 +377,7 @@ 4, /* memmov_cost */ 2, /* issue_rate */ (AARCH64_FUSE_MOV_MOVK | AARCH64_FUSE_ADRP_ADD - | AARCH64_FUSE_MOVK_MOVK | AARCH64_FUSE_ADRP_LDR), /* fuseable_ops */ + | AARCH64_FUSE_MOVK_MOVK | AARCH64_FUSE_ADRP_LDR), /* fusible_ops */ 8, /* function_align. */ 8, /* jump_align. */ 4, /* loop_align. */ @@ -398,7 +398,7 @@ 4, /* memmov_cost */ 3, /* issue_rate */ (AARCH64_FUSE_MOV_MOVK | AARCH64_FUSE_ADRP_ADD - | AARCH64_FUSE_MOVK_MOVK), /* fuseable_ops */ + | AARCH64_FUSE_MOVK_MOVK), /* fusible_ops */ 16, /* function_align. */ 8, /* jump_align. */ 4, /* loop_align. */ @@ -418,7 +418,7 @@ &generic_branch_cost, 6, /* memmov_cost */ 2, /* issue_rate */ - AARCH64_FUSE_CMP_BRANCH, /* fuseable_ops */ + AARCH64_FUSE_CMP_BRANCH, /* fusible_ops */ 8, /* function_align. */ 8, /* jump_align. */ 8, /* loop_align. */ @@ -438,7 +438,7 @@ &generic_branch_cost, 6, /* memmov_cost */ 4, /* issue_rate */ - AARCH64_FUSE_NOTHING, /* fuseable_ops */ + AARCH64_FUSE_NOTHING, /* fusible_ops */ 16, /* function_align. */ 8, /* jump_align. */ 16, /* loop_align. */ @@ -10892,7 +10892,7 @@ static bool aarch64_macro_fusion_p (void) { - return aarch64_tune_params->fuseable_ops != AARCH64_FUSE_NOTHING; + return aarch64_tune_params->fusible_ops != AARCH64_FUSE_NOTHING; } @@ -10912,7 +10912,7 @@ return false; if (simple_sets_p - && (aarch64_tune_params->fuseable_ops & AARCH64_FUSE_MOV_MOVK)) + && (aarch64_tune_params->fusible_ops & AARCH64_FUSE_MOV_MOVK)) { /* We are trying to match: prev (mov) == (set (reg r0) (const_int imm16)) @@ -10937,7 +10937,7 @@ } if (simple_sets_p - && (aarch64_tune_params->fuseable_ops & AARCH64_FUSE_ADRP_ADD)) + && (aarch64_tune_params->fusible_ops & AARCH64_FUSE_ADRP_ADD)) { /* We're trying to match: @@ -10963,7 +10963,7 @@ } if (simple_sets_p - && (aarch64_tune_params->fuseable_ops & AARCH64_FUSE_MOVK_MOVK)) + && (aarch64_tune_params->fusible_ops & AARCH64_FUSE_MOVK_MOVK)) { /* We're trying to match: @@ -10992,7 +10992,7 @@ } if (simple_sets_p - && (aarch64_tune_params->fuseable_ops & AARCH64_FUSE_ADRP_LDR)) + && (aarch64_tune_params->fusible_ops & AARCH64_FUSE_ADRP_LDR)) { /* We're trying to match: prev (adrp) == (set (reg r0) @@ -11023,7 +11023,7 @@ } } - if ((aarch64_tune_params->fuseable_ops & AARCH64_FUSE_CMP_BRANCH) + if ((aarch64_tune_params->fusible_ops & AARCH64_FUSE_CMP_BRANCH) && any_condjump_p (curr)) { enum attr_type prev_type = get_attr_type (prev);
Index: gcc/ChangeLog =================================================================== --- gcc/ChangeLog (revision 223938) +++ gcc/ChangeLog (working copy) @@ -1,5 +1,13 @@ 2015-06-01 James Greenhalgh <james.greenha...@arm.com> + * gcc/config/arm/arm-protos.h (tune_params): Rename fuseable_ops + to fusible_ops. + * gcc/config/arm/arm.c (arm_print_tune_info): Likewise. + (arm_macro_fusion_p): Likewise. + (arm_macro_fusion_pair_p): Likewise. + +2015-06-01 James Greenhalgh <james.greenha...@arm.com> + * config/aarch64/aarch64-protos.h (tune_params): Rename fuseable_ops to fusible_ops. * config/aarch64/aarch64.c (generic_tunings): Rename Index: gcc/config/arm/arm-protos.h =================================================================== --- gcc/config/arm/arm-protos.h (revision 223936) +++ gcc/config/arm/arm-protos.h (working copy) @@ -291,7 +291,7 @@ /* Prefer to inline string operations like memset by using Neon. */ enum {PREF_NEON_STRINGOPS_FALSE, PREF_NEON_STRINGOPS_TRUE} string_ops_prefer_neon: 1; - /* Bitfield encoding the fuseable pairs of instructions. Use FUSE_OPS + /* Bitfield encoding the fusible pairs of instructions. Use FUSE_OPS in an initializer if multiple fusion operations are supported on a target. */ enum fuse_ops @@ -298,7 +298,7 @@ { FUSE_NOTHING = 0, FUSE_MOVW_MOVT = 1 << 0 - } fuseable_ops: 1; + } fusible_ops: 1; /* Depth of scheduling queue to check for L2 autoprefetcher. */ enum {SCHED_AUTOPREF_OFF, SCHED_AUTOPREF_RANK, SCHED_AUTOPREF_FULL} sched_autopref: 2; Index: gcc/config/arm/arm.c =================================================================== --- gcc/config/arm/arm.c (revision 223936) +++ gcc/config/arm/arm.c (working copy) @@ -25522,8 +25522,8 @@ (int) current_tune->string_ops_prefer_neon); asm_fprintf (asm_out_file, "\t\t@max_insns_inline_memset:\t%d\n", current_tune->max_insns_inline_memset); - asm_fprintf (asm_out_file, "\t\t@fuseable_ops:\t%u\n", - current_tune->fuseable_ops); + asm_fprintf (asm_out_file, "\t\t@fusible_ops:\t%u\n", + current_tune->fusible_ops); asm_fprintf (asm_out_file, "\t\t@sched_autopref:\t%d\n", (int) current_tune->sched_autopref); } @@ -29160,7 +29160,7 @@ static bool arm_macro_fusion_p (void) { - return current_tune->fuseable_ops != tune_params::FUSE_NOTHING; + return current_tune->fusible_ops != tune_params::FUSE_NOTHING; } @@ -29181,7 +29181,7 @@ if (!arm_macro_fusion_p ()) return false; - if (current_tune->fuseable_ops & tune_params::FUSE_MOVW_MOVT) + if (current_tune->fusible_ops & tune_params::FUSE_MOVW_MOVT) { /* We are trying to fuse movw imm / movt imm
Index: gcc/ChangeLog =================================================================== --- gcc/ChangeLog (revision 223939) +++ gcc/ChangeLog (working copy) @@ -1,5 +1,10 @@ 2015-06-01 James Greenhalgh <james.greenha...@arm.com> + * sched-deps.c (sched_analyze_2): Replace fuseable with fusible + in comment. + +2015-06-01 James Greenhalgh <james.greenha...@arm.com> + * gcc/config/arm/arm-protos.h (tune_params): Rename fuseable_ops to fusible_ops. * gcc/config/arm/arm.c (arm_print_tune_info): Likewise. Index: gcc/sched-deps.c =================================================================== --- gcc/sched-deps.c (revision 223936) +++ gcc/sched-deps.c (working copy) @@ -2853,7 +2853,7 @@ sched_deps_info->finish_rhs (); } -/* Try to group two fuseable insns together to prevent scheduler +/* Try to group two fusible insns together to prevent scheduler from scheduling them apart. */ static void