diff options
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/ia64/ia64.c | 4 |
2 files changed, 8 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 246e3da..8f0b295 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2005-06-08 Richard Henderson <rth@redhat.com> + + PR target/21721 + * config/ia64/ia64.c (emit_predicate_relation_info): Skip p0. + 2005-06-08 Eric Botcazou <ebotcazou@libertysurf.fr> PR target/21889 diff --git a/gcc/config/ia64/ia64.c b/gcc/config/ia64/ia64.c index ca4723e..d175a84 100644 --- a/gcc/config/ia64/ia64.c +++ b/gcc/config/ia64/ia64.c @@ -7420,7 +7420,9 @@ emit_predicate_relation_info (void) && NOTE_LINE_NUMBER (NEXT_INSN (head)) == NOTE_INSN_BASIC_BLOCK) head = NEXT_INSN (head); - for (r = PR_REG (0); r < PR_REG (64); r += 2) + /* Skip p0, which may be thought to be live due to (reg:DI p0) + grabbing the entire block of predicate registers. */ + for (r = PR_REG (2); r < PR_REG (64); r += 2) if (REGNO_REG_SET_P (bb->global_live_at_start, r)) { rtx p = gen_rtx_REG (BImode, r); |