-
Notifications
You must be signed in to change notification settings - Fork 15k
[mlir][llvm] Pretty printing for trap intrinsics #159385
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
@llvm/pr-subscribers-mlir @llvm/pr-subscribers-mlir-llvm Author: Ivan Butygin (Hardcode84) ChangesFull diff: https://github.com/llvm/llvm-project/pull/159385.diff 3 Files Affected:
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
}
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM!
| /*immArgPositions=*/[0], /*immArgAttrNames=*/["failureKind"]> { | ||
| let arguments = (ins I8Attr:$failureKind); | ||
|
|
||
| let assemblyFormat = "attr-dict"; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Please use a prop-dict when there are are non-SSA value arguments.
No description provided.