+2015-05-20 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
+
+ * genconfig.c (main): Always define HAVE_conditional_move.
+ * combine.c, expmed.c, expr.c, ifcvt.c, optabs.c, optabs.h,
+ toplev.c, tree-ssa-phiopt.c: Don't check if HAVE_conditional_move
+ is defined.
+
2015-05-20 Trevor Saunders <tbsaunde+gcc@tbsaunde.org>
* combine.c, df-problems.c, df-scan.c, emit-rtl.c, reginfo.c,
&& (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),
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)
{
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,
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. */
return MAX (factor, talign);
}
\f
-#ifdef HAVE_conditional_move
+#if HAVE_conditional_move
/* Convert the tree comparison code TCODE to the rtl one where the
signedness is UNSIGNEDP. */
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;
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))
{
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");
#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
return NULL_RTX;
}
-#if HAVE_conditional_move
unsignedp = (code == LTU || code == GEU
|| code == LEU || code == GTU);
}
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
}
-#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
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 ();
#endif
}
\f
-#ifdef HAVE_conditional_move
+#if HAVE_conditional_move
/* Emit a conditional move instruction if the machine supports one for that
condition and machine mode.
#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);
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;
#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);