llvm calling convention matters

Geoffrey Mainland mainland at apeiron.net
Wed Sep 11 23:51:41 UTC 2013


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





More information about the ghc-devs mailing list