From 6c6a14b5fc3a2f7267358d4f3eaa3232f4039180 Mon Sep 17 00:00:00 2001 From: "J\"orn Rennecke" Date: Fri, 3 Nov 2000 05:43:09 +0000 Subject: [PATCH] * flow.c (verify_local_live_at_start): Allow hard regs to die. From-SVN: r37220 --- gcc/ChangeLog | 4 ++++ gcc/flow.c | 21 +++++++++++++++++---- 2 files changed, 21 insertions(+), 4 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 0cc7a0618e4..42119a96bd5 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +Fri Nov 3 05:41:07 2000 J"orn Rennecke + + * flow.c (verify_local_live_at_start): Allow hard regs to die. + 2000-11-02 Neil Booth config: diff --git a/gcc/flow.c b/gcc/flow.c index d286f91e2b3..a48accf89d4 100644 --- a/gcc/flow.c +++ b/gcc/flow.c @@ -2888,11 +2888,24 @@ verify_local_live_at_start (new_live_at_start, bb) EXECUTE_IF_SET_IN_REG_SET (new_live_at_start, 0, i, { - /* No registers should die. */ + /* No pseudo registers should die. */ if (REGNO_REG_SET_P (bb->global_live_at_start, i)) - abort (); - /* Verify that the now-live register is wider than word_mode. */ - verify_wide_reg (i, bb->head, bb->end); + { + /* But hard regs can reasonably die, e.g. when we combine + (insn 6 30 7 (set (reg/v:DI 83) + (reg:DI 5 r5)) (nil) + (expr_list:REG_DEAD (reg:DI 5 r5) (nil))) + ... and ... + (insn 17 15 18 (set (reg:SI 5 r5) + (subreg:SI (reg/v:DI 83) 1)) (insn_list 6 (nil)) + (expr_list:REG_DEAD (reg/v:DI 83) (nil))) . */ + + if (i >= FIRST_PSEUDO_REGISTER) + abort (); + } + else + /* Verify that the now-live register is wider than word_mode. */ + verify_wide_reg (i, bb->head, bb->end); }); } } -- 2.30.2