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.

    https://github.com/ghc/ghc/blob/master/compiler/prelude/primops.txt.pp#L181

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@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@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