From 854dde43ae85c54a12430a656d01a0db9637b139 Mon Sep 17 00:00:00 2001 From: Jakub Jelinek Date: Fri, 15 Sep 2017 10:30:28 +0200 Subject: re PR middle-end/82145 (i386/pr38988.c, i386/pr46254.c, i386/pr55154.c, i386/pr81766.c fails) PR target/82145 * postreload.c (reload_cse_simplify_operands): Skip NOTE_INSN_DELETED_LABEL similarly to skipping CODE_LABEL. * gcc.target/i386/pr82145.c: New test. From-SVN: r252791 --- gcc/postreload.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'gcc/postreload.c') diff --git a/gcc/postreload.c b/gcc/postreload.c index 4660df2..6026e21 100644 --- a/gcc/postreload.c +++ b/gcc/postreload.c @@ -409,9 +409,12 @@ reload_cse_simplify_operands (rtx_insn *insn, rtx testreg) CLEAR_HARD_REG_SET (equiv_regs[i]); /* cselib blows up on CODE_LABELs. Trying to fix that doesn't seem - right, so avoid the problem here. Likewise if we have a constant - and the insn pattern doesn't tell us the mode we need. */ + right, so avoid the problem here. Similarly NOTE_INSN_DELETED_LABEL. + Likewise if we have a constant and the insn pattern doesn't tell us + the mode we need. */ if (LABEL_P (recog_data.operand[i]) + || (NOTE_P (recog_data.operand[i]) + && NOTE_KIND (recog_data.operand[i]) == NOTE_INSN_DELETED_LABEL) || (CONSTANT_P (recog_data.operand[i]) && recog_data.operand_mode[i] == VOIDmode)) continue; -- cgit v1.1