search for: membarri

Displaying 16 results from an estimated 16 matches for "membarri".

Did you mean: membarrier
2008 Aug 19
2
[LLVMdev] Implementing llvm.memory.barrier on PowerPC
Hi all, I'm trying to implement llvm.memory.barrier on PowerPC. I've modelled my patch (attached) on the implementation in X86, but when I try and compile my test file (also attached) with llc I get the error "Cannot yet select: 0x10fa4ad0: ch = MemBarrier 0x10fa4828, 0x10fa4c68, 0x10fa4be0, 0x10fa4be0, 0x10fa4be0, 0x10fa4be0". This presumably means my "membarrier" pattern isn't being found... but why? Thanks in advance, Gary -- http://gbenson.net/ -------------- next part -------------- Index: include/llvm/IntrinsicsPowerPC.t...
2008 Aug 21
2
[LLVMdev] Implementing llvm.memory.barrier on PowerPC
...wrote: > > I'm trying to implement llvm.memory.barrier on PowerPC. I've > > modelled my patch (attached) on the implementation in X86, but > > when I try and compile my test file (also attached) with llc I > > get the error "Cannot yet select: 0x10fa4ad0: ch = MemBarrier > > 0x10fa4828, 0x10fa4c68, 0x10fa4be0, 0x10fa4be0, 0x10fa4be0, > > 0x10fa4be0". This presumably means my "membarrier" pattern > > isn't being found... but why? > > Because the i1's in the .bc file get promoted to i32 on ppc, > instead of i8. I...
2008 Aug 22
3
[LLVMdev] Implementing llvm.memory.barrier on PowerPC
...39;m trying to implement llvm.memory.barrier on PowerPC. I've > >>>modelled my patch (attached) on the implementation in X86, but > >>>when I try and compile my test file (also attached) with llc I > >>>get the error "Cannot yet select: 0x10fa4ad0: ch = MemBarrier > >>>0x10fa4828, 0x10fa4c68, 0x10fa4be0, 0x10fa4be0, 0x10fa4be0, > >>>0x10fa4be0". This presumably means my "membarrier" pattern > >>>isn't being found... but why? > >> > >>Because the i1's in the .bc file get promoted...
2008 Jul 25
2
[LLVMdev] Implementing llvm.memory.barrier on PowerPC
Hi all, I want to implement llvm.memory.barrier on PowerPC. The implementation would be the single instruction "sync", but currently it's defined with: setOperationAction(ISD::MEMBARRIER, MVT::Other, Expand) in lib/Target/PowerPC/PPCISelLowering.cpp, which causes it to be a noop. I replaced the "Expand" with "Legal" in the hope I'd get an error message that'd point me to where I need to start adding stuff, but I just got the cryptic: Cannot yet se...
2008 Aug 21
0
[LLVMdev] Implementing llvm.memory.barrier on PowerPC
...n wrote: > Hi all, > > I'm trying to implement llvm.memory.barrier on PowerPC. I've modelled > my patch (attached) on the implementation in X86, but when I try and > compile my test file (also attached) with llc I get the error "Cannot > yet select: 0x10fa4ad0: ch = MemBarrier 0x10fa4828, 0x10fa4c68, > 0x10fa4be0, 0x10fa4be0, 0x10fa4be0, 0x10fa4be0". This presumably > means my "membarrier" pattern isn't being found... but why? > > Thanks in advance, > Gary Because the i1's in the .bc file get promoted to i32 on ppc, instead of...
2008 Aug 21
0
[LLVMdev] Implementing llvm.memory.barrier on PowerPC
...>> I'm trying to implement llvm.memory.barrier on PowerPC. I've >>> modelled my patch (attached) on the implementation in X86, but >>> when I try and compile my test file (also attached) with llc I >>> get the error "Cannot yet select: 0x10fa4ad0: ch = MemBarrier >>> 0x10fa4828, 0x10fa4c68, 0x10fa4be0, 0x10fa4be0, 0x10fa4be0, >>> 0x10fa4be0". This presumably means my "membarrier" pattern >>> isn't being found... but why? >> >> Because the i1's in the .bc file get promoted to i32 on ppc, >&g...
2008 Aug 22
0
[LLVMdev] Implementing llvm.memory.barrier on PowerPC
...to implement llvm.memory.barrier on PowerPC. I've >>>>> modelled my patch (attached) on the implementation in X86, but >>>>> when I try and compile my test file (also attached) with llc I >>>>> get the error "Cannot yet select: 0x10fa4ad0: ch = MemBarrier >>>>> 0x10fa4828, 0x10fa4c68, 0x10fa4be0, 0x10fa4be0, 0x10fa4be0, >>>>> 0x10fa4be0". This presumably means my "membarrier" pattern >>>>> isn't being found... but why? >>>> >>>> Because the i1's in the .bc...
2008 Feb 15
6
[LLVMdev] llvm.atomic.barrier implementation
Attached is the target independent llvm.atomic.barrier support, as well as alpha and x86 (sse2) support. This matches Chandler's definitions, and the LangRef patch will just restore that. Non-sse2 barrier will be needed, I think it is "lock; mov %esp, %esp", but I'm not sure. Any objections? I'll take a hack at the front end support for __sync_synchronize after this
2016 Jan 13
4
RFC: non-temporal fencing in LLVM IR
...vm-dev/2014-September/076701.html> where fences are exactly where they need to be, no more, no less. *Isn't x86's lfence just a no-op?* Yes, but we're proposing the addition of a target-independent non-temporal load barrier. It'll be up to the x86 backend to make it an X86ISD::MEMBARRIER and other backends to get it right (hint: it's not always a no-op). *Won't this optimization cause coherency misses? C++ access the thread stack concurrently all the time!* Maybe, but then it isn't much of an optimization if it's slowing code down. LLVM doesn't just target...
2013 Apr 18
1
[LLVMdev] optimization in presence of floating point
For reordering issues, it would be useful for llvm ir to provide various ways to control reordering. for example, a wrapper that indicates that other operations cannot be moved inside the wrapper. or a wrapper that indicates that the IR in it must be processed canonically. I think GCC may already have some of this but I'm not sure. On 04/17/2013 08:59 PM, Hal Finkel wrote: > -----
2016 Jan 14
2
RFC: non-temporal fencing in LLVM IR
...tly where they need to be, no more, no less. > > > Isn't x86's lfence just a no-op? > > > Yes, but we're proposing the addition of a target-independent > > non-temporal load barrier. It'll be up to the x86 backend to make > > it > > an X86ISD::MEMBARRIER and other backends to get it right (hint: > > it's > > not always a no-op). > > > Won't this optimization cause coherency misses? C++ access the > > thread > > stack concurrently all the time! > > > Maybe, but then it isn't much of an opti...
2007 Jul 12
0
[LLVMdev] Atomic Operation and Synchronization Proposal v2
...TAS a byte is sufficient, whereas with swap you probably would require that the exchange has machine-word size. > These implementations assume a very conservative interpretation. > result = __sync_fetch_and_add( <ty>* ptr, <ty> value ) > call void @llvm.atomic.membarrier( i1 true, i1 true, i1 true, > i1 true ) > %result = call <ty> @llvm.atomic.las( <ty>* %ptr, <ty> %value ) Shouldn't you have a second membar after the las() to be very conservative (i.e., if las() is supposed to really be linearizable)? Otherwise, th...
2007 Jul 12
4
[LLVMdev] Atomic Operation and Synchronization Proposal v2
Hello, This is the second major revision of the atomic proposal for LLVM. I will try and give a brief overview of the motivating changes, but a greater portion of the text has changed, along with some changes to the proposed additions. http://chandlerc.net/llvm_atomics.html - The proposal has been rewritten to better delineate the goals and purposes of LLVM, and these additions to LLVM. The why
2007 Jul 09
5
[LLVMdev] Proposal for atomic and synchronization instructions
Torvald Riegel wrote: > Hi, > > I'd like to see support for something like this. I have some comments, and I > think there is existing work that you can reuse. "reuse within the compiler." > "While the processor may spin and attempt the atomic operation more than once > before it is successful, research indicates this is extremely uncommon." > I
2016 Jan 13
2
RFC: non-temporal fencing in LLVM IR
...tly where they need to be, no more, no less. > > > > > > *Isn't x86's **lfence just a no-op?* > > > > Yes, but we're proposing the addition of a target-independent non-temporal > load barrier. It'll be up to the x86 backend to make it an > X86ISD::MEMBARRIER and other backends to get it right (hint: it's not > always a no-op). > > > > > > *Won't this optimization cause coherency misses? C++ access the thread > stack concurrently all the time!* > > > > Maybe, but then it isn't much of an optimization if...
2007 Jul 12
1
[LLVMdev] Atomic Operation and Synchronization Proposal v2
...ese operations. 'cas' and 'swap' will lower to single byte instructions on x86 f.ex. > > These implementations assume a very conservative interpretation. > > result = __sync_fetch_and_add( <ty>* ptr, <ty> value ) > > call void @llvm.atomic.membarrier( i1 true, i1 true, i1 true, > > i1 true ) > > %result = call <ty> @llvm.atomic.las( <ty>* %ptr, <ty> %value ) > > Shouldn't you have a second membar after the las() to be very conservative > (i.e., if las() is supposed to really be linear...