Re: [LLVMdev] inline asm semantics: output constraint width smallerthan input

From: H. Peter Anvin
Date: Sat Jan 24 2009 - 16:12:25 EST


Chris Lattner wrote:
>
> We would like to support some more specific cases (e.g. when tying a
> pointer/int to a different size pointer/int) but we currently don't
> intend to support all cases (e.g. tying a FP value to int). We are in
> this position because the semantics are very vague and hard to reason
> about (and change based on target endianness) and we had many subtle
> bugs in the corner cases.
>
> Instead of having silent miscompiles, we decided to just reject all the
> "hard" cases and add them back one by one as there is demand. That way
> users could choose to modify their asms instead of having them be
> potentially silently miscompiled.
>

The case that matters for the kernel is integer to integer, when a
register is re-used from input to output.

> LLVM 2.5 is in its release process right now, so it will not have
> improvements in this area, but LLVM 2.6 certainly could. If there is
> interest in building the kernel with 2.5, I think taking the patches
> would be worthwhile. If that is hopeless anyway, waiting for the
> LLVM-side fixes should be fine.

The patches don't look all that bad to me, but I really want to make
sure we don't keep littering the kernel with workarounds for N different
compilers without getting a track to have them cleaned up.

-hpa

--
H. Peter Anvin, Intel Open Source Technology Center
I work for Intel. I don't speak on their behalf.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/