re PR target/79058 (ARM: internal compiler error: in extract_constrain_insn, at recog.c:2213)

2017-01-17  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/79058
	* ira-conflicts.c (ira_build_conflicts): Update total conflict
	hard regs for inner regno.

2017-01-17  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/79058
	* gcc.target/arm/pr79058.c: New.

From-SVN: r244535
This commit is contained in:
Vladimir Makarov 2017-01-17 16:11:55 +00:00 committed by Vladimir Makarov
parent c549996eed
commit 31b61548d6
4 changed files with 29 additions and 2 deletions

View File

@ -1,3 +1,9 @@
2017-01-17 Vladimir Makarov <vmakarov@redhat.com>
PR target/79058
* ira-conflicts.c (ira_build_conflicts): Update total conflict
hard regs for inner regno.
2017-01-17 Martin Liska <mliska@suse.cz>
PR ipa/71207

View File

@ -787,8 +787,12 @@ ira_build_conflicts (void)
if (outer_regno < 0
|| !in_hard_reg_set_p (reg_class_contents[aclass],
outer_mode, outer_regno))
SET_HARD_REG_BIT (OBJECT_CONFLICT_HARD_REGS (obj),
inner_regno);
{
SET_HARD_REG_BIT (OBJECT_TOTAL_CONFLICT_HARD_REGS (obj),
inner_regno);
SET_HARD_REG_BIT (OBJECT_CONFLICT_HARD_REGS (obj),
inner_regno);
}
}
}

View File

@ -1,3 +1,8 @@
2017-01-17 Vladimir Makarov <vmakarov@redhat.com>
PR target/79058
* gcc.target/arm/pr79058.c: New.
2017-01-17 Jakub Jelinek <jakub@redhat.com>
PR tree-optimization/71854

View File

@ -0,0 +1,12 @@
/* { dg-do compile } */
/* { dg-skip-if "do not override -mcpu" { *-*-* } { "-mcpu=*" } { "-mcpu=arm7tdmi" } } */
/* { dg-options "-Os -mbig-endian -mcpu=arm7tdmi" } */
enum { NILFS_SEGMENT_USAGE_ACTIVE, NILFS_SEGMENT_USAGE_DIRTY } a;
void fn2 (long long);
void fn1() {
int b = a & 1 << NILFS_SEGMENT_USAGE_DIRTY;
fn2 (b ? (long long) -1 : 0);
}