Beispiel #1
0
 public ValueReference CreateMemoryBarrier(
     MemoryBarrierKind kind)
 {
     return(Append(new MemoryBarrier(
                       Context,
                       BasicBlock,
                       kind)));
 }
Beispiel #2
0
 /// <summary>
 /// Constructs a new memory barrier.
 /// </summary>
 /// <param name="context">The parent IR context.</param>
 /// <param name="basicBlock">The parent basic block.</param>
 /// <param name="kind">The barrier kind.</param>
 internal MemoryBarrier(
     IRContext context,
     BasicBlock basicBlock,
     MemoryBarrierKind kind)
     : base(
         basicBlock,
         ImmutableArray <ValueReference> .Empty,
         ComputeType(context))
 {
     Kind = kind;
 }
Beispiel #3
0
 /// <summary>
 /// Creates a memory barrier.
 /// </summary>
 /// <param name="location">The current location.</param>
 /// <param name="kind">The type of the memory barrier.</param>
 /// <returns>A node that represents the memory barrier.</returns>
 public ValueReference CreateMemoryBarrier(
     Location location,
     MemoryBarrierKind kind) =>
 Append(new MemoryBarrier(
            GetInitializer(location),
            kind));
 public MemoryBarrierIntrinsicAttribute(MemoryBarrierKind intrinsicKind)
 {
     IntrinsicKind = intrinsicKind;
 }
Beispiel #5
0
 public static string GetMemoryBarrier(MemoryBarrierKind kind) =>
 MemoryBarrierOperations[(int)kind];