Skip to content

Commit

Permalink
[mlir][Transforms][NFC] Dialect conversion: Reformat materialization …
Browse files Browse the repository at this point in the history
…error message (llvm#114176)

This commit changes the format of the materialization error message.

Previously: `failed to legalize unresolved materialization from ('f64')
to 'f32' that remained live after conversion`
Now: `failed to legalize unresolved materialization from ('f64') to
('f32') that remained live after conversion`

This commit is in preparation of merging the 1:1 and 1:N dialect
conversions. At that point, target materializations may create more than
one SSA value. I am sending this change as a separate PR to keep the
main PR smaller.
  • Loading branch information
matthias-springer authored Oct 30, 2024
1 parent 15f63ec commit ea050ab
Show file tree
Hide file tree
Showing 4 changed files with 12 additions and 12 deletions.
10 changes: 5 additions & 5 deletions mlir/lib/Transforms/Utils/DialectConversion.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2457,11 +2457,11 @@ legalizeUnresolvedMaterialization(RewriterBase &rewriter,
}
}

InFlightDiagnostic diag = op->emitError()
<< "failed to legalize unresolved materialization "
"from ("
<< inputOperands.getTypes() << ") to " << outputType
<< " that remained live after conversion";
InFlightDiagnostic diag =
op->emitError() << "failed to legalize unresolved materialization "
"from ("
<< inputOperands.getTypes() << ") to (" << outputType
<< ") that remained live after conversion";
diag.attachNote(op->getUsers().begin()->getLoc())
<< "see existing live user here: " << *op->getUsers().begin();
return failure();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,7 @@ func.func @static_layout_to_no_layout_cast(%m: memref<?xf32, strided<[1], offset
// memref.cast.
func.func @no_layout_to_dyn_layout_cast(%m: memref<?xf32>) -> memref<?xf32, strided<[1], offset: ?>> {
%0 = bufferization.to_tensor %m : memref<?xf32>
// expected-error @+1 {{failed to legalize unresolved materialization from ('memref<?xf32>') to 'memref<?xf32, strided<[1], offset: ?>>' that remained live after conversion}}
// expected-error @+1 {{failed to legalize unresolved materialization from ('memref<?xf32>') to ('memref<?xf32, strided<[1], offset: ?>>') that remained live after conversion}}
%1 = bufferization.to_memref %0 : memref<?xf32, strided<[1], offset: ?>>
// expected-note @below{{see existing live user here}}
return %1 : memref<?xf32, strided<[1], offset: ?>>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
// Test that an error is emitted when an operation is marked as "erased", but
// has users that live across the conversion.
func.func @remove_all_ops(%arg0: i32) -> i32 {
// expected-error@below {{failed to legalize unresolved materialization from () to 'i32' that remained live after conversion}}
// expected-error@below {{failed to legalize unresolved materialization from () to ('i32') that remained live after conversion}}
%0 = "test.illegal_op_a"() : () -> i32
// expected-note@below {{see existing live user here}}
return %0 : i32
Expand Down
10 changes: 5 additions & 5 deletions mlir/test/Transforms/test-legalize-type-conversion.mlir
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@


func.func @test_invalid_arg_materialization(
// expected-error@below {{failed to legalize unresolved materialization from () to 'i16' that remained live after conversion}}
// expected-error@below {{failed to legalize unresolved materialization from () to ('i16') that remained live after conversion}}
%arg0: i16) {
// expected-note@below{{see existing live user here}}
"foo.return"(%arg0) : (i16) -> ()
Expand All @@ -21,7 +21,7 @@ func.func @test_valid_arg_materialization(%arg0: i64) {
// -----

func.func @test_invalid_result_materialization() {
// expected-error@below {{failed to legalize unresolved materialization from ('f64') to 'f16' that remained live after conversion}}
// expected-error@below {{failed to legalize unresolved materialization from ('f64') to ('f16') that remained live after conversion}}
%result = "test.type_producer"() : () -> f16
// expected-note@below{{see existing live user here}}
"foo.return"(%result) : (f16) -> ()
Expand All @@ -30,7 +30,7 @@ func.func @test_invalid_result_materialization() {
// -----

func.func @test_invalid_result_materialization() {
// expected-error@below {{failed to legalize unresolved materialization from ('f64') to 'f16' that remained live after conversion}}
// expected-error@below {{failed to legalize unresolved materialization from ('f64') to ('f16') that remained live after conversion}}
%result = "test.type_producer"() : () -> f16
// expected-note@below{{see existing live user here}}
"foo.return"(%result) : (f16) -> ()
Expand All @@ -50,7 +50,7 @@ func.func @test_transitive_use_materialization() {
// -----

func.func @test_transitive_use_invalid_materialization() {
// expected-error@below {{failed to legalize unresolved materialization from ('f64') to 'f16' that remained live after conversion}}
// expected-error@below {{failed to legalize unresolved materialization from ('f64') to ('f16') that remained live after conversion}}
%result = "test.another_type_producer"() : () -> f16
// expected-note@below{{see existing live user here}}
"foo.return"(%result) : (f16) -> ()
Expand Down Expand Up @@ -102,7 +102,7 @@ func.func @test_block_argument_not_converted() {
// Make sure argument type changes aren't implicitly forwarded.
func.func @test_signature_conversion_no_converter() {
"test.signature_conversion_no_converter"() ({
// expected-error@below {{failed to legalize unresolved materialization from ('f64') to 'f32' that remained live after conversion}}
// expected-error@below {{failed to legalize unresolved materialization from ('f64') to ('f32') that remained live after conversion}}
^bb0(%arg0: f32):
"test.type_consumer"(%arg0) : (f32) -> ()
// expected-note@below{{see existing live user here}}
Expand Down

0 comments on commit ea050ab

Please sign in to comment.