[Mlir-commits] [mlir] fbb1b12 - [MLIR] Don't verify call signature for indirect opaque ptr call
Nikita Popov
llvmlistbot at llvm.org
Tue Jan 17 01:55:13 PST 2023
Author: Nikita Popov
Date: 2023-01-17T10:55:04+01:00
New Revision: fbb1b122ec2126baf0743f38ae2ec4ae8a5f9f9e
URL: https://github.com/llvm/llvm-project/commit/fbb1b122ec2126baf0743f38ae2ec4ae8a5f9f9e
DIFF: https://github.com/llvm/llvm-project/commit/fbb1b122ec2126baf0743f38ae2ec4ae8a5f9f9e.diff
LOG: [MLIR] Don't verify call signature for indirect opaque ptr call
Fixes a crash when converting the instructions.ll test to opaque
pointers.
Added:
Modified:
mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp
mlir/test/Target/LLVMIR/Import/instructions.ll
Removed:
################################################################################
diff --git a/mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp b/mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp
index 54cdf98b0c3f6..5be597c8a6526 100644
--- a/mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp
+++ b/mlir/lib/Dialect/LLVMIR/IR/LLVMDialect.cpp
@@ -1199,6 +1199,10 @@ LogicalResult CallOp::verifySymbolUses(SymbolTableCollection &symbolTable) {
if (!ptrType)
return emitOpError("indirect call expects a pointer as callee: ")
<< ptrType;
+
+ if (ptrType.isOpaque())
+ return success();
+
fnType = ptrType.getElementType();
} else {
Operation *callee =
diff --git a/mlir/test/Target/LLVMIR/Import/instructions.ll b/mlir/test/Target/LLVMIR/Import/instructions.ll
index bd44c28d008c2..cb72566628af8 100644
--- a/mlir/test/Target/LLVMIR/Import/instructions.ll
+++ b/mlir/test/Target/LLVMIR/Import/instructions.ll
@@ -427,7 +427,7 @@ define float @call_fn(i32 %arg1) {
; CHECK-LABEL: @call_fn_ptr
; CHECK-SAME: %[[PTR:[a-zA-Z0-9]+]]
-define void @call_fn_ptr(void (i16) *%fn) {
+define void @call_fn_ptr(ptr %fn) {
; CHECK: %[[C0:[0-9]+]] = llvm.mlir.constant(0 : i16) : i16
; CHECK: llvm.call %[[PTR]](%[[C0]])
call void %fn(i16 0)
More information about the Mlir-commits
mailing list