[LLVMdev] inline asm semantics: output constraint width smaller than input
H. Peter Anvin
hpa at zytor.com
Sat Jan 24 13:10:04 PST 2009
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.
More information about the llvm-dev
mailing list