<div><span class="gmail_quote">On 11/23/07, <b class="gmail_sendername">Fernando Magno Quintao Pereira</b> <<a href="mailto:fernando@cs.ucla.edu">fernando@cs.ucla.edu</a>> wrote:</span>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid"><br>Hi, Sanjiv,<br><br>    those passes operate on the whole machine function. Each machine<br>function contains many basic blocks. If a program has many functions, the
<br>register allocator will be called as many times, i.e it does not do<br>interprocedural allocation.<br><br>best,<br><br>Fernando</blockquote>
<div> </div>
<div>Thanks for replying back. </div>
<div>I am looking to write a regalloc pass that does interprocedural regalloc.</div>
<div>By constructing a Call Graph and keeping the registers in a single call chain different so that i can avoid spilling (saving) across function calls. What will be the right place to do so? </div>
<div> </div>
<div>Sanjiv</div><br>
<blockquote class="gmail_quote" style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">> As far as I understand , the regalloc passes provided operate on basic block<br>> level?<br>> Is there anything that operate on the whole Module?
<br>><br>> Thx,<br>> Sanjiv<br>><br>_______________________________________________<br>LLVM Developers mailing list<br><a href="mailto:LLVMdev@cs.uiuc.edu">LLVMdev@cs.uiuc.edu</a>         <a href="http://llvm.cs.uiuc.edu">
http://llvm.cs.uiuc.edu</a><br><a href="http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev">http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev</a><br></blockquote></div><br>