[llvm-commits] [llvm] r61092 - in /llvm/trunk: lib/CodeGen/SelectionDAG/SelectionDAGBuild.cpp test/CodeGen/PowerPC/2008-10-17-AsmMatchingOperands.ll
Evan Cheng
echeng at apple.com
Tue Dec 16 18:15:46 PST 2008
On Dec 16, 2008, at 1:29 PM, Chris Lattner wrote:
>
> On Dec 16, 2008, at 1:22 PM, Dan Gohman wrote:
>
>> Hi Evan,
>>
>> I'm seeing this error trigger when building libgomp on x86_64-linux-
>> gnu.
>> I've attached a reduced LLVM IR testcase.
>>
>> Here is the relevant C code, from libgomp/config/linux/x86/futex.h:
>>
>> static inline void
>> futex_wake (int *addr, int count)
>> {
>> long res;
>>
>> __asm volatile ("syscall"
>> : "=a" (res)
>> : "0"(SYS_futex), "D" (addr), "S"(FUTEX_WAKE),
>> "d"(count)
>> : "r11", "rcx", "memory");
>> }
>>
>> SYS_futex here is a constant. Would it be possible to support this
>> specific case?
>
> It would be best for llvm-gcc to widen the tied input/output to the
> larger of the two integer types.
We have decided not to support this type of inline asm because it's
not clear what's the right thing to do. Should we widen to cast down?
I guess it's clear in certain cases (e.g ptr type). I'll take a look.
Evan
>
>
> -Chris
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
More information about the llvm-commits
mailing list