This is adding a new interface (`BytecodeOpInterface`) to allow operations to
opt-in skipping conversion to attribute and serializing properties to native
bytecode.
The scheme relies on a new section where properties are stored in sequence
{ size, serialize_properties }, ...
The operations are storing the index of a properties, a table of offset is
built when loading the properties section the first time.
This is a re-commit of 837d1ce0dc which conflicted with another patch upgrading
the bytecode and the collision wasn't properly resolved before.
Differential Revision: https://reviews.llvm.org/D151065
48 lines
2.1 KiB
MLIR
48 lines
2.1 KiB
MLIR
// This file contains various failure test cases related to the structure of
|
|
// a bytecode file.
|
|
|
|
// Bytecode currently does not support big-endian platforms
|
|
// UNSUPPORTED: target=s390x-{{.*}}
|
|
|
|
//===--------------------------------------------------------------------===//
|
|
// Version
|
|
//===--------------------------------------------------------------------===//
|
|
|
|
// RUN: not mlir-opt %S/invalid-structure-version.mlirbc 2>&1 | FileCheck %s --check-prefix=VERSION
|
|
// VERSION: bytecode version 127 is newer than the current version {{[0-9]+}}
|
|
|
|
//===--------------------------------------------------------------------===//
|
|
// Producer
|
|
//===--------------------------------------------------------------------===//
|
|
|
|
// RUN: not mlir-opt %S/invalid-structure-producer.mlirbc 2>&1 | FileCheck %s --check-prefix=PRODUCER
|
|
// PRODUCER: malformed null-terminated string, no null character found
|
|
|
|
//===--------------------------------------------------------------------===//
|
|
// Section
|
|
//===--------------------------------------------------------------------===//
|
|
|
|
//===--------------------------------------------------------------------===//
|
|
// Missing
|
|
|
|
// RUN: not mlir-opt %S/invalid-structure-section-missing.mlirbc 2>&1 | FileCheck %s --check-prefix=SECTION_MISSING
|
|
// SECTION_MISSING: missing data for top-level section: String (0)
|
|
|
|
//===--------------------------------------------------------------------===//
|
|
// ID
|
|
|
|
// RUN: not mlir-opt %S/invalid-structure-section-id-unknown.mlirbc 2>&1 | FileCheck %s --check-prefix=SECTION_ID_UNKNOWN
|
|
// SECTION_ID_UNKNOWN: invalid section ID: 127
|
|
|
|
//===--------------------------------------------------------------------===//
|
|
// Length
|
|
|
|
// RUN: not mlir-opt %S/invalid-structure-section-length.mlirbc 2>&1 | FileCheck %s --check-prefix=SECTION_LENGTH
|
|
// SECTION_LENGTH: attempting to parse a byte at the end of the bytecode
|
|
|
|
//===--------------------------------------------------------------------===//
|
|
// Duplicate
|
|
|
|
// RUN: not mlir-opt %S/invalid-structure-section-duplicate.mlirbc 2>&1 | FileCheck %s --check-prefix=SECTION_DUPLICATE
|
|
// SECTION_DUPLICATE: duplicate top-level section: String (0)
|