[mlir] Add support for custom readProperties/writeProperties methods. Currently, operations that opt-in to adopt properties will see auto-generated readProperties/writeProperties methods to emit and parse bytecode. If a dialects opts in to use `usePropertiesForAttributes`, those definitions will be generated for the current definition of the op without the possibility to handle attribute versioning. The patch adds the capability for an operation to define its own read/write methods for the encoding of properties so that versioned operations can handle upgrading properties encodings. In addition to this, the patch adds an example showing versioning on NamedProperties through the dialect version API exposed by the reader. Reviewed By: mehdi_amini Differential Revision: https://reviews.llvm.org/D155340
29 lines
1.0 KiB
MLIR
29 lines
1.0 KiB
MLIR
// This file contains test cases related to the dialect post-parsing upgrade
|
|
// mechanism.
|
|
// COM: those tests parse bytecode that was generated before test dialect
|
|
// adopted `usePropertiesFromAttributes`.
|
|
|
|
//===--------------------------------------------------------------------===//
|
|
// Test generic
|
|
//===--------------------------------------------------------------------===//
|
|
|
|
// COM: bytecode contains
|
|
// COM: module {
|
|
// COM: version: 2.0
|
|
// COM: test.with_versioned_properties 1 | 2
|
|
// COM: }
|
|
// RUN: mlir-opt %S/versioned-op-with-native-prop-2.0.mlirbc 2>&1 | FileCheck %s --check-prefix=CHECK1
|
|
// CHECK1: test.with_versioned_properties 1 | 2
|
|
|
|
//===--------------------------------------------------------------------===//
|
|
// Test upgrade
|
|
//===--------------------------------------------------------------------===//
|
|
|
|
// COM: bytecode contains
|
|
// COM: module {
|
|
// COM: version: 1.12
|
|
|
|
// COM: }
|
|
// RUN: mlir-opt %S/versioned-op-with-native-prop-1.12.mlirbc 2>&1 | FileCheck %s --check-prefix=CHECK3
|
|
// CHECK3: test.with_versioned_properties 1 | 0
|