diff options
Diffstat (limited to 'gcc/dce.c')
-rw-r--r-- | gcc/dce.c | 8 |
1 files changed, 5 insertions, 3 deletions
@@ -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)) { |