Is there an existing ticket or wiki page describing the work required for adding an ARM backend to the NCG? I tried the following search with no luck: https://ghc.haskell.org/trac/ghc/query?status=infoneeded&status=merge&status... -Corey O'Connor coreyoconnor@gmail.com http://corebotllc.com/
I believe there are no current plans to add arm to the ncg. However, I'm hoping to spend a wee bit of time later this year cleaning up the ncg, and one consequence of that that simon marlow remarked upon at icfp is that would perhaps make it easier to add new targets to ncg. Which arm variant are you thinking of? There's quite a few arm isa variants. Also once Ben gamari's current debugging is sorted, we'll have stage 2 support for arm with ghci tooo. What's your interest and or use case? Cheers Carter On Sunday, December 22, 2013, Corey O'Connor wrote:
Is there an existing ticket or wiki page describing the work required for adding an ARM backend to the NCG?
I tried the following search with no luck:
https://ghc.haskell.org/trac/ghc/query?status=infoneeded&status=merge&status...
-Corey O'Connor coreyoconnor@gmail.com <javascript:_e({}, 'cvml', 'coreyoconnor@gmail.com');> http://corebotllc.com/
Carter Schonwald wrote:
I believe there are no current plans to add arm to the ncg.
However, I'm hoping to spend a wee bit of time later this year cleaning up
Dude, you have 7 days! Or did you mean next year :-).
the ncg, and one consequence of that that simon marlow remarked upon at icfp is that would perhaps make it easier to add new targets to ncg.
As soon as that NCG cleanup is ready for public consumption, please let me know so I can validate the PowerPC NCG. I think I am one of the few people who regularly builds GHC on PowerPC and even I haven't done it for two weeks because I just moved house. Cheers, Erik -- ---------------------------------------------------------------------- Erik de Castro Lopo http://www.mega-nerd.com/
I mean next year. I'm hoping to start hacking on it and a few other ncg related tasks early January with about 1-2 evenings of regularly scheduled work on it. So feel welcome to do a Ppc validate anyways in the mean time :-) On Sunday, December 22, 2013, Erik de Castro Lopo wrote:
Carter Schonwald wrote:
I believe there are no current plans to add arm to the ncg.
However, I'm hoping to spend a wee bit of time later this year cleaning up
Dude, you have 7 days! Or did you mean next year :-).
the ncg, and one consequence of that that simon marlow remarked upon at icfp is that would perhaps make it easier to add new targets to ncg.
As soon as that NCG cleanup is ready for public consumption, please let me know so I can validate the PowerPC NCG. I think I am one of the few people who regularly builds GHC on PowerPC and even I haven't done it for two weeks because I just moved house.
Cheers, Erik -- ---------------------------------------------------------------------- Erik de Castro Lopo http://www.mega-nerd.com/ _______________________________________________ ghc-devs mailing list ghc-devs@haskell.org <javascript:;> http://www.haskell.org/mailman/listinfo/ghc-devs
My interest is just to get involved somehow in the NCG. Starting a new backend seemed reasonable only because I couldn't break something that didn't exist. ;-) Though cleaning up the NCG would probably be more educational for me. So if that's desired then I'll get involved there. Cheers, Corey -Corey O'Connor coreyoconnor@gmail.com http://corebotllc.com/ On Sun, Dec 22, 2013 at 7:54 PM, Carter Schonwald < carter.schonwald@gmail.com> wrote:
I mean next year. I'm hoping to start hacking on it and a few other ncg related tasks early January with about 1-2 evenings of regularly scheduled work on it.
So feel welcome to do a Ppc validate anyways in the mean time :-)
On Sunday, December 22, 2013, Erik de Castro Lopo wrote:
Carter Schonwald wrote:
I believe there are no current plans to add arm to the ncg.
However, I'm hoping to spend a wee bit of time later this year cleaning up
Dude, you have 7 days! Or did you mean next year :-).
the ncg, and one consequence of that that simon marlow remarked upon at icfp is that would perhaps make it easier to add new targets to ncg.
As soon as that NCG cleanup is ready for public consumption, please let me know so I can validate the PowerPC NCG. I think I am one of the few people who regularly builds GHC on PowerPC and even I haven't done it for two weeks because I just moved house.
Cheers, Erik -- ---------------------------------------------------------------------- Erik de Castro Lopo http://www.mega-nerd.com/ _______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://www.haskell.org/mailman/listinfo/ghc-devs
_______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://www.haskell.org/mailman/listinfo/ghc-devs
Guys, I've been tinkering with ARM NCG idea for quite some time now, but honestly I've been always in doubts if it's the best way for GHC at all. I've thought that the plan was to kind of move out of NCG to LLVM based backends and I've though that although this plan may be kind of stuck now, it's still on the table. Yes, I know that GHC is volunteering effort so if someone comes and asks for an ARM NCG implementation merge it'll be probably done in some time, but I'm not sure if it's what's the most welcome at the end. Just some of my doubts about it... I would really appreciate some authoritative word about the topic from more involved GHC developers... I mean especially about NCG future... Thanks! Karel On 01/ 3/14 09:35 AM, Jens Petersen wrote:
On 3 January 2014 03:10, Corey O'Connor <coreyoconnor@gmail.com <mailto:coreyoconnor@gmail.com>> wrote:
My interest is just to get involved somehow in the NCG. Starting a new backend seemed reasonable only because I couldn't break something that didn't exist. ;-)
Well a big +1 from me for armv7 NCG.
_______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://www.haskell.org/mailman/listinfo/ghc-devs
| I've been tinkering with ARM NCG idea for quite some time now, but | honestly I've been always in doubts if it's the best way for GHC at all. | I've thought that the plan was to kind of move out of NCG to LLVM based | backends and I've though that although this plan may be kind of stuck | now, it's still on the table. I have not been following the ARM and LLVM threads very closely, but here's my take: * LLVM is (I hope) very much on the table. LLVM itself is a well-resourced project, and we can expect it to continue to exist. We should piggy-back on all the hard work that is going into it. * But using LLVM has some disadvantages. a) it imposes a dependency on LLVM b) it makes compilation slower c) we play some efficiency tricks (notably "tables next to code") that LLVM can't play (yet). I think. So GHC currently aims to have a built-in NCG for popular platforms, and to rely on LLVM for more esoteric platforms and also for superior optimisation. Is this still a sensible policy? Maybe you can articulate your doubts on the ARM NCG? Simon | -----Original Message----- | From: ghc-devs [mailto:ghc-devs-bounces@haskell.org] On Behalf Of Karel | Gardas | Sent: 03 January 2014 11:24 | To: Jens Petersen | Cc: ghc-devs@haskell.org | Subject: Re: ticket for adding ARM backend to NCG? | | | Guys, | | I've been tinkering with ARM NCG idea for quite some time now, but | honestly I've been always in doubts if it's the best way for GHC at all. | I've thought that the plan was to kind of move out of NCG to LLVM based | backends and I've though that although this plan may be kind of stuck | now, it's still on the table. | | Yes, I know that GHC is volunteering effort so if someone comes and asks | for an ARM NCG implementation merge it'll be probably done in some time, | but I'm not sure if it's what's the most welcome at the end. | | Just some of my doubts about it... | | I would really appreciate some authoritative word about the topic from | more involved GHC developers... I mean especially about NCG future... | | Thanks! | Karel | | On 01/ 3/14 09:35 AM, Jens Petersen wrote: | > On 3 January 2014 03:10, Corey O'Connor <coreyoconnor@gmail.com | > <mailto:coreyoconnor@gmail.com>> wrote: | > | > My interest is just to get involved somehow in the NCG. Starting a | > new backend seemed reasonable only because I couldn't break | > something that didn't exist. ;-) | > | > | > Well a big +1 from me for armv7 NCG. | > | > | > _______________________________________________ | > ghc-devs mailing list | > ghc-devs@haskell.org | > http://www.haskell.org/mailman/listinfo/ghc-devs | | _______________________________________________ | ghc-devs mailing list | ghc-devs@haskell.org | http://www.haskell.org/mailman/listinfo/ghc-devs
On 01/ 3/14 01:37 PM, Simon Peyton-Jones wrote:
| I've been tinkering with ARM NCG idea for quite some time now, but | honestly I've been always in doubts if it's the best way for GHC at all. | I've thought that the plan was to kind of move out of NCG to LLVM based | backends and I've though that although this plan may be kind of stuck | now, it's still on the table.
I have not been following the ARM and LLVM threads very closely, but here's my take:
* LLVM is (I hope) very much on the table. LLVM itself is a well-resourced project, and we can expect it to continue to exist. We should piggy-back on all the hard work that is going into it.
* But using LLVM has some disadvantages. a) it imposes a dependency on LLVM b) it makes compilation slower c) we play some efficiency tricks (notably "tables next to code") that LLVM can't play (yet). I think.
So GHC currently aims to have a built-in NCG for popular platforms, and to rely on LLVM for more esoteric platforms and also for superior optimisation.
This sounds indeed good.
Maybe you can articulate your doubts on the ARM NCG?
My main doubt was to invest a lot of time into something which will be deprecated in near future (as ARM NCG will take some time to do) assuming GHC is switching to LLVM completely and deprecating NCG. Your policy stated above clears that. Thanks! Karel
On 3 January 2014 12:37, Simon Peyton-Jones <simonpj@microsoft.com> wrote:
* But using LLVM has some disadvantages. c) we play some efficiency tricks (notably "tables next to code") that LLVM can't play (yet). I think.
In fact, this could well be implemented in the GHC 7.10, as this has been committed in LLVM on 15th September: http://www.haskell.org/pipermail/ghc-devs/2013-September/002565.html Implementing "tables next to code" in the LLVM IR generation may be something to get one's teeth into in time for 7.10 ? Carter: was this discussed further on #haskell-llvm ? -- Rob
| -----Original Message----- | From: ghc-devs [mailto:ghc-devs-bounces@haskell.org] On Behalf Of Karel | Gardas | Sent: 03 January 2014 11:24 | To: Jens Petersen | Cc: ghc-devs@haskell.org | Subject: Re: ticket for adding ARM backend to NCG? | | | Guys, | | I've been tinkering with ARM NCG idea for quite some time now, but | honestly I've been always in doubts if it's the best way for GHC at all. | I've thought that the plan was to kind of move out of NCG to LLVM based | backends and I've though that although this plan may be kind of stuck | now, it's still on the table. | | Yes, I know that GHC is volunteering effort so if someone comes and asks | for an ARM NCG implementation merge it'll be probably done in some time, | but I'm not sure if it's what's the most welcome at the end. | | Just some of my doubts about it... | | I would really appreciate some authoritative word about the topic from | more involved GHC developers... I mean especially about NCG future... | | Thanks! | Karel | | On 01/ 3/14 09:35 AM, Jens Petersen wrote: | > On 3 January 2014 03:10, Corey O'Connor <coreyoconnor@gmail.com | > <mailto:coreyoconnor@gmail.com>> wrote: | > | > My interest is just to get involved somehow in the NCG. Starting a | > new backend seemed reasonable only because I couldn't break | > something that didn't exist. ;-) | > | > | > Well a big +1 from me for armv7 NCG. | > | > | > _______________________________________________ | > ghc-devs mailing list | > ghc-devs@haskell.org | > http://www.haskell.org/mailman/listinfo/ghc-devs | | _______________________________________________ | ghc-devs mailing list | ghc-devs@haskell.org | http://www.haskell.org/mailman/listinfo/ghc-devs _______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://www.haskell.org/mailman/listinfo/ghc-devs
yes, but the conclusion was its unclear if it makes sense, also thats orthogonal to whether or not someone decides to do an arm NCG :) On Fri, Jan 3, 2014 at 2:06 PM, Rob Stewart <robstewart57@gmail.com> wrote:
On 3 January 2014 12:37, Simon Peyton-Jones <simonpj@microsoft.com> wrote:
* But using LLVM has some disadvantages. c) we play some efficiency tricks (notably "tables next to code") that LLVM can't play (yet). I think.
In fact, this could well be implemented in the GHC 7.10, as this has been committed in LLVM on 15th September: http://www.haskell.org/pipermail/ghc-devs/2013-September/002565.html
Implementing "tables next to code" in the LLVM IR generation may be something to get one's teeth into in time for 7.10 ?
Carter: was this discussed further on #haskell-llvm ?
-- Rob
| -----Original Message----- | From: ghc-devs [mailto:ghc-devs-bounces@haskell.org] On Behalf Of Karel | Gardas | Sent: 03 January 2014 11:24 | To: Jens Petersen | Cc: ghc-devs@haskell.org | Subject: Re: ticket for adding ARM backend to NCG? | | | Guys, | | I've been tinkering with ARM NCG idea for quite some time now, but | honestly I've been always in doubts if it's the best way for GHC at all. | I've thought that the plan was to kind of move out of NCG to LLVM based | backends and I've though that although this plan may be kind of stuck | now, it's still on the table. | | Yes, I know that GHC is volunteering effort so if someone comes and asks | for an ARM NCG implementation merge it'll be probably done in some time, | but I'm not sure if it's what's the most welcome at the end. | | Just some of my doubts about it... | | I would really appreciate some authoritative word about the topic from | more involved GHC developers... I mean especially about NCG future... | | Thanks! | Karel | | On 01/ 3/14 09:35 AM, Jens Petersen wrote: | > On 3 January 2014 03:10, Corey O'Connor <coreyoconnor@gmail.com | > <mailto:coreyoconnor@gmail.com>> wrote: | > | > My interest is just to get involved somehow in the NCG. Starting a | > new backend seemed reasonable only because I couldn't break | > something that didn't exist. ;-) | > | > | > Well a big +1 from me for armv7 NCG. | > | > | > _______________________________________________ | > ghc-devs mailing list | > ghc-devs@haskell.org | > http://www.haskell.org/mailman/listinfo/ghc-devs | | _______________________________________________ | ghc-devs mailing list | ghc-devs@haskell.org | http://www.haskell.org/mailman/listinfo/ghc-devs _______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://www.haskell.org/mailman/listinfo/ghc-devs
Hi, On Fri, Jan 3, 2014 at 8:06 PM, Rob Stewart <robstewart57@gmail.com> wrote:
On 3 January 2014 12:37, Simon Peyton-Jones <simonpj@microsoft.com> wrote:
* But using LLVM has some disadvantages. c) we play some efficiency tricks (notably "tables next to code") that LLVM can't play (yet). I think.
In fact, this could well be implemented in the GHC 7.10, as this has been committed in LLVM on 15th September: http://www.haskell.org/pipermail/ghc-devs/2013-September/002565.html
From my reading of the documentation for this feature it seems like for GHC to take advantage of it LLVM also needs to implement global symbol offsets [1]. I've emailed the author of the function prefix data patch, but he didn't respond.
[1] http://lists.cs.uiuc.edu/pipermail/llvmdev/2013-April/061511.html -- () ascii ribbon campaign - against html e-mail /\ www.asciiribbon.org - against proprietary attachments
On 03/01/14 12:37, Simon Peyton-Jones wrote:
| I've been tinkering with ARM NCG idea for quite some time now, but | honestly I've been always in doubts if it's the best way for GHC at all. | I've thought that the plan was to kind of move out of NCG to LLVM based | backends and I've though that although this plan may be kind of stuck | now, it's still on the table.
I have not been following the ARM and LLVM threads very closely, but here's my take:
* LLVM is (I hope) very much on the table. LLVM itself is a well-resourced project, and we can expect it to continue to exist. We should piggy-back on all the hard work that is going into it.
* But using LLVM has some disadvantages. a) it imposes a dependency on LLVM b) it makes compilation slower
Correct
c) we play some efficiency tricks (notably "tables next to code") that LLVM can't play (yet). I think.
Actually we have to generate tables-next-to-code from LLVM too, because the LLVM and NCG backends must be compatible (you can choose to use LLVM on a module-by-module basis using -fllvm). So tables-next-to-code is currently done using a post-processing step on the asm generated by LLVM. Cheers, Simon
So GHC currently aims to have a built-in NCG for popular platforms, and to rely on LLVM for more esoteric platforms and also for superior optimisation.
Is this still a sensible policy?
Maybe you can articulate your doubts on the ARM NCG?
Simon
| -----Original Message----- | From: ghc-devs [mailto:ghc-devs-bounces@haskell.org] On Behalf Of Karel | Gardas | Sent: 03 January 2014 11:24 | To: Jens Petersen | Cc: ghc-devs@haskell.org | Subject: Re: ticket for adding ARM backend to NCG? | | | Guys, | | I've been tinkering with ARM NCG idea for quite some time now, but | honestly I've been always in doubts if it's the best way for GHC at all. | I've thought that the plan was to kind of move out of NCG to LLVM based | backends and I've though that although this plan may be kind of stuck | now, it's still on the table. | | Yes, I know that GHC is volunteering effort so if someone comes and asks | for an ARM NCG implementation merge it'll be probably done in some time, | but I'm not sure if it's what's the most welcome at the end. | | Just some of my doubts about it... | | I would really appreciate some authoritative word about the topic from | more involved GHC developers... I mean especially about NCG future... | | Thanks! | Karel | | On 01/ 3/14 09:35 AM, Jens Petersen wrote: | > On 3 January 2014 03:10, Corey O'Connor <coreyoconnor@gmail.com | > <mailto:coreyoconnor@gmail.com>> wrote: | > | > My interest is just to get involved somehow in the NCG. Starting a | > new backend seemed reasonable only because I couldn't break | > something that didn't exist. ;-) | > | > | > Well a big +1 from me for armv7 NCG. | > | > | > _______________________________________________ | > ghc-devs mailing list | > ghc-devs@haskell.org | > http://www.haskell.org/mailman/listinfo/ghc-devs | | _______________________________________________ | ghc-devs mailing list | ghc-devs@haskell.org | http://www.haskell.org/mailman/listinfo/ghc-devs _______________________________________________ ghc-devs mailing list ghc-devs@haskell.org http://www.haskell.org/mailman/listinfo/ghc-devs
On 03/01/14 08:35, Jens Petersen wrote:
On 3 January 2014 03:10, Corey O'Connor <coreyoconnor@gmail.com <mailto:coreyoconnor@gmail.com>> wrote:
My interest is just to get involved somehow in the NCG. Starting a new backend seemed reasonable only because I couldn't break something that didn't exist. ;-)
Well a big +1 from me for armv7 NCG.
I've been thinking about doing an ARM NCG, mainly for fun and to learn ARM. But in reality I'm not likely to get around to this any time soon. To give you an idea of the work involved, it took me around a week of hacking to do the x86_64 NCG, and that was largely based on the existing x86 one. Rather than wading into an ARM NCG directly, it would pay off to first refactor the existing NCG infrastructure to make it much easier to add new targets, as Carter mentioned. We should have machine descriptions rather than the existing way that involves writing lots of special-purpose code for each target. Cheers, Simon
participants (9)
-
Carter Schonwald -
Corey O'Connor -
Erik de Castro Lopo -
Jens Petersen -
Karel Gardas -
Mikhail Glushenkov -
Rob Stewart -
Simon Marlow -
Simon Peyton-Jones