diff options
author | Jakub Jelinek <jakub@redhat.com> | 2018-01-16 09:54:03 +0100 |
---|---|---|
committer | Jakub Jelinek <jakub@gcc.gnu.org> | 2018-01-16 09:54:03 +0100 |
commit | 6ce065b607072415124a6a15124e1424f5b6a5e8 (patch) | |
tree | 5f85e46f6a8e69d4b2a1a7755310fd8d3b557ec2 | |
parent | be52ac73d120b5bf27f13c41656c6cfe132c8c30 (diff) | |
download | gcc-6ce065b607072415124a6a15124e1424f5b6a5e8.zip gcc-6ce065b607072415124a6a15124e1424f5b6a5e8.tar.gz gcc-6ce065b607072415124a6a15124e1424f5b6a5e8.tar.bz2 |
re PR rtl-optimization/83213 (peephole bug with -O2)
PR rtl-optimization/83213
* recog.c (peep2_attempt): Copy over CROSSING_JUMP_P from peepinsn
to last if both are JUMP_INSNs.
From-SVN: r256728
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/recog.c | 2 |
2 files changed, 6 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 69ed57a..026e8a8 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,9 @@ 2018-01-16 Jakub Jelinek <jakub@redhat.com> + PR rtl-optimization/83213 + * recog.c (peep2_attempt): Copy over CROSSING_JUMP_P from peepinsn + to last if both are JUMP_INSNs. + PR tree-optimization/83843 * gimple-ssa-store-merging.c (imm_store_chain_info::output_merged_store): Handle bit_not_p on diff --git a/gcc/recog.c b/gcc/recog.c index cc28b71..af6a6b0 100644 --- a/gcc/recog.c +++ b/gcc/recog.c @@ -3446,6 +3446,8 @@ peep2_attempt (basic_block bb, rtx_insn *insn, int match_len, rtx_insn *attempt) last = emit_insn_after_setloc (attempt, peep2_insn_data[i].insn, INSN_LOCATION (peepinsn)); + if (JUMP_P (peepinsn) && JUMP_P (last)) + CROSSING_JUMP_P (last) = CROSSING_JUMP_P (peepinsn); before_try = PREV_INSN (insn); delete_insn_chain (insn, peep2_insn_data[i].insn, false); |