diff options
author | Andrey Belevantsev <abel@ispras.ru> | 2013-04-30 14:55:52 +0400 |
---|---|---|
committer | Andrey Belevantsev <abel@gcc.gnu.org> | 2013-04-30 14:55:52 +0400 |
commit | 54b8379a261d1b36958aecbca568ef6475a8e1ca (patch) | |
tree | 3d9c0e789beb68074f0dcebb9a4ca3f6bc4ca676 /gcc/sel-sched.c | |
parent | abc27962b81152a9c68108b2e11e8a90129a46e9 (diff) | |
download | gcc-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.c | 7 |
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) |