llvm calling convention matters

Johan Tibell johan.tibell at gmail.com
Wed Sep 11 23:59:05 UTC 2013

Do nothing different than you're doing for 7.8, we can sort it out later.
Just put a comment on the primops saying they're LLVM-only. See e.g.


for an example how to add docs to primops.

I don't think we need interop between the native and the LLVM backends. We
don't have that now do we (i.e. they use different calling conventions).

On Wed, Sep 11, 2013 at 4:51 PM, Geoffrey Mainland <mainland at apeiron.net>wrote:

> On 09/11/2013 07:44 PM, Johan Tibell wrote:
> > On Wed, Sep 11, 2013 at 4:40 PM, Geoffrey Mainland <mainland at apeiron.net>
> wrote:
> > > Do you mean we need a reasonable emulation of the SIMD primops for
> > > the native codegen?
> >
> > Yes. Reasonable in the sense that it computes the right result. I can
> > see that some code might still want to #ifdef (if the fallback isn't
> > fast enough).
> Two implications of this requirement:
> 1) There will not be SIMD in 7.8. I just don't have the time. In fact,
> what SIMD support is there already will have to be removed if we cannot
> live with LLVM-only SIMD primops.
> 2) If we also require interop between the LLVM back-end and the native
> codegen, then we cannot pass any SIMD vectors in registers---they all
> must be passed on the stack.
> My plan, as discussed with Simon PJ, is to not support SIMD primops at
> all with the native codegen. If there is a strong feeling that this *is
> not* the way to go, the I need to know ASAP.
> Geoff
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.haskell.org/pipermail/ghc-devs/attachments/20130911/0e7de8fe/attachment.htm>

More information about the ghc-devs mailing list