//===- BytecodeWriter.h - MLIR Bytecode Writer ------------------*- C++ -*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// // // This header defines interfaces to write MLIR bytecode files/streams. // //===----------------------------------------------------------------------===// #ifndef MLIR_BYTECODE_BYTECODEWRITER_H #define MLIR_BYTECODE_BYTECODEWRITER_H #include "mlir/IR/AsmState.h" namespace mlir { class DialectBytecodeWriter; class DialectVersion; class Operation; /// A class to interact with the attributes and types printer when emitting MLIR /// bytecode. template <class T> class AttrTypeBytecodeWriter { … }; /// This class contains the configuration used for the bytecode writer. It /// controls various aspects of bytecode generation, and contains all of the /// various bytecode writer hooks. class BytecodeWriterConfig { … }; //===----------------------------------------------------------------------===// // Entry Points //===----------------------------------------------------------------------===// /// Write the bytecode for the given operation to the provided output stream. /// For streams where it matters, the given stream should be in "binary" mode. /// It only ever fails if setDesiredByteCodeVersion can't be honored. LogicalResult writeBytecodeToFile(Operation *op, raw_ostream &os, const BytecodeWriterConfig &config = {}); } // namespace mlir #endif // MLIR_BYTECODE_BYTECODEWRITER_H