aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClinton Popetz <cpopetz@cygnus.com>2000-01-11 17:26:28 +0000
committerClinton Popetz <cpopetz@gcc.gnu.org>2000-01-11 12:26:28 -0500
commita249decd13d6d5a45ffa364bbfc766b03d83f96f (patch)
tree4805adfaefba7a75012c082958b6ce9bb425181b
parent7c7ef435b14e947507abab8801e6dc2eb531dc85 (diff)
downloadgcc-a249decd13d6d5a45ffa364bbfc766b03d83f96f.zip
gcc-a249decd13d6d5a45ffa364bbfc766b03d83f96f.tar.gz
gcc-a249decd13d6d5a45ffa364bbfc766b03d83f96f.tar.bz2
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
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/flow.c11
2 files changed, 14 insertions, 4 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index feb6f07..f728c2e 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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.
diff --git a/gcc/flow.c b/gcc/flow.c
index ae8ec5a..10bcdcf 100644
--- a/gcc/flow.c
+++ b/gcc/flow.c
@@ -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;
}