Commit 53bdbcbc by Vladimir Makarov Committed by Vladimir Makarov

re PR rtl-optimization/79916 (ICE in Max. number of generated reload insns per…

re PR rtl-optimization/79916 (ICE in Max. number of generated reload insns per insn is achieved (90))

2018-04-13  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/79916
	* config/rs6000/rs6000.c (rs6000_emit_move): Use assigned hard
	regs (if any) to define how to gnerate SD moves when LRA is in
	progress.

2018-04-13  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/79916
	* gcc.target/powerpc/pr79916.c: New.

From-SVN: r259379
parent 465d0087
2018-04-13 Vladimir Makarov <vmakarov@redhat.com>
PR rtl-optimization/79916
* config/rs6000/rs6000.c (rs6000_emit_move): Use assigned hard
regs (if any) to define how to gnerate SD moves when LRA is in
progress.
2018-04-13 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/85393
......
......@@ -10610,7 +10610,9 @@ rs6000_emit_move (rtx dest, rtx source, machine_mode mode)
if (regno >= FIRST_PSEUDO_REGISTER)
{
cl = reg_preferred_class (regno);
regno = cl == NO_REGS ? -1 : ira_class_hard_regs[cl][1];
regno = reg_renumber[regno];
if (regno < 0)
regno = cl == NO_REGS ? -1 : ira_class_hard_regs[cl][1];
}
if (regno >= 0 && ! FP_REGNO_P (regno))
{
......@@ -10635,7 +10637,9 @@ rs6000_emit_move (rtx dest, rtx source, machine_mode mode)
{
cl = reg_preferred_class (regno);
gcc_assert (cl != NO_REGS);
regno = ira_class_hard_regs[cl][0];
regno = reg_renumber[regno];
if (regno < 0)
regno = ira_class_hard_regs[cl][0];
}
if (FP_REGNO_P (regno))
{
......@@ -10664,7 +10668,9 @@ rs6000_emit_move (rtx dest, rtx source, machine_mode mode)
if (regno >= FIRST_PSEUDO_REGISTER)
{
cl = reg_preferred_class (regno);
regno = cl == NO_REGS ? -1 : ira_class_hard_regs[cl][0];
regno = reg_renumber[regno];
if (regno < 0)
regno = cl == NO_REGS ? -1 : ira_class_hard_regs[cl][0];
}
if (regno >= 0 && ! FP_REGNO_P (regno))
{
......@@ -10689,7 +10695,9 @@ rs6000_emit_move (rtx dest, rtx source, machine_mode mode)
{
cl = reg_preferred_class (regno);
gcc_assert (cl != NO_REGS);
regno = ira_class_hard_regs[cl][0];
regno = reg_renumber[regno];
if (regno < 0)
regno = ira_class_hard_regs[cl][0];
}
if (FP_REGNO_P (regno))
{
2018-04-13 Vladimir Makarov <vmakarov@redhat.com>
PR rtl-optimization/79916
* gcc.target/powerpc/pr79916.c: New.
2018-04-13 Jakub Jelinek <jakub@redhat.com>
PR rtl-optimization/85393
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment