[Mlir-commits] [mlir] [mlir][llvm] Pretty printing for trap intrinsics (PR #159385)
Ivan Butygin
llvmlistbot at llvm.org
Wed Sep 17 08:41:43 PDT 2025
https://github.com/Hardcode84 created https://github.com/llvm/llvm-project/pull/159385
None
>From 17e7213519ee47d0fdf2bfcb1c7747ed8282bc34 Mon Sep 17 00:00:00 2001
From: Ivan Butygin <ivan.butygin at gmail.com>
Date: Wed, 17 Sep 2025 17:38:22 +0200
Subject: [PATCH] [mlir][llvm] Pretty printing for trap intrinsics
---
mlir/include/mlir/Dialect/LLVMIR/LLVMIntrinsicOps.td | 10 ++++++++--
mlir/test/Target/LLVMIR/Import/intrinsic.ll | 7 +++----
mlir/test/Target/LLVMIR/llvmir-intrinsics.mlir | 7 +++++++
3 files changed, 18 insertions(+), 6 deletions(-)
diff --git a/mlir/include/mlir/Dialect/LLVMIR/LLVMIntrinsicOps.td b/mlir/include/mlir/Dialect/LLVMIR/LLVMIntrinsicOps.td
index dd00d67974d28..d77bf0f51b637 100644
--- a/mlir/include/mlir/Dialect/LLVMIR/LLVMIntrinsicOps.td
+++ b/mlir/include/mlir/Dialect/LLVMIR/LLVMIntrinsicOps.td
@@ -1162,9 +1162,13 @@ def LLVM_Annotation
// Trap intrinsics.
//
-def LLVM_Trap : LLVM_ZeroResultIntrOp<"trap">;
+def LLVM_Trap : LLVM_ZeroResultIntrOp<"trap"> {
+ let assemblyFormat = "attr-dict";
+}
-def LLVM_DebugTrap : LLVM_ZeroResultIntrOp<"debugtrap">;
+def LLVM_DebugTrap : LLVM_ZeroResultIntrOp<"debugtrap"> {
+ let assemblyFormat = "attr-dict";
+}
def LLVM_UBSanTrap : LLVM_ZeroResultIntrOp<"ubsantrap",
/*overloadedOperands=*/[], /*traits=*/[],
@@ -1172,6 +1176,8 @@ def LLVM_UBSanTrap : LLVM_ZeroResultIntrOp<"ubsantrap",
/*requiresArgAndResultAttrs=*/0, /*requiresOpBundles=*/0,
/*immArgPositions=*/[0], /*immArgAttrNames=*/["failureKind"]> {
let arguments = (ins I8Attr:$failureKind);
+
+ let assemblyFormat = "attr-dict";
}
/// Create a call to vscale intrinsic.
diff --git a/mlir/test/Target/LLVMIR/Import/intrinsic.ll b/mlir/test/Target/LLVMIR/Import/intrinsic.ll
index 07d22120153fe..db14a487b4aa7 100644
--- a/mlir/test/Target/LLVMIR/Import/intrinsic.ll
+++ b/mlir/test/Target/LLVMIR/Import/intrinsic.ll
@@ -567,12 +567,11 @@ define void @annotate_intrinsics(ptr %var, ptr %ptr, i16 %int, ptr %annotation,
; CHECK-LABEL: llvm.func @trap_intrinsics
define void @trap_intrinsics() {
- ; CHECK: "llvm.intr.trap"() : () -> ()
+ ; CHECK: llvm.intr.trap
call void @llvm.trap()
- ; CHECK: "llvm.intr.debugtrap"() : () -> ()
+ ; CHECK: llvm.intr.debugtrap
call void @llvm.debugtrap()
- ; CHECK: "llvm.intr.ubsantrap"()
- ; CHECK-SAME: failureKind = 1
+ ; CHECK: llvm.intr.ubsantrap {failureKind = 1 : i8}
call void @llvm.ubsantrap(i8 1)
ret void
}
diff --git a/mlir/test/Target/LLVMIR/llvmir-intrinsics.mlir b/mlir/test/Target/LLVMIR/llvmir-intrinsics.mlir
index c99dde36f5ccb..b75e07ef85f60 100644
--- a/mlir/test/Target/LLVMIR/llvmir-intrinsics.mlir
+++ b/mlir/test/Target/LLVMIR/llvmir-intrinsics.mlir
@@ -607,6 +607,13 @@ llvm.func @trap_intrinsics() {
"llvm.intr.debugtrap"() : () -> ()
// CHECK: call void @llvm.ubsantrap(i8 1)
"llvm.intr.ubsantrap"() {failureKind = 1 : i8} : () -> ()
+
+ // CHECK: call void @llvm.trap()
+ llvm.intr.trap
+ // CHECK: call void @llvm.debugtrap()
+ llvm.intr.debugtrap
+ // CHECK: call void @llvm.ubsantrap(i8 1)
+ llvm.intr.ubsantrap {failureKind = 1 : i8}
llvm.return
}
More information about the Mlir-commits
mailing list