diff options
author | Dmitry Melnik <dm@ispras.ru> | 2011-08-11 11:41:27 +0000 |
---|---|---|
committer | Alexander Monakov <amonakov@ispras.ru> | 2011-08-11 11:41:27 +0000 |
commit | 6e91482f821bfed59dd8dc89822e4385d7bba14f (patch) | |
tree | 03beb08ee5680de8b404ed2ce6b7983a8b4a6df3 /gcc/sel-sched-ir.c | |
parent | d4146c9324d1ecdda4ced94f618895691388ae91 (diff) |
2011-08-11 Dmitry Melnik <dm@ispras.ru>
* 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: https://gcc.gnu.org/svn/gcc/trunk@177652 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/sel-sched-ir.c')
-rw-r--r-- | gcc/sel-sched-ir.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/gcc/sel-sched-ir.c b/gcc/sel-sched-ir.c index 599714b44e4..1e6e55e6632 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; |