[Mlir-commits] [flang] [mlir] [MLIR][NVVM] Update mbarrier.arrive.* Op (PR #168758)

Durgadoss R llvmlistbot at llvm.org
Thu Nov 20 09:19:46 PST 2025


================
@@ -725,6 +860,35 @@ def NVVM_MBarrierArriveNocompleteOp : NVVM_Op<"mbarrier.arrive.nocomplete">,
   }];
 }
 
+def NVVM_MBarrierArriveDropNocompleteOp : NVVM_Op<"mbarrier.arrive_drop.nocomplete">,
----------------
durga4github wrote:

Yes, exactly what I wanted to discuss here :-)

I assume you are referring to `arrive.noComplete` versus `arrive_drop.noComplete`.

The two operations have distinct semantics at the mbarrier level: `arrive` updates only the pending count, while `arrive_drop` updates both the expected and pending counts. Because of this, I felt it was clearer to keep them as separate and explicitly named operations, giving us room to evolve them independently in the future(if needed).

An alternative would be to add a `bool isDrop` attribute and model both in a single Op. Please let me know if you think this approach is preferable.

https://github.com/llvm/llvm-project/pull/168758


More information about the Mlir-commits mailing list