23#ifndef TVM_RUNTIME_VM_EXECUTABLE_H_
24#define TVM_RUNTIME_VM_EXECUTABLE_H_
26#include <tvm/ffi/extra/module.h>
27#include <tvm/ffi/function.h>
32#include <unordered_map>
41#define VM_VERSION "0.14"
180 void SaveGlobalSection(support::Stream*
strm)
const;
185 void SaveMemoryScopeSection(support::Stream*
strm)
const;
190 void SaveConstantSection(support::Stream*
strm)
const;
195 void SaveCodeSection(support::Stream*
strm)
const;
200 void SavePackedFuncNames(support::Stream*
strm)
const;
205 void LoadGlobalSection(support::Stream*
strm);
210 void LoadMemoryScopeSection(support::Stream*
strm);
215 void LoadConstantSection(support::Stream*
strm);
220 void LoadCodeSection(support::Stream*
strm);
225 void LoadPackedFuncNames(support::Stream*
strm);
236 static constexpr bool enabled =
true;
237 static void Write(
Stream*
strm, const ::tvm::runtime::vm::VMFuncInfo& data) { data.
Save(
strm); }
The bytecode for the virtual machine.
RAII wrapper function to enter and exit a context object similar to python's with syntax.
Definition with_context.h:59
The virtual machine executable emitted by the VM compiler.
Definition executable.h:89
Instruction GetInstruction(Index i) const
Get the i-th instruction from the executable.
void SetInstructionData(Index i, Index j, ExecWord val)
Set j-th byte data of i-th instruction to val.
ffi::String AsText() const
Print the instructions as text format.
ffi::Bytes SaveToBytes() const final
Write the VMExecutable to the binary stream in serialized form.
ffi::String AsPython() const
Print the instructions as python program.
int GetPropertyMask() const final
Get the property of the runtime module .
Definition executable.h:92
const char * kind() const final
Module type key.
std::string Stats() const
Print the detailed statistics of the given code, i.e. number of globals and constants,...
Abstract binary stream for serialization.
Definition io.h:57
Binary stream I/O interface.
ExecWord Index
An alias for the integer type used ubiquitously in the VM.
Definition bytecode.h:48
int64_t ExecWord
The storage type for the bytecode in the VM.
Definition bytecode.h:40
An object that builds and maintains block scope and StmtSref mapping for Dependence analysis.
Definition analyzer.h:40
#define TVM_RUNTIME_DLL
Definition base.h:92
Serializer<T> specializations for tvm::support::Stream.
A single virtual machine instruction.
Definition bytecode.h:72
Information entry in executable function table.
Definition executable.h:53
Index register_file_size
The register file size of the function.
Definition executable.h:74
Index num_args
The number of arguments of the function.
Definition executable.h:72
FuncKind kind
The kind of function.
Definition executable.h:64
std::vector< std::string > param_names
The function parameter names.
Definition executable.h:76
Index start_instr
The start instruction index of the function.
Definition executable.h:68
FuncKind
kind of the function.
Definition executable.h:55
@ kVMTIRFunc
VMTIR function.
@ kPackedFunc
system level packed function
std::string name
The function's name, global symbol.
Definition executable.h:66
bool Load(support::Stream *reader)
void Save(support::Stream *writer) const
Index end_instr
The end instruction index of the function.
Definition executable.h:70
Primary Serializer template. Specialize for each serializable type.
Definition io.h:42