[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