[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