This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[PATCH 5/7] always define HAVE_conditional_move
- From: tbsaunde+gcc at tbsaunde dot org
- To: gcc-patches at gcc dot gnu dot org
- Date: Wed, 20 May 2015 22:09:36 -0400
- Subject: [PATCH 5/7] always define HAVE_conditional_move
- Authentication-results: sourceware.org; auth=none
- References: <1432174178-29086-1-git-send-email-tbsaunde+gcc at tbsaunde dot org>
From: Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
gcc/ChangeLog:
2015-05-20 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
* genconfig.c (main): Always define HAVE_conditional_move.
* *.c: Don't check if HAVE_conditional_move is defined.
---
gcc/ChangeLog | 4 ++++
gcc/combine.c | 2 +-
gcc/expmed.c | 4 ++--
gcc/expr.c | 8 ++++----
gcc/genconfig.c | 2 ++
gcc/ifcvt.c | 11 -----------
gcc/optabs.c | 6 +++---
gcc/optabs.h | 2 +-
gcc/toplev.c | 2 +-
gcc/tree-ssa-phiopt.c | 4 ----
10 files changed, 18 insertions(+), 27 deletions(-)
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 21ff1b8..d115f6e 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,5 +1,9 @@
2015-05-20 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
+ * genconfig.c (main): Always define HAVE_conditional_move.
+
+2015-05-20 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
+
* *.c: Remove comparison of ARG_FRAME_POINTER_REGNUM and
FRAME_POINTER_REGNUM with the preprocessor.
diff --git a/gcc/combine.c b/gcc/combine.c
index 812b917..45177c8 100644
--- a/gcc/combine.c
+++ b/gcc/combine.c
@@ -6816,7 +6816,7 @@ 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))
-#ifdef HAVE_conditional_move
+#if HAVE_conditional_move
&& ! can_conditionally_move_p (GET_MODE (src))
#endif
&& (num_sign_bit_copies (XEXP (XEXP (src, 0), 0),
diff --git a/gcc/expmed.c b/gcc/expmed.c
index c95299c..589a7a3 100644
--- a/gcc/expmed.c
+++ b/gcc/expmed.c
@@ -3797,7 +3797,7 @@ expand_sdiv_pow2 (machine_mode mode, rtx op0, HOST_WIDE_INT d)
return expand_shift (RSHIFT_EXPR, mode, temp, logd, NULL_RTX, 0);
}
-#ifdef HAVE_conditional_move
+#if HAVE_conditional_move
if (BRANCH_COST (optimize_insn_for_speed_p (), false)
>= 2)
{
@@ -5555,7 +5555,7 @@ emit_store_flag (rtx target, enum rtx_code code, rtx op0, rtx op1,
target_mode);
}
-#ifdef HAVE_conditional_move
+#if HAVE_conditional_move
/* 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,
diff --git a/gcc/expr.c b/gcc/expr.c
index 275c636..efbf9fb 100644
--- a/gcc/expr.c
+++ b/gcc/expr.c
@@ -2423,7 +2423,7 @@ get_def_for_expr (tree name, enum tree_code code)
return def_stmt;
}
-#ifdef HAVE_conditional_move
+#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. */
@@ -7517,7 +7517,7 @@ highest_pow2_factor_for_target (const_tree target, const_tree exp)
return MAX (factor, talign);
}
-#ifdef HAVE_conditional_move
+#if HAVE_conditional_move
/* Convert the tree comparison code TCODE to the rtl one where the
signedness is UNSIGNEDP. */
@@ -8021,7 +8021,7 @@ expand_cond_expr_using_cmove (tree treeop0 ATTRIBUTE_UNUSED,
tree treeop1 ATTRIBUTE_UNUSED,
tree treeop2 ATTRIBUTE_UNUSED)
{
-#ifdef HAVE_conditional_move
+#if HAVE_conditional_move
rtx insn;
rtx op00, op01, op1, op2;
enum rtx_code comparison_code;
@@ -8892,7 +8892,7 @@ expand_expr_real_2 (sepops ops, rtx target, machine_mode tmode,
if (code == MIN_EXPR)
comparison_code = LT;
}
-#ifdef HAVE_conditional_move
+#if HAVE_conditional_move
/* Use a conditional move if possible. */
if (can_conditionally_move_p (mode))
{
diff --git a/gcc/genconfig.c b/gcc/genconfig.c
index 2247eef..a3e5b31 100644
--- a/gcc/genconfig.c
+++ b/gcc/genconfig.c
@@ -352,6 +352,8 @@ main (int argc, char **argv)
if (have_cmove_flag)
printf ("#define HAVE_conditional_move 1\n");
+ else
+ printf ("#define HAVE_conditional_move 0\n");
if (have_cond_exec_flag)
printf ("#define HAVE_conditional_execution 1\n");
diff --git a/gcc/ifcvt.c b/gcc/ifcvt.c
index b00aaa4..37117b7 100644
--- a/gcc/ifcvt.c
+++ b/gcc/ifcvt.c
@@ -72,9 +72,6 @@
#include "shrink-wrap.h"
#include "ifcvt.h"
-#ifndef HAVE_conditional_move
-#define HAVE_conditional_move 0
-#endif
#ifndef HAVE_incscc
#define HAVE_incscc 0
#endif
@@ -1505,7 +1502,6 @@ noce_emit_cmove (struct noce_if_info *if_info, rtx x, enum rtx_code code,
return NULL_RTX;
}
-#if HAVE_conditional_move
unsignedp = (code == LTU || code == GEU
|| code == LEU || code == GTU);
@@ -1562,13 +1558,6 @@ noce_emit_cmove (struct noce_if_info *if_info, rtx x, enum rtx_code code,
}
else
return NULL_RTX;
-#else
- /* We'll never get here, as noce_process_if_block doesn't call the
- functions involved. Ifdef code, however, should be discouraged
- because it leads to typos in the code not selected. However,
- emit_conditional_move won't exist either. */
- return NULL_RTX;
-#endif
}
/* Try only simple constants and registers here. More complex cases
diff --git a/gcc/optabs.c b/gcc/optabs.c
index 26dbe87..7a79148 100644
--- a/gcc/optabs.c
+++ b/gcc/optabs.c
@@ -929,7 +929,7 @@ expand_subword_shift (machine_mode op1_mode, optab binoptab,
}
-#ifdef HAVE_conditional_move
+#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
@@ -1096,7 +1096,7 @@ expand_doubleword_shift (machine_mode op1_mode, optab binoptab,
unsignedp, methods, shift_mask);
}
-#ifdef HAVE_conditional_move
+#if HAVE_conditional_move
/* Try using conditional moves to generate straight-line code. */
{
rtx_insn *start = get_last_insn ();
@@ -4518,7 +4518,7 @@ emit_indirect_jump (rtx loc ATTRIBUTE_UNUSED)
#endif
}
-#ifdef HAVE_conditional_move
+#if HAVE_conditional_move
/* Emit a conditional move instruction if the machine supports one for that
condition and machine mode.
diff --git a/gcc/optabs.h b/gcc/optabs.h
index 5c30ce5..ff45eb8 100644
--- a/gcc/optabs.h
+++ b/gcc/optabs.h
@@ -364,7 +364,7 @@ extern void emit_indirect_jump (rtx);
#error "insn-config.h must be included before optabs.h"
#endif
-#ifdef HAVE_conditional_move
+#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);
diff --git a/gcc/toplev.c b/gcc/toplev.c
index c73368f..9be15d7 100644
--- a/gcc/toplev.c
+++ b/gcc/toplev.c
@@ -1576,7 +1576,7 @@ process_options (void)
warning (0, "var-tracking-assignments changes selective scheduling");
if (flag_tree_cselim == AUTODETECT_VALUE)
-#ifdef HAVE_conditional_move
+#if HAVE_conditional_move
flag_tree_cselim = 1;
#else
flag_tree_cselim = 0;
diff --git a/gcc/tree-ssa-phiopt.c b/gcc/tree-ssa-phiopt.c
index 09d6f67..b8c77ab 100644
--- a/gcc/tree-ssa-phiopt.c
+++ b/gcc/tree-ssa-phiopt.c
@@ -83,10 +83,6 @@ along with GCC; see the file COPYING3. If not see
#include "tree-scalar-evolution.h"
#include "tree-inline.h"
-#ifndef HAVE_conditional_move
-#define HAVE_conditional_move (0)
-#endif
-
static unsigned int tree_ssa_phiopt_worker (bool, bool);
static bool conditional_replacement (basic_block, basic_block,
edge, edge, gphi *, tree, tree);
--
2.4.0.78.g7c6ecbf