6 Commits

Author SHA1 Message Date
River Riddle
b3449392f5 [mlir:Bytecode][NFC] Cleanup Attribute/Type reading
This moves some parsing functionality from BytecodeReader to
AttrTypeReader, and removes some duplication between the attribute/type
code paths.

Differential Revision: https://reviews.llvm.org/D132497
2022-08-23 16:56:03 -07:00
River Riddle
83dc999948 [mlir:Bytecode][NFC] Refactor string section writing and reading
This extracts the string section writer and reader into dedicated
classes, which better separates the logic and will also simplify future
patches that want to interact with the string section.

Differential Revision: https://reviews.llvm.org/D132496
2022-08-23 16:56:03 -07:00
River Riddle
96fd3f2d5b [mlir:Bytecode] Fix asan failure
We were accessing the region state after it got popped from the stack.
2022-08-22 10:02:42 -07:00
Goran Flegar
59548fe873 [mlir] Fix compile errors with bytecode support 2022-08-22 17:59:51 +02:00
River Riddle
93cf0e8a28 [mlir] Fix bots after bytecode support was added in D131747
* Fix ambiguous Twine constructor call
* Ensure shift is 64-bit (for MSVC)
* Disable bytecode tests on s390x (we don't support big endian right now)
2022-08-22 01:31:39 -07:00
River Riddle
f3acb54c1b [mlir] Add initial support for a binary serialization format
This commit adds a new bytecode serialization format for MLIR.
The actual serialization of MLIR to binary is relatively straightforward,
given the very very general structure of MLIR. The underlying basis for
this format is a variable-length encoding for integers, which gets heavily
used for nearly all aspects of the encoding (given that most of the encoding
is just indexing into lists).

The format currently does not provide support for custom attribute/type
serialization, and thus always uses an assembly format fallback. It also
doesn't provide support for resources. These will be added in followups,
the intention for this patch is to provide something that supports the
basic cases, and can be built on top of.

https://discourse.llvm.org/t/rfc-a-binary-serialization-format-for-mlir/63518

Differential Revision: https://reviews.llvm.org/D131747
2022-08-22 00:36:26 -07:00