cse.c (delete_trivially_dead_insns): Do not skip the last insn if it is a real insn.

* cse.c (delete_trivially_dead_insns): Do not skip the last
        insn if it is a real insn.

From-SVN: r29138
This commit is contained in:
Jeffrey A Law 1999-09-06 08:44:50 +00:00 committed by Jeff Law
parent 4b7ddb7a02
commit 8d71a51026
2 changed files with 15 additions and 2 deletions

View File

@ -1,3 +1,8 @@
Mon Sep 6 02:42:36 1999 Jeffrey A Law (law@cygnus.com)
* cse.c (delete_trivially_dead_insns): Do not skip the last
insn if it is a real insn.
Sun Sep 5 18:57:42 1999 Mark Mitchell <mark@codesourcery.com>
* Makefile.in (ggc-simple.o): Depend on hash.h.

View File

@ -9135,8 +9135,16 @@ delete_trivially_dead_insns (insns, nreg)
/* Go from the last insn to the first and delete insns that only set unused
registers or copy a register to itself. As we delete an insn, remove
usage counts for registers it uses. */
for (insn = prev_real_insn (get_last_insn ()); insn; insn = prev)
usage counts for registers it uses.
The first jump optimization pass may leave a real insn as the last
insn in the function. We must not skip that insn or we may end
up deleting code that is not really dead. */
insn = get_last_insn ();
if (GET_RTX_CLASS (GET_CODE (insn)) != 'i')
insn = prev_real_insn (insn);
for ( ; insn; insn = prev)
{
int live_insn = 0;
rtx note;