/// <summary> /// Constructs a new barrier. /// </summary> /// <param name="context">The parent IR context.</param> /// <param name="basicBlock">The parent basic block.</param> /// <param name="barrierKind">The barrier kind.</param> internal Barrier( IRContext context, BasicBlock basicBlock, BarrierKind barrierKind) : base( basicBlock, ImmutableArray <ValueReference> .Empty, ComputeType(context)) { Kind = barrierKind; }
public MemoryValue CreateBarrier( Location location, BarrierKind kind) => Append(new Barrier( GetInitializer(location), kind));
public MemoryValue CreateBarrier(BarrierKind kind) => Append(new Barrier( Context, BasicBlock, kind));
public static string GetBarrier(BarrierKind kind) => BarrierOperations[(int)kind];
public Barrier(Node[] nodes, BarrierKind kind, Wall wall) { Nodes = nodes; Kind = kind; Wall = wall; }