re PR target/80148 (operand has impossible constraints)

2017-03-24  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/80148
	* lra-assigns.c (assign_by_spills): Add spilled non-reload pseudos
	to consider in curr_insn_transform.

From-SVN: r246467
This commit is contained in:
Vladimir Makarov 2017-03-24 18:47:38 +00:00 committed by Vladimir Makarov
parent 90471a3d83
commit fdcfea63c6
2 changed files with 14 additions and 0 deletions

View File

@ -1,3 +1,9 @@
2017-03-24 Vladimir Makarov <vmakarov@redhat.com>
PR target/80148
* lra-assigns.c (assign_by_spills): Add spilled non-reload pseudos
to consider in curr_insn_transform.
2017-03-24 Jakub Jelinek <jakub@redhat.com>
* genrecog.c (validate_pattern): Add VEC_SELECT validation.

View File

@ -1507,6 +1507,14 @@ assign_by_spills (void)
sorted_pseudos[nfails++] = conflict_regno;
former_reload_pseudo_spill_p = true;
}
else
/* It is better to do reloads before spilling as after the
spill-subpass we will reload memory instead of pseudos
and this will make reusing reload pseudos more
complicated. Going directly to the spill pass in such
case might result in worse code performance or even LRA
cycling if we have few registers. */
bitmap_set_bit (&all_spilled_pseudos, conflict_regno);
if (lra_dump_file != NULL)
fprintf (lra_dump_file, " Spill %s r%d(hr=%d, freq=%d)\n",
pseudo_prefix_title (conflict_regno), conflict_regno,