Displaying 4 results from an estimated 4 matches for "test_compare_and_swap".
2009 Mar 27
1
[LLVMdev] atomic operations for ARM
...arm
> Cannot yet select: 0x1f7c540: i32,ch = AtomicCmpSwap 0x1f7cd00:1,
> 0x1f7cd00, 0x1f7c448, 0x1f7c350 <0x1f6fbe8:0> <volatile> alignment=4
> Stack dump:
> 0. Program arguments: llc -march=arm
> 1. Running pass 'ARM Instruction Selection' on function
> '@test_compare_and_swap'
It's hard to guess what the problem is from this. Are you able to step
through the code in ARMGenDAGISel.inc to see why it fails to match?
Evan
>
>
> I took a look at how the atomic_compare_swap implementation is done
> for
> PowerPC and X86 but got no clue how it get...
2009 Mar 27
0
[LLVMdev] atomic operations for ARM
...t; Atomics-32.ll | llc -march=arm
Cannot yet select: 0x1f7c540: i32,ch = AtomicCmpSwap 0x1f7cd00:1,
0x1f7cd00, 0x1f7c448, 0x1f7c350 <0x1f6fbe8:0> <volatile> alignment=4
Stack dump:
0. Program arguments: llc -march=arm
1. Running pass 'ARM Instruction Selection' on function
'@test_compare_and_swap'
I took a look at how the atomic_compare_swap implementation is done for
PowerPC and X86 but got no clue how it gets from atomic_cmp_swap_32 to
the target specific variant. Well, for X86 its done via a custom lowering.
Any idea how the DAG entry for ARM_ATOMIC_CMP_SWAP should look like so
tha...
2009 Mar 26
3
[LLVMdev] atomic operations for ARM
Hi,
I am missing atomic operations support for the ARM backend (see PR
#3887) and started trying to implement them.
Since this is the first time that I work on such stuff (and llvm) I am
going to take the supposedly easy route and provide an implementation
that will work on Linux systems.
This involves calling a special function which the kernel handles
itself. Details here:
2014 Mar 07
3
[LLVMdev] [RFC] Add second "failure" AtomicOrdering to cmpxchg instruction
...%2, i32 %3) nounwind
%4 = atomicrmw xchg i32* %x, i32 1 seq_cst
diff --git a/test/CodeGen/PowerPC/Atomics-32.ll b/test/CodeGen/PowerPC/Atomics-32.ll
index 64f1495..b5c03e2 100644
--- a/test/CodeGen/PowerPC/Atomics-32.ll
+++ b/test/CodeGen/PowerPC/Atomics-32.ll
@@ -529,63 +529,63 @@ define void @test_compare_and_swap() nounwind {
entry:
%0 = load i8* @uc, align 1
%1 = load i8* @sc, align 1
- %2 = cmpxchg i8* @sc, i8 %0, i8 %1 monotonic
+ %2 = cmpxchg i8* @sc, i8 %0, i8 %1 monotonic monotonic
store i8 %2, i8* @sc, align 1
%3 = load i8* @uc, align 1
%4 = load i8* @sc, align 1
- %5 = cmpxchg i8*...