ZihengJiang commented on issue #6486:
URL: https://github.com/apache/incubator-tvm/issues/6486#issuecomment-702472106


   ## API Changes
   ### DataType to runtime
   
   - Rationale: DataType is a runtime data structure
   - PRs https://github.com/apache/incubator-tvm/pull/4560
   - Rename all old reference of tvm::Type to DataType
   - ExprNode.type -> ExprNode.dtype, Expr.type() -> Expr.dtype()
   - Move type constructors as static function: Int(bits) -> DataType::Int(bits)
   
   ### Node Object Unification
   
   - Rationale: remove a few redirected macros and alias, unify node and object
   - PRs: https://github.com/apache/incubator-tvm/pull/4603
   - NodeXYZ -> ObjectXYZ
   - TVM_DEFINE_NODE_REF: define the class and TVM_DEFINE_OBJECT_REF_METHODS
   
   ### IRMutator/Visitor Functor Unification
   
   - Rationale: Unify mutator and functor
   - PRs: https://github.com/apache/incubator-tvm/pull/4607 
https://github.com/apache/incubator-tvm/pull/4606
   - Add ```#include<tvm/tir/stmt_functor.h>``` for places that need mutator
   - IRMutator: sub-class StmtMutator or StmtExprMutator instead
   - IRVisitor: sub-class StmtVisitor or StmtExprVisitor instead
   
   ### TVM_REGISTER_API -> TVM_REGISTER_GLOBAL
   
   - Rationale: remove indirection
   - PR: https://github.com/apache/incubator-tvm/pull/4621 
   - Rename to TVM_REGISTER_GLOBAL in ```runtime/registry.h```
   
   ### SeqStmt
   
   - Rationale: avoid nested recursion in long blocks
   - PR https://github.com/apache/incubator-tvm/pull/4627
   - Use SeqStmt instead to constructs sequences
   
   ### tir::Call.name -> op
   
   - Use op(RelayExpr) to replace the string name. see 
https://github.com/apache/incubator-tvm/pull/5863
   - Remove the call_type field 
https://github.com/apache/incubator-tvm/pull/5937
   
   ### IRPrinter -> ReprPrinter
   
   - Rationale: repr printer is shared across all variants in the stack
   - PRs https://github.com/apache/incubator-tvm/pull/4622 
https://github.com/apache/incubator-tvm/pull/4752
   - Rename IRPrinter -> ReprPrinter
   
   ### set_body_typed
   
   - Rationale: avoid duplication in terms of type signatures
   - https://github.com/apache/incubator-tvm/pull/4623
   - Remove type signature argument in set_body_typed 
   ```c++
   // before
   TVM_REGISTER_GLOBAL("add")
   .set_body_typed<int(int)>([](int x) { return x + 1; }
   
   // after
   TVM_REGISTER_GLOBAL("add")
   .set_body_typed([](int x) { return x + 1; }
   ```
   
   ### Node suffix Convention
   
   - Rationale: unify the naming convention throughout the codebase see also 
https://github.com/apache/incubator-tvm/issues/4648
   - PRs https://github.com/apache/incubator-tvm/pull/4649
   - Add Node suffix to low level IR nodes
   - Add ObjectRef classes to the TIR nodes
    - https://github.com/apache/incubator-tvm/pull/5773
    - https://github.com/apache/incubator-tvm/pull/5778
    - https://github.com/apache/incubator-tvm/pull/5784
   
   ### tvm::Expr -> PrimExpr
   
   - Rationale: the low-level expression is renamed to "primitive" expression 
in order to bring more unifications.
   - PR https://github.com/apache/incubator-tvm/pull/4669
   -  tvm::Expr -> PrimExpr, ExprHash/ExprEqual->ObjectHash/ObjectEqual, 
VarExpr->Var
   
   ### Relay Type/Module/Op
   - Rationale: unify type system, and module across the stack.
   - PRs  https://github.com/apache/incubator-tvm/pull/4616 
https://github.com/apache/incubator-tvm/pull/4678  
https://github.com/apache/incubator-tvm/pull/4699
   - tvm/relay/module.h -> tvm/ir/module.h
   - relay::Module -> IRModule
   
   ### New Subfolders and Namespaces
   - ir: Common set of types and IR structures
      - attrs.h -> ir/attrs.h https://github.com/apache/incubator-tvm/pull/4709
   - arith: Arithmetic simplification and integer analysis
      - arithmetic.h -> arith/analyzer.h arith/bound.h arith/int_set.h 
arith/pattern.h 
      - https://github.com/apache/incubator-tvm/pull/4722
   - target: Target dependent information and codegen
     - target_info.h -> target/target_info.h 
https://github.com/apache/incubator-tvm/pull/4721
     - codegen.h -> target/codegen.h 
https://github.com/apache/incubator-tvm/pull/4742
   - te namespace: Tensor expression DSL(compute and schedule)
      - Add namespace to compute/schedule
      - operation.h -> te/operation.h
      - schedule.h -> te/schedule.h
      - schedule_pass.h -> te/schedule_pass.h
      - tensor.h -> te/tensor.h
      -  https://github.com/apache/incubator-tvm/pull/4727, 
https://github.com/apache/incubator-tvm/pull/4759
   - tir namespace: tensor-level IR 
     - lowered_func.h,buffer.h,data_layout.h -> 
tir/buffer.h,tir/data_layout.h,tir/lowered_func.h
     - ir.h -> tir/expr.h, tir/stmt.h
     - ir_functor_ext.h -> tir/expr_functor.h, tir/stmt_functor.h
     - https://github.com/apache/incubator-tvm/pull/4740
   
   ### LoweredFunc
   TIR uses IRModule as basic unit of transformation instead of LoweredFunc.
   - https://github.com/apache/incubator-tvm/pull/5233
   
   ### ir_pass.h
   
   - The IRModule->IRModule transformations are moved to tir/transform.h
   - The IRModule->Analaysis result passes are moved to tir/analysis.h
   
   ### Simplify
   - Simplify function is removed, use Analyzer in arith/analyzer.h instead
   - https://github.com/apache/incubator-tvm/pull/5385
   
   ### BuildConfig
   - BuildConfig-> PassContext 
   https://github.com/apache/incubator-tvm/pull/5668
   
   ### Runtime Misc
   - ThreadScope::make -> ThreadScope::Create
   - StorageScope::make -> StorageScope::Create
   - https://github.com/apache/incubator-tvm/pull/5784
   
   ### tvm.module -> tvm.runtime.module
   API changes wrt to runtime.Module 
https://github.com/apache/incubator-tvm/pull/4837
   - tvm.module.load -> tvm.runtime.load_module
   - tvm.module.enabled -> tvm.runtime.enabled
   - tvm.module.system_lib -> tvm.runtime.system_lib
   
   ### tvm.ir
   API changes wrt to tvm.ir https://github.com/apache/incubator-tvm/pull/4862
   - tvm.relay.Module -> tvm.IRModule
   
   ### tvm.target
   API change wrt to tvm.target 
https://github.com/apache/incubator-tvm/pull/4872
   
   ### tvm.te
   
   API change wrt to https://github.com/apache/incubator-tvm/pull/4943
   
   - tvm.create_schedule -> tvm.te.create_schedule
   - tvm.placeholder -> tvm.te.placeholder
   - tvm.compute -> tvm.te.compute
   
   
   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to