aboutsummaryrefslogtreecommitdiff
path: root/gcc/sel-sched.c
diff options
context:
space:
mode:
authorAndrey Belevantsev <abel@ispras.ru>2013-04-30 14:55:52 +0400
committerAndrey Belevantsev <abel@gcc.gnu.org>2013-04-30 14:55:52 +0400
commit54b8379a261d1b36958aecbca568ef6475a8e1ca (patch)
tree3d9c0e789beb68074f0dcebb9a4ca3f6bc4ca676 /gcc/sel-sched.c
parentabc27962b81152a9c68108b2e11e8a90129a46e9 (diff)
downloadgcc-54b8379a261d1b36958aecbca568ef6475a8e1ca.zip
gcc-54b8379a261d1b36958aecbca568ef6475a8e1ca.tar.gz
gcc-54b8379a261d1b36958aecbca568ef6475a8e1ca.tar.bz2
re PR rtl-optimization/56957 (ICE in add_insn_after, at emit-rtl.c:3783)
PR rtl-optimization/56957 PR rtl-optimization/57105 * sel-sched.c (move_op_orig_expr_found): Remove insn_emitted variable. Use just INSN_UID for determining whether an insn should be only disconnected from the insn stream. * sel-sched-ir.h (EXPR_WAS_CHANGED): Remove. * gcc.dg/pr57105.c: New test. From-SVN: r198449
Diffstat (limited to 'gcc/sel-sched.c')
-rw-r--r--gcc/sel-sched.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/gcc/sel-sched.c b/gcc/sel-sched.c
index 11bf2e6..fb9386f 100644
--- a/gcc/sel-sched.c
+++ b/gcc/sel-sched.c
@@ -6051,14 +6051,13 @@ move_op_orig_expr_found (insn_t insn, expr_t expr,
cmpd_local_params_p lparams ATTRIBUTE_UNUSED,
void *static_params)
{
- bool only_disconnect, insn_emitted;
+ bool only_disconnect;
moveop_static_params_p params = (moveop_static_params_p) static_params;
copy_expr_onside (params->c_expr, INSN_EXPR (insn));
track_scheduled_insns_and_blocks (insn);
- insn_emitted = handle_emitting_transformations (insn, expr, params);
- only_disconnect = (params->uid == INSN_UID (insn)
- && ! insn_emitted && ! EXPR_WAS_CHANGED (expr));
+ handle_emitting_transformations (insn, expr, params);
+ only_disconnect = params->uid == INSN_UID (insn);
/* Mark that we've disconnected an insn. */
if (only_disconnect)