mirror of git://gcc.gnu.org/git/gcc.git
* cse.c (fold_rtx) <PC>: Don't optimize.
From-SVN: r94378
This commit is contained in:
parent
bd16270bd8
commit
01aa1d43e4
|
|
@ -1,3 +1,7 @@
|
||||||
|
2005-01-28 Kazu Hirata <kazu@cs.umass.edu>
|
||||||
|
|
||||||
|
* cse.c (fold_rtx) <PC>: Don't optimize.
|
||||||
|
|
||||||
2005-01-28 Jeff Law <law@redhat.com>
|
2005-01-28 Jeff Law <law@redhat.com>
|
||||||
|
|
||||||
* fold-const.c (fold, case CEIL_MOD_EXPR): Optimize 0 % X.
|
* fold-const.c (fold, case CEIL_MOD_EXPR): Optimize 0 % X.
|
||||||
|
|
|
||||||
12
gcc/cse.c
12
gcc/cse.c
|
|
@ -3265,6 +3265,7 @@ fold_rtx (rtx x, rtx insn)
|
||||||
case SYMBOL_REF:
|
case SYMBOL_REF:
|
||||||
case LABEL_REF:
|
case LABEL_REF:
|
||||||
case REG:
|
case REG:
|
||||||
|
case PC:
|
||||||
/* No use simplifying an EXPR_LIST
|
/* No use simplifying an EXPR_LIST
|
||||||
since they are used only for lists of args
|
since they are used only for lists of args
|
||||||
in a function call's REG_EQUAL note. */
|
in a function call's REG_EQUAL note. */
|
||||||
|
|
@ -3276,17 +3277,6 @@ fold_rtx (rtx x, rtx insn)
|
||||||
return prev_insn_cc0;
|
return prev_insn_cc0;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
case PC:
|
|
||||||
/* If the next insn is a CODE_LABEL followed by a jump table,
|
|
||||||
PC's value is a LABEL_REF pointing to that label. That
|
|
||||||
lets us fold switch statements on the VAX. */
|
|
||||||
{
|
|
||||||
rtx next;
|
|
||||||
if (insn && tablejump_p (insn, &next, NULL))
|
|
||||||
return gen_rtx_LABEL_REF (Pmode, next);
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
case SUBREG:
|
case SUBREG:
|
||||||
/* See if we previously assigned a constant value to this SUBREG. */
|
/* See if we previously assigned a constant value to this SUBREG. */
|
||||||
if ((new = lookup_as_function (x, CONST_INT)) != 0
|
if ((new = lookup_as_function (x, CONST_INT)) != 0
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue