
12 Mar
2013
12 Mar
'13
11:12 a.m.
On Tue, Mar 12, 2013 at 8:08 AM, Geoffrey Mainland
LLVM needs to know statically whether or not an SSE move is aligned---it can't be computed at runtime. I don't think passing an extra Int# argument (or whatever) to a primop is going to work.
Ah, but sometimes optimization exposes that information statically (i.e. by inlining). In my case I know Array# is word-aligned and if someone uses memcpy with a 0 offset the compiler might spot this and use the right alignment (this is what happens today). Now, if e.g. ByteArray# can never allocated 16-byte aligned, this doesn't help us much.