diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 2d5803f1f072..4fee1bbeb278 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2008-11-11 Richard Sandiford + + PR rtl-optimization/37363 + * simplify-rtx.c (simplify_plus_minus): Don't create (const (minus ...)) + expresisons. + 2008-11-11 Eric Botcazou * ira-lives.c (process_bb_node_lives): Restore EH_RETURN_DATA_REGNO diff --git a/gcc/simplify-rtx.c b/gcc/simplify-rtx.c index c7cd2189646d..dd91e120d23b 100644 --- a/gcc/simplify-rtx.c +++ b/gcc/simplify-rtx.c @@ -3678,24 +3678,6 @@ simplify_plus_minus (enum rtx_code code, enum machine_mode mode, rtx op0, one CONST_INT, and the sort will have ensured that it is last in the array and that any other constant will be next-to-last. */ - if (GET_CODE (ops[n_ops - 1].op) == CONST_INT) - i = n_ops - 2; - else - i = n_ops - 1; - - if (i >= 1 - && ops[i].neg - && !ops[i - 1].neg - && CONSTANT_P (ops[i].op) - && GET_CODE (ops[i].op) == GET_CODE (ops[i - 1].op)) - { - ops[i - 1].op = gen_rtx_MINUS (mode, ops[i - 1].op, ops[i].op); - ops[i - 1].op = gen_rtx_CONST (mode, ops[i - 1].op); - if (i < n_ops - 1) - ops[i] = ops[i + 1]; - n_ops--; - } - if (n_ops > 1 && GET_CODE (ops[n_ops - 1].op) == CONST_INT && CONSTANT_P (ops[n_ops - 2].op))