From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 117169 invoked by alias); 21 May 2015 02:11:10 -0000 Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org Received: (qmail 117075 invoked by uid 89); 21 May 2015 02:11:10 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=1.1 required=5.0 tests=AWL,BAYES_50,KAM_LAZY_DOMAIN_SECURITY,T_RP_MATCHES_RCVD autolearn=no version=3.3.2 X-HELO: paperclip.tbsaunde.org Received: from tbsaunde.org (HELO paperclip.tbsaunde.org) (66.228.47.254) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 21 May 2015 02:11:08 +0000 Received: from iceball.corp.tor1.mozilla.com (unknown [23.233.68.71]) by paperclip.tbsaunde.org (Postfix) with ESMTPSA id 3946BC0B0 for ; Thu, 21 May 2015 02:11:05 +0000 (UTC) From: tbsaunde+gcc@tbsaunde.org To: gcc-patches@gcc.gnu.org Subject: [PATCH 6/7] remove #if HAVE_conditional_move Date: Thu, 21 May 2015 02:11:00 -0000 Message-Id: <1432174178-29086-7-git-send-email-tbsaunde+gcc@tbsaunde.org> In-Reply-To: <1432174178-29086-1-git-send-email-tbsaunde+gcc@tbsaunde.org> References: <1432174178-29086-1-git-send-email-tbsaunde+gcc@tbsaunde.org> X-IsSubscribed: yes X-SW-Source: 2015-05/txt/msg01908.txt.bz2 From: Trevor Saunders gcc/ChangeLog: 2015-05-20 Trevor Saunders * *.c, *.h: DOn't check HAVE_conditional_move with the preprocessor. --- gcc/ChangeLog | 4 ++++ gcc/combine.c | 5 ++--- gcc/expmed.c | 13 +++++-------- gcc/expr.c | 10 ++-------- gcc/optabs.c | 30 ++++++++++++------------------ gcc/optabs.h | 2 -- gcc/toplev.c | 11 ++++++----- 7 files changed, 31 insertions(+), 44 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index d115f6e..c20d608 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,9 @@ 2015-05-20 Trevor Saunders + * *.c, *.h: DOn't check HAVE_conditional_move with the preprocessor. + +2015-05-20 Trevor Saunders + * genconfig.c (main): Always define HAVE_conditional_move. 2015-05-20 Trevor Saunders diff --git a/gcc/combine.c b/gcc/combine.c index 45177c8..9615c79 100644 --- a/gcc/combine.c +++ b/gcc/combine.c @@ -6816,9 +6816,8 @@ simplify_set (rtx x) && (GET_CODE (XEXP (src, 0)) == EQ || GET_CODE (XEXP (src, 0)) == NE) && XEXP (XEXP (src, 0), 1) == const0_rtx && GET_MODE (src) == GET_MODE (XEXP (XEXP (src, 0), 0)) -#if HAVE_conditional_move - && ! can_conditionally_move_p (GET_MODE (src)) -#endif + && (!HAVE_conditional_move + || ! can_conditionally_move_p (GET_MODE (src))) && (num_sign_bit_copies (XEXP (XEXP (src, 0), 0), GET_MODE (XEXP (XEXP (src, 0), 0))) == GET_MODE_PRECISION (GET_MODE (XEXP (XEXP (src, 0), 0)))) diff --git a/gcc/expmed.c b/gcc/expmed.c index 589a7a3..fa13f8c 100644 --- a/gcc/expmed.c +++ b/gcc/expmed.c @@ -3797,9 +3797,8 @@ expand_sdiv_pow2 (machine_mode mode, rtx op0, HOST_WIDE_INT d) return expand_shift (RSHIFT_EXPR, mode, temp, logd, NULL_RTX, 0); } -#if HAVE_conditional_move - if (BRANCH_COST (optimize_insn_for_speed_p (), false) - >= 2) + if (HAVE_conditional_move + && BRANCH_COST (optimize_insn_for_speed_p (), false) >= 2) { rtx temp2; @@ -3821,7 +3820,6 @@ expand_sdiv_pow2 (machine_mode mode, rtx op0, HOST_WIDE_INT d) } end_sequence (); } -#endif if (BRANCH_COST (optimize_insn_for_speed_p (), false) >= 2) @@ -5555,7 +5553,9 @@ emit_store_flag (rtx target, enum rtx_code code, rtx op0, rtx op1, target_mode); } -#if HAVE_conditional_move + if (!HAVE_conditional_move) + return 0; + /* Try using a setcc instruction for ORDERED/UNORDERED, followed by a conditional move. */ tem = emit_store_flag_1 (subtarget, first_code, op0, op1, mode, 0, @@ -5573,9 +5573,6 @@ emit_store_flag (rtx target, enum rtx_code code, rtx op0, rtx op1, if (tem == 0) delete_insns_since (last); return tem; -#else - return 0; -#endif } /* The remaining tricks only apply to integer comparisons. */ diff --git a/gcc/expr.c b/gcc/expr.c index efbf9fb..3605e99 100644 --- a/gcc/expr.c +++ b/gcc/expr.c @@ -2423,7 +2423,6 @@ get_def_for_expr (tree name, enum tree_code code) return def_stmt; } -#if HAVE_conditional_move /* Return the defining gimple statement for SSA_NAME NAME if it is an assigment and the class of the expresion on the RHS is CLASS. Return NULL otherwise. */ @@ -2443,7 +2442,6 @@ get_def_for_expr_class (tree name, enum tree_code_class tclass) return def_stmt; } -#endif /* Determine whether the LEN bytes generated by CONSTFUN can be @@ -7517,7 +7515,6 @@ highest_pow2_factor_for_target (const_tree target, const_tree exp) return MAX (factor, talign); } -#if HAVE_conditional_move /* Convert the tree comparison code TCODE to the rtl one where the signedness is UNSIGNEDP. */ @@ -7575,7 +7572,6 @@ convert_tree_comp_to_rtx (enum tree_code tcode, int unsignedp) } return code; } -#endif /* Subroutine of expand_expr. Expand the two operands of a binary expression EXP0 and EXP1 placing the results in OP0 and OP1. @@ -8021,7 +8017,6 @@ expand_cond_expr_using_cmove (tree treeop0 ATTRIBUTE_UNUSED, tree treeop1 ATTRIBUTE_UNUSED, tree treeop2 ATTRIBUTE_UNUSED) { -#if HAVE_conditional_move rtx insn; rtx op00, op01, op1, op2; enum rtx_code comparison_code; @@ -8105,7 +8100,6 @@ expand_cond_expr_using_cmove (tree treeop0 ATTRIBUTE_UNUSED, /* Otherwise discard the sequence and fall back to code with branches. */ end_sequence (); -#endif return NULL_RTX; } @@ -8892,7 +8886,7 @@ expand_expr_real_2 (sepops ops, rtx target, machine_mode tmode, if (code == MIN_EXPR) comparison_code = LT; } -#if HAVE_conditional_move + /* Use a conditional move if possible. */ if (can_conditionally_move_p (mode)) { @@ -8920,7 +8914,7 @@ expand_expr_real_2 (sepops ops, rtx target, machine_mode tmode, branches. */ end_sequence (); } -#endif + if (target != op0) emit_move_insn (target, op0); diff --git a/gcc/optabs.c b/gcc/optabs.c index 7a79148..21150db 100644 --- a/gcc/optabs.c +++ b/gcc/optabs.c @@ -929,7 +929,6 @@ expand_subword_shift (machine_mode op1_mode, optab binoptab, } -#if HAVE_conditional_move /* Try implementing expand_doubleword_shift using conditional moves. The shift is by < BITS_PER_WORD if (CMP_CODE CMP1 CMP2) is true, otherwise it is by >= BITS_PER_WORD. SUBWORD_OP1 and SUPERWORD_OP1 @@ -989,7 +988,6 @@ expand_doubleword_shift_condmove (machine_mode op1_mode, optab binoptab, return true; } -#endif /* Expand a doubleword shift (ashl, ashr or lshr) using word-mode shifts. OUTOF_INPUT and INTO_INPUT are the two word-sized halves of the first @@ -1096,20 +1094,19 @@ expand_doubleword_shift (machine_mode op1_mode, optab binoptab, unsignedp, methods, shift_mask); } -#if HAVE_conditional_move /* Try using conditional moves to generate straight-line code. */ - { - rtx_insn *start = get_last_insn (); - if (expand_doubleword_shift_condmove (op1_mode, binoptab, - cmp_code, cmp1, cmp2, - outof_input, into_input, - op1, superword_op1, - outof_target, into_target, - unsignedp, methods, shift_mask)) - return true; - delete_insns_since (start); - } -#endif + if (HAVE_conditional_move) + { + rtx_insn *start = get_last_insn (); + if (expand_doubleword_shift_condmove (op1_mode, binoptab, + cmp_code, cmp1, cmp2, + outof_input, into_input, + op1, superword_op1, + outof_target, into_target, + unsignedp, methods, shift_mask)) + return true; + delete_insns_since (start); + } /* As a last resort, use branches to select the correct alternative. */ rtx_code_label *subword_label = gen_label_rtx (); @@ -4518,7 +4515,6 @@ emit_indirect_jump (rtx loc ATTRIBUTE_UNUSED) #endif } -#if HAVE_conditional_move /* Emit a conditional move instruction if the machine supports one for that condition and machine mode. @@ -4636,8 +4632,6 @@ can_conditionally_move_p (machine_mode mode) return 0; } -#endif /* HAVE_conditional_move */ - /* Emit a conditional addition instruction if the machine supports one for that condition and machine mode. diff --git a/gcc/optabs.h b/gcc/optabs.h index ff45eb8..8bff2f9 100644 --- a/gcc/optabs.h +++ b/gcc/optabs.h @@ -364,7 +364,6 @@ extern void emit_indirect_jump (rtx); #error "insn-config.h must be included before optabs.h" #endif -#if HAVE_conditional_move /* Emit a conditional move operation. */ rtx emit_conditional_move (rtx, enum rtx_code, rtx, rtx, machine_mode, rtx, rtx, machine_mode, int); @@ -372,7 +371,6 @@ rtx emit_conditional_move (rtx, enum rtx_code, rtx, rtx, machine_mode, /* Return nonzero if the conditional move is supported. */ int can_conditionally_move_p (machine_mode mode); -#endif rtx emit_conditional_add (rtx, enum rtx_code, rtx, rtx, machine_mode, rtx, rtx, machine_mode, int); diff --git a/gcc/toplev.c b/gcc/toplev.c index 9be15d7..18a725a 100644 --- a/gcc/toplev.c +++ b/gcc/toplev.c @@ -1576,11 +1576,12 @@ process_options (void) warning (0, "var-tracking-assignments changes selective scheduling"); if (flag_tree_cselim == AUTODETECT_VALUE) -#if HAVE_conditional_move - flag_tree_cselim = 1; -#else - flag_tree_cselim = 0; -#endif + { + if (HAVE_conditional_move) + flag_tree_cselim = 1; + else + flag_tree_cselim = 0; + } /* If auxiliary info generation is desired, open the output file. This goes in the same directory as the source file--unlike -- 2.4.0.78.g7c6ecbf