[llvm] [AMDGPU] Mark WAIT_ASYNCMARK as zero-size instruction (PR #195107)
Zhewen Yu via llvm-commits
llvm-commits at lists.llvm.org
Thu Apr 30 08:50:27 PDT 2026
https://github.com/Yu-Zhewen updated https://github.com/llvm/llvm-project/pull/195107
>From f527cdc7bcef239423f6485fadb0bd33e8edb030 Mon Sep 17 00:00:00 2001
From: Yu-Zhewen <zhewenyu at amd.com>
Date: Thu, 30 Apr 2026 15:15:29 +0000
Subject: [PATCH 1/2] zero size
Signed-off-by: Yu-Zhewen <zhewenyu at amd.com>
---
llvm/lib/Target/AMDGPU/SOPInstructions.td | 1 +
1 file changed, 1 insertion(+)
diff --git a/llvm/lib/Target/AMDGPU/SOPInstructions.td b/llvm/lib/Target/AMDGPU/SOPInstructions.td
index eb7ad8bcb04ce..e0bdcf61440f3 100644
--- a/llvm/lib/Target/AMDGPU/SOPInstructions.td
+++ b/llvm/lib/Target/AMDGPU/SOPInstructions.td
@@ -1736,6 +1736,7 @@ def ASYNCMARK : SPseudoInstSI<(outs), (ins),
def WAIT_ASYNCMARK : SOPP_Pseudo <"", (ins s16imm:$simm16), "$simm16",
[(int_amdgcn_wait_asyncmark timm:$simm16)]> {
let maybeAtomic = 0;
+ let Size = 0;
let isMeta = 1;
}
}
>From 7af4e87323b9a8960d0c9af002b7b68b4710ec87 Mon Sep 17 00:00:00 2001
From: Yu-Zhewen <zhewenyu at amd.com>
Date: Thu, 30 Apr 2026 15:50:05 +0000
Subject: [PATCH 2/2] add test
Signed-off-by: Yu-Zhewen <zhewenyu at amd.com>
---
llvm/test/CodeGen/AMDGPU/code-size-estimate.mir | 15 +++++++++++++++
1 file changed, 15 insertions(+)
diff --git a/llvm/test/CodeGen/AMDGPU/code-size-estimate.mir b/llvm/test/CodeGen/AMDGPU/code-size-estimate.mir
index 9ae536af6f0e9..3ad963b0f723c 100644
--- a/llvm/test/CodeGen/AMDGPU/code-size-estimate.mir
+++ b/llvm/test/CodeGen/AMDGPU/code-size-estimate.mir
@@ -32,6 +32,21 @@ body: |
WAVE_BARRIER
...
+# WAIT_ASYNCMARK is a meta instruction that emits zero bytes.
+# codeLenInByte = s_waitcnt (4) + WAIT_ASYNCMARK (0) = 4.
+# CHECK: wait_asyncmark_meta: ; @wait_asyncmark_meta
+# CHECK: ; wait_asyncmark(1)
+# CHECK: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) ; encoding: [0x00,0x00,0x8c,0xbf]
+# CHECK: ; codeLenInByte = 4
+---
+name: wait_asyncmark_meta
+tracksRegLiveness: true
+body: |
+ bb.0:
+
+ WAIT_ASYNCMARK 1
+...
+
# CHECK: align4: ; @align4
# CHECK: s_waitcnt vmcnt(0) expcnt(0) lgkmcnt(0) ; encoding: [0x00,0x00,0x8c,0xbf]
# CHECK: s_cbranch_scc1 .LBB{{[0-9_]+}} ; encoding: [A,A,0x85,0xbf]
More information about the llvm-commits
mailing list