[DISCUSS] Unified IR Infra Project Organization

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.

Strawman’s Proposal

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.