[Mlir-commits] [mlir] a0dd5e8 - [MLIR] Print function name when ReturnOp verification fails
River Riddle
llvmlistbot at llvm.org
Wed Jun 10 17:27:19 PDT 2020
Author: Rahul Joshi
Date: 2020-06-10T17:22:49-07:00
New Revision: a0dd5e876f20b33c9f031a2b3b8875e1216b97a9
URL: https://github.com/llvm/llvm-project/commit/a0dd5e876f20b33c9f031a2b3b8875e1216b97a9
DIFF: https://github.com/llvm/llvm-project/commit/a0dd5e876f20b33c9f031a2b3b8875e1216b97a9.diff
LOG: [MLIR] Print function name when ReturnOp verification fails
Summary:
- Print function name when ReturnOp verification fails
- This helps easily finding the invalid ReturnOp in an IR dump.
Differential Revision: https://reviews.llvm.org/D81513
Added:
Modified:
mlir/lib/Dialect/StandardOps/IR/Ops.cpp
mlir/test/IR/invalid.mlir
Removed:
################################################################################
diff --git a/mlir/lib/Dialect/StandardOps/IR/Ops.cpp b/mlir/lib/Dialect/StandardOps/IR/Ops.cpp
index 47532c5bc5f3..e3107d643c2c 100644
--- a/mlir/lib/Dialect/StandardOps/IR/Ops.cpp
+++ b/mlir/lib/Dialect/StandardOps/IR/Ops.cpp
@@ -2023,15 +2023,16 @@ static LogicalResult verify(ReturnOp op) {
const auto &results = function.getType().getResults();
if (op.getNumOperands() != results.size())
return op.emitOpError("has ")
- << op.getNumOperands()
- << " operands, but enclosing function returns " << results.size();
+ << op.getNumOperands() << " operands, but enclosing function (@"
+ << function.getName() << ") returns " << results.size();
for (unsigned i = 0, e = results.size(); i != e; ++i)
if (op.getOperand(i).getType() != results[i])
return op.emitError()
<< "type of return operand " << i << " ("
<< op.getOperand(i).getType()
- << ") doesn't match function result type (" << results[i] << ")";
+ << ") doesn't match function result type (" << results[i] << ")"
+ << " in function @" << function.getName();
return success();
}
diff --git a/mlir/test/IR/invalid.mlir b/mlir/test/IR/invalid.mlir
index 9af96f2c538d..f075215bb829 100644
--- a/mlir/test/IR/invalid.mlir
+++ b/mlir/test/IR/invalid.mlir
@@ -335,13 +335,13 @@ func @malformed_type(%a : intt) { // expected-error {{expected non-function type
func @resulterror() -> i32 {
^bb42:
- return // expected-error {{'std.return' op has 0 operands, but enclosing function returns 1}}
+ return // expected-error {{'std.return' op has 0 operands, but enclosing function (@resulterror) returns 1}}
}
// -----
func @func_resulterror() -> i32 {
- return // expected-error {{'std.return' op has 0 operands, but enclosing function returns 1}}
+ return // expected-error {{'std.return' op has 0 operands, but enclosing function (@func_resulterror) returns 1}}
}
// -----
@@ -467,7 +467,7 @@ func @dominance_failure() {
func @return_type_mismatch() -> i32 {
%0 = "foo"() : ()->f32
- return %0 : f32 // expected-error {{type of return operand 0 ('f32') doesn't match function result type ('i32')}}
+ return %0 : f32 // expected-error {{type of return operand 0 ('f32') doesn't match function result type ('i32') in function @return_type_mismatch}}
}
// -----
More information about the Mlir-commits
mailing list