The compiler output is a tree of runtime.Module
. DSO-exportable means a runtime.Module
in that tree whose type_key
is c
or llvm
. TVM links directly against LLVM and invokes the LLVM APIs to generate code.
When you call export_library
, TVM traverses the tree of runtime.Module
. When it encounters one with type_key
of llvm
, it uses LLVM APIs to produce binary .o
for the targeted platform, then passes all such encountered modules to the system linker to produce a .so
.