
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-blwygH10z37TPxIqcKTOOf.... 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@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
*On Behalf Of *Kavon Farvardin *Sent:* 04 December 2019 19:32 *To:* Ben Gamari *Cc:* GHC developers *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
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-Op...
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@haskell.org http://mail.haskell.org/cgi-bin/mailman/listinfo/ghc-devs