parent
bedca03a2a
commit
cf0d940861
|
@ -1,3 +1,7 @@
|
||||||
|
2002-01-05 Kazu Hirata <kazu@hxi.com>
|
||||||
|
|
||||||
|
* combine.c: Fix formatting.
|
||||||
|
|
||||||
2002-01-05 Craig Rodrigues <crodrigu@bbn.com>
|
2002-01-05 Craig Rodrigues <crodrigu@bbn.com>
|
||||||
|
|
||||||
PR middle-end/1557
|
PR middle-end/1557
|
||||||
|
|
|
@ -1134,7 +1134,7 @@ can_combine_p (insn, i3, pred, succ, pdest, psrc)
|
||||||
|
|
||||||
for (p = NEXT_INSN (insn); p != i3; p = NEXT_INSN (p))
|
for (p = NEXT_INSN (insn); p != i3; p = NEXT_INSN (p))
|
||||||
if (INSN_P (p) && p != succ && volatile_refs_p (PATTERN (p)))
|
if (INSN_P (p) && p != succ && volatile_refs_p (PATTERN (p)))
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* If INSN is an asm, and DEST is a hard register, reject, since it has
|
/* If INSN is an asm, and DEST is a hard register, reject, since it has
|
||||||
|
@ -1954,7 +1954,7 @@ try_combine (i3, i2, i1, new_direct_jump_p)
|
||||||
isn't mentioned in any SETs in NEWPAT that are field assignments. */
|
isn't mentioned in any SETs in NEWPAT that are field assignments. */
|
||||||
|
|
||||||
if (! combinable_i3pat (NULL_RTX, &newpat, i1dest, NULL_RTX,
|
if (! combinable_i3pat (NULL_RTX, &newpat, i1dest, NULL_RTX,
|
||||||
0, (rtx*)0))
|
0, (rtx*) 0))
|
||||||
{
|
{
|
||||||
undo_all ();
|
undo_all ();
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -2011,23 +2011,23 @@ try_combine (i3, i2, i1, new_direct_jump_p)
|
||||||
XVECEXP (newpat, 0, 0) = old;
|
XVECEXP (newpat, 0, 0) = old;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (added_sets_1)
|
if (added_sets_1)
|
||||||
XVECEXP (newpat, 0, --total_sets)
|
XVECEXP (newpat, 0, --total_sets)
|
||||||
= (GET_CODE (PATTERN (i1)) == PARALLEL
|
= (GET_CODE (PATTERN (i1)) == PARALLEL
|
||||||
? gen_rtx_SET (VOIDmode, i1dest, i1src) : PATTERN (i1));
|
? gen_rtx_SET (VOIDmode, i1dest, i1src) : PATTERN (i1));
|
||||||
|
|
||||||
if (added_sets_2)
|
if (added_sets_2)
|
||||||
{
|
{
|
||||||
/* If there is no I1, use I2's body as is. We used to also not do
|
/* If there is no I1, use I2's body as is. We used to also not do
|
||||||
the subst call below if I2 was substituted into I3,
|
the subst call below if I2 was substituted into I3,
|
||||||
but that could lose a simplification. */
|
but that could lose a simplification. */
|
||||||
if (i1 == 0)
|
if (i1 == 0)
|
||||||
XVECEXP (newpat, 0, --total_sets) = i2pat;
|
XVECEXP (newpat, 0, --total_sets) = i2pat;
|
||||||
else
|
else
|
||||||
/* See comment where i2pat is assigned. */
|
/* See comment where i2pat is assigned. */
|
||||||
XVECEXP (newpat, 0, --total_sets)
|
XVECEXP (newpat, 0, --total_sets)
|
||||||
= subst (i2pat, i1dest, i1src, 0, 0);
|
= subst (i2pat, i1dest, i1src, 0, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* We come here when we are replacing a destination in I2 with the
|
/* We come here when we are replacing a destination in I2 with the
|
||||||
|
@ -2992,7 +2992,7 @@ find_split_point (loc, insn)
|
||||||
&& GET_CODE (XEXP (SET_DEST (x), 2)) == CONST_INT
|
&& GET_CODE (XEXP (SET_DEST (x), 2)) == CONST_INT
|
||||||
&& GET_CODE (SET_SRC (x)) == CONST_INT
|
&& GET_CODE (SET_SRC (x)) == CONST_INT
|
||||||
&& ((INTVAL (XEXP (SET_DEST (x), 1))
|
&& ((INTVAL (XEXP (SET_DEST (x), 1))
|
||||||
+ INTVAL (XEXP (SET_DEST (x), 2)))
|
+ INTVAL (XEXP (SET_DEST (x), 2)))
|
||||||
<= GET_MODE_BITSIZE (GET_MODE (XEXP (SET_DEST (x), 0))))
|
<= GET_MODE_BITSIZE (GET_MODE (XEXP (SET_DEST (x), 0))))
|
||||||
&& ! side_effects_p (XEXP (SET_DEST (x), 0)))
|
&& ! side_effects_p (XEXP (SET_DEST (x), 0)))
|
||||||
{
|
{
|
||||||
|
@ -3044,7 +3044,7 @@ find_split_point (loc, insn)
|
||||||
&& GET_CODE (XEXP (SET_SRC (x), 0)) == REG
|
&& GET_CODE (XEXP (SET_SRC (x), 0)) == REG
|
||||||
&& (pos = exact_log2 (INTVAL (XEXP (SET_SRC (x), 1)))) >= 7
|
&& (pos = exact_log2 (INTVAL (XEXP (SET_SRC (x), 1)))) >= 7
|
||||||
&& GET_CODE (SET_DEST (x)) == REG
|
&& GET_CODE (SET_DEST (x)) == REG
|
||||||
&& (split = find_single_use (SET_DEST (x), insn, (rtx*)0)) != 0
|
&& (split = find_single_use (SET_DEST (x), insn, (rtx*) 0)) != 0
|
||||||
&& (GET_CODE (*split) == EQ || GET_CODE (*split) == NE)
|
&& (GET_CODE (*split) == EQ || GET_CODE (*split) == NE)
|
||||||
&& XEXP (*split, 0) == SET_DEST (x)
|
&& XEXP (*split, 0) == SET_DEST (x)
|
||||||
&& XEXP (*split, 1) == const0_rtx)
|
&& XEXP (*split, 1) == const0_rtx)
|
||||||
|
@ -4713,8 +4713,8 @@ simplify_if_then_else (x)
|
||||||
simplify_gen_unary (NEG, mode,
|
simplify_gen_unary (NEG, mode,
|
||||||
simplify_gen_unary (ABS, mode, true_rtx, mode),
|
simplify_gen_unary (ABS, mode, true_rtx, mode),
|
||||||
mode);
|
mode);
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Look for MIN or MAX. */
|
/* Look for MIN or MAX. */
|
||||||
|
@ -10967,19 +10967,19 @@ static enum rtx_code
|
||||||
combine_reversed_comparison_code (exp)
|
combine_reversed_comparison_code (exp)
|
||||||
rtx exp;
|
rtx exp;
|
||||||
{
|
{
|
||||||
enum rtx_code code1 = reversed_comparison_code (exp, NULL);
|
enum rtx_code code1 = reversed_comparison_code (exp, NULL);
|
||||||
rtx x;
|
rtx x;
|
||||||
|
|
||||||
if (code1 != UNKNOWN
|
if (code1 != UNKNOWN
|
||||||
|| GET_MODE_CLASS (GET_MODE (XEXP (exp, 0))) != MODE_CC)
|
|| GET_MODE_CLASS (GET_MODE (XEXP (exp, 0))) != MODE_CC)
|
||||||
return code1;
|
return code1;
|
||||||
/* Otherwise try and find where the condition codes were last set and
|
/* Otherwise try and find where the condition codes were last set and
|
||||||
use that. */
|
use that. */
|
||||||
x = get_last_value (XEXP (exp, 0));
|
x = get_last_value (XEXP (exp, 0));
|
||||||
if (!x || GET_CODE (x) != COMPARE)
|
if (!x || GET_CODE (x) != COMPARE)
|
||||||
return UNKNOWN;
|
return UNKNOWN;
|
||||||
return reversed_comparison_code_parts (GET_CODE (exp),
|
return reversed_comparison_code_parts (GET_CODE (exp),
|
||||||
XEXP (x, 0), XEXP (x, 1), NULL);
|
XEXP (x, 0), XEXP (x, 1), NULL);
|
||||||
}
|
}
|
||||||
/* Return comparison with reversed code of EXP and operands OP0 and OP1.
|
/* Return comparison with reversed code of EXP and operands OP0 and OP1.
|
||||||
Return NULL_RTX in case we fail to do the reversal. */
|
Return NULL_RTX in case we fail to do the reversal. */
|
||||||
|
|
Loading…
Reference in New Issue