As far as I understand , the regalloc passes provided operate on basic block level? Is there anything that operate on the whole Module? Thx, Sanjiv -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20071122/0b24c954/attachment.html>
Fernando Magno Quintao Pereira
2007-Nov-23 08:14 UTC
[LLVMdev] global register allocation.
Hi, Sanjiv, those passes operate on the whole machine function. Each machine function contains many basic blocks. If a program has many functions, the register allocator will be called as many times, i.e it does not do interprocedural allocation. best, Fernando> As far as I understand , the regalloc passes provided operate on basic block > level? > Is there anything that operate on the whole Module? > > Thx, > Sanjiv >
On 11/23/07, Fernando Magno Quintao Pereira <fernando at cs.ucla.edu> wrote:> > > Hi, Sanjiv, > > those passes operate on the whole machine function. Each machine > function contains many basic blocks. If a program has many functions, the > register allocator will be called as many times, i.e it does not do > interprocedural allocation. > > best, > > FernandoThanks for replying back. I am looking to write a regalloc pass that does interprocedural regalloc. 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? Sanjiv> As far as I understand , the regalloc passes provided operate on basic > block > > level? > > Is there anything that operate on the whole Module? > > > > Thx, > > Sanjiv > > > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20071123/ee0abc75/attachment.html>