Optimal Coalescing with respect to move instruction for Live range splitting
Vladimir Makarov
vmakarov@redhat.com
Mon Jan 26 19:47:00 GMT 2015
On 2015-01-18 12:37 AM, Ajit Kumar Agarwal wrote:
> Register allocation with two phase approach does optimal coalescing after the spilling. Sometime Live range splitting makes
> the coalescing non optimal. The splitted Live range are connected by move instruction. Thus the Live range splitting and more
> specifically aggressive Live range splitting increases the number of move instruction and making the coalescing
> non optimal.
>
> The optimal coalescing should take the frequency of the regions into consideration. The more the frequency of the region the cost
> associated with the splitted live ranges will increase. If such cost increasing then we should do aggressive coalescing in this case and
> remove the move instruction by associating the same color or hard registers associated with move instruction for the splitting live
> ranges.
>
> I am think of adding such heuristics in the GCC Top Down Region based register allocator for the optimal coalescing, thereby reducing
> the move instruction connected with the splitted Live ranges in the more frequently code.
>
> Thoughts please ?
>
>
It is difficult for me to understand what and how you will do this
exactly. If it is not a big work to implement this heuristic, I guess
you should try and see the result. If it works we can add it to the RA.
More information about the Gcc
mailing list