[llvm] 12def78 - [SPIR-V] Fix asm printing of OpLifetimeStart/Stop (#155676)
via llvm-commits
llvm-commits at lists.llvm.org
Thu Aug 28 07:18:37 PDT 2025
Author: Nick Sarnie
Date: 2025-08-28T14:18:33Z
New Revision: 12def78b4df3712b12ef9af388cd5ca7d00742f3
URL: https://github.com/llvm/llvm-project/commit/12def78b4df3712b12ef9af388cd5ca7d00742f3
DIFF: https://github.com/llvm/llvm-project/commit/12def78b4df3712b12ef9af388cd5ca7d00742f3.diff
LOG: [SPIR-V] Fix asm printing of OpLifetimeStart/Stop (#155676)
There should not be a comma between the operands.
`spirv-val` errors on it, and `llvm-spirv` doesn't emit it.
Signed-off-by: Sarnie, Nick <nick.sarnie at intel.com>
Added:
Modified:
llvm/lib/Target/SPIRV/SPIRVInstrInfo.td
llvm/test/CodeGen/SPIRV/llvm-intrinsics/lifetime.ll
Removed:
################################################################################
diff --git a/llvm/lib/Target/SPIRV/SPIRVInstrInfo.td b/llvm/lib/Target/SPIRV/SPIRVInstrInfo.td
index f0b938d681dba..8d10cd0ffb3dd 100644
--- a/llvm/lib/Target/SPIRV/SPIRVInstrInfo.td
+++ b/llvm/lib/Target/SPIRV/SPIRVInstrInfo.td
@@ -637,8 +637,8 @@ let isReturn = 1, hasDelaySlot = 0, isBarrier = 0, isTerminator = 1, isNotDuplic
def OpReturnValue: Op<254, (outs), (ins ID:$ret), "OpReturnValue $ret">;
def OpUnreachable: SimpleOp<"OpUnreachable", 255>;
}
-def OpLifetimeStart: Op<256, (outs), (ins ID:$ptr, i32imm:$sz), "OpLifetimeStart $ptr, $sz">;
-def OpLifetimeStop: Op<257, (outs), (ins ID:$ptr, i32imm:$sz), "OpLifetimeStop $ptr, $sz">;
+def OpLifetimeStart: Op<256, (outs), (ins ID:$ptr, i32imm:$sz), "OpLifetimeStart $ptr $sz">;
+def OpLifetimeStop: Op<257, (outs), (ins ID:$ptr, i32imm:$sz), "OpLifetimeStop $ptr $sz">;
def OpDemoteToHelperInvocation: SimpleOp<"OpDemoteToHelperInvocation", 5380>;
// 3.42.18 Atomic Instructions
diff --git a/llvm/test/CodeGen/SPIRV/llvm-intrinsics/lifetime.ll b/llvm/test/CodeGen/SPIRV/llvm-intrinsics/lifetime.ll
index 3d93eca72aaed..f83cd8ad1969c 100644
--- a/llvm/test/CodeGen/SPIRV/llvm-intrinsics/lifetime.ll
+++ b/llvm/test/CodeGen/SPIRV/llvm-intrinsics/lifetime.ll
@@ -17,11 +17,11 @@
; CL: OpFunction
; CL: %[[#FooVar:]] = OpVariable
; CL-NEXT: %[[#Casted1:]] = OpBitcast %[[#PtrChar]] %[[#FooVar]]
-; CL-NEXT: OpLifetimeStart %[[#Casted1]], 16
+; CL-NEXT: OpLifetimeStart %[[#Casted1]] 16
; CL-NEXT: OpBitcast
; CL-NEXT: OpInBoundsPtrAccessChain
; CL-NEXT: %[[#Casted2:]] = OpBitcast %[[#PtrChar]] %[[#FooVar]]
-; CL-NEXT: OpLifetimeStop %[[#Casted2]], 16
+; CL-NEXT: OpLifetimeStop %[[#Casted2]] 16
; VK: OpFunction
; VK: %[[#FooVar:]] = OpVariable
@@ -38,11 +38,11 @@ define spir_func void @foo(ptr noundef byval(%tprange) align 8 %_arg_UserRange)
; CL: OpFunction
; CL: %[[#BarVar:]] = OpVariable
; CL-NEXT: %[[#Casted1:]] = OpBitcast %[[#PtrChar]] %[[#BarVar]]
-; CL-NEXT: OpLifetimeStart %[[#Casted1]], 16
+; CL-NEXT: OpLifetimeStart %[[#Casted1]] 16
; CL-NEXT: OpBitcast
; CL-NEXT: OpInBoundsPtrAccessChain
; CL-NEXT: %[[#Casted2:]] = OpBitcast %[[#PtrChar]] %[[#BarVar]]
-; CL-NEXT: OpLifetimeStop %[[#Casted2]], 16
+; CL-NEXT: OpLifetimeStop %[[#Casted2]] 16
; VK: OpFunction
; VK: %[[#BarVar:]] = OpVariable
@@ -58,9 +58,9 @@ define spir_func void @bar(ptr noundef byval(%tprange) align 8 %_arg_UserRange)
; CL: OpFunction
; CL: %[[#TestVar:]] = OpVariable
-; CL-NEXT: OpLifetimeStart %[[#TestVar]], 1
+; CL-NEXT: OpLifetimeStart %[[#TestVar]] 1
; CL-NEXT: OpInBoundsPtrAccessChain
-; CL-NEXT: OpLifetimeStop %[[#TestVar]], 1
+; CL-NEXT: OpLifetimeStop %[[#TestVar]] 1
; VK: OpFunction
; VK: %[[#Test:]] = OpVariable
More information about the llvm-commits
mailing list