Commit 651159e5 by Richard Sandiford Committed by Richard Sandiford

ifcvt.c (HAVE_incscc, [...]): Delete.

gcc/
	* ifcvt.c (HAVE_incscc, HAVE_decscc, HAVE_cbranchcc4): Delete.
	(have_cbranchcc4): New variable.
	(cc_in_cond, noce_emit_cmove, noce_get_alt_condition)
	(noce_get_condition): Use it instead of HAVE_cbranchcc4.
	(if_convert): Initialize have_cbranchcc4.

From-SVN: r227142
parent 7f9f48be
2015-08-24 Richard Sandiford <richard.sandiford@arm.com> 2015-08-24 Richard Sandiford <richard.sandiford@arm.com>
* ifcvt.c (HAVE_incscc, HAVE_decscc, HAVE_cbranchcc4): Delete.
(have_cbranchcc4): New variable.
(cc_in_cond, noce_emit_cmove, noce_get_alt_condition)
(noce_get_condition): Use it instead of HAVE_cbranchcc4.
(if_convert): Initialize have_cbranchcc4.
2015-08-24 Richard Sandiford <richard.sandiford@arm.com>
* builtins.c (expand_cmpstrn): Rename to... * builtins.c (expand_cmpstrn): Rename to...
(expand_cmpstrn_or_cmpmem): ...this. (expand_cmpstrn_or_cmpmem): ...this.
(expand_builtin_strcmp, expand_builtin_strncmp): Update accordingly. (expand_builtin_strcmp, expand_builtin_strncmp): Update accordingly.
......
...@@ -55,23 +55,12 @@ ...@@ -55,23 +55,12 @@
#include "shrink-wrap.h" #include "shrink-wrap.h"
#include "ifcvt.h" #include "ifcvt.h"
#ifndef HAVE_incscc
#define HAVE_incscc 0
#endif
#ifndef HAVE_decscc
#define HAVE_decscc 0
#endif
#ifndef MAX_CONDITIONAL_EXECUTE #ifndef MAX_CONDITIONAL_EXECUTE
#define MAX_CONDITIONAL_EXECUTE \ #define MAX_CONDITIONAL_EXECUTE \
(BRANCH_COST (optimize_function_for_speed_p (cfun), false) \ (BRANCH_COST (optimize_function_for_speed_p (cfun), false) \
+ 1) + 1)
#endif #endif
#ifndef HAVE_cbranchcc4
#define HAVE_cbranchcc4 0
#endif
#define IFCVT_MULTIPLE_DUMPS 1 #define IFCVT_MULTIPLE_DUMPS 1
#define NULL_BLOCK ((basic_block) NULL) #define NULL_BLOCK ((basic_block) NULL)
...@@ -79,6 +68,9 @@ ...@@ -79,6 +68,9 @@
/* True if after combine pass. */ /* True if after combine pass. */
static bool ifcvt_after_combine; static bool ifcvt_after_combine;
/* True if the target has the cbranchcc4 optab. */
static bool have_cbranchcc4;
/* # of IF-THEN or IF-THEN-ELSE blocks we looked at */ /* # of IF-THEN or IF-THEN-ELSE blocks we looked at */
static int num_possible_if_blocks; static int num_possible_if_blocks;
...@@ -1014,7 +1006,7 @@ noce_emit_move_insn (rtx x, rtx y) ...@@ -1014,7 +1006,7 @@ noce_emit_move_insn (rtx x, rtx y)
static rtx static rtx
cc_in_cond (rtx cond) cc_in_cond (rtx cond)
{ {
if (HAVE_cbranchcc4 && cond if (have_cbranchcc4 && cond
&& GET_MODE_CLASS (GET_MODE (XEXP (cond, 0))) == MODE_CC) && GET_MODE_CLASS (GET_MODE (XEXP (cond, 0))) == MODE_CC)
return XEXP (cond, 0); return XEXP (cond, 0);
...@@ -1557,7 +1549,7 @@ noce_emit_cmove (struct noce_if_info *if_info, rtx x, enum rtx_code code, ...@@ -1557,7 +1549,7 @@ noce_emit_cmove (struct noce_if_info *if_info, rtx x, enum rtx_code code,
if (! general_operand (cmp_a, GET_MODE (cmp_a)) if (! general_operand (cmp_a, GET_MODE (cmp_a))
|| ! general_operand (cmp_b, GET_MODE (cmp_b))) || ! general_operand (cmp_b, GET_MODE (cmp_b)))
{ {
if (!(HAVE_cbranchcc4) if (!have_cbranchcc4
|| GET_MODE_CLASS (GET_MODE (cmp_a)) != MODE_CC || GET_MODE_CLASS (GET_MODE (cmp_a)) != MODE_CC
|| cmp_b != const0_rtx) || cmp_b != const0_rtx)
return NULL_RTX; return NULL_RTX;
...@@ -2052,7 +2044,7 @@ noce_get_alt_condition (struct noce_if_info *if_info, rtx target, ...@@ -2052,7 +2044,7 @@ noce_get_alt_condition (struct noce_if_info *if_info, rtx target,
} }
cond = canonicalize_condition (if_info->jump, cond, reverse, cond = canonicalize_condition (if_info->jump, cond, reverse,
earliest, target, HAVE_cbranchcc4, true); earliest, target, have_cbranchcc4, true);
if (! cond || ! reg_mentioned_p (target, cond)) if (! cond || ! reg_mentioned_p (target, cond))
return NULL; return NULL;
...@@ -2544,7 +2536,7 @@ noce_get_condition (rtx_insn *jump, rtx_insn **earliest, bool then_else_reversed ...@@ -2544,7 +2536,7 @@ noce_get_condition (rtx_insn *jump, rtx_insn **earliest, bool then_else_reversed
/* Otherwise, fall back on canonicalize_condition to do the dirty /* Otherwise, fall back on canonicalize_condition to do the dirty
work of manipulating MODE_CC values and COMPARE rtx codes. */ work of manipulating MODE_CC values and COMPARE rtx codes. */
tmp = canonicalize_condition (jump, cond, reverse, earliest, tmp = canonicalize_condition (jump, cond, reverse, earliest,
NULL_RTX, HAVE_cbranchcc4, true); NULL_RTX, have_cbranchcc4, true);
/* We don't handle side-effects in the condition, like handling /* We don't handle side-effects in the condition, like handling
REG_INC notes and making sure no duplicate conditions are emitted. */ REG_INC notes and making sure no duplicate conditions are emitted. */
...@@ -4645,6 +4637,8 @@ if_convert (bool after_combine) ...@@ -4645,6 +4637,8 @@ if_convert (bool after_combine)
/* Record whether we are after combine pass. */ /* Record whether we are after combine pass. */
ifcvt_after_combine = after_combine; ifcvt_after_combine = after_combine;
have_cbranchcc4 = (direct_optab_handler (cbranch_optab, CCmode)
!= CODE_FOR_nothing);
num_possible_if_blocks = 0; num_possible_if_blocks = 0;
num_updated_if_blocks = 0; num_updated_if_blocks = 0;
num_true_changes = 0; num_true_changes = 0;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment