flow.c (propagate_block): When a prologue/epilogue insn is marked dead...

* flow.c (propagate_block): When a prologue/epilogue insn
        is marked dead, unconditionally clear libcall_is_dead and
        insn_is_dead, and only dump rtl if warnings aren't being
        suppressed.

From-SVN: r31327
This commit is contained in:
Clinton Popetz 2000-01-11 17:26:28 +00:00 committed by Clinton Popetz
parent 7c7ef435b1
commit a249decd13
2 changed files with 14 additions and 4 deletions

View File

@ -1,3 +1,10 @@
2000-01-11 Clinton Popetz <cpopetz@cygnus.com>
* flow.c (propagate_block): When a prologue/epilogue insn
is marked dead, unconditionally clear libcall_is_dead and
insn_is_dead, and only dump rtl if warnings aren't being
suppressed.
Tue Jan 11 16:26:47 MET 2000 Jan Hubicka <jh@suse.cz>
* i386.c (ix86_attr_length_default): Handle TYPE_STR and TYPE_CLD.

View File

@ -3295,14 +3295,17 @@ propagate_block (old, first, last, significant, bnum, flags)
/* We almost certainly don't want to delete prologue or epilogue
instructions. Warn about probable compiler losage. */
if ((flags & PROP_KILL_DEAD_CODE)
&& insn_is_dead
if (insn_is_dead
&& reload_completed
&& (HAVE_epilogue || HAVE_prologue)
&& prologue_epilogue_contains (insn))
{
warning ("ICE: would have deleted prologue/epilogue insn");
debug_rtx (insn);
if (flags & PROP_KILL_DEAD_CODE)
{
warning ("ICE: would have deleted prologue/epilogue insn");
if (!inhibit_warnings)
debug_rtx (insn);
}
libcall_is_dead = insn_is_dead = 0;
}