[Mlir-commits] [mlir] [mlir][GPU] Extend gpu.barrier with scope and named-barrier support (PR #195692)
Fabian Mora
llvmlistbot at llvm.org
Wed May 6 05:51:23 PDT 2026
================
@@ -517,6 +518,51 @@ struct GPUShuffleOpLowering : public ConvertOpToLLVMPattern<gpu::ShuffleOp> {
}
};
+/// Emit an LLVM fence with MMRA metadata based on the given address spaces.
+/// If `addrSpaces` is nullopt, all memory is fenced (global + LDS).
+static void emitFences(std::optional<ArrayAttr> addrSpaces,
+ ConversionPatternRewriter &rewriter, Location loc,
+ StringRef scope, bool before) {
+ bool fenceGlobal = false;
+ bool fenceLDS = false;
+
+ if (addrSpaces) {
+ for (auto spaceAttr : addrSpaces->getAsRange<gpu::AddressSpaceAttr>()) {
+ switch (spaceAttr.getValue()) {
+ case gpu::AddressSpace::Global:
+ fenceGlobal = true;
+ break;
+ case gpu::AddressSpace::Workgroup:
+ fenceLDS = true;
+ break;
+ case gpu::AddressSpace::Private:
----------------
fabianmcg wrote:
Private usually relies in the global mem space, and constant in AMD might require the same kind of fence as LDS, so unsure about this break. Maybe an error?
https://github.com/llvm/llvm-project/pull/195692
More information about the Mlir-commits
mailing list