[Mlir-commits] [mlir] [mlir][XeGPU][Transform] Add gather/scatter coalescing analysis. (PR #201684)

Jianhui Li llvmlistbot at llvm.org
Thu Jun 18 21:47:26 PDT 2026


================
@@ -927,6 +927,49 @@ def XeGPU_MemLayoutAttr : XeGPUAttr<"MemLayout", "mem_layout"> {
 
 }
 
+def XeGPU_CoalesceHintAttr : XeGPUAttr<"CoalesceHint", "coalesce_hint"> {
+  let summary = [{Optional request to coalesce a gather/scatter access.}];
+
+  let description = [{
+    `CoalesceHintAttr` is the optional `coalesce_hint` attribute of
+    `xegpu.load` / `xegpu.store`. It requests that the access group `factor`
+    contiguous elements per lane along the innermost (fastest-changing)
+    dimension of the offsets. `factor` must be a power of two `>= 2`, and the
+    innermost offsets dimension must be a multiple of it.
+
+    The hint has two sources:
+      - it can be set directly by the user (or a higher-level frontend that
+        already knows the access is contiguous-per-lane), in which case the
+        coalesce-gather-scatter analysis is not consulted for that op; or
+      - it is stamped by the analysis when it proves the access coalescible.
+
+    The hint is a *request*, not a commitment: a consumer turns `factor` into
+    a concrete `xegpu.layout` (deriving the `lane_layout` / `lane_data` split
+    from the op's offsets inner extent and the chip's subgroup size) and
+    clears the hint. A consumer that declines (for example, layout propagation
----------------
Jianhui-Li wrote:

The PR description still have "discardable", please change to "operation
  attribute"

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


More information about the Mlir-commits mailing list