From d7b03373d619b3ce715c760d2b21dbe4869a1c8f Mon Sep 17 00:00:00 2001 From: Kyrylo Tkachov Date: Tue, 31 May 2016 12:35:42 +0000 Subject: [PATCH] [AArch64] Use aarch64_fusion_enabled_p to check for insn fusion capabilities * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Use aarch64_fusion_enabled_p to check for fusion capabilities. From-SVN: r236921 --- gcc/ChangeLog | 5 +++++ gcc/config/aarch64/aarch64.c | 16 ++++++---------- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 41bb494ec55..a558a944e5b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2016-05-31 Kyrylo Tkachov + + * config/aarch64/aarch64.c (aarch_macro_fusion_pair_p): Use + aarch64_fusion_enabled_p to check for fusion capabilities. + 2016-05-31 Richard Biener PR tree-optimization/71352 diff --git a/gcc/config/aarch64/aarch64.c b/gcc/config/aarch64/aarch64.c index 3ec5c9fb635..ad07fe196a8 100644 --- a/gcc/config/aarch64/aarch64.c +++ b/gcc/config/aarch64/aarch64.c @@ -13021,8 +13021,7 @@ aarch_macro_fusion_pair_p (rtx_insn *prev, rtx_insn *curr) if (!aarch64_macro_fusion_p ()) return false; - if (simple_sets_p - && (aarch64_tune_params.fusible_ops & AARCH64_FUSE_MOV_MOVK)) + if (simple_sets_p && aarch64_fusion_enabled_p (AARCH64_FUSE_MOV_MOVK)) { /* We are trying to match: prev (mov) == (set (reg r0) (const_int imm16)) @@ -13046,8 +13045,7 @@ aarch_macro_fusion_pair_p (rtx_insn *prev, rtx_insn *curr) } } - if (simple_sets_p - && (aarch64_tune_params.fusible_ops & AARCH64_FUSE_ADRP_ADD)) + if (simple_sets_p && aarch64_fusion_enabled_p (AARCH64_FUSE_ADRP_ADD)) { /* We're trying to match: @@ -13072,8 +13070,7 @@ aarch_macro_fusion_pair_p (rtx_insn *prev, rtx_insn *curr) } } - if (simple_sets_p - && (aarch64_tune_params.fusible_ops & AARCH64_FUSE_MOVK_MOVK)) + if (simple_sets_p && aarch64_fusion_enabled_p (AARCH64_FUSE_MOVK_MOVK)) { /* We're trying to match: @@ -13101,8 +13098,7 @@ aarch_macro_fusion_pair_p (rtx_insn *prev, rtx_insn *curr) return true; } - if (simple_sets_p - && (aarch64_tune_params.fusible_ops & AARCH64_FUSE_ADRP_LDR)) + if (simple_sets_p && aarch64_fusion_enabled_p (AARCH64_FUSE_ADRP_LDR)) { /* We're trying to match: prev (adrp) == (set (reg r0) @@ -13133,11 +13129,11 @@ aarch_macro_fusion_pair_p (rtx_insn *prev, rtx_insn *curr) } } - if ((aarch64_tune_params.fusible_ops & AARCH64_FUSE_AES_AESMC) + if (aarch64_fusion_enabled_p (AARCH64_FUSE_AES_AESMC) && aarch_crypto_can_dual_issue (prev, curr)) return true; - if ((aarch64_tune_params.fusible_ops & AARCH64_FUSE_CMP_BRANCH) + if (aarch64_fusion_enabled_p (AARCH64_FUSE_CMP_BRANCH) && any_condjump_p (curr)) { enum attr_type prev_type = get_attr_type (prev); -- 2.30.2