<div><span class="gmail_quote">On 4/17/07, <b class="gmail_sendername">David Greene</b> <<a href="mailto:greened@obbligato.org">greened@obbligato.org</a>> wrote:</span></div>
<div>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">Is anyone aware of publications addressing the interplay among<br>coalescing, live range splitting, register allocation and spilling?
</blockquote>
<div> </div>
<div>
<div>I think in the paper I mentioned above ("Design and Implementation of GCRA in GCC"; though the implementation failed at last the paper itself contains a lot of useful information) there are descriptions of different coalescing techniques: iterated, optimistic and extended coalescing. You can find the papers on these methods at citeseer, for example. Here are the links:
</div>
<div><a href="http://citeseer.ist.psu.edu/park98optimistic.html">http://citeseer.ist.psu.edu/park98optimistic.html</a> for optimistic and</div>
<div><a href="http://citeseer.ist.psu.edu/197136.html">http://citeseer.ist.psu.edu/197136.html</a> for iterated coalescing.</div>
<div> </div>
<div>The main idea is to try to split live ranges of the coalesced virtual regs that haven't got a color during the select step and to color them separately. I think this is exactly what Chris suggests (with rematerialization, too, of course).
</div></div></div>