Design discussion for atomic primops to land in 7.8

John Lato jwlato at gmail.com
Mon Aug 26 08:37:28 CEST 2013


On Sun, Aug 25, 2013 at 11:01 PM, Ben Lippmeier <benl at ouroborus.net> wrote:

>
> On 23/08/2013, at 3:52 AM, Ryan Newton wrote:
>
> > Well, what's the long term plan?  Is the LLVM backend going to become
> the only backend at some point?
>
> I wouldn't argue against ditching the NCG entirely. It's hard to justify
> fixing NCG performance problems when fixing them won't make the NCG faster
> than LLVM, and everyone uses LLVM anyway.
>

This is not true.  I don't believe I've ever seen the LLVM backend compile
more quickly than the NCG, it usually takes significantly longer, and for
at least some (most?) projects produces worse output.

I don't have anything against the LLVM backend in principle*, but at
present it's not as good as the NCG for us.

We're going to need more and more SIMD support when processors supporting
> the Larrabee New Instructions (LRBni) appear on people's desks. At that
> time there still won't be a good enough reason to implement those
> instructions in the NCG.


How about that the NCG is better than LLVM? ;)

In all seriousness, I'm quite sympathetic to the desire to support only one
backend, and LLVM can offer a lot (SIMD fallbacks, target architectures,
etc).  But at present, in my experience the LLVM backend doesn't really
live up to what I've seen claimed for it.  Given that, I think it's a bit
premature to talk of dropping the NCG.

My $0.02,
John

[1] Ok, I do have one issue with LLVM.  It's always struck me as very
brittle, with a lot of breakages between versions.  Given that I just tried
ghc -fllvm with LLVM-3.3 and the compiler bailed out due to a bad object
file, my impression of brittleness doesn't seem likely to change any time
soon.  Given that LLVM releases major versions predictably often, I don't
know that I want ghc devs spending time chasing after them.  But in
principle it seems the right thing to do.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/ghc-devs/attachments/20130826/480e5740/attachment.htm>


More information about the ghc-devs mailing list