From e7139885a924d6ad2316a4526a84dda352ca2373 Mon Sep 17 00:00:00 2001 From: Richard Henderson Date: Tue, 24 Jul 2001 14:39:19 -0700 Subject: [PATCH] combine.c (distribute_notes): Move set of need_refresh for noop_move_p down to catch all cases. * combine.c (distribute_notes): Move set of need_refresh for noop_move_p down to catch all cases. From-SVN: r44317 --- gcc/ChangeLog | 5 +++++ gcc/combine.c | 23 +++++++++++++---------- 2 files changed, 18 insertions(+), 10 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 1926e4de177..03e3de4ca9b 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2001-07-24 Richard Henderson + + * combine.c (distribute_notes): Move set of need_refresh + for noop_move_p down to catch all cases. + Tue Jul 24 20:32:44 CEST 2001 Jan Hubicka * recog.c (split_all_insns_noflow): New. diff --git a/gcc/combine.c b/gcc/combine.c index 633d0acfd70..657a929616f 100644 --- a/gcc/combine.c +++ b/gcc/combine.c @@ -12335,16 +12335,10 @@ distribute_notes (notes, from_insn, i3, i2, elim_i2, elim_i1) is still a REG_DEAD note, but we have hit the beginning of the block. If the existing life info says the reg was dead, there's nothing left to do. Otherwise, we'll - need to do a global life update after combine. - - Similary we need to update in case insn is an dead set - we are about to remove soon. - */ - if (REG_NOTE_KIND (note) == REG_DEAD - && ((place && noop_move_p (place)) - || (place == 0 - && REGNO_REG_SET_P (bb->global_live_at_start, - REGNO (XEXP (note, 0)))))) + need to do a global life update after combine. */ + if (REG_NOTE_KIND (note) == REG_DEAD && place == 0 + && REGNO_REG_SET_P (bb->global_live_at_start, + REGNO (XEXP (note, 0)))) { SET_BIT (refresh_blocks, this_basic_block); need_refresh = 1; @@ -12361,6 +12355,15 @@ distribute_notes (notes, from_insn, i3, i2, elim_i2, elim_i1) { unsigned int regno = REGNO (XEXP (note, 0)); + /* Similarly, if the instruction on which we want to place + the note is a noop, we'll need do a global live update + after we remove them in delete_noop_moves. */ + if (noop_move_p (place)) + { + SET_BIT (refresh_blocks, this_basic_block); + need_refresh = 1; + } + if (dead_or_set_p (place, XEXP (note, 0)) || reg_bitfield_target_p (XEXP (note, 0), PATTERN (place))) { -- 2.30.2