The TVM stack has evolved for more than three years now. It contains several components that were designed at different points in time. In [IR] Unified TVM IR Infra , we proposed to build a unified IR infrastructure. This RFC discusses the project organization issue. Specifically, we propose to change the project organization into more modular ones. To facilitate discussion, we introduced a strawman’s proposal as follows.
Public header subfolders under include(ordered by dependency, later can depend on former)
- runtime: tvm runtime
- support: compiler logging, with, support utilities (naming convention from LLVM)
- node: enhanced compiler runtime object structures.
- ir: common IR infrastructure (generic type, function, module, BaseExpr)
- te: tensor expression IR (low-level IR)
- top: tensor operation DSL (tvm.compute, schedule)
- relay: high-level functional IR
- target: Target machine information.
Please share your opinions.