This is the mail archive of the mailing list for the GCC project.

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

ira-assert keeps turning up


I am looking at gcc-4.4.4, and porting a backend into this version.
However, what didn't break in previous 4.2 / 4.3, now keeps breaking
in both CB and priority algorithms.
Line 1792 of ira.c keeps breaking. For context here's the function:
1783 static void
1784 setup_preferred_alternate_classes_for_new_pseudos (int start)
1785 {
1786   int i, old_regno;
1787   int max_regno = max_reg_num ();
1789   for (i = start; i < max_regno; i++)
1790     {
1791       old_regno = ORIGINAL_REGNO (regno_reg_rtx[i]);
1792       ira_assert (i != old_regno);
1793       setup_reg_classes (i, reg_preferred_class (old_regno),
1794                          reg_alternate_class (old_regno));
1795       if (internal_flag_ira_verbose > 2 && ira_dump_file != NULL)
1796         fprintf (ira_dump_file,
1797                  "    New r%d: setting preferred %s, alternative
1798                  i, reg_class_names[reg_preferred_class
1799                  reg_class_names[reg_alternate_class
1800     }
1801 }

Now, with CB trying several IRA_COVER_CLASSES config changes the place
where it breaks but it always breaks on my tests and always on this
line. priority breaks also on this line no matter what. Now, since it
is always this line that's breaking stuff I am wondering if there's
anything special about it that I didn't understand yet.

Any tips on what might be happening for this assert to break the
register allocator?


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]