llvm-project/mlir/test/IR/module-op.mlir
River Riddle 892605b449 [mlir][Asm] Add support for using an alias for trailing operation locations
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
2020-11-09 21:54:47 -08:00

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} {
}
}
}