Commit bc13623e by Vladimir Makarov Committed by Vladimir Makarov

re PR rtl-optimization/78580 (Segfault in gcc with multilib (-m32) and -ffixed-*)

2016-12-21  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/78580
	* ira-costs.c (find_costs_and_classes): Make regno_aclass
	translated into an allocno class.

2016-12-21  Vladimir Makarov  <vmakarov@redhat.com>

	PR rtl-optimization/78580
	* gcc.target/i386/pr78580.c: New.

From-SVN: r243875
parent 0dba7960
2016-12-21 Vladimir Makarov <vmakarov@redhat.com>
PR rtl-optimization/78580
* ira-costs.c (find_costs_and_classes): Make regno_aclass
translated into an allocno class.
2016-12-21 Jakub Jelinek <jakub@redhat.com>
PR bootstrap/78817
......@@ -1846,14 +1846,19 @@ find_costs_and_classes (FILE *dump_file)
short in -O0 code and so register pressure tends to be low.
Avoid that by ignoring the alternative class if the best
class has plenty of registers. */
regno_aclass[i] = best;
class has plenty of registers.
The union class arrays give important classes and only
part of it are allocno classes. So translate them into
allocno classes. */
regno_aclass[i] = ira_allocno_class_translate[best];
else
{
/* Make the common class the biggest class of best and
alt_class. */
regno_aclass[i]
= ira_reg_class_superunion[best][alt_class];
alt_class. Translate the common class into an
allocno class too. */
regno_aclass[i] = (ira_allocno_class_translate
[ira_reg_class_superunion[best][alt_class]]);
ira_assert (regno_aclass[i] != NO_REGS
&& ira_reg_allocno_class_p[regno_aclass[i]]);
}
......
2016-12-21 Vladimir Makarov <vmakarov@redhat.com>
PR rtl-optimization/78580
* gcc.target/i386/pr78580.c: New.
2016-12-21 Jakub Jelinek <jakub@redhat.com>
PR c++/77830
......
/* PR rtl-optimization/78580 */
/* { dg-do compile } */
/* { dg-options "-O0 -ffixed-ebx" } */
extern const signed char a;
int
foo (signed char x)
{
return x;
}
int
main ()
{
foo (a);
return 0;
}
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