[llvm-dev] Open Project : Inter-procedural Register Allocation [GSoC 2016]

Mehdi Amini via llvm-dev llvm-dev at lists.llvm.org
Sun Apr 10 10:13:31 PDT 2016


Hi,

Here is the patch (I already sent it in this thread):

-------------- next part --------------
A non-text attachment was scrubbed...
Name: CGCCC.diff
Type: application/octet-stream
Size: 1603 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20160410/bfc06dd3/attachment.obj>
-------------- next part --------------


Note that Vivek submitted a proposal to implement this as a GSOC project, we'll know soon if he gets selected.

-- 
Mehdi


> On Apr 10, 2016, at 8:10 AM, Adam Husar <husar at codasip.com> wrote:
> 
> Hello Mehdi,
> 
>  could I ask you if you could share your patch?
> We are testing whether at least some leaf call register allocation optimization could help and you patch or some pointers on what to do will be very useful.
> 
> Thank you
>  Adam
> 
> 
> On Wed, 23 Mar 2016 05:04:41 +0100, Mehdi Amini via llvm-dev <llvm-dev at lists.llvm.org> wrote:
> 
>> 
>>> On Mar 22, 2016, at 6:04 PM, Matthias Braun via llvm-dev <llvm-dev at lists.llvm.org> wrote:
>>> 
>>> No need to apologize this thread surely deserved some answers :)
>>> 
>>> From my perspective this project sounds doable. I would expect the register allocation parts to be not too hard: I imagine this being just distilling a new clobber regmask after allocating a function. I would expect the challenging (or annoying) part to get a machine module pass (or a similar mechanism to influence the order in which functions are processed) and a callgraph in the backend.
>> 
>> I have a very tiny patch that wrap the backend in a CGSCC pass manager, which will achieve what is needed here I believe: i.e. running CodeGen for every callee before any caller.
>> I can rebase it if anyone is interested.



More information about the llvm-dev mailing list