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)) {
> >...
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)) {
> >...
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
>