aboutsummaryrefslogtreecommitdiffstats
path: root/gcc-4.8/gcc/cselib.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc-4.8/gcc/cselib.c')
-rw-r--r--gcc-4.8/gcc/cselib.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/gcc-4.8/gcc/cselib.c b/gcc-4.8/gcc/cselib.c
index f2021b985..1e59f3a1b 100644
--- a/gcc-4.8/gcc/cselib.c
+++ b/gcc-4.8/gcc/cselib.c
@@ -2260,8 +2260,8 @@ cselib_invalidate_mem (rtx mem_rtx)
continue;
}
if (num_mems < PARAM_VALUE (PARAM_MAX_CSELIB_MEMORY_LOCATIONS)
- && ! canon_true_dependence (mem_rtx, GET_MODE (mem_rtx),
- mem_addr, x, NULL_RTX))
+ && ! canon_anti_dependence (x, false, mem_rtx,
+ GET_MODE (mem_rtx), mem_addr))
{
has_mem = true;
num_mems++;
@@ -2623,12 +2623,13 @@ cselib_process_insn (rtx insn)
cselib_current_insn = insn;
- /* Forget everything at a CODE_LABEL, a volatile insn, or a setjmp. */
+ /* Forget everything at a CODE_LABEL, a volatile asm, or a setjmp. */
if ((LABEL_P (insn)
|| (CALL_P (insn)
&& find_reg_note (insn, REG_SETJMP, NULL))
|| (NONJUMP_INSN_P (insn)
- && volatile_insn_p (PATTERN (insn))))
+ && GET_CODE (PATTERN (insn)) == ASM_OPERANDS
+ && MEM_VOLATILE_P (PATTERN (insn))))
&& !cselib_preserve_constants)
{
cselib_reset_table (next_uid);