llvm-project/mlir/test/IR
Min-Yih Hsu d41028610b [mlir] Prevent SubElementInterface from going into infinite recursion
Since only mutable types and attributes can go into infinite recursion
inside SubElementInterface::walkSubElement, and there are only a few of
them (mutable types and attributes), we introduce new traits for Type
and Attribute: TypeTrait::IsMutable and AttributeTrait::IsMutable,
respectively. They indicate whether a type or attribute is mutable.
Such traits are required if the ImplType defines a `mutate` function.

Then, inside SubElementInterface, we use a set to record visited mutable
types and attributes that have been visited before.

Differential Revision: https://reviews.llvm.org/D127537
2022-06-29 13:58:02 -07:00
..
affine-map.mlir [MLIR][Parser] Fix AffineParser colliding bare identifiers with primitive types 2022-06-27 19:35:25 +01:00
attribute-roundtrip.mlir [mlir] Remove special case parsing/printing of `func` operations 2022-05-06 13:36:15 -07:00
attribute.mlir Introduce a new Dense Array attribute 2022-06-28 13:28:06 +00:00
check-help-output.mlir
core-ops.mlir [mlir][NFC] Update textual references of `func` to `func.func` in IR/Interface tests 2022-04-20 22:17:30 -07:00
dense-elements-hex.mlir
diagnostic-handler-filter.mlir [mlir][NFC] Update textual references of `func` to `func.func` in IR/Interface tests 2022-04-20 22:17:30 -07:00
diagnostic-handler.mlir [mlir:ODS] Support using attributes in AllTypesMatch to automatically add InferTypeOpInterface 2022-04-28 12:57:59 -07:00
dynamic.mlir [FileCheck] Catch missspelled directives. 2022-05-26 11:37:19 +01:00
elements-attr-interface.mlir [mlir] Allow for attaching external resources to .mlir files 2022-06-29 12:14:01 -07:00
enum-attr-invalid.mlir [mlir][NFC] Update textual references of `func` to `func.func` in IR/Interface tests 2022-04-20 22:17:30 -07:00
enum-attr-roundtrip.mlir [mlir][NFC] Update textual references of `func` to `func.func` in IR/Interface tests 2022-04-20 22:17:30 -07:00
file-metadata-resources.mlir [mlir] Allow for attaching external resources to .mlir files 2022-06-29 12:14:01 -07:00
generic-visitors-interrupt.mlir [mlir][NFC] Update textual references of `func` to `func.func` in IR/Interface tests 2022-04-20 22:17:30 -07:00
generic-visitors.mlir [mlir][NFC] Update textual references of `func` to `func.func` in IR/Interface tests 2022-04-20 22:17:30 -07:00
invalid-affinemap.mlir [MLIR][Parser] Fix AffineParser colliding bare identifiers with primitive types 2022-06-27 19:35:25 +01:00
invalid-file-metadata.mlir [mlir] Allow for attaching external resources to .mlir files 2022-06-29 12:14:01 -07:00
invalid-func-op.mlir [mlir][NFC] Update textual references of `func` to `func.func` in IR/Interface tests 2022-04-20 22:17:30 -07:00
invalid-locations.mlir [AsmParser] Adopt emitWrongTokenError more, improving QoI 2022-05-11 20:41:12 +01:00
invalid-module-op.mlir [mlir][NFC] Update textual references of `func` to `func.func` in IR/Interface tests 2022-04-20 22:17:30 -07:00
invalid-ops.mlir [mlir][NFC] Update textual references of `func` to `func.func` in IR/Interface tests 2022-04-20 22:17:30 -07:00
invalid-unregistered.mlir [mlir] Remove the `type` keyword from type alias definitions 2022-05-16 13:54:02 -07:00
invalid.mlir Introduce a new Dense Array attribute 2022-06-28 13:28:06 +00:00
locations.mlir [AsmParser] Introduce a new "Argument" abstraction + supporting logic 2022-04-29 12:19:34 -07:00
memory-ops.mlir [mlir][NFC] Update textual references of `func` to `func.func` in IR/Interface tests 2022-04-20 22:17:30 -07:00
module-op.mlir Define a `NoTerminator` traits that allows operations with a single block region to not provide a terminator 2021-03-25 03:59:03 +00:00
op-stats-json.mlir [mlir] add an option to print op stats in JSON 2022-06-15 10:07:36 -07:00
op-stats.mlir [mlir][NFC] Update textual references of `func` to `func.func` in IR/Interface tests 2022-04-20 22:17:30 -07:00
opaque_locations.mlir [mlir][NFC] Update textual references of `func` to `func.func` in IR/Interface tests 2022-04-20 22:17:30 -07:00
operand.mlir [mlir][NFC] Update textual references of `func` to `func.func` in IR/Interface tests 2022-04-20 22:17:30 -07:00
operation-equality.mlir Implement recursive support into OperationEquivalence::isEquivalentTo() 2021-07-29 05:06:37 +00:00
parse-literal.mlir Fix endian conversion of sub-byte types 2022-06-12 16:08:23 +02:00
parser.mlir [mlir] do not elide dialect prefix for ops with dots in the name 2022-05-20 12:55:32 +02:00
pretty-attributes.mlir Change elided large constant syntax to make it more explicit 2022-01-19 20:41:42 +00:00
pretty-locations.mlir [mlir][NFC] Update textual references of `func` to `func.func` in IR/Interface tests 2022-04-20 22:17:30 -07:00
pretty-region-args.mlir [mlir][NFC] Update textual references of `func` to `func.func` in IR/Interface tests 2022-04-20 22:17:30 -07:00
pretty_printed_region_op.mlir [mlir][NFC] Update textual references of `func` to `func.func` in IR/Interface tests 2022-04-20 22:17:30 -07:00
print-attr-type-aliases.mlir [mlir] Remove the `type` keyword from type alias definitions 2022-05-16 13:54:02 -07:00
print-ir-defuse.mlir [mlir] Set the namespace of the BuiltinDialect to 'builtin' 2021-07-28 21:00:10 +00:00
print-ir-invalid.mlir [mlir] Move the Builtin FuncOp to the Func dialect 2022-03-16 17:07:03 -07:00
print-ir-nesting.mlir [mlir] Set the namespace of the BuiltinDialect to 'builtin' 2021-07-28 21:00:10 +00:00
print-op-generic.mlir [mlir][NFC] Update textual references of `func` to `func.func` in IR/Interface tests 2022-04-20 22:17:30 -07:00
print-op-local-scope.mlir
print-op-on-diagnostic.mlir [mlir] Set the namespace of the BuiltinDialect to 'builtin' 2021-07-28 21:00:10 +00:00
print-value-users.mlir [mlir] Remove special case parsing/printing of `func` operations 2022-05-06 13:36:15 -07:00
recursive-type.mlir [mlir] Prevent SubElementInterface from going into infinite recursion 2022-06-29 13:58:02 -07:00
region.mlir [mlir][NFC] Update textual references of `func` to `func.func` in IR/Interface tests 2022-04-20 22:17:30 -07:00
repro_b120295301.mlir [mlir][NFC] Update textual references of `func` to `func.func` in IR/Interface tests 2022-04-20 22:17:30 -07:00
result.mlir [mlir][NFC] Update textual references of `func` to `func.func` in IR/Interface tests 2022-04-20 22:17:30 -07:00
slice.mlir [mlir][NFC] Update textual references of `func` to `func.func` in IR/Interface tests 2022-04-20 22:17:30 -07:00
test-clone.mlir [mlir][NFC] Update textual references of `func` to `func.func` in IR/Interface tests 2022-04-20 22:17:30 -07:00
test-func-erase-arg.mlir [mlir][NFC] Update textual references of `func` to `func.func` in IR/Interface tests 2022-04-20 22:17:30 -07:00
test-func-erase-result.mlir [mlir][NFC] Update textual references of `func` to `func.func` in IR/Interface tests 2022-04-20 22:17:30 -07:00
test-func-insert-arg.mlir [mlir][NFC] Update textual references of `func` to `func.func` in IR/Interface tests 2022-04-20 22:17:30 -07:00
test-func-insert-result.mlir [mlir][NFC] Update textual references of `func` to `func.func` in IR/Interface tests 2022-04-20 22:17:30 -07:00
test-func-set-type.mlir [mlir][NFC] Update textual references of `func` to `func.func` in IR/Interface tests 2022-04-20 22:17:30 -07:00
test-matchers.mlir [mlir][NFC] Update textual references of `func` to `func.func` in IR/Interface tests 2022-04-20 22:17:30 -07:00
test-side-effects.mlir Add a mechanism for Dialects to provide a fallback for OpInterface 2021-03-24 08:41:40 +00:00
test-symbol-rauw.mlir [mlir][NFC] Update textual references of `func` to `func.func` in IR/Interface tests 2022-04-20 22:17:30 -07:00
test-symbol-uses.mlir [mlir][NFC] Update textual references of `func` to `func.func` in IR/Interface tests 2022-04-20 22:17:30 -07:00
test-take-body.mlir [mlir] Remove special case parsing/printing of `func` operations 2022-05-06 13:36:15 -07:00
test-verification-order.mlir [mlir][NFC] Update textual references of `func` to `func.func` in IR/Interface tests 2022-04-20 22:17:30 -07:00
traits.mlir [mlir][NFC] Update textual references of `func` to `func.func` in IR/Interface tests 2022-04-20 22:17:30 -07:00
visitors.mlir [mlir][NFC] Update textual references of `func` to `func.func` in IR/Interface tests 2022-04-20 22:17:30 -07:00
wrapping_op.mlir [mlir][NFC] Update textual references of `func` to `func.func` in IR/Interface tests 2022-04-20 22:17:30 -07:00
zero_whitespace.mlir [mlir][NFC] Update remaining textual references of un-namespaced `func` operations 2022-04-20 22:17:31 -07:00