diff options
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/cse.c | 12 |
2 files changed, 5 insertions, 11 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 9e806b3f062..af2c4944e27 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -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> * fold-const.c (fold, case CEIL_MOD_EXPR): Optimize 0 % X. diff --git a/gcc/cse.c b/gcc/cse.c index 4bc201424da..762c0c9d87e 100644 --- a/gcc/cse.c +++ b/gcc/cse.c @@ -3265,6 +3265,7 @@ fold_rtx (rtx x, rtx insn) case SYMBOL_REF: case LABEL_REF: case REG: + case PC: /* No use simplifying an EXPR_LIST since they are used only for lists of args in a function call's REG_EQUAL note. */ @@ -3276,17 +3277,6 @@ fold_rtx (rtx x, rtx insn) return prev_insn_cc0; #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: /* See if we previously assigned a constant value to this SUBREG. */ if ((new = lookup_as_function (x, CONST_INT)) != 0 |