예제 #1
0
 /// <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;
 }
예제 #2
0
파일: Threads.cs 프로젝트: saimarpaka/ILGPU
 public MemoryValue CreateBarrier(
     Location location,
     BarrierKind kind) =>
 Append(new Barrier(
            GetInitializer(location),
            kind));
예제 #3
0
파일: Threads.cs 프로젝트: linhdh/ILGPU
 public MemoryValue CreateBarrier(BarrierKind kind) =>
 Append(new Barrier(
            Context,
            BasicBlock,
            kind));
예제 #4
0
 public static string GetBarrier(BarrierKind kind) =>
 BarrierOperations[(int)kind];
예제 #5
0
 public Barrier(Node[] nodes, BarrierKind kind, Wall wall)
 {
     Nodes = nodes;
     Kind  = kind;
     Wall  = wall;
 }