Locations often get very long and clutter up operations when printed inline with them. This revision adds support for using aliases with trailing operation locations, and makes printing with aliases the default behavior. Aliases in the trailing location take the form `loc(<alias>)`, such as `loc(#loc0)`. As with all aliases, using `mlir-print-local-scope` can be used to disable them and get the inline behavior. Differential Revision: https://reviews.llvm.org/D90652
58 lines
1.1 KiB
MLIR
58 lines
1.1 KiB
MLIR
// RUN: mlir-opt -allow-unregistered-dialect %s -split-input-file -mlir-print-debuginfo -mlir-print-local-scope | FileCheck %s
|
|
|
|
// CHECK: module {
|
|
module {
|
|
}
|
|
|
|
// CHECK: module {
|
|
// CHECK-NEXT: }
|
|
module {
|
|
"module_terminator"() : () -> ()
|
|
}
|
|
|
|
// CHECK: module attributes {foo.attr = true} {
|
|
module attributes {foo.attr = true} {
|
|
}
|
|
|
|
// CHECK: module {
|
|
module {
|
|
// CHECK-NEXT: "foo.result_op"() : () -> i32
|
|
%result = "foo.result_op"() : () -> i32
|
|
}
|
|
|
|
// -----
|
|
|
|
// Check that a top-level module is always created, with location info.
|
|
// CHECK: module {
|
|
// CHECK-NEXT: } loc({{.*}}module-op.mlir{{.*}})
|
|
|
|
// -----
|
|
|
|
// Check that the top-level module can be defined via a single module operation.
|
|
// CHECK: module {
|
|
// CHECK-NOT: module {
|
|
module {
|
|
}
|
|
|
|
// -----
|
|
|
|
// Check that the implicit top-level module is also a name scope for SSA
|
|
// values. This should not crash.
|
|
// CHECK: module {
|
|
// CHECK: %{{.*}} = "op"
|
|
// CHECK: }
|
|
%0 = "op"() : () -> i32
|
|
|
|
// -----
|
|
|
|
// CHECK-LABEL: module @foo
|
|
// CHECK-NOT: attributes
|
|
module @foo {
|
|
// CHECK: module
|
|
module {
|
|
// CHECK: module @bar attributes
|
|
module @bar attributes {foo.bar} {
|
|
}
|
|
}
|
|
}
|