This is the mail archive of the gcc@gcc.gnu.org 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]

Optimal Coalescing with respect to move instruction for Live range splitting


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 ?

Thanks & Regards
Ajit


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