From 13434dcbce8d0eae239801ddfe6af3e7b0fc7f74 Mon Sep 17 00:00:00 2001 From: amonakov Date: Thu, 11 Aug 2011 11:41:27 +0000 Subject: [PATCH] 2011-08-11 Dmitry Melnik * sel-sched-ir.c (init_global_and_expr_for_insn): Forbid copying of recognized by cannot_copy_insn_p hook and volatile instructions. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@177652 138bc75d-0d04-0410-961f-82ee72b054a4 --- gcc/ChangeLog | 5 +++++ gcc/sel-sched-ir.c | 5 ++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a2e42c7..5600070 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,10 @@ 2011-08-11 Dmitry Melnik + * sel-sched-ir.c (init_global_and_expr_for_insn): Forbid copying of + recognized by cannot_copy_insn_p hook and volatile instructions. + +2011-08-11 Dmitry Melnik + * sel-sched-ir.c (merge_expr_data): Take maximum spec. 2011-08-11 Richard Sandiford diff --git a/gcc/sel-sched-ir.c b/gcc/sel-sched-ir.c index 599714b..1e6e55e 100644 --- a/gcc/sel-sched-ir.c +++ b/gcc/sel-sched-ir.c @@ -2956,7 +2956,10 @@ init_global_and_expr_for_insn (insn_t insn) /* Exception handling insns are always unique. */ || (cfun->can_throw_non_call_exceptions && can_throw_internal (insn)) /* TRAP_IF though have an INSN code is control_flow_insn_p (). */ - || control_flow_insn_p (insn)) + || control_flow_insn_p (insn) + || volatile_insn_p (PATTERN (insn)) + || (targetm.cannot_copy_insn_p + && targetm.cannot_copy_insn_p (insn))) force_unique_p = true; else force_unique_p = false; -- 2.7.4