search for: getsynchscope

Displaying 11 results from an estimated 11 matches for "getsynchscope".

2014 Nov 19
2
[LLVMdev] memory scopes in atomic instructions
On 11/19/2014 4:05 AM, Chandler Carruth wrote: > > On Fri, Nov 14, 2014 at 1:09 PM, Sahasrabuddhe, Sameer > <sameer.sahasrabuddhe at amd.com <mailto:sameer.sahasrabuddhe at amd.com>> > wrote: > > 1. Update the synchronization scope field in atomic instructions > from a > single bit to a wider field, say 32-bit unsigned integer. > > > I
2014 Mar 07
3
[LLVMdev] [RFC] Add second "failure" AtomicOrdering to cmpxchg instruction
...@@ public: bool isNonTemporal() const { return (SubclassData >> 6) & 1; } bool isInvariant() const { return (SubclassData >> 7) & 1; } + AtomicOrdering getOrdering() const { return AtomicOrdering((SubclassData >> 8) & 15); } + SynchronizationScope getSynchScope() const { return SynchronizationScope((SubclassData >> 12) & 1); } @@ -1089,15 +1092,28 @@ public: class AtomicSDNode : public MemSDNode { SDUse Ops[4]; - void InitAtomic(AtomicOrdering Ordering, SynchronizationScope SynchScope) { + /// For cmpxchg instructions, the orderi...
2011 Nov 17
2
[LLVMdev] [llvm-commits] [PATCH] BasicBlock Autovectorization Pass
...Inst>(I)->isVolatile() == > + cast<LoadInst>(J)->isVolatile()&& > + cast<LoadInst>(I)->getOrdering() == > + cast<LoadInst>(J)->getOrdering()&& > + cast<LoadInst>(I)->getSynchScope() == > + cast<LoadInst>(J)->getSynchScope() > + ) { > + isCompat = true; > + } > + } > + } else if (!isCompat&& isa<StoreInst>(I)&& isa<StoreInst>(J)) { > +...
2011 Nov 21
0
[LLVMdev] [llvm-commits] [PATCH] BasicBlock Autovectorization Pass
...latile() == > > + cast<LoadInst>(J)->isVolatile()&& > > + cast<LoadInst>(I)->getOrdering() == > > + cast<LoadInst>(J)->getOrdering()&& > > + cast<LoadInst>(I)->getSynchScope() == > > + cast<LoadInst>(J)->getSynchScope() > > + ) { > > + isCompat = true; > > + } > > + } > > + } else if (!isCompat&& isa<StoreInst>(I)&& isa<Stor...
2011 Nov 16
0
[LLVMdev] [llvm-commits] [PATCH] BasicBlock Autovectorization Pass
Tobias, et al., Attached is the my autovectorization pass. I've fixed a bug that appears when using -bb-vectorize-aligned-only, fixed some 80-col violations, etc., and at least on x86_64, all test cases pass except for a few; and all of these failures look like instruction-selection bugs. For example: MultiSource/Applications/ClamAV - fails to compile shared_sha256.c with an error: error in
2011 Nov 15
3
[LLVMdev] [llvm-commits] [PATCH] BasicBlock Autovectorization Pass
Tobias, I've attached the latest version of my autovectorization patch. I was able to add support for using the ScalarEvolution analysis for load/store pairing (thanks for your help!). This led to a modest performance increase and a modest compile-time increase. This version also has a cutoff as you suggested (although the default value is set high (4000 instructions between pairs) because
2011 Dec 02
5
[LLVMdev] [llvm-commits] [PATCH] BasicBlock Autovectorization Pass
...cast<LoadInst>(I)->isVolatile() == > + cast<LoadInst>(J)->isVolatile()&& > + cast<LoadInst>(I)->getOrdering() == > + cast<LoadInst>(J)->getOrdering()&& > + cast<LoadInst>(I)->getSynchScope() == > + cast<LoadInst>(J)->getSynchScope() > + ) { > + IsCompat = true; > + } > + } > + } else if (!IsCompat&& isa<StoreInst>(I)&& isa<StoreInst>(J)) { > + if (cast<StoreInst>(...
2011 Dec 14
0
[LLVMdev] [llvm-commits] [PATCH] BasicBlock Autovectorization Pass
...>(I)->isVolatile() == > > + cast<LoadInst>(J)->isVolatile()&& > > + cast<LoadInst>(I)->getOrdering() == > > + cast<LoadInst>(J)->getOrdering()&& > > + cast<LoadInst>(I)->getSynchScope() == > > + cast<LoadInst>(J)->getSynchScope() > > + ) { > > + IsCompat = true; > > + } > > + } > > + } else if (!IsCompat&& isa<StoreInst>(I)&& isa<StoreInst>(J)) { > &gt...
2011 Nov 23
0
[LLVMdev] [llvm-commits] [PATCH] BasicBlock Autovectorization Pass
On Mon, 2011-11-21 at 21:22 -0600, Hal Finkel wrote: > On Mon, 2011-11-21 at 11:55 -0600, Hal Finkel wrote: > > Tobias, > > > > I've attached an updated patch. It contains a few bug fixes and many > > (refactoring and coding-convention) changes inspired by your comments. > > > > I'm currently trying to fix the bug responsible for causing a compile
2011 Dec 02
0
[LLVMdev] [llvm-commits] [PATCH] BasicBlock Autovectorization Pass
...>(I)->isVolatile() == > > + cast<LoadInst>(J)->isVolatile()&& > > + cast<LoadInst>(I)->getOrdering() == > > + cast<LoadInst>(J)->getOrdering()&& > > + cast<LoadInst>(I)->getSynchScope() == > > + cast<LoadInst>(J)->getSynchScope() > > + ) { > > + IsCompat = true; > > + } > > + } > > + } else if (!IsCompat&& isa<StoreInst>(I)&& isa<StoreInst>(J)) { > &gt...
2011 Nov 22
5
[LLVMdev] [llvm-commits] [PATCH] BasicBlock Autovectorization Pass
On Mon, 2011-11-21 at 11:55 -0600, Hal Finkel wrote: > Tobias, > > I've attached an updated patch. It contains a few bug fixes and many > (refactoring and coding-convention) changes inspired by your comments. > > I'm currently trying to fix the bug responsible for causing a compile > failure when compiling >