Messages in this thread | | | Date | Sat, 24 Jan 2009 13:10:04 -0800 | From | "H. Peter Anvin" <> | Subject | Re: [LLVMdev] inline asm semantics: output constraint width smaller than input |
| |
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.
| |