mirror of
git://gcc.gnu.org/git/gcc.git
synced 2024-12-19 21:50:19 +08:00
flow.c (new_insn_dead_notes): Use sets_reg_or_subreg not mark_set_resources.
* flow.c (new_insn_dead_notes): Use sets_reg_or_subreg not mark_set_resources. From-SVN: r28990
This commit is contained in:
parent
2e419d0961
commit
963d441197
@ -1,3 +1,8 @@
|
||||
Mon Aug 30 16:07:49 1999 Richard Henderson <rth@cygnus.com>
|
||||
|
||||
* flow.c (new_insn_dead_notes): Use sets_reg_or_subreg not
|
||||
mark_set_resources.
|
||||
|
||||
Mon Aug 30 16:36:33 1999 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
* invoke.texi: Fix typo.
|
||||
|
18
gcc/flow.c
18
gcc/flow.c
@ -132,7 +132,6 @@ Boston, MA 02111-1307, USA. */
|
||||
#include "toplev.h"
|
||||
#include "recog.h"
|
||||
#include "insn-flags.h"
|
||||
#include "resource.h"
|
||||
|
||||
#include "obstack.h"
|
||||
#define obstack_chunk_alloc xmalloc
|
||||
@ -5371,6 +5370,7 @@ new_insn_dead_notes (pat, insn, first, last, orig_first_insn, orig_last_insn)
|
||||
if (tem == orig_last_insn)
|
||||
break;
|
||||
}
|
||||
|
||||
/* So it's a new register, presumably only used within this
|
||||
group of insns. Find the last insn in the set of new insns
|
||||
that DEST is referenced in, and add a dead note to it. */
|
||||
@ -5393,17 +5393,13 @@ new_insn_dead_notes (pat, insn, first, last, orig_first_insn, orig_last_insn)
|
||||
}
|
||||
else
|
||||
{
|
||||
struct resources res;
|
||||
rtx curr;
|
||||
int got_set = 0;
|
||||
|
||||
CLEAR_RESOURCE (&res);
|
||||
for (curr = orig_first_insn;
|
||||
curr != NULL_RTX;
|
||||
curr = NEXT_INSN (curr))
|
||||
for (curr = orig_first_insn; curr; curr = NEXT_INSN (curr))
|
||||
{
|
||||
if (GET_RTX_CLASS (GET_CODE (curr)) == 'i')
|
||||
mark_set_resources (PATTERN (curr), &res, 0, 0);
|
||||
if (TEST_HARD_REG_BIT (res.regs, REGNO (dest)))
|
||||
got_set = sets_reg_or_subreg (curr, dest);
|
||||
if (got_set)
|
||||
break;
|
||||
if (curr == orig_last_insn)
|
||||
break;
|
||||
@ -5411,7 +5407,7 @@ new_insn_dead_notes (pat, insn, first, last, orig_first_insn, orig_last_insn)
|
||||
|
||||
/* In case reg was not used later, it is dead store.
|
||||
add REG_UNUSED note. */
|
||||
if (! TEST_HARD_REG_BIT (res.regs, REGNO (dest)))
|
||||
if (! got_set)
|
||||
{
|
||||
rtx note = rtx_alloc (EXPR_LIST);
|
||||
PUT_REG_NOTE_KIND (note, REG_UNUSED);
|
||||
@ -5422,9 +5418,11 @@ new_insn_dead_notes (pat, insn, first, last, orig_first_insn, orig_last_insn)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (insn != first)
|
||||
{
|
||||
rtx set = single_set (insn);
|
||||
|
||||
/* If this is a set, scan backwards for a previous
|
||||
reference, and attach a REG_DEAD note to it. But we don't
|
||||
want to do it if the insn is both using and setting the
|
||||
|
Loading…
Reference in New Issue
Block a user