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
This commit is contained in:
Jakub Jelinek 2017-09-15 10:30:28 +02:00 committed by Jakub Jelinek
parent 22d07ec278
commit 854dde43ae
4 changed files with 28 additions and 2 deletions

View File

@ -1,3 +1,9 @@
2017-09-15 Jakub Jelinek <jakub@redhat.com>
PR target/82145
* postreload.c (reload_cse_simplify_operands): Skip
NOTE_INSN_DELETED_LABEL similarly to skipping CODE_LABEL.
2017-09-15 Richard Biener <rguenther@suse.de>
PR tree-optimization/68823

View File

@ -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;

View File

@ -1,3 +1,8 @@
2017-09-15 Jakub Jelinek <jakub@redhat.com>
PR target/82145
* gcc.target/i386/pr82145.c: New test.
2017-09-15 Paul Thomas <pault@gcc.gnu.org>
PR fortran/82184

View File

@ -0,0 +1,12 @@
/* PR target/82145 */
/* { dg-do compile { target { pie && lp64 } } } */
/* { dg-options "-O2 -fpie -mcmodel=large -march=haswell" } */
int l;
int
main ()
{
l++;
return 0;
}