public unsafe static ValueRef BuildAtomicRMW(BuilderRef B, AtomicRMWBinOp op, ValueRef PTR, ValueRef Val, AtomicOrdering ordering, bool singleThread) { ValueRef ret = new ValueRef(LLVMPINVOKE.BuildAtomicRMW(B.Value, (int)op, PTR.Value, Val.Value, (int)ordering, singleThread)); return ret; }
public unsafe static ValueRef BuildFence(BuilderRef B, AtomicOrdering ordering, bool singleThread, string Name) { ValueRef ret = new ValueRef(LLVMPINVOKE.BuildFence(B.Value, (int)ordering, singleThread, Name)); return ret; }
public AtomicRMWInst CreateAtomicRMW(AtomicRMWInst.BinOp Op, Value Ptr, Value Val, AtomicOrdering Ordering, SyncScopeID SSID = SyncScopeID.System) { var handle = Handle.BuildAtomicRMW((LLVMAtomicRMWBinOp)Op, Ptr.Handle, Val.Handle, (LLVMAtomicOrdering)Ordering, SSID == SyncScopeID.SingleThread); return(Context.GetOrCreate <AtomicRMWInst>(handle)); }
public FenceInst CreateFence(AtomicOrdering Ordering, SyncScopeID SSID, ReadOnlySpan <char> Name) { var handle = Handle.BuildFence((LLVMAtomicOrdering)Ordering, SSID == SyncScopeID.SingleThread, Name); return(Context.GetOrCreate <FenceInst>(handle)); }
public FenceInst CreateFence(AtomicOrdering Ordering, SyncScopeID SSID = SyncScopeID.System, string Name = "") => CreateFence(Ordering, SSID, Name.AsSpan());
public static LLVMAtomicOrdering Unwrap(this AtomicOrdering wrapper) => (LLVMAtomicOrdering)(int)wrapper;