Ian Bolton wrote:
Thanks for the detailed answer.
While we're on the subject of assign_hard_reg, I notice the costs and
min_cost variable are set but never used (decisions are being made with
the full_costs array and min_full_cost). Should they be referenced
somehow or are they just redundant?
Yes, they are redundant. I worked a lot of time on IRA tuning which
resulted in many (small or big) code modifications. I tried to remove
all experimental code before submitting IRA but some redundant code
went through. As you understand in some experiments min_cost was used
instead of min_full_cost. Min_cost might work for some targets because
I mostly focused on tuning for mainstream targets x86/x86_64 and powerpc.
By the way, I am still working on graph coloring based RA without cover
classes. Finally, it might help with your target problems.
Unfortunately, I have a performance degradation on mainstream targets
for this code in comparison with code using the cover classes. It is a
long way to fix the degradations. If I fix it, the code will be part of
gcc 4.6.