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 /gcc/recog.c | |
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
Diffstat (limited to 'gcc/recog.c')
-rw-r--r-- | gcc/recog.c | 2 |
1 files changed, 2 insertions, 0 deletions
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); |