diff options
Diffstat (limited to 'gcc/postreload-gcse.c')
-rw-r--r-- | gcc/postreload-gcse.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/gcc/postreload-gcse.c b/gcc/postreload-gcse.c index 74b635c..6c95d09 100644 --- a/gcc/postreload-gcse.c +++ b/gcc/postreload-gcse.c @@ -549,7 +549,6 @@ oprs_unchanged_p (rtx x, rtx_insn *insn, bool after_insn) return oprs_unchanged_p (XEXP (x, 0), insn, after_insn); case PC: - case CC0: /*FIXME*/ case CONST: CASE_CONST_ANY: case SYMBOL_REF: @@ -780,7 +779,9 @@ record_opr_changes (rtx_insn *insn) EXECUTE_IF_SET_IN_HARD_REG_SET (callee_clobbers, 0, regno, hrsi) record_last_reg_set_info_regno (insn, regno); - if (! RTL_CONST_OR_PURE_CALL_P (insn)) + if (! RTL_CONST_OR_PURE_CALL_P (insn) + || RTL_LOOPING_CONST_OR_PURE_CALL_P (insn) + || can_throw_external (insn)) record_last_mem_set_info (insn); } } |