new llvm IR callbr instruction useful for proc-point splitting?

George Colpitts george.colpitts at gmail.com
Wed Dec 4 23:02:39 UTC 2019


Kavin is definitely the right guy to answer this but as he mentioned the
Wiki now has a link to the Google Doc, i.e.
https://docs.google.com/document/d/1Pn2_TDBJwSBKkjFlT-blwygH10z37TPxIqcKTOOf2mg/edit#.
Simon, have you had a chance to read that?

If I understand that doc correctly the original hope of a CPS
call intrinsic in LLVM has been abandoned. Excerpts from the doc:

First approach -- “CPS call” intrinsic in LLVM
...
Current ideas
...

CPS call

LLVM recently added callbr instruction that looks similar to what we need
to get CPS calls to work (the instruction allows to reify the return
address as a parameter to a call and specify the successor blocks where the
call might jump back to).




On Wed, Dec 4, 2019 at 6:16 PM Simon Peyton Jones via ghc-devs <
ghc-devs at haskell.org> wrote:

> Thanks Kavon.
>
>
>
> What news of CpsCall in LLVM?  That seems crucial.
>
>
>
> I didn’t know of an effort to use a different SP register.  I seriously
> doubt that, with GHC’s use of zillions of small, heap-allocated stacks that
> move around during GHC, we’ll be able to leverage profiling or debugging
> tools in a serious way. But perhaps I need education.
>
>
>
> Simon
>
>
>
> *From:* ghc-devs <ghc-devs-bounces at haskell.org> *On Behalf Of *Kavon
> Farvardin
> *Sent:* 04 December 2019 19:32
> *To:* Ben Gamari <ben at smart-cactus.org>
> *Cc:* GHC developers <ghc-devs at haskell.org>
> *Subject:* Re: new llvm IR callbr instruction useful for proc-point
> splitting?
>
>
>
> Hi Ben,
>
>
>
> The Wiki now has a link to the Google Doc that Michal and I were working
> on to compile all of the notes into one place.
>
>
>
> The key progress made on this front has been in evaluating the trade-offs
> of the design space being considered by GHC, but tested within Manticore.
>
>
>
> I'm drafting a message today for the LLVM mailing list regarding one of
> our first options: defining a GHC ABI to redefine which stack-pointer
> register is used.
>
>
>
> Once we have additional answers to the question "how much effort is it to
> add a GHC ABI to LLVM?", we can then then start a discussion on whether GHC
> wants to change instead by moving to a native stack-pointer register (to
> take advantage of existing debugging and profiling tools, etc).
>
>
>
> Ideally, we would then make a decision on which option to take and someone
> (perhaps a GSoC student with mentorship from myself and others) with spare
> time can work on it.
>
>
>
> Cheers,
>
> Kavon
>
>
>
> On Wed, 2019-12-04 at 11:38 -0500, Ben Gamari wrote:
>
> Kavon Farvardin <kavon at farvard.in> writes:
>
>
>
> Yes, callbr is part of the discussion on removing proc-point splitting!
>
> Soon there will be an announcement about a new working group dedicated to LLVM
>
> issues such as this one on this mailing list. Anyone interested is welcome to
>
> join our meetings.
>
> We're currently gathering our notes together first, but you can have a look here
>
> for a preview:
>
> https://gitlab.haskell.org/ghc/ghc/wikis/commentary/compiler/LLVM-Backend-Optimization
>
>
>
> Hi Kavon,
>
>
>
> What ever happened to this? It came up during the GHC call and we
>
> realized that none of us knew what the state of the proposal was. Is
>
> this Wiki page still reflective of the current state of play?
>
>
>
> Cheers,
>
>
>
> - Ben
>
>
>
>
>
> _______________________________________________
> ghc-devs mailing list
> ghc-devs at haskell.org
> http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/ghc-devs/attachments/20191204/7246ac3f/attachment.html>


More information about the ghc-devs mailing list