1 --- gcc-3.4.2/gcc/flow.c.orig 2004-02-28 04:39:19.000000000 +0100
2 +++ gcc-3.4.2/gcc/flow.c 2004-09-16 19:39:39.512234032 +0200
3 @@ -1878,19 +1878,23 @@
4 rtx set_src = SET_SRC (pc_set (BB_END (bb)));
5 rtx cond_true = XEXP (set_src, 0);
6 rtx reg = XEXP (cond_true, 0);
7 + enum rtx_code inv_cond;
9 if (GET_CODE (reg) == SUBREG)
10 reg = SUBREG_REG (reg);
12 /* We can only track conditional lifetimes if the condition is
13 - in the form of a comparison of a register against zero.
14 - If the condition is more complex than that, then it is safe
15 - not to record any information. */
16 - if (GET_CODE (reg) == REG
17 + in the form of a reversible comparison of a register against
18 + zero. If the condition is more complex than that, then it is
19 + safe not to record any information. */
21 + inv_cond = reversed_comparison_code (cond_true, BB_END (bb));
22 + if (inv_cond != UNKNOWN
23 + && GET_CODE (reg) == REG
24 && XEXP (cond_true, 1) == const0_rtx)
27 - = gen_rtx_fmt_ee (reverse_condition (GET_CODE (cond_true)),
28 + = gen_rtx_fmt_ee (inv_cond,
29 GET_MODE (cond_true), XEXP (cond_true, 0),
31 if (GET_CODE (XEXP (set_src, 1)) == PC)