diff options
author | Eric Botcazou <ebotcazou@adacore.com> | 2009-04-30 14:35:22 +0000 |
---|---|---|
committer | Eric Botcazou <ebotcazou@gcc.gnu.org> | 2009-04-30 14:35:22 +0000 |
commit | 35debead51c672d94e09901096032aded316a45c (patch) | |
tree | b930499490b07e1c897cdfe8e6d50538aecc8f2b /gcc/dce.c | |
parent | df35c271df60646a09af5279506c76c676a83217 (diff) | |
download | gcc-35debead51c672d94e09901096032aded316a45c.tar.gz |
Makefile.in (dce.o): Add $(EXCEPT_H).
* Makefile.in (dce.o): Add $(EXCEPT_H).
* dce.c: Include except.h and delete redundant vector definitions.
(deletable_insn_p): Return false for non-call insns that can throw
if DF is running.
From-SVN: r147002
Diffstat (limited to 'gcc/dce.c')
-rw-r--r-- | gcc/dce.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/gcc/dce.c b/gcc/dce.c index b37b505ffbd..abdd433cb0e 100644 --- a/gcc/dce.c +++ b/gcc/dce.c @@ -27,6 +27,7 @@ along with GCC; see the file COPYING3. If not see #include "regs.h" #include "hard-reg-set.h" #include "flags.h" +#include "except.h" #include "df.h" #include "cselib.h" #include "dce.h" @@ -35,9 +36,6 @@ along with GCC; see the file COPYING3. If not see #include "dbgcnt.h" #include "tm_p.h" -DEF_VEC_I(int); -DEF_VEC_ALLOC_I(int,heap); - /* ------------------------------------------------------------------------- Core mark/delete routines @@ -118,6 +116,10 @@ deletable_insn_p (rtx insn, bool fast, bitmap arg_stores) if (!NONJUMP_INSN_P (insn)) return false; + /* Similarly, we cannot delete other insns that can throw either. */ + if (df_in_progress && flag_non_call_exceptions && can_throw_internal (insn)) + return false; + body = PATTERN (insn); switch (GET_CODE (body)) { |