You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tvm.apache.org by tq...@apache.org on 2025/09/09 13:13:13 UTC

(tvm-site) branch asf-site updated: deploying docs (apache/tvm@abc8ae802f6e54ed5978e52e7825f007b9f12c66)

This is an automated email from the ASF dual-hosted git repository.

tqchen pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/tvm-site.git


The following commit(s) were added to refs/heads/asf-site by this push:
     new 63cbb92450 deploying docs (apache/tvm@abc8ae802f6e54ed5978e52e7825f007b9f12c66)
63cbb92450 is described below

commit 63cbb92450c0c85412783b086264fb22bff7c40d
Author: tvm-bot <95...@users.noreply.github.com>
AuthorDate: Tue Sep 9 13:13:01 2025 +0000

    deploying docs (apache/tvm@abc8ae802f6e54ed5978e52e7825f007b9f12c66)
---
 .../11c11e53c7dace51a8be968ee169ed0d/ir_module.zip |  Bin 23904 -> 23904 bytes
 .../tir_transformation.zip                         |  Bin 15599 -> 15599 bytes
 .../relax_creation.zip                             |  Bin 22392 -> 22392 bytes
 .../relax_transformation.zip                       |  Bin 11460 -> 11460 bytes
 .../optimize_llm.zip                               |  Bin 54101 -> 54101 bytes
 .../e2e_opt_model.zip                              |  Bin 11237 -> 11237 bytes
 .../quick_start.zip                                |  Bin 16250 -> 16250 bytes
 .../tir_creation.zip                               |  Bin 24379 -> 24379 bytes
 .../cross_compilation_and_rpc.zip                  |  Bin 21700 -> 21700 bytes
 .../customize_opt.zip                              |  Bin 19813 -> 19813 bytes
 docs/_sources/arch/pass_infra.rst.txt              |    2 +-
 docs/_sources/arch/runtime.rst.txt                 |    4 +-
 .../relax/tutorials/sg_execution_times.rst.txt     |    6 +-
 .../tensor_ir/tutorials/sg_execution_times.rst.txt |    4 +-
 .../tensor_ir/tutorials/tir_creation.rst.txt       |   20 +-
 .../tensor_ir/tutorials/tir_transformation.rst.txt |    6 +-
 .../get_started/tutorials/ir_module.rst.txt        |    8 +-
 .../get_started/tutorials/quick_start.rst.txt      |    4 +-
 .../tutorials/sg_execution_times.rst.txt           |    6 +-
 .../tutorials/cross_compilation_and_rpc.rst.txt    |    2 +-
 .../how_to/tutorials/customize_opt.rst.txt         |    4 +-
 .../how_to/tutorials/e2e_opt_model.rst.txt         |    2 +-
 .../how_to/tutorials/sg_execution_times.rst.txt    |   10 +-
 docs/_sources/sg_execution_times.rst.txt           |   24 +-
 docs/arch/pass_infra.html                          |    2 +-
 docs/arch/runtime.html                             |    4 +-
 docs/commit_hash                                   |    2 +-
 .../relax/tutorials/sg_execution_times.html        |    6 +-
 .../tensor_ir/tutorials/sg_execution_times.html    |    4 +-
 .../tensor_ir/tutorials/tir_creation.html          |   20 +-
 .../tensor_ir/tutorials/tir_transformation.html    |    6 +-
 docs/get_started/tutorials/ir_module.html          |    8 +-
 docs/get_started/tutorials/quick_start.html        |    4 +-
 docs/get_started/tutorials/sg_execution_times.html |    6 +-
 .../tutorials/cross_compilation_and_rpc.html       |    2 +-
 docs/how_to/tutorials/customize_opt.html           |    4 +-
 docs/how_to/tutorials/e2e_opt_model.html           |    6 +-
 docs/how_to/tutorials/sg_execution_times.html      |   10 +-
 ..._2tvm_2script_2ir_builder_2base_8h-example.html |   45 +-
 docs/reference/api/doxygen/analyzer_8h_source.html |  680 +++--
 .../reference/api/doxygen/arg__info_8h_source.html |  119 +-
 .../api/doxygen/attr__registry__map_8h_source.html |    2 +-
 docs/reference/api/doxygen/attrs_8h_source.html    |  348 ++-
 .../api/doxygen/axis__group__graph_8h_source.html  |   24 +-
 docs/reference/api/doxygen/backend_8h_source.html  |    2 +-
 .../reference/api/doxygen/bias__add_8h_source.html |    2 +-
 .../api/doxygen/binding__rewrite_8h_source.html    |  106 +-
 .../api/doxygen/block__builder_8h_source.html      |   32 +-
 .../doxygen/block__dependence__info_8h_source.html |   63 +-
 .../api/doxygen/block__scope_8h_source.html        |  263 +-
 docs/reference/api/doxygen/bnn_8h_source.html      |   10 +-
 docs/reference/api/doxygen/bound_8h_source.html    |   10 +-
 docs/reference/api/doxygen/broadcast_8h.html       |    4 +-
 .../reference/api/doxygen/broadcast_8h_source.html |    2 +-
 docs/reference/api/doxygen/buffer_8h_source.html   |  161 +-
 docs/reference/api/doxygen/builder_8h_source.html  |  200 +-
 .../api/doxygen/c__backend__api_8h_source.html     |    4 +-
 docs/reference/api/doxygen/ccl_8h_source.html      |  116 +-
 .../doxygen/classtvm_1_1AttrFieldInfo-members.html |    2 +-
 .../api/doxygen/classtvm_1_1AttrFieldInfo.html     |   14 +-
 .../classtvm_1_1AttrFieldInfoNode-members.html     |   13 +-
 .../api/doxygen/classtvm_1_1AttrFieldInfoNode.html |   44 +-
 .../classtvm_1_1AttrFieldInfoNode__coll__graph.svg |   43 +-
 ...asstvm_1_1AttrFieldInfoNode__inherit__graph.svg |   43 +-
 .../classtvm_1_1AttrFieldInfo__coll__graph.svg     |   36 +-
 .../classtvm_1_1AttrFieldInfo__inherit__graph.svg  |   36 +-
 .../api/doxygen/classtvm_1_1Attrs-members.html     |    2 +-
 docs/reference/api/doxygen/classtvm_1_1Attrs.html  |   14 +-
 .../classtvm_1_1AttrsNodeReflAdapter-members.html  |   11 +-
 .../doxygen/classtvm_1_1AttrsNodeReflAdapter.html  |   10 +-
 ...asstvm_1_1AttrsNodeReflAdapter__coll__graph.svg |   55 +-
 ...tvm_1_1AttrsNodeReflAdapter__inherit__graph.svg |   55 +-
 .../api/doxygen/classtvm_1_1Attrs__coll__graph.svg |   36 +-
 .../doxygen/classtvm_1_1Attrs__inherit__graph.svg  |   56 +-
 .../doxygen/classtvm_1_1BaseAttrsNode-members.html |   11 +-
 .../api/doxygen/classtvm_1_1BaseAttrsNode.html     |   44 +-
 .../classtvm_1_1BaseAttrsNode__coll__graph.svg     |   37 +-
 .../classtvm_1_1BaseAttrsNode__inherit__graph.svg  | 3151 ++++++++++----------
 .../api/doxygen/classtvm_1_1BaseExpr-members.html  |    2 +-
 .../api/doxygen/classtvm_1_1BaseExpr.html          |   14 +-
 .../doxygen/classtvm_1_1BaseExprNode-members.html  |    9 +-
 .../api/doxygen/classtvm_1_1BaseExprNode.html      |   44 +-
 .../classtvm_1_1BaseExprNode__coll__graph.svg      |   75 +-
 .../classtvm_1_1BaseExprNode__inherit__graph.svg   | 1746 ++++++-----
 .../doxygen/classtvm_1_1BaseExpr__coll__graph.svg  |   36 +-
 .../classtvm_1_1BaseExpr__inherit__graph.svg       | 1468 ++++-----
 .../api/doxygen/classtvm_1_1BaseFunc-members.html  |    6 +-
 .../api/doxygen/classtvm_1_1BaseFunc.html          |   22 +-
 .../doxygen/classtvm_1_1BaseFuncNode-members.html  |   25 +-
 .../api/doxygen/classtvm_1_1BaseFuncNode.html      |   56 +-
 .../classtvm_1_1BaseFuncNode__coll__graph.svg      |  193 +-
 .../classtvm_1_1BaseFuncNode__inherit__graph.svg   |  180 +-
 .../doxygen/classtvm_1_1BaseFunc__coll__graph.svg  |   72 +-
 .../classtvm_1_1BaseFunc__inherit__graph.svg       |  140 +-
 .../api/doxygen/classtvm_1_1Bool-members.html      |   10 +-
 docs/reference/api/doxygen/classtvm_1_1Bool.html   |   26 +-
 .../api/doxygen/classtvm_1_1Bool__coll__graph.svg  |  104 +-
 .../doxygen/classtvm_1_1Bool__inherit__graph.svg   |  104 +-
 .../doxygen/classtvm_1_1Diagnostic-members.html    |    2 +-
 .../api/doxygen/classtvm_1_1Diagnostic.html        |   14 +-
 .../api/doxygen/classtvm_1_1DiagnosticBuilder.html |    2 +-
 .../classtvm_1_1DiagnosticBuilder__coll__graph.svg |  100 +-
 .../classtvm_1_1DiagnosticContext-members.html     |    2 +-
 .../api/doxygen/classtvm_1_1DiagnosticContext.html |   14 +-
 .../classtvm_1_1DiagnosticContextNode-members.html |   13 +-
 .../doxygen/classtvm_1_1DiagnosticContextNode.html |   44 +-
 ...sstvm_1_1DiagnosticContextNode__coll__graph.svg |  123 +-
 ...vm_1_1DiagnosticContextNode__inherit__graph.svg |   45 +-
 .../classtvm_1_1DiagnosticContext__coll__graph.svg |   36 +-
 ...asstvm_1_1DiagnosticContext__inherit__graph.svg |   36 +-
 .../classtvm_1_1DiagnosticNode-members.html        |   15 +-
 .../api/doxygen/classtvm_1_1DiagnosticNode.html    |   44 +-
 .../classtvm_1_1DiagnosticNode__coll__graph.svg    |   91 +-
 .../classtvm_1_1DiagnosticNode__inherit__graph.svg |   47 +-
 .../classtvm_1_1DiagnosticRenderer-members.html    |    2 +-
 .../doxygen/classtvm_1_1DiagnosticRenderer.html    |   14 +-
 ...classtvm_1_1DiagnosticRendererNode-members.html |    7 +-
 .../classtvm_1_1DiagnosticRendererNode.html        |   48 +-
 ...stvm_1_1DiagnosticRendererNode__coll__graph.svg |   39 +-
 ...m_1_1DiagnosticRendererNode__inherit__graph.svg |   39 +-
 ...classtvm_1_1DiagnosticRenderer__coll__graph.svg |   36 +-
 ...sstvm_1_1DiagnosticRenderer__inherit__graph.svg |   36 +-
 .../classtvm_1_1Diagnostic__coll__graph.svg        |   36 +-
 .../classtvm_1_1Diagnostic__inherit__graph.svg     |   36 +-
 .../api/doxygen/classtvm_1_1DictAttrs-members.html |    4 +-
 .../api/doxygen/classtvm_1_1DictAttrs.html         |   18 +-
 .../doxygen/classtvm_1_1DictAttrsNode-members.html |   17 +-
 .../api/doxygen/classtvm_1_1DictAttrsNode.html     |   55 +-
 .../classtvm_1_1DictAttrsNode__coll__graph.svg     |   64 +-
 .../classtvm_1_1DictAttrsNode__inherit__graph.svg  |   64 +-
 .../doxygen/classtvm_1_1DictAttrs__coll__graph.svg |   56 +-
 .../classtvm_1_1DictAttrs__inherit__graph.svg      |   56 +-
 .../classtvm_1_1DummyGlobalInfo-members.html       |    4 +-
 .../api/doxygen/classtvm_1_1DummyGlobalInfo.html   |   18 +-
 .../classtvm_1_1DummyGlobalInfoNode-members.html   |    9 +-
 .../doxygen/classtvm_1_1DummyGlobalInfoNode.html   |   56 +-
 ...lasstvm_1_1DummyGlobalInfoNode__coll__graph.svg |   57 +-
 ...stvm_1_1DummyGlobalInfoNode__inherit__graph.svg |   57 +-
 .../classtvm_1_1DummyGlobalInfo__coll__graph.svg   |   54 +-
 ...classtvm_1_1DummyGlobalInfo__inherit__graph.svg |   54 +-
 .../doxygen/classtvm_1_1EnvFuncNode-members.html   |   13 +-
 .../api/doxygen/classtvm_1_1EnvFuncNode.html       |   44 +-
 .../classtvm_1_1EnvFuncNode__coll__graph.svg       |   59 +-
 .../classtvm_1_1EnvFuncNode__inherit__graph.svg    |   43 +-
 .../api/doxygen/classtvm_1_1FloatImm-members.html  |    6 +-
 .../api/doxygen/classtvm_1_1FloatImm.html          |   22 +-
 .../doxygen/classtvm_1_1FloatImmNode-members.html  |   19 +-
 .../api/doxygen/classtvm_1_1FloatImmNode.html      |   61 +-
 .../classtvm_1_1FloatImmNode__coll__graph.svg      |  191 +-
 .../classtvm_1_1FloatImmNode__inherit__graph.svg   |   93 +-
 .../doxygen/classtvm_1_1FloatImm__coll__graph.svg  |   72 +-
 .../classtvm_1_1FloatImm__inherit__graph.svg       |   72 +-
 .../api/doxygen/classtvm_1_1FuncType-members.html  |    4 +-
 .../api/doxygen/classtvm_1_1FuncType.html          |   18 +-
 .../doxygen/classtvm_1_1FuncTypeNode-members.html  |   15 +-
 .../api/doxygen/classtvm_1_1FuncTypeNode.html      |   55 +-
 .../classtvm_1_1FuncTypeNode__coll__graph.svg      |  128 +-
 .../classtvm_1_1FuncTypeNode__inherit__graph.svg   |   66 +-
 .../doxygen/classtvm_1_1FuncType__coll__graph.svg  |   54 +-
 .../classtvm_1_1FuncType__inherit__graph.svg       |   54 +-
 .../doxygen/classtvm_1_1GlobalInfo-members.html    |    2 +-
 .../api/doxygen/classtvm_1_1GlobalInfo.html        |   14 +-
 .../classtvm_1_1GlobalInfoNode-members.html        |    5 +-
 .../api/doxygen/classtvm_1_1GlobalInfoNode.html    |   44 +-
 .../classtvm_1_1GlobalInfoNode__coll__graph.svg    |   35 +-
 .../classtvm_1_1GlobalInfoNode__inherit__graph.svg |  111 +-
 .../classtvm_1_1GlobalInfo__coll__graph.svg        |   36 +-
 .../classtvm_1_1GlobalInfo__inherit__graph.svg     |   98 +-
 .../api/doxygen/classtvm_1_1GlobalVar-members.html |    6 +-
 .../api/doxygen/classtvm_1_1GlobalVar.html         |   22 +-
 .../doxygen/classtvm_1_1GlobalVarNode-members.html |   21 +-
 .../api/doxygen/classtvm_1_1GlobalVarNode.html     |   56 +-
 .../classtvm_1_1GlobalVarNode__coll__graph.svg     |  127 +-
 .../classtvm_1_1GlobalVarNode__inherit__graph.svg  |   89 +-
 .../classtvm_1_1GlobalVarSupply-members.html       |    2 +-
 .../api/doxygen/classtvm_1_1GlobalVarSupply.html   |   14 +-
 .../classtvm_1_1GlobalVarSupplyNode-members.html   |    4 +-
 .../doxygen/classtvm_1_1GlobalVarSupplyNode.html   |   30 +-
 ...lasstvm_1_1GlobalVarSupplyNode__coll__graph.svg |   79 +-
 ...stvm_1_1GlobalVarSupplyNode__inherit__graph.svg |   36 +-
 .../classtvm_1_1GlobalVarSupply__coll__graph.svg   |   41 +-
 ...classtvm_1_1GlobalVarSupply__inherit__graph.svg |   41 +-
 .../doxygen/classtvm_1_1GlobalVar__coll__graph.svg |   72 +-
 .../classtvm_1_1GlobalVar__inherit__graph.svg      |   72 +-
 .../doxygen/classtvm_1_1IRModuleNode-members.html  |   61 +-
 .../api/doxygen/classtvm_1_1IRModuleNode.html      |   46 +-
 .../classtvm_1_1IRModuleNode__coll__graph.svg      |  169 +-
 .../classtvm_1_1IRModuleNode__inherit__graph.svg   |   41 +-
 .../api/doxygen/classtvm_1_1IntImm-members.html    |    6 +-
 docs/reference/api/doxygen/classtvm_1_1IntImm.html |   22 +-
 .../doxygen/classtvm_1_1IntImmNode-members.html    |   19 +-
 .../api/doxygen/classtvm_1_1IntImmNode.html        |   61 +-
 .../classtvm_1_1IntImmNode__coll__graph.svg        |  191 +-
 .../classtvm_1_1IntImmNode__inherit__graph.svg     |   93 +-
 .../doxygen/classtvm_1_1IntImm__coll__graph.svg    |   72 +-
 .../doxygen/classtvm_1_1IntImm__inherit__graph.svg |  142 +-
 .../api/doxygen/classtvm_1_1Integer-members.html   |    6 +-
 .../reference/api/doxygen/classtvm_1_1Integer.html |   16 +-
 .../doxygen/classtvm_1_1Integer__coll__graph.svg   |  110 +-
 .../classtvm_1_1Integer__inherit__graph.svg        |  110 +-
 .../doxygen/classtvm_1_1MemoryInfo-members.html    |    2 +-
 .../api/doxygen/classtvm_1_1MemoryInfo.html        |   14 +-
 .../classtvm_1_1MemoryInfoNode-members.html        |   13 +-
 .../api/doxygen/classtvm_1_1MemoryInfoNode.html    |   48 +-
 .../classtvm_1_1MemoryInfoNode__coll__graph.svg    |  105 +-
 .../classtvm_1_1MemoryInfoNode__inherit__graph.svg |   45 +-
 .../classtvm_1_1MemoryInfo__coll__graph.svg        |   36 +-
 .../classtvm_1_1MemoryInfo__inherit__graph.svg     |   36 +-
 .../doxygen/classtvm_1_1NameSupply-members.html    |    2 +-
 .../api/doxygen/classtvm_1_1NameSupply.html        |   14 +-
 .../classtvm_1_1NameSupplyNode-members.html        |    4 +-
 .../api/doxygen/classtvm_1_1NameSupplyNode.html    |   30 +-
 .../classtvm_1_1NameSupplyNode__coll__graph.svg    |   36 +-
 .../classtvm_1_1NameSupplyNode__inherit__graph.svg |   36 +-
 .../classtvm_1_1NameSupply__coll__graph.svg        |   41 +-
 .../classtvm_1_1NameSupply__inherit__graph.svg     |   41 +-
 .../api/doxygen/classtvm_1_1Op-members.html        |    6 +-
 docs/reference/api/doxygen/classtvm_1_1Op.html     |   22 +-
 .../api/doxygen/classtvm_1_1OpNode-members.html    |   37 +-
 docs/reference/api/doxygen/classtvm_1_1OpNode.html |   56 +-
 .../doxygen/classtvm_1_1OpNode__coll__graph.svg    |  185 +-
 .../doxygen/classtvm_1_1OpNode__inherit__graph.svg |  103 +-
 .../api/doxygen/classtvm_1_1Op__coll__graph.svg    |   72 +-
 .../api/doxygen/classtvm_1_1Op__inherit__graph.svg |   72 +-
 .../doxygen/classtvm_1_1PointerType-members.html   |    4 +-
 .../api/doxygen/classtvm_1_1PointerType.html       |   18 +-
 .../classtvm_1_1PointerTypeNode-members.html       |   15 +-
 .../api/doxygen/classtvm_1_1PointerTypeNode.html   |   55 +-
 .../classtvm_1_1PointerTypeNode__coll__graph.svg   |  128 +-
 ...classtvm_1_1PointerTypeNode__inherit__graph.svg |   66 +-
 .../classtvm_1_1PointerType__coll__graph.svg       |   54 +-
 .../classtvm_1_1PointerType__inherit__graph.svg    |   54 +-
 .../api/doxygen/classtvm_1_1PrimExpr-members.html  |    4 +-
 .../api/doxygen/classtvm_1_1PrimExpr.html          |   18 +-
 .../classtvm_1_1PrimExprConvertible-members.html   |    2 +-
 .../doxygen/classtvm_1_1PrimExprConvertible.html   |   14 +-
 ...lasstvm_1_1PrimExprConvertibleNode-members.html |    7 +-
 .../classtvm_1_1PrimExprConvertibleNode.html       |   49 +-
 ...tvm_1_1PrimExprConvertibleNode__coll__graph.svg |   34 +-
 ..._1_1PrimExprConvertibleNode__inherit__graph.svg |  165 +-
 ...lasstvm_1_1PrimExprConvertible__coll__graph.svg |   36 +-
 ...stvm_1_1PrimExprConvertible__inherit__graph.svg |  138 +-
 .../doxygen/classtvm_1_1PrimExprNode-members.html  |   15 +-
 .../api/doxygen/classtvm_1_1PrimExprNode.html      |   50 +-
 .../classtvm_1_1PrimExprNode__coll__graph.svg      |  170 +-
 .../classtvm_1_1PrimExprNode__inherit__graph.svg   | 1244 ++++----
 .../doxygen/classtvm_1_1PrimExpr__coll__graph.svg  |   54 +-
 .../classtvm_1_1PrimExpr__inherit__graph.svg       |  994 +++---
 .../api/doxygen/classtvm_1_1PrimType-members.html  |    4 +-
 .../api/doxygen/classtvm_1_1PrimType.html          |   18 +-
 .../doxygen/classtvm_1_1PrimTypeNode-members.html  |   13 +-
 .../api/doxygen/classtvm_1_1PrimTypeNode.html      |   55 +-
 .../classtvm_1_1PrimTypeNode__coll__graph.svg      |  163 +-
 .../classtvm_1_1PrimTypeNode__inherit__graph.svg   |   64 +-
 .../doxygen/classtvm_1_1PrimType__coll__graph.svg  |   54 +-
 .../classtvm_1_1PrimType__inherit__graph.svg       |   54 +-
 .../doxygen/classtvm_1_1PrinterConfig-members.html |    2 +-
 .../api/doxygen/classtvm_1_1PrinterConfig.html     |   14 +-
 .../classtvm_1_1PrinterConfigNode-members.html     |    4 +-
 .../api/doxygen/classtvm_1_1PrinterConfigNode.html |   28 +-
 .../classtvm_1_1PrinterConfigNode__coll__graph.svg |   38 +-
 ...asstvm_1_1PrinterConfigNode__inherit__graph.svg |   36 +-
 .../classtvm_1_1PrinterConfig__coll__graph.svg     |   41 +-
 .../classtvm_1_1PrinterConfig__inherit__graph.svg  |   41 +-
 .../api/doxygen/classtvm_1_1Range-members.html     |    2 +-
 docs/reference/api/doxygen/classtvm_1_1Range.html  |   14 +-
 .../api/doxygen/classtvm_1_1RangeNode-members.html |   17 +-
 .../api/doxygen/classtvm_1_1RangeNode.html         |   44 +-
 .../doxygen/classtvm_1_1RangeNode__coll__graph.svg |  137 +-
 .../classtvm_1_1RangeNode__inherit__graph.svg      |   43 +-
 .../api/doxygen/classtvm_1_1Range__coll__graph.svg |   36 +-
 .../doxygen/classtvm_1_1Range__inherit__graph.svg  |   36 +-
 .../api/doxygen/classtvm_1_1RelaxExpr-members.html |    4 +-
 .../api/doxygen/classtvm_1_1RelaxExpr.html         |   18 +-
 .../doxygen/classtvm_1_1RelaxExprNode-members.html |   13 +-
 .../api/doxygen/classtvm_1_1RelaxExprNode.html     |   50 +-
 .../classtvm_1_1RelaxExprNode__coll__graph.svg     |  100 +-
 .../classtvm_1_1RelaxExprNode__inherit__graph.svg  |  547 ++--
 .../doxygen/classtvm_1_1RelaxExpr__coll__graph.svg |   54 +-
 .../classtvm_1_1RelaxExpr__inherit__graph.svg      |  502 ++--
 .../classtvm_1_1SequentialSpan-members.html        |    4 +-
 .../api/doxygen/classtvm_1_1SequentialSpan.html    |   18 +-
 .../classtvm_1_1SequentialSpanNode-members.html    |   21 +-
 .../doxygen/classtvm_1_1SequentialSpanNode.html    |   55 +-
 ...classtvm_1_1SequentialSpanNode__coll__graph.svg |  106 +-
 ...sstvm_1_1SequentialSpanNode__inherit__graph.svg |   70 +-
 .../classtvm_1_1SequentialSpan__coll__graph.svg    |   54 +-
 .../classtvm_1_1SequentialSpan__inherit__graph.svg |   54 +-
 .../api/doxygen/classtvm_1_1Source-members.html    |    2 +-
 docs/reference/api/doxygen/classtvm_1_1Source.html |   14 +-
 .../api/doxygen/classtvm_1_1SourceMap-members.html |    2 +-
 .../api/doxygen/classtvm_1_1SourceMap.html         |   14 +-
 .../doxygen/classtvm_1_1SourceMapObj-members.html  |    9 +-
 .../api/doxygen/classtvm_1_1SourceMapObj.html      |   44 +-
 .../classtvm_1_1SourceMapObj__coll__graph.svg      |   41 +-
 .../classtvm_1_1SourceMapObj__inherit__graph.svg   |   41 +-
 .../doxygen/classtvm_1_1SourceMap__coll__graph.svg |   36 +-
 .../classtvm_1_1SourceMap__inherit__graph.svg      |   36 +-
 .../doxygen/classtvm_1_1SourceName-members.html    |    2 +-
 .../api/doxygen/classtvm_1_1SourceName.html        |   14 +-
 .../classtvm_1_1SourceNameNode-members.html        |    9 +-
 .../api/doxygen/classtvm_1_1SourceNameNode.html    |   44 +-
 .../classtvm_1_1SourceNameNode__coll__graph.svg    |   41 +-
 .../classtvm_1_1SourceNameNode__inherit__graph.svg |   41 +-
 .../classtvm_1_1SourceName__coll__graph.svg        |   36 +-
 .../classtvm_1_1SourceName__inherit__graph.svg     |   36 +-
 .../doxygen/classtvm_1_1SourceNode-members.html    |   11 +-
 .../api/doxygen/classtvm_1_1SourceNode.html        |   48 +-
 .../classtvm_1_1SourceNode__coll__graph.svg        |   79 +-
 .../classtvm_1_1SourceNode__inherit__graph.svg     |   43 +-
 .../doxygen/classtvm_1_1Source__coll__graph.svg    |   36 +-
 .../doxygen/classtvm_1_1Source__inherit__graph.svg |   36 +-
 .../api/doxygen/classtvm_1_1Span-members.html      |    2 +-
 docs/reference/api/doxygen/classtvm_1_1Span.html   |   14 +-
 .../api/doxygen/classtvm_1_1SpanNode-members.html  |   17 +-
 .../api/doxygen/classtvm_1_1SpanNode.html          |   44 +-
 .../doxygen/classtvm_1_1SpanNode__coll__graph.svg  |   83 +-
 .../classtvm_1_1SpanNode__inherit__graph.svg       |   70 +-
 .../api/doxygen/classtvm_1_1Span__coll__graph.svg  |   36 +-
 .../doxygen/classtvm_1_1Span__inherit__graph.svg   |   54 +-
 .../api/doxygen/classtvm_1_1Target-members.html    |    2 +-
 docs/reference/api/doxygen/classtvm_1_1Target.html |   14 +-
 .../doxygen/classtvm_1_1TargetKind-members.html    |    2 +-
 .../api/doxygen/classtvm_1_1TargetKind.html        |   14 +-
 .../classtvm_1_1TargetKindNode-members.html        |   27 +-
 .../api/doxygen/classtvm_1_1TargetKindNode.html    |   44 +-
 .../classtvm_1_1TargetKindNode__coll__graph.svg    |   65 +-
 .../classtvm_1_1TargetKindNode__inherit__graph.svg |   49 +-
 .../classtvm_1_1TargetKind__coll__graph.svg        |   36 +-
 .../classtvm_1_1TargetKind__inherit__graph.svg     |   36 +-
 .../doxygen/classtvm_1_1TargetNode-members.html    |   45 +-
 .../api/doxygen/classtvm_1_1TargetNode.html        |   44 +-
 .../classtvm_1_1TargetNode__coll__graph.svg        |   93 +-
 .../classtvm_1_1TargetNode__inherit__graph.svg     |   49 +-
 .../api/doxygen/classtvm_1_1TargetTag-members.html |    2 +-
 .../api/doxygen/classtvm_1_1TargetTag.html         |   14 +-
 .../doxygen/classtvm_1_1TargetTagNode-members.html |   15 +-
 .../api/doxygen/classtvm_1_1TargetTagNode.html     |   48 +-
 .../classtvm_1_1TargetTagNode__coll__graph.svg     |   41 +-
 .../classtvm_1_1TargetTagNode__inherit__graph.svg  |   41 +-
 .../doxygen/classtvm_1_1TargetTag__coll__graph.svg |   36 +-
 .../classtvm_1_1TargetTag__inherit__graph.svg      |   36 +-
 .../doxygen/classtvm_1_1Target__coll__graph.svg    |   36 +-
 .../doxygen/classtvm_1_1Target__inherit__graph.svg |   36 +-
 .../doxygen/classtvm_1_1TensorMapType-members.html |    4 +-
 .../api/doxygen/classtvm_1_1TensorMapType.html     |   18 +-
 .../classtvm_1_1TensorMapTypeNode-members.html     |   11 +-
 .../api/doxygen/classtvm_1_1TensorMapTypeNode.html |   65 +-
 .../classtvm_1_1TensorMapTypeNode__coll__graph.svg |  101 +-
 ...asstvm_1_1TensorMapTypeNode__inherit__graph.svg |   63 +-
 .../classtvm_1_1TensorMapType__coll__graph.svg     |   56 +-
 .../classtvm_1_1TensorMapType__inherit__graph.svg  |   56 +-
 .../api/doxygen/classtvm_1_1TupleType-members.html |    4 +-
 .../api/doxygen/classtvm_1_1TupleType.html         |   18 +-
 .../doxygen/classtvm_1_1TupleTypeNode-members.html |   15 +-
 .../api/doxygen/classtvm_1_1TupleTypeNode.html     |   55 +-
 .../classtvm_1_1TupleTypeNode__coll__graph.svg     |  102 +-
 .../classtvm_1_1TupleTypeNode__inherit__graph.svg  |   64 +-
 .../doxygen/classtvm_1_1TupleType__coll__graph.svg |   54 +-
 .../classtvm_1_1TupleType__inherit__graph.svg      |   54 +-
 .../api/doxygen/classtvm_1_1Type-members.html      |    2 +-
 docs/reference/api/doxygen/classtvm_1_1Type.html   |   14 +-
 .../api/doxygen/classtvm_1_1TypeNode-members.html  |    9 +-
 .../api/doxygen/classtvm_1_1TypeNode.html          |   44 +-
 .../doxygen/classtvm_1_1TypeNode__coll__graph.svg  |   77 +-
 .../classtvm_1_1TypeNode__inherit__graph.svg       |  241 +-
 .../api/doxygen/classtvm_1_1Type__coll__graph.svg  |   36 +-
 .../doxygen/classtvm_1_1Type__inherit__graph.svg   |  220 +-
 .../api/doxygen/classtvm_1_1VDevice-members.html   |    4 +-
 .../reference/api/doxygen/classtvm_1_1VDevice.html |   18 +-
 .../doxygen/classtvm_1_1VDeviceNode-members.html   |   15 +-
 .../api/doxygen/classtvm_1_1VDeviceNode.html       |   55 +-
 .../classtvm_1_1VDeviceNode__coll__graph.svg       |  112 +-
 .../classtvm_1_1VDeviceNode__inherit__graph.svg    |   62 +-
 .../doxygen/classtvm_1_1VDevice__coll__graph.svg   |   54 +-
 .../classtvm_1_1VDevice__inherit__graph.svg        |   54 +-
 .../doxygen/classtvm_1_1VirtualDevice-members.html |    2 +-
 .../api/doxygen/classtvm_1_1VirtualDevice.html     |   14 +-
 .../classtvm_1_1VirtualDeviceNode-members.html     |   31 +-
 .../api/doxygen/classtvm_1_1VirtualDeviceNode.html |   63 +-
 .../classtvm_1_1VirtualDeviceNode__coll__graph.svg |  144 +-
 ...asstvm_1_1VirtualDeviceNode__inherit__graph.svg |   96 +-
 .../classtvm_1_1VirtualDevice__coll__graph.svg     |   36 +-
 .../classtvm_1_1VirtualDevice__inherit__graph.svg  |   36 +-
 ...classtvm_1_1arith_1_1ConstIntBound-members.html |    2 +-
 .../classtvm_1_1arith_1_1ConstIntBound.html        |   14 +-
 ...stvm_1_1arith_1_1ConstIntBoundNode-members.html |   15 +-
 .../classtvm_1_1arith_1_1ConstIntBoundNode.html    |   44 +-
 ..._1_1arith_1_1ConstIntBoundNode__coll__graph.svg |   47 +-
 ...1arith_1_1ConstIntBoundNode__inherit__graph.svg |   47 +-
 ...stvm_1_1arith_1_1ConstIntBound__coll__graph.svg |   34 +-
 ...m_1_1arith_1_1ConstIntBound__inherit__graph.svg |   34 +-
 ...lasstvm_1_1arith_1_1IntConstraints-members.html |    2 +-
 .../classtvm_1_1arith_1_1IntConstraints.html       |   14 +-
 ...tvm_1_1arith_1_1IntConstraintsNode-members.html |   13 +-
 .../classtvm_1_1arith_1_1IntConstraintsNode.html   |   44 +-
 ...1_1arith_1_1IntConstraintsNode__coll__graph.svg |   45 +-
 ...arith_1_1IntConstraintsNode__inherit__graph.svg |   45 +-
 ..._1arith_1_1IntConstraintsTransform-members.html |    2 +-
 ...asstvm_1_1arith_1_1IntConstraintsTransform.html |   14 +-
 ...ith_1_1IntConstraintsTransformNode-members.html |   15 +-
 ...vm_1_1arith_1_1IntConstraintsTransformNode.html |   44 +-
 ...1_1IntConstraintsTransformNode__coll__graph.svg |   85 +-
 ...IntConstraintsTransformNode__inherit__graph.svg |   49 +-
 ...ith_1_1IntConstraintsTransform__coll__graph.svg |   36 +-
 ..._1_1IntConstraintsTransform__inherit__graph.svg |   36 +-
 ...tvm_1_1arith_1_1IntConstraints__coll__graph.svg |   36 +-
 ..._1_1arith_1_1IntConstraints__inherit__graph.svg |   36 +-
 ...lasstvm_1_1arith_1_1IntGroupBounds-members.html |    2 +-
 .../classtvm_1_1arith_1_1IntGroupBounds.html       |   14 +-
 ...tvm_1_1arith_1_1IntGroupBoundsNode-members.html |   15 +-
 .../classtvm_1_1arith_1_1IntGroupBoundsNode.html   |   44 +-
 ...1_1arith_1_1IntGroupBoundsNode__coll__graph.svg |  107 +-
 ...arith_1_1IntGroupBoundsNode__inherit__graph.svg |   47 +-
 ...tvm_1_1arith_1_1IntGroupBounds__coll__graph.svg |   36 +-
 ..._1_1arith_1_1IntGroupBounds__inherit__graph.svg |   36 +-
 .../classtvm_1_1arith_1_1IntSet-members.html       |    2 +-
 .../api/doxygen/classtvm_1_1arith_1_1IntSet.html   |   10 +-
 .../classtvm_1_1arith_1_1IntSetNode-members.html   |    3 +-
 .../doxygen/classtvm_1_1arith_1_1IntSetNode.html   |   49 +-
 ...lasstvm_1_1arith_1_1IntSetNode__coll__graph.svg |   34 +-
 ...stvm_1_1arith_1_1IntSetNode__inherit__graph.svg |   34 +-
 .../classtvm_1_1arith_1_1IterMapExpr-members.html  |    6 +-
 .../doxygen/classtvm_1_1arith_1_1IterMapExpr.html  |   22 +-
 ...asstvm_1_1arith_1_1IterMapExprNode-members.html |   17 +-
 .../classtvm_1_1arith_1_1IterMapExprNode.html      |   56 +-
 ...vm_1_1arith_1_1IterMapExprNode__coll__graph.svg |  189 +-
 ...1_1arith_1_1IterMapExprNode__inherit__graph.svg |  143 +-
 ...asstvm_1_1arith_1_1IterMapExpr__coll__graph.svg |   72 +-
 ...tvm_1_1arith_1_1IterMapExpr__inherit__graph.svg |  122 +-
 ...stvm_1_1arith_1_1IterMapResultNode-members.html |   11 +-
 .../classtvm_1_1arith_1_1IterMapResultNode.html    |   48 +-
 ..._1_1arith_1_1IterMapResultNode__coll__graph.svg |  103 +-
 ...1arith_1_1IterMapResultNode__inherit__graph.svg |   43 +-
 .../classtvm_1_1arith_1_1IterMark-members.html     |    2 +-
 .../api/doxygen/classtvm_1_1arith_1_1IterMark.html |   14 +-
 .../classtvm_1_1arith_1_1IterMarkNode-members.html |   11 +-
 .../doxygen/classtvm_1_1arith_1_1IterMarkNode.html |   44 +-
 ...sstvm_1_1arith_1_1IterMarkNode__coll__graph.svg |  103 +-
 ...vm_1_1arith_1_1IterMarkNode__inherit__graph.svg |   43 +-
 .../classtvm_1_1arith_1_1IterMark__coll__graph.svg |   36 +-
 ...asstvm_1_1arith_1_1IterMark__inherit__graph.svg |   36 +-
 ...classtvm_1_1arith_1_1IterSplitExpr-members.html |    8 +-
 .../classtvm_1_1arith_1_1IterSplitExpr.html        |   26 +-
 ...stvm_1_1arith_1_1IterSplitExprNode-members.html |   27 +-
 .../classtvm_1_1arith_1_1IterSplitExprNode.html    |   62 +-
 ..._1_1arith_1_1IterSplitExprNode__coll__graph.svg |  294 +-
 ...1arith_1_1IterSplitExprNode__inherit__graph.svg |  120 +-
 ...stvm_1_1arith_1_1IterSplitExpr__coll__graph.svg |   90 +-
 ...m_1_1arith_1_1IterSplitExpr__inherit__graph.svg |   90 +-
 .../classtvm_1_1arith_1_1IterSumExpr-members.html  |    8 +-
 .../doxygen/classtvm_1_1arith_1_1IterSumExpr.html  |   26 +-
 ...asstvm_1_1arith_1_1IterSumExprNode-members.html |   23 +-
 .../classtvm_1_1arith_1_1IterSumExprNode.html      |   62 +-
 ...vm_1_1arith_1_1IterSumExprNode__coll__graph.svg |  262 +-
 ...1_1arith_1_1IterSumExprNode__inherit__graph.svg |  116 +-
 ...asstvm_1_1arith_1_1IterSumExpr__coll__graph.svg |   90 +-
 ...tvm_1_1arith_1_1IterSumExpr__inherit__graph.svg |   90 +-
 .../classtvm_1_1arith_1_1ModularSet-members.html   |    2 +-
 .../doxygen/classtvm_1_1arith_1_1ModularSet.html   |   14 +-
 ...lasstvm_1_1arith_1_1ModularSetNode-members.html |   11 +-
 .../classtvm_1_1arith_1_1ModularSetNode.html       |   44 +-
 ...tvm_1_1arith_1_1ModularSetNode__coll__graph.svg |   43 +-
 ..._1_1arith_1_1ModularSetNode__inherit__graph.svg |   43 +-
 ...lasstvm_1_1arith_1_1ModularSet__coll__graph.svg |   36 +-
 ...stvm_1_1arith_1_1ModularSet__inherit__graph.svg |   36 +-
 ...vm_1_1instrument_1_1PassInstrument-members.html |    2 +-
 .../classtvm_1_1instrument_1_1PassInstrument.html  |   10 +-
 ..._1instrument_1_1PassInstrumentNode-members.html |   19 +-
 ...asstvm_1_1instrument_1_1PassInstrumentNode.html |   48 +-
 ...strument_1_1PassInstrumentNode__coll__graph.svg |   35 +-
 ...ument_1_1PassInstrumentNode__inherit__graph.svg |   35 +-
 ..._1instrument_1_1PassInstrument__coll__graph.svg |    4 +-
 ...nstrument_1_1PassInstrument__inherit__graph.svg |    4 +-
 ...sstvm_1_1meta__schedule_1_1ArgInfo-members.html |    2 +-
 .../classtvm_1_1meta__schedule_1_1ArgInfo.html     |   14 +-
 ...m_1_1meta__schedule_1_1ArgInfoNode-members.html |    7 +-
 .../classtvm_1_1meta__schedule_1_1ArgInfoNode.html |   49 +-
 ...1meta__schedule_1_1ArgInfoNode__coll__graph.svg |   34 +-
 ...ta__schedule_1_1ArgInfoNode__inherit__graph.svg |   67 +-
 ...m_1_1meta__schedule_1_1ArgInfo__coll__graph.svg |   41 +-
 ..._1meta__schedule_1_1ArgInfo__inherit__graph.svg |   67 +-
 ...sstvm_1_1meta__schedule_1_1Builder-members.html |    2 +-
 .../classtvm_1_1meta__schedule_1_1Builder.html     |   14 +-
 ..._1_1meta__schedule_1_1BuilderInput-members.html |    2 +-
 ...classtvm_1_1meta__schedule_1_1BuilderInput.html |   14 +-
 ...meta__schedule_1_1BuilderInputNode-members.html |   11 +-
 ...stvm_1_1meta__schedule_1_1BuilderInputNode.html |   48 +-
 ...__schedule_1_1BuilderInputNode__coll__graph.svg |  125 +-
 ...chedule_1_1BuilderInputNode__inherit__graph.svg |   45 +-
 ...meta__schedule_1_1BuilderInput__coll__graph.svg |   36 +-
 ...a__schedule_1_1BuilderInput__inherit__graph.svg |   36 +-
 ...m_1_1meta__schedule_1_1BuilderNode-members.html |    4 +-
 .../classtvm_1_1meta__schedule_1_1BuilderNode.html |   30 +-
 ...1meta__schedule_1_1BuilderNode__coll__graph.svg |   34 +-
 ...ta__schedule_1_1BuilderNode__inherit__graph.svg |   65 +-
 ...1_1meta__schedule_1_1BuilderResult-members.html |    2 +-
 ...lasstvm_1_1meta__schedule_1_1BuilderResult.html |   14 +-
 ...eta__schedule_1_1BuilderResultNode-members.html |    9 +-
 ...tvm_1_1meta__schedule_1_1BuilderResultNode.html |   48 +-
 ..._schedule_1_1BuilderResultNode__coll__graph.svg |   43 +-
 ...hedule_1_1BuilderResultNode__inherit__graph.svg |   43 +-
 ...eta__schedule_1_1BuilderResult__coll__graph.svg |   36 +-
 ...__schedule_1_1BuilderResult__inherit__graph.svg |   36 +-
 ...m_1_1meta__schedule_1_1Builder__coll__graph.svg |   43 +-
 ..._1meta__schedule_1_1Builder__inherit__graph.svg |   43 +-
 ...tvm_1_1meta__schedule_1_1CostModel-members.html |    2 +-
 .../classtvm_1_1meta__schedule_1_1CostModel.html   |   14 +-
 ...1_1meta__schedule_1_1CostModelNode-members.html |    4 +-
 ...lasstvm_1_1meta__schedule_1_1CostModelNode.html |   30 +-
 ...eta__schedule_1_1CostModelNode__coll__graph.svg |   34 +-
 ...__schedule_1_1CostModelNode__inherit__graph.svg |   79 +-
 ...1_1meta__schedule_1_1CostModel__coll__graph.svg |   36 +-
 ...meta__schedule_1_1CostModel__inherit__graph.svg |   36 +-
 ...stvm_1_1meta__schedule_1_1Database-members.html |    2 +-
 .../classtvm_1_1meta__schedule_1_1Database.html    |   14 +-
 ..._1_1meta__schedule_1_1DatabaseNode-members.html |    4 +-
 ...classtvm_1_1meta__schedule_1_1DatabaseNode.html |   30 +-
 ...meta__schedule_1_1DatabaseNode__coll__graph.svg |   34 +-
 ...a__schedule_1_1DatabaseNode__inherit__graph.svg |   82 +-
 ..._1_1meta__schedule_1_1Database__coll__graph.svg |   47 +-
 ...1meta__schedule_1_1Database__inherit__graph.svg |   47 +-
 ...1_1meta__schedule_1_1ExtractedTask-members.html |    2 +-
 ...lasstvm_1_1meta__schedule_1_1ExtractedTask.html |   14 +-
 ...eta__schedule_1_1ExtractedTaskNode-members.html |    4 +-
 ...tvm_1_1meta__schedule_1_1ExtractedTaskNode.html |   30 +-
 ..._schedule_1_1ExtractedTaskNode__coll__graph.svg |   82 +-
 ...hedule_1_1ExtractedTaskNode__inherit__graph.svg |   36 +-
 ...eta__schedule_1_1ExtractedTask__coll__graph.svg |   43 +-
 ...__schedule_1_1ExtractedTask__inherit__graph.svg |   43 +-
 ...meta__schedule_1_1FeatureExtractor-members.html |    2 +-
 ...stvm_1_1meta__schedule_1_1FeatureExtractor.html |   14 +-
 ...__schedule_1_1FeatureExtractorNode-members.html |    9 +-
 ..._1_1meta__schedule_1_1FeatureExtractorNode.html |   49 +-
 ...hedule_1_1FeatureExtractorNode__coll__graph.svg |   34 +-
 ...ule_1_1FeatureExtractorNode__inherit__graph.svg |   69 +-
 ...__schedule_1_1FeatureExtractor__coll__graph.svg |   36 +-
 ...chedule_1_1FeatureExtractor__inherit__graph.svg |   36 +-
 ...1meta__schedule_1_1MeasureCallback-members.html |    2 +-
 ...sstvm_1_1meta__schedule_1_1MeasureCallback.html |   14 +-
 ...a__schedule_1_1MeasureCallbackNode-members.html |    4 +-
 ...m_1_1meta__schedule_1_1MeasureCallbackNode.html |   30 +-
 ...chedule_1_1MeasureCallbackNode__coll__graph.svg |   34 +-
 ...dule_1_1MeasureCallbackNode__inherit__graph.svg |   69 +-
 ...a__schedule_1_1MeasureCallback__coll__graph.svg |   36 +-
 ...schedule_1_1MeasureCallback__inherit__graph.svg |   36 +-
 ...meta__schedule_1_1MeasureCandidate-members.html |    2 +-
 ...stvm_1_1meta__schedule_1_1MeasureCandidate.html |   14 +-
 ...__schedule_1_1MeasureCandidateNode-members.html |    9 +-
 ..._1_1meta__schedule_1_1MeasureCandidateNode.html |   48 +-
 ...hedule_1_1MeasureCandidateNode__coll__graph.svg |   81 +-
 ...ule_1_1MeasureCandidateNode__inherit__graph.svg |   43 +-
 ...__schedule_1_1MeasureCandidate__coll__graph.svg |   36 +-
 ...chedule_1_1MeasureCandidate__inherit__graph.svg |   36 +-
 ...sstvm_1_1meta__schedule_1_1Mutator-members.html |    2 +-
 .../classtvm_1_1meta__schedule_1_1Mutator.html     |   14 +-
 ...m_1_1meta__schedule_1_1MutatorNode-members.html |    4 +-
 .../classtvm_1_1meta__schedule_1_1MutatorNode.html |   30 +-
 ...1meta__schedule_1_1MutatorNode__coll__graph.svg |   34 +-
 ...ta__schedule_1_1MutatorNode__inherit__graph.svg |   79 +-
 ...m_1_1meta__schedule_1_1Mutator__coll__graph.svg |   36 +-
 ..._1meta__schedule_1_1Mutator__inherit__graph.svg |   36 +-
 ...stvm_1_1meta__schedule_1_1Postproc-members.html |    2 +-
 .../classtvm_1_1meta__schedule_1_1Postproc.html    |   10 +-
 ..._1_1meta__schedule_1_1PostprocNode-members.html |    4 +-
 ...classtvm_1_1meta__schedule_1_1PostprocNode.html |   30 +-
 ...meta__schedule_1_1PostprocNode__coll__graph.svg |   34 +-
 ...a__schedule_1_1PostprocNode__inherit__graph.svg |   79 +-
 ..._1_1meta__schedule_1_1Postproc__coll__graph.svg |    4 +-
 ...1meta__schedule_1_1Postproc__inherit__graph.svg |    4 +-
 ...stvm_1_1meta__schedule_1_1Profiler-members.html |    2 +-
 .../classtvm_1_1meta__schedule_1_1Profiler.html    |   14 +-
 ..._1_1meta__schedule_1_1ProfilerNode-members.html |    4 +-
 ...classtvm_1_1meta__schedule_1_1ProfilerNode.html |   30 +-
 ...meta__schedule_1_1ProfilerNode__coll__graph.svg |   54 +-
 ...a__schedule_1_1ProfilerNode__inherit__graph.svg |   36 +-
 ..._1_1meta__schedule_1_1Profiler__coll__graph.svg |   43 +-
 ...1meta__schedule_1_1Profiler__inherit__graph.svg |   43 +-
 ...1_1meta__schedule_1_1PyBuilderNode-members.html |    6 +-
 ...lasstvm_1_1meta__schedule_1_1PyBuilderNode.html |   58 +-
 ...eta__schedule_1_1PyBuilderNode__coll__graph.svg |   65 +-
 ...__schedule_1_1PyBuilderNode__inherit__graph.svg |   65 +-
 ...1meta__schedule_1_1PyCostModelNode-members.html |    6 +-
 ...sstvm_1_1meta__schedule_1_1PyCostModelNode.html |   57 +-
 ...a__schedule_1_1PyCostModelNode__coll__graph.svg |   79 +-
 ...schedule_1_1PyCostModelNode__inherit__graph.svg |   79 +-
 ..._1meta__schedule_1_1PyDatabaseNode-members.html |    6 +-
 ...asstvm_1_1meta__schedule_1_1PyDatabaseNode.html |   38 +-
 ...ta__schedule_1_1PyDatabaseNode__coll__graph.svg |   82 +-
 ..._schedule_1_1PyDatabaseNode__inherit__graph.svg |   82 +-
 ...schedule_1_1PyFeatureExtractorNode-members.html |   19 +-
 ..._1meta__schedule_1_1PyFeatureExtractorNode.html |   55 +-
 ...dule_1_1PyFeatureExtractorNode__coll__graph.svg |   69 +-
 ...e_1_1PyFeatureExtractorNode__inherit__graph.svg |   69 +-
 ..._schedule_1_1PyMeasureCallbackNode-members.html |    6 +-
 ...1_1meta__schedule_1_1PyMeasureCallbackNode.html |   57 +-
 ...edule_1_1PyMeasureCallbackNode__coll__graph.svg |   69 +-
 ...le_1_1PyMeasureCallbackNode__inherit__graph.svg |   69 +-
 ...1_1meta__schedule_1_1PyMutatorNode-members.html |    6 +-
 ...lasstvm_1_1meta__schedule_1_1PyMutatorNode.html |   57 +-
 ...eta__schedule_1_1PyMutatorNode__coll__graph.svg |   79 +-
 ...__schedule_1_1PyMutatorNode__inherit__graph.svg |   79 +-
 ..._1meta__schedule_1_1PyPostprocNode-members.html |    6 +-
 ...asstvm_1_1meta__schedule_1_1PyPostprocNode.html |   57 +-
 ...ta__schedule_1_1PyPostprocNode__coll__graph.svg |   79 +-
 ..._schedule_1_1PyPostprocNode__inherit__graph.svg |   79 +-
 ..._1_1meta__schedule_1_1PyRunnerNode-members.html |    6 +-
 ...classtvm_1_1meta__schedule_1_1PyRunnerNode.html |   58 +-
 ...meta__schedule_1_1PyRunnerNode__coll__graph.svg |   65 +-
 ...a__schedule_1_1PyRunnerNode__inherit__graph.svg |   65 +-
 ...ta__schedule_1_1PyScheduleRuleNode-members.html |    6 +-
 ...vm_1_1meta__schedule_1_1PyScheduleRuleNode.html |   57 +-
 ...schedule_1_1PyScheduleRuleNode__coll__graph.svg |   79 +-
 ...edule_1_1PyScheduleRuleNode__inherit__graph.svg |   79 +-
 ...__schedule_1_1PySearchStrategyNode-members.html |    6 +-
 ..._1_1meta__schedule_1_1PySearchStrategyNode.html |   57 +-
 ...hedule_1_1PySearchStrategyNode__coll__graph.svg |   87 +-
 ...ule_1_1PySearchStrategyNode__inherit__graph.svg |   87 +-
 ...__schedule_1_1PySpaceGeneratorNode-members.html |    6 +-
 ..._1_1meta__schedule_1_1PySpaceGeneratorNode.html |   57 +-
 ...hedule_1_1PySpaceGeneratorNode__coll__graph.svg |   83 +-
 ...ule_1_1PySpaceGeneratorNode__inherit__graph.svg |   83 +-
 ...a__schedule_1_1PyTaskSchedulerNode-members.html |    6 +-
 ...m_1_1meta__schedule_1_1PyTaskSchedulerNode.html |   57 +-
 ...chedule_1_1PyTaskSchedulerNode__coll__graph.svg |  109 +-
 ...dule_1_1PyTaskSchedulerNode__inherit__graph.svg |   93 +-
 ...asstvm_1_1meta__schedule_1_1Runner-members.html |    2 +-
 .../classtvm_1_1meta__schedule_1_1Runner.html      |   14 +-
 ..._1_1meta__schedule_1_1RunnerFuture-members.html |    2 +-
 ...classtvm_1_1meta__schedule_1_1RunnerFuture.html |   14 +-
 ...meta__schedule_1_1RunnerFutureNode-members.html |   17 +-
 ...stvm_1_1meta__schedule_1_1RunnerFutureNode.html |   48 +-
 ...__schedule_1_1RunnerFutureNode__coll__graph.svg |   43 +-
 ...chedule_1_1RunnerFutureNode__inherit__graph.svg |   43 +-
 ...meta__schedule_1_1RunnerFuture__coll__graph.svg |   43 +-
 ...a__schedule_1_1RunnerFuture__inherit__graph.svg |   43 +-
 ...m_1_1meta__schedule_1_1RunnerInput-members.html |    2 +-
 .../classtvm_1_1meta__schedule_1_1RunnerInput.html |   14 +-
 ...1meta__schedule_1_1RunnerInputNode-members.html |   11 +-
 ...sstvm_1_1meta__schedule_1_1RunnerInputNode.html |   48 +-
 ...a__schedule_1_1RunnerInputNode__coll__graph.svg |   45 +-
 ...schedule_1_1RunnerInputNode__inherit__graph.svg |   45 +-
 ...1meta__schedule_1_1RunnerInput__coll__graph.svg |   36 +-
 ...ta__schedule_1_1RunnerInput__inherit__graph.svg |   36 +-
 ...vm_1_1meta__schedule_1_1RunnerNode-members.html |    4 +-
 .../classtvm_1_1meta__schedule_1_1RunnerNode.html  |   30 +-
 ..._1meta__schedule_1_1RunnerNode__coll__graph.svg |   34 +-
 ...eta__schedule_1_1RunnerNode__inherit__graph.svg |   65 +-
 ..._1_1meta__schedule_1_1RunnerResult-members.html |    2 +-
 ...classtvm_1_1meta__schedule_1_1RunnerResult.html |   14 +-
 ...meta__schedule_1_1RunnerResultNode-members.html |    9 +-
 ...stvm_1_1meta__schedule_1_1RunnerResultNode.html |   48 +-
 ...__schedule_1_1RunnerResultNode__coll__graph.svg |   43 +-
 ...chedule_1_1RunnerResultNode__inherit__graph.svg |   43 +-
 ...meta__schedule_1_1RunnerResult__coll__graph.svg |   36 +-
 ...a__schedule_1_1RunnerResult__inherit__graph.svg |   36 +-
 ...vm_1_1meta__schedule_1_1Runner__coll__graph.svg |   43 +-
 ...1_1meta__schedule_1_1Runner__inherit__graph.svg |   43 +-
 ..._1_1meta__schedule_1_1ScheduleRule-members.html |    2 +-
 ...classtvm_1_1meta__schedule_1_1ScheduleRule.html |   10 +-
 ...meta__schedule_1_1ScheduleRuleNode-members.html |    4 +-
 ...stvm_1_1meta__schedule_1_1ScheduleRuleNode.html |   30 +-
 ...__schedule_1_1ScheduleRuleNode__coll__graph.svg |   34 +-
 ...chedule_1_1ScheduleRuleNode__inherit__graph.svg |   79 +-
 ...meta__schedule_1_1ScheduleRule__coll__graph.svg |    4 +-
 ...a__schedule_1_1ScheduleRule__inherit__graph.svg |    4 +-
 ..._1meta__schedule_1_1SearchStrategy-members.html |    2 +-
 ...asstvm_1_1meta__schedule_1_1SearchStrategy.html |   14 +-
 ...ta__schedule_1_1SearchStrategyNode-members.html |    4 +-
 ...vm_1_1meta__schedule_1_1SearchStrategyNode.html |   28 +-
 ...schedule_1_1SearchStrategyNode__coll__graph.svg |    4 +-
 ...edule_1_1SearchStrategyNode__inherit__graph.svg |   87 +-
 ...ta__schedule_1_1SearchStrategy__coll__graph.svg |   36 +-
 ..._schedule_1_1SearchStrategy__inherit__graph.svg |   36 +-
 ..._1meta__schedule_1_1SpaceGenerator-members.html |    2 +-
 ...asstvm_1_1meta__schedule_1_1SpaceGenerator.html |   14 +-
 ...ta__schedule_1_1SpaceGeneratorNode-members.html |    4 +-
 ...vm_1_1meta__schedule_1_1SpaceGeneratorNode.html |   30 +-
 ...schedule_1_1SpaceGeneratorNode__coll__graph.svg |   34 +-
 ...edule_1_1SpaceGeneratorNode__inherit__graph.svg |   83 +-
 ...ta__schedule_1_1SpaceGenerator__coll__graph.svg |   43 +-
 ..._schedule_1_1SpaceGenerator__inherit__graph.svg |   43 +-
 ...vm_1_1meta__schedule_1_1TaskRecord-members.html |    2 +-
 .../classtvm_1_1meta__schedule_1_1TaskRecord.html  |   14 +-
 ..._1meta__schedule_1_1TaskRecordNode-members.html |    4 +-
 ...asstvm_1_1meta__schedule_1_1TaskRecordNode.html |   30 +-
 ...ta__schedule_1_1TaskRecordNode__coll__graph.svg |   81 +-
 ..._schedule_1_1TaskRecordNode__inherit__graph.svg |   36 +-
 ..._1meta__schedule_1_1TaskRecord__coll__graph.svg |   43 +-
 ...eta__schedule_1_1TaskRecord__inherit__graph.svg |   43 +-
 ...1_1meta__schedule_1_1TaskScheduler-members.html |    2 +-
 ...lasstvm_1_1meta__schedule_1_1TaskScheduler.html |   14 +-
 ...eta__schedule_1_1TaskSchedulerNode-members.html |    4 +-
 ...tvm_1_1meta__schedule_1_1TaskSchedulerNode.html |   30 +-
 ..._schedule_1_1TaskSchedulerNode__coll__graph.svg |   52 +-
 ...hedule_1_1TaskSchedulerNode__inherit__graph.svg |   93 +-
 ...eta__schedule_1_1TaskScheduler__coll__graph.svg |   43 +-
 ...__schedule_1_1TaskScheduler__inherit__graph.svg |   43 +-
 ...vm_1_1meta__schedule_1_1TensorInfo-members.html |    4 +-
 .../classtvm_1_1meta__schedule_1_1TensorInfo.html  |   18 +-
 ..._1meta__schedule_1_1TensorInfoNode-members.html |   15 +-
 ...asstvm_1_1meta__schedule_1_1TensorInfoNode.html |   55 +-
 ...ta__schedule_1_1TensorInfoNode__coll__graph.svg |  131 +-
 ..._schedule_1_1TensorInfoNode__inherit__graph.svg |   67 +-
 ..._1meta__schedule_1_1TensorInfo__coll__graph.svg |   67 +-
 ...eta__schedule_1_1TensorInfo__inherit__graph.svg |   67 +-
 ...m_1_1meta__schedule_1_1TuneContext-members.html |    2 +-
 .../classtvm_1_1meta__schedule_1_1TuneContext.html |   14 +-
 ...1meta__schedule_1_1TuneContextNode-members.html |    4 +-
 ...sstvm_1_1meta__schedule_1_1TuneContextNode.html |   30 +-
 ...a__schedule_1_1TuneContextNode__coll__graph.svg |   54 +-
 ...schedule_1_1TuneContextNode__inherit__graph.svg |   36 +-
 ...1meta__schedule_1_1TuneContext__coll__graph.svg |   43 +-
 ...ta__schedule_1_1TuneContext__inherit__graph.svg |   43 +-
 ..._1_1meta__schedule_1_1TuningRecord-members.html |    2 +-
 ...classtvm_1_1meta__schedule_1_1TuningRecord.html |   14 +-
 ...meta__schedule_1_1TuningRecordNode-members.html |   21 +-
 ...stvm_1_1meta__schedule_1_1TuningRecordNode.html |   48 +-
 ...__schedule_1_1TuningRecordNode__coll__graph.svg |  126 +-
 ...chedule_1_1TuningRecordNode__inherit__graph.svg |   49 +-
 ...meta__schedule_1_1TuningRecord__coll__graph.svg |   36 +-
 ...a__schedule_1_1TuningRecord__inherit__graph.svg |   36 +-
 ...stvm_1_1meta__schedule_1_1Workload-members.html |    2 +-
 .../classtvm_1_1meta__schedule_1_1Workload.html    |   14 +-
 ..._1_1meta__schedule_1_1WorkloadNode-members.html |   13 +-
 ...classtvm_1_1meta__schedule_1_1WorkloadNode.html |   48 +-
 ...meta__schedule_1_1WorkloadNode__coll__graph.svg |   91 +-
 ...a__schedule_1_1WorkloadNode__inherit__graph.svg |   43 +-
 ..._1_1meta__schedule_1_1Workload__coll__graph.svg |   36 +-
 ...1meta__schedule_1_1Workload__inherit__graph.svg |   36 +-
 .../classtvm_1_1relax_1_1AndPattern-members.html   |    4 +-
 .../doxygen/classtvm_1_1relax_1_1AndPattern.html   |   18 +-
 ...lasstvm_1_1relax_1_1AndPatternNode-members.html |   11 +-
 .../classtvm_1_1relax_1_1AndPatternNode.html       |   55 +-
 ...tvm_1_1relax_1_1AndPatternNode__coll__graph.svg |  121 +-
 ..._1_1relax_1_1AndPatternNode__inherit__graph.svg |   60 +-
 ...lasstvm_1_1relax_1_1AndPattern__coll__graph.svg |   54 +-
 ...stvm_1_1relax_1_1AndPattern__inherit__graph.svg |   54 +-
 .../classtvm_1_1relax_1_1AttrPattern-members.html  |    4 +-
 .../doxygen/classtvm_1_1relax_1_1AttrPattern.html  |   18 +-
 ...asstvm_1_1relax_1_1AttrPatternNode-members.html |   11 +-
 .../classtvm_1_1relax_1_1AttrPatternNode.html      |   55 +-
 ...vm_1_1relax_1_1AttrPatternNode__coll__graph.svg |  177 +-
 ...1_1relax_1_1AttrPatternNode__inherit__graph.svg |   60 +-
 ...asstvm_1_1relax_1_1AttrPattern__coll__graph.svg |   54 +-
 ...tvm_1_1relax_1_1AttrPattern__inherit__graph.svg |   54 +-
 .../api/doxygen/classtvm_1_1relax_1_1Binding.html  |    2 +-
 .../classtvm_1_1relax_1_1BindingBlock-members.html |    2 +-
 .../doxygen/classtvm_1_1relax_1_1BindingBlock.html |   14 +-
 ...sstvm_1_1relax_1_1BindingBlockNode-members.html |   11 +-
 .../classtvm_1_1relax_1_1BindingBlockNode.html     |   44 +-
 ...m_1_1relax_1_1BindingBlockNode__coll__graph.svg |   79 +-
 ..._1relax_1_1BindingBlockNode__inherit__graph.svg |   63 +-
 ...sstvm_1_1relax_1_1BindingBlock__coll__graph.svg |   36 +-
 ...vm_1_1relax_1_1BindingBlock__inherit__graph.svg |   54 +-
 .../classtvm_1_1relax_1_1BindingNode-members.html  |   11 +-
 .../doxygen/classtvm_1_1relax_1_1BindingNode.html  |   44 +-
 ...asstvm_1_1relax_1_1BindingNode__coll__graph.svg |  165 +-
 ...tvm_1_1relax_1_1BindingNode__inherit__graph.svg |   91 +-
 ...lasstvm_1_1relax_1_1Binding__inherit__graph.svg |   88 +-
 .../classtvm_1_1relax_1_1BlockBuilder-members.html |    2 +-
 .../doxygen/classtvm_1_1relax_1_1BlockBuilder.html |   14 +-
 ...sstvm_1_1relax_1_1BlockBuilderNode-members.html |    4 +-
 .../classtvm_1_1relax_1_1BlockBuilderNode.html     |   26 +-
 ...m_1_1relax_1_1BlockBuilderNode__coll__graph.svg |    2 +-
 ..._1relax_1_1BlockBuilderNode__inherit__graph.svg |    2 +-
 ...sstvm_1_1relax_1_1BlockBuilder__coll__graph.svg |   36 +-
 ...vm_1_1relax_1_1BlockBuilder__inherit__graph.svg |   36 +-
 .../doxygen/classtvm_1_1relax_1_1Call-members.html |    6 +-
 .../api/doxygen/classtvm_1_1relax_1_1Call.html     |   22 +-
 .../classtvm_1_1relax_1_1CallNode-members.html     |   23 +-
 .../api/doxygen/classtvm_1_1relax_1_1CallNode.html |   61 +-
 .../classtvm_1_1relax_1_1CallNode__coll__graph.svg |  195 +-
 ...asstvm_1_1relax_1_1CallNode__inherit__graph.svg |   93 +-
 .../classtvm_1_1relax_1_1CallPattern-members.html  |    4 +-
 .../doxygen/classtvm_1_1relax_1_1CallPattern.html  |   18 +-
 ...asstvm_1_1relax_1_1CallPatternNode-members.html |   13 +-
 .../classtvm_1_1relax_1_1CallPatternNode.html      |   55 +-
 ...vm_1_1relax_1_1CallPatternNode__coll__graph.svg |  124 +-
 ...1_1relax_1_1CallPatternNode__inherit__graph.svg |   62 +-
 ...asstvm_1_1relax_1_1CallPattern__coll__graph.svg |   54 +-
 ...tvm_1_1relax_1_1CallPattern__inherit__graph.svg |   54 +-
 .../classtvm_1_1relax_1_1Call__coll__graph.svg     |   72 +-
 .../classtvm_1_1relax_1_1Call__inherit__graph.svg  |   72 +-
 .../classtvm_1_1relax_1_1Constant-members.html     |    8 +-
 .../api/doxygen/classtvm_1_1relax_1_1Constant.html |   26 +-
 .../classtvm_1_1relax_1_1ConstantNode-members.html |   23 +-
 .../doxygen/classtvm_1_1relax_1_1ConstantNode.html |   67 +-
 ...sstvm_1_1relax_1_1ConstantNode__coll__graph.svg |  207 +-
 ...vm_1_1relax_1_1ConstantNode__inherit__graph.svg |  106 +-
 ...asstvm_1_1relax_1_1ConstantPattern-members.html |    4 +-
 .../classtvm_1_1relax_1_1ConstantPattern.html      |   18 +-
 ...vm_1_1relax_1_1ConstantPatternNode-members.html |    7 +-
 .../classtvm_1_1relax_1_1ConstantPatternNode.html  |   56 +-
 ..._1relax_1_1ConstantPatternNode__coll__graph.svg |   49 +-
 ...elax_1_1ConstantPatternNode__inherit__graph.svg |   49 +-
 ...vm_1_1relax_1_1ConstantPattern__coll__graph.svg |   54 +-
 ...1_1relax_1_1ConstantPattern__inherit__graph.svg |   54 +-
 .../classtvm_1_1relax_1_1Constant__coll__graph.svg |   90 +-
 ...asstvm_1_1relax_1_1Constant__inherit__graph.svg |   90 +-
 .../classtvm_1_1relax_1_1DFConstraint-members.html |    2 +-
 .../doxygen/classtvm_1_1relax_1_1DFConstraint.html |   12 +-
 ...sstvm_1_1relax_1_1DFConstraintNode-members.html |    7 +-
 .../classtvm_1_1relax_1_1DFConstraintNode.html     |   44 +-
 ...m_1_1relax_1_1DFConstraintNode__coll__graph.svg |   35 +-
 ..._1relax_1_1DFConstraintNode__inherit__graph.svg |   60 +-
 ...sstvm_1_1relax_1_1DFConstraint__coll__graph.svg |   36 +-
 ...vm_1_1relax_1_1DFConstraint__inherit__graph.svg |   14 +-
 .../classtvm_1_1relax_1_1DFPattern-members.html    |    2 +-
 .../doxygen/classtvm_1_1relax_1_1DFPattern.html    |   14 +-
 ...classtvm_1_1relax_1_1DFPatternNode-members.html |    3 +-
 .../classtvm_1_1relax_1_1DFPatternNode.html        |   44 +-
 ...stvm_1_1relax_1_1DFPatternNode__coll__graph.svg |   35 +-
 ...m_1_1relax_1_1DFPatternNode__inherit__graph.svg |  481 ++-
 ...classtvm_1_1relax_1_1DFPattern__coll__graph.svg |   36 +-
 ...sstvm_1_1relax_1_1DFPattern__inherit__graph.svg |  464 +--
 .../classtvm_1_1relax_1_1DataTypeImm-members.html  |    8 +-
 .../doxygen/classtvm_1_1relax_1_1DataTypeImm.html  |   26 +-
 ...asstvm_1_1relax_1_1DataTypeImmNode-members.html |   19 +-
 .../classtvm_1_1relax_1_1DataTypeImmNode.html      |   67 +-
 ...vm_1_1relax_1_1DataTypeImmNode__coll__graph.svg |  201 +-
 ...1_1relax_1_1DataTypeImmNode__inherit__graph.svg |  106 +-
 ...asstvm_1_1relax_1_1DataTypeImm__coll__graph.svg |   90 +-
 ...tvm_1_1relax_1_1DataTypeImm__inherit__graph.svg |   90 +-
 ...asstvm_1_1relax_1_1DataTypePattern-members.html |    4 +-
 .../classtvm_1_1relax_1_1DataTypePattern.html      |   18 +-
 ...vm_1_1relax_1_1DataTypePatternNode-members.html |   11 +-
 .../classtvm_1_1relax_1_1DataTypePatternNode.html  |   55 +-
 ..._1relax_1_1DataTypePatternNode__coll__graph.svg |  181 +-
 ...elax_1_1DataTypePatternNode__inherit__graph.svg |   58 +-
 ...vm_1_1relax_1_1DataTypePattern__coll__graph.svg |   54 +-
 ...1_1relax_1_1DataTypePattern__inherit__graph.svg |   54 +-
 ...classtvm_1_1relax_1_1DataflowBlock-members.html |    4 +-
 .../classtvm_1_1relax_1_1DataflowBlock.html        |   18 +-
 ...stvm_1_1relax_1_1DataflowBlockNode-members.html |   13 +-
 .../classtvm_1_1relax_1_1DataflowBlockNode.html    |   61 +-
 ..._1_1relax_1_1DataflowBlockNode__coll__graph.svg |  101 +-
 ...1relax_1_1DataflowBlockNode__inherit__graph.svg |   63 +-
 ...m_1_1relax_1_1DataflowBlockRewrite-members.html |    2 +-
 .../classtvm_1_1relax_1_1DataflowBlockRewrite.html |   14 +-
 ...1relax_1_1DataflowBlockRewriteNode-members.html |   35 +-
 ...sstvm_1_1relax_1_1DataflowBlockRewriteNode.html |   48 +-
 ...ax_1_1DataflowBlockRewriteNode__coll__graph.svg |  413 ++-
 ...1_1DataflowBlockRewriteNode__inherit__graph.svg |   39 +-
 ...1relax_1_1DataflowBlockRewrite__coll__graph.svg |   36 +-
 ...lax_1_1DataflowBlockRewrite__inherit__graph.svg |   36 +-
 ...stvm_1_1relax_1_1DataflowBlock__coll__graph.svg |   54 +-
 ...m_1_1relax_1_1DataflowBlock__inherit__graph.svg |   54 +-
 .../classtvm_1_1relax_1_1DataflowVar-members.html  |   10 +-
 .../doxygen/classtvm_1_1relax_1_1DataflowVar.html  |   30 +-
 ...asstvm_1_1relax_1_1DataflowVarNode-members.html |   27 +-
 .../classtvm_1_1relax_1_1DataflowVarNode.html      |   68 +-
 ...vm_1_1relax_1_1DataflowVarNode__coll__graph.svg |  201 +-
 ...1_1relax_1_1DataflowVarNode__inherit__graph.svg |  137 +-
 ...tvm_1_1relax_1_1DataflowVarPattern-members.html |    4 +-
 .../classtvm_1_1relax_1_1DataflowVarPattern.html   |   14 +-
 ...1_1relax_1_1DataflowVarPatternNode-members.html |   13 +-
 ...lasstvm_1_1relax_1_1DataflowVarPatternNode.html |   71 +-
 ...elax_1_1DataflowVarPatternNode__coll__graph.svg |   74 +-
 ...x_1_1DataflowVarPatternNode__inherit__graph.svg |   74 +-
 ...1_1relax_1_1DataflowVarPattern__coll__graph.svg |   40 +-
 ...relax_1_1DataflowVarPattern__inherit__graph.svg |   40 +-
 ...asstvm_1_1relax_1_1DataflowVar__coll__graph.svg |  108 +-
 ...tvm_1_1relax_1_1DataflowVar__inherit__graph.svg |  108 +-
 .../classtvm_1_1relax_1_1ExecBuilder-members.html  |    2 +-
 .../doxygen/classtvm_1_1relax_1_1ExecBuilder.html  |   14 +-
 ...asstvm_1_1relax_1_1ExecBuilderNode-members.html |    4 +-
 .../classtvm_1_1relax_1_1ExecBuilderNode.html      |   30 +-
 ...vm_1_1relax_1_1ExecBuilderNode__coll__graph.svg |   36 +-
 ...1_1relax_1_1ExecBuilderNode__inherit__graph.svg |   36 +-
 ...asstvm_1_1relax_1_1ExecBuilder__coll__graph.svg |   36 +-
 ...tvm_1_1relax_1_1ExecBuilder__inherit__graph.svg |   36 +-
 .../doxygen/classtvm_1_1relax_1_1ExprMutator.html  |    2 +-
 ...asstvm_1_1relax_1_1ExprMutator__coll__graph.svg |   94 +-
 .../classtvm_1_1relax_1_1ExprPattern-members.html  |    4 +-
 .../doxygen/classtvm_1_1relax_1_1ExprPattern.html  |   18 +-
 ...asstvm_1_1relax_1_1ExprPatternNode-members.html |    9 +-
 .../classtvm_1_1relax_1_1ExprPatternNode.html      |   55 +-
 ...vm_1_1relax_1_1ExprPatternNode__coll__graph.svg |  109 +-
 ...1_1relax_1_1ExprPatternNode__inherit__graph.svg |   58 +-
 ...asstvm_1_1relax_1_1ExprPattern__coll__graph.svg |   54 +-
 ...tvm_1_1relax_1_1ExprPattern__inherit__graph.svg |   54 +-
 .../classtvm_1_1relax_1_1ExternFunc-members.html   |    8 +-
 .../doxygen/classtvm_1_1relax_1_1ExternFunc.html   |   26 +-
 ...lasstvm_1_1relax_1_1ExternFuncNode-members.html |   29 +-
 .../classtvm_1_1relax_1_1ExternFuncNode.html       |   67 +-
 ...tvm_1_1relax_1_1ExternFuncNode__coll__graph.svg |  214 +-
 ..._1_1relax_1_1ExternFuncNode__inherit__graph.svg |  118 +-
 ...stvm_1_1relax_1_1ExternFuncPattern-members.html |    4 +-
 .../classtvm_1_1relax_1_1ExternFuncPattern.html    |   14 +-
 ..._1_1relax_1_1ExternFuncPatternNode-members.html |   11 +-
 ...classtvm_1_1relax_1_1ExternFuncPatternNode.html |   55 +-
 ...relax_1_1ExternFuncPatternNode__coll__graph.svg |   56 +-
 ...ax_1_1ExternFuncPatternNode__inherit__graph.svg |   56 +-
 ..._1_1relax_1_1ExternFuncPattern__coll__graph.svg |   40 +-
 ...1relax_1_1ExternFuncPattern__inherit__graph.svg |   40 +-
 ...lasstvm_1_1relax_1_1ExternFunc__coll__graph.svg |   90 +-
 ...stvm_1_1relax_1_1ExternFunc__inherit__graph.svg |   90 +-
 ...lasstvm_1_1relax_1_1FuncStructInfo-members.html |    4 +-
 .../classtvm_1_1relax_1_1FuncStructInfo.html       |   18 +-
 ...tvm_1_1relax_1_1FuncStructInfoNode-members.html |   21 +-
 .../classtvm_1_1relax_1_1FuncStructInfoNode.html   |   55 +-
 ...1_1relax_1_1FuncStructInfoNode__coll__graph.svg |  134 +-
 ...relax_1_1FuncStructInfoNode__inherit__graph.svg |   70 +-
 ...tvm_1_1relax_1_1FuncStructInfo__coll__graph.svg |   54 +-
 ..._1_1relax_1_1FuncStructInfo__inherit__graph.svg |   54 +-
 .../classtvm_1_1relax_1_1Function-members.html     |    8 +-
 .../api/doxygen/classtvm_1_1relax_1_1Function.html |   26 +-
 .../classtvm_1_1relax_1_1FunctionNode-members.html |   35 +-
 .../doxygen/classtvm_1_1relax_1_1FunctionNode.html |   62 +-
 ...sstvm_1_1relax_1_1FunctionNode__coll__graph.svg |  310 +-
 ...vm_1_1relax_1_1FunctionNode__inherit__graph.svg |  126 +-
 ...asstvm_1_1relax_1_1FunctionPattern-members.html |    4 +-
 .../classtvm_1_1relax_1_1FunctionPattern.html      |   18 +-
 ...vm_1_1relax_1_1FunctionPatternNode-members.html |   11 +-
 .../classtvm_1_1relax_1_1FunctionPatternNode.html  |   55 +-
 ..._1relax_1_1FunctionPatternNode__coll__graph.svg |  122 +-
 ...elax_1_1FunctionPatternNode__inherit__graph.svg |   60 +-
 ...vm_1_1relax_1_1FunctionPattern__coll__graph.svg |   54 +-
 ...1_1relax_1_1FunctionPattern__inherit__graph.svg |   54 +-
 .../classtvm_1_1relax_1_1Function__coll__graph.svg |   90 +-
 ...asstvm_1_1relax_1_1Function__inherit__graph.svg |   90 +-
 ...sstvm_1_1relax_1_1GlobalVarPattern-members.html |    4 +-
 .../classtvm_1_1relax_1_1GlobalVarPattern.html     |   18 +-
 ...m_1_1relax_1_1GlobalVarPatternNode-members.html |   13 +-
 .../classtvm_1_1relax_1_1GlobalVarPatternNode.html |   73 +-
 ...1relax_1_1GlobalVarPatternNode__coll__graph.svg |   74 +-
 ...lax_1_1GlobalVarPatternNode__inherit__graph.svg |   74 +-
 ...m_1_1relax_1_1GlobalVarPattern__coll__graph.svg |   54 +-
 ..._1relax_1_1GlobalVarPattern__inherit__graph.svg |   54 +-
 .../doxygen/classtvm_1_1relax_1_1Id-members.html   |    2 +-
 .../api/doxygen/classtvm_1_1relax_1_1Id.html       |   14 +-
 .../classtvm_1_1relax_1_1IdNode-members.html       |    9 +-
 .../api/doxygen/classtvm_1_1relax_1_1IdNode.html   |   44 +-
 .../classtvm_1_1relax_1_1IdNode__coll__graph.svg   |   41 +-
 ...classtvm_1_1relax_1_1IdNode__inherit__graph.svg |   41 +-
 .../classtvm_1_1relax_1_1Id__coll__graph.svg       |   36 +-
 .../classtvm_1_1relax_1_1Id__inherit__graph.svg    |   36 +-
 .../doxygen/classtvm_1_1relax_1_1If-members.html   |    6 +-
 .../api/doxygen/classtvm_1_1relax_1_1If.html       |   22 +-
 .../classtvm_1_1relax_1_1IfNode-members.html       |   21 +-
 .../api/doxygen/classtvm_1_1relax_1_1IfNode.html   |   56 +-
 .../classtvm_1_1relax_1_1IfNode__coll__graph.svg   |  221 +-
 ...classtvm_1_1relax_1_1IfNode__inherit__graph.svg |   93 +-
 .../classtvm_1_1relax_1_1If__coll__graph.svg       |   72 +-
 .../classtvm_1_1relax_1_1If__inherit__graph.svg    |   72 +-
 .../classtvm_1_1relax_1_1LeafExpr-members.html     |    6 +-
 .../api/doxygen/classtvm_1_1relax_1_1LeafExpr.html |   22 +-
 .../classtvm_1_1relax_1_1LeafExprNode-members.html |   15 +-
 .../doxygen/classtvm_1_1relax_1_1LeafExprNode.html |   56 +-
 ...sstvm_1_1relax_1_1LeafExprNode__coll__graph.svg |  121 +-
 ...vm_1_1relax_1_1LeafExprNode__inherit__graph.svg |  248 +-
 .../classtvm_1_1relax_1_1LeafExpr__coll__graph.svg |   72 +-
 ...asstvm_1_1relax_1_1LeafExpr__inherit__graph.svg |  238 +-
 .../classtvm_1_1relax_1_1MatchCast-members.html    |    2 +-
 .../doxygen/classtvm_1_1relax_1_1MatchCast.html    |   10 +-
 ...classtvm_1_1relax_1_1MatchCastNode-members.html |   17 +-
 .../classtvm_1_1relax_1_1MatchCastNode.html        |   55 +-
 ...stvm_1_1relax_1_1MatchCastNode__coll__graph.svg |  233 +-
 ...m_1_1relax_1_1MatchCastNode__inherit__graph.svg |   66 +-
 ...classtvm_1_1relax_1_1MatchCast__coll__graph.svg |   16 +-
 ...sstvm_1_1relax_1_1MatchCast__inherit__graph.svg |   16 +-
 .../classtvm_1_1relax_1_1MatchResult-members.html  |    2 +-
 .../doxygen/classtvm_1_1relax_1_1MatchResult.html  |   14 +-
 ...asstvm_1_1relax_1_1MatchResultNode-members.html |   11 +-
 .../classtvm_1_1relax_1_1MatchResultNode.html      |   48 +-
 ...vm_1_1relax_1_1MatchResultNode__coll__graph.svg |  137 +-
 ...1_1relax_1_1MatchResultNode__inherit__graph.svg |   43 +-
 ...asstvm_1_1relax_1_1MatchResult__coll__graph.svg |   36 +-
 ...tvm_1_1relax_1_1MatchResult__inherit__graph.svg |   36 +-
 .../classtvm_1_1relax_1_1NotPattern-members.html   |    4 +-
 .../doxygen/classtvm_1_1relax_1_1NotPattern.html   |   18 +-
 ...lasstvm_1_1relax_1_1NotPatternNode-members.html |    9 +-
 .../classtvm_1_1relax_1_1NotPatternNode.html       |   55 +-
 ...tvm_1_1relax_1_1NotPatternNode__coll__graph.svg |  119 +-
 ..._1_1relax_1_1NotPatternNode__inherit__graph.svg |   58 +-
 ...lasstvm_1_1relax_1_1NotPattern__coll__graph.svg |   54 +-
 ...stvm_1_1relax_1_1NotPattern__inherit__graph.svg |   54 +-
 ...sstvm_1_1relax_1_1ObjectStructInfo-members.html |    4 +-
 .../classtvm_1_1relax_1_1ObjectStructInfo.html     |   18 +-
 ...m_1_1relax_1_1ObjectStructInfoNode-members.html |   11 +-
 .../classtvm_1_1relax_1_1ObjectStructInfoNode.html |   65 +-
 ...1relax_1_1ObjectStructInfoNode__coll__graph.svg |  101 +-
 ...lax_1_1ObjectStructInfoNode__inherit__graph.svg |   63 +-
 ...m_1_1relax_1_1ObjectStructInfo__coll__graph.svg |   54 +-
 ..._1relax_1_1ObjectStructInfo__inherit__graph.svg |   54 +-
 .../classtvm_1_1relax_1_1ObjectType-members.html   |    4 +-
 .../doxygen/classtvm_1_1relax_1_1ObjectType.html   |   18 +-
 ...lasstvm_1_1relax_1_1ObjectTypeNode-members.html |   11 +-
 .../classtvm_1_1relax_1_1ObjectTypeNode.html       |   65 +-
 ...tvm_1_1relax_1_1ObjectTypeNode__coll__graph.svg |  101 +-
 ..._1_1relax_1_1ObjectTypeNode__inherit__graph.svg |   63 +-
 ...lasstvm_1_1relax_1_1ObjectType__coll__graph.svg |   54 +-
 ...stvm_1_1relax_1_1ObjectType__inherit__graph.svg |   54 +-
 .../classtvm_1_1relax_1_1OrPattern-members.html    |    4 +-
 .../doxygen/classtvm_1_1relax_1_1OrPattern.html    |   18 +-
 ...classtvm_1_1relax_1_1OrPatternNode-members.html |   11 +-
 .../classtvm_1_1relax_1_1OrPatternNode.html        |   55 +-
 ...stvm_1_1relax_1_1OrPatternNode__coll__graph.svg |  121 +-
 ...m_1_1relax_1_1OrPatternNode__inherit__graph.svg |   60 +-
 ...classtvm_1_1relax_1_1OrPattern__coll__graph.svg |   54 +-
 ...sstvm_1_1relax_1_1OrPattern__inherit__graph.svg |   54 +-
 ...lasstvm_1_1relax_1_1PackedFuncType-members.html |    4 +-
 .../classtvm_1_1relax_1_1PackedFuncType.html       |   18 +-
 ...tvm_1_1relax_1_1PackedFuncTypeNode-members.html |   11 +-
 .../classtvm_1_1relax_1_1PackedFuncTypeNode.html   |   65 +-
 ...1_1relax_1_1PackedFuncTypeNode__coll__graph.svg |   93 +-
 ...relax_1_1PackedFuncTypeNode__inherit__graph.svg |   55 +-
 ...tvm_1_1relax_1_1PackedFuncType__coll__graph.svg |   54 +-
 ..._1_1relax_1_1PackedFuncType__inherit__graph.svg |   54 +-
 ...tvm_1_1relax_1_1PatternContextNode-members.html |   17 +-
 .../classtvm_1_1relax_1_1PatternContextNode.html   |   48 +-
 ...1_1relax_1_1PatternContextNode__coll__graph.svg |   45 +-
 ...relax_1_1PatternContextNode__inherit__graph.svg |   45 +-
 .../classtvm_1_1relax_1_1PatternSeq-members.html   |    2 +-
 .../doxygen/classtvm_1_1relax_1_1PatternSeq.html   |   14 +-
 ...lasstvm_1_1relax_1_1PatternSeqNode-members.html |    9 +-
 .../classtvm_1_1relax_1_1PatternSeqNode.html       |   48 +-
 ...tvm_1_1relax_1_1PatternSeqNode__coll__graph.svg |   39 +-
 ..._1_1relax_1_1PatternSeqNode__inherit__graph.svg |   39 +-
 ...lasstvm_1_1relax_1_1PatternSeq__coll__graph.svg |   36 +-
 ...stvm_1_1relax_1_1PatternSeq__inherit__graph.svg |   36 +-
 ...lasstvm_1_1relax_1_1PrimArrPattern-members.html |    4 +-
 .../classtvm_1_1relax_1_1PrimArrPattern.html       |   18 +-
 ...tvm_1_1relax_1_1PrimArrPatternNode-members.html |    9 +-
 .../classtvm_1_1relax_1_1PrimArrPatternNode.html   |   55 +-
 ...1_1relax_1_1PrimArrPatternNode__coll__graph.svg |   58 +-
 ...relax_1_1PrimArrPatternNode__inherit__graph.svg |   58 +-
 ...tvm_1_1relax_1_1PrimArrPattern__coll__graph.svg |   54 +-
 ..._1_1relax_1_1PrimArrPattern__inherit__graph.svg |   54 +-
 ...lasstvm_1_1relax_1_1PrimStructInfo-members.html |    4 +-
 .../classtvm_1_1relax_1_1PrimStructInfo.html       |   18 +-
 ...tvm_1_1relax_1_1PrimStructInfoNode-members.html |   15 +-
 .../classtvm_1_1relax_1_1PrimStructInfoNode.html   |   55 +-
 ...1_1relax_1_1PrimStructInfoNode__coll__graph.svg |  166 +-
 ...relax_1_1PrimStructInfoNode__inherit__graph.svg |   66 +-
 ...tvm_1_1relax_1_1PrimStructInfo__coll__graph.svg |   54 +-
 ..._1_1relax_1_1PrimStructInfo__inherit__graph.svg |   54 +-
 .../classtvm_1_1relax_1_1PrimValue-members.html    |    8 +-
 .../doxygen/classtvm_1_1relax_1_1PrimValue.html    |   26 +-
 ...classtvm_1_1relax_1_1PrimValueNode-members.html |   19 +-
 .../classtvm_1_1relax_1_1PrimValueNode.html        |   67 +-
 ...stvm_1_1relax_1_1PrimValueNode__coll__graph.svg |  195 +-
 ...m_1_1relax_1_1PrimValueNode__inherit__graph.svg |  106 +-
 ...classtvm_1_1relax_1_1PrimValue__coll__graph.svg |   90 +-
 ...sstvm_1_1relax_1_1PrimValue__inherit__graph.svg |   90 +-
 ...vm_1_1relax_1_1SameShapeConstraint-members.html |    4 +-
 .../classtvm_1_1relax_1_1SameShapeConstraint.html  |   14 +-
 ..._1relax_1_1SameShapeConstraintNode-members.html |   13 +-
 ...asstvm_1_1relax_1_1SameShapeConstraintNode.html |   55 +-
 ...lax_1_1SameShapeConstraintNode__coll__graph.svg |   60 +-
 ..._1_1SameShapeConstraintNode__inherit__graph.svg |   60 +-
 ..._1relax_1_1SameShapeConstraint__coll__graph.svg |   14 +-
 ...elax_1_1SameShapeConstraint__inherit__graph.svg |   14 +-
 .../classtvm_1_1relax_1_1SeqExpr-members.html      |    6 +-
 .../api/doxygen/classtvm_1_1relax_1_1SeqExpr.html  |   22 +-
 .../classtvm_1_1relax_1_1SeqExprNode-members.html  |   19 +-
 .../doxygen/classtvm_1_1relax_1_1SeqExprNode.html  |   61 +-
 ...asstvm_1_1relax_1_1SeqExprNode__coll__graph.svg |  169 +-
 ...tvm_1_1relax_1_1SeqExprNode__inherit__graph.svg |   89 +-
 .../classtvm_1_1relax_1_1SeqExpr__coll__graph.svg  |   72 +-
 ...lasstvm_1_1relax_1_1SeqExpr__inherit__graph.svg |   72 +-
 .../classtvm_1_1relax_1_1ShapeExpr-members.html    |    8 +-
 .../doxygen/classtvm_1_1relax_1_1ShapeExpr.html    |   26 +-
 ...classtvm_1_1relax_1_1ShapeExprNode-members.html |   19 +-
 .../classtvm_1_1relax_1_1ShapeExprNode.html        |   67 +-
 ...stvm_1_1relax_1_1ShapeExprNode__coll__graph.svg |  144 +-
 ...m_1_1relax_1_1ShapeExprNode__inherit__graph.svg |  106 +-
 ...classtvm_1_1relax_1_1ShapeExpr__coll__graph.svg |   90 +-
 ...sstvm_1_1relax_1_1ShapeExpr__inherit__graph.svg |   90 +-
 .../classtvm_1_1relax_1_1ShapePattern-members.html |    4 +-
 .../doxygen/classtvm_1_1relax_1_1ShapePattern.html |   18 +-
 ...sstvm_1_1relax_1_1ShapePatternNode-members.html |   11 +-
 .../classtvm_1_1relax_1_1ShapePatternNode.html     |   55 +-
 ...m_1_1relax_1_1ShapePatternNode__coll__graph.svg |  122 +-
 ..._1relax_1_1ShapePatternNode__inherit__graph.svg |   60 +-
 ...sstvm_1_1relax_1_1ShapePattern__coll__graph.svg |   54 +-
 ...vm_1_1relax_1_1ShapePattern__inherit__graph.svg |   54 +-
 ...asstvm_1_1relax_1_1ShapeStructInfo-members.html |    4 +-
 .../classtvm_1_1relax_1_1ShapeStructInfo.html      |   18 +-
 ...vm_1_1relax_1_1ShapeStructInfoNode-members.html |   17 +-
 .../classtvm_1_1relax_1_1ShapeStructInfoNode.html  |   55 +-
 ..._1relax_1_1ShapeStructInfoNode__coll__graph.svg |  102 +-
 ...elax_1_1ShapeStructInfoNode__inherit__graph.svg |   64 +-
 ...vm_1_1relax_1_1ShapeStructInfo__coll__graph.svg |   54 +-
 ...1_1relax_1_1ShapeStructInfo__inherit__graph.svg |   54 +-
 .../classtvm_1_1relax_1_1ShapeType-members.html    |    4 +-
 .../doxygen/classtvm_1_1relax_1_1ShapeType.html    |   18 +-
 ...classtvm_1_1relax_1_1ShapeTypeNode-members.html |   13 +-
 .../classtvm_1_1relax_1_1ShapeTypeNode.html        |   55 +-
 ...stvm_1_1relax_1_1ShapeTypeNode__coll__graph.svg |  102 +-
 ...m_1_1relax_1_1ShapeTypeNode__inherit__graph.svg |   64 +-
 ...classtvm_1_1relax_1_1ShapeType__coll__graph.svg |   54 +-
 ...sstvm_1_1relax_1_1ShapeType__inherit__graph.svg |   54 +-
 .../classtvm_1_1relax_1_1StringImm-members.html    |    8 +-
 .../doxygen/classtvm_1_1relax_1_1StringImm.html    |   26 +-
 ...classtvm_1_1relax_1_1StringImmNode-members.html |   19 +-
 .../classtvm_1_1relax_1_1StringImmNode.html        |   67 +-
 ...stvm_1_1relax_1_1StringImmNode__coll__graph.svg |  144 +-
 ...m_1_1relax_1_1StringImmNode__inherit__graph.svg |  106 +-
 ...classtvm_1_1relax_1_1StringImm__coll__graph.svg |   90 +-
 ...sstvm_1_1relax_1_1StringImm__inherit__graph.svg |   90 +-
 .../classtvm_1_1relax_1_1StructInfo-members.html   |    2 +-
 .../doxygen/classtvm_1_1relax_1_1StructInfo.html   |   14 +-
 ...lasstvm_1_1relax_1_1StructInfoNode-members.html |    9 +-
 .../classtvm_1_1relax_1_1StructInfoNode.html       |   44 +-
 ...tvm_1_1relax_1_1StructInfoNode__coll__graph.svg |   77 +-
 ..._1_1relax_1_1StructInfoNode__inherit__graph.svg |  223 +-
 ...stvm_1_1relax_1_1StructInfoPattern-members.html |    4 +-
 .../classtvm_1_1relax_1_1StructInfoPattern.html    |   18 +-
 ..._1_1relax_1_1StructInfoPatternNode-members.html |   11 +-
 ...classtvm_1_1relax_1_1StructInfoPatternNode.html |   55 +-
 ...relax_1_1StructInfoPatternNode__coll__graph.svg |  143 +-
 ...ax_1_1StructInfoPatternNode__inherit__graph.svg |   58 +-
 ..._1_1relax_1_1StructInfoPattern__coll__graph.svg |   54 +-
 ...1relax_1_1StructInfoPattern__inherit__graph.svg |   54 +-
 ...lasstvm_1_1relax_1_1StructInfo__coll__graph.svg |   36 +-
 ...stvm_1_1relax_1_1StructInfo__inherit__graph.svg |  182 +-
 ...sstvm_1_1relax_1_1TensorStructInfo-members.html |    4 +-
 .../classtvm_1_1relax_1_1TensorStructInfo.html     |   18 +-
 ...m_1_1relax_1_1TensorStructInfoNode-members.html |   25 +-
 .../classtvm_1_1relax_1_1TensorStructInfoNode.html |   55 +-
 ...1relax_1_1TensorStructInfoNode__coll__graph.svg |  178 +-
 ...lax_1_1TensorStructInfoNode__inherit__graph.svg |   72 +-
 ...m_1_1relax_1_1TensorStructInfo__coll__graph.svg |   54 +-
 ..._1relax_1_1TensorStructInfo__inherit__graph.svg |   54 +-
 .../classtvm_1_1relax_1_1TensorType-members.html   |    4 +-
 .../doxygen/classtvm_1_1relax_1_1TensorType.html   |   18 +-
 ...lasstvm_1_1relax_1_1TensorTypeNode-members.html |   19 +-
 .../classtvm_1_1relax_1_1TensorTypeNode.html       |   55 +-
 ...tvm_1_1relax_1_1TensorTypeNode__coll__graph.svg |  170 +-
 ..._1_1relax_1_1TensorTypeNode__inherit__graph.svg |   66 +-
 ...lasstvm_1_1relax_1_1TensorType__coll__graph.svg |   54 +-
 ...stvm_1_1relax_1_1TensorType__inherit__graph.svg |   54 +-
 .../classtvm_1_1relax_1_1Tuple-members.html        |    6 +-
 .../api/doxygen/classtvm_1_1relax_1_1Tuple.html    |   22 +-
 .../classtvm_1_1relax_1_1TupleGetItem-members.html |    6 +-
 .../doxygen/classtvm_1_1relax_1_1TupleGetItem.html |   22 +-
 ...sstvm_1_1relax_1_1TupleGetItemNode-members.html |   19 +-
 .../classtvm_1_1relax_1_1TupleGetItemNode.html     |   61 +-
 ...m_1_1relax_1_1TupleGetItemNode__coll__graph.svg |  169 +-
 ..._1relax_1_1TupleGetItemNode__inherit__graph.svg |   89 +-
 ...vm_1_1relax_1_1TupleGetItemPattern-members.html |    4 +-
 .../classtvm_1_1relax_1_1TupleGetItemPattern.html  |   18 +-
 ..._1relax_1_1TupleGetItemPatternNode-members.html |   11 +-
 ...asstvm_1_1relax_1_1TupleGetItemPatternNode.html |   55 +-
 ...lax_1_1TupleGetItemPatternNode__coll__graph.svg |  124 +-
 ..._1_1TupleGetItemPatternNode__inherit__graph.svg |   62 +-
 ..._1relax_1_1TupleGetItemPattern__coll__graph.svg |   54 +-
 ...elax_1_1TupleGetItemPattern__inherit__graph.svg |   54 +-
 ...sstvm_1_1relax_1_1TupleGetItem__coll__graph.svg |   72 +-
 ...vm_1_1relax_1_1TupleGetItem__inherit__graph.svg |   72 +-
 .../classtvm_1_1relax_1_1TupleNode-members.html    |   17 +-
 .../doxygen/classtvm_1_1relax_1_1TupleNode.html    |   61 +-
 ...classtvm_1_1relax_1_1TupleNode__coll__graph.svg |  125 +-
 ...sstvm_1_1relax_1_1TupleNode__inherit__graph.svg |   87 +-
 .../classtvm_1_1relax_1_1TuplePattern-members.html |    4 +-
 .../doxygen/classtvm_1_1relax_1_1TuplePattern.html |   18 +-
 ...sstvm_1_1relax_1_1TuplePatternNode-members.html |    9 +-
 .../classtvm_1_1relax_1_1TuplePatternNode.html     |   55 +-
 ...m_1_1relax_1_1TuplePatternNode__coll__graph.svg |   58 +-
 ..._1relax_1_1TuplePatternNode__inherit__graph.svg |   58 +-
 ...sstvm_1_1relax_1_1TuplePattern__coll__graph.svg |   54 +-
 ...vm_1_1relax_1_1TuplePattern__inherit__graph.svg |   54 +-
 ...asstvm_1_1relax_1_1TupleStructInfo-members.html |    4 +-
 .../classtvm_1_1relax_1_1TupleStructInfo.html      |   18 +-
 ...vm_1_1relax_1_1TupleStructInfoNode-members.html |   13 +-
 .../classtvm_1_1relax_1_1TupleStructInfoNode.html  |   55 +-
 ..._1relax_1_1TupleStructInfoNode__coll__graph.svg |  102 +-
 ...elax_1_1TupleStructInfoNode__inherit__graph.svg |   64 +-
 ...vm_1_1relax_1_1TupleStructInfo__coll__graph.svg |   54 +-
 ...1_1relax_1_1TupleStructInfo__inherit__graph.svg |   54 +-
 .../classtvm_1_1relax_1_1Tuple__coll__graph.svg    |   72 +-
 .../classtvm_1_1relax_1_1Tuple__inherit__graph.svg |   72 +-
 ..._1_1relax_1_1UnorderedTuplePattern-members.html |    4 +-
 ...classtvm_1_1relax_1_1UnorderedTuplePattern.html |   18 +-
 ...relax_1_1UnorderedTuplePatternNode-members.html |    9 +-
 ...stvm_1_1relax_1_1UnorderedTuplePatternNode.html |   55 +-
 ...x_1_1UnorderedTuplePatternNode__coll__graph.svg |   60 +-
 ..._1UnorderedTuplePatternNode__inherit__graph.svg |   60 +-
 ...relax_1_1UnorderedTuplePattern__coll__graph.svg |   54 +-
 ...ax_1_1UnorderedTuplePattern__inherit__graph.svg |   54 +-
 .../doxygen/classtvm_1_1relax_1_1Var-members.html  |    8 +-
 .../api/doxygen/classtvm_1_1relax_1_1Var.html      |   26 +-
 .../classtvm_1_1relax_1_1VarBinding-members.html   |    2 +-
 .../doxygen/classtvm_1_1relax_1_1VarBinding.html   |   10 +-
 ...lasstvm_1_1relax_1_1VarBindingNode-members.html |   19 +-
 .../classtvm_1_1relax_1_1VarBindingNode.html       |   55 +-
 ...tvm_1_1relax_1_1VarBindingNode__coll__graph.svg |  207 +-
 ..._1_1relax_1_1VarBindingNode__inherit__graph.svg |   64 +-
 ...lasstvm_1_1relax_1_1VarBinding__coll__graph.svg |   16 +-
 ...stvm_1_1relax_1_1VarBinding__inherit__graph.svg |   16 +-
 .../classtvm_1_1relax_1_1VarNode-members.html      |   25 +-
 .../api/doxygen/classtvm_1_1relax_1_1VarNode.html  |   62 +-
 .../classtvm_1_1relax_1_1VarNode__coll__graph.svg  |  180 +-
 ...lasstvm_1_1relax_1_1VarNode__inherit__graph.svg |  137 +-
 .../classtvm_1_1relax_1_1VarPattern-members.html   |    4 +-
 .../doxygen/classtvm_1_1relax_1_1VarPattern.html   |   18 +-
 ...lasstvm_1_1relax_1_1VarPatternNode-members.html |   11 +-
 .../classtvm_1_1relax_1_1VarPatternNode.html       |   50 +-
 ...tvm_1_1relax_1_1VarPatternNode__coll__graph.svg |   56 +-
 ..._1_1relax_1_1VarPatternNode__inherit__graph.svg |   84 +-
 ...lasstvm_1_1relax_1_1VarPattern__coll__graph.svg |   54 +-
 ...stvm_1_1relax_1_1VarPattern__inherit__graph.svg |   54 +-
 .../classtvm_1_1relax_1_1Var__coll__graph.svg      |   90 +-
 .../classtvm_1_1relax_1_1Var__inherit__graph.svg   |  108 +-
 ...asstvm_1_1relax_1_1WildcardPattern-members.html |    4 +-
 .../classtvm_1_1relax_1_1WildcardPattern.html      |   18 +-
 ...vm_1_1relax_1_1WildcardPatternNode-members.html |    7 +-
 .../classtvm_1_1relax_1_1WildcardPatternNode.html  |   56 +-
 ..._1relax_1_1WildcardPatternNode__coll__graph.svg |   49 +-
 ...elax_1_1WildcardPatternNode__inherit__graph.svg |   49 +-
 ...vm_1_1relax_1_1WildcardPattern__coll__graph.svg |   80 +-
 ...1_1relax_1_1WildcardPattern__inherit__graph.svg |   80 +-
 ..._1distributed_1_1DTensorStructInfo-members.html |    4 +-
 ...1relax_1_1distributed_1_1DTensorStructInfo.html |   18 +-
 ...stributed_1_1DTensorStructInfoNode-members.html |   17 +-
 ...ax_1_1distributed_1_1DTensorStructInfoNode.html |   55 +-
 ...buted_1_1DTensorStructInfoNode__coll__graph.svg |  215 +-
 ...ed_1_1DTensorStructInfoNode__inherit__graph.svg |   70 +-
 ...stributed_1_1DTensorStructInfo__coll__graph.svg |   54 +-
 ...ibuted_1_1DTensorStructInfo__inherit__graph.svg |   54 +-
 ...relax_1_1distributed_1_1DeviceMesh-members.html |    4 +-
 ...stvm_1_1relax_1_1distributed_1_1DeviceMesh.html |   18 +-
 ...x_1_1distributed_1_1DeviceMeshNode-members.html |   15 +-
 ..._1_1relax_1_1distributed_1_1DeviceMeshNode.html |   55 +-
 ...1distributed_1_1DeviceMeshNode__coll__graph.svg |   64 +-
 ...stributed_1_1DeviceMeshNode__inherit__graph.svg |   64 +-
 ...x_1_1distributed_1_1DeviceMesh__coll__graph.svg |   54 +-
 ..._1distributed_1_1DeviceMesh__inherit__graph.svg |   54 +-
 ...1relax_1_1distributed_1_1Placement-members.html |    2 +-
 ...sstvm_1_1relax_1_1distributed_1_1Placement.html |   14 +-
 ...ax_1_1distributed_1_1PlacementNode-members.html |   11 +-
 ...m_1_1relax_1_1distributed_1_1PlacementNode.html |   44 +-
 ..._1distributed_1_1PlacementNode__coll__graph.svg |   43 +-
 ...istributed_1_1PlacementNode__inherit__graph.svg |   43 +-
 ...ax_1_1distributed_1_1PlacementSpec-members.html |    2 +-
 ...m_1_1relax_1_1distributed_1_1PlacementSpec.html |   14 +-
 ..._1distributed_1_1PlacementSpecNode-members.html |   11 +-
 ...1relax_1_1distributed_1_1PlacementSpecNode.html |   44 +-
 ...stributed_1_1PlacementSpecNode__coll__graph.svg |   41 +-
 ...ibuted_1_1PlacementSpecNode__inherit__graph.svg |   63 +-
 ..._1distributed_1_1PlacementSpec__coll__graph.svg |   36 +-
 ...istributed_1_1PlacementSpec__inherit__graph.svg |   36 +-
 ...ax_1_1distributed_1_1Placement__coll__graph.svg |   36 +-
 ...1_1distributed_1_1Placement__inherit__graph.svg |   36 +-
 ...lax_1_1distributed_1_1ShardingNode-members.html |   15 +-
 ...vm_1_1relax_1_1distributed_1_1ShardingNode.html |   26 +-
 ...1_1distributed_1_1ShardingNode__coll__graph.svg |  191 +-
 ...distributed_1_1ShardingNode__inherit__graph.svg |   63 +-
 ...elax_1_1transform_1_1FusionPattern-members.html |    2 +-
 ...tvm_1_1relax_1_1transform_1_1FusionPattern.html |   14 +-
 ..._1_1transform_1_1FusionPatternNode-members.html |   15 +-
 ...1_1relax_1_1transform_1_1FusionPatternNode.html |   48 +-
 ...transform_1_1FusionPatternNode__coll__graph.svg |  109 +-
 ...nsform_1_1FusionPatternNode__inherit__graph.svg |   49 +-
 ..._1_1transform_1_1FusionPattern__coll__graph.svg |   36 +-
 ...1transform_1_1FusionPattern__inherit__graph.svg |   36 +-
 ..._1transform_1_1PatternCheckContext-members.html |    2 +-
 ...1relax_1_1transform_1_1PatternCheckContext.html |   14 +-
 ...ansform_1_1PatternCheckContextNode-members.html |   15 +-
 ...ax_1_1transform_1_1PatternCheckContextNode.html |   48 +-
 ...orm_1_1PatternCheckContextNode__coll__graph.svg |  101 +-
 ..._1_1PatternCheckContextNode__inherit__graph.svg |   49 +-
 ...ansform_1_1PatternCheckContext__coll__graph.svg |   36 +-
 ...form_1_1PatternCheckContext__inherit__graph.svg |   36 +-
 .../classtvm_1_1runtime_1_1DRef-members.html       |    2 +-
 .../api/doxygen/classtvm_1_1runtime_1_1DRef.html   |   14 +-
 .../classtvm_1_1runtime_1_1DRefObj-members.html    |   13 +-
 .../doxygen/classtvm_1_1runtime_1_1DRefObj.html    |   44 +-
 ...classtvm_1_1runtime_1_1DRefObj__coll__graph.svg |   57 +-
 ...sstvm_1_1runtime_1_1DRefObj__inherit__graph.svg |   41 +-
 .../classtvm_1_1runtime_1_1DRef__coll__graph.svg   |   41 +-
 ...classtvm_1_1runtime_1_1DRef__inherit__graph.svg |   41 +-
 .../classtvm_1_1runtime_1_1Session-members.html    |    2 +-
 .../doxygen/classtvm_1_1runtime_1_1Session.html    |   14 +-
 .../classtvm_1_1runtime_1_1SessionObj-members.html |    4 +-
 .../doxygen/classtvm_1_1runtime_1_1SessionObj.html |   30 +-
 ...sstvm_1_1runtime_1_1SessionObj__coll__graph.svg |   34 +-
 ...vm_1_1runtime_1_1SessionObj__inherit__graph.svg |   34 +-
 ...classtvm_1_1runtime_1_1Session__coll__graph.svg |   36 +-
 ...sstvm_1_1runtime_1_1Session__inherit__graph.svg |   36 +-
 .../classtvm_1_1runtime_1_1Timer-members.html      |    2 +-
 .../api/doxygen/classtvm_1_1runtime_1_1Timer.html  |   17 +-
 .../classtvm_1_1runtime_1_1TimerNode-members.html  |    4 +-
 .../doxygen/classtvm_1_1runtime_1_1TimerNode.html  |   30 +-
 ...asstvm_1_1runtime_1_1TimerNode__coll__graph.svg |   34 +-
 ...tvm_1_1runtime_1_1TimerNode__inherit__graph.svg |   34 +-
 .../classtvm_1_1runtime_1_1Timer__coll__graph.svg  |   36 +-
 ...lasstvm_1_1runtime_1_1Timer__inherit__graph.svg |   36 +-
 ...time_1_1cuda__ipc_1_1CUDAIPCMemory-members.html |    2 +-
 ...m_1_1runtime_1_1cuda__ipc_1_1CUDAIPCMemory.html |   10 +-
 ...e_1_1cuda__ipc_1_1CUDAIPCMemoryObj-members.html |   15 +-
 ..._1runtime_1_1cuda__ipc_1_1CUDAIPCMemoryObj.html |   48 +-
 ...1cuda__ipc_1_1CUDAIPCMemoryObj__coll__graph.svg |   49 +-
 ...da__ipc_1_1CUDAIPCMemoryObj__inherit__graph.svg |   49 +-
 ..._1_1cuda__ipc_1_1CUDAIPCMemory__coll__graph.svg |    4 +-
 ...1cuda__ipc_1_1CUDAIPCMemory__inherit__graph.svg |    4 +-
 ...vm_1_1runtime_1_1memory_1_1Storage-members.html |    2 +-
 .../classtvm_1_1runtime_1_1memory_1_1Storage.html  |   14 +-
 ...1_1runtime_1_1memory_1_1StorageObj-members.html |    4 +-
 ...lasstvm_1_1runtime_1_1memory_1_1StorageObj.html |   28 +-
 ...untime_1_1memory_1_1StorageObj__coll__graph.svg |   20 +-
 ...ime_1_1memory_1_1StorageObj__inherit__graph.svg |   36 +-
 ..._1runtime_1_1memory_1_1Storage__coll__graph.svg |   36 +-
 ...untime_1_1memory_1_1Storage__inherit__graph.svg |   36 +-
 ...1runtime_1_1profiling_1_1CountNode-members.html |    7 +-
 ...sstvm_1_1runtime_1_1profiling_1_1CountNode.html |   48 +-
 ...time_1_1profiling_1_1CountNode__coll__graph.svg |   41 +-
 ...e_1_1profiling_1_1CountNode__inherit__graph.svg |   41 +-
 ...time_1_1profiling_1_1DeviceWrapper-members.html |    2 +-
 ...m_1_1runtime_1_1profiling_1_1DeviceWrapper.html |   14 +-
 ..._1_1profiling_1_1DeviceWrapper__coll__graph.svg |   36 +-
 ...1profiling_1_1DeviceWrapper__inherit__graph.svg |   36 +-
 ...ntime_1_1profiling_1_1DurationNode-members.html |    7 +-
 ...vm_1_1runtime_1_1profiling_1_1DurationNode.html |   48 +-
 ...e_1_1profiling_1_1DurationNode__coll__graph.svg |   41 +-
 ..._1profiling_1_1DurationNode__inherit__graph.svg |   41 +-
 ...me_1_1profiling_1_1MetricCollector-members.html |    2 +-
 ...1_1runtime_1_1profiling_1_1MetricCollector.html |   14 +-
 ..._1profiling_1_1MetricCollectorNode-members.html |    4 +-
 ...untime_1_1profiling_1_1MetricCollectorNode.html |   30 +-
 ...ofiling_1_1MetricCollectorNode__coll__graph.svg |   34 +-
 ...ling_1_1MetricCollectorNode__inherit__graph.svg |   34 +-
 ..._1profiling_1_1MetricCollector__coll__graph.svg |   36 +-
 ...rofiling_1_1MetricCollector__inherit__graph.svg |   36 +-
 ...untime_1_1profiling_1_1PercentNode-members.html |    7 +-
 ...tvm_1_1runtime_1_1profiling_1_1PercentNode.html |   48 +-
 ...me_1_1profiling_1_1PercentNode__coll__graph.svg |   41 +-
 ...1_1profiling_1_1PercentNode__inherit__graph.svg |   41 +-
 ...1runtime_1_1profiling_1_1RatioNode-members.html |    7 +-
 ...sstvm_1_1runtime_1_1profiling_1_1RatioNode.html |   48 +-
 ...time_1_1profiling_1_1RatioNode__coll__graph.svg |   41 +-
 ...e_1_1profiling_1_1RatioNode__inherit__graph.svg |   41 +-
 ..._1_1runtime_1_1profiling_1_1Report-members.html |    2 +-
 ...classtvm_1_1runtime_1_1profiling_1_1Report.html |   14 +-
 ...runtime_1_1profiling_1_1ReportNode-members.html |   15 +-
 ...stvm_1_1runtime_1_1profiling_1_1ReportNode.html |   48 +-
 ...ime_1_1profiling_1_1ReportNode__coll__graph.svg |   45 +-
 ..._1_1profiling_1_1ReportNode__inherit__graph.svg |   45 +-
 ...runtime_1_1profiling_1_1Report__coll__graph.svg |   36 +-
 ...time_1_1profiling_1_1Report__inherit__graph.svg |   36 +-
 ...stvm_1_1runtime_1_1vm_1_1VMClosure-members.html |    2 +-
 .../classtvm_1_1runtime_1_1vm_1_1VMClosure.html    |   10 +-
 ...m_1_1runtime_1_1vm_1_1VMClosureObj-members.html |    7 +-
 .../classtvm_1_1runtime_1_1vm_1_1VMClosureObj.html |   48 +-
 ...1runtime_1_1vm_1_1VMClosureObj__coll__graph.svg |   55 +-
 ...ntime_1_1vm_1_1VMClosureObj__inherit__graph.svg |   39 +-
 ..._1_1runtime_1_1vm_1_1VMClosure__coll__graph.svg |    4 +-
 ...1runtime_1_1vm_1_1VMClosure__inherit__graph.svg |    4 +-
 ...vm_1_1runtime_1_1vm_1_1VMExtension-members.html |    2 +-
 .../classtvm_1_1runtime_1_1vm_1_1VMExtension.html  |   10 +-
 ..._1runtime_1_1vm_1_1VMExtensionNode-members.html |    3 +-
 ...asstvm_1_1runtime_1_1vm_1_1VMExtensionNode.html |   45 +-
 ...ntime_1_1vm_1_1VMExtensionNode__coll__graph.svg |    4 +-
 ...me_1_1vm_1_1VMExtensionNode__inherit__graph.svg |    4 +-
 ..._1runtime_1_1vm_1_1VMExtension__coll__graph.svg |    4 +-
 ...untime_1_1vm_1_1VMExtension__inherit__graph.svg |    4 +-
 ...script_1_1ir__builder_1_1IRBuilder-members.html |    2 +-
 ...stvm_1_1script_1_1ir__builder_1_1IRBuilder.html |   14 +-
 ...t_1_1ir__builder_1_1IRBuilderFrame-members.html |    2 +-
 ...1_1script_1_1ir__builder_1_1IRBuilderFrame.html |   14 +-
 ...1ir__builder_1_1IRBuilderFrameNode-members.html |    4 +-
 ...cript_1_1ir__builder_1_1IRBuilderFrameNode.html |   30 +-
 ..._builder_1_1IRBuilderFrameNode__coll__graph.svg |   34 +-
 ...ilder_1_1IRBuilderFrameNode__inherit__graph.svg |  797 +++--
 ...1ir__builder_1_1IRBuilderFrame__coll__graph.svg |   41 +-
 ...__builder_1_1IRBuilderFrame__inherit__graph.svg |  628 ++--
 ...pt_1_1ir__builder_1_1IRBuilderNode-members.html |    4 +-
 ..._1_1script_1_1ir__builder_1_1IRBuilderNode.html |   32 +-
 ..._1ir__builder_1_1IRBuilderNode__coll__graph.svg |   36 +-
 ...r__builder_1_1IRBuilderNode__inherit__graph.svg |   36 +-
 ...pt_1_1ir__builder_1_1IRBuilder__coll__graph.svg |   43 +-
 ...1_1ir__builder_1_1IRBuilder__inherit__graph.svg |   43 +-
 ...ir__builder_1_1ir_1_1IRModuleFrame-members.html |    4 +-
 ...ript_1_1ir__builder_1_1ir_1_1IRModuleFrame.html |   18 +-
 ...builder_1_1ir_1_1IRModuleFrameNode-members.html |    6 +-
 ..._1_1ir__builder_1_1ir_1_1IRModuleFrameNode.html |   57 +-
 ...der_1_1ir_1_1IRModuleFrameNode__coll__graph.svg |   79 +-
 ..._1_1ir_1_1IRModuleFrameNode__inherit__graph.svg |   79 +-
 ...builder_1_1ir_1_1IRModuleFrame__coll__graph.svg |   70 +-
 ...lder_1_1ir_1_1IRModuleFrame__inherit__graph.svg |   70 +-
 ...ir__builder_1_1relax_1_1BlockFrame-members.html |    6 +-
 ...ript_1_1ir__builder_1_1relax_1_1BlockFrame.html |   22 +-
 ...builder_1_1relax_1_1BlockFrameNode-members.html |    8 +-
 ..._1_1ir__builder_1_1relax_1_1BlockFrameNode.html |   64 +-
 ...der_1_1relax_1_1BlockFrameNode__coll__graph.svg |  101 +-
 ..._1_1relax_1_1BlockFrameNode__inherit__graph.svg |  101 +-
 ...builder_1_1relax_1_1BlockFrame__coll__graph.svg |   97 +-
 ...lder_1_1relax_1_1BlockFrame__inherit__graph.svg |   97 +-
 ...1ir__builder_1_1relax_1_1ElseFrame-members.html |    8 +-
 ...cript_1_1ir__builder_1_1relax_1_1ElseFrame.html |   26 +-
 ..._builder_1_1relax_1_1ElseFrameNode-members.html |   10 +-
 ...t_1_1ir__builder_1_1relax_1_1ElseFrameNode.html |   73 +-
 ...lder_1_1relax_1_1ElseFrameNode__coll__graph.svg |  121 +-
 ...r_1_1relax_1_1ElseFrameNode__inherit__graph.svg |  121 +-
 ..._builder_1_1relax_1_1ElseFrame__coll__graph.svg |  120 +-
 ...ilder_1_1relax_1_1ElseFrame__inherit__graph.svg |  120 +-
 ..._builder_1_1relax_1_1FunctionFrame-members.html |    8 +-
 ...t_1_1ir__builder_1_1relax_1_1FunctionFrame.html |   26 +-
 ...lder_1_1relax_1_1FunctionFrameNode-members.html |   10 +-
 ...1ir__builder_1_1relax_1_1FunctionFrameNode.html |   71 +-
 ..._1_1relax_1_1FunctionFrameNode__coll__graph.svg |  180 +-
 ...1relax_1_1FunctionFrameNode__inherit__graph.svg |  136 +-
 ...lder_1_1relax_1_1FunctionFrame__coll__graph.svg |  120 +-
 ...r_1_1relax_1_1FunctionFrame__inherit__graph.svg |  120 +-
 ...1_1ir__builder_1_1relax_1_1IfFrame-members.html |    6 +-
 ...1script_1_1ir__builder_1_1relax_1_1IfFrame.html |   22 +-
 ...r__builder_1_1relax_1_1IfFrameNode-members.html |    8 +-
 ...ipt_1_1ir__builder_1_1relax_1_1IfFrameNode.html |   64 +-
 ...uilder_1_1relax_1_1IfFrameNode__coll__graph.svg |  225 +-
 ...der_1_1relax_1_1IfFrameNode__inherit__graph.svg |  103 +-
 ...r__builder_1_1relax_1_1IfFrame__coll__graph.svg |   97 +-
 ...builder_1_1relax_1_1IfFrame__inherit__graph.svg |   97 +-
 ...ir__builder_1_1relax_1_1RelaxFrame-members.html |    4 +-
 ...ript_1_1ir__builder_1_1relax_1_1RelaxFrame.html |   18 +-
 ...builder_1_1relax_1_1RelaxFrameNode-members.html |    6 +-
 ..._1_1ir__builder_1_1relax_1_1RelaxFrameNode.html |   59 +-
 ...der_1_1relax_1_1RelaxFrameNode__coll__graph.svg |   50 +-
 ..._1_1relax_1_1RelaxFrameNode__inherit__graph.svg |  262 +-
 ...builder_1_1relax_1_1RelaxFrame__coll__graph.svg |   70 +-
 ...lder_1_1relax_1_1RelaxFrame__inherit__graph.svg |  212 +-
 ...__builder_1_1relax_1_1SeqExprFrame-members.html |    6 +-
 ...pt_1_1ir__builder_1_1relax_1_1SeqExprFrame.html |   22 +-
 ...ilder_1_1relax_1_1SeqExprFrameNode-members.html |    8 +-
 ..._1ir__builder_1_1relax_1_1SeqExprFrameNode.html |   64 +-
 ...r_1_1relax_1_1SeqExprFrameNode__coll__graph.svg |   95 +-
 ..._1relax_1_1SeqExprFrameNode__inherit__graph.svg |  194 +-
 ...ilder_1_1relax_1_1SeqExprFrame__coll__graph.svg |   97 +-
 ...er_1_1relax_1_1SeqExprFrame__inherit__graph.svg |  166 +-
 ...1ir__builder_1_1relax_1_1ThenFrame-members.html |    8 +-
 ...cript_1_1ir__builder_1_1relax_1_1ThenFrame.html |   26 +-
 ..._builder_1_1relax_1_1ThenFrameNode-members.html |   10 +-
 ...t_1_1ir__builder_1_1relax_1_1ThenFrameNode.html |   73 +-
 ...lder_1_1relax_1_1ThenFrameNode__coll__graph.svg |  121 +-
 ...r_1_1relax_1_1ThenFrameNode__inherit__graph.svg |  121 +-
 ..._builder_1_1relax_1_1ThenFrame__coll__graph.svg |  120 +-
 ...ilder_1_1relax_1_1ThenFrame__inherit__graph.svg |  120 +-
 ...ilder_1_1tir_1_1AllocateConstFrame-members.html |    6 +-
 ..._1ir__builder_1_1tir_1_1AllocateConstFrame.html |   22 +-
 ...r_1_1tir_1_1AllocateConstFrameNode-members.html |    8 +-
 ...__builder_1_1tir_1_1AllocateConstFrameNode.html |   64 +-
 ...1tir_1_1AllocateConstFrameNode__coll__graph.svg |  322 +-
 ...r_1_1AllocateConstFrameNode__inherit__graph.svg |  104 +-
 ...r_1_1tir_1_1AllocateConstFrame__coll__graph.svg |   95 +-
 ..._1tir_1_1AllocateConstFrame__inherit__graph.svg |   95 +-
 ...r__builder_1_1tir_1_1AllocateFrame-members.html |    6 +-
 ...ipt_1_1ir__builder_1_1tir_1_1AllocateFrame.html |   22 +-
 ...uilder_1_1tir_1_1AllocateFrameNode-members.html |    8 +-
 ...1_1ir__builder_1_1tir_1_1AllocateFrameNode.html |   64 +-
 ...er_1_1tir_1_1AllocateFrameNode__coll__graph.svg |  266 +-
 ...1_1tir_1_1AllocateFrameNode__inherit__graph.svg |  106 +-
 ...uilder_1_1tir_1_1AllocateFrame__coll__graph.svg |   95 +-
 ...der_1_1tir_1_1AllocateFrame__inherit__graph.svg |   95 +-
 ...1ir__builder_1_1tir_1_1AssertFrame-members.html |    6 +-
 ...cript_1_1ir__builder_1_1tir_1_1AssertFrame.html |   22 +-
 ..._builder_1_1tir_1_1AssertFrameNode-members.html |    8 +-
 ...t_1_1ir__builder_1_1tir_1_1AssertFrameNode.html |   64 +-
 ...lder_1_1tir_1_1AssertFrameNode__coll__graph.svg |  145 +-
 ...r_1_1tir_1_1AssertFrameNode__inherit__graph.svg |   98 +-
 ..._builder_1_1tir_1_1AssertFrame__coll__graph.svg |   95 +-
 ...ilder_1_1tir_1_1AssertFrame__inherit__graph.svg |   95 +-
 ...1_1ir__builder_1_1tir_1_1AttrFrame-members.html |    6 +-
 ...1script_1_1ir__builder_1_1tir_1_1AttrFrame.html |   22 +-
 ...r__builder_1_1tir_1_1AttrFrameNode-members.html |    8 +-
 ...ipt_1_1ir__builder_1_1tir_1_1AttrFrameNode.html |   64 +-
 ...uilder_1_1tir_1_1AttrFrameNode__coll__graph.svg |  180 +-
 ...der_1_1tir_1_1AttrFrameNode__inherit__graph.svg |  100 +-
 ...r__builder_1_1tir_1_1AttrFrame__coll__graph.svg |   95 +-
 ...builder_1_1tir_1_1AttrFrame__inherit__graph.svg |   95 +-
 ..._1ir__builder_1_1tir_1_1BlockFrame-members.html |    6 +-
 ...script_1_1ir__builder_1_1tir_1_1BlockFrame.html |   22 +-
 ...__builder_1_1tir_1_1BlockFrameNode-members.html |    8 +-
 ...pt_1_1ir__builder_1_1tir_1_1BlockFrameNode.html |   64 +-
 ...ilder_1_1tir_1_1BlockFrameNode__coll__graph.svg |  116 +-
 ...er_1_1tir_1_1BlockFrameNode__inherit__graph.svg |  116 +-
 ...__builder_1_1tir_1_1BlockFrame__coll__graph.svg |   95 +-
 ...uilder_1_1tir_1_1BlockFrame__inherit__graph.svg |   95 +-
 ...__builder_1_1tir_1_1BlockInitFrame-members.html |    6 +-
 ...pt_1_1ir__builder_1_1tir_1_1BlockInitFrame.html |   22 +-
 ...ilder_1_1tir_1_1BlockInitFrameNode-members.html |    8 +-
 ..._1ir__builder_1_1tir_1_1BlockInitFrameNode.html |   66 +-
 ...r_1_1tir_1_1BlockInitFrameNode__coll__graph.svg |   93 +-
 ..._1tir_1_1BlockInitFrameNode__inherit__graph.svg |   93 +-
 ...ilder_1_1tir_1_1BlockInitFrame__coll__graph.svg |   95 +-
 ...er_1_1tir_1_1BlockInitFrame__inherit__graph.svg |   95 +-
 ..._builder_1_1tir_1_1DeclBufferFrame-members.html |    6 +-
 ...t_1_1ir__builder_1_1tir_1_1DeclBufferFrame.html |   22 +-
 ...lder_1_1tir_1_1DeclBufferFrameNode-members.html |    8 +-
 ...1ir__builder_1_1tir_1_1DeclBufferFrameNode.html |   64 +-
 ..._1_1tir_1_1DeclBufferFrameNode__coll__graph.svg |  158 +-
 ...1tir_1_1DeclBufferFrameNode__inherit__graph.svg |   98 +-
 ...lder_1_1tir_1_1DeclBufferFrame__coll__graph.svg |   95 +-
 ...r_1_1tir_1_1DeclBufferFrame__inherit__graph.svg |   95 +-
 ...1_1ir__builder_1_1tir_1_1ElseFrame-members.html |    6 +-
 ...1script_1_1ir__builder_1_1tir_1_1ElseFrame.html |   22 +-
 ...r__builder_1_1tir_1_1ElseFrameNode-members.html |    8 +-
 ...ipt_1_1ir__builder_1_1tir_1_1ElseFrameNode.html |   66 +-
 ...uilder_1_1tir_1_1ElseFrameNode__coll__graph.svg |   93 +-
 ...der_1_1tir_1_1ElseFrameNode__inherit__graph.svg |   93 +-
 ...r__builder_1_1tir_1_1ElseFrame__coll__graph.svg |   95 +-
 ...builder_1_1tir_1_1ElseFrame__inherit__graph.svg |   95 +-
 ..._1_1ir__builder_1_1tir_1_1ForFrame-members.html |    6 +-
 ..._1script_1_1ir__builder_1_1tir_1_1ForFrame.html |   22 +-
 ...ir__builder_1_1tir_1_1ForFrameNode-members.html |    8 +-
 ...ript_1_1ir__builder_1_1tir_1_1ForFrameNode.html |   64 +-
 ...builder_1_1tir_1_1ForFrameNode__coll__graph.svg |  100 +-
 ...lder_1_1tir_1_1ForFrameNode__inherit__graph.svg |  100 +-
 ...ir__builder_1_1tir_1_1ForFrame__coll__graph.svg |   95 +-
 ..._builder_1_1tir_1_1ForFrame__inherit__graph.svg |   95 +-
 ...t_1_1ir__builder_1_1tir_1_1IfFrame-members.html |    6 +-
 ...1_1script_1_1ir__builder_1_1tir_1_1IfFrame.html |   22 +-
 ...1ir__builder_1_1tir_1_1IfFrameNode-members.html |    8 +-
 ...cript_1_1ir__builder_1_1tir_1_1IfFrameNode.html |   64 +-
 ..._builder_1_1tir_1_1IfFrameNode__coll__graph.svg |  164 +-
 ...ilder_1_1tir_1_1IfFrameNode__inherit__graph.svg |  100 +-
 ...1ir__builder_1_1tir_1_1IfFrame__coll__graph.svg |   95 +-
 ...__builder_1_1tir_1_1IfFrame__inherit__graph.svg |   95 +-
 ...uilder_1_1tir_1_1LaunchThreadFrame-members.html |    6 +-
 ...1_1ir__builder_1_1tir_1_1LaunchThreadFrame.html |   22 +-
 ...er_1_1tir_1_1LaunchThreadFrameNode-members.html |    8 +-
 ...r__builder_1_1tir_1_1LaunchThreadFrameNode.html |   64 +-
 ..._1tir_1_1LaunchThreadFrameNode__coll__graph.svg |  212 +-
 ...ir_1_1LaunchThreadFrameNode__inherit__graph.svg |  100 +-
 ...er_1_1tir_1_1LaunchThreadFrame__coll__graph.svg |   95 +-
 ...1_1tir_1_1LaunchThreadFrame__inherit__graph.svg |   95 +-
 ..._1_1ir__builder_1_1tir_1_1LetFrame-members.html |    6 +-
 ..._1script_1_1ir__builder_1_1tir_1_1LetFrame.html |   22 +-
 ...ir__builder_1_1tir_1_1LetFrameNode-members.html |    8 +-
 ...ript_1_1ir__builder_1_1tir_1_1LetFrameNode.html |   64 +-
 ...builder_1_1tir_1_1LetFrameNode__coll__graph.svg |  181 +-
 ...lder_1_1tir_1_1LetFrameNode__inherit__graph.svg |   98 +-
 ...ir__builder_1_1tir_1_1LetFrame__coll__graph.svg |   95 +-
 ..._builder_1_1tir_1_1LetFrame__inherit__graph.svg |   95 +-
 ...r__builder_1_1tir_1_1PrimFuncFrame-members.html |    6 +-
 ...ipt_1_1ir__builder_1_1tir_1_1PrimFuncFrame.html |   22 +-
 ...uilder_1_1tir_1_1PrimFuncFrameNode-members.html |    8 +-
 ...1_1ir__builder_1_1tir_1_1PrimFuncFrameNode.html |   64 +-
 ...er_1_1tir_1_1PrimFuncFrameNode__coll__graph.svg |  110 +-
 ...1_1tir_1_1PrimFuncFrameNode__inherit__graph.svg |  110 +-
 ...uilder_1_1tir_1_1PrimFuncFrame__coll__graph.svg |   95 +-
 ...der_1_1tir_1_1PrimFuncFrame__inherit__graph.svg |   95 +-
 ...ir__builder_1_1tir_1_1RealizeFrame-members.html |    6 +-
 ...ript_1_1ir__builder_1_1tir_1_1RealizeFrame.html |   22 +-
 ...builder_1_1tir_1_1RealizeFrameNode-members.html |    8 +-
 ..._1_1ir__builder_1_1tir_1_1RealizeFrameNode.html |   64 +-
 ...der_1_1tir_1_1RealizeFrameNode__coll__graph.svg |  214 +-
 ..._1_1tir_1_1RealizeFrameNode__inherit__graph.svg |  100 +-
 ...builder_1_1tir_1_1RealizeFrame__coll__graph.svg |   95 +-
 ...lder_1_1tir_1_1RealizeFrame__inherit__graph.svg |   95 +-
 ..._1_1ir__builder_1_1tir_1_1TIRFrame-members.html |    4 +-
 ..._1script_1_1ir__builder_1_1tir_1_1TIRFrame.html |   18 +-
 ...ir__builder_1_1tir_1_1TIRFrameNode-members.html |    6 +-
 ...ript_1_1ir__builder_1_1tir_1_1TIRFrameNode.html |   57 +-
 ...builder_1_1tir_1_1TIRFrameNode__coll__graph.svg |   71 +-
 ...lder_1_1tir_1_1TIRFrameNode__inherit__graph.svg |  552 ++--
 ...ir__builder_1_1tir_1_1TIRFrame__coll__graph.svg |   68 +-
 ..._builder_1_1tir_1_1TIRFrame__inherit__graph.svg |  442 ++-
 ...1_1ir__builder_1_1tir_1_1ThenFrame-members.html |    6 +-
 ...1script_1_1ir__builder_1_1tir_1_1ThenFrame.html |   22 +-
 ...r__builder_1_1tir_1_1ThenFrameNode-members.html |    8 +-
 ...ipt_1_1ir__builder_1_1tir_1_1ThenFrameNode.html |   66 +-
 ...uilder_1_1tir_1_1ThenFrameNode__coll__graph.svg |   93 +-
 ...der_1_1tir_1_1ThenFrameNode__inherit__graph.svg |   93 +-
 ...r__builder_1_1tir_1_1ThenFrame__coll__graph.svg |   95 +-
 ...builder_1_1tir_1_1ThenFrame__inherit__graph.svg |   95 +-
 ..._1ir__builder_1_1tir_1_1WhileFrame-members.html |    6 +-
 ...script_1_1ir__builder_1_1tir_1_1WhileFrame.html |   22 +-
 ...__builder_1_1tir_1_1WhileFrameNode-members.html |    8 +-
 ...pt_1_1ir__builder_1_1tir_1_1WhileFrameNode.html |   64 +-
 ...ilder_1_1tir_1_1WhileFrameNode__coll__graph.svg |  143 +-
 ...er_1_1tir_1_1WhileFrameNode__inherit__graph.svg |   96 +-
 ...__builder_1_1tir_1_1WhileFrame__coll__graph.svg |   95 +-
 ...uilder_1_1tir_1_1WhileFrame__inherit__graph.svg |   95 +-
 ..._1_1script_1_1printer_1_1AssertDoc-members.html |    6 +-
 ...classtvm_1_1script_1_1printer_1_1AssertDoc.html |   22 +-
 ...script_1_1printer_1_1AssertDocNode-members.html |   21 +-
 ...stvm_1_1script_1_1printer_1_1AssertDocNode.html |   62 +-
 ...pt_1_1printer_1_1AssertDocNode__coll__graph.svg |  159 +-
 ...1_1printer_1_1AssertDocNode__inherit__graph.svg |   93 +-
 ...script_1_1printer_1_1AssertDoc__coll__graph.svg |   72 +-
 ...ipt_1_1printer_1_1AssertDoc__inherit__graph.svg |   72 +-
 ..._1_1script_1_1printer_1_1AssignDoc-members.html |    6 +-
 ...classtvm_1_1script_1_1printer_1_1AssignDoc.html |   22 +-
 ...script_1_1printer_1_1AssignDocNode-members.html |   23 +-
 ...stvm_1_1script_1_1printer_1_1AssignDocNode.html |   62 +-
 ...pt_1_1printer_1_1AssignDocNode__coll__graph.svg |  161 +-
 ...1_1printer_1_1AssignDocNode__inherit__graph.svg |   95 +-
 ...script_1_1printer_1_1AssignDoc__coll__graph.svg |   72 +-
 ...ipt_1_1printer_1_1AssignDoc__inherit__graph.svg |   72 +-
 ...script_1_1printer_1_1AttrAccessDoc-members.html |    6 +-
 ...stvm_1_1script_1_1printer_1_1AttrAccessDoc.html |   22 +-
 ...pt_1_1printer_1_1AttrAccessDocNode-members.html |   27 +-
 ..._1_1script_1_1printer_1_1AttrAccessDocNode.html |   62 +-
 ..._1printer_1_1AttrAccessDocNode__coll__graph.svg |  164 +-
 ...rinter_1_1AttrAccessDocNode__inherit__graph.svg |  100 +-
 ...pt_1_1printer_1_1AttrAccessDoc__coll__graph.svg |   72 +-
 ...1_1printer_1_1AttrAccessDoc__inherit__graph.svg |   72 +-
 ...vm_1_1script_1_1printer_1_1CallDoc-members.html |    6 +-
 .../classtvm_1_1script_1_1printer_1_1CallDoc.html  |   22 +-
 ..._1script_1_1printer_1_1CallDocNode-members.html |   31 +-
 ...asstvm_1_1script_1_1printer_1_1CallDocNode.html |   62 +-
 ...ript_1_1printer_1_1CallDocNode__coll__graph.svg |  168 +-
 ...t_1_1printer_1_1CallDocNode__inherit__graph.svg |  104 +-
 ..._1script_1_1printer_1_1CallDoc__coll__graph.svg |   72 +-
 ...cript_1_1printer_1_1CallDoc__inherit__graph.svg |   72 +-
 ...m_1_1script_1_1printer_1_1ClassDoc-members.html |    6 +-
 .../classtvm_1_1script_1_1printer_1_1ClassDoc.html |   22 +-
 ...1script_1_1printer_1_1ClassDocNode-members.html |   23 +-
 ...sstvm_1_1script_1_1printer_1_1ClassDocNode.html |   62 +-
 ...ipt_1_1printer_1_1ClassDocNode__coll__graph.svg |  185 +-
 ..._1_1printer_1_1ClassDocNode__inherit__graph.svg |   95 +-
 ...1script_1_1printer_1_1ClassDoc__coll__graph.svg |   72 +-
 ...ript_1_1printer_1_1ClassDoc__inherit__graph.svg |   72 +-
 ...1_1script_1_1printer_1_1CommentDoc-members.html |    6 +-
 ...lasstvm_1_1script_1_1printer_1_1CommentDoc.html |   22 +-
 ...cript_1_1printer_1_1CommentDocNode-members.html |   17 +-
 ...tvm_1_1script_1_1printer_1_1CommentDocNode.html |   68 +-
 ...t_1_1printer_1_1CommentDocNode__coll__graph.svg |   88 +-
 ..._1printer_1_1CommentDocNode__inherit__graph.svg |   88 +-
 ...cript_1_1printer_1_1CommentDoc__coll__graph.svg |   72 +-
 ...pt_1_1printer_1_1CommentDoc__inherit__graph.svg |   72 +-
 ...vm_1_1script_1_1printer_1_1DictDoc-members.html |    6 +-
 .../classtvm_1_1script_1_1printer_1_1DictDoc.html  |   22 +-
 ..._1script_1_1printer_1_1DictDocNode-members.html |   27 +-
 ...asstvm_1_1script_1_1printer_1_1DictDocNode.html |   62 +-
 ...ript_1_1printer_1_1DictDocNode__coll__graph.svg |  100 +-
 ...t_1_1printer_1_1DictDocNode__inherit__graph.svg |  100 +-
 ..._1script_1_1printer_1_1DictDoc__coll__graph.svg |   72 +-
 ...cript_1_1printer_1_1DictDoc__inherit__graph.svg |   72 +-
 ...asstvm_1_1script_1_1printer_1_1Doc-members.html |    2 +-
 .../classtvm_1_1script_1_1printer_1_1Doc.html      |   14 +-
 ...vm_1_1script_1_1printer_1_1DocNode-members.html |   11 +-
 .../classtvm_1_1script_1_1printer_1_1DocNode.html  |   44 +-
 ..._1script_1_1printer_1_1DocNode__coll__graph.svg |   39 +-
 ...cript_1_1printer_1_1DocNode__inherit__graph.svg |  700 +++--
 ...1script_1_1printer_1_1DocStringDoc-members.html |    6 +-
 ...sstvm_1_1script_1_1printer_1_1DocStringDoc.html |   22 +-
 ...ipt_1_1printer_1_1DocStringDocNode-members.html |   17 +-
 ...m_1_1script_1_1printer_1_1DocStringDocNode.html |   68 +-
 ...1_1printer_1_1DocStringDocNode__coll__graph.svg |   88 +-
 ...printer_1_1DocStringDocNode__inherit__graph.svg |   88 +-
 ...ipt_1_1printer_1_1DocStringDoc__coll__graph.svg |   72 +-
 ..._1_1printer_1_1DocStringDoc__inherit__graph.svg |   72 +-
 ...vm_1_1script_1_1printer_1_1Doc__coll__graph.svg |   36 +-
 ...1_1script_1_1printer_1_1Doc__inherit__graph.svg |  636 ++--
 ...vm_1_1script_1_1printer_1_1ExprDoc-members.html |    4 +-
 .../classtvm_1_1script_1_1printer_1_1ExprDoc.html  |   18 +-
 ..._1script_1_1printer_1_1ExprDocNode-members.html |   21 +-
 ...asstvm_1_1script_1_1printer_1_1ExprDocNode.html |   61 +-
 ...ript_1_1printer_1_1ExprDocNode__coll__graph.svg |   55 +-
 ...t_1_1printer_1_1ExprDocNode__inherit__graph.svg |  321 +-
 ..._1script_1_1printer_1_1ExprDoc__coll__graph.svg |   54 +-
 ...cript_1_1printer_1_1ExprDoc__inherit__graph.svg |  304 +-
 ..._1script_1_1printer_1_1ExprStmtDoc-members.html |    6 +-
 ...asstvm_1_1script_1_1printer_1_1ExprStmtDoc.html |   22 +-
 ...ript_1_1printer_1_1ExprStmtDocNode-members.html |   19 +-
 ...vm_1_1script_1_1printer_1_1ExprStmtDocNode.html |   62 +-
 ..._1_1printer_1_1ExprStmtDocNode__coll__graph.svg |  150 +-
 ...1printer_1_1ExprStmtDocNode__inherit__graph.svg |   91 +-
 ...ript_1_1printer_1_1ExprStmtDoc__coll__graph.svg |   72 +-
 ...t_1_1printer_1_1ExprStmtDoc__inherit__graph.svg |   72 +-
 ...tvm_1_1script_1_1printer_1_1ForDoc-members.html |    6 +-
 .../classtvm_1_1script_1_1printer_1_1ForDoc.html   |   22 +-
 ...1_1script_1_1printer_1_1ForDocNode-members.html |   23 +-
 ...lasstvm_1_1script_1_1printer_1_1ForDocNode.html |   62 +-
 ...cript_1_1printer_1_1ForDocNode__coll__graph.svg |  161 +-
 ...pt_1_1printer_1_1ForDocNode__inherit__graph.svg |   95 +-
 ...1_1script_1_1printer_1_1ForDoc__coll__graph.svg |   72 +-
 ...script_1_1printer_1_1ForDoc__inherit__graph.svg |   72 +-
 ...stvm_1_1script_1_1printer_1_1Frame-members.html |    2 +-
 .../classtvm_1_1script_1_1printer_1_1Frame.html    |   14 +-
 ..._1_1script_1_1printer_1_1FrameNode-members.html |    4 +-
 ...classtvm_1_1script_1_1printer_1_1FrameNode.html |   30 +-
 ...script_1_1printer_1_1FrameNode__coll__graph.svg |  137 +-
 ...ipt_1_1printer_1_1FrameNode__inherit__graph.svg |   34 +-
 ..._1_1script_1_1printer_1_1Frame__coll__graph.svg |   47 +-
 ...1script_1_1printer_1_1Frame__inherit__graph.svg |   47 +-
 ..._1script_1_1printer_1_1FunctionDoc-members.html |    6 +-
 ...asstvm_1_1script_1_1printer_1_1FunctionDoc.html |   22 +-
 ...ript_1_1printer_1_1FunctionDocNode-members.html |   27 +-
 ...vm_1_1script_1_1printer_1_1FunctionDocNode.html |   62 +-
 ..._1_1printer_1_1FunctionDocNode__coll__graph.svg |  189 +-
 ...1printer_1_1FunctionDocNode__inherit__graph.svg |   99 +-
 ...ript_1_1printer_1_1FunctionDoc__coll__graph.svg |   72 +-
 ...t_1_1printer_1_1FunctionDoc__inherit__graph.svg |   72 +-
 ..._1script_1_1printer_1_1IRDocsifier-members.html |    2 +-
 ...asstvm_1_1script_1_1printer_1_1IRDocsifier.html |   14 +-
 ...ript_1_1printer_1_1IRDocsifierNode-members.html |    4 +-
 ...vm_1_1script_1_1printer_1_1IRDocsifierNode.html |   30 +-
 ..._1_1printer_1_1IRDocsifierNode__coll__graph.svg |   77 +-
 ...1printer_1_1IRDocsifierNode__inherit__graph.svg |   36 +-
 ...ript_1_1printer_1_1IRDocsifier__coll__graph.svg |   43 +-
 ...t_1_1printer_1_1IRDocsifier__inherit__graph.svg |   43 +-
 ...stvm_1_1script_1_1printer_1_1IdDoc-members.html |    6 +-
 .../classtvm_1_1script_1_1printer_1_1IdDoc.html    |   22 +-
 ..._1_1script_1_1printer_1_1IdDocNode-members.html |   25 +-
 ...classtvm_1_1script_1_1printer_1_1IdDocNode.html |   62 +-
 ...script_1_1printer_1_1IdDocNode__coll__graph.svg |   98 +-
 ...ipt_1_1printer_1_1IdDocNode__inherit__graph.svg |   98 +-
 ..._1_1script_1_1printer_1_1IdDoc__coll__graph.svg |   72 +-
 ...1script_1_1printer_1_1IdDoc__inherit__graph.svg |   72 +-
 ...stvm_1_1script_1_1printer_1_1IfDoc-members.html |    6 +-
 .../classtvm_1_1script_1_1printer_1_1IfDoc.html    |   22 +-
 ..._1_1script_1_1printer_1_1IfDocNode-members.html |   23 +-
 ...classtvm_1_1script_1_1printer_1_1IfDocNode.html |   62 +-
 ...script_1_1printer_1_1IfDocNode__coll__graph.svg |  161 +-
 ...ipt_1_1printer_1_1IfDocNode__inherit__graph.svg |   95 +-
 ..._1_1script_1_1printer_1_1IfDoc__coll__graph.svg |   72 +-
 ...1script_1_1printer_1_1IfDoc__inherit__graph.svg |   72 +-
 ...m_1_1script_1_1printer_1_1IndexDoc-members.html |    6 +-
 .../classtvm_1_1script_1_1printer_1_1IndexDoc.html |   22 +-
 ...1script_1_1printer_1_1IndexDocNode-members.html |   27 +-
 ...sstvm_1_1script_1_1printer_1_1IndexDocNode.html |   62 +-
 ...ipt_1_1printer_1_1IndexDocNode__coll__graph.svg |  164 +-
 ..._1_1printer_1_1IndexDocNode__inherit__graph.svg |  100 +-
 ...1script_1_1printer_1_1IndexDoc__coll__graph.svg |   72 +-
 ...ript_1_1printer_1_1IndexDoc__inherit__graph.svg |   72 +-
 ..._1_1script_1_1printer_1_1LambdaDoc-members.html |    6 +-
 ...classtvm_1_1script_1_1printer_1_1LambdaDoc.html |   22 +-
 ...script_1_1printer_1_1LambdaDocNode-members.html |   27 +-
 ...stvm_1_1script_1_1printer_1_1LambdaDocNode.html |   62 +-
 ...pt_1_1printer_1_1LambdaDocNode__coll__graph.svg |  164 +-
 ...1_1printer_1_1LambdaDocNode__inherit__graph.svg |  100 +-
 ...script_1_1printer_1_1LambdaDoc__coll__graph.svg |   72 +-
 ...ipt_1_1printer_1_1LambdaDoc__inherit__graph.svg |   72 +-
 ...vm_1_1script_1_1printer_1_1ListDoc-members.html |    6 +-
 .../classtvm_1_1script_1_1printer_1_1ListDoc.html  |   22 +-
 ..._1script_1_1printer_1_1ListDocNode-members.html |   25 +-
 ...asstvm_1_1script_1_1printer_1_1ListDocNode.html |   62 +-
 ...ript_1_1printer_1_1ListDocNode__coll__graph.svg |   98 +-
 ...t_1_1printer_1_1ListDocNode__inherit__graph.svg |   98 +-
 ..._1script_1_1printer_1_1ListDoc__coll__graph.svg |   72 +-
 ...cript_1_1printer_1_1ListDoc__inherit__graph.svg |   72 +-
 ...1_1script_1_1printer_1_1LiteralDoc-members.html |    6 +-
 ...lasstvm_1_1script_1_1printer_1_1LiteralDoc.html |   22 +-
 ...cript_1_1printer_1_1LiteralDocNode-members.html |   25 +-
 ...tvm_1_1script_1_1printer_1_1LiteralDocNode.html |   62 +-
 ...t_1_1printer_1_1LiteralDocNode__coll__graph.svg |   95 +-
 ..._1printer_1_1LiteralDocNode__inherit__graph.svg |   98 +-
 ...cript_1_1printer_1_1LiteralDoc__coll__graph.svg |   72 +-
 ...pt_1_1printer_1_1LiteralDoc__inherit__graph.svg |   72 +-
 ...1script_1_1printer_1_1OperationDoc-members.html |    6 +-
 ...sstvm_1_1script_1_1printer_1_1OperationDoc.html |   22 +-
 ...ipt_1_1printer_1_1OperationDocNode-members.html |   29 +-
 ...m_1_1script_1_1printer_1_1OperationDocNode.html |   62 +-
 ...1_1printer_1_1OperationDocNode__coll__graph.svg |  100 +-
 ...printer_1_1OperationDocNode__inherit__graph.svg |  100 +-
 ...ipt_1_1printer_1_1OperationDoc__coll__graph.svg |   72 +-
 ..._1_1printer_1_1OperationDoc__inherit__graph.svg |   72 +-
 ..._1_1script_1_1printer_1_1ReturnDoc-members.html |    6 +-
 ...classtvm_1_1script_1_1printer_1_1ReturnDoc.html |   22 +-
 ...script_1_1printer_1_1ReturnDocNode-members.html |   19 +-
 ...stvm_1_1script_1_1printer_1_1ReturnDocNode.html |   62 +-
 ...pt_1_1printer_1_1ReturnDocNode__coll__graph.svg |  150 +-
 ...1_1printer_1_1ReturnDocNode__inherit__graph.svg |   91 +-
 ...script_1_1printer_1_1ReturnDoc__coll__graph.svg |   72 +-
 ...ipt_1_1printer_1_1ReturnDoc__inherit__graph.svg |   72 +-
 ...m_1_1script_1_1printer_1_1ScopeDoc-members.html |    6 +-
 .../classtvm_1_1script_1_1printer_1_1ScopeDoc.html |   22 +-
 ...1script_1_1printer_1_1ScopeDocNode-members.html |   23 +-
 ...sstvm_1_1script_1_1printer_1_1ScopeDocNode.html |   62 +-
 ...ipt_1_1printer_1_1ScopeDocNode__coll__graph.svg |  161 +-
 ..._1_1printer_1_1ScopeDocNode__inherit__graph.svg |   95 +-
 ...1script_1_1printer_1_1ScopeDoc__coll__graph.svg |   72 +-
 ...ript_1_1printer_1_1ScopeDoc__inherit__graph.svg |   72 +-
 ...m_1_1script_1_1printer_1_1SliceDoc-members.html |    4 +-
 .../classtvm_1_1script_1_1printer_1_1SliceDoc.html |   18 +-
 ...1script_1_1printer_1_1SliceDocNode-members.html |   19 +-
 ...sstvm_1_1script_1_1printer_1_1SliceDocNode.html |   55 +-
 ...ipt_1_1printer_1_1SliceDocNode__coll__graph.svg |   72 +-
 ..._1_1printer_1_1SliceDocNode__inherit__graph.svg |   72 +-
 ...1script_1_1printer_1_1SliceDoc__coll__graph.svg |   54 +-
 ...ript_1_1printer_1_1SliceDoc__inherit__graph.svg |   54 +-
 ...1script_1_1printer_1_1StmtBlockDoc-members.html |    4 +-
 ...sstvm_1_1script_1_1printer_1_1StmtBlockDoc.html |   18 +-
 ...ipt_1_1printer_1_1StmtBlockDocNode-members.html |   15 +-
 ...m_1_1script_1_1printer_1_1StmtBlockDocNode.html |   55 +-
 ...1_1printer_1_1StmtBlockDocNode__coll__graph.svg |   68 +-
 ...printer_1_1StmtBlockDocNode__inherit__graph.svg |   68 +-
 ...ipt_1_1printer_1_1StmtBlockDoc__coll__graph.svg |   54 +-
 ..._1_1printer_1_1StmtBlockDoc__inherit__graph.svg |   54 +-
 ...vm_1_1script_1_1printer_1_1StmtDoc-members.html |    4 +-
 .../classtvm_1_1script_1_1printer_1_1StmtDoc.html  |   18 +-
 ..._1script_1_1printer_1_1StmtDocNode-members.html |   15 +-
 ...asstvm_1_1script_1_1printer_1_1StmtDocNode.html |   55 +-
 ...ript_1_1printer_1_1StmtDocNode__coll__graph.svg |   66 +-
 ...t_1_1printer_1_1StmtDocNode__inherit__graph.svg |  374 ++-
 ..._1script_1_1printer_1_1StmtDoc__coll__graph.svg |   54 +-
 ...cript_1_1printer_1_1StmtDoc__inherit__graph.svg |  324 +-
 ...m_1_1script_1_1printer_1_1TupleDoc-members.html |    6 +-
 .../classtvm_1_1script_1_1printer_1_1TupleDoc.html |   22 +-
 ...1script_1_1printer_1_1TupleDocNode-members.html |   25 +-
 ...sstvm_1_1script_1_1printer_1_1TupleDocNode.html |   62 +-
 ...ipt_1_1printer_1_1TupleDocNode__coll__graph.svg |   98 +-
 ..._1_1printer_1_1TupleDocNode__inherit__graph.svg |   98 +-
 ...1script_1_1printer_1_1TupleDoc__coll__graph.svg |   72 +-
 ...ript_1_1printer_1_1TupleDoc__inherit__graph.svg |   72 +-
 ...m_1_1script_1_1printer_1_1WhileDoc-members.html |    6 +-
 .../classtvm_1_1script_1_1printer_1_1WhileDoc.html |   22 +-
 ...1script_1_1printer_1_1WhileDocNode-members.html |   21 +-
 ...sstvm_1_1script_1_1printer_1_1WhileDocNode.html |   62 +-
 ...ipt_1_1printer_1_1WhileDocNode__coll__graph.svg |  159 +-
 ..._1_1printer_1_1WhileDocNode__inherit__graph.svg |   93 +-
 ...1script_1_1printer_1_1WhileDoc__coll__graph.svg |   72 +-
 ...ript_1_1printer_1_1WhileDoc__inherit__graph.svg |   72 +-
 ...lasstvm_1_1te_1_1BaseComputeOpNode-members.html |   27 +-
 .../classtvm_1_1te_1_1BaseComputeOpNode.html       |   55 +-
 ...tvm_1_1te_1_1BaseComputeOpNode__coll__graph.svg |   74 +-
 ..._1_1te_1_1BaseComputeOpNode__inherit__graph.svg |  109 +-
 .../classtvm_1_1te_1_1ComputeOp-members.html       |    2 +-
 .../api/doxygen/classtvm_1_1te_1_1ComputeOp.html   |   14 +-
 .../classtvm_1_1te_1_1ComputeOpNode-members.html   |   33 +-
 .../doxygen/classtvm_1_1te_1_1ComputeOpNode.html   |   62 +-
 ...lasstvm_1_1te_1_1ComputeOpNode__coll__graph.svg |  109 +-
 ...stvm_1_1te_1_1ComputeOpNode__inherit__graph.svg |  109 +-
 .../classtvm_1_1te_1_1ComputeOp__coll__graph.svg   |   60 +-
 ...classtvm_1_1te_1_1ComputeOp__inherit__graph.svg |   60 +-
 .../classtvm_1_1te_1_1ExternOp-members.html        |    2 +-
 .../api/doxygen/classtvm_1_1te_1_1ExternOp.html    |   14 +-
 .../classtvm_1_1te_1_1ExternOpNode-members.html    |   33 +-
 .../doxygen/classtvm_1_1te_1_1ExternOpNode.html    |   55 +-
 ...classtvm_1_1te_1_1ExternOpNode__coll__graph.svg |  126 +-
 ...sstvm_1_1te_1_1ExternOpNode__inherit__graph.svg |   80 +-
 .../classtvm_1_1te_1_1ExternOp__coll__graph.svg    |   60 +-
 .../classtvm_1_1te_1_1ExternOp__inherit__graph.svg |   60 +-
 .../api/doxygen/classtvm_1_1te_1_1Operation.html   |    2 +-
 .../classtvm_1_1te_1_1OperationNode-members.html   |   21 +-
 .../doxygen/classtvm_1_1te_1_1OperationNode.html   |   48 +-
 ...lasstvm_1_1te_1_1OperationNode__coll__graph.svg |   41 +-
 ...stvm_1_1te_1_1OperationNode__inherit__graph.svg |  218 +-
 ...classtvm_1_1te_1_1Operation__inherit__graph.svg |  120 +-
 .../classtvm_1_1te_1_1PlaceholderOp-members.html   |    2 +-
 .../doxygen/classtvm_1_1te_1_1PlaceholderOp.html   |   14 +-
 ...lasstvm_1_1te_1_1PlaceholderOpNode-members.html |   27 +-
 .../classtvm_1_1te_1_1PlaceholderOpNode.html       |   55 +-
 ...tvm_1_1te_1_1PlaceholderOpNode__coll__graph.svg |  146 +-
 ..._1_1te_1_1PlaceholderOpNode__inherit__graph.svg |   74 +-
 ...lasstvm_1_1te_1_1PlaceholderOp__coll__graph.svg |   60 +-
 ...stvm_1_1te_1_1PlaceholderOp__inherit__graph.svg |   60 +-
 .../doxygen/classtvm_1_1te_1_1ScanOp-members.html  |    2 +-
 .../api/doxygen/classtvm_1_1te_1_1ScanOp.html      |   14 +-
 .../classtvm_1_1te_1_1ScanOpNode-members.html      |   37 +-
 .../api/doxygen/classtvm_1_1te_1_1ScanOpNode.html  |   55 +-
 .../classtvm_1_1te_1_1ScanOpNode__coll__graph.svg  |  156 +-
 ...lasstvm_1_1te_1_1ScanOpNode__inherit__graph.svg |   84 +-
 .../classtvm_1_1te_1_1ScanOp__coll__graph.svg      |   60 +-
 .../classtvm_1_1te_1_1ScanOp__inherit__graph.svg   |   60 +-
 .../doxygen/classtvm_1_1te_1_1Tensor-members.html  |    6 +-
 .../api/doxygen/classtvm_1_1te_1_1Tensor.html      |   18 +-
 .../classtvm_1_1te_1_1TensorNode-members.html      |   31 +-
 .../api/doxygen/classtvm_1_1te_1_1TensorNode.html  |   58 +-
 .../classtvm_1_1te_1_1TensorNode__coll__graph.svg  |  205 +-
 ...lasstvm_1_1te_1_1TensorNode__inherit__graph.svg |  105 +-
 .../classtvm_1_1te_1_1Tensor__coll__graph.svg      |   24 +-
 .../classtvm_1_1te_1_1Tensor__inherit__graph.svg   |   24 +-
 .../doxygen/classtvm_1_1tir_1_1Add-members.html    |    6 +-
 .../api/doxygen/classtvm_1_1tir_1_1Add.html        |   22 +-
 .../classtvm_1_1tir_1_1AddNode-members.html        |   25 +-
 .../api/doxygen/classtvm_1_1tir_1_1AddNode.html    |   25 +-
 .../classtvm_1_1tir_1_1AddNode__coll__graph.svg    |  212 +-
 .../classtvm_1_1tir_1_1AddNode__inherit__graph.svg |  110 +-
 .../classtvm_1_1tir_1_1Add__coll__graph.svg        |   72 +-
 .../classtvm_1_1tir_1_1Add__inherit__graph.svg     |   72 +-
 .../classtvm_1_1tir_1_1Allocate-members.html       |    4 +-
 .../api/doxygen/classtvm_1_1tir_1_1Allocate.html   |   18 +-
 .../classtvm_1_1tir_1_1AllocateConst-members.html  |    4 +-
 .../doxygen/classtvm_1_1tir_1_1AllocateConst.html  |   18 +-
 ...asstvm_1_1tir_1_1AllocateConstNode-members.html |   35 +-
 .../classtvm_1_1tir_1_1AllocateConstNode.html      |   55 +-
 ...vm_1_1tir_1_1AllocateConstNode__coll__graph.svg |  284 +-
 ...1_1tir_1_1AllocateConstNode__inherit__graph.svg |   90 +-
 ...asstvm_1_1tir_1_1AllocateConst__coll__graph.svg |   54 +-
 ...tvm_1_1tir_1_1AllocateConst__inherit__graph.svg |   54 +-
 .../classtvm_1_1tir_1_1AllocateNode-members.html   |   33 +-
 .../doxygen/classtvm_1_1tir_1_1AllocateNode.html   |   55 +-
 ...lasstvm_1_1tir_1_1AllocateNode__coll__graph.svg |  292 +-
 ...stvm_1_1tir_1_1AllocateNode__inherit__graph.svg |   88 +-
 .../classtvm_1_1tir_1_1Allocate__coll__graph.svg   |   54 +-
 ...classtvm_1_1tir_1_1Allocate__inherit__graph.svg |   54 +-
 .../doxygen/classtvm_1_1tir_1_1And-members.html    |    6 +-
 .../api/doxygen/classtvm_1_1tir_1_1And.html        |   22 +-
 .../classtvm_1_1tir_1_1AndNode-members.html        |   21 +-
 .../api/doxygen/classtvm_1_1tir_1_1AndNode.html    |   61 +-
 .../classtvm_1_1tir_1_1AndNode__coll__graph.svg    |  242 +-
 .../classtvm_1_1tir_1_1AndNode__inherit__graph.svg |   95 +-
 .../classtvm_1_1tir_1_1And__coll__graph.svg        |   72 +-
 .../classtvm_1_1tir_1_1And__inherit__graph.svg     |   72 +-
 .../classtvm_1_1tir_1_1AssertStmt-members.html     |    4 +-
 .../api/doxygen/classtvm_1_1tir_1_1AssertStmt.html |   18 +-
 .../classtvm_1_1tir_1_1AssertStmtNode-members.html |   23 +-
 .../doxygen/classtvm_1_1tir_1_1AssertStmtNode.html |   55 +-
 ...sstvm_1_1tir_1_1AssertStmtNode__coll__graph.svg |  187 +-
 ...vm_1_1tir_1_1AssertStmtNode__inherit__graph.svg |   78 +-
 .../classtvm_1_1tir_1_1AssertStmt__coll__graph.svg |   54 +-
 ...asstvm_1_1tir_1_1AssertStmt__inherit__graph.svg |   54 +-
 .../classtvm_1_1tir_1_1AttrStmt-members.html       |    4 +-
 .../api/doxygen/classtvm_1_1tir_1_1AttrStmt.html   |   18 +-
 .../classtvm_1_1tir_1_1AttrStmtNode-members.html   |   25 +-
 .../doxygen/classtvm_1_1tir_1_1AttrStmtNode.html   |   55 +-
 ...lasstvm_1_1tir_1_1AttrStmtNode__coll__graph.svg |  204 +-
 ...stvm_1_1tir_1_1AttrStmtNode__inherit__graph.svg |   80 +-
 .../classtvm_1_1tir_1_1AttrStmt__coll__graph.svg   |   54 +-
 ...classtvm_1_1tir_1_1AttrStmt__inherit__graph.svg |   54 +-
 ...classtvm_1_1tir_1_1BijectiveLayout-members.html |    2 +-
 .../classtvm_1_1tir_1_1BijectiveLayout.html        |   14 +-
 ...stvm_1_1tir_1_1BijectiveLayoutNode-members.html |   17 +-
 .../classtvm_1_1tir_1_1BijectiveLayoutNode.html    |   48 +-
 ..._1_1tir_1_1BijectiveLayoutNode__coll__graph.svg |  103 +-
 ...1tir_1_1BijectiveLayoutNode__inherit__graph.svg |   49 +-
 ...stvm_1_1tir_1_1BijectiveLayout__coll__graph.svg |   36 +-
 ...m_1_1tir_1_1BijectiveLayout__inherit__graph.svg |   36 +-
 .../classtvm_1_1tir_1_1BinaryOpNode-members.html   |   10 +-
 .../doxygen/classtvm_1_1tir_1_1BinaryOpNode.html   |   83 +-
 ...lasstvm_1_1tir_1_1BinaryOpNode__coll__graph.svg |  241 +-
 ...stvm_1_1tir_1_1BinaryOpNode__inherit__graph.svg |   92 +-
 .../doxygen/classtvm_1_1tir_1_1Block-members.html  |    4 +-
 .../api/doxygen/classtvm_1_1tir_1_1Block.html      |   18 +-
 ...stvm_1_1tir_1_1BlockDependenceInfo-members.html |    2 +-
 .../classtvm_1_1tir_1_1BlockDependenceInfo.html    |   14 +-
 ..._1_1tir_1_1BlockDependenceInfoNode-members.html |   11 +-
 ...classtvm_1_1tir_1_1BlockDependenceInfoNode.html |   48 +-
 ...tir_1_1BlockDependenceInfoNode__coll__graph.svg |   43 +-
 ..._1_1BlockDependenceInfoNode__inherit__graph.svg |   43 +-
 ..._1_1tir_1_1BlockDependenceInfo__coll__graph.svg |   41 +-
 ...1tir_1_1BlockDependenceInfo__inherit__graph.svg |   41 +-
 .../classtvm_1_1tir_1_1BlockNode-members.html      |   35 +-
 .../api/doxygen/classtvm_1_1tir_1_1BlockNode.html  |   55 +-
 .../classtvm_1_1tir_1_1BlockNode__coll__graph.svg  |  150 +-
 ...lasstvm_1_1tir_1_1BlockNode__inherit__graph.svg |   90 +-
 .../classtvm_1_1tir_1_1BlockRV-members.html        |    2 +-
 .../api/doxygen/classtvm_1_1tir_1_1BlockRV.html    |   14 +-
 .../classtvm_1_1tir_1_1BlockRVNode-members.html    |    5 +-
 .../doxygen/classtvm_1_1tir_1_1BlockRVNode.html    |   49 +-
 ...classtvm_1_1tir_1_1BlockRVNode__coll__graph.svg |   36 +-
 ...sstvm_1_1tir_1_1BlockRVNode__inherit__graph.svg |   36 +-
 .../classtvm_1_1tir_1_1BlockRV__coll__graph.svg    |   36 +-
 .../classtvm_1_1tir_1_1BlockRV__inherit__graph.svg |   36 +-
 .../classtvm_1_1tir_1_1BlockRealize-members.html   |    4 +-
 .../doxygen/classtvm_1_1tir_1_1BlockRealize.html   |   18 +-
 ...lasstvm_1_1tir_1_1BlockRealizeNode-members.html |   23 +-
 .../classtvm_1_1tir_1_1BlockRealizeNode.html       |   55 +-
 ...tvm_1_1tir_1_1BlockRealizeNode__coll__graph.svg |  210 +-
 ..._1_1tir_1_1BlockRealizeNode__inherit__graph.svg |   78 +-
 ...lasstvm_1_1tir_1_1BlockRealize__coll__graph.svg |   54 +-
 ...stvm_1_1tir_1_1BlockRealize__inherit__graph.svg |   54 +-
 .../classtvm_1_1tir_1_1BlockScope-members.html     |    2 +-
 .../api/doxygen/classtvm_1_1tir_1_1BlockScope.html |   14 +-
 .../classtvm_1_1tir_1_1BlockScopeNode-members.html |   15 +-
 .../doxygen/classtvm_1_1tir_1_1BlockScopeNode.html |   48 +-
 ...sstvm_1_1tir_1_1BlockScopeNode__coll__graph.svg |   43 +-
 ...vm_1_1tir_1_1BlockScopeNode__inherit__graph.svg |   43 +-
 .../classtvm_1_1tir_1_1BlockScope__coll__graph.svg |   41 +-
 ...asstvm_1_1tir_1_1BlockScope__inherit__graph.svg |   41 +-
 .../classtvm_1_1tir_1_1Block__coll__graph.svg      |   54 +-
 .../classtvm_1_1tir_1_1Block__inherit__graph.svg   |   54 +-
 .../classtvm_1_1tir_1_1Broadcast-members.html      |    6 +-
 .../api/doxygen/classtvm_1_1tir_1_1Broadcast.html  |   22 +-
 .../classtvm_1_1tir_1_1BroadcastNode-members.html  |   21 +-
 .../doxygen/classtvm_1_1tir_1_1BroadcastNode.html  |   61 +-
 ...asstvm_1_1tir_1_1BroadcastNode__coll__graph.svg |  242 +-
 ...tvm_1_1tir_1_1BroadcastNode__inherit__graph.svg |   95 +-
 .../classtvm_1_1tir_1_1Broadcast__coll__graph.svg  |   72 +-
 ...lasstvm_1_1tir_1_1Broadcast__inherit__graph.svg |   72 +-
 .../doxygen/classtvm_1_1tir_1_1Buffer-members.html |    2 +-
 .../api/doxygen/classtvm_1_1tir_1_1Buffer.html     |   14 +-
 .../classtvm_1_1tir_1_1BufferLoad-members.html     |    6 +-
 .../api/doxygen/classtvm_1_1tir_1_1BufferLoad.html |   22 +-
 .../classtvm_1_1tir_1_1BufferLoadNode-members.html |   31 +-
 .../doxygen/classtvm_1_1tir_1_1BufferLoadNode.html |   81 +-
 ...sstvm_1_1tir_1_1BufferLoadNode__coll__graph.svg |  239 +-
 ...vm_1_1tir_1_1BufferLoadNode__inherit__graph.svg |   97 +-
 .../classtvm_1_1tir_1_1BufferLoad__coll__graph.svg |   72 +-
 ...asstvm_1_1tir_1_1BufferLoad__inherit__graph.svg |   72 +-
 .../classtvm_1_1tir_1_1BufferNode-members.html     |   37 +-
 .../api/doxygen/classtvm_1_1tir_1_1BufferNode.html |   44 +-
 .../classtvm_1_1tir_1_1BufferNode__coll__graph.svg |  255 +-
 ...asstvm_1_1tir_1_1BufferNode__inherit__graph.svg |   59 +-
 .../classtvm_1_1tir_1_1BufferRealize-members.html  |    6 +-
 .../doxygen/classtvm_1_1tir_1_1BufferRealize.html  |   54 +-
 ...asstvm_1_1tir_1_1BufferRealizeNode-members.html |   29 +-
 .../classtvm_1_1tir_1_1BufferRealizeNode.html      |   55 +-
 ...vm_1_1tir_1_1BufferRealizeNode__coll__graph.svg |  236 +-
 ...1_1tir_1_1BufferRealizeNode__inherit__graph.svg |   84 +-
 ...asstvm_1_1tir_1_1BufferRealize__coll__graph.svg |   54 +-
 ...tvm_1_1tir_1_1BufferRealize__inherit__graph.svg |   54 +-
 .../classtvm_1_1tir_1_1BufferRegion-members.html   |    4 +-
 .../doxygen/classtvm_1_1tir_1_1BufferRegion.html   |   18 +-
 ...lasstvm_1_1tir_1_1BufferRegionNode-members.html |   17 +-
 .../classtvm_1_1tir_1_1BufferRegionNode.html       |   51 +-
 ...tvm_1_1tir_1_1BufferRegionNode__coll__graph.svg |  125 +-
 ..._1_1tir_1_1BufferRegionNode__inherit__graph.svg |   69 +-
 ...lasstvm_1_1tir_1_1BufferRegion__coll__graph.svg |   54 +-
 ...stvm_1_1tir_1_1BufferRegion__inherit__graph.svg |   54 +-
 .../classtvm_1_1tir_1_1BufferStore-members.html    |    4 +-
 .../doxygen/classtvm_1_1tir_1_1BufferStore.html    |   18 +-
 ...classtvm_1_1tir_1_1BufferStoreNode-members.html |   25 +-
 .../classtvm_1_1tir_1_1BufferStoreNode.html        |   59 +-
 ...stvm_1_1tir_1_1BufferStoreNode__coll__graph.svg |  210 +-
 ...m_1_1tir_1_1BufferStoreNode__inherit__graph.svg |   80 +-
 ...classtvm_1_1tir_1_1BufferStore__coll__graph.svg |   54 +-
 ...sstvm_1_1tir_1_1BufferStore__inherit__graph.svg |   54 +-
 .../classtvm_1_1tir_1_1Buffer__coll__graph.svg     |   36 +-
 .../classtvm_1_1tir_1_1Buffer__inherit__graph.svg  |   36 +-
 .../doxygen/classtvm_1_1tir_1_1Call-members.html   |    6 +-
 .../api/doxygen/classtvm_1_1tir_1_1Call.html       |   22 +-
 .../classtvm_1_1tir_1_1CallNode-members.html       |   21 +-
 .../api/doxygen/classtvm_1_1tir_1_1CallNode.html   |   61 +-
 .../classtvm_1_1tir_1_1CallNode__coll__graph.svg   |  233 +-
 ...classtvm_1_1tir_1_1CallNode__inherit__graph.svg |   95 +-
 .../classtvm_1_1tir_1_1Call__coll__graph.svg       |   72 +-
 .../classtvm_1_1tir_1_1Call__inherit__graph.svg    |   72 +-
 .../doxygen/classtvm_1_1tir_1_1Cast-members.html   |    6 +-
 .../api/doxygen/classtvm_1_1tir_1_1Cast.html       |   22 +-
 .../classtvm_1_1tir_1_1CastNode-members.html       |   19 +-
 .../api/doxygen/classtvm_1_1tir_1_1CastNode.html   |   61 +-
 .../classtvm_1_1tir_1_1CastNode__coll__graph.svg   |  240 +-
 ...classtvm_1_1tir_1_1CastNode__inherit__graph.svg |   93 +-
 .../classtvm_1_1tir_1_1Cast__coll__graph.svg       |   72 +-
 .../classtvm_1_1tir_1_1Cast__inherit__graph.svg    |   72 +-
 .../classtvm_1_1tir_1_1CmpOpNode-members.html      |   10 +-
 .../api/doxygen/classtvm_1_1tir_1_1CmpOpNode.html  |   83 +-
 .../classtvm_1_1tir_1_1CmpOpNode__coll__graph.svg  |  241 +-
 ...lasstvm_1_1tir_1_1CmpOpNode__inherit__graph.svg |   92 +-
 .../classtvm_1_1tir_1_1CommReducer-members.html    |    2 +-
 .../doxygen/classtvm_1_1tir_1_1CommReducer.html    |   14 +-
 ...classtvm_1_1tir_1_1CommReducerNode-members.html |   19 +-
 .../classtvm_1_1tir_1_1CommReducerNode.html        |   44 +-
 ...stvm_1_1tir_1_1CommReducerNode__coll__graph.svg |   85 +-
 ...m_1_1tir_1_1CommReducerNode__inherit__graph.svg |   47 +-
 ...classtvm_1_1tir_1_1CommReducer__coll__graph.svg |   36 +-
 ...sstvm_1_1tir_1_1CommReducer__inherit__graph.svg |   36 +-
 .../classtvm_1_1tir_1_1DataProducer-members.html   |    4 +-
 .../doxygen/classtvm_1_1tir_1_1DataProducer.html   |   16 +-
 ...lasstvm_1_1tir_1_1DataProducerNode-members.html |   17 +-
 .../classtvm_1_1tir_1_1DataProducerNode.html       |   56 +-
 ...tvm_1_1tir_1_1DataProducerNode__coll__graph.svg |   60 +-
 ..._1_1tir_1_1DataProducerNode__inherit__graph.svg |  105 +-
 ...lasstvm_1_1tir_1_1DataProducer__coll__graph.svg |   54 +-
 ...stvm_1_1tir_1_1DataProducer__inherit__graph.svg |   24 +-
 .../classtvm_1_1tir_1_1DeclBuffer-members.html     |    4 +-
 .../api/doxygen/classtvm_1_1tir_1_1DeclBuffer.html |   18 +-
 .../classtvm_1_1tir_1_1DeclBufferNode-members.html |   21 +-
 .../doxygen/classtvm_1_1tir_1_1DeclBufferNode.html |   55 +-
 ...sstvm_1_1tir_1_1DeclBufferNode__coll__graph.svg |  181 +-
 ...vm_1_1tir_1_1DeclBufferNode__inherit__graph.svg |   76 +-
 .../classtvm_1_1tir_1_1DeclBuffer__coll__graph.svg |   54 +-
 ...asstvm_1_1tir_1_1DeclBuffer__inherit__graph.svg |   54 +-
 .../classtvm_1_1tir_1_1Dependency-members.html     |    2 +-
 .../api/doxygen/classtvm_1_1tir_1_1Dependency.html |   14 +-
 .../classtvm_1_1tir_1_1DependencyNode-members.html |   11 +-
 .../doxygen/classtvm_1_1tir_1_1DependencyNode.html |   48 +-
 ...sstvm_1_1tir_1_1DependencyNode__coll__graph.svg |   84 +-
 ...vm_1_1tir_1_1DependencyNode__inherit__graph.svg |   43 +-
 .../classtvm_1_1tir_1_1Dependency__coll__graph.svg |   36 +-
 ...asstvm_1_1tir_1_1Dependency__inherit__graph.svg |   36 +-
 .../doxygen/classtvm_1_1tir_1_1Div-members.html    |    6 +-
 .../api/doxygen/classtvm_1_1tir_1_1Div.html        |   22 +-
 .../classtvm_1_1tir_1_1DivNode-members.html        |   25 +-
 .../api/doxygen/classtvm_1_1tir_1_1DivNode.html    |   25 +-
 .../classtvm_1_1tir_1_1DivNode__coll__graph.svg    |  212 +-
 .../classtvm_1_1tir_1_1DivNode__inherit__graph.svg |  110 +-
 .../classtvm_1_1tir_1_1Div__coll__graph.svg        |   72 +-
 .../classtvm_1_1tir_1_1Div__inherit__graph.svg     |   72 +-
 .../api/doxygen/classtvm_1_1tir_1_1EQ-members.html |    6 +-
 .../api/doxygen/classtvm_1_1tir_1_1EQ.html         |   22 +-
 .../doxygen/classtvm_1_1tir_1_1EQNode-members.html |   25 +-
 .../api/doxygen/classtvm_1_1tir_1_1EQNode.html     |   25 +-
 .../classtvm_1_1tir_1_1EQNode__coll__graph.svg     |  212 +-
 .../classtvm_1_1tir_1_1EQNode__inherit__graph.svg  |  110 +-
 .../doxygen/classtvm_1_1tir_1_1EQ__coll__graph.svg |   72 +-
 .../classtvm_1_1tir_1_1EQ__inherit__graph.svg      |   72 +-
 .../classtvm_1_1tir_1_1Evaluate-members.html       |    4 +-
 .../api/doxygen/classtvm_1_1tir_1_1Evaluate.html   |   18 +-
 .../classtvm_1_1tir_1_1EvaluateNode-members.html   |   19 +-
 .../doxygen/classtvm_1_1tir_1_1EvaluateNode.html   |   55 +-
 ...lasstvm_1_1tir_1_1EvaluateNode__coll__graph.svg |  161 +-
 ...stvm_1_1tir_1_1EvaluateNode__inherit__graph.svg |   74 +-
 .../classtvm_1_1tir_1_1Evaluate__coll__graph.svg   |   54 +-
 ...classtvm_1_1tir_1_1Evaluate__inherit__graph.svg |   54 +-
 .../classtvm_1_1tir_1_1FloorDiv-members.html       |    6 +-
 .../api/doxygen/classtvm_1_1tir_1_1FloorDiv.html   |   22 +-
 .../classtvm_1_1tir_1_1FloorDivNode-members.html   |   25 +-
 .../doxygen/classtvm_1_1tir_1_1FloorDivNode.html   |   25 +-
 ...lasstvm_1_1tir_1_1FloorDivNode__coll__graph.svg |  212 +-
 ...stvm_1_1tir_1_1FloorDivNode__inherit__graph.svg |  110 +-
 .../classtvm_1_1tir_1_1FloorDiv__coll__graph.svg   |   72 +-
 ...classtvm_1_1tir_1_1FloorDiv__inherit__graph.svg |   72 +-
 .../classtvm_1_1tir_1_1FloorMod-members.html       |    6 +-
 .../api/doxygen/classtvm_1_1tir_1_1FloorMod.html   |   22 +-
 .../classtvm_1_1tir_1_1FloorModNode-members.html   |   25 +-
 .../doxygen/classtvm_1_1tir_1_1FloorModNode.html   |   25 +-
 ...lasstvm_1_1tir_1_1FloorModNode__coll__graph.svg |  212 +-
 ...stvm_1_1tir_1_1FloorModNode__inherit__graph.svg |  110 +-
 .../classtvm_1_1tir_1_1FloorMod__coll__graph.svg   |   72 +-
 ...classtvm_1_1tir_1_1FloorMod__inherit__graph.svg |   72 +-
 .../doxygen/classtvm_1_1tir_1_1For-members.html    |    4 +-
 .../api/doxygen/classtvm_1_1tir_1_1For.html        |   18 +-
 .../classtvm_1_1tir_1_1ForNode-members.html        |   31 +-
 .../api/doxygen/classtvm_1_1tir_1_1ForNode.html    |   61 +-
 .../classtvm_1_1tir_1_1ForNode__coll__graph.svg    |  224 +-
 .../classtvm_1_1tir_1_1ForNode__inherit__graph.svg |   86 +-
 .../classtvm_1_1tir_1_1For__coll__graph.svg        |   54 +-
 .../classtvm_1_1tir_1_1For__inherit__graph.svg     |   54 +-
 .../api/doxygen/classtvm_1_1tir_1_1GE-members.html |    6 +-
 .../api/doxygen/classtvm_1_1tir_1_1GE.html         |   22 +-
 .../doxygen/classtvm_1_1tir_1_1GENode-members.html |   25 +-
 .../api/doxygen/classtvm_1_1tir_1_1GENode.html     |   25 +-
 .../classtvm_1_1tir_1_1GENode__coll__graph.svg     |  212 +-
 .../classtvm_1_1tir_1_1GENode__inherit__graph.svg  |  110 +-
 .../doxygen/classtvm_1_1tir_1_1GE__coll__graph.svg |   72 +-
 .../classtvm_1_1tir_1_1GE__inherit__graph.svg      |   72 +-
 .../api/doxygen/classtvm_1_1tir_1_1GT-members.html |    6 +-
 .../api/doxygen/classtvm_1_1tir_1_1GT.html         |   22 +-
 .../doxygen/classtvm_1_1tir_1_1GTNode-members.html |   25 +-
 .../api/doxygen/classtvm_1_1tir_1_1GTNode.html     |   25 +-
 .../classtvm_1_1tir_1_1GTNode__coll__graph.svg     |  212 +-
 .../classtvm_1_1tir_1_1GTNode__inherit__graph.svg  |  110 +-
 .../doxygen/classtvm_1_1tir_1_1GT__coll__graph.svg |   72 +-
 .../classtvm_1_1tir_1_1GT__inherit__graph.svg      |   72 +-
 .../classtvm_1_1tir_1_1IfThenElse-members.html     |    4 +-
 .../api/doxygen/classtvm_1_1tir_1_1IfThenElse.html |   18 +-
 .../classtvm_1_1tir_1_1IfThenElseNode-members.html |   23 +-
 .../doxygen/classtvm_1_1tir_1_1IfThenElseNode.html |   55 +-
 ...sstvm_1_1tir_1_1IfThenElseNode__coll__graph.svg |  186 +-
 ...vm_1_1tir_1_1IfThenElseNode__inherit__graph.svg |   78 +-
 .../classtvm_1_1tir_1_1IfThenElse__coll__graph.svg |   54 +-
 ...asstvm_1_1tir_1_1IfThenElse__inherit__graph.svg |   54 +-
 .../classtvm_1_1tir_1_1IndexMap-members.html       |    2 +-
 .../api/doxygen/classtvm_1_1tir_1_1IndexMap.html   |   14 +-
 .../classtvm_1_1tir_1_1IndexMapNode-members.html   |   25 +-
 .../doxygen/classtvm_1_1tir_1_1IndexMapNode.html   |   44 +-
 ...lasstvm_1_1tir_1_1IndexMapNode__coll__graph.svg |   45 +-
 ...stvm_1_1tir_1_1IndexMapNode__inherit__graph.svg |   45 +-
 .../classtvm_1_1tir_1_1IndexMap__coll__graph.svg   |   36 +-
 ...classtvm_1_1tir_1_1IndexMap__inherit__graph.svg |   36 +-
 .../classtvm_1_1tir_1_1Instruction-members.html    |    2 +-
 .../doxygen/classtvm_1_1tir_1_1Instruction.html    |   14 +-
 ...classtvm_1_1tir_1_1InstructionKind-members.html |    2 +-
 .../classtvm_1_1tir_1_1InstructionKind.html        |   14 +-
 ...stvm_1_1tir_1_1InstructionKindNode-members.html |   19 +-
 .../classtvm_1_1tir_1_1InstructionKindNode.html    |   48 +-
 ..._1_1tir_1_1InstructionKindNode__coll__graph.svg |   49 +-
 ...1tir_1_1InstructionKindNode__inherit__graph.svg |   49 +-
 ...stvm_1_1tir_1_1InstructionKind__coll__graph.svg |   36 +-
 ...m_1_1tir_1_1InstructionKind__inherit__graph.svg |   36 +-
 ...classtvm_1_1tir_1_1InstructionNode-members.html |   13 +-
 .../classtvm_1_1tir_1_1InstructionNode.html        |   48 +-
 ...stvm_1_1tir_1_1InstructionNode__coll__graph.svg |   81 +-
 ...m_1_1tir_1_1InstructionNode__inherit__graph.svg |   45 +-
 ...classtvm_1_1tir_1_1Instruction__coll__graph.svg |   36 +-
 ...sstvm_1_1tir_1_1Instruction__inherit__graph.svg |   36 +-
 .../classtvm_1_1tir_1_1IterVar-members.html        |    4 +-
 .../api/doxygen/classtvm_1_1tir_1_1IterVar.html    |   18 +-
 .../classtvm_1_1tir_1_1IterVarNode-members.html    |   23 +-
 .../doxygen/classtvm_1_1tir_1_1IterVarNode.html    |   51 +-
 ...classtvm_1_1tir_1_1IterVarNode__coll__graph.svg |  219 +-
 ...sstvm_1_1tir_1_1IterVarNode__inherit__graph.svg |   75 +-
 .../classtvm_1_1tir_1_1IterVar__coll__graph.svg    |   54 +-
 .../classtvm_1_1tir_1_1IterVar__inherit__graph.svg |   54 +-
 .../api/doxygen/classtvm_1_1tir_1_1LE-members.html |    6 +-
 .../api/doxygen/classtvm_1_1tir_1_1LE.html         |   22 +-
 .../doxygen/classtvm_1_1tir_1_1LE__coll__graph.svg |   72 +-
 .../classtvm_1_1tir_1_1LE__inherit__graph.svg      |   72 +-
 .../api/doxygen/classtvm_1_1tir_1_1LT-members.html |    6 +-
 .../api/doxygen/classtvm_1_1tir_1_1LT.html         |   22 +-
 .../doxygen/classtvm_1_1tir_1_1LTNode-members.html |   25 +-
 .../api/doxygen/classtvm_1_1tir_1_1LTNode.html     |   25 +-
 .../classtvm_1_1tir_1_1LTNode__coll__graph.svg     |  212 +-
 .../classtvm_1_1tir_1_1LTNode__inherit__graph.svg  |  110 +-
 .../doxygen/classtvm_1_1tir_1_1LT__coll__graph.svg |   72 +-
 .../classtvm_1_1tir_1_1LT__inherit__graph.svg      |   72 +-
 .../doxygen/classtvm_1_1tir_1_1Layout-members.html |    2 +-
 .../api/doxygen/classtvm_1_1tir_1_1Layout.html     |   10 +-
 .../classtvm_1_1tir_1_1LayoutNode-members.html     |    9 +-
 .../api/doxygen/classtvm_1_1tir_1_1LayoutNode.html |   48 +-
 .../classtvm_1_1tir_1_1LayoutNode__coll__graph.svg |   41 +-
 ...asstvm_1_1tir_1_1LayoutNode__inherit__graph.svg |   41 +-
 .../doxygen/classtvm_1_1tir_1_1Let-members.html    |    6 +-
 .../api/doxygen/classtvm_1_1tir_1_1Let.html        |   22 +-
 .../classtvm_1_1tir_1_1LetNode-members.html        |   23 +-
 .../api/doxygen/classtvm_1_1tir_1_1LetNode.html    |   61 +-
 .../classtvm_1_1tir_1_1LetNode__coll__graph.svg    |  278 +-
 .../classtvm_1_1tir_1_1LetNode__inherit__graph.svg |   97 +-
 .../classtvm_1_1tir_1_1LetStmt-members.html        |    4 +-
 .../api/doxygen/classtvm_1_1tir_1_1LetStmt.html    |   18 +-
 .../classtvm_1_1tir_1_1LetStmtNode-members.html    |   23 +-
 .../doxygen/classtvm_1_1tir_1_1LetStmtNode.html    |   55 +-
 ...classtvm_1_1tir_1_1LetStmtNode__coll__graph.svg |  185 +-
 ...sstvm_1_1tir_1_1LetStmtNode__inherit__graph.svg |   78 +-
 .../classtvm_1_1tir_1_1LetStmt__coll__graph.svg    |   54 +-
 .../classtvm_1_1tir_1_1LetStmt__inherit__graph.svg |   54 +-
 .../classtvm_1_1tir_1_1Let__coll__graph.svg        |   72 +-
 .../classtvm_1_1tir_1_1Let__inherit__graph.svg     |   72 +-
 .../doxygen/classtvm_1_1tir_1_1LoopRV-members.html |    2 +-
 .../api/doxygen/classtvm_1_1tir_1_1LoopRV.html     |   14 +-
 .../classtvm_1_1tir_1_1LoopRVNode-members.html     |    5 +-
 .../api/doxygen/classtvm_1_1tir_1_1LoopRVNode.html |   49 +-
 .../classtvm_1_1tir_1_1LoopRVNode__coll__graph.svg |   36 +-
 ...asstvm_1_1tir_1_1LoopRVNode__inherit__graph.svg |   36 +-
 .../classtvm_1_1tir_1_1LoopRV__coll__graph.svg     |   36 +-
 .../classtvm_1_1tir_1_1LoopRV__inherit__graph.svg  |   36 +-
 ...asstvm_1_1tir_1_1MatchBufferRegion-members.html |    2 +-
 .../classtvm_1_1tir_1_1MatchBufferRegion.html      |   14 +-
 ...vm_1_1tir_1_1MatchBufferRegionNode-members.html |   11 +-
 .../classtvm_1_1tir_1_1MatchBufferRegionNode.html  |   44 +-
 ..._1tir_1_1MatchBufferRegionNode__coll__graph.svg |  145 +-
 ...ir_1_1MatchBufferRegionNode__inherit__graph.svg |   39 +-
 ...vm_1_1tir_1_1MatchBufferRegion__coll__graph.svg |   36 +-
 ...1_1tir_1_1MatchBufferRegion__inherit__graph.svg |   36 +-
 .../doxygen/classtvm_1_1tir_1_1Max-members.html    |    6 +-
 .../api/doxygen/classtvm_1_1tir_1_1Max.html        |   22 +-
 .../classtvm_1_1tir_1_1MaxNode-members.html        |   25 +-
 .../api/doxygen/classtvm_1_1tir_1_1MaxNode.html    |   25 +-
 .../classtvm_1_1tir_1_1MaxNode__coll__graph.svg    |  212 +-
 .../classtvm_1_1tir_1_1MaxNode__inherit__graph.svg |  110 +-
 .../classtvm_1_1tir_1_1Max__coll__graph.svg        |   72 +-
 .../classtvm_1_1tir_1_1Max__inherit__graph.svg     |   72 +-
 .../doxygen/classtvm_1_1tir_1_1Min-members.html    |    6 +-
 .../api/doxygen/classtvm_1_1tir_1_1Min.html        |   22 +-
 .../classtvm_1_1tir_1_1MinNode-members.html        |   25 +-
 .../api/doxygen/classtvm_1_1tir_1_1MinNode.html    |   25 +-
 .../classtvm_1_1tir_1_1MinNode__coll__graph.svg    |  212 +-
 .../classtvm_1_1tir_1_1MinNode__inherit__graph.svg |  110 +-
 .../classtvm_1_1tir_1_1Min__coll__graph.svg        |   72 +-
 .../classtvm_1_1tir_1_1Min__inherit__graph.svg     |   72 +-
 .../doxygen/classtvm_1_1tir_1_1Mod-members.html    |    6 +-
 .../api/doxygen/classtvm_1_1tir_1_1Mod.html        |   22 +-
 .../classtvm_1_1tir_1_1ModNode-members.html        |   25 +-
 .../api/doxygen/classtvm_1_1tir_1_1ModNode.html    |   25 +-
 .../classtvm_1_1tir_1_1ModNode__coll__graph.svg    |  212 +-
 .../classtvm_1_1tir_1_1ModNode__inherit__graph.svg |  110 +-
 .../classtvm_1_1tir_1_1Mod__coll__graph.svg        |   72 +-
 .../classtvm_1_1tir_1_1Mod__inherit__graph.svg     |   72 +-
 .../doxygen/classtvm_1_1tir_1_1Mul-members.html    |    6 +-
 .../api/doxygen/classtvm_1_1tir_1_1Mul.html        |   22 +-
 .../classtvm_1_1tir_1_1MulNode-members.html        |   25 +-
 .../api/doxygen/classtvm_1_1tir_1_1MulNode.html    |   25 +-
 .../classtvm_1_1tir_1_1MulNode__coll__graph.svg    |  212 +-
 .../classtvm_1_1tir_1_1MulNode__inherit__graph.svg |  110 +-
 .../classtvm_1_1tir_1_1Mul__coll__graph.svg        |   72 +-
 .../classtvm_1_1tir_1_1Mul__inherit__graph.svg     |   72 +-
 .../api/doxygen/classtvm_1_1tir_1_1NE-members.html |    6 +-
 .../api/doxygen/classtvm_1_1tir_1_1NE.html         |   22 +-
 .../doxygen/classtvm_1_1tir_1_1NENode-members.html |   25 +-
 .../api/doxygen/classtvm_1_1tir_1_1NENode.html     |   25 +-
 .../classtvm_1_1tir_1_1NENode__coll__graph.svg     |  212 +-
 .../classtvm_1_1tir_1_1NENode__inherit__graph.svg  |  110 +-
 .../doxygen/classtvm_1_1tir_1_1NE__coll__graph.svg |   72 +-
 .../classtvm_1_1tir_1_1NE__inherit__graph.svg      |   72 +-
 .../doxygen/classtvm_1_1tir_1_1Not-members.html    |    6 +-
 .../api/doxygen/classtvm_1_1tir_1_1Not.html        |   22 +-
 .../classtvm_1_1tir_1_1NotNode-members.html        |   19 +-
 .../api/doxygen/classtvm_1_1tir_1_1NotNode.html    |   61 +-
 .../classtvm_1_1tir_1_1NotNode__coll__graph.svg    |  240 +-
 .../classtvm_1_1tir_1_1NotNode__inherit__graph.svg |   93 +-
 .../classtvm_1_1tir_1_1Not__coll__graph.svg        |   72 +-
 .../classtvm_1_1tir_1_1Not__inherit__graph.svg     |   72 +-
 .../api/doxygen/classtvm_1_1tir_1_1Or-members.html |    6 +-
 .../api/doxygen/classtvm_1_1tir_1_1Or.html         |   22 +-
 .../doxygen/classtvm_1_1tir_1_1OrNode-members.html |   21 +-
 .../api/doxygen/classtvm_1_1tir_1_1OrNode.html     |   61 +-
 .../classtvm_1_1tir_1_1OrNode__coll__graph.svg     |  242 +-
 .../classtvm_1_1tir_1_1OrNode__inherit__graph.svg  |   95 +-
 .../doxygen/classtvm_1_1tir_1_1Or__coll__graph.svg |   72 +-
 .../classtvm_1_1tir_1_1Or__inherit__graph.svg      |   72 +-
 .../classtvm_1_1tir_1_1PrimFunc-members.html       |    8 +-
 .../api/doxygen/classtvm_1_1tir_1_1PrimFunc.html   |   26 +-
 .../classtvm_1_1tir_1_1PrimFuncNode-members.html   |   39 +-
 .../doxygen/classtvm_1_1tir_1_1PrimFuncNode.html   |   67 +-
 ...lasstvm_1_1tir_1_1PrimFuncNode__coll__graph.svg |  270 +-
 ...stvm_1_1tir_1_1PrimFuncNode__inherit__graph.svg |  124 +-
 .../classtvm_1_1tir_1_1PrimFunc__coll__graph.svg   |   90 +-
 ...classtvm_1_1tir_1_1PrimFunc__inherit__graph.svg |   90 +-
 .../classtvm_1_1tir_1_1ProducerLoad-members.html   |    6 +-
 .../doxygen/classtvm_1_1tir_1_1ProducerLoad.html   |   22 +-
 ...lasstvm_1_1tir_1_1ProducerLoadNode-members.html |   21 +-
 .../classtvm_1_1tir_1_1ProducerLoadNode.html       |   61 +-
 ...tvm_1_1tir_1_1ProducerLoadNode__coll__graph.svg |  233 +-
 ..._1_1tir_1_1ProducerLoadNode__inherit__graph.svg |   95 +-
 ...lasstvm_1_1tir_1_1ProducerLoad__coll__graph.svg |   72 +-
 ...stvm_1_1tir_1_1ProducerLoad__inherit__graph.svg |   72 +-
 .../doxygen/classtvm_1_1tir_1_1Ramp-members.html   |    6 +-
 .../api/doxygen/classtvm_1_1tir_1_1Ramp.html       |   22 +-
 .../classtvm_1_1tir_1_1RampNode-members.html       |   23 +-
 .../api/doxygen/classtvm_1_1tir_1_1RampNode.html   |   61 +-
 .../classtvm_1_1tir_1_1RampNode__coll__graph.svg   |  244 +-
 ...classtvm_1_1tir_1_1RampNode__inherit__graph.svg |   97 +-
 .../classtvm_1_1tir_1_1Ramp__coll__graph.svg       |   72 +-
 .../classtvm_1_1tir_1_1Ramp__inherit__graph.svg    |   72 +-
 .../doxygen/classtvm_1_1tir_1_1Reduce-members.html |    6 +-
 .../api/doxygen/classtvm_1_1tir_1_1Reduce.html     |   22 +-
 .../classtvm_1_1tir_1_1ReduceNode-members.html     |   29 +-
 .../api/doxygen/classtvm_1_1tir_1_1ReduceNode.html |   61 +-
 .../classtvm_1_1tir_1_1ReduceNode__coll__graph.svg |  273 +-
 ...asstvm_1_1tir_1_1ReduceNode__inherit__graph.svg |  103 +-
 .../classtvm_1_1tir_1_1Reduce__coll__graph.svg     |   72 +-
 .../classtvm_1_1tir_1_1Reduce__inherit__graph.svg  |   72 +-
 .../classtvm_1_1tir_1_1Schedule-members.html       |    2 +-
 .../api/doxygen/classtvm_1_1tir_1_1Schedule.html   |   14 +-
 .../classtvm_1_1tir_1_1ScheduleNode-members.html   |    4 +-
 .../doxygen/classtvm_1_1tir_1_1ScheduleNode.html   |   30 +-
 ...lasstvm_1_1tir_1_1ScheduleNode__coll__graph.svg |   36 +-
 ...stvm_1_1tir_1_1ScheduleNode__inherit__graph.svg |   36 +-
 .../classtvm_1_1tir_1_1ScheduleState-members.html  |    5 +-
 .../doxygen/classtvm_1_1tir_1_1ScheduleState.html  |   42 +-
 ...asstvm_1_1tir_1_1ScheduleStateNode-members.html |    4 +-
 .../classtvm_1_1tir_1_1ScheduleStateNode.html      |   30 +-
 ...vm_1_1tir_1_1ScheduleStateNode__coll__graph.svg |   86 +-
 ...1_1tir_1_1ScheduleStateNode__inherit__graph.svg |   36 +-
 ...asstvm_1_1tir_1_1ScheduleState__coll__graph.svg |   41 +-
 ...tvm_1_1tir_1_1ScheduleState__inherit__graph.svg |   41 +-
 .../classtvm_1_1tir_1_1Schedule__coll__graph.svg   |   36 +-
 ...classtvm_1_1tir_1_1Schedule__inherit__graph.svg |   36 +-
 .../doxygen/classtvm_1_1tir_1_1Select-members.html |    6 +-
 .../api/doxygen/classtvm_1_1tir_1_1Select.html     |   22 +-
 .../classtvm_1_1tir_1_1SelectNode-members.html     |   23 +-
 .../api/doxygen/classtvm_1_1tir_1_1SelectNode.html |   61 +-
 .../classtvm_1_1tir_1_1SelectNode__coll__graph.svg |  244 +-
 ...asstvm_1_1tir_1_1SelectNode__inherit__graph.svg |   97 +-
 .../classtvm_1_1tir_1_1Select__coll__graph.svg     |   72 +-
 .../classtvm_1_1tir_1_1Select__inherit__graph.svg  |   72 +-
 .../classtvm_1_1tir_1_1SeqStmt-members.html        |    4 +-
 .../api/doxygen/classtvm_1_1tir_1_1SeqStmt.html    |   18 +-
 .../classtvm_1_1tir_1_1SeqStmtNode-members.html    |   23 +-
 .../doxygen/classtvm_1_1tir_1_1SeqStmtNode.html    |   55 +-
 ...classtvm_1_1tir_1_1SeqStmtNode__coll__graph.svg |  116 +-
 ...sstvm_1_1tir_1_1SeqStmtNode__inherit__graph.svg |   78 +-
 .../classtvm_1_1tir_1_1SeqStmt__coll__graph.svg    |   54 +-
 .../classtvm_1_1tir_1_1SeqStmt__inherit__graph.svg |   54 +-
 .../classtvm_1_1tir_1_1Shuffle-members.html        |    6 +-
 .../api/doxygen/classtvm_1_1tir_1_1Shuffle.html    |   22 +-
 .../classtvm_1_1tir_1_1ShuffleNode-members.html    |   21 +-
 .../doxygen/classtvm_1_1tir_1_1ShuffleNode.html    |   61 +-
 ...classtvm_1_1tir_1_1ShuffleNode__coll__graph.svg |  193 +-
 ...sstvm_1_1tir_1_1ShuffleNode__inherit__graph.svg |   95 +-
 .../classtvm_1_1tir_1_1Shuffle__coll__graph.svg    |   72 +-
 .../classtvm_1_1tir_1_1Shuffle__inherit__graph.svg |   72 +-
 .../classtvm_1_1tir_1_1SizeVar-members.html        |    4 +-
 .../api/doxygen/classtvm_1_1tir_1_1SizeVar.html    |   12 +-
 .../classtvm_1_1tir_1_1SizeVarNode-members.html    |   23 +-
 .../doxygen/classtvm_1_1tir_1_1SizeVarNode.html    |   93 +-
 ...classtvm_1_1tir_1_1SizeVarNode__coll__graph.svg |  239 +-
 ...sstvm_1_1tir_1_1SizeVarNode__inherit__graph.svg |  119 +-
 .../classtvm_1_1tir_1_1SizeVar__coll__graph.svg    |  112 +-
 .../classtvm_1_1tir_1_1SizeVar__inherit__graph.svg |  112 +-
 .../doxygen/classtvm_1_1tir_1_1Stmt-members.html   |    2 +-
 .../api/doxygen/classtvm_1_1tir_1_1Stmt.html       |   14 +-
 .../classtvm_1_1tir_1_1StmtNode-members.html       |   15 +-
 .../api/doxygen/classtvm_1_1tir_1_1StmtNode.html   |   44 +-
 .../classtvm_1_1tir_1_1StmtNode__coll__graph.svg   |   73 +-
 ...classtvm_1_1tir_1_1StmtNode__inherit__graph.svg |  466 ++-
 .../classtvm_1_1tir_1_1StmtSRef-members.html       |    9 +-
 .../api/doxygen/classtvm_1_1tir_1_1StmtSRef.html   |   42 +-
 .../classtvm_1_1tir_1_1StmtSRefNode-members.html   |    4 +-
 .../doxygen/classtvm_1_1tir_1_1StmtSRefNode.html   |   30 +-
 ...lasstvm_1_1tir_1_1StmtSRefNode__coll__graph.svg |  121 +-
 ...stvm_1_1tir_1_1StmtSRefNode__inherit__graph.svg |   36 +-
 .../classtvm_1_1tir_1_1StmtSRef__coll__graph.svg   |   41 +-
 ...classtvm_1_1tir_1_1StmtSRef__inherit__graph.svg |   41 +-
 .../classtvm_1_1tir_1_1Stmt__coll__graph.svg       |   36 +-
 .../classtvm_1_1tir_1_1Stmt__inherit__graph.svg    |  398 +--
 .../classtvm_1_1tir_1_1StringImm-members.html      |    6 +-
 .../api/doxygen/classtvm_1_1tir_1_1StringImm.html  |   22 +-
 .../classtvm_1_1tir_1_1StringImmNode-members.html  |   19 +-
 .../doxygen/classtvm_1_1tir_1_1StringImmNode.html  |   61 +-
 ...asstvm_1_1tir_1_1StringImmNode__coll__graph.svg |  191 +-
 ...tvm_1_1tir_1_1StringImmNode__inherit__graph.svg |   93 +-
 .../classtvm_1_1tir_1_1StringImm__coll__graph.svg  |   72 +-
 ...lasstvm_1_1tir_1_1StringImm__inherit__graph.svg |   72 +-
 .../doxygen/classtvm_1_1tir_1_1Sub-members.html    |    6 +-
 .../api/doxygen/classtvm_1_1tir_1_1Sub.html        |   22 +-
 .../classtvm_1_1tir_1_1SubNode-members.html        |   25 +-
 .../api/doxygen/classtvm_1_1tir_1_1SubNode.html    |   25 +-
 .../classtvm_1_1tir_1_1SubNode__coll__graph.svg    |  212 +-
 .../classtvm_1_1tir_1_1SubNode__inherit__graph.svg |  110 +-
 .../classtvm_1_1tir_1_1Sub__coll__graph.svg        |   72 +-
 .../classtvm_1_1tir_1_1Sub__inherit__graph.svg     |   72 +-
 .../classtvm_1_1tir_1_1TensorIntrin-members.html   |    2 +-
 .../doxygen/classtvm_1_1tir_1_1TensorIntrin.html   |   14 +-
 ...lasstvm_1_1tir_1_1TensorIntrinNode-members.html |    9 +-
 .../classtvm_1_1tir_1_1TensorIntrinNode.html       |   48 +-
 ...tvm_1_1tir_1_1TensorIntrinNode__coll__graph.svg |  134 +-
 ..._1_1tir_1_1TensorIntrinNode__inherit__graph.svg |   41 +-
 ...lasstvm_1_1tir_1_1TensorIntrin__coll__graph.svg |   36 +-
 ...stvm_1_1tir_1_1TensorIntrin__inherit__graph.svg |   36 +-
 .../doxygen/classtvm_1_1tir_1_1Trace-members.html  |    2 +-
 .../api/doxygen/classtvm_1_1tir_1_1Trace.html      |   14 +-
 .../classtvm_1_1tir_1_1TraceNode-members.html      |    4 +-
 .../api/doxygen/classtvm_1_1tir_1_1TraceNode.html  |   30 +-
 .../classtvm_1_1tir_1_1TraceNode__coll__graph.svg  |   36 +-
 ...lasstvm_1_1tir_1_1TraceNode__inherit__graph.svg |   36 +-
 .../classtvm_1_1tir_1_1Trace__coll__graph.svg      |   41 +-
 .../classtvm_1_1tir_1_1Trace__inherit__graph.svg   |   41 +-
 .../doxygen/classtvm_1_1tir_1_1Var-members.html    |    4 +-
 .../api/doxygen/classtvm_1_1tir_1_1Var.html        |   12 +-
 .../classtvm_1_1tir_1_1VarNode-members.html        |   21 +-
 .../api/doxygen/classtvm_1_1tir_1_1VarNode.html    |   56 +-
 .../classtvm_1_1tir_1_1VarNode__coll__graph.svg    |  219 +-
 .../classtvm_1_1tir_1_1VarNode__inherit__graph.svg |  119 +-
 .../classtvm_1_1tir_1_1Var__coll__graph.svg        |   86 +-
 .../classtvm_1_1tir_1_1Var__inherit__graph.svg     |  112 +-
 .../doxygen/classtvm_1_1tir_1_1While-members.html  |    4 +-
 .../api/doxygen/classtvm_1_1tir_1_1While.html      |   18 +-
 .../classtvm_1_1tir_1_1WhileNode-members.html      |   21 +-
 .../api/doxygen/classtvm_1_1tir_1_1WhileNode.html  |   59 +-
 .../classtvm_1_1tir_1_1WhileNode__coll__graph.svg  |  185 +-
 ...lasstvm_1_1tir_1_1WhileNode__inherit__graph.svg |   76 +-
 .../classtvm_1_1tir_1_1While__coll__graph.svg      |   54 +-
 .../classtvm_1_1tir_1_1While__inherit__graph.svg   |   54 +-
 .../classtvm_1_1transform_1_1Pass-members.html     |    2 +-
 .../api/doxygen/classtvm_1_1transform_1_1Pass.html |   14 +-
 .../classtvm_1_1transform_1_1PassContext.html      |    2 +-
 ...vm_1_1transform_1_1PassContextNode-members.html |   23 +-
 .../classtvm_1_1transform_1_1PassContextNode.html  |   48 +-
 ..._1transform_1_1PassContextNode__coll__graph.svg |   47 +-
 ...ransform_1_1PassContextNode__inherit__graph.svg |   47 +-
 .../classtvm_1_1transform_1_1PassInfo-members.html |    2 +-
 .../doxygen/classtvm_1_1transform_1_1PassInfo.html |   14 +-
 ...sstvm_1_1transform_1_1PassInfoNode-members.html |   15 +-
 .../classtvm_1_1transform_1_1PassInfoNode.html     |   48 +-
 ...m_1_1transform_1_1PassInfoNode__coll__graph.svg |   45 +-
 ..._1transform_1_1PassInfoNode__inherit__graph.svg |   45 +-
 ...sstvm_1_1transform_1_1PassInfo__coll__graph.svg |   36 +-
 ...vm_1_1transform_1_1PassInfo__inherit__graph.svg |   36 +-
 .../classtvm_1_1transform_1_1PassNode-members.html |   11 +-
 .../doxygen/classtvm_1_1transform_1_1PassNode.html |   49 +-
 ...sstvm_1_1transform_1_1PassNode__coll__graph.svg |   34 +-
 ...vm_1_1transform_1_1PassNode__inherit__graph.svg |   67 +-
 .../classtvm_1_1transform_1_1Pass__coll__graph.svg |   36 +-
 ...asstvm_1_1transform_1_1Pass__inherit__graph.svg |   60 +-
 ...lasstvm_1_1transform_1_1Sequential-members.html |    2 +-
 .../classtvm_1_1transform_1_1Sequential.html       |    8 +-
 ...tvm_1_1transform_1_1SequentialNode-members.html |   21 +-
 .../classtvm_1_1transform_1_1SequentialNode.html   |   55 +-
 ...1_1transform_1_1SequentialNode__coll__graph.svg |  109 +-
 ...transform_1_1SequentialNode__inherit__graph.svg |   67 +-
 ...tvm_1_1transform_1_1Sequential__coll__graph.svg |   60 +-
 ..._1_1transform_1_1Sequential__inherit__graph.svg |   60 +-
 docs/reference/api/doxygen/codegen_8h_source.html  |    4 +-
 .../api/doxygen/constant__utils_8h_source.html     |    4 +-
 .../api/doxygen/cost__model_8h_source.html         |   51 +-
 docs/reference/api/doxygen/create_8h_source.html   |   56 +-
 docs/reference/api/doxygen/cublas_8h_source.html   |    4 +-
 .../api/doxygen/cuda__ipc__memory_8h_source.html   |   41 +-
 .../api/doxygen/data__layout_8h_source.html        |  350 ++-
 .../doxygen/data__type__rewriter_8h_source.html    |   62 +-
 docs/reference/api/doxygen/database_8h_source.html |  581 ++--
 .../api/doxygen/dataflow__matcher_8h_source.html   |   10 +-
 .../api/doxygen/dataflow__pattern_8h_source.html   | 1483 +++++----
 .../dataflow__pattern__functor_8h_source.html      |   42 +-
 docs/reference/api/doxygen/datatype_8h_source.html |   52 +-
 docs/reference/api/doxygen/dense_8h_source.html    |    6 +-
 .../api/doxygen/detail_2broadcast_8h_source.html   |    6 +-
 .../api/doxygen/device__api_8h_source.html         |    2 +-
 .../api/doxygen/diagnostic_8h_source.html          |  337 ++-
 docs/reference/api/doxygen/dilate_8h_source.html   |    6 +-
 .../distributed_2struct__info_8h_source.html       |  216 +-
 .../api/doxygen/distributed_8h_source.html         |   28 +-
 docs/reference/api/doxygen/doc_8h_source.html      | 1724 +++++------
 docs/reference/api/doxygen/elemwise_8h.html        |    2 +-
 docs/reference/api/doxygen/elemwise_8h_source.html |    2 +-
 .../reference/api/doxygen/env__func_8h_source.html |  139 +-
 .../api/doxygen/exec__builder_8h_source.html       |   12 +-
 docs/reference/api/doxygen/extern_8h_source.html   |    6 +-
 .../api/doxygen/extracted__task_8h_source.html     |   24 +-
 .../api/doxygen/feature__extractor_8h_source.html  |  101 +-
 docs/reference/api/doxygen/flatten_8h_source.html  |    6 +-
 docs/reference/api/doxygen/functions__.html        |  403 +--
 docs/reference/api/doxygen/functions_b.html        |    2 +-
 docs/reference/api/doxygen/functions_func_g.html   |    6 +-
 docs/reference/api/doxygen/functions_func_t.html   | 1328 ++++-----
 docs/reference/api/doxygen/functions_g.html        |   10 +-
 docs/reference/api/doxygen/functions_k.html        |    4 +-
 docs/reference/api/doxygen/functions_n.html        |    2 +-
 docs/reference/api/doxygen/functions_t.html        | 1336 +++++----
 docs/reference/api/doxygen/functions_v.html        |    4 +-
 docs/reference/api/doxygen/functions_vars.html     |  403 +--
 docs/reference/api/doxygen/functions_w.html        |    2 +-
 docs/reference/api/doxygen/fuse_8h_source.html     |    2 +-
 .../api/doxygen/global__var__supply_8h_source.html |   56 +-
 docs/reference/api/doxygen/globals.html            |   24 +-
 docs/reference/api/doxygen/globals_defs.html       |   24 +-
 .../api/doxygen/group__norm_8h_source.html         |    6 +-
 docs/reference/api/doxygen/image_8h_source.html    |   23 +-
 docs/reference/api/doxygen/index_8h_source.html    |   61 +-
 .../api/doxygen/index__map_8h_source.html          |   70 +-
 .../api/doxygen/instance__norm_8h_source.html      |   10 +-
 docs/reference/api/doxygen/instruction_8h.html     |    8 +-
 .../api/doxygen/instruction_8h_source.html         |  231 +-
 .../api/doxygen/instrument_8h_source.html          |   39 +-
 docs/reference/api/doxygen/int__set_8h_source.html |  175 +-
 .../api/doxygen/int__solver_8h_source.html         |  263 +-
 .../api/doxygen/ir_2analysis_8h_source.html        |    4 +-
 docs/reference/api/doxygen/ir_2expr_8h_source.html |  937 +++---
 .../reference/api/doxygen/ir_2frame_8h_source.html |   55 +-
 .../api/doxygen/ir_2function_8h_source.html        |   42 +-
 .../api/doxygen/ir_2global__info_8h_source.html    |  141 +-
 docs/reference/api/doxygen/ir_2ir_8h_source.html   |    6 +-
 .../api/doxygen/ir_2module_8h_source.html          |  158 +-
 docs/reference/api/doxygen/ir_2op_8h.html          |    8 +-
 docs/reference/api/doxygen/ir_2op_8h_source.html   |  368 ++-
 docs/reference/api/doxygen/ir_2transform_8h.html   |    4 +-
 .../api/doxygen/ir_2transform_8h_source.html       |  532 ++--
 docs/reference/api/doxygen/ir_2type_8h_source.html |  350 ++-
 .../api/doxygen/ir__docsifier_8h_source.html       |  458 ++-
 .../api/doxygen/iter__affine__map_8h_source.html   |  408 ++-
 .../api/doxygen/layer__norm_8h_source.html         |    8 +-
 .../api/doxygen/linear__algebra_8h_source.html     |   54 +-
 .../doxygen/local__response__norm_8h_source.html   |    8 +-
 .../api/doxygen/manipulate_8h_source.html          |  693 ++---
 docs/reference/api/doxygen/mapping_8h_source.html  |    4 +-
 .../api/doxygen/measure__callback_8h_source.html   |   56 +-
 .../api/doxygen/measure__candidate_8h_source.html  |   37 +-
 .../api/doxygen/memory__manager_8h_source.html     |   12 +-
 docs/reference/api/doxygen/mutator_8h_source.html  |   31 +-
 .../api/doxygen/name__supply_8h_source.html        |   12 +-
 docs/reference/api/doxygen/namespacemembers_e.html |    2 +-
 .../api/doxygen/nested__msg_8h_source.html         |   16 +-
 docs/reference/api/doxygen/object_8h.html          |  128 +-
 docs/reference/api/doxygen/object_8h_source.html   |   55 +-
 .../reference/api/doxygen/operation_8h_source.html |  503 ++--
 docs/reference/api/doxygen/papi_8h_source.html     |    4 +-
 docs/reference/api/doxygen/pattern_8h_source.html  |    2 +-
 docs/reference/api/doxygen/pooling_8h_source.html  |   16 +-
 docs/reference/api/doxygen/postproc_8h_source.html |   33 +-
 docs/reference/api/doxygen/profiler_8h_source.html |   12 +-
 .../reference/api/doxygen/profiling_8h_source.html |  400 ++-
 docs/reference/api/doxygen/qdq_8h_source.html      |   23 +-
 .../reference/api/doxygen/reduction_8h_source.html |   12 +-
 .../api/doxygen/relax_2analysis_8h_source.html     |   26 +-
 .../api/doxygen/relax_2attrs_2nn_8h_source.html    | 1686 +++++------
 .../api/doxygen/relax_2attrs_2op_8h_source.html    |  167 +-
 ...relax_2distributed_2global__info_8h_source.html |   43 +-
 .../relax_2distributed_2transform_8h_source.html   |   10 +-
 .../api/doxygen/relax_2expr_8h_source.html         | 1533 +++++-----
 .../doxygen/relax_2expr__functor_8h_source.html    |   56 +-
 .../api/doxygen/relax_2frame_8h_source.html        |  519 ++--
 .../reference/api/doxygen/relax_2ir_8h_source.html |   20 +-
 .../doxygen/relax_2op__attr__types_8h_source.html  |    6 +-
 .../api/doxygen/relax_2transform_8h_source.html    |  257 +-
 .../api/doxygen/relax_2type_8h_source.html         |  210 +-
 .../api/doxygen/relax_2utils_8h_source.html        |   12 +-
 docs/reference/api/doxygen/reorg_8h_source.html    |    4 +-
 .../doxygen/replace__global__vars_8h_source.html   |    4 +-
 .../reference/api/doxygen/rms__norm_8h_source.html |    2 +-
 docs/reference/api/doxygen/rocblas_8h_source.html  |    4 +-
 docs/reference/api/doxygen/runner_8h_source.html   |  285 +-
 .../api/doxygen/runtime_2tensor_8h_source.html     |    2 +-
 docs/reference/api/doxygen/sampling_8h_source.html |   24 +-
 docs/reference/api/doxygen/schedule_8h_source.html |  464 ++-
 .../api/doxygen/schedule__rule_8h_source.html      |   38 +-
 .../script_2ir__builder_2base_8h_source.html       |  283 +-
 .../api/doxygen/script__printer_8h_source.html     |   14 +-
 docs/reference/api/doxygen/search/all_1.js         |   10 +-
 docs/reference/api/doxygen/search/all_10.js        |   31 +-
 docs/reference/api/doxygen/search/all_13.js        |  135 +-
 docs/reference/api/doxygen/search/all_14.js        |  674 ++---
 docs/reference/api/doxygen/search/all_15.js        |  690 +++--
 docs/reference/api/doxygen/search/all_16.js        |  133 +-
 docs/reference/api/doxygen/search/all_17.js        |  220 +-
 docs/reference/api/doxygen/search/all_18.js        |  107 +-
 docs/reference/api/doxygen/search/all_19.js        |    2 +-
 docs/reference/api/doxygen/search/all_1a.js        |   88 +-
 docs/reference/api/doxygen/search/all_2.js         |   24 +-
 docs/reference/api/doxygen/search/all_3.js         |  377 +--
 docs/reference/api/doxygen/search/all_4.js         |  442 +--
 docs/reference/api/doxygen/search/all_5.js         |  447 +--
 docs/reference/api/doxygen/search/all_6.js         |  283 +-
 docs/reference/api/doxygen/search/all_7.js         |  660 ++--
 docs/reference/api/doxygen/search/all_8.js         |  250 +-
 docs/reference/api/doxygen/search/all_9.js         |   58 +-
 docs/reference/api/doxygen/search/all_a.js         |  560 ++--
 docs/reference/api/doxygen/search/all_b.js         |    8 +-
 docs/reference/api/doxygen/search/all_c.js         |  530 ++--
 docs/reference/api/doxygen/search/all_d.js         |  232 +-
 docs/reference/api/doxygen/search/all_e.js         |  328 +-
 docs/reference/api/doxygen/search/all_f.js         |  138 +-
 docs/reference/api/doxygen/search/classes_0.js     |  260 +-
 docs/reference/api/doxygen/search/classes_1.js     |  128 +-
 docs/reference/api/doxygen/search/classes_10.js    |  206 +-
 docs/reference/api/doxygen/search/classes_11.js    |  162 +-
 docs/reference/api/doxygen/search/classes_12.js    |    4 +-
 docs/reference/api/doxygen/search/classes_13.js    |   42 +-
 docs/reference/api/doxygen/search/classes_14.js    |   30 +-
 docs/reference/api/doxygen/search/classes_2.js     |   96 +-
 docs/reference/api/doxygen/search/classes_3.js     |  132 +-
 docs/reference/api/doxygen/search/classes_4.js     |   76 +-
 docs/reference/api/doxygen/search/classes_5.js     |   66 +-
 docs/reference/api/doxygen/search/classes_6.js     |   32 +-
 docs/reference/api/doxygen/search/classes_7.js     |    6 +-
 docs/reference/api/doxygen/search/classes_8.js     |  126 +-
 docs/reference/api/doxygen/search/classes_9.js     |   58 +-
 docs/reference/api/doxygen/search/classes_a.js     |   74 +-
 docs/reference/api/doxygen/search/classes_b.js     |   28 +-
 docs/reference/api/doxygen/search/classes_c.js     |   34 +-
 docs/reference/api/doxygen/search/classes_d.js     |  140 +-
 docs/reference/api/doxygen/search/classes_e.js     |    2 +-
 docs/reference/api/doxygen/search/classes_f.js     |   60 +-
 docs/reference/api/doxygen/search/defines_0.js     |    6 +-
 docs/reference/api/doxygen/search/defines_1.js     |    2 +-
 docs/reference/api/doxygen/search/defines_2.js     |    4 +-
 docs/reference/api/doxygen/search/defines_3.js     |    2 +-
 docs/reference/api/doxygen/search/defines_4.js     |    4 +-
 docs/reference/api/doxygen/search/defines_5.js     |   10 +-
 docs/reference/api/doxygen/search/defines_6.js     |    4 +-
 docs/reference/api/doxygen/search/defines_7.js     |    4 +-
 docs/reference/api/doxygen/search/defines_8.js     |  118 +-
 docs/reference/api/doxygen/search/defines_9.js     |    2 +-
 docs/reference/api/doxygen/search/enums_0.js       |    6 +-
 docs/reference/api/doxygen/search/enums_1.js       |    6 +-
 docs/reference/api/doxygen/search/enums_2.js       |    6 +-
 docs/reference/api/doxygen/search/enums_3.js       |   10 +-
 docs/reference/api/doxygen/search/enums_4.js       |    6 +-
 docs/reference/api/doxygen/search/enums_5.js       |    4 +-
 docs/reference/api/doxygen/search/enums_6.js       |    4 +-
 docs/reference/api/doxygen/search/enums_7.js       |    2 +-
 docs/reference/api/doxygen/search/enums_8.js       |    2 +-
 docs/reference/api/doxygen/search/enums_9.js       |    4 +-
 docs/reference/api/doxygen/search/enums_a.js       |    4 +-
 docs/reference/api/doxygen/search/enums_b.js       |    6 +-
 docs/reference/api/doxygen/search/enums_c.js       |    2 +-
 docs/reference/api/doxygen/search/enums_d.js       |    8 +-
 docs/reference/api/doxygen/search/enums_e.js       |   10 +-
 docs/reference/api/doxygen/search/enums_f.js       |    2 +-
 docs/reference/api/doxygen/search/enumvalues_0.js  |    2 +-
 docs/reference/api/doxygen/search/enumvalues_1.js  |    2 +-
 docs/reference/api/doxygen/search/enumvalues_2.js  |    2 +-
 docs/reference/api/doxygen/search/enumvalues_3.js  |    2 +-
 docs/reference/api/doxygen/search/enumvalues_4.js  |  410 +--
 docs/reference/api/doxygen/search/enumvalues_5.js  |    2 +-
 docs/reference/api/doxygen/search/enumvalues_6.js  |    2 +-
 docs/reference/api/doxygen/search/enumvalues_7.js  |    2 +-
 docs/reference/api/doxygen/search/enumvalues_8.js  |    2 +-
 docs/reference/api/doxygen/search/files_0.js       |   14 +-
 docs/reference/api/doxygen/search/files_1.js       |   30 +-
 docs/reference/api/doxygen/search/files_10.js      |   34 +-
 docs/reference/api/doxygen/search/files_11.js      |    2 +-
 docs/reference/api/doxygen/search/files_12.js      |    6 +-
 docs/reference/api/doxygen/search/files_13.js      |    4 +-
 docs/reference/api/doxygen/search/files_2.js       |   18 +-
 docs/reference/api/doxygen/search/files_3.js       |   30 +-
 docs/reference/api/doxygen/search/files_4.js       |   18 +-
 docs/reference/api/doxygen/search/files_5.js       |   12 +-
 docs/reference/api/doxygen/search/files_6.js       |    6 +-
 docs/reference/api/doxygen/search/files_7.js       |   26 +-
 docs/reference/api/doxygen/search/files_8.js       |    6 +-
 docs/reference/api/doxygen/search/files_9.js       |   14 +-
 docs/reference/api/doxygen/search/files_a.js       |   10 +-
 docs/reference/api/doxygen/search/files_b.js       |    8 +-
 docs/reference/api/doxygen/search/files_c.js       |   18 +-
 docs/reference/api/doxygen/search/files_d.js       |    2 +-
 docs/reference/api/doxygen/search/files_e.js       |   20 +-
 docs/reference/api/doxygen/search/files_f.js       |   44 +-
 docs/reference/api/doxygen/search/functions_0.js   |   10 +-
 docs/reference/api/doxygen/search/functions_1.js   |  230 +-
 docs/reference/api/doxygen/search/functions_10.js  |  186 +-
 docs/reference/api/doxygen/search/functions_11.js  |    8 +-
 docs/reference/api/doxygen/search/functions_12.js  |  224 +-
 docs/reference/api/doxygen/search/functions_13.js  |  340 +--
 docs/reference/api/doxygen/search/functions_14.js  |  263 +-
 docs/reference/api/doxygen/search/functions_15.js  |  110 +-
 docs/reference/api/doxygen/search/functions_16.js  |  132 +-
 docs/reference/api/doxygen/search/functions_17.js  |   62 +-
 docs/reference/api/doxygen/search/functions_18.js  |    2 +-
 docs/reference/api/doxygen/search/functions_19.js  |   88 +-
 docs/reference/api/doxygen/search/functions_2.js   |  182 +-
 docs/reference/api/doxygen/search/functions_3.js   |  264 +-
 docs/reference/api/doxygen/search/functions_4.js   |  218 +-
 docs/reference/api/doxygen/search/functions_5.js   |  140 +-
 docs/reference/api/doxygen/search/functions_6.js   |  380 +--
 docs/reference/api/doxygen/search/functions_7.js   |  214 +-
 docs/reference/api/doxygen/search/functions_8.js   |   44 +-
 docs/reference/api/doxygen/search/functions_9.js   |  362 +--
 docs/reference/api/doxygen/search/functions_a.js   |    8 +-
 docs/reference/api/doxygen/search/functions_b.js   |    2 +-
 docs/reference/api/doxygen/search/functions_c.js   |  148 +-
 docs/reference/api/doxygen/search/functions_d.js   |  160 +-
 docs/reference/api/doxygen/search/functions_e.js   |   84 +-
 docs/reference/api/doxygen/search/functions_f.js   |  100 +-
 docs/reference/api/doxygen/search/namespaces_0.js  |    4 +-
 docs/reference/api/doxygen/search/namespaces_1.js  |   66 +-
 docs/reference/api/doxygen/search/related_0.js     |    2 +-
 docs/reference/api/doxygen/search/related_1.js     |    6 +-
 docs/reference/api/doxygen/search/related_2.js     |    2 +-
 docs/reference/api/doxygen/search/related_3.js     |    6 +-
 docs/reference/api/doxygen/search/related_4.js     |   10 +-
 docs/reference/api/doxygen/search/related_5.js     |    2 +-
 docs/reference/api/doxygen/search/related_6.js     |    6 +-
 docs/reference/api/doxygen/search/related_7.js     |    8 +-
 docs/reference/api/doxygen/search/related_8.js     |    2 +-
 docs/reference/api/doxygen/search/related_9.js     |    4 +-
 docs/reference/api/doxygen/search/related_a.js     |   10 +-
 docs/reference/api/doxygen/search/related_b.js     |    2 +-
 docs/reference/api/doxygen/search/related_c.js     |    8 +-
 docs/reference/api/doxygen/search/related_d.js     |    8 +-
 docs/reference/api/doxygen/search/typedefs_0.js    |    6 +-
 docs/reference/api/doxygen/search/typedefs_1.js    |    4 +-
 docs/reference/api/doxygen/search/typedefs_2.js    |    4 +-
 docs/reference/api/doxygen/search/typedefs_3.js    |    8 +-
 docs/reference/api/doxygen/search/typedefs_4.js    |   12 +-
 docs/reference/api/doxygen/search/typedefs_5.js    |  114 +-
 docs/reference/api/doxygen/search/typedefs_6.js    |    8 +-
 docs/reference/api/doxygen/search/typedefs_7.js    |    2 +-
 docs/reference/api/doxygen/search/typedefs_8.js    |    4 +-
 docs/reference/api/doxygen/search/typedefs_9.js    |   12 +-
 docs/reference/api/doxygen/search/typedefs_a.js    |    6 +-
 docs/reference/api/doxygen/search/typedefs_b.js    |    6 +-
 docs/reference/api/doxygen/search/typedefs_c.js    |   36 +-
 docs/reference/api/doxygen/search/variables_0.js   |   12 +-
 docs/reference/api/doxygen/search/variables_1.js   |   70 +-
 docs/reference/api/doxygen/search/variables_10.js  |    2 +-
 docs/reference/api/doxygen/search/variables_11.js  |   82 +-
 docs/reference/api/doxygen/search/variables_12.js  |  122 +-
 docs/reference/api/doxygen/search/variables_13.js  |   76 +-
 docs/reference/api/doxygen/search/variables_14.js  |   18 +-
 docs/reference/api/doxygen/search/variables_15.js  |   44 +-
 docs/reference/api/doxygen/search/variables_16.js  |   16 +-
 docs/reference/api/doxygen/search/variables_2.js   |   66 +-
 docs/reference/api/doxygen/search/variables_3.js   |   76 +-
 docs/reference/api/doxygen/search/variables_4.js   |  100 +-
 docs/reference/api/doxygen/search/variables_5.js   |   58 +-
 docs/reference/api/doxygen/search/variables_6.js   |  110 +-
 docs/reference/api/doxygen/search/variables_7.js   |   12 +-
 docs/reference/api/doxygen/search/variables_8.js   |    8 +-
 docs/reference/api/doxygen/search/variables_9.js   |   82 +-
 docs/reference/api/doxygen/search/variables_a.js   |  126 +-
 docs/reference/api/doxygen/search/variables_b.js   |   38 +-
 docs/reference/api/doxygen/search/variables_c.js   |   92 +-
 docs/reference/api/doxygen/search/variables_d.js   |   28 +-
 docs/reference/api/doxygen/search/variables_e.js   |   36 +-
 docs/reference/api/doxygen/search/variables_f.js   |   72 +-
 docs/reference/api/doxygen/search_8h_source.html   |   65 +-
 .../api/doxygen/search__strategy_8h_source.html    |   36 +-
 .../api/doxygen/serializer_8h_source.html          |    2 +-
 docs/reference/api/doxygen/session_8h_source.html  |  107 +-
 docs/reference/api/doxygen/softmax_8h_source.html  |   12 +-
 docs/reference/api/doxygen/sorting_8h_source.html  |  157 +-
 .../api/doxygen/source__map_8h_source.html         |  330 +-
 .../api/doxygen/space__generator_8h_source.html    |   34 +-
 docs/reference/api/doxygen/state_8h_source.html    |   29 +-
 .../api/doxygen/statistical_8h_source.html         |   79 +-
 docs/reference/api/doxygen/stmt_8h_source.html     | 2029 ++++++-------
 .../api/doxygen/stmt__functor_8h_source.html       |   42 +-
 .../api/doxygen/strided__slice_8h_source.html      |    2 +-
 .../api/doxygen/struct__info_8h_source.html        |  504 ++--
 .../doxygen/struct__info__functor_8h_source.html   |   18 +-
 ...vm_1_1relax_1_1AdaptivePool1DAttrs-members.html |   21 +-
 .../structtvm_1_1relax_1_1AdaptivePool1DAttrs.html |   55 +-
 ..._1relax_1_1AdaptivePool1DAttrs__coll__graph.svg |   90 +-
 ...elax_1_1AdaptivePool1DAttrs__inherit__graph.svg |   90 +-
 ...vm_1_1relax_1_1AdaptivePool2DAttrs-members.html |   21 +-
 .../structtvm_1_1relax_1_1AdaptivePool2DAttrs.html |   55 +-
 ..._1relax_1_1AdaptivePool2DAttrs__coll__graph.svg |   90 +-
 ...elax_1_1AdaptivePool2DAttrs__inherit__graph.svg |   90 +-
 ...vm_1_1relax_1_1AdaptivePool3DAttrs-members.html |   21 +-
 .../structtvm_1_1relax_1_1AdaptivePool3DAttrs.html |   55 +-
 ..._1relax_1_1AdaptivePool3DAttrs__coll__graph.svg |   90 +-
 ...elax_1_1AdaptivePool3DAttrs__inherit__graph.svg |   90 +-
 ...ructtvm_1_1relax_1_1AllGatherAttrs-members.html |   19 +-
 .../structtvm_1_1relax_1_1AllGatherAttrs.html      |   55 +-
 ...tvm_1_1relax_1_1AllGatherAttrs__coll__graph.svg |   86 +-
 ..._1_1relax_1_1AllGatherAttrs__inherit__graph.svg |   86 +-
 ...ructtvm_1_1relax_1_1AllReduceAttrs-members.html |   19 +-
 .../structtvm_1_1relax_1_1AllReduceAttrs.html      |   55 +-
 ...tvm_1_1relax_1_1AllReduceAttrs__coll__graph.svg |   86 +-
 ..._1_1relax_1_1AllReduceAttrs__inherit__graph.svg |   86 +-
 ...ttvm_1_1relax_1_1ArgmaxArgminAttrs-members.html |   19 +-
 .../structtvm_1_1relax_1_1ArgmaxArgminAttrs.html   |   55 +-
 ..._1_1relax_1_1ArgmaxArgminAttrs__coll__graph.svg |   88 +-
 ...1relax_1_1ArgmaxArgminAttrs__inherit__graph.svg |   88 +-
 ...structtvm_1_1relax_1_1ArgsortAttrs-members.html |   21 +-
 .../structtvm_1_1relax_1_1ArgsortAttrs.html        |   55 +-
 ...cttvm_1_1relax_1_1ArgsortAttrs__coll__graph.svg |  148 +-
 ...vm_1_1relax_1_1ArgsortAttrs__inherit__graph.svg |   88 +-
 .../structtvm_1_1relax_1_1AstypeAttrs-members.html |   17 +-
 .../doxygen/structtvm_1_1relax_1_1AstypeAttrs.html |   55 +-
 ...ucttvm_1_1relax_1_1AstypeAttrs__coll__graph.svg |  137 +-
 ...tvm_1_1relax_1_1AstypeAttrs__inherit__graph.svg |   84 +-
 ...ructtvm_1_1relax_1_1AttentionAttrs-members.html |   21 +-
 .../structtvm_1_1relax_1_1AttentionAttrs.html      |   55 +-
 ...tvm_1_1relax_1_1AttentionAttrs__coll__graph.svg |   88 +-
 ..._1_1relax_1_1AttentionAttrs__inherit__graph.svg |   88 +-
 ...ructtvm_1_1relax_1_1BatchNormAttrs-members.html |   27 +-
 .../structtvm_1_1relax_1_1BatchNormAttrs.html      |   55 +-
 ...tvm_1_1relax_1_1BatchNormAttrs__coll__graph.svg |   94 +-
 ..._1_1relax_1_1BatchNormAttrs__inherit__graph.svg |   94 +-
 ...ructtvm_1_1relax_1_1BucketizeAttrs-members.html |   19 +-
 .../structtvm_1_1relax_1_1BucketizeAttrs.html      |   55 +-
 ...tvm_1_1relax_1_1BucketizeAttrs__coll__graph.svg |   86 +-
 ..._1_1relax_1_1BucketizeAttrs__inherit__graph.svg |   86 +-
 ...1_1relax_1_1CallInplacePackedAttrs-members.html |   17 +-
 ...ructtvm_1_1relax_1_1CallInplacePackedAttrs.html |   55 +-
 ...elax_1_1CallInplacePackedAttrs__coll__graph.svg |   86 +-
 ...x_1_1CallInplacePackedAttrs__inherit__graph.svg |   86 +-
 ...vm_1_1relax_1_1CallTIRInplaceAttrs-members.html |   17 +-
 .../structtvm_1_1relax_1_1CallTIRInplaceAttrs.html |   55 +-
 ..._1relax_1_1CallTIRInplaceAttrs__coll__graph.svg |   86 +-
 ...elax_1_1CallTIRInplaceAttrs__inherit__graph.svg |   86 +-
 ...m_1_1relax_1_1CallTIRWithGradAttrs-members.html |   19 +-
 ...structtvm_1_1relax_1_1CallTIRWithGradAttrs.html |   55 +-
 ...1relax_1_1CallTIRWithGradAttrs__coll__graph.svg |   88 +-
 ...lax_1_1CallTIRWithGradAttrs__inherit__graph.svg |   88 +-
 .../structtvm_1_1relax_1_1ConcatAttrs-members.html |   17 +-
 .../doxygen/structtvm_1_1relax_1_1ConcatAttrs.html |   55 +-
 ...ucttvm_1_1relax_1_1ConcatAttrs__coll__graph.svg |   84 +-
 ...tvm_1_1relax_1_1ConcatAttrs__inherit__graph.svg |   84 +-
 .../structtvm_1_1relax_1_1Conv1DAttrs-members.html |   31 +-
 .../doxygen/structtvm_1_1relax_1_1Conv1DAttrs.html |   55 +-
 ...ucttvm_1_1relax_1_1Conv1DAttrs__coll__graph.svg |  158 +-
 ...tvm_1_1relax_1_1Conv1DAttrs__inherit__graph.svg |   98 +-
 ...m_1_1relax_1_1Conv1DTransposeAttrs-members.html |   33 +-
 ...structtvm_1_1relax_1_1Conv1DTransposeAttrs.html |   55 +-
 ...1relax_1_1Conv1DTransposeAttrs__coll__graph.svg |  162 +-
 ...lax_1_1Conv1DTransposeAttrs__inherit__graph.svg |  102 +-
 .../structtvm_1_1relax_1_1Conv2DAttrs-members.html |   31 +-
 .../doxygen/structtvm_1_1relax_1_1Conv2DAttrs.html |   55 +-
 ...ucttvm_1_1relax_1_1Conv2DAttrs__coll__graph.svg |  158 +-
 ...tvm_1_1relax_1_1Conv2DAttrs__inherit__graph.svg |   98 +-
 ...m_1_1relax_1_1Conv2DTransposeAttrs-members.html |   33 +-
 ...structtvm_1_1relax_1_1Conv2DTransposeAttrs.html |   55 +-
 ...1relax_1_1Conv2DTransposeAttrs__coll__graph.svg |  162 +-
 ...lax_1_1Conv2DTransposeAttrs__inherit__graph.svg |  102 +-
 .../structtvm_1_1relax_1_1Conv3DAttrs-members.html |   31 +-
 .../doxygen/structtvm_1_1relax_1_1Conv3DAttrs.html |   55 +-
 ...ucttvm_1_1relax_1_1Conv3DAttrs__coll__graph.svg |  158 +-
 ...tvm_1_1relax_1_1Conv3DAttrs__inherit__graph.svg |   98 +-
 ...ttvm_1_1relax_1_1DistributionAttrs-members.html |   19 +-
 .../structtvm_1_1relax_1_1DistributionAttrs.html   |   55 +-
 ..._1_1relax_1_1DistributionAttrs__coll__graph.svg |  167 +-
 ...1relax_1_1DistributionAttrs__inherit__graph.svg |   88 +-
 ...structtvm_1_1relax_1_1DropoutAttrs-members.html |   17 +-
 .../structtvm_1_1relax_1_1DropoutAttrs.html        |   55 +-
 ...cttvm_1_1relax_1_1DropoutAttrs__coll__graph.svg |   84 +-
 ...vm_1_1relax_1_1DropoutAttrs__inherit__graph.svg |   84 +-
 .../structtvm_1_1relax_1_1EinsumAttrs-members.html |   17 +-
 .../doxygen/structtvm_1_1relax_1_1EinsumAttrs.html |   55 +-
 ...ucttvm_1_1relax_1_1EinsumAttrs__coll__graph.svg |   84 +-
 ...tvm_1_1relax_1_1EinsumAttrs__inherit__graph.svg |   84 +-
 ...ucttvm_1_1relax_1_1ExpandDimsAttrs-members.html |   17 +-
 .../structtvm_1_1relax_1_1ExpandDimsAttrs.html     |   55 +-
 ...vm_1_1relax_1_1ExpandDimsAttrs__coll__graph.svg |   84 +-
 ...1_1relax_1_1ExpandDimsAttrs__inherit__graph.svg |   84 +-
 .../structtvm_1_1relax_1_1FlipAttrs-members.html   |   17 +-
 .../doxygen/structtvm_1_1relax_1_1FlipAttrs.html   |   55 +-
 ...tructtvm_1_1relax_1_1FlipAttrs__coll__graph.svg |  199 +-
 ...cttvm_1_1relax_1_1FlipAttrs__inherit__graph.svg |   84 +-
 ...vm_1_1relax_1_1GatherElementsAttrs-members.html |   17 +-
 .../structtvm_1_1relax_1_1GatherElementsAttrs.html |   55 +-
 ..._1relax_1_1GatherElementsAttrs__coll__graph.svg |  201 +-
 ...elax_1_1GatherElementsAttrs__inherit__graph.svg |   86 +-
 ...tructtvm_1_1relax_1_1GatherNDAttrs-members.html |   17 +-
 .../structtvm_1_1relax_1_1GatherNDAttrs.html       |   55 +-
 ...ttvm_1_1relax_1_1GatherNDAttrs__coll__graph.svg |  199 +-
 ...m_1_1relax_1_1GatherNDAttrs__inherit__graph.svg |   84 +-
 ...ructtvm_1_1relax_1_1GroupNormAttrs-members.html |   27 +-
 .../structtvm_1_1relax_1_1GroupNormAttrs.html      |   55 +-
 ...tvm_1_1relax_1_1GroupNormAttrs__coll__graph.svg |   94 +-
 ..._1_1relax_1_1GroupNormAttrs__inherit__graph.svg |   94 +-
 ...ttvm_1_1relax_1_1HintOnDeviceAttrs-members.html |   19 +-
 .../structtvm_1_1relax_1_1HintOnDeviceAttrs.html   |   55 +-
 ..._1_1relax_1_1HintOnDeviceAttrs__coll__graph.svg |   88 +-
 ...1relax_1_1HintOnDeviceAttrs__inherit__graph.svg |   88 +-
 ...tructtvm_1_1relax_1_1IndexPutAttrs-members.html |   17 +-
 .../structtvm_1_1relax_1_1IndexPutAttrs.html       |   55 +-
 ...ttvm_1_1relax_1_1IndexPutAttrs__coll__graph.svg |   84 +-
 ...m_1_1relax_1_1IndexPutAttrs__inherit__graph.svg |   84 +-
 .../structtvm_1_1relax_1_1InitAttrs-members.html   |   17 +-
 .../doxygen/structtvm_1_1relax_1_1InitAttrs.html   |   55 +-
 ...tructtvm_1_1relax_1_1InitAttrs__coll__graph.svg |  137 +-
 ...cttvm_1_1relax_1_1InitAttrs__inherit__graph.svg |   84 +-
 ...ttvm_1_1relax_1_1InstanceNormAttrs-members.html |   25 +-
 .../structtvm_1_1relax_1_1InstanceNormAttrs.html   |   55 +-
 ..._1_1relax_1_1InstanceNormAttrs__coll__graph.svg |   94 +-
 ...1relax_1_1InstanceNormAttrs__inherit__graph.svg |   94 +-
 ...ructtvm_1_1relax_1_1LayerNormAttrs-members.html |   23 +-
 .../structtvm_1_1relax_1_1LayerNormAttrs.html      |   55 +-
 ...tvm_1_1relax_1_1LayerNormAttrs__coll__graph.svg |   90 +-
 ..._1_1relax_1_1LayerNormAttrs__inherit__graph.svg |   90 +-
 ...m_1_1relax_1_1LayoutTransformAttrs-members.html |   23 +-
 ...structtvm_1_1relax_1_1LayoutTransformAttrs.html |   55 +-
 ...1relax_1_1LayoutTransformAttrs__coll__graph.svg |  136 +-
 ...lax_1_1LayoutTransformAttrs__inherit__graph.svg |   92 +-
 ...ructtvm_1_1relax_1_1LeakyReluAttrs-members.html |   17 +-
 .../structtvm_1_1relax_1_1LeakyReluAttrs.html      |   55 +-
 ...tvm_1_1relax_1_1LeakyReluAttrs__coll__graph.svg |   84 +-
 ..._1_1relax_1_1LeakyReluAttrs__inherit__graph.svg |   84 +-
 .../structtvm_1_1relax_1_1MatmulAttrs-members.html |   17 +-
 .../doxygen/structtvm_1_1relax_1_1MatmulAttrs.html |   55 +-
 ...ucttvm_1_1relax_1_1MatmulAttrs__coll__graph.svg |  137 +-
 ...tvm_1_1relax_1_1MatmulAttrs__inherit__graph.svg |   84 +-
 ...tructtvm_1_1relax_1_1MeshgridAttrs-members.html |   17 +-
 .../structtvm_1_1relax_1_1MeshgridAttrs.html       |   55 +-
 ...ttvm_1_1relax_1_1MeshgridAttrs__coll__graph.svg |   84 +-
 ...m_1_1relax_1_1MeshgridAttrs__inherit__graph.svg |   84 +-
 ...lax_1_1MultinomialFromUniformAttrs-members.html |   17 +-
 ...vm_1_1relax_1_1MultinomialFromUniformAttrs.html |   55 +-
 ...1_1MultinomialFromUniformAttrs__coll__graph.svg |   65 +-
 ...MultinomialFromUniformAttrs__inherit__graph.svg |   86 +-
 ...structtvm_1_1relax_1_1NLLLossAttrs-members.html |   19 +-
 .../structtvm_1_1relax_1_1NLLLossAttrs.html        |   55 +-
 ...cttvm_1_1relax_1_1NLLLossAttrs__coll__graph.svg |   86 +-
 ...vm_1_1relax_1_1NLLLossAttrs__inherit__graph.svg |   86 +-
 .../structtvm_1_1relax_1_1OneHotAttrs-members.html |   19 +-
 .../doxygen/structtvm_1_1relax_1_1OneHotAttrs.html |   55 +-
 ...ucttvm_1_1relax_1_1OneHotAttrs__coll__graph.svg |   86 +-
 ...tvm_1_1relax_1_1OneHotAttrs__inherit__graph.svg |   86 +-
 .../structtvm_1_1relax_1_1PReluAttrs-members.html  |   17 +-
 .../doxygen/structtvm_1_1relax_1_1PReluAttrs.html  |   55 +-
 ...ructtvm_1_1relax_1_1PReluAttrs__coll__graph.svg |   84 +-
 ...ttvm_1_1relax_1_1PReluAttrs__inherit__graph.svg |   84 +-
 .../structtvm_1_1relax_1_1PadAttrs-members.html    |   21 +-
 .../doxygen/structtvm_1_1relax_1_1PadAttrs.html    |   55 +-
 ...structtvm_1_1relax_1_1PadAttrs__coll__graph.svg |   88 +-
 ...ucttvm_1_1relax_1_1PadAttrs__inherit__graph.svg |   88 +-
 ...cttvm_1_1relax_1_1PermuteDimsAttrs-members.html |   17 +-
 .../structtvm_1_1relax_1_1PermuteDimsAttrs.html    |   55 +-
 ...m_1_1relax_1_1PermuteDimsAttrs__coll__graph.svg |   84 +-
 ..._1relax_1_1PermuteDimsAttrs__inherit__graph.svg |   84 +-
 ...ttvm_1_1relax_1_1PixelShuffleAttrs-members.html |   17 +-
 .../structtvm_1_1relax_1_1PixelShuffleAttrs.html   |   55 +-
 ..._1_1relax_1_1PixelShuffleAttrs__coll__graph.svg |   86 +-
 ...1relax_1_1PixelShuffleAttrs__inherit__graph.svg |   86 +-
 .../structtvm_1_1relax_1_1Pool1DAttrs-members.html |   31 +-
 .../doxygen/structtvm_1_1relax_1_1Pool1DAttrs.html |   55 +-
 ...ucttvm_1_1relax_1_1Pool1DAttrs__coll__graph.svg |   98 +-
 ...tvm_1_1relax_1_1Pool1DAttrs__inherit__graph.svg |   98 +-
 .../structtvm_1_1relax_1_1Pool2DAttrs-members.html |   31 +-
 .../doxygen/structtvm_1_1relax_1_1Pool2DAttrs.html |   55 +-
 ...ucttvm_1_1relax_1_1Pool2DAttrs__coll__graph.svg |   98 +-
 ...tvm_1_1relax_1_1Pool2DAttrs__inherit__graph.svg |   98 +-
 .../structtvm_1_1relax_1_1Pool3DAttrs-members.html |   31 +-
 .../doxygen/structtvm_1_1relax_1_1Pool3DAttrs.html |   55 +-
 ...ucttvm_1_1relax_1_1Pool3DAttrs__coll__graph.svg |   98 +-
 ...tvm_1_1relax_1_1Pool3DAttrs__inherit__graph.svg |   98 +-
 ...tructtvm_1_1relax_1_1QuantizeAttrs-members.html |   19 +-
 .../structtvm_1_1relax_1_1QuantizeAttrs.html       |   55 +-
 ...ttvm_1_1relax_1_1QuantizeAttrs__coll__graph.svg |  146 +-
 ...m_1_1relax_1_1QuantizeAttrs__inherit__graph.svg |   86 +-
 ...structtvm_1_1relax_1_1RMSNormAttrs-members.html |   19 +-
 .../structtvm_1_1relax_1_1RMSNormAttrs.html        |   55 +-
 ...cttvm_1_1relax_1_1RMSNormAttrs__coll__graph.svg |   86 +-
 ...vm_1_1relax_1_1RMSNormAttrs__inherit__graph.svg |   86 +-
 .../structtvm_1_1relax_1_1RepeatAttrs-members.html |   19 +-
 .../doxygen/structtvm_1_1relax_1_1RepeatAttrs.html |   55 +-
 ...ucttvm_1_1relax_1_1RepeatAttrs__coll__graph.svg |   86 +-
 ...tvm_1_1relax_1_1RepeatAttrs__inherit__graph.svg |   86 +-
 ...tructtvm_1_1relax_1_1Resize2DAttrs-members.html |   33 +-
 .../structtvm_1_1relax_1_1Resize2DAttrs.html       |   55 +-
 ...ttvm_1_1relax_1_1Resize2DAttrs__coll__graph.svg |  160 +-
 ...m_1_1relax_1_1Resize2DAttrs__inherit__graph.svg |   96 +-
 .../structtvm_1_1relax_1_1ScanopAttrs-members.html |   21 +-
 .../doxygen/structtvm_1_1relax_1_1ScanopAttrs.html |   55 +-
 ...ucttvm_1_1relax_1_1ScanopAttrs__coll__graph.svg |  256 +-
 ...tvm_1_1relax_1_1ScanopAttrs__inherit__graph.svg |   88 +-
 ...1_1relax_1_1ScatterCollectiveAttrs-members.html |   19 +-
 ...ructtvm_1_1relax_1_1ScatterCollectiveAttrs.html |   55 +-
 ...elax_1_1ScatterCollectiveAttrs__coll__graph.svg |   88 +-
 ...x_1_1ScatterCollectiveAttrs__inherit__graph.svg |   88 +-
 ...m_1_1relax_1_1ScatterElementsAttrs-members.html |   19 +-
 ...structtvm_1_1relax_1_1ScatterElementsAttrs.html |   55 +-
 ...1relax_1_1ScatterElementsAttrs__coll__graph.svg |  210 +-
 ...lax_1_1ScatterElementsAttrs__inherit__graph.svg |   88 +-
 ...ructtvm_1_1relax_1_1ScatterNDAttrs-members.html |   17 +-
 .../structtvm_1_1relax_1_1ScatterNDAttrs.html      |   55 +-
 ...tvm_1_1relax_1_1ScatterNDAttrs__coll__graph.svg |   84 +-
 ..._1_1relax_1_1ScatterNDAttrs__inherit__graph.svg |   84 +-
 ...ttvm_1_1relax_1_1SliceScatterAttrs-members.html |   17 +-
 .../structtvm_1_1relax_1_1SliceScatterAttrs.html   |   55 +-
 ..._1_1relax_1_1SliceScatterAttrs__coll__graph.svg |   86 +-
 ...1relax_1_1SliceScatterAttrs__inherit__graph.svg |   86 +-
 ...structtvm_1_1relax_1_1SoftmaxAttrs-members.html |   17 +-
 .../structtvm_1_1relax_1_1SoftmaxAttrs.html        |   55 +-
 ...cttvm_1_1relax_1_1SoftmaxAttrs__coll__graph.svg |   84 +-
 ...vm_1_1relax_1_1SoftmaxAttrs__inherit__graph.svg |   84 +-
 ...tructtvm_1_1relax_1_1SoftplusAttrs-members.html |   19 +-
 .../structtvm_1_1relax_1_1SoftplusAttrs.html       |   55 +-
 ...ttvm_1_1relax_1_1SoftplusAttrs__coll__graph.svg |   86 +-
 ...m_1_1relax_1_1SoftplusAttrs__inherit__graph.svg |   86 +-
 .../structtvm_1_1relax_1_1SortAttrs-members.html   |   19 +-
 .../doxygen/structtvm_1_1relax_1_1SortAttrs.html   |   55 +-
 ...tructtvm_1_1relax_1_1SortAttrs__coll__graph.svg |   86 +-
 ...cttvm_1_1relax_1_1SortAttrs__inherit__graph.svg |   86 +-
 .../structtvm_1_1relax_1_1SplitAttrs-members.html  |   19 +-
 .../doxygen/structtvm_1_1relax_1_1SplitAttrs.html  |   55 +-
 ...ructtvm_1_1relax_1_1SplitAttrs__coll__graph.svg |  102 +-
 ...ttvm_1_1relax_1_1SplitAttrs__inherit__graph.svg |   86 +-
 ...structtvm_1_1relax_1_1SqueezeAttrs-members.html |   17 +-
 .../structtvm_1_1relax_1_1SqueezeAttrs.html        |   55 +-
 ...cttvm_1_1relax_1_1SqueezeAttrs__coll__graph.svg |   84 +-
 ...vm_1_1relax_1_1SqueezeAttrs__inherit__graph.svg |   84 +-
 .../structtvm_1_1relax_1_1StackAttrs-members.html  |   17 +-
 .../doxygen/structtvm_1_1relax_1_1StackAttrs.html  |   55 +-
 ...ructtvm_1_1relax_1_1StackAttrs__coll__graph.svg |   84 +-
 ...ttvm_1_1relax_1_1StackAttrs__inherit__graph.svg |   84 +-
 ...cttvm_1_1relax_1_1StatisticalAttrs-members.html |   19 +-
 .../structtvm_1_1relax_1_1StatisticalAttrs.html    |   55 +-
 ...m_1_1relax_1_1StatisticalAttrs__coll__graph.svg |   86 +-
 ..._1relax_1_1StatisticalAttrs__inherit__graph.svg |   86 +-
 ...ttvm_1_1relax_1_1StridedSliceAttrs-members.html |   17 +-
 .../structtvm_1_1relax_1_1StridedSliceAttrs.html   |   55 +-
 ..._1_1relax_1_1StridedSliceAttrs__coll__graph.svg |   86 +-
 ...1relax_1_1StridedSliceAttrs__inherit__graph.svg |   86 +-
 .../structtvm_1_1relax_1_1TakeAttrs-members.html   |   19 +-
 .../doxygen/structtvm_1_1relax_1_1TakeAttrs.html   |   55 +-
 ...tructtvm_1_1relax_1_1TakeAttrs__coll__graph.svg |   86 +-
 ...cttvm_1_1relax_1_1TakeAttrs__inherit__graph.svg |   86 +-
 .../structtvm_1_1relax_1_1TileAttrs-members.html   |   17 +-
 .../doxygen/structtvm_1_1relax_1_1TileAttrs.html   |   55 +-
 ...tructtvm_1_1relax_1_1TileAttrs__coll__graph.svg |   84 +-
 ...cttvm_1_1relax_1_1TileAttrs__inherit__graph.svg |   84 +-
 ...ructtvm_1_1relax_1_1ToVDeviceAttrs-members.html |   17 +-
 .../structtvm_1_1relax_1_1ToVDeviceAttrs.html      |   55 +-
 ...tvm_1_1relax_1_1ToVDeviceAttrs__coll__graph.svg |  131 +-
 ..._1_1relax_1_1ToVDeviceAttrs__inherit__graph.svg |   84 +-
 .../structtvm_1_1relax_1_1TopKAttrs-members.html   |   25 +-
 .../doxygen/structtvm_1_1relax_1_1TopKAttrs.html   |   55 +-
 ...tructtvm_1_1relax_1_1TopKAttrs__coll__graph.svg |  152 +-
 ...cttvm_1_1relax_1_1TopKAttrs__inherit__graph.svg |   92 +-
 .../structtvm_1_1relax_1_1TriluAttrs-members.html  |   17 +-
 .../doxygen/structtvm_1_1relax_1_1TriluAttrs.html  |   55 +-
 ...ructtvm_1_1relax_1_1TriluAttrs__coll__graph.svg |   84 +-
 ...ttvm_1_1relax_1_1TriluAttrs__inherit__graph.svg |   84 +-
 ...ructtvm_1_1relax_1_1WrapParamAttrs-members.html |   17 +-
 .../structtvm_1_1relax_1_1WrapParamAttrs.html      |   55 +-
 ...tvm_1_1relax_1_1WrapParamAttrs__coll__graph.svg |  137 +-
 ..._1_1relax_1_1WrapParamAttrs__inherit__graph.svg |   84 +-
 .../structtvm_1_1relax_1_1distributed_1_1Axis.html |    2 +-
 ..._1relax_1_1distributed_1_1Axis__coll__graph.svg |  124 +-
 ...cttvm_1_1runtime_1_1profiling_1_1CallFrame.html |    2 +-
 ...time_1_1profiling_1_1CallFrame__coll__graph.svg |   62 +-
 ..._1_1profiling_1_1DeviceWrapperNode-members.html |    7 +-
 ...1runtime_1_1profiling_1_1DeviceWrapperNode.html |   48 +-
 ...profiling_1_1DeviceWrapperNode__coll__graph.svg |   39 +-
 ...filing_1_1DeviceWrapperNode__inherit__graph.svg |   39 +-
 .../api/doxygen/structtvm_1_1tir_1_1BlockInfo.html |    2 +-
 .../structtvm_1_1tir_1_1BlockInfo__coll__graph.svg |   65 +-
 .../structtvm_1_1tir_1_1LENode-members.html        |   25 +-
 .../api/doxygen/structtvm_1_1tir_1_1LENode.html    |   25 +-
 .../structtvm_1_1tir_1_1LENode__coll__graph.svg    |  212 +-
 .../structtvm_1_1tir_1_1LENode__inherit__graph.svg |  110 +-
 .../doxygen/structtvm_1_1tir_1_1MemCpyDetails.html |    2 +-
 ...ucttvm_1_1tir_1_1MemCpyDetails__coll__graph.svg |   74 +-
 docs/reference/api/doxygen/tag_8h.html             |    6 +-
 docs/reference/api/doxygen/tag_8h_source.html      |  164 +-
 docs/reference/api/doxygen/target_8h_source.html   |   90 +-
 .../api/doxygen/target__info_8h_source.html        |   34 +-
 docs/reference/api/doxygen/target__kind_8h.html    |   12 +-
 .../api/doxygen/target__kind_8h_source.html        |  552 ++--
 .../api/doxygen/task__scheduler_8h_source.html     |   88 +-
 .../api/doxygen/te_2tensor_8h_source.html          |  274 +-
 .../api/doxygen/tensor__utils_8h_source.html       |    4 +-
 .../api/doxygen/thread__bind_8h_source.html        |   10 +-
 .../api/doxygen/tir_2analysis_8h_source.html       |   26 +-
 .../api/doxygen/tir_2builtin_8h_source.html        |    2 +-
 .../reference/api/doxygen/tir_2expr_8h_source.html | 1404 +++++----
 .../api/doxygen/tir_2expr__functor_8h_source.html  |   50 +-
 .../api/doxygen/tir_2frame_8h_source.html          | 1283 ++++----
 .../api/doxygen/tir_2function_8h_source.html       |  168 +-
 docs/reference/api/doxygen/tir_2ir_8h.html         |    2 +-
 docs/reference/api/doxygen/tir_2ir_8h_source.html  |   54 +-
 docs/reference/api/doxygen/tir_2op_8h_source.html  |   34 +-
 .../doxygen/tir_2op__attr__types_8h_source.html    |    6 +-
 .../api/doxygen/tir_2transform_8h_source.html      |   16 +-
 docs/reference/api/doxygen/tir_2utils_8h.html      |    4 +-
 .../api/doxygen/tir_2utils_8h_source.html          |   12 +-
 .../api/doxygen/tir__pattern_8h_source.html        |   43 +-
 docs/reference/api/doxygen/topi_2nn_8h_source.html |   16 +-
 .../api/doxygen/topi_2transform_8h_source.html     |   34 +-
 docs/reference/api/doxygen/trace_8h_source.html    |   16 +-
 .../api/doxygen/tune__context_8h_source.html       |   12 +-
 .../api/doxygen/type__functor_8h_source.html       |   10 +-
 docs/reference/api/doxygen/var_8h_source.html      |  390 ++-
 .../api/doxygen/virtual__device_8h_source.html     |  177 +-
 docs/reference/api/doxygen/vm_8h_source.html       |  163 +-
 docs/reference/api/doxygen/winograd_8h_source.html |    4 +-
 docs/reference/api/python/contrib.html             |   11 +-
 .../api/typedoc/classes/ArtifactCache.html         |   14 +-
 .../typedoc/classes/ArtifactIndexedDBCache.html    |   16 +-
 docs/reference/api/typedoc/classes/DLDataType.html |   14 +-
 docs/reference/api/typedoc/classes/DLDevice.html   |   12 +-
 docs/reference/api/typedoc/classes/Instance.html   |  112 +-
 .../classes/LinearCongruentialGenerator.html       |   16 +-
 docs/reference/api/typedoc/classes/Module.html     |   16 +-
 docs/reference/api/typedoc/classes/RPCServer.html  |   16 +-
 docs/reference/api/typedoc/classes/Scalar.html     |    8 +-
 docs/reference/api/typedoc/classes/TVMArray.html   |   16 +-
 docs/reference/api/typedoc/classes/TVMObject.html  |   12 +-
 docs/reference/api/typedoc/classes/Tensor.html     |   34 +-
 .../api/typedoc/classes/VirtualMachine.html        |   10 +-
 .../classes/_internal_.AsyncifyHandler.html        |   14 +-
 .../classes/_internal_.CachedCallStack.html        |   38 +-
 .../classes/_internal_.CanvasRenderManager.html    |   10 +-
 .../typedoc/classes/_internal_.Environment.html    |   14 +-
 .../api/typedoc/classes/_internal_.FFILibrary.html |   22 +-
 .../api/typedoc/classes/_internal_.Memory.html     |   46 +-
 .../typedoc/classes/_internal_.PackedFuncCell.html |   12 +-
 .../typedoc/classes/_internal_.RuntimeContext.html |   72 +-
 .../typedoc/classes/_internal_.WebGPUContext.html  |   28 +-
 .../enums/_internal_.AsyncifyStateKind.html        |    8 +-
 .../typedoc/enums/_internal_.RPCServerState.html   |   14 +-
 docs/reference/api/typedoc/functions/assert.html   |    2 +-
 .../api/typedoc/functions/createPolyfillWASI.html  |    2 +-
 .../api/typedoc/functions/deleteTensorCache.html   |    2 +-
 .../api/typedoc/functions/detectGPUDevice.html     |    2 +-
 .../api/typedoc/functions/hasTensorInCache.html    |    2 +-
 .../api/typedoc/functions/instantiate.html         |    2 +-
 docs/reference/api/typedoc/functions/wasmPath.html |    2 +-
 .../typedoc/interfaces/ArtifactCacheTemplate.html  |   10 +-
 .../api/typedoc/interfaces/Disposable.html         |    4 +-
 .../typedoc/interfaces/GPUDeviceDetectOutput.html  |    8 +-
 .../api/typedoc/interfaces/InitProgressReport.html |    8 +-
 .../api/typedoc/interfaces/LibraryProvider.html    |    6 +-
 .../interfaces/_internal_.FunctionInfo.html        |    8 +-
 .../interfaces/_internal_.TensorCacheEntry.html    |   14 +-
 .../interfaces/_internal_.TensorShardEntry.html    |   10 +-
 .../api/typedoc/types/InitProgressCallback.html    |    2 +-
 docs/reference/api/typedoc/types/PackedFunc.html   |    2 +-
 .../typedoc/types/_internal_.AsyncPackedFunc.html  |    2 +-
 .../types/_internal_.FObjectConstructor.html       |    2 +-
 .../types/_internal_.FTVMFFIWasmSafeCallType.html  |    2 +-
 .../types/_internal_.FTVMWasmAllocSpace.html       |    2 +-
 .../types/_internal_.FTVMWasmFreeSpace.html        |    2 +-
 .../api/typedoc/types/_internal_.Pointer.html      |    2 +-
 .../typedoc/types/_internal_.TVMObjectBase.html    |    2 +-
 docs/searchindex.js                                |    2 +-
 docs/sg_execution_times.html                       |   28 +-
 3127 files changed, 97204 insertions(+), 107718 deletions(-)

diff --git a/docs/_downloads/11c11e53c7dace51a8be968ee169ed0d/ir_module.zip b/docs/_downloads/11c11e53c7dace51a8be968ee169ed0d/ir_module.zip
index c8227c08a0..5801848307 100644
Binary files a/docs/_downloads/11c11e53c7dace51a8be968ee169ed0d/ir_module.zip and b/docs/_downloads/11c11e53c7dace51a8be968ee169ed0d/ir_module.zip differ
diff --git a/docs/_downloads/18ba0d2ee8120824175aaef66bc9c9bf/tir_transformation.zip b/docs/_downloads/18ba0d2ee8120824175aaef66bc9c9bf/tir_transformation.zip
index 27be002d69..79912b3526 100644
Binary files a/docs/_downloads/18ba0d2ee8120824175aaef66bc9c9bf/tir_transformation.zip and b/docs/_downloads/18ba0d2ee8120824175aaef66bc9c9bf/tir_transformation.zip differ
diff --git a/docs/_downloads/4753776bbe68e7c9ee4d19117973fc8b/relax_creation.zip b/docs/_downloads/4753776bbe68e7c9ee4d19117973fc8b/relax_creation.zip
index 48fd1bf6c8..bf7c3bd7c0 100644
Binary files a/docs/_downloads/4753776bbe68e7c9ee4d19117973fc8b/relax_creation.zip and b/docs/_downloads/4753776bbe68e7c9ee4d19117973fc8b/relax_creation.zip differ
diff --git a/docs/_downloads/7d201684dfa095a5ea48d98e9a2ef7ad/relax_transformation.zip b/docs/_downloads/7d201684dfa095a5ea48d98e9a2ef7ad/relax_transformation.zip
index 4ad35c7c13..1ce901e2c4 100644
Binary files a/docs/_downloads/7d201684dfa095a5ea48d98e9a2ef7ad/relax_transformation.zip and b/docs/_downloads/7d201684dfa095a5ea48d98e9a2ef7ad/relax_transformation.zip differ
diff --git a/docs/_downloads/83e85f38cf16f1d926d06615fd54095c/optimize_llm.zip b/docs/_downloads/83e85f38cf16f1d926d06615fd54095c/optimize_llm.zip
index 986441e2a6..88c7ae59f1 100644
Binary files a/docs/_downloads/83e85f38cf16f1d926d06615fd54095c/optimize_llm.zip and b/docs/_downloads/83e85f38cf16f1d926d06615fd54095c/optimize_llm.zip differ
diff --git a/docs/_downloads/a7dd7652b2ad50f82d7b739ce3645799/e2e_opt_model.zip b/docs/_downloads/a7dd7652b2ad50f82d7b739ce3645799/e2e_opt_model.zip
index ac49b94070..1c7d67c0f7 100644
Binary files a/docs/_downloads/a7dd7652b2ad50f82d7b739ce3645799/e2e_opt_model.zip and b/docs/_downloads/a7dd7652b2ad50f82d7b739ce3645799/e2e_opt_model.zip differ
diff --git a/docs/_downloads/bb7db6678496193ed0c55d3b95fa6778/quick_start.zip b/docs/_downloads/bb7db6678496193ed0c55d3b95fa6778/quick_start.zip
index 66e2af99aa..891b8f09ac 100644
Binary files a/docs/_downloads/bb7db6678496193ed0c55d3b95fa6778/quick_start.zip and b/docs/_downloads/bb7db6678496193ed0c55d3b95fa6778/quick_start.zip differ
diff --git a/docs/_downloads/be26483bb70b8468499a01c55e8e866c/tir_creation.zip b/docs/_downloads/be26483bb70b8468499a01c55e8e866c/tir_creation.zip
index 2d10db5055..7da3d47085 100644
Binary files a/docs/_downloads/be26483bb70b8468499a01c55e8e866c/tir_creation.zip and b/docs/_downloads/be26483bb70b8468499a01c55e8e866c/tir_creation.zip differ
diff --git a/docs/_downloads/f69380821f417ef2210f45503d81bded/cross_compilation_and_rpc.zip b/docs/_downloads/f69380821f417ef2210f45503d81bded/cross_compilation_and_rpc.zip
index 37755f37b1..3b49f62814 100644
Binary files a/docs/_downloads/f69380821f417ef2210f45503d81bded/cross_compilation_and_rpc.zip and b/docs/_downloads/f69380821f417ef2210f45503d81bded/cross_compilation_and_rpc.zip differ
diff --git a/docs/_downloads/f69433a4a80715725df90d1386679956/customize_opt.zip b/docs/_downloads/f69433a4a80715725df90d1386679956/customize_opt.zip
index 4068626e5f..ed1aa877fb 100644
Binary files a/docs/_downloads/f69433a4a80715725df90d1386679956/customize_opt.zip and b/docs/_downloads/f69433a4a80715725df90d1386679956/customize_opt.zip differ
diff --git a/docs/_sources/arch/pass_infra.rst.txt b/docs/_sources/arch/pass_infra.rst.txt
index e1afb97b9a..2b878e52a2 100644
--- a/docs/_sources/arch/pass_infra.rst.txt
+++ b/docs/_sources/arch/pass_infra.rst.txt
@@ -451,7 +451,7 @@ Multiple ``PassInstrument`` instances can be registed into a single
 
     class PassInstrument : public ObjectRef {
      public:
-      TVM_DEFINE_OBJECT_REF_METHODS(PassInstrument, ObjectRef, PassInstrumentNode);
+      TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE(PassInstrument, ObjectRef, PassInstrumentNode);
     };
 
     }  // namespace instrument
diff --git a/docs/_sources/arch/runtime.rst.txt b/docs/_sources/arch/runtime.rst.txt
index 9e663b0728..d8dca0690a 100644
--- a/docs/_sources/arch/runtime.rst.txt
+++ b/docs/_sources/arch/runtime.rst.txt
@@ -227,9 +227,7 @@ Each ``Object`` subclass will override this to register its members. Here is an
       namespace refl = tvm::ffi::reflection;
       refl::ObjectDef<IntImmNode>().def_ro("value", &IntImmNode::value);
     }
-
-    static constexpr const char* _type_key = "ir.IntImm";
-    TVM_DECLARE_FINAL_OBJECT_INFO(IntImmNode, PrimExprNode);
+    TVM_FFI_DECLARE_OBJECT_INFO_FINAL("ir.IntImm", IntImmNode, PrimExprNode);
   };
   // in cc file
   TVM_FFI_STATIC_INIT_BLOCK({ IntImmNode::RegisterReflection(); });
diff --git a/docs/_sources/deep_dive/relax/tutorials/sg_execution_times.rst.txt b/docs/_sources/deep_dive/relax/tutorials/sg_execution_times.rst.txt
index 024ee06e8e..a6a65ca5d7 100644
--- a/docs/_sources/deep_dive/relax/tutorials/sg_execution_times.rst.txt
+++ b/docs/_sources/deep_dive/relax/tutorials/sg_execution_times.rst.txt
@@ -6,7 +6,7 @@
 
 Computation times
 =================
-**00:00.199** total execution time for 2 files **from deep_dive/relax/tutorials**:
+**00:00.205** total execution time for 2 files **from deep_dive/relax/tutorials**:
 
 .. container::
 
@@ -33,8 +33,8 @@ Computation times
      - Time
      - Mem (MB)
    * - :ref:`sphx_glr_deep_dive_relax_tutorials_relax_creation.py` (``relax_creation.py``)
-     - 00:00.123
+     - 00:00.127
      - 0.0
    * - :ref:`sphx_glr_deep_dive_relax_tutorials_relax_transformation.py` (``relax_transformation.py``)
-     - 00:00.076
+     - 00:00.078
      - 0.0
diff --git a/docs/_sources/deep_dive/tensor_ir/tutorials/sg_execution_times.rst.txt b/docs/_sources/deep_dive/tensor_ir/tutorials/sg_execution_times.rst.txt
index 8c9ab64064..8105ca659a 100644
--- a/docs/_sources/deep_dive/tensor_ir/tutorials/sg_execution_times.rst.txt
+++ b/docs/_sources/deep_dive/tensor_ir/tutorials/sg_execution_times.rst.txt
@@ -6,7 +6,7 @@
 
 Computation times
 =================
-**00:00.503** total execution time for 2 files **from deep_dive/tensor_ir/tutorials**:
+**00:00.512** total execution time for 2 files **from deep_dive/tensor_ir/tutorials**:
 
 .. container::
 
@@ -33,7 +33,7 @@ Computation times
      - Time
      - Mem (MB)
    * - :ref:`sphx_glr_deep_dive_tensor_ir_tutorials_tir_transformation.py` (``tir_transformation.py``)
-     - 00:00.311
+     - 00:00.320
      - 0.0
    * - :ref:`sphx_glr_deep_dive_tensor_ir_tutorials_tir_creation.py` (``tir_creation.py``)
      - 00:00.192
diff --git a/docs/_sources/deep_dive/tensor_ir/tutorials/tir_creation.rst.txt b/docs/_sources/deep_dive/tensor_ir/tutorials/tir_creation.rst.txt
index ad3a7f1082..52b2f72d8e 100644
--- a/docs/_sources/deep_dive/tensor_ir/tutorials/tir_creation.rst.txt
+++ b/docs/_sources/deep_dive/tensor_ir/tutorials/tir_creation.rst.txt
@@ -325,17 +325,17 @@ Now let's check the runtime dynamic shape inference:
 
  .. code-block:: none
 
-    [[1.4842155  1.4927433  0.9685222  1.1358514 ]
-     [1.2435093  1.016298   0.91452396 1.1167095 ]
-     [1.4434636  1.3231603  1.2827142  1.242967  ]
-     [1.1464425  0.5387838  0.9275118  1.260931  ]]
-    [[28.23903  29.71308  30.93481  ... 30.363558 31.053743 28.870646]
-     [26.937305 31.879112 33.376434 ... 30.81751  33.13374  29.380392]
-     [28.13996  32.874516 33.248234 ... 34.31494  33.69191  33.265675]
+    [[0.79856074 1.5834628  0.9821019  0.8130629 ]
+     [0.4170087  0.73563683 0.65309304 0.3976348 ]
+     [0.5255736  0.94175375 0.6933385  0.51031125]
+     [0.5876659  0.9432963  0.64934    0.5475923 ]]
+    [[34.185905 34.06788  33.84676  ... 32.861244 32.21868  34.059288]
+     [31.91816  30.936934 31.085285 ... 30.524782 31.049814 31.705301]
+     [30.918497 29.187433 29.284895 ... 29.579414 29.370596 31.5035  ]
      ...
-     [30.473276 33.874287 34.996006 ... 35.8026   32.65303  31.208685]
-     [27.386843 33.095905 34.445618 ... 34.13455  32.880955 32.802914]
-     [28.333954 34.63809  33.89331  ... 31.624716 32.496887 29.931704]]
+     [31.843826 30.405088 30.40563  ... 29.627106 31.37958  31.485231]
+     [30.702612 29.203335 27.461386 ... 23.922651 27.958906 30.254457]
+     [36.596935 33.536118 33.73528  ... 33.23242  33.410213 35.060963]]
 
 
 
diff --git a/docs/_sources/deep_dive/tensor_ir/tutorials/tir_transformation.rst.txt b/docs/_sources/deep_dive/tensor_ir/tutorials/tir_transformation.rst.txt
index 9cf9350096..80a4f24a7e 100644
--- a/docs/_sources/deep_dive/tensor_ir/tutorials/tir_transformation.rst.txt
+++ b/docs/_sources/deep_dive/tensor_ir/tutorials/tir_transformation.rst.txt
@@ -123,7 +123,7 @@ original implementation.
 
     Execution time summary:
      mean (ms)   median (ms)    max (ms)     min (ms)     std (ms)  
-       2.3047       2.3047       2.3047       2.3047       0.0000                  
+       2.3024       2.3024       2.3024       2.3024       0.0000                  
 
 
 
@@ -295,7 +295,7 @@ action involves reordering these two loops.
 
     Execution time summary:
      mean (ms)   median (ms)    max (ms)     min (ms)     std (ms)  
-       0.8743       0.8743       0.8743       0.8743       0.0000                  
+       0.8789       0.8789       0.8789       0.8789       0.0000                  
 
 
 
@@ -423,7 +423,7 @@ from the reduction update via the **decompose_reduction** primitive.
 
     Execution time summary:
      mean (ms)   median (ms)    max (ms)     min (ms)     std (ms)  
-       0.3319       0.3319       0.3319       0.3319       0.0000                  
+       0.3310       0.3310       0.3310       0.3310       0.0000                  
 
 
 
diff --git a/docs/_sources/get_started/tutorials/ir_module.rst.txt b/docs/_sources/get_started/tutorials/ir_module.rst.txt
index 8c1233495a..151233ef38 100644
--- a/docs/_sources/get_started/tutorials/ir_module.rst.txt
+++ b/docs/_sources/get_started/tutorials/ir_module.rst.txt
@@ -698,8 +698,8 @@ We can deploy the IRModule on CPU by specifying the target as ``llvm``.
 
  .. code-block:: none
 
-    [[ 0.05723073 -0.00733739  0.3361523  -0.07728509  0.16671786  0.02308307
-       0.00564074 -0.00465856 -0.02920609 -0.23340724]]
+    [[-0.12201437  0.15876865 -0.27193576  0.06799532  0.10637657 -0.03262388
+       0.0881051  -0.0589809   0.10430653 -0.20095858]]
 
 
 
@@ -765,8 +765,8 @@ Now we can compile the IRModule on GPU, the similar way as we did on CPU.
 
  .. code-block:: none
 
-    [[ 0.05723071 -0.00733737  0.3361523  -0.07728506  0.1667178   0.02308305
-       0.00564076 -0.00465858 -0.02920611 -0.23340727]]
+    [[-0.12201439  0.15876868 -0.2719358   0.06799529  0.10637657 -0.03262391
+       0.08810508 -0.05898089  0.10430651 -0.20095852]]
 
 
 
diff --git a/docs/_sources/get_started/tutorials/quick_start.rst.txt b/docs/_sources/get_started/tutorials/quick_start.rst.txt
index e085319a8f..f167c4ea0c 100644
--- a/docs/_sources/get_started/tutorials/quick_start.rst.txt
+++ b/docs/_sources/get_started/tutorials/quick_start.rst.txt
@@ -230,8 +230,8 @@ different devices.
 
  .. code-block:: none
 
-    [[26690.758 25807.812 26205.354 24983.064 25585.723 24590.357 25809.785
-      24100.672 24669.076 24323.086]]
+    [[24027.92  26316.01  24672.877 24689.232 25103.719 25122.941 24371.014
+      23082.773 25199.45  25670.191]]
 
 
 
diff --git a/docs/_sources/get_started/tutorials/sg_execution_times.rst.txt b/docs/_sources/get_started/tutorials/sg_execution_times.rst.txt
index 44a9ece457..0145aaa01d 100644
--- a/docs/_sources/get_started/tutorials/sg_execution_times.rst.txt
+++ b/docs/_sources/get_started/tutorials/sg_execution_times.rst.txt
@@ -6,7 +6,7 @@
 
 Computation times
 =================
-**00:07.841** total execution time for 2 files **from get_started/tutorials**:
+**00:09.157** total execution time for 2 files **from get_started/tutorials**:
 
 .. container::
 
@@ -33,8 +33,8 @@ Computation times
      - Time
      - Mem (MB)
    * - :ref:`sphx_glr_get_started_tutorials_ir_module.py` (``ir_module.py``)
-     - 00:07.606
+     - 00:08.964
      - 0.0
    * - :ref:`sphx_glr_get_started_tutorials_quick_start.py` (``quick_start.py``)
-     - 00:00.235
+     - 00:00.193
      - 0.0
diff --git a/docs/_sources/how_to/tutorials/cross_compilation_and_rpc.rst.txt b/docs/_sources/how_to/tutorials/cross_compilation_and_rpc.rst.txt
index cf76ce7fe7..fcbfde06b9 100644
--- a/docs/_sources/how_to/tutorials/cross_compilation_and_rpc.rst.txt
+++ b/docs/_sources/how_to/tutorials/cross_compilation_and_rpc.rst.txt
@@ -274,7 +274,7 @@ device and returns the measured cost. Network overhead is excluded.
 
  .. code-block:: none
 
-    1.343e-07 secs/op
+    1.355e-07 secs/op
 
 
 
diff --git a/docs/_sources/how_to/tutorials/customize_opt.rst.txt b/docs/_sources/how_to/tutorials/customize_opt.rst.txt
index 35b6a2f9dc..9ac0ee19a1 100644
--- a/docs/_sources/how_to/tutorials/customize_opt.rst.txt
+++ b/docs/_sources/how_to/tutorials/customize_opt.rst.txt
@@ -420,8 +420,8 @@ We can build and deploy the optimized model to the TVM runtime.
 
  .. code-block:: none
 
-    [[25931.387 24014.652 27110.314 24411.033 24698.535 24454.549 25876.8
-      24682.94  25021.168 26549.73 ]]
+    [[24500.062 26878.164 24370.607 25113.441 24708.72  25617.879 25380.729
+      24911.61  25389.883 25326.51 ]]
 
 
 
diff --git a/docs/_sources/how_to/tutorials/e2e_opt_model.rst.txt b/docs/_sources/how_to/tutorials/e2e_opt_model.rst.txt
index 76cb3cbcfd..bbfdaa8d03 100644
--- a/docs/_sources/how_to/tutorials/e2e_opt_model.rst.txt
+++ b/docs/_sources/how_to/tutorials/e2e_opt_model.rst.txt
@@ -59,7 +59,7 @@ PyTorch.
  .. code-block:: none
 
     Downloading: "https://download.pytorch.org/models/resnet18-f37072fd.pth" to /workspace/.cache/torch/hub/checkpoints/resnet18-f37072fd.pth
-       0%|          | 0.00/44.7M [00:00<?, ?B/s]      39%|███▉      | 17.5M/44.7M [00:00<00:00, 183MB/s]      91%|█████████ | 40.5M/44.7M [00:00<00:00, 217MB/s]     100%|██████████| 44.7M/44.7M [00:00<00:00, 214MB/s]
+       0%|          | 0.00/44.7M [00:00<?, ?B/s]      36%|███▌      | 16.0M/44.7M [00:00<00:00, 167MB/s]      81%|████████  | 36.2M/44.7M [00:00<00:00, 193MB/s]     100%|██████████| 44.7M/44.7M [00:00<00:00, 194MB/s]
 
 
 
diff --git a/docs/_sources/how_to/tutorials/sg_execution_times.rst.txt b/docs/_sources/how_to/tutorials/sg_execution_times.rst.txt
index 38a6bff8be..e4c921c9a9 100644
--- a/docs/_sources/how_to/tutorials/sg_execution_times.rst.txt
+++ b/docs/_sources/how_to/tutorials/sg_execution_times.rst.txt
@@ -6,7 +6,7 @@
 
 Computation times
 =================
-**00:39.606** total execution time for 4 files **from how_to/tutorials**:
+**00:40.208** total execution time for 4 files **from how_to/tutorials**:
 
 .. container::
 
@@ -33,14 +33,14 @@ Computation times
      - Time
      - Mem (MB)
    * - :ref:`sphx_glr_how_to_tutorials_optimize_llm.py` (``optimize_llm.py``)
-     - 00:38.231
+     - 00:38.693
      - 0.0
    * - :ref:`sphx_glr_how_to_tutorials_customize_opt.py` (``customize_opt.py``)
-     - 00:00.622
+     - 00:00.674
      - 0.0
    * - :ref:`sphx_glr_how_to_tutorials_e2e_opt_model.py` (``e2e_opt_model.py``)
-     - 00:00.574
+     - 00:00.642
      - 0.0
    * - :ref:`sphx_glr_how_to_tutorials_cross_compilation_and_rpc.py` (``cross_compilation_and_rpc.py``)
-     - 00:00.180
+     - 00:00.199
      - 0.0
diff --git a/docs/_sources/sg_execution_times.rst.txt b/docs/_sources/sg_execution_times.rst.txt
index 4b18f0ffbd..07a4daae09 100644
--- a/docs/_sources/sg_execution_times.rst.txt
+++ b/docs/_sources/sg_execution_times.rst.txt
@@ -6,7 +6,7 @@
 
 Computation times
 =================
-**00:48.149** total execution time for 10 files **from all galleries**:
+**00:50.081** total execution time for 10 files **from all galleries**:
 
 .. container::
 
@@ -33,32 +33,32 @@ Computation times
      - Time
      - Mem (MB)
    * - :ref:`sphx_glr_how_to_tutorials_optimize_llm.py` (``../how_to/tutorials/optimize_llm.py``)
-     - 00:38.231
+     - 00:38.693
      - 0.0
    * - :ref:`sphx_glr_get_started_tutorials_ir_module.py` (``../get_started/tutorials/ir_module.py``)
-     - 00:07.606
+     - 00:08.964
      - 0.0
    * - :ref:`sphx_glr_how_to_tutorials_customize_opt.py` (``../how_to/tutorials/customize_opt.py``)
-     - 00:00.622
+     - 00:00.674
      - 0.0
    * - :ref:`sphx_glr_how_to_tutorials_e2e_opt_model.py` (``../how_to/tutorials/e2e_opt_model.py``)
-     - 00:00.574
+     - 00:00.642
      - 0.0
    * - :ref:`sphx_glr_deep_dive_tensor_ir_tutorials_tir_transformation.py` (``../deep_dive/tensor_ir/tutorials/tir_transformation.py``)
-     - 00:00.311
+     - 00:00.320
+     - 0.0
+   * - :ref:`sphx_glr_how_to_tutorials_cross_compilation_and_rpc.py` (``../how_to/tutorials/cross_compilation_and_rpc.py``)
+     - 00:00.199
      - 0.0
    * - :ref:`sphx_glr_get_started_tutorials_quick_start.py` (``../get_started/tutorials/quick_start.py``)
-     - 00:00.235
+     - 00:00.193
      - 0.0
    * - :ref:`sphx_glr_deep_dive_tensor_ir_tutorials_tir_creation.py` (``../deep_dive/tensor_ir/tutorials/tir_creation.py``)
      - 00:00.192
      - 0.0
-   * - :ref:`sphx_glr_how_to_tutorials_cross_compilation_and_rpc.py` (``../how_to/tutorials/cross_compilation_and_rpc.py``)
-     - 00:00.180
-     - 0.0
    * - :ref:`sphx_glr_deep_dive_relax_tutorials_relax_creation.py` (``../deep_dive/relax/tutorials/relax_creation.py``)
-     - 00:00.123
+     - 00:00.127
      - 0.0
    * - :ref:`sphx_glr_deep_dive_relax_tutorials_relax_transformation.py` (``../deep_dive/relax/tutorials/relax_transformation.py``)
-     - 00:00.076
+     - 00:00.078
      - 0.0
diff --git a/docs/arch/pass_infra.html b/docs/arch/pass_infra.html
index e6eb9cb00a..73ffcd531f 100644
--- a/docs/arch/pass_infra.html
+++ b/docs/arch/pass_infra.html
@@ -690,7 +690,7 @@ Multiple <code class="docutils literal notranslate"><span class="pre">PassInstru
 
 <span class="k">class</span><span class="w"> </span><span class="nc">PassInstrument</span><span class="w"> </span><span class="o">:</span><span class="w"> </span><span class="k">public</span><span class="w"> </span><span class="n">ObjectRef</span><span class="w"> </span><span class="p">{</span>
 <span class="w"> </span><span class="k">public</span><span class="o">:</span>
-<span class="w">  </span><span class="n">TVM_DEFINE_OBJECT_REF_METHODS</span><span class="p">(</span><span class="n">PassInstrument</span><span class="p">,</span><span class="w"> </span><span class="n">ObjectRef</span><span class="p">,</span><span class="w"> </span><span class="n">PassInstrumentNode</span><span class="p">);</span>
+<span class="w">  </span><span class="n">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE</span><span class="p">(</span><span class="n">PassInstrument</span><span class="p">,</span><span class="w"> </span><span class="n">ObjectRef</span><span class="p">,</span><span class="w"> </span><span class="n">PassInstrumentNode</span><span class="p">);</span>
 <span class="p">};</span>
 
 <span class="p">}</span><span class="w">  </span><span class="c1">// namespace instrument</span>
diff --git a/docs/arch/runtime.html b/docs/arch/runtime.html
index c7016320cd..1e55cb547f 100644
--- a/docs/arch/runtime.html
+++ b/docs/arch/runtime.html
@@ -487,9 +487,7 @@ RegisterReflection function.</p>
 <span class="w">    </span><span class="n">namespace</span><span class="w"> </span><span class="n">refl</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">tvm</span><span class="o">::</span><span class="n">ffi</span><span class="o">::</span><span class="n">reflection</span><span class="p">;</span>
 <span class="w">    </span><span class="n">refl</span><span class="o">::</span><span class="n">ObjectDef</span><span class="o">&lt;</span><span class="n">IntImmNode</span><span class="o">&gt;</span><span class="p">().</span><span class="n">def_ro</span><span class="p">(</span><span class="s">&quot;value&quot;</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">IntImmNode</span><span class="o">::</span><span class="n">value</span><span class=" [...]
 <span class="w">  </span><span class="p">}</span>
-
-<span class="w">  </span><span class="k">static</span><span class="w"> </span><span class="n">constexpr</span><span class="w"> </span><span class="k">const</span><span class="w"> </span><span class="kt">char</span><span class="o">*</span><span class="w"> </span><span class="n">_type_key</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s">&quot;ir.IntImm&quot;</span><span class="p">;</span>
-<span class="w">  </span><span class="n">TVM_DECLARE_FINAL_OBJECT_INFO</span><span class="p">(</span><span class="n">IntImmNode</span><span class="p">,</span><span class="w"> </span><span class="n">PrimExprNode</span><span class="p">);</span>
+<span class="w">  </span><span class="n">TVM_FFI_DECLARE_OBJECT_INFO_FINAL</span><span class="p">(</span><span class="s">&quot;ir.IntImm&quot;</span><span class="p">,</span><span class="w"> </span><span class="n">IntImmNode</span><span class="p">,</span><span class="w"> </span><span class="n">PrimExprNode</span><span class="p">);</span>
 <span class="p">};</span>
 <span class="c1">// in cc file</span>
 <span class="n">TVM_FFI_STATIC_INIT_BLOCK</span><span class="p">({</span><span class="w"> </span><span class="n">IntImmNode</span><span class="o">::</span><span class="n">RegisterReflection</span><span class="p">();</span><span class="w"> </span><span class="p">});</span>
diff --git a/docs/commit_hash b/docs/commit_hash
index b1723c3093..bdf976772d 100644
--- a/docs/commit_hash
+++ b/docs/commit_hash
@@ -1 +1 @@
-c655f14e03b0f2d26a0ee9564afc3d815f31056f
+abc8ae802f6e54ed5978e52e7825f007b9f12c66
diff --git a/docs/deep_dive/relax/tutorials/sg_execution_times.html b/docs/deep_dive/relax/tutorials/sg_execution_times.html
index a8b1f091f3..b595cedcf9 100644
--- a/docs/deep_dive/relax/tutorials/sg_execution_times.html
+++ b/docs/deep_dive/relax/tutorials/sg_execution_times.html
@@ -293,7 +293,7 @@
             
   <section id="computation-times">
 <span id="sphx-glr-deep-dive-relax-tutorials-sg-execution-times"></span><h1>Computation times<a class="headerlink" href="#computation-times" title="Link to this heading"></a></h1>
-<p><strong>00:00.199</strong> total execution time for 2 files <strong>from deep_dive/relax/tutorials</strong>:</p>
+<p><strong>00:00.205</strong> total execution time for 2 files <strong>from deep_dive/relax/tutorials</strong>:</p>
 <div class="docutils container">
 <style scoped>
 <link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/5.3.0/css/bootstrap.min.css" rel="stylesheet" />
@@ -315,11 +315,11 @@ $(document).ready( function () {
 </thead>
 <tbody>
 <tr class="row-even"><td><p><a class="reference internal" href="relax_creation.html#sphx-glr-deep-dive-relax-tutorials-relax-creation-py"><span class="std std-ref">Relax Creation</span></a> (<code class="docutils literal notranslate"><span class="pre">relax_creation.py</span></code>)</p></td>
-<td><p>00:00.123</p></td>
+<td><p>00:00.127</p></td>
 <td><p>0.0</p></td>
 </tr>
 <tr class="row-odd"><td><p><a class="reference internal" href="relax_transformation.html#sphx-glr-deep-dive-relax-tutorials-relax-transformation-py"><span class="std std-ref">Transformation</span></a> (<code class="docutils literal notranslate"><span class="pre">relax_transformation.py</span></code>)</p></td>
-<td><p>00:00.076</p></td>
+<td><p>00:00.078</p></td>
 <td><p>0.0</p></td>
 </tr>
 </tbody>
diff --git a/docs/deep_dive/tensor_ir/tutorials/sg_execution_times.html b/docs/deep_dive/tensor_ir/tutorials/sg_execution_times.html
index 0770434982..d08a29b3e4 100644
--- a/docs/deep_dive/tensor_ir/tutorials/sg_execution_times.html
+++ b/docs/deep_dive/tensor_ir/tutorials/sg_execution_times.html
@@ -293,7 +293,7 @@
             
   <section id="computation-times">
 <span id="sphx-glr-deep-dive-tensor-ir-tutorials-sg-execution-times"></span><h1>Computation times<a class="headerlink" href="#computation-times" title="Link to this heading"></a></h1>
-<p><strong>00:00.503</strong> total execution time for 2 files <strong>from deep_dive/tensor_ir/tutorials</strong>:</p>
+<p><strong>00:00.512</strong> total execution time for 2 files <strong>from deep_dive/tensor_ir/tutorials</strong>:</p>
 <div class="docutils container">
 <style scoped>
 <link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/5.3.0/css/bootstrap.min.css" rel="stylesheet" />
@@ -315,7 +315,7 @@ $(document).ready( function () {
 </thead>
 <tbody>
 <tr class="row-even"><td><p><a class="reference internal" href="tir_transformation.html#sphx-glr-deep-dive-tensor-ir-tutorials-tir-transformation-py"><span class="std std-ref">Transformation</span></a> (<code class="docutils literal notranslate"><span class="pre">tir_transformation.py</span></code>)</p></td>
-<td><p>00:00.311</p></td>
+<td><p>00:00.320</p></td>
 <td><p>0.0</p></td>
 </tr>
 <tr class="row-odd"><td><p><a class="reference internal" href="tir_creation.html#sphx-glr-deep-dive-tensor-ir-tutorials-tir-creation-py"><span class="std std-ref">TensorIR Creation</span></a> (<code class="docutils literal notranslate"><span class="pre">tir_creation.py</span></code>)</p></td>
diff --git a/docs/deep_dive/tensor_ir/tutorials/tir_creation.html b/docs/deep_dive/tensor_ir/tutorials/tir_creation.html
index 7c445af562..4c603df755 100644
--- a/docs/deep_dive/tensor_ir/tutorials/tir_creation.html
+++ b/docs/deep_dive/tensor_ir/tutorials/tir_creation.html
@@ -491,17 +491,17 @@ be used to ascertain the shape and data type of a TensorIR.</p>
 <span class="nb">print</span><span class="p">(</span><span class="n">evaluate_dynamic_shape</span><span class="p">(</span><span class="n">dyn_shape_lib</span><span class="p">,</span> <span class="n">m</span><span class="o">=</span><span class="mi">64</span><span class="p">,</span> <span class="n">n</span><span class="o">=</span><span class="mi">64</span><span class="p">,</span> <a href="../../../reference/api/python/tir/tir.html#tvm.tir.IterVar" title="tvm.tir.IterVar" class="sphx-glr-ba [...]
 </pre></div>
 </div>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>[[1.4842155  1.4927433  0.9685222  1.1358514 ]
- [1.2435093  1.016298   0.91452396 1.1167095 ]
- [1.4434636  1.3231603  1.2827142  1.242967  ]
- [1.1464425  0.5387838  0.9275118  1.260931  ]]
-[[28.23903  29.71308  30.93481  ... 30.363558 31.053743 28.870646]
- [26.937305 31.879112 33.376434 ... 30.81751  33.13374  29.380392]
- [28.13996  32.874516 33.248234 ... 34.31494  33.69191  33.265675]
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>[[0.79856074 1.5834628  0.9821019  0.8130629 ]
+ [0.4170087  0.73563683 0.65309304 0.3976348 ]
+ [0.5255736  0.94175375 0.6933385  0.51031125]
+ [0.5876659  0.9432963  0.64934    0.5475923 ]]
+[[34.185905 34.06788  33.84676  ... 32.861244 32.21868  34.059288]
+ [31.91816  30.936934 31.085285 ... 30.524782 31.049814 31.705301]
+ [30.918497 29.187433 29.284895 ... 29.579414 29.370596 31.5035  ]
  ...
- [30.473276 33.874287 34.996006 ... 35.8026   32.65303  31.208685]
- [27.386843 33.095905 34.445618 ... 34.13455  32.880955 32.802914]
- [28.333954 34.63809  33.89331  ... 31.624716 32.496887 29.931704]]
+ [31.843826 30.405088 30.40563  ... 29.627106 31.37958  31.485231]
+ [30.702612 29.203335 27.461386 ... 23.922651 27.958906 30.254457]
+ [36.596935 33.536118 33.73528  ... 33.23242  33.410213 35.060963]]
 </pre></div>
 </div>
 </section>
diff --git a/docs/deep_dive/tensor_ir/tutorials/tir_transformation.html b/docs/deep_dive/tensor_ir/tutorials/tir_transformation.html
index d4f0785f92..f46d2bf292 100644
--- a/docs/deep_dive/tensor_ir/tutorials/tir_transformation.html
+++ b/docs/deep_dive/tensor_ir/tutorials/tir_transformation.html
@@ -370,7 +370,7 @@ original implementation.</p>
 </div>
 <div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Execution time summary:
  mean (ms)   median (ms)    max (ms)     min (ms)     std (ms)
-   2.3047       2.3047       2.3047       2.3047       0.0000
+   2.3024       2.3024       2.3024       2.3024       0.0000
 </pre></div>
 </div>
 <section id="initialization-schedule">
@@ -466,7 +466,7 @@ class Module:
 
 Execution time summary:
  mean (ms)   median (ms)    max (ms)     min (ms)     std (ms)
-   0.8743       0.8743       0.8743       0.8743       0.0000
+   0.8789       0.8789       0.8789       0.8789       0.0000
 </pre></div>
 </div>
 </section>
@@ -560,7 +560,7 @@ class Module:
 
 Execution time summary:
  mean (ms)   median (ms)    max (ms)     min (ms)     std (ms)
-   0.3319       0.3319       0.3319       0.3319       0.0000
+   0.3310       0.3310       0.3310       0.3310       0.0000
 </pre></div>
 </div>
 </section>
diff --git a/docs/get_started/tutorials/ir_module.html b/docs/get_started/tutorials/ir_module.html
index d7ccbc1264..b842579d19 100644
--- a/docs/get_started/tutorials/ir_module.html
+++ b/docs/get_started/tutorials/ir_module.html
@@ -813,8 +813,8 @@ backends.</p>
 <span class="nb">print</span><span class="p">(</span><span class="n">cpu_out</span><span class="p">)</span>
 </pre></div>
 </div>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>[[ 0.05723073 -0.00733739  0.3361523  -0.07728509  0.16671786  0.02308307
-   0.00564074 -0.00465856 -0.02920609 -0.23340724]]
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>[[-0.12201437  0.15876865 -0.27193576  0.06799532  0.10637657 -0.03262388
+   0.0881051  -0.0589809   0.10430653 -0.20095858]]
 </pre></div>
 </div>
 </section>
@@ -848,8 +848,8 @@ the details of <code class="docutils literal notranslate"><span class="pre">DLig
 <span class="k">assert</span> <span class="n">np</span><span class="o">.</span><span class="n">allclose</span><span class="p">(</span><span class="n">cpu_out</span><span class="p">,</span> <span class="n">gpu_out</span><span class="p">,</span> <span class="n">atol</span><span class="o">=</span><span class="mf">1e-3</span><span class="p">)</span>
 </pre></div>
 </div>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>[[ 0.05723071 -0.00733737  0.3361523  -0.07728506  0.1667178   0.02308305
-   0.00564076 -0.00465858 -0.02920611 -0.23340727]]
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>[[-0.12201439  0.15876868 -0.2719358   0.06799529  0.10637657 -0.03262391
+   0.08810508 -0.05898089  0.10430651 -0.20095852]]
 </pre></div>
 </div>
 </section>
diff --git a/docs/get_started/tutorials/quick_start.html b/docs/get_started/tutorials/quick_start.html
index c093b08ef2..f717274879 100644
--- a/docs/get_started/tutorials/quick_start.html
+++ b/docs/get_started/tutorials/quick_start.html
@@ -459,8 +459,8 @@ different devices.</p>
 <span class="nb">print</span><span class="p">(</span><a href="../../reference/api/python/runtime/vm.html#tvm.runtime.vm.VirtualMachine" title="tvm.runtime.vm.VirtualMachine" class="sphx-glr-backref-module-tvm-runtime-vm sphx-glr-backref-type-py-class sphx-glr-backref-instance"><span class="n">vm</span></a><span class="p">[</span><span class="s2">&quot;forward&quot;</span><span class="p">](</span><span class="n">tvm_data</span><span class="p">,</span> <span class="o">*</span><a href="http [...]
 </pre></div>
 </div>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>[[26690.758 25807.812 26205.354 24983.064 25585.723 24590.357 25809.785
-  24100.672 24669.076 24323.086]]
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>[[24027.92  26316.01  24672.877 24689.232 25103.719 25122.941 24371.014
+  23082.773 25199.45  25670.191]]
 </pre></div>
 </div>
 <p>Our goal is to bring machine learning to the application with any language of interest,
diff --git a/docs/get_started/tutorials/sg_execution_times.html b/docs/get_started/tutorials/sg_execution_times.html
index ed10af8226..c88efce3ab 100644
--- a/docs/get_started/tutorials/sg_execution_times.html
+++ b/docs/get_started/tutorials/sg_execution_times.html
@@ -293,7 +293,7 @@
             
   <section id="computation-times">
 <span id="sphx-glr-get-started-tutorials-sg-execution-times"></span><h1>Computation times<a class="headerlink" href="#computation-times" title="Link to this heading"></a></h1>
-<p><strong>00:07.841</strong> total execution time for 2 files <strong>from get_started/tutorials</strong>:</p>
+<p><strong>00:09.157</strong> total execution time for 2 files <strong>from get_started/tutorials</strong>:</p>
 <div class="docutils container">
 <style scoped>
 <link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/5.3.0/css/bootstrap.min.css" rel="stylesheet" />
@@ -315,11 +315,11 @@ $(document).ready( function () {
 </thead>
 <tbody>
 <tr class="row-even"><td><p><a class="reference internal" href="ir_module.html#sphx-glr-get-started-tutorials-ir-module-py"><span class="std std-ref">IRModule</span></a> (<code class="docutils literal notranslate"><span class="pre">ir_module.py</span></code>)</p></td>
-<td><p>00:07.606</p></td>
+<td><p>00:08.964</p></td>
 <td><p>0.0</p></td>
 </tr>
 <tr class="row-odd"><td><p><a class="reference internal" href="quick_start.html#sphx-glr-get-started-tutorials-quick-start-py"><span class="std std-ref">Quick Start</span></a> (<code class="docutils literal notranslate"><span class="pre">quick_start.py</span></code>)</p></td>
-<td><p>00:00.235</p></td>
+<td><p>00:00.193</p></td>
 <td><p>0.0</p></td>
 </tr>
 </tbody>
diff --git a/docs/how_to/tutorials/cross_compilation_and_rpc.html b/docs/how_to/tutorials/cross_compilation_and_rpc.html
index 2b0fe04b1c..b08b3e7aef 100644
--- a/docs/how_to/tutorials/cross_compilation_and_rpc.html
+++ b/docs/how_to/tutorials/cross_compilation_and_rpc.html
@@ -474,7 +474,7 @@ device and returns the measured cost. Network overhead is excluded.</p>
 <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;</span><span class="si">%g</span><span class="s2"> secs/op&quot;</span> <span class="o">%</span> <span class="n">cost</span><span class="p">)</span>
 </pre></div>
 </div>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>1.343e-07 secs/op
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>1.355e-07 secs/op
 </pre></div>
 </div>
 </section>
diff --git a/docs/how_to/tutorials/customize_opt.html b/docs/how_to/tutorials/customize_opt.html
index a74c3c5e2c..cc0822eacf 100644
--- a/docs/how_to/tutorials/customize_opt.html
+++ b/docs/how_to/tutorials/customize_opt.html
@@ -608,8 +608,8 @@ pushing the performance to the limit. The current optimization may not be the be
 <span class="nb">print</span><span class="p">(</span><span class="n">gpu_out</span><span class="p">)</span>
 </pre></div>
 </div>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>[[25931.387 24014.652 27110.314 24411.033 24698.535 24454.549 25876.8
-  24682.94  25021.168 26549.73 ]]
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>[[24500.062 26878.164 24370.607 25113.441 24708.72  25617.879 25380.729
+  24911.61  25389.883 25326.51 ]]
 </pre></div>
 </div>
 </section>
diff --git a/docs/how_to/tutorials/e2e_opt_model.html b/docs/how_to/tutorials/e2e_opt_model.html
index e76f12e5c9..17a64c7578 100644
--- a/docs/how_to/tutorials/e2e_opt_model.html
+++ b/docs/how_to/tutorials/e2e_opt_model.html
@@ -330,9 +330,9 @@ PyTorch.</p>
 <div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>Downloading: &quot;https://download.pytorch.org/models/resnet18-f37072fd.pth&quot; to /workspace/.cache/torch/hub/checkpoints/resnet18-f37072fd.pth
 
   0%|          | 0.00/44.7M [00:00&lt;?, ?B/s]
- 39%|███▉      | 17.5M/44.7M [00:00&lt;00:00, 183MB/s]
- 91%|█████████ | 40.5M/44.7M [00:00&lt;00:00, 217MB/s]
-100%|██████████| 44.7M/44.7M [00:00&lt;00:00, 214MB/s]
+ 36%|███▌      | 16.0M/44.7M [00:00&lt;00:00, 167MB/s]
+ 81%|████████  | 36.2M/44.7M [00:00&lt;00:00, 193MB/s]
+100%|██████████| 44.7M/44.7M [00:00&lt;00:00, 194MB/s]
 </pre></div>
 </div>
 </section>
diff --git a/docs/how_to/tutorials/sg_execution_times.html b/docs/how_to/tutorials/sg_execution_times.html
index 2e32722a7d..f2ec5d69fe 100644
--- a/docs/how_to/tutorials/sg_execution_times.html
+++ b/docs/how_to/tutorials/sg_execution_times.html
@@ -293,7 +293,7 @@
             
   <section id="computation-times">
 <span id="sphx-glr-how-to-tutorials-sg-execution-times"></span><h1>Computation times<a class="headerlink" href="#computation-times" title="Link to this heading"></a></h1>
-<p><strong>00:39.606</strong> total execution time for 4 files <strong>from how_to/tutorials</strong>:</p>
+<p><strong>00:40.208</strong> total execution time for 4 files <strong>from how_to/tutorials</strong>:</p>
 <div class="docutils container">
 <style scoped>
 <link href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/5.3.0/css/bootstrap.min.css" rel="stylesheet" />
@@ -315,19 +315,19 @@ $(document).ready( function () {
 </thead>
 <tbody>
 <tr class="row-even"><td><p><a class="reference internal" href="optimize_llm.html#sphx-glr-how-to-tutorials-optimize-llm-py"><span class="std std-ref">Optimize Large Language Model</span></a> (<code class="docutils literal notranslate"><span class="pre">optimize_llm.py</span></code>)</p></td>
-<td><p>00:38.231</p></td>
+<td><p>00:38.693</p></td>
 <td><p>0.0</p></td>
 </tr>
 <tr class="row-odd"><td><p><a class="reference internal" href="customize_opt.html#sphx-glr-how-to-tutorials-customize-opt-py"><span class="std std-ref">Customize Optimization</span></a> (<code class="docutils literal notranslate"><span class="pre">customize_opt.py</span></code>)</p></td>
-<td><p>00:00.622</p></td>
+<td><p>00:00.674</p></td>
 <td><p>0.0</p></td>
 </tr>
 <tr class="row-even"><td><p><a class="reference internal" href="e2e_opt_model.html#sphx-glr-how-to-tutorials-e2e-opt-model-py"><span class="std std-ref">End-to-End Optimize Model</span></a> (<code class="docutils literal notranslate"><span class="pre">e2e_opt_model.py</span></code>)</p></td>
-<td><p>00:00.574</p></td>
+<td><p>00:00.642</p></td>
 <td><p>0.0</p></td>
 </tr>
 <tr class="row-odd"><td><p><a class="reference internal" href="cross_compilation_and_rpc.html#sphx-glr-how-to-tutorials-cross-compilation-and-rpc-py"><span class="std std-ref">Cross Compilation and RPC</span></a> (<code class="docutils literal notranslate"><span class="pre">cross_compilation_and_rpc.py</span></code>)</p></td>
-<td><p>00:00.180</p></td>
+<td><p>00:00.199</p></td>
 <td><p>0.0</p></td>
 </tr>
 </tbody>
diff --git a/docs/reference/api/doxygen/_2workspace_2include_2tvm_2script_2ir_builder_2base_8h-example.html b/docs/reference/api/doxygen/_2workspace_2include_2tvm_2script_2ir_builder_2base_8h-example.html
index 40ad510758..cbc5b42e31 100644
--- a/docs/reference/api/doxygen/_2workspace_2include_2tvm_2script_2ir_builder_2base_8h-example.html
+++ b/docs/reference/api/doxygen/_2workspace_2include_2tvm_2script_2ir_builder_2base_8h-example.html
@@ -121,8 +121,9 @@ $(function() {
 <div class="line">    <span class="comment">// `callbacks` is not registered as it&#39;s not visited.</span></div>
 <div class="line">  }</div>
 <div class="line"> </div>
-<div class="line">  <span class="keyword">static</span> constexpr <span class="keyword">const</span> <span class="keywordtype">char</span>* <a name="a2"></a><a class="code" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrameNode.html#a844a2738450dc426d39f408046ef3207">_type_key</a> = <span class="stringliteral">&quot;script.ir_builder.IRBuilderFrame&quot;</span>;</div>
-<div class="line">  <a name="a3"></a><a class="code" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrameNode.html#a290e180b9b57d3e133874fc0343a0453">TVM_DECLARE_BASE_OBJECT_INFO</a>(IRBuilderFrameNode, runtime::Object);</div>
+<div class="line">  <span class="keyword">static</span> constexpr <span class="keyword">const</span> <span class="keywordtype">bool</span> <a name="a2"></a><a class="code" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrameNode.html#a174fb590c4fb0d8e7126d038e405052b">_type_mutable</a> = <span class="keyword">true</span>;</div>
+<div class="line">  <a name="a3"></a><a class="code" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrameNode.html#a1b5718b83b05301f864ffcce0a2df8ec">TVM_FFI_DECLARE_OBJECT_INFO</a>(<span class="stringliteral">&quot;script.ir_builder.IRBuilderFrame&quot;</span>, IRBuilderFrameNode,</div>
+<div class="line">                              runtime::Object);</div>
 <div class="line"> </div>
 <div class="line"> <span class="keyword">public</span>:</div>
 <div class="line">  <span class="keyword">virtual</span> <a name="a4"></a><a class="code" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrameNode.html#a8e61799eac4e806aef5a87d07943883d">~IRBuilderFrameNode</a>() = <span class="keywordflow">default</span>;</div>
@@ -133,7 +134,7 @@ $(function() {
 <div class="line"> </div>
 <div class="line"><span class="keyword">class </span>IRBuilderFrame : <span class="keyword">public</span> runtime::ObjectRef {</div>
 <div class="line"> <span class="keyword">public</span>:</div>
-<div class="line">  <a name="a8"></a><a class="code" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame.html#ad4a36a9c72d592d40b02548864e149a8">TVM_DEFINE_MUTABLE_NOTNULLABLE_OBJECT_REF_METHODS</a>(<a name="a9"></a><a class="code" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame.html#a4ab7fb335968d6947f88b7b934c56354">IRBuilderFrame</a>, ObjectRef, IRBuilderFrameNode);</div>
+<div class="line">  <a name="a8"></a><a class="code" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame.html#a0994f7bf96b52ec20625e520bf294666">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NOTNULLABLE</a>(<a name="a9"></a><a class="code" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame.html#a4ab7fb335968d6947f88b7b934c56354">IRBuilderFrame</a>, ObjectRef, IRBuilderFrameNode);</div>
 <div class="line"> </div>
 <div class="line"> <span class="keyword">protected</span>:</div>
 <div class="line">  <a class="code" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame.html#a4ab7fb335968d6947f88b7b934c56354">IRBuilderFrame</a>() = <span class="keywordflow">default</span>;</div>
@@ -164,8 +165,8 @@ $(function() {
 <div class="line">        .def_ro(<span class="stringliteral">&quot;result&quot;</span>, &amp;<a class="code" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderNode.html#a8787b7b11fefe67f74e0a8dfd7c93788">IRBuilderNode::result</a>);</div>
 <div class="line">  }</div>
 <div class="line"> </div>
-<div class="line">  <span class="keyword">static</span> constexpr <span class="keyword">const</span> <span class="keywordtype">char</span>* <a name="a15"></a><a class="code" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderNode.html#ab7dd86ad9bc6cc85ea6f5bc3784fcfc8">_type_key</a> = <span class="stringliteral">&quot;script.ir_builder.IRBuilder&quot;</span>;</div>
-<div class="line">  <a name="a16"></a><a class="code" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderNode.html#ab8d140762cdc7a061f4fd88748c08ce1">TVM_DECLARE_FINAL_OBJECT_INFO</a>(IRBuilderNode, runtime::Object);</div>
+<div class="line">  <span class="keyword">static</span> constexpr <span class="keyword">const</span> <span class="keywordtype">bool</span> <a name="a15"></a><a class="code" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderNode.html#ae7234be564e059c1ab4bfad3bc1f9ae8">_type_mutable</a> = <span class="keyword">true</span>;</div>
+<div class="line">  <a name="a16"></a><a class="code" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderNode.html#aff5cf212ebea7fd1c95f3b37eb505255">TVM_FFI_DECLARE_OBJECT_INFO_FINAL</a>(<span class="stringliteral">&quot;script.ir_builder.IRBuilder&quot;</span>, IRBuilderNode, runtime::Object);</div>
 <div class="line"> </div>
 <div class="line"> <span class="keyword">public</span>:</div>
 <div class="line">  <span class="keyword">template</span> &lt;<span class="keyword">typename</span> TFrame&gt;</div>
@@ -179,7 +180,7 @@ $(function() {
 <div class="line"><span class="keyword">class </span>IRBuilder : <span class="keyword">public</span> runtime::ObjectRef {</div>
 <div class="line"> <span class="keyword">public</span>:</div>
 <div class="line">  <a name="a20"></a><a class="code" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilder.html#af63e228f3faaa0d87fdd52e1fe921dd3">IRBuilder</a>();</div>
-<div class="line">  <a name="a21"></a><a class="code" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilder.html#ae45631bb163bde7a18b70916f59ab272">TVM_DEFINE_MUTABLE_NOTNULLABLE_OBJECT_REF_METHODS</a>(<a class="code" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilder.html#af63e228f3faaa0d87fdd52e1fe921dd3">IRBuilder</a>, ObjectRef, IRBuilderNode);</div>
+<div class="line">  <a name="a21"></a><a class="code" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilder.html#ae278b4f2cbc213627e06b6461cd326e8">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NOTNULLABLE</a>(<a class="code" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilder.html#af63e228f3faaa0d87fdd52e1fe921dd3">IRBuilder</a>, ObjectRef, IRBuilderNode);</div>
 <div class="line"> </div>
 <div class="line"> <span class="keyword">public</span>:</div>
 <div class="line">  <span class="keywordtype">void</span> <a name="a22"></a><a class="code" href="classtvm_1_1script_1_1ir__builder_1_1IRBuilder.html#a91b23ff72360fba3500c0b5c8346f67d">EnterWithScope</a>();</div>
@@ -242,35 +243,35 @@ $(function() {
 <div class="line">}  <span class="comment">// namespace tvm</span></div>
 <div class="line"> </div>
 <div class="line"><span class="preprocessor">#endif  </span><span class="comment">// TVM_SCRIPT_IR_BUILDER_BASE_H_</span></div>
-<div class="ttc" id="aclasstvm_1_1script_1_1ir__builder_1_1IRBuilderFrameNode_html_a290e180b9b57d3e133874fc0343a0453"><div class="ttname"><a href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrameNode.html#a290e180b9b57d3e133874fc0343a0453">tvm::script::ir_builder::IRBuilderFrameNode::TVM_DECLARE_BASE_OBJECT_INFO</a></div><div class="ttdeci">TVM_DECLARE_BASE_OBJECT_INFO(IRBuilderFrameNode, runtime::Object)</div></div>
+<div class="ttc" id="aclasstvm_1_1script_1_1ir__builder_1_1IRBuilderFrameNode_html_a174fb590c4fb0d8e7126d038e405052b"><div class="ttname"><a href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrameNode.html#a174fb590c4fb0d8e7126d038e405052b">tvm::script::ir_builder::IRBuilderFrameNode::_type_mutable</a></div><div class="ttdeci">static constexpr const bool _type_mutable</div><div class="ttdef"><b>Definition:</b> base.h:76</div></div>
+<div class="ttc" id="aclasstvm_1_1script_1_1ir__builder_1_1IRBuilderFrameNode_html_a1b5718b83b05301f864ffcce0a2df8ec"><div class="ttname"><a href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrameNode.html#a1b5718b83b05301f864ffcce0a2df8ec">tvm::script::ir_builder::IRBuilderFrameNode::TVM_FFI_DECLARE_OBJECT_INFO</a></div><div class="ttdeci">TVM_FFI_DECLARE_OBJECT_INFO(&quot;script.ir_builder.IRBuilderFrame&quot;, IRBuilderFrameNode, runtime::Object)</div></div>
 <div class="ttc" id="aclasstvm_1_1script_1_1ir__builder_1_1IRBuilderFrameNode_html_a45f552bb19d593f4ecc4b3b5d69cf8dc"><div class="ttname"><a href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrameNode.html#a45f552bb19d593f4ecc4b3b5d69cf8dc">tvm::script::ir_builder::IRBuilderFrameNode::callbacks</a></div><div class="ttdeci">std::vector&lt; ffi::TypedFunction&lt; void()&gt; &gt; callbacks</div><div class="ttdoc">A list of callbacks used when exiting the frame.</div><div class="ttdef"><b> [...]
-<div class="ttc" id="aclasstvm_1_1script_1_1ir__builder_1_1IRBuilderFrameNode_html_a844a2738450dc426d39f408046ef3207"><div class="ttname"><a href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrameNode.html#a844a2738450dc426d39f408046ef3207">tvm::script::ir_builder::IRBuilderFrameNode::_type_key</a></div><div class="ttdeci">static constexpr const char * _type_key</div><div class="ttdef"><b>Definition:</b> base.h:76</div></div>
 <div class="ttc" id="aclasstvm_1_1script_1_1ir__builder_1_1IRBuilderFrameNode_html_a8e61799eac4e806aef5a87d07943883d"><div class="ttname"><a href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrameNode.html#a8e61799eac4e806aef5a87d07943883d">tvm::script::ir_builder::IRBuilderFrameNode::~IRBuilderFrameNode</a></div><div class="ttdeci">virtual ~IRBuilderFrameNode()=default</div><div class="ttdoc">Default destructor.</div></div>
 <div class="ttc" id="aclasstvm_1_1script_1_1ir__builder_1_1IRBuilderFrameNode_html_aa00a7144c5dc23443f757acf69766b4c"><div class="ttname"><a href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrameNode.html#aa00a7144c5dc23443f757acf69766b4c">tvm::script::ir_builder::IRBuilderFrameNode::ExitWithScope</a></div><div class="ttdeci">virtual void ExitWithScope()</div><div class="ttdoc">The method called when exiting RAII scope.</div></div>
 <div class="ttc" id="aclasstvm_1_1script_1_1ir__builder_1_1IRBuilderFrameNode_html_ab3aaced994da313ebabad6b955332f14"><div class="ttname"><a href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrameNode.html#ab3aaced994da313ebabad6b955332f14">tvm::script::ir_builder::IRBuilderFrameNode::EnterWithScope</a></div><div class="ttdeci">virtual void EnterWithScope()</div><div class="ttdoc">The method called when entering RAII scope.</div></div>
 <div class="ttc" id="aclasstvm_1_1script_1_1ir__builder_1_1IRBuilderFrameNode_html_ada273813a289507af066ec2aecf11e9b"><div class="ttname"><a href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrameNode.html#ada273813a289507af066ec2aecf11e9b">tvm::script::ir_builder::IRBuilderFrameNode::AddCallback</a></div><div class="ttdeci">void AddCallback(ffi::TypedFunction&lt; void()&gt; callback)</div><div class="ttdoc">Add a callback method invoked when exiting the RAII scope.</div></div>
 <div class="ttc" id="aclasstvm_1_1script_1_1ir__builder_1_1IRBuilderFrameNode_html_ae1ff131a0cbf6465def48e8ea1056d3e"><div class="ttname"><a href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrameNode.html#ae1ff131a0cbf6465def48e8ea1056d3e">tvm::script::ir_builder::IRBuilderFrameNode::RegisterReflection</a></div><div class="ttdeci">static void RegisterReflection()</div><div class="ttdef"><b>Definition:</b> base.h:70</div></div>
-<div class="ttc" id="aclasstvm_1_1script_1_1ir__builder_1_1IRBuilderFrame_html_a06a9c6f3c686c68da8ca2c707b13a751"><div class="ttname"><a href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame.html#a06a9c6f3c686c68da8ca2c707b13a751">tvm::script::ir_builder::IRBuilderFrame::EnterWithScope</a></div><div class="ttdeci">void EnterWithScope()</div><div class="ttdoc">Redirected to IRBuilderFrameNode::EnterWithScope.</div><div class="ttdef"><b>Definition:</b> base.h:117</div></div>
+<div class="ttc" id="aclasstvm_1_1script_1_1ir__builder_1_1IRBuilderFrame_html_a06a9c6f3c686c68da8ca2c707b13a751"><div class="ttname"><a href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame.html#a06a9c6f3c686c68da8ca2c707b13a751">tvm::script::ir_builder::IRBuilderFrame::EnterWithScope</a></div><div class="ttdeci">void EnterWithScope()</div><div class="ttdoc">Redirected to IRBuilderFrameNode::EnterWithScope.</div><div class="ttdef"><b>Definition:</b> base.h:118</div></div>
+<div class="ttc" id="aclasstvm_1_1script_1_1ir__builder_1_1IRBuilderFrame_html_a0994f7bf96b52ec20625e520bf294666"><div class="ttname"><a href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame.html#a0994f7bf96b52ec20625e520bf294666">tvm::script::ir_builder::IRBuilderFrame::TVM_FFI_DEFINE_OBJECT_REF_METHODS_NOTNULLABLE</a></div><div class="ttdeci">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NOTNULLABLE(IRBuilderFrame, ObjectRef, IRBuilderFrameNode)</div></div>
 <div class="ttc" id="aclasstvm_1_1script_1_1ir__builder_1_1IRBuilderFrame_html_a4ab7fb335968d6947f88b7b934c56354"><div class="ttname"><a href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame.html#a4ab7fb335968d6947f88b7b934c56354">tvm::script::ir_builder::IRBuilderFrame::IRBuilderFrame</a></div><div class="ttdeci">IRBuilderFrame()=default</div><div class="ttdoc">Disallow direct construction of this object.</div></div>
-<div class="ttc" id="aclasstvm_1_1script_1_1ir__builder_1_1IRBuilderFrame_html_a8ca5afe93534c3bf7e521609d5654ac3"><div class="ttname"><a href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame.html#a8ca5afe93534c3bf7e521609d5654ac3">tvm::script::ir_builder::IRBuilderFrame::ExitWithScope</a></div><div class="ttdeci">void ExitWithScope()</div><div class="ttdoc">Redirected to IRBuilderFrameNode::ExitWithScope.</div><div class="ttdef"><b>Definition:</b> base.h:125</div></div>
-<div class="ttc" id="aclasstvm_1_1script_1_1ir__builder_1_1IRBuilderFrame_html_ad4a36a9c72d592d40b02548864e149a8"><div class="ttname"><a href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame.html#ad4a36a9c72d592d40b02548864e149a8">tvm::script::ir_builder::IRBuilderFrame::TVM_DEFINE_MUTABLE_NOTNULLABLE_OBJECT_REF_METHODS</a></div><div class="ttdeci">TVM_DEFINE_MUTABLE_NOTNULLABLE_OBJECT_REF_METHODS(IRBuilderFrame, ObjectRef, IRBuilderFrameNode)</div></div>
-<div class="ttc" id="aclasstvm_1_1script_1_1ir__builder_1_1IRBuilderNode_html_a23c14fb69cc3a8ffc8a02a00a2102fa0"><div class="ttname"><a href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderNode.html#a23c14fb69cc3a8ffc8a02a00a2102fa0">tvm::script::ir_builder::IRBuilderNode::FindFrame</a></div><div class="ttdeci">ffi::Optional&lt; TFrame &gt; FindFrame() const</div><div class="ttdoc">Find a frame of the given type in the stack this-&gt;frames from top to bottom.</div><div class="ttdef"><b>D [...]
-<div class="ttc" id="aclasstvm_1_1script_1_1ir__builder_1_1IRBuilderNode_html_a269c953494bb520cf6d6f1ade1e0dfd1"><div class="ttname"><a href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderNode.html#a269c953494bb520cf6d6f1ade1e0dfd1">tvm::script::ir_builder::IRBuilderNode::GetLastFrame</a></div><div class="ttdeci">ffi::Optional&lt; TFrame &gt; GetLastFrame() const</div><div class="ttdoc">Get the frame on top of the stack this-&gt;frames if its type is TFrame.</div><div class="ttdef"><b>De [...]
-<div class="ttc" id="aclasstvm_1_1script_1_1ir__builder_1_1IRBuilderNode_html_a84baa43243371ac9aa0c67aa1b5dd570"><div class="ttname"><a href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderNode.html#a84baa43243371ac9aa0c67aa1b5dd570">tvm::script::ir_builder::IRBuilderNode::Get</a></div><div class="ttdeci">TObjectRef Get() const</div><div class="ttdoc">Get the IR being constructed.</div><div class="ttdef"><b>Definition:</b> base.h:296</div></div>
-<div class="ttc" id="aclasstvm_1_1script_1_1ir__builder_1_1IRBuilderNode_html_a8787b7b11fefe67f74e0a8dfd7c93788"><div class="ttname"><a href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderNode.html#a8787b7b11fefe67f74e0a8dfd7c93788">tvm::script::ir_builder::IRBuilderNode::result</a></div><div class="ttdeci">ffi::Optional&lt; ObjectRef &gt; result</div><div class="ttdoc">The outcome of IR construction.</div><div class="ttdef"><b>Definition:</b> base.h:163</div></div>
-<div class="ttc" id="aclasstvm_1_1script_1_1ir__builder_1_1IRBuilderNode_html_ab7dd86ad9bc6cc85ea6f5bc3784fcfc8"><div class="ttname"><a href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderNode.html#ab7dd86ad9bc6cc85ea6f5bc3784fcfc8">tvm::script::ir_builder::IRBuilderNode::_type_key</a></div><div class="ttdeci">static constexpr const char * _type_key</div><div class="ttdef"><b>Definition:</b> base.h:172</div></div>
-<div class="ttc" id="aclasstvm_1_1script_1_1ir__builder_1_1IRBuilderNode_html_ab8d140762cdc7a061f4fd88748c08ce1"><div class="ttname"><a href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderNode.html#ab8d140762cdc7a061f4fd88748c08ce1">tvm::script::ir_builder::IRBuilderNode::TVM_DECLARE_FINAL_OBJECT_INFO</a></div><div class="ttdeci">TVM_DECLARE_FINAL_OBJECT_INFO(IRBuilderNode, runtime::Object)</div></div>
-<div class="ttc" id="aclasstvm_1_1script_1_1ir__builder_1_1IRBuilderNode_html_aeee5257a6e808eceb3908bb6a55debf2"><div class="ttname"><a href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderNode.html#aeee5257a6e808eceb3908bb6a55debf2">tvm::script::ir_builder::IRBuilderNode::frames</a></div><div class="ttdeci">ffi::Array&lt; IRBuilderFrame &gt; frames</div><div class="ttdoc">A stack of context frames in the IRBuilder.</div><div class="ttdef"><b>Definition:</b> base.h:161</div></div>
-<div class="ttc" id="aclasstvm_1_1script_1_1ir__builder_1_1IRBuilderNode_html_af45f626a7c75b81cc5393d25a3bb148e"><div class="ttname"><a href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderNode.html#af45f626a7c75b81cc5393d25a3bb148e">tvm::script::ir_builder::IRBuilderNode::RegisterReflection</a></div><div class="ttdeci">static void RegisterReflection()</div><div class="ttdef"><b>Definition:</b> base.h:165</div></div>
-<div class="ttc" id="aclasstvm_1_1script_1_1ir__builder_1_1IRBuilder_html_a16bb7ca91d7a825ce3941a81a57782d9"><div class="ttname"><a href="classtvm_1_1script_1_1ir__builder_1_1IRBuilder.html#a16bb7ca91d7a825ce3941a81a57782d9">tvm::script::ir_builder::IRBuilder::Name</a></div><div class="ttdeci">static TObjectRef Name(ffi::String name, TObjectRef obj)</div><div class="ttdoc">Give a string name to the obj</div><div class="ttdef"><b>Definition:</b> base.h:270</div></div>
+<div class="ttc" id="aclasstvm_1_1script_1_1ir__builder_1_1IRBuilderFrame_html_a8ca5afe93534c3bf7e521609d5654ac3"><div class="ttname"><a href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrame.html#a8ca5afe93534c3bf7e521609d5654ac3">tvm::script::ir_builder::IRBuilderFrame::ExitWithScope</a></div><div class="ttdeci">void ExitWithScope()</div><div class="ttdoc">Redirected to IRBuilderFrameNode::ExitWithScope.</div><div class="ttdef"><b>Definition:</b> base.h:126</div></div>
+<div class="ttc" id="aclasstvm_1_1script_1_1ir__builder_1_1IRBuilderNode_html_a23c14fb69cc3a8ffc8a02a00a2102fa0"><div class="ttname"><a href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderNode.html#a23c14fb69cc3a8ffc8a02a00a2102fa0">tvm::script::ir_builder::IRBuilderNode::FindFrame</a></div><div class="ttdeci">ffi::Optional&lt; TFrame &gt; FindFrame() const</div><div class="ttdoc">Find a frame of the given type in the stack this-&gt;frames from top to bottom.</div><div class="ttdef"><b>D [...]
+<div class="ttc" id="aclasstvm_1_1script_1_1ir__builder_1_1IRBuilderNode_html_a269c953494bb520cf6d6f1ade1e0dfd1"><div class="ttname"><a href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderNode.html#a269c953494bb520cf6d6f1ade1e0dfd1">tvm::script::ir_builder::IRBuilderNode::GetLastFrame</a></div><div class="ttdeci">ffi::Optional&lt; TFrame &gt; GetLastFrame() const</div><div class="ttdoc">Get the frame on top of the stack this-&gt;frames if its type is TFrame.</div><div class="ttdef"><b>De [...]
+<div class="ttc" id="aclasstvm_1_1script_1_1ir__builder_1_1IRBuilderNode_html_a84baa43243371ac9aa0c67aa1b5dd570"><div class="ttname"><a href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderNode.html#a84baa43243371ac9aa0c67aa1b5dd570">tvm::script::ir_builder::IRBuilderNode::Get</a></div><div class="ttdeci">TObjectRef Get() const</div><div class="ttdoc">Get the IR being constructed.</div><div class="ttdef"><b>Definition:</b> base.h:297</div></div>
+<div class="ttc" id="aclasstvm_1_1script_1_1ir__builder_1_1IRBuilderNode_html_a8787b7b11fefe67f74e0a8dfd7c93788"><div class="ttname"><a href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderNode.html#a8787b7b11fefe67f74e0a8dfd7c93788">tvm::script::ir_builder::IRBuilderNode::result</a></div><div class="ttdeci">ffi::Optional&lt; ObjectRef &gt; result</div><div class="ttdoc">The outcome of IR construction.</div><div class="ttdef"><b>Definition:</b> base.h:164</div></div>
+<div class="ttc" id="aclasstvm_1_1script_1_1ir__builder_1_1IRBuilderNode_html_ae7234be564e059c1ab4bfad3bc1f9ae8"><div class="ttname"><a href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderNode.html#ae7234be564e059c1ab4bfad3bc1f9ae8">tvm::script::ir_builder::IRBuilderNode::_type_mutable</a></div><div class="ttdeci">static constexpr const bool _type_mutable</div><div class="ttdef"><b>Definition:</b> base.h:173</div></div>
+<div class="ttc" id="aclasstvm_1_1script_1_1ir__builder_1_1IRBuilderNode_html_aeee5257a6e808eceb3908bb6a55debf2"><div class="ttname"><a href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderNode.html#aeee5257a6e808eceb3908bb6a55debf2">tvm::script::ir_builder::IRBuilderNode::frames</a></div><div class="ttdeci">ffi::Array&lt; IRBuilderFrame &gt; frames</div><div class="ttdoc">A stack of context frames in the IRBuilder.</div><div class="ttdef"><b>Definition:</b> base.h:162</div></div>
+<div class="ttc" id="aclasstvm_1_1script_1_1ir__builder_1_1IRBuilderNode_html_af45f626a7c75b81cc5393d25a3bb148e"><div class="ttname"><a href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderNode.html#af45f626a7c75b81cc5393d25a3bb148e">tvm::script::ir_builder::IRBuilderNode::RegisterReflection</a></div><div class="ttdeci">static void RegisterReflection()</div><div class="ttdef"><b>Definition:</b> base.h:166</div></div>
+<div class="ttc" id="aclasstvm_1_1script_1_1ir__builder_1_1IRBuilderNode_html_aff5cf212ebea7fd1c95f3b37eb505255"><div class="ttname"><a href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderNode.html#aff5cf212ebea7fd1c95f3b37eb505255">tvm::script::ir_builder::IRBuilderNode::TVM_FFI_DECLARE_OBJECT_INFO_FINAL</a></div><div class="ttdeci">TVM_FFI_DECLARE_OBJECT_INFO_FINAL(&quot;script.ir_builder.IRBuilder&quot;, IRBuilderNode, runtime::Object)</div></div>
+<div class="ttc" id="aclasstvm_1_1script_1_1ir__builder_1_1IRBuilder_html_a16bb7ca91d7a825ce3941a81a57782d9"><div class="ttname"><a href="classtvm_1_1script_1_1ir__builder_1_1IRBuilder.html#a16bb7ca91d7a825ce3941a81a57782d9">tvm::script::ir_builder::IRBuilder::Name</a></div><div class="ttdeci">static TObjectRef Name(ffi::String name, TObjectRef obj)</div><div class="ttdoc">Give a string name to the obj</div><div class="ttdef"><b>Definition:</b> base.h:271</div></div>
 <div class="ttc" id="aclasstvm_1_1script_1_1ir__builder_1_1IRBuilder_html_a4999d7966e447958e004c6a12417d610"><div class="ttname"><a href="classtvm_1_1script_1_1ir__builder_1_1IRBuilder.html#a4999d7966e447958e004c6a12417d610">tvm::script::ir_builder::IRBuilder::ExitWithScope</a></div><div class="ttdeci">void ExitWithScope()</div><div class="ttdoc">Exit the RAII scope.</div></div>
 <div class="ttc" id="aclasstvm_1_1script_1_1ir__builder_1_1IRBuilder_html_a7cbc01ca0448da52ce17a3fd961c569e"><div class="ttname"><a href="classtvm_1_1script_1_1ir__builder_1_1IRBuilder.html#a7cbc01ca0448da52ce17a3fd961c569e">tvm::script::ir_builder::IRBuilder::Current</a></div><div class="ttdeci">static IRBuilder Current()</div><div class="ttdoc">Get the current IRBuilder in the current thread-local scope.</div></div>
 <div class="ttc" id="aclasstvm_1_1script_1_1ir__builder_1_1IRBuilder_html_a91b23ff72360fba3500c0b5c8346f67d"><div class="ttname"><a href="classtvm_1_1script_1_1ir__builder_1_1IRBuilder.html#a91b23ff72360fba3500c0b5c8346f67d">tvm::script::ir_builder::IRBuilder::EnterWithScope</a></div><div class="ttdeci">void EnterWithScope()</div><div class="ttdoc">Puts the current IRBuilder into a thread-local scope, which can be retrieved using IRBuilder::Current...</div></div>
 <div class="ttc" id="aclasstvm_1_1script_1_1ir__builder_1_1IRBuilder_html_aa6d010c0e56be5695f509eb65e764cb9"><div class="ttname"><a href="classtvm_1_1script_1_1ir__builder_1_1IRBuilder.html#aa6d010c0e56be5695f509eb65e764cb9">tvm::script::ir_builder::IRBuilder::IsInScope</a></div><div class="ttdeci">static bool IsInScope()</div><div class="ttdoc">See if the current thread-local scope has an IRBuilder.</div></div>
-<div class="ttc" id="aclasstvm_1_1script_1_1ir__builder_1_1IRBuilder_html_ae45631bb163bde7a18b70916f59ab272"><div class="ttname"><a href="classtvm_1_1script_1_1ir__builder_1_1IRBuilder.html#ae45631bb163bde7a18b70916f59ab272">tvm::script::ir_builder::IRBuilder::TVM_DEFINE_MUTABLE_NOTNULLABLE_OBJECT_REF_METHODS</a></div><div class="ttdeci">TVM_DEFINE_MUTABLE_NOTNULLABLE_OBJECT_REF_METHODS(IRBuilder, ObjectRef, IRBuilderNode)</div></div>
+<div class="ttc" id="aclasstvm_1_1script_1_1ir__builder_1_1IRBuilder_html_ae278b4f2cbc213627e06b6461cd326e8"><div class="ttname"><a href="classtvm_1_1script_1_1ir__builder_1_1IRBuilder.html#ae278b4f2cbc213627e06b6461cd326e8">tvm::script::ir_builder::IRBuilder::TVM_FFI_DEFINE_OBJECT_REF_METHODS_NOTNULLABLE</a></div><div class="ttdeci">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NOTNULLABLE(IRBuilder, ObjectRef, IRBuilderNode)</div></div>
 <div class="ttc" id="aclasstvm_1_1script_1_1ir__builder_1_1IRBuilder_html_af63e228f3faaa0d87fdd52e1fe921dd3"><div class="ttname"><a href="classtvm_1_1script_1_1ir__builder_1_1IRBuilder.html#af63e228f3faaa0d87fdd52e1fe921dd3">tvm::script::ir_builder::IRBuilder::IRBuilder</a></div><div class="ttdeci">IRBuilder()</div><div class="ttdoc">Creates an IRBuilder.</div></div>
 <div class="ttc" id="aclasstvm_1_1script_1_1ir__builder_1_1details_1_1Namer_html_a8227ff24f3e5dc2c5014110f8bc4c679"><div class="ttname"><a href="classtvm_1_1script_1_1ir__builder_1_1details_1_1Namer.html#a8227ff24f3e5dc2c5014110f8bc4c679">tvm::script::ir_builder::details::Namer::vtable</a></div><div class="ttdeci">static FType &amp; vtable()</div></div>
-<div class="ttc" id="aclasstvm_1_1script_1_1ir__builder_1_1details_1_1Namer_html_af9b0374f14b8fa7de35e7774e720b16c"><div class="ttname"><a href="classtvm_1_1script_1_1ir__builder_1_1details_1_1Namer.html#af9b0374f14b8fa7de35e7774e720b16c">tvm::script::ir_builder::details::Namer::FType</a></div><div class="ttdeci">NodeFunctor&lt; void(const ObjectRef &amp;, ffi::String)&gt; FType</div><div class="ttdef"><b>Definition:</b> base.h:262</div></div>
+<div class="ttc" id="aclasstvm_1_1script_1_1ir__builder_1_1details_1_1Namer_html_af9b0374f14b8fa7de35e7774e720b16c"><div class="ttname"><a href="classtvm_1_1script_1_1ir__builder_1_1details_1_1Namer.html#af9b0374f14b8fa7de35e7774e720b16c">tvm::script::ir_builder::details::Namer::FType</a></div><div class="ttdeci">NodeFunctor&lt; void(const ObjectRef &amp;, ffi::String)&gt; FType</div><div class="ttdef"><b>Definition:</b> base.h:263</div></div>
 <div class="ttc" id="aclasstvm_1_1script_1_1ir__builder_1_1details_1_1Namer_html_afa3cbb9022a3b93b8ba1a78859e68f9b"><div class="ttname"><a href="classtvm_1_1script_1_1ir__builder_1_1details_1_1Namer.html#afa3cbb9022a3b93b8ba1a78859e68f9b">tvm::script::ir_builder::details::Namer::Name</a></div><div class="ttdeci">static void Name(ObjectRef node, ffi::String name)</div></div>
 <div class="ttc" id="air_2expr_8h_html"><div class="ttname"><a href="ir_2expr_8h.html">expr.h</a></div><div class="ttdoc">Base expr nodes in TVM.</div></div>
 <div class="ttc" id="air_2function_8h_html"><div class="ttname"><a href="ir_2function_8h.html">function.h</a></div><div class="ttdoc">Function nodes.</div></div>
diff --git a/docs/reference/api/doxygen/analyzer_8h_source.html b/docs/reference/api/doxygen/analyzer_8h_source.html
index 404621e9f9..b829079948 100644
--- a/docs/reference/api/doxygen/analyzer_8h_source.html
+++ b/docs/reference/api/doxygen/analyzer_8h_source.html
@@ -145,403 +145,399 @@ $(function() {
 <div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1ConstIntBoundNode.html#a5082bc93cb9492d7bd04a019113aa07e">  103</a></span>&#160;  <span class="keyword">static</span> <span class="keyword">const</span> constexpr int64_t <a class="code" href="classtvm_1_1arith_1_1ConstIntBoundNode.html#a5082bc93cb9492d7bd04a019113aa07e">kNegInf</a> = -<a class="code" href="classtvm_1_1arith_1_1ConstIntBoundNode.html#ab1f0577fb4a6bda9c4375120b7085a62">k [...]
 <div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160; </div>
 <div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1ConstIntBoundNode.html#a752addf2fa5702290ea6b3cdfa8d7bf6">  105</a></span>&#160;  <span class="keyword">static</span> constexpr TVMFFISEqHashKind <a class="code" href="classtvm_1_1arith_1_1ConstIntBoundNode.html#a752addf2fa5702290ea6b3cdfa8d7bf6">_type_s_eq_hash_kind</a> = kTVMFFISEqHashKindTreeNode;</div>
-<div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1ConstIntBoundNode.html#a652c9c965a3942f1ca45f7929ddd554c">  106</a></span>&#160;  <span class="keyword">static</span> constexpr <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classtvm_1_1arith_1_1ConstIntBoundNode.html#a652c9c965a3942f1ca45f7929ddd554c">_type_key</a> = <span class="stringliteral">&quot;arith.ConstIntBound&quot;</span>;</div>
-<div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1ConstIntBoundNode.html#a79d78aaf1f1c3e974a3fbe4f4875e8ee">  107</a></span>&#160;  <a class="code" href="classtvm_1_1arith_1_1ConstIntBoundNode.html#a79d78aaf1f1c3e974a3fbe4f4875e8ee">TVM_DECLARE_FINAL_OBJECT_INFO</a>(<a class="code" href="classtvm_1_1arith_1_1ConstIntBoundNode.html">ConstIntBoundNode</a>, Object);</div>
-<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;};</div>
-<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160; </div>
-<div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1ConstIntBound.html">  114</a></span>&#160;<span class="keyword">class </span><a class="code" href="classtvm_1_1arith_1_1ConstIntBound.html">ConstIntBound</a> : <span class="keyword">public</span> ObjectRef {</div>
-<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160; <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1ConstIntBound.html#aefb417203cf5c5996d7ed664051aaba3">  121</a></span>&#160;  TVM_DLL <a class="code" href="classtvm_1_1arith_1_1ConstIntBound.html#aefb417203cf5c5996d7ed664051aaba3">ConstIntBound</a>(int64_t <a class="code" href="namespacetvm.html#a3b37fa55ea93d6868751a2441996b072">min_value</a>, int64_t <a class="code" href="namespacetvm.html#a4f1398024c0af23699447ef910b654b8">max_val [...]
-<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160; </div>
-<div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1ConstIntBound.html#af2dbef4ddb3a0895bab046d18ff85ab8">  123</a></span>&#160;  <span class="keyword">static</span> <span class="keyword">const</span> constexpr int64_t <a class="code" href="classtvm_1_1arith_1_1ConstIntBound.html#af2dbef4ddb3a0895bab046d18ff85ab8">kPosInf</a> = <a class="code" href="classtvm_1_1arith_1_1ConstIntBoundNode.html#ab1f0577fb4a6bda9c4375120b7085a62">ConstIntBo [...]
-<div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1ConstIntBound.html#ac2368aa444fafe5f030ac2674148c5fa">  124</a></span>&#160;  <span class="keyword">static</span> <span class="keyword">const</span> constexpr int64_t <a class="code" href="classtvm_1_1arith_1_1ConstIntBound.html#ac2368aa444fafe5f030ac2674148c5fa">kNegInf</a> = <a class="code" href="classtvm_1_1arith_1_1ConstIntBoundNode.html#a5082bc93cb9492d7bd04a019113aa07e">ConstIntBo [...]
-<div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1ConstIntBound.html#a2a26440158e4037dc8f82ba6ad0f296b">  125</a></span>&#160;  <a class="code" href="classtvm_1_1arith_1_1ConstIntBound.html#a2a26440158e4037dc8f82ba6ad0f296b">TVM_DEFINE_OBJECT_REF_METHODS</a>(<a class="code" href="classtvm_1_1arith_1_1ConstIntBound.html">ConstIntBound</a>, ObjectRef, <a class="code" href="classtvm_1_1arith_1_1ConstIntBoundNode.html">ConstIntBoundNode</a [...]
-<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;};</div>
-<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160; </div>
-<div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1ConstIntBoundAnalyzer.html">  131</a></span>&#160;<span class="keyword">class </span><a class="code" href="classtvm_1_1arith_1_1ConstIntBoundAnalyzer.html">ConstIntBoundAnalyzer</a> {</div>
-<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160; <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1ConstIntBoundAnalyzer.html#a14736850005ba70395b09c2fb9113770">  133</a></span>&#160;  <span class="keyword">using</span> <a class="code" href="classtvm_1_1arith_1_1ConstIntBoundAnalyzer.html#a14736850005ba70395b09c2fb9113770">BoundMapType</a> = std::unordered_map&lt;PrimExpr, ConstIntBound, ObjectPtrHash, ObjectPtrEqual&gt;;</div>
-<div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1ConstIntBoundAnalyzer.html#add50f8cc72f7fbf50e456d31f045d24c">  139</a></span>&#160;  TVM_DLL <a class="code" href="classtvm_1_1arith_1_1ConstIntBound.html">ConstIntBound</a> <a class="code" href="classtvm_1_1arith_1_1ConstIntBoundAnalyzer.html#add50f8cc72f7fbf50e456d31f045d24c">operator()</a>(<span class="keyword">const</span> <a class="code" href="classtvm_1_1PrimExpr.html">PrimExpr</ [...]
-<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160; </div>
-<div class="line"><a name="l00147"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1ConstIntBoundAnalyzer.html#aa24f8d56b331e1b9c6ed315877c4e0a2">  147</a></span>&#160;  TVM_DLL <a class="code" href="classtvm_1_1arith_1_1ConstIntBound.html">ConstIntBound</a> <a class="code" href="classtvm_1_1arith_1_1ConstIntBoundAnalyzer.html#aa24f8d56b331e1b9c6ed315877c4e0a2">operator()</a>(<span class="keyword">const</span> <a class="code" href="classtvm_1_1PrimExpr.html">PrimExpr</ [...]
-<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160; </div>
-<div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1ConstIntBoundAnalyzer.html#a5ae0699196c4bbc754bbdd4c3a6c7ca7">  156</a></span>&#160;  TVM_DLL <span class="keywordtype">void</span> <a class="code" href="classtvm_1_1arith_1_1ConstIntBoundAnalyzer.html#a5ae0699196c4bbc754bbdd4c3a6c7ca7">Update</a>(<span class="keyword">const</span> <a class="code" href="classtvm_1_1tir_1_1Var.html">Var</a>&amp; <a class="code" href="namespacetvm_1_1te.h [...]
-<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160; </div>
-<div class="line"><a name="l00165"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1ConstIntBoundAnalyzer.html#a7107c1d182a3ac72336d83ab50d9d1c3">  165</a></span>&#160;  TVM_DLL <span class="keywordtype">void</span> <a class="code" href="classtvm_1_1arith_1_1ConstIntBoundAnalyzer.html#a7107c1d182a3ac72336d83ab50d9d1c3">Bind</a>(<span class="keyword">const</span> <a class="code" href="classtvm_1_1tir_1_1Var.html">Var</a>&amp; <a class="code" href="namespacetvm_1_1te.htm [...]
-<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160; </div>
-<div class="line"><a name="l00172"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1ConstIntBoundAnalyzer.html#a0ec2252806be6e7abbba172b7d802e50">  172</a></span>&#160;  TVM_DLL <span class="keywordtype">bool</span> <a class="code" href="classtvm_1_1arith_1_1ConstIntBoundAnalyzer.html#a0ec2252806be6e7abbba172b7d802e50">IsBound</a>(<span class="keyword">const</span> <a class="code" href="classtvm_1_1tir_1_1Var.html">Var</a>&amp; <a class="code" href="namespacetvm_1_1te. [...]
-<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160; </div>
-<div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160; <span class="keyword">private</span>:</div>
-<div class="line"><a name="l00175"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1ConstIntBoundAnalyzer.html#a88d594816df596eed10643082b0d0805">  175</a></span>&#160;  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classtvm_1_1arith_1_1Analyzer.html">Analyzer</a>;</div>
-<div class="line"><a name="l00176"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1ConstIntBoundAnalyzer.html#ab8bf22547cf1df0a28fc4ee98841ab89">  176</a></span>&#160;  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classtvm_1_1arith_1_1ConstraintContext.html">ConstraintContext</a>;</div>
-<div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;  <span class="keyword">explicit</span> <a class="code" href="classtvm_1_1arith_1_1ConstIntBoundAnalyzer.html">ConstIntBoundAnalyzer</a>(<a class="code" href="classtvm_1_1arith_1_1Analyzer.html">Analyzer</a>* parent);</div>
-<div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;  TVM_DLL ~<a class="code" href="classtvm_1_1arith_1_1ConstIntBoundAnalyzer.html">ConstIntBoundAnalyzer</a>();</div>
-<div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;  std::function&lt;void()&gt; EnterConstraint(<span class="keyword">const</span> <a class="code" href="classtvm_1_1PrimExpr.html">PrimExpr</a>&amp; constraint);</div>
-<div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;  <span class="keyword">struct </span>Entry;</div>
-<div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;  <span class="keyword">class </span>Impl;</div>
-<div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;  Impl* impl_;</div>
-<div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;};</div>
-<div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160; </div>
-<div class="line"><a name="l00204"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1ModularSetNode.html">  204</a></span>&#160;<span class="keyword">class </span><a class="code" href="classtvm_1_1arith_1_1ModularSetNode.html">ModularSetNode</a> : <span class="keyword">public</span> Object {</div>
-<div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160; <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00207"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1ModularSetNode.html#a0531d08d8529454c726a9a20a2002ee6">  207</a></span>&#160;  int64_t <a class="code" href="classtvm_1_1arith_1_1ModularSetNode.html#a0531d08d8529454c726a9a20a2002ee6">coeff</a>;</div>
-<div class="line"><a name="l00209"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1ModularSetNode.html#afe63e5586712774be5935e86121431ad">  209</a></span>&#160;  int64_t <a class="code" href="classtvm_1_1arith_1_1ModularSetNode.html#afe63e5586712774be5935e86121431ad">base</a>;</div>
-<div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160; </div>
-<div class="line"><a name="l00211"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1ModularSetNode.html#a680e547835e5062f0c88e0f982bcc805">  211</a></span>&#160;  <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classtvm_1_1arith_1_1ModularSetNode.html#a680e547835e5062f0c88e0f982bcc805">RegisterReflection</a>() {</div>
-<div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;    <span class="keyword">namespace </span>refl = <a class="code" href="namespacetvm_1_1ffi_1_1reflection.html">tvm::ffi::reflection</a>;</div>
-<div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;    refl::ObjectDef&lt;ModularSetNode&gt;()</div>
-<div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;        .def_ro(<span class="stringliteral">&quot;coeff&quot;</span>, &amp;<a class="code" href="classtvm_1_1arith_1_1ModularSetNode.html#a0531d08d8529454c726a9a20a2002ee6">ModularSetNode::coeff</a>)</div>
-<div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;        .def_ro(<span class="stringliteral">&quot;base&quot;</span>, &amp;<a class="code" href="classtvm_1_1arith_1_1ModularSetNode.html#afe63e5586712774be5935e86121431ad">ModularSetNode::base</a>);</div>
-<div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;  }</div>
-<div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160; </div>
-<div class="line"><a name="l00218"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1ModularSetNode.html#ac08e3992efa956f31feaf12cd360b578">  218</a></span>&#160;  <span class="keyword">static</span> constexpr TVMFFISEqHashKind <a class="code" href="classtvm_1_1arith_1_1ModularSetNode.html#ac08e3992efa956f31feaf12cd360b578">_type_s_eq_hash_kind</a> = kTVMFFISEqHashKindTreeNode;</div>
-<div class="line"><a name="l00219"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1ModularSetNode.html#aabf5ea254b6e5252f95aadbe35f6e889">  219</a></span>&#160;  <span class="keyword">static</span> constexpr <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classtvm_1_1arith_1_1ModularSetNode.html#aabf5ea254b6e5252f95aadbe35f6e889">_type_key</a> = <span class="stringliteral">&quot;arith.ModularSet&quot;</span>;</div>
-<div class="line"><a name="l00220"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1ModularSetNode.html#aaf398fe14003c53e0452dfde19fd1404">  220</a></span>&#160;  <a class="code" href="classtvm_1_1arith_1_1ModularSetNode.html#aaf398fe14003c53e0452dfde19fd1404">TVM_DECLARE_FINAL_OBJECT_INFO</a>(<a class="code" href="classtvm_1_1arith_1_1ModularSetNode.html">ModularSetNode</a>, Object);</div>
-<div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;};</div>
-<div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160; </div>
-<div class="line"><a name="l00227"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1ModularSet.html">  227</a></span>&#160;<span class="keyword">class </span><a class="code" href="classtvm_1_1arith_1_1ModularSet.html">ModularSet</a> : <span class="keyword">public</span> ObjectRef {</div>
-<div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160; <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00229"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1ModularSet.html#a9f54896d98169246c6a24cc338fde500">  229</a></span>&#160;  TVM_DLL <a class="code" href="classtvm_1_1arith_1_1ModularSet.html#a9f54896d98169246c6a24cc338fde500">ModularSet</a>(int64_t coeff, int64_t base);</div>
-<div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160; </div>
-<div class="line"><a name="l00231"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1ModularSet.html#a3504121777581328517ee8f2e8ed18bf">  231</a></span>&#160;  <a class="code" href="classtvm_1_1arith_1_1ModularSet.html#a3504121777581328517ee8f2e8ed18bf">TVM_DEFINE_OBJECT_REF_METHODS</a>(<a class="code" href="classtvm_1_1arith_1_1ModularSet.html">ModularSet</a>, ObjectRef, <a class="code" href="classtvm_1_1arith_1_1ModularSetNode.html">ModularSetNode</a>);</div>
-<div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;};</div>
-<div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160; </div>
-<div class="line"><a name="l00237"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1ModularSetAnalyzer.html">  237</a></span>&#160;<span class="keyword">class </span><a class="code" href="classtvm_1_1arith_1_1ModularSetAnalyzer.html">ModularSetAnalyzer</a> {</div>
-<div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160; <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00244"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1ModularSetAnalyzer.html#a57c3c62ebc821f5f01bc2b43f06488da">  244</a></span>&#160;  TVM_DLL <a class="code" href="classtvm_1_1arith_1_1ModularSet.html">ModularSet</a> <a class="code" href="classtvm_1_1arith_1_1ModularSetAnalyzer.html#a57c3c62ebc821f5f01bc2b43f06488da">operator()</a>(<span class="keyword">const</span> <a class="code" href="classtvm_1_1PrimExpr.html">PrimExpr</a>&amp; expr [...]
-<div class="line"><a name="l00252"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1ModularSetAnalyzer.html#a04156fac580981f3005af3b8e676720d">  252</a></span>&#160;  TVM_DLL <span class="keywordtype">void</span> <a class="code" href="classtvm_1_1arith_1_1ModularSetAnalyzer.html#a04156fac580981f3005af3b8e676720d">Update</a>(<span class="keyword">const</span> <a class="code" href="classtvm_1_1tir_1_1Var.html">Var</a>&amp; <a class="code" href="namespacetvm_1_1te.html#ae [...]
-<div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160; </div>
-<div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160; <span class="keyword">private</span>:</div>
-<div class="line"><a name="l00255"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1ModularSetAnalyzer.html#a88d594816df596eed10643082b0d0805">  255</a></span>&#160;  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classtvm_1_1arith_1_1Analyzer.html">Analyzer</a>;</div>
-<div class="line"><a name="l00256"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1ModularSetAnalyzer.html#ab8bf22547cf1df0a28fc4ee98841ab89">  256</a></span>&#160;  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classtvm_1_1arith_1_1ConstraintContext.html">ConstraintContext</a>;</div>
-<div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;  <span class="keyword">explicit</span> <a class="code" href="classtvm_1_1arith_1_1ModularSetAnalyzer.html">ModularSetAnalyzer</a>(<a class="code" href="classtvm_1_1arith_1_1Analyzer.html">Analyzer</a>* parent);</div>
-<div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;  TVM_DLL ~<a class="code" href="classtvm_1_1arith_1_1ModularSetAnalyzer.html">ModularSetAnalyzer</a>();</div>
-<div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;  std::function&lt;void()&gt; EnterConstraint(<span class="keyword">const</span> <a class="code" href="classtvm_1_1PrimExpr.html">PrimExpr</a>&amp; constraint);</div>
-<div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;  <span class="keyword">struct </span>Entry;</div>
-<div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;  <span class="keyword">class </span>Impl;</div>
-<div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;  Impl* impl_;</div>
-<div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;};</div>
-<div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160; </div>
-<div class="line"><a name="l00275"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1RewriteSimplifier.html">  275</a></span>&#160;<span class="keyword">class </span><a class="code" href="classtvm_1_1arith_1_1RewriteSimplifier.html">RewriteSimplifier</a> {</div>
-<div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160; <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00282"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1RewriteSimplifier.html#af91d307afc0c857751171a68d6d2b043">  282</a></span>&#160;  TVM_DLL <a class="code" href="classtvm_1_1PrimExpr.html">PrimExpr</a> <a class="code" href="classtvm_1_1arith_1_1RewriteSimplifier.html#af91d307afc0c857751171a68d6d2b043">operator()</a>(<span class="keyword">const</span> <a class="code" href="classtvm_1_1PrimExpr.html">PrimExpr</a>&amp; expr);</div>
-<div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160; </div>
-<div class="line"><a name="l00291"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1RewriteSimplifier.html#a5e6752c0702dc2d3e4235797d9d3ac7b">  291</a></span>&#160;  TVM_DLL <span class="keywordtype">void</span> <a class="code" href="classtvm_1_1arith_1_1RewriteSimplifier.html#a5e6752c0702dc2d3e4235797d9d3ac7b">Update</a>(<span class="keyword">const</span> <a class="code" href="classtvm_1_1tir_1_1Var.html">Var</a>&amp; <a class="code" href="namespacetvm_1_1te.html#ae0c [...]
-<div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160; </div>
-<div class="line"><a name="l00299"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1RewriteSimplifier.html#a01dda385f4e0bb0e1155c76c2d28cb96">  299</a></span>&#160;  TVM_DLL std::function&lt;void()&gt; <a class="code" href="classtvm_1_1arith_1_1RewriteSimplifier.html#a01dda385f4e0bb0e1155c76c2d28cb96">EnterConstraint</a>(<span class="keyword">const</span> <a class="code" href="classtvm_1_1PrimExpr.html">PrimExpr</a>&amp; constraint);</div>
-<div class="line"><a name="l00300"></a><span class="lineno">  300</span>&#160; </div>
-<div class="line"><a name="l00313"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1RewriteSimplifier.html#a6705af5099418b968ded40d79102ad4e">  313</a></span>&#160;  <span class="keyword">enum</span> <a class="code" href="classtvm_1_1arith_1_1RewriteSimplifier.html#a6705af5099418b968ded40d79102ad4e">Extension</a> {</div>
-<div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;    <span class="comment">// No extensions enabled</span></div>
-<div class="line"><a name="l00315"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1RewriteSimplifier.html#a6705af5099418b968ded40d79102ad4ea237e1cb407cd81dfc9608651eee87b3b">  315</a></span>&#160;    <a class="code" href="classtvm_1_1arith_1_1RewriteSimplifier.html#a6705af5099418b968ded40d79102ad4ea237e1cb407cd81dfc9608651eee87b3b">kNone</a> = 0,</div>
-<div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160; </div>
-<div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160;    <span class="comment">/* When simplifying an inequality, attempt to use scope-based knowns.</span></div>
-<div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160;<span class="comment">     *</span></div>
-<div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;<span class="comment">     * Example:</span></div>
-<div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;<span class="comment">     * if_then_else(i&lt;j &amp;&amp; j&lt;k, i&lt;k, false) =&gt; if_then_else(i&lt;j &amp;&amp; j&lt;k, true, false)</span></div>
-<div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160;<span class="comment">     */</span></div>
-<div class="line"><a name="l00322"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1RewriteSimplifier.html#a6705af5099418b968ded40d79102ad4ea775c43159049079d4a71cd788f4d1568">  322</a></span>&#160;    <a class="code" href="classtvm_1_1arith_1_1RewriteSimplifier.html#a6705af5099418b968ded40d79102ad4ea775c43159049079d4a71cd788f4d1568">kTransitivelyProveInequalities</a> = (1 &lt;&lt; 0),</div>
-<div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160; </div>
-<div class="line"><a name="l00324"></a><span class="lineno">  324</span>&#160;    <span class="comment">/* When simplifying a boolean expression, convert to an AND of ORs</span></div>
-<div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160;<span class="comment">     * (conjunctive normal form).</span></div>
-<div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160;<span class="comment">     *</span></div>
-<div class="line"><a name="l00327"></a><span class="lineno">  327</span>&#160;<span class="comment">     * Example:</span></div>
-<div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160;<span class="comment">     *   (a &amp;&amp; b) || c =&gt; (a || c) &amp;&amp; (b || c)</span></div>
-<div class="line"><a name="l00329"></a><span class="lineno">  329</span>&#160;<span class="comment">     */</span></div>
-<div class="line"><a name="l00330"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1RewriteSimplifier.html#a6705af5099418b968ded40d79102ad4eafd77a96599dad627a7c1d88292aa578e">  330</a></span>&#160;    <a class="code" href="classtvm_1_1arith_1_1RewriteSimplifier.html#a6705af5099418b968ded40d79102ad4eafd77a96599dad627a7c1d88292aa578e">kConvertBooleanToAndOfOrs</a> = (1 &lt;&lt; 1),</div>
-<div class="line"><a name="l00331"></a><span class="lineno">  331</span>&#160; </div>
-<div class="line"><a name="l00332"></a><span class="lineno">  332</span>&#160;    <span class="comment">/* When simplifying a boolean AND or a boolean OR, simplify each</span></div>
-<div class="line"><a name="l00333"></a><span class="lineno">  333</span>&#160;<span class="comment">     * branch under the assumption that the other branch does not</span></div>
-<div class="line"><a name="l00334"></a><span class="lineno">  334</span>&#160;<span class="comment">     * already dominate the result.  That is, simplify each branch of</span></div>
-<div class="line"><a name="l00335"></a><span class="lineno">  335</span>&#160;<span class="comment">     * (A &amp;&amp; B) under the assumption that the other branch is true,</span></div>
-<div class="line"><a name="l00336"></a><span class="lineno">  336</span>&#160;<span class="comment">     * and simplify each branch of (A || B) under the assumption that</span></div>
-<div class="line"><a name="l00337"></a><span class="lineno">  337</span>&#160;<span class="comment">     * the other branch is false.</span></div>
-<div class="line"><a name="l00338"></a><span class="lineno">  338</span>&#160;<span class="comment">     *</span></div>
-<div class="line"><a name="l00339"></a><span class="lineno">  339</span>&#160;<span class="comment">     * Example:</span></div>
-<div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;<span class="comment">     *   (n &lt; 10) &amp;&amp; (n &lt; 5) =&gt; (n &lt; 10)</span></div>
-<div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160;<span class="comment">     *   (n &lt; 10) || (n &lt; 5) =&gt; (n &lt; 5)</span></div>
-<div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160;<span class="comment">     */</span></div>
-<div class="line"><a name="l00343"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1RewriteSimplifier.html#a6705af5099418b968ded40d79102ad4ea254331b07f4bdf970d7f28f480da637b">  343</a></span>&#160;    <a class="code" href="classtvm_1_1arith_1_1RewriteSimplifier.html#a6705af5099418b968ded40d79102ad4ea254331b07f4bdf970d7f28f480da637b">kApplyConstraintsToBooleanBranches</a> = (1 &lt;&lt; 2),</div>
-<div class="line"><a name="l00344"></a><span class="lineno">  344</span>&#160; </div>
-<div class="line"><a name="l00345"></a><span class="lineno">  345</span>&#160;    <span class="comment">/* Special handling for expressions `(A+B)*C &lt; (A*B)*D`</span></div>
-<div class="line"><a name="l00346"></a><span class="lineno">  346</span>&#160;<span class="comment">     *</span></div>
-<div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160;<span class="comment">     * Expressions of the form `(A+B)*C &lt; (A*B)*D` can occur occur</span></div>
-<div class="line"><a name="l00348"></a><span class="lineno">  348</span>&#160;<span class="comment">     * when comparing the number of operations required for two</span></div>
-<div class="line"><a name="l00349"></a><span class="lineno">  349</span>&#160;<span class="comment">     * different orderings in which matrix multiplications can be</span></div>
-<div class="line"><a name="l00350"></a><span class="lineno">  350</span>&#160;<span class="comment">     * performed.  Proving or disproving this conditional allows an</span></div>
-<div class="line"><a name="l00351"></a><span class="lineno">  351</span>&#160;<span class="comment">     * optimal order of execution to be selected, even for dynamic</span></div>
-<div class="line"><a name="l00352"></a><span class="lineno">  352</span>&#160;<span class="comment">     * argument shapes.</span></div>
-<div class="line"><a name="l00353"></a><span class="lineno">  353</span>&#160;<span class="comment">     *</span></div>
-<div class="line"><a name="l00354"></a><span class="lineno">  354</span>&#160;<span class="comment">     * The default behavior of `ConstIntBounds` assumes that each term</span></div>
-<div class="line"><a name="l00355"></a><span class="lineno">  355</span>&#160;<span class="comment">     * in an expression is independent, and is insufficient to prove</span></div>
-<div class="line"><a name="l00356"></a><span class="lineno">  356</span>&#160;<span class="comment">     * these inequalities.  For example, the maximum value of `(A+B)*C</span></div>
-<div class="line"><a name="l00357"></a><span class="lineno">  357</span>&#160;<span class="comment">     * - (A*B)*D` is determined by taking the maximum value of</span></div>
-<div class="line"><a name="l00358"></a><span class="lineno">  358</span>&#160;<span class="comment">     * `(A+B)*C` and subtracting the minimum value of `(A*B)*D`.</span></div>
-<div class="line"><a name="l00359"></a><span class="lineno">  359</span>&#160;<span class="comment">     * While this algorithm can be applied in all cases, the bound it</span></div>
-<div class="line"><a name="l00360"></a><span class="lineno">  360</span>&#160;<span class="comment">     * provides is looser than strictly required.</span></div>
-<div class="line"><a name="l00361"></a><span class="lineno">  361</span>&#160;<span class="comment">     *</span></div>
-<div class="line"><a name="l00362"></a><span class="lineno">  362</span>&#160;<span class="comment">     * This extension adds a check for this case.  When `A`, `B`, `C`,</span></div>
-<div class="line"><a name="l00363"></a><span class="lineno">  363</span>&#160;<span class="comment">     * and `D` are all positive values, as is the case for tensor</span></div>
-<div class="line"><a name="l00364"></a><span class="lineno">  364</span>&#160;<span class="comment">     * shapes, the inequality can be written as `1/A + 1/B &lt; D/C`.  If</span></div>
-<div class="line"><a name="l00365"></a><span class="lineno">  365</span>&#160;<span class="comment">     * this inequality holds for the minimum values of `A`, `B`, and</span></div>
-<div class="line"><a name="l00366"></a><span class="lineno">  366</span>&#160;<span class="comment">     * `D`, along with the maximum value of `C`, then the inequality</span></div>
-<div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160;<span class="comment">     * holds for all values.</span></div>
-<div class="line"><a name="l00368"></a><span class="lineno">  368</span>&#160;<span class="comment">     *</span></div>
-<div class="line"><a name="l00369"></a><span class="lineno">  369</span>&#160;<span class="comment">     * This extension requires little to no performance overhead, and</span></div>
-<div class="line"><a name="l00370"></a><span class="lineno">  370</span>&#160;<span class="comment">     * may be enabled by default in future releases.</span></div>
-<div class="line"><a name="l00371"></a><span class="lineno">  371</span>&#160;<span class="comment">     */</span></div>
-<div class="line"><a name="l00372"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1RewriteSimplifier.html#a6705af5099418b968ded40d79102ad4eaf2a72591e015241f111c915110ad0b23">  372</a></span>&#160;    <a class="code" href="classtvm_1_1arith_1_1RewriteSimplifier.html#a6705af5099418b968ded40d79102ad4eaf2a72591e015241f111c915110ad0b23">kComparisonOfProductAndSum</a> = (1 &lt;&lt; 3),</div>
-<div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160;  };</div>
-<div class="line"><a name="l00374"></a><span class="lineno">  374</span>&#160; </div>
-<div class="line"><a name="l00380"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1RewriteSimplifier.html#a44b7c12d6a5d9adfc4ee4cee8d935e38">  380</a></span>&#160;  TVM_DLL <span class="keywordtype">void</span> <a class="code" href="classtvm_1_1arith_1_1RewriteSimplifier.html#a44b7c12d6a5d9adfc4ee4cee8d935e38">SetEnabledExtensions</a>(<a class="code" href="classtvm_1_1arith_1_1RewriteSimplifier.html#a6705af5099418b968ded40d79102ad4e">Extension</a> flags);</div>
-<div class="line"><a name="l00381"></a><span class="lineno">  381</span>&#160; </div>
-<div class="line"><a name="l00383"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1RewriteSimplifier.html#a2066e6d9a5b71d482c73542d0ca8c7a3">  383</a></span>&#160;  TVM_DLL <a class="code" href="classtvm_1_1arith_1_1RewriteSimplifier.html#a6705af5099418b968ded40d79102ad4e">Extension</a> <a class="code" href="classtvm_1_1arith_1_1RewriteSimplifier.html#a2066e6d9a5b71d482c73542d0ca8c7a3">GetEnabledExtensions</a>() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00384"></a><span class="lineno">  384</span>&#160; </div>
-<div class="line"><a name="l00386"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1RewriteSimplifier.html#a5cbec380389ea7ccaa753d35d7a2dee9">  386</a></span>&#160;  TVM_DLL ObjectRef <a class="code" href="classtvm_1_1arith_1_1RewriteSimplifier.html#a5cbec380389ea7ccaa753d35d7a2dee9">GetStatsCounters</a>() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00387"></a><span class="lineno">  387</span>&#160; </div>
-<div class="line"><a name="l00389"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1RewriteSimplifier.html#aef5b3e9793a5b459c9f457efef179e4f">  389</a></span>&#160;  TVM_DLL <span class="keywordtype">void</span> <a class="code" href="classtvm_1_1arith_1_1RewriteSimplifier.html#aef5b3e9793a5b459c9f457efef179e4f">ResetStatsCounters</a>();</div>
-<div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160; </div>
-<div class="line"><a name="l00404"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1RewriteSimplifier.html#a95dd28018de6b7aa1a5a7ee76f3ba178">  404</a></span>&#160;  TVM_DLL <span class="keywordtype">void</span> <a class="code" href="classtvm_1_1arith_1_1RewriteSimplifier.html#a95dd28018de6b7aa1a5a7ee76f3ba178">SetMaximumRewriteSteps</a>(int64_t <a class="code" href="namespacetvm_1_1topi.html#afd64bc3e27dfc97002d3add5d7ce4174">maximum</a>);</div>
-<div class="line"><a name="l00405"></a><span class="lineno">  405</span>&#160; </div>
-<div class="line"><a name="l00406"></a><span class="lineno">  406</span>&#160; <span class="keyword">private</span>:</div>
-<div class="line"><a name="l00407"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1RewriteSimplifier.html#a88d594816df596eed10643082b0d0805">  407</a></span>&#160;  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classtvm_1_1arith_1_1Analyzer.html">Analyzer</a>;</div>
-<div class="line"><a name="l00408"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1RewriteSimplifier.html#ab8bf22547cf1df0a28fc4ee98841ab89">  408</a></span>&#160;  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classtvm_1_1arith_1_1ConstraintContext.html">ConstraintContext</a>;</div>
-<div class="line"><a name="l00409"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1RewriteSimplifier.html#abd092d074e3063da6d7bb0c67115a33f">  409</a></span>&#160;  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classtvm_1_1arith_1_1CanonicalSimplifier.html">CanonicalSimplifier</a>;</div>
-<div class="line"><a name="l00410"></a><span class="lineno">  410</span>&#160;  <span class="keyword">explicit</span> <a class="code" href="classtvm_1_1arith_1_1RewriteSimplifier.html">RewriteSimplifier</a>(<a class="code" href="classtvm_1_1arith_1_1Analyzer.html">Analyzer</a>* parent);</div>
-<div class="line"><a name="l00411"></a><span class="lineno">  411</span>&#160;  TVM_DLL ~<a class="code" href="classtvm_1_1arith_1_1RewriteSimplifier.html">RewriteSimplifier</a>();</div>
-<div class="line"><a name="l00412"></a><span class="lineno">  412</span>&#160;  <span class="keyword">class </span>Impl;</div>
-<div class="line"><a name="l00414"></a><span class="lineno">  414</span>&#160;  Impl* impl_;</div>
-<div class="line"><a name="l00415"></a><span class="lineno">  415</span>&#160;};</div>
-<div class="line"><a name="l00416"></a><span class="lineno">  416</span>&#160; </div>
-<div class="line"><a name="l00420"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1CanonicalSimplifier.html">  420</a></span>&#160;<span class="keyword">class </span><a class="code" href="classtvm_1_1arith_1_1CanonicalSimplifier.html">CanonicalSimplifier</a> {</div>
-<div class="line"><a name="l00421"></a><span class="lineno">  421</span>&#160; <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00427"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1CanonicalSimplifier.html#a2ed4ed7990499ee188e69967afb511c6">  427</a></span>&#160;  TVM_DLL <a class="code" href="classtvm_1_1PrimExpr.html">PrimExpr</a> <a class="code" href="classtvm_1_1arith_1_1CanonicalSimplifier.html#a2ed4ed7990499ee188e69967afb511c6">operator()</a>(<span class="keyword">const</span> <a class="code" href="classtvm_1_1PrimExpr.html">PrimExpr</a>&amp; expr);</div>
-<div class="line"><a name="l00428"></a><span class="lineno">  428</span>&#160; </div>
-<div class="line"><a name="l00436"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1CanonicalSimplifier.html#a790c032e12c7d93e9e940297b860c509">  436</a></span>&#160;  TVM_DLL <span class="keywordtype">void</span> <a class="code" href="classtvm_1_1arith_1_1CanonicalSimplifier.html#a790c032e12c7d93e9e940297b860c509">Update</a>(<span class="keyword">const</span> <a class="code" href="classtvm_1_1tir_1_1Var.html">Var</a>&amp; <a class="code" href="namespacetvm_1_1te.html# [...]
-<div class="line"><a name="l00437"></a><span class="lineno">  437</span>&#160; </div>
-<div class="line"><a name="l00438"></a><span class="lineno">  438</span>&#160; <span class="keyword">private</span>:</div>
-<div class="line"><a name="l00439"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1CanonicalSimplifier.html#a88d594816df596eed10643082b0d0805">  439</a></span>&#160;  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classtvm_1_1arith_1_1Analyzer.html">Analyzer</a>;</div>
-<div class="line"><a name="l00440"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1CanonicalSimplifier.html#ab8bf22547cf1df0a28fc4ee98841ab89">  440</a></span>&#160;  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classtvm_1_1arith_1_1ConstraintContext.html">ConstraintContext</a>;</div>
-<div class="line"><a name="l00441"></a><span class="lineno">  441</span>&#160;  <span class="keyword">explicit</span> <a class="code" href="classtvm_1_1arith_1_1CanonicalSimplifier.html">CanonicalSimplifier</a>(<a class="code" href="classtvm_1_1arith_1_1Analyzer.html">Analyzer</a>* parent);</div>
-<div class="line"><a name="l00442"></a><span class="lineno">  442</span>&#160;  TVM_DLL ~<a class="code" href="classtvm_1_1arith_1_1CanonicalSimplifier.html">CanonicalSimplifier</a>();</div>
-<div class="line"><a name="l00443"></a><span class="lineno">  443</span>&#160;  <span class="keyword">class </span>Impl;</div>
-<div class="line"><a name="l00445"></a><span class="lineno">  445</span>&#160;  Impl* impl_;</div>
-<div class="line"><a name="l00446"></a><span class="lineno">  446</span>&#160;};</div>
-<div class="line"><a name="l00447"></a><span class="lineno">  447</span>&#160; </div>
-<div class="line"><a name="l00453"></a><span class="lineno"><a class="line" href="namespacetvm_1_1arith.html#a1d555a0cc363f669a49fad7e5f7d69d0">  453</a></span>&#160;<span class="keyword">enum class</span> <a class="code" href="namespacetvm_1_1arith.html#a1d555a0cc363f669a49fad7e5f7d69d0">CompareResult</a> : int {</div>
-<div class="line"><a name="l00454"></a><span class="lineno">  454</span>&#160;  <a class="code" href="namespacetvm_1_1arith.html#a1d555a0cc363f669a49fad7e5f7d69d0af9f8d006118de5ad04dd7c000b8f3b91">kInconsistent</a> = 0,</div>
-<div class="line"><a name="l00455"></a><span class="lineno">  455</span>&#160;  <a class="code" href="namespacetvm_1_1arith.html#a1d555a0cc363f669a49fad7e5f7d69d0a7db2fe13b438b1005c70fcc9ab826b3b">kEQ</a> = 1,</div>
-<div class="line"><a name="l00456"></a><span class="lineno">  456</span>&#160;  <a class="code" href="namespacetvm_1_1arith.html#a1d555a0cc363f669a49fad7e5f7d69d0add0f23f162dcf68bf7bc761ac13040ae">kLT</a> = 2,</div>
-<div class="line"><a name="l00457"></a><span class="lineno">  457</span>&#160;  <a class="code" href="namespacetvm_1_1arith.html#a1d555a0cc363f669a49fad7e5f7d69d0a1893df55d7fc768f2336fdcb7c7b9c37">kLE</a> = 3,</div>
-<div class="line"><a name="l00458"></a><span class="lineno">  458</span>&#160;  <a class="code" href="namespacetvm_1_1arith.html#a1d555a0cc363f669a49fad7e5f7d69d0aa3d18adb9a64157d6708f8ba39dfcdbc">kGT</a> = 4,</div>
-<div class="line"><a name="l00459"></a><span class="lineno">  459</span>&#160;  <a class="code" href="namespacetvm_1_1arith.html#a1d555a0cc363f669a49fad7e5f7d69d0ac0275be4f85005f8ef340d3d5be8d361">kGE</a> = 5,</div>
-<div class="line"><a name="l00460"></a><span class="lineno">  460</span>&#160;  <a class="code" href="namespacetvm_1_1arith.html#a1d555a0cc363f669a49fad7e5f7d69d0a03e3ad128c41e04acc6a0e59fdf11a58">kNE</a> = 6,</div>
-<div class="line"><a name="l00461"></a><span class="lineno">  461</span>&#160;  <a class="code" href="namespacetvm_1_1arith.html#aca8806e355ad3dd5f1df9c1eca9aac9da8812c1a077255594d23bc1c2f3af3979">kUnknown</a> = 7</div>
-<div class="line"><a name="l00462"></a><span class="lineno">  462</span>&#160;};</div>
-<div class="line"><a name="l00463"></a><span class="lineno">  463</span>&#160; </div>
-<div class="line"><a name="l00464"></a><span class="lineno"><a class="line" href="namespacetvm_1_1arith.html#ae300654bf1788008de90f1e77fbaa7fe">  464</a></span>&#160;<span class="keyword">inline</span> constexpr <a class="code" href="namespacetvm_1_1arith.html#a1d555a0cc363f669a49fad7e5f7d69d0">CompareResult</a> <a class="code" href="namespacetvm_1_1arith.html#ae300654bf1788008de90f1e77fbaa7fe">operator&amp;</a>(<a class="code" href="namespacetvm_1_1arith.html#a1d555a0cc363f669a49fad7e5f [...]
-<div class="line"><a name="l00465"></a><span class="lineno">  465</span>&#160;  <span class="keywordflow">return</span> <a class="code" href="namespacetvm_1_1arith.html#a1d555a0cc363f669a49fad7e5f7d69d0">CompareResult</a>(<span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>(lhs) &amp; <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>(rhs));</div>
-<div class="line"><a name="l00466"></a><span class="lineno">  466</span>&#160;}</div>
-<div class="line"><a name="l00467"></a><span class="lineno"><a class="line" href="namespacetvm_1_1arith.html#a660ff1fdbb08fea19a922157cadad7a7">  467</a></span>&#160;<span class="keyword">inline</span> constexpr <a class="code" href="namespacetvm_1_1arith.html#a1d555a0cc363f669a49fad7e5f7d69d0">CompareResult</a> <a class="code" href="namespacetvm_1_1arith.html#a660ff1fdbb08fea19a922157cadad7a7">operator|</a>(<a class="code" href="namespacetvm_1_1arith.html#a1d555a0cc363f669a49fad7e5f7d69 [...]
-<div class="line"><a name="l00468"></a><span class="lineno">  468</span>&#160;  <span class="keywordflow">return</span> <a class="code" href="namespacetvm_1_1arith.html#a1d555a0cc363f669a49fad7e5f7d69d0">CompareResult</a>(<span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>(lhs) | <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>(rhs));</div>
-<div class="line"><a name="l00469"></a><span class="lineno">  469</span>&#160;}</div>
-<div class="line"><a name="l00470"></a><span class="lineno">  470</span>&#160; </div>
-<div class="line"><a name="l00477"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1TransitiveComparisonAnalyzer.html">  477</a></span>&#160;<span class="keyword">class </span><a class="code" href="classtvm_1_1arith_1_1TransitiveComparisonAnalyzer.html">TransitiveComparisonAnalyzer</a> {</div>
-<div class="line"><a name="l00478"></a><span class="lineno">  478</span>&#160; <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00479"></a><span class="lineno">  479</span>&#160;  <span class="comment">/* \brief Using previously specified knowns, compare the expressions provided</span></div>
+<div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1ConstIntBoundNode.html#a3aff78da3ceeb7698c9505ba692ca25d">  106</a></span>&#160;  <a class="code" href="classtvm_1_1arith_1_1ConstIntBoundNode.html#a3aff78da3ceeb7698c9505ba692ca25d">TVM_FFI_DECLARE_OBJECT_INFO_FINAL</a>(<span class="stringliteral">&quot;arith.ConstIntBound&quot;</span>, <a class="code" href="classtvm_1_1arith_1_1ConstIntBoundNode.html">ConstIntBoundNode</a>, Object);</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;};</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160; </div>
+<div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1ConstIntBound.html">  113</a></span>&#160;<span class="keyword">class </span><a class="code" href="classtvm_1_1arith_1_1ConstIntBound.html">ConstIntBound</a> : <span class="keyword">public</span> ObjectRef {</div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160; <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1ConstIntBound.html#aefb417203cf5c5996d7ed664051aaba3">  120</a></span>&#160;  TVM_DLL <a class="code" href="classtvm_1_1arith_1_1ConstIntBound.html#aefb417203cf5c5996d7ed664051aaba3">ConstIntBound</a>(int64_t <a class="code" href="namespacetvm.html#a3b37fa55ea93d6868751a2441996b072">min_value</a>, int64_t <a class="code" href="namespacetvm.html#a4f1398024c0af23699447ef910b654b8">max_val [...]
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160; </div>
+<div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1ConstIntBound.html#af2dbef4ddb3a0895bab046d18ff85ab8">  122</a></span>&#160;  <span class="keyword">static</span> <span class="keyword">const</span> constexpr int64_t <a class="code" href="classtvm_1_1arith_1_1ConstIntBound.html#af2dbef4ddb3a0895bab046d18ff85ab8">kPosInf</a> = <a class="code" href="classtvm_1_1arith_1_1ConstIntBoundNode.html#ab1f0577fb4a6bda9c4375120b7085a62">ConstIntBo [...]
+<div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1ConstIntBound.html#ac2368aa444fafe5f030ac2674148c5fa">  123</a></span>&#160;  <span class="keyword">static</span> <span class="keyword">const</span> constexpr int64_t <a class="code" href="classtvm_1_1arith_1_1ConstIntBound.html#ac2368aa444fafe5f030ac2674148c5fa">kNegInf</a> = <a class="code" href="classtvm_1_1arith_1_1ConstIntBoundNode.html#a5082bc93cb9492d7bd04a019113aa07e">ConstIntBo [...]
+<div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1ConstIntBound.html#a6ab463a822b28c69214d81d444389bd5">  124</a></span>&#160;  <a class="code" href="classtvm_1_1arith_1_1ConstIntBound.html#a6ab463a822b28c69214d81d444389bd5">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE</a>(<a class="code" href="classtvm_1_1arith_1_1ConstIntBound.html">ConstIntBound</a>, ObjectRef, <a class="code" href="classtvm_1_1arith_1_1ConstIntBoundNode.html">ConstIn [...]
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;};</div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160; </div>
+<div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1ConstIntBoundAnalyzer.html">  130</a></span>&#160;<span class="keyword">class </span><a class="code" href="classtvm_1_1arith_1_1ConstIntBoundAnalyzer.html">ConstIntBoundAnalyzer</a> {</div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160; <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1ConstIntBoundAnalyzer.html#a14736850005ba70395b09c2fb9113770">  132</a></span>&#160;  <span class="keyword">using</span> <a class="code" href="classtvm_1_1arith_1_1ConstIntBoundAnalyzer.html#a14736850005ba70395b09c2fb9113770">BoundMapType</a> = std::unordered_map&lt;PrimExpr, ConstIntBound, ObjectPtrHash, ObjectPtrEqual&gt;;</div>
+<div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1ConstIntBoundAnalyzer.html#add50f8cc72f7fbf50e456d31f045d24c">  138</a></span>&#160;  TVM_DLL <a class="code" href="classtvm_1_1arith_1_1ConstIntBound.html">ConstIntBound</a> <a class="code" href="classtvm_1_1arith_1_1ConstIntBoundAnalyzer.html#add50f8cc72f7fbf50e456d31f045d24c">operator()</a>(<span class="keyword">const</span> <a class="code" href="classtvm_1_1PrimExpr.html">PrimExpr</ [...]
+<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160; </div>
+<div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1ConstIntBoundAnalyzer.html#aa24f8d56b331e1b9c6ed315877c4e0a2">  146</a></span>&#160;  TVM_DLL <a class="code" href="classtvm_1_1arith_1_1ConstIntBound.html">ConstIntBound</a> <a class="code" href="classtvm_1_1arith_1_1ConstIntBoundAnalyzer.html#aa24f8d56b331e1b9c6ed315877c4e0a2">operator()</a>(<span class="keyword">const</span> <a class="code" href="classtvm_1_1PrimExpr.html">PrimExpr</ [...]
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160; </div>
+<div class="line"><a name="l00155"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1ConstIntBoundAnalyzer.html#a5ae0699196c4bbc754bbdd4c3a6c7ca7">  155</a></span>&#160;  TVM_DLL <span class="keywordtype">void</span> <a class="code" href="classtvm_1_1arith_1_1ConstIntBoundAnalyzer.html#a5ae0699196c4bbc754bbdd4c3a6c7ca7">Update</a>(<span class="keyword">const</span> <a class="code" href="classtvm_1_1tir_1_1Var.html">Var</a>&amp; <a class="code" href="namespacetvm_1_1te.h [...]
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160; </div>
+<div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1ConstIntBoundAnalyzer.html#a7107c1d182a3ac72336d83ab50d9d1c3">  164</a></span>&#160;  TVM_DLL <span class="keywordtype">void</span> <a class="code" href="classtvm_1_1arith_1_1ConstIntBoundAnalyzer.html#a7107c1d182a3ac72336d83ab50d9d1c3">Bind</a>(<span class="keyword">const</span> <a class="code" href="classtvm_1_1tir_1_1Var.html">Var</a>&amp; <a class="code" href="namespacetvm_1_1te.htm [...]
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160; </div>
+<div class="line"><a name="l00171"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1ConstIntBoundAnalyzer.html#a0ec2252806be6e7abbba172b7d802e50">  171</a></span>&#160;  TVM_DLL <span class="keywordtype">bool</span> <a class="code" href="classtvm_1_1arith_1_1ConstIntBoundAnalyzer.html#a0ec2252806be6e7abbba172b7d802e50">IsBound</a>(<span class="keyword">const</span> <a class="code" href="classtvm_1_1tir_1_1Var.html">Var</a>&amp; <a class="code" href="namespacetvm_1_1te. [...]
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160; </div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160; <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00174"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1ConstIntBoundAnalyzer.html#a88d594816df596eed10643082b0d0805">  174</a></span>&#160;  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classtvm_1_1arith_1_1Analyzer.html">Analyzer</a>;</div>
+<div class="line"><a name="l00175"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1ConstIntBoundAnalyzer.html#ab8bf22547cf1df0a28fc4ee98841ab89">  175</a></span>&#160;  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classtvm_1_1arith_1_1ConstraintContext.html">ConstraintContext</a>;</div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;  <span class="keyword">explicit</span> <a class="code" href="classtvm_1_1arith_1_1ConstIntBoundAnalyzer.html">ConstIntBoundAnalyzer</a>(<a class="code" href="classtvm_1_1arith_1_1Analyzer.html">Analyzer</a>* parent);</div>
+<div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;  TVM_DLL ~<a class="code" href="classtvm_1_1arith_1_1ConstIntBoundAnalyzer.html">ConstIntBoundAnalyzer</a>();</div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;  std::function&lt;void()&gt; EnterConstraint(<span class="keyword">const</span> <a class="code" href="classtvm_1_1PrimExpr.html">PrimExpr</a>&amp; constraint);</div>
+<div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;  <span class="keyword">struct </span>Entry;</div>
+<div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;  <span class="keyword">class </span>Impl;</div>
+<div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;  Impl* impl_;</div>
+<div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;};</div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160; </div>
+<div class="line"><a name="l00203"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1ModularSetNode.html">  203</a></span>&#160;<span class="keyword">class </span><a class="code" href="classtvm_1_1arith_1_1ModularSetNode.html">ModularSetNode</a> : <span class="keyword">public</span> Object {</div>
+<div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160; <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00206"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1ModularSetNode.html#a0531d08d8529454c726a9a20a2002ee6">  206</a></span>&#160;  int64_t <a class="code" href="classtvm_1_1arith_1_1ModularSetNode.html#a0531d08d8529454c726a9a20a2002ee6">coeff</a>;</div>
+<div class="line"><a name="l00208"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1ModularSetNode.html#afe63e5586712774be5935e86121431ad">  208</a></span>&#160;  int64_t <a class="code" href="classtvm_1_1arith_1_1ModularSetNode.html#afe63e5586712774be5935e86121431ad">base</a>;</div>
+<div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160; </div>
+<div class="line"><a name="l00210"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1ModularSetNode.html#a680e547835e5062f0c88e0f982bcc805">  210</a></span>&#160;  <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classtvm_1_1arith_1_1ModularSetNode.html#a680e547835e5062f0c88e0f982bcc805">RegisterReflection</a>() {</div>
+<div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;    <span class="keyword">namespace </span>refl = <a class="code" href="namespacetvm_1_1ffi_1_1reflection.html">tvm::ffi::reflection</a>;</div>
+<div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;    refl::ObjectDef&lt;ModularSetNode&gt;()</div>
+<div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;        .def_ro(<span class="stringliteral">&quot;coeff&quot;</span>, &amp;<a class="code" href="classtvm_1_1arith_1_1ModularSetNode.html#a0531d08d8529454c726a9a20a2002ee6">ModularSetNode::coeff</a>)</div>
+<div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;        .def_ro(<span class="stringliteral">&quot;base&quot;</span>, &amp;<a class="code" href="classtvm_1_1arith_1_1ModularSetNode.html#afe63e5586712774be5935e86121431ad">ModularSetNode::base</a>);</div>
+<div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;  }</div>
+<div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160; </div>
+<div class="line"><a name="l00217"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1ModularSetNode.html#ac08e3992efa956f31feaf12cd360b578">  217</a></span>&#160;  <span class="keyword">static</span> constexpr TVMFFISEqHashKind <a class="code" href="classtvm_1_1arith_1_1ModularSetNode.html#ac08e3992efa956f31feaf12cd360b578">_type_s_eq_hash_kind</a> = kTVMFFISEqHashKindTreeNode;</div>
+<div class="line"><a name="l00218"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1ModularSetNode.html#acd82a1ef8c6c733378c22f16c0bf4d32">  218</a></span>&#160;  <a class="code" href="classtvm_1_1arith_1_1ModularSetNode.html#acd82a1ef8c6c733378c22f16c0bf4d32">TVM_FFI_DECLARE_OBJECT_INFO_FINAL</a>(<span class="stringliteral">&quot;arith.ModularSet&quot;</span>, <a class="code" href="classtvm_1_1arith_1_1ModularSetNode.html">ModularSetNode</a>, Object);</div>
+<div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;};</div>
+<div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160; </div>
+<div class="line"><a name="l00225"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1ModularSet.html">  225</a></span>&#160;<span class="keyword">class </span><a class="code" href="classtvm_1_1arith_1_1ModularSet.html">ModularSet</a> : <span class="keyword">public</span> ObjectRef {</div>
+<div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160; <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00227"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1ModularSet.html#a9f54896d98169246c6a24cc338fde500">  227</a></span>&#160;  TVM_DLL <a class="code" href="classtvm_1_1arith_1_1ModularSet.html#a9f54896d98169246c6a24cc338fde500">ModularSet</a>(int64_t coeff, int64_t base);</div>
+<div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160; </div>
+<div class="line"><a name="l00229"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1ModularSet.html#a53847fcf3196d6ff83967ba0360861ea">  229</a></span>&#160;  <a class="code" href="classtvm_1_1arith_1_1ModularSet.html#a53847fcf3196d6ff83967ba0360861ea">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE</a>(<a class="code" href="classtvm_1_1arith_1_1ModularSet.html">ModularSet</a>, ObjectRef, <a class="code" href="classtvm_1_1arith_1_1ModularSetNode.html">ModularSetNode</a>);</div>
+<div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;};</div>
+<div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160; </div>
+<div class="line"><a name="l00235"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1ModularSetAnalyzer.html">  235</a></span>&#160;<span class="keyword">class </span><a class="code" href="classtvm_1_1arith_1_1ModularSetAnalyzer.html">ModularSetAnalyzer</a> {</div>
+<div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160; <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00242"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1ModularSetAnalyzer.html#a57c3c62ebc821f5f01bc2b43f06488da">  242</a></span>&#160;  TVM_DLL <a class="code" href="classtvm_1_1arith_1_1ModularSet.html">ModularSet</a> <a class="code" href="classtvm_1_1arith_1_1ModularSetAnalyzer.html#a57c3c62ebc821f5f01bc2b43f06488da">operator()</a>(<span class="keyword">const</span> <a class="code" href="classtvm_1_1PrimExpr.html">PrimExpr</a>&amp; expr [...]
+<div class="line"><a name="l00250"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1ModularSetAnalyzer.html#a04156fac580981f3005af3b8e676720d">  250</a></span>&#160;  TVM_DLL <span class="keywordtype">void</span> <a class="code" href="classtvm_1_1arith_1_1ModularSetAnalyzer.html#a04156fac580981f3005af3b8e676720d">Update</a>(<span class="keyword">const</span> <a class="code" href="classtvm_1_1tir_1_1Var.html">Var</a>&amp; <a class="code" href="namespacetvm_1_1te.html#ae [...]
+<div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160; </div>
+<div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160; <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00253"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1ModularSetAnalyzer.html#a88d594816df596eed10643082b0d0805">  253</a></span>&#160;  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classtvm_1_1arith_1_1Analyzer.html">Analyzer</a>;</div>
+<div class="line"><a name="l00254"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1ModularSetAnalyzer.html#ab8bf22547cf1df0a28fc4ee98841ab89">  254</a></span>&#160;  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classtvm_1_1arith_1_1ConstraintContext.html">ConstraintContext</a>;</div>
+<div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;  <span class="keyword">explicit</span> <a class="code" href="classtvm_1_1arith_1_1ModularSetAnalyzer.html">ModularSetAnalyzer</a>(<a class="code" href="classtvm_1_1arith_1_1Analyzer.html">Analyzer</a>* parent);</div>
+<div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;  TVM_DLL ~<a class="code" href="classtvm_1_1arith_1_1ModularSetAnalyzer.html">ModularSetAnalyzer</a>();</div>
+<div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;  std::function&lt;void()&gt; EnterConstraint(<span class="keyword">const</span> <a class="code" href="classtvm_1_1PrimExpr.html">PrimExpr</a>&amp; constraint);</div>
+<div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;  <span class="keyword">struct </span>Entry;</div>
+<div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;  <span class="keyword">class </span>Impl;</div>
+<div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;  Impl* impl_;</div>
+<div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;};</div>
+<div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160; </div>
+<div class="line"><a name="l00273"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1RewriteSimplifier.html">  273</a></span>&#160;<span class="keyword">class </span><a class="code" href="classtvm_1_1arith_1_1RewriteSimplifier.html">RewriteSimplifier</a> {</div>
+<div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160; <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00280"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1RewriteSimplifier.html#af91d307afc0c857751171a68d6d2b043">  280</a></span>&#160;  TVM_DLL <a class="code" href="classtvm_1_1PrimExpr.html">PrimExpr</a> <a class="code" href="classtvm_1_1arith_1_1RewriteSimplifier.html#af91d307afc0c857751171a68d6d2b043">operator()</a>(<span class="keyword">const</span> <a class="code" href="classtvm_1_1PrimExpr.html">PrimExpr</a>&amp; expr);</div>
+<div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160; </div>
+<div class="line"><a name="l00289"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1RewriteSimplifier.html#a5e6752c0702dc2d3e4235797d9d3ac7b">  289</a></span>&#160;  TVM_DLL <span class="keywordtype">void</span> <a class="code" href="classtvm_1_1arith_1_1RewriteSimplifier.html#a5e6752c0702dc2d3e4235797d9d3ac7b">Update</a>(<span class="keyword">const</span> <a class="code" href="classtvm_1_1tir_1_1Var.html">Var</a>&amp; <a class="code" href="namespacetvm_1_1te.html#ae0c [...]
+<div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160; </div>
+<div class="line"><a name="l00297"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1RewriteSimplifier.html#a01dda385f4e0bb0e1155c76c2d28cb96">  297</a></span>&#160;  TVM_DLL std::function&lt;void()&gt; <a class="code" href="classtvm_1_1arith_1_1RewriteSimplifier.html#a01dda385f4e0bb0e1155c76c2d28cb96">EnterConstraint</a>(<span class="keyword">const</span> <a class="code" href="classtvm_1_1PrimExpr.html">PrimExpr</a>&amp; constraint);</div>
+<div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160; </div>
+<div class="line"><a name="l00311"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1RewriteSimplifier.html#a6705af5099418b968ded40d79102ad4e">  311</a></span>&#160;  <span class="keyword">enum</span> <a class="code" href="classtvm_1_1arith_1_1RewriteSimplifier.html#a6705af5099418b968ded40d79102ad4e">Extension</a> {</div>
+<div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;    <span class="comment">// No extensions enabled</span></div>
+<div class="line"><a name="l00313"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1RewriteSimplifier.html#a6705af5099418b968ded40d79102ad4ea237e1cb407cd81dfc9608651eee87b3b">  313</a></span>&#160;    <a class="code" href="classtvm_1_1arith_1_1RewriteSimplifier.html#a6705af5099418b968ded40d79102ad4ea237e1cb407cd81dfc9608651eee87b3b">kNone</a> = 0,</div>
+<div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160; </div>
+<div class="line"><a name="l00315"></a><span class="lineno">  315</span>&#160;    <span class="comment">/* When simplifying an inequality, attempt to use scope-based knowns.</span></div>
+<div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;<span class="comment">     *</span></div>
+<div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160;<span class="comment">     * Example:</span></div>
+<div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160;<span class="comment">     * if_then_else(i&lt;j &amp;&amp; j&lt;k, i&lt;k, false) =&gt; if_then_else(i&lt;j &amp;&amp; j&lt;k, true, false)</span></div>
+<div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;<span class="comment">     */</span></div>
+<div class="line"><a name="l00320"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1RewriteSimplifier.html#a6705af5099418b968ded40d79102ad4ea775c43159049079d4a71cd788f4d1568">  320</a></span>&#160;    <a class="code" href="classtvm_1_1arith_1_1RewriteSimplifier.html#a6705af5099418b968ded40d79102ad4ea775c43159049079d4a71cd788f4d1568">kTransitivelyProveInequalities</a> = (1 &lt;&lt; 0),</div>
+<div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160; </div>
+<div class="line"><a name="l00322"></a><span class="lineno">  322</span>&#160;    <span class="comment">/* When simplifying a boolean expression, convert to an AND of ORs</span></div>
+<div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160;<span class="comment">     * (conjunctive normal form).</span></div>
+<div class="line"><a name="l00324"></a><span class="lineno">  324</span>&#160;<span class="comment">     *</span></div>
+<div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160;<span class="comment">     * Example:</span></div>
+<div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160;<span class="comment">     *   (a &amp;&amp; b) || c =&gt; (a || c) &amp;&amp; (b || c)</span></div>
+<div class="line"><a name="l00327"></a><span class="lineno">  327</span>&#160;<span class="comment">     */</span></div>
+<div class="line"><a name="l00328"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1RewriteSimplifier.html#a6705af5099418b968ded40d79102ad4eafd77a96599dad627a7c1d88292aa578e">  328</a></span>&#160;    <a class="code" href="classtvm_1_1arith_1_1RewriteSimplifier.html#a6705af5099418b968ded40d79102ad4eafd77a96599dad627a7c1d88292aa578e">kConvertBooleanToAndOfOrs</a> = (1 &lt;&lt; 1),</div>
+<div class="line"><a name="l00329"></a><span class="lineno">  329</span>&#160; </div>
+<div class="line"><a name="l00330"></a><span class="lineno">  330</span>&#160;    <span class="comment">/* When simplifying a boolean AND or a boolean OR, simplify each</span></div>
+<div class="line"><a name="l00331"></a><span class="lineno">  331</span>&#160;<span class="comment">     * branch under the assumption that the other branch does not</span></div>
+<div class="line"><a name="l00332"></a><span class="lineno">  332</span>&#160;<span class="comment">     * already dominate the result.  That is, simplify each branch of</span></div>
+<div class="line"><a name="l00333"></a><span class="lineno">  333</span>&#160;<span class="comment">     * (A &amp;&amp; B) under the assumption that the other branch is true,</span></div>
+<div class="line"><a name="l00334"></a><span class="lineno">  334</span>&#160;<span class="comment">     * and simplify each branch of (A || B) under the assumption that</span></div>
+<div class="line"><a name="l00335"></a><span class="lineno">  335</span>&#160;<span class="comment">     * the other branch is false.</span></div>
+<div class="line"><a name="l00336"></a><span class="lineno">  336</span>&#160;<span class="comment">     *</span></div>
+<div class="line"><a name="l00337"></a><span class="lineno">  337</span>&#160;<span class="comment">     * Example:</span></div>
+<div class="line"><a name="l00338"></a><span class="lineno">  338</span>&#160;<span class="comment">     *   (n &lt; 10) &amp;&amp; (n &lt; 5) =&gt; (n &lt; 10)</span></div>
+<div class="line"><a name="l00339"></a><span class="lineno">  339</span>&#160;<span class="comment">     *   (n &lt; 10) || (n &lt; 5) =&gt; (n &lt; 5)</span></div>
+<div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;<span class="comment">     */</span></div>
+<div class="line"><a name="l00341"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1RewriteSimplifier.html#a6705af5099418b968ded40d79102ad4ea254331b07f4bdf970d7f28f480da637b">  341</a></span>&#160;    <a class="code" href="classtvm_1_1arith_1_1RewriteSimplifier.html#a6705af5099418b968ded40d79102ad4ea254331b07f4bdf970d7f28f480da637b">kApplyConstraintsToBooleanBranches</a> = (1 &lt;&lt; 2),</div>
+<div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160; </div>
+<div class="line"><a name="l00343"></a><span class="lineno">  343</span>&#160;    <span class="comment">/* Special handling for expressions `(A+B)*C &lt; (A*B)*D`</span></div>
+<div class="line"><a name="l00344"></a><span class="lineno">  344</span>&#160;<span class="comment">     *</span></div>
+<div class="line"><a name="l00345"></a><span class="lineno">  345</span>&#160;<span class="comment">     * Expressions of the form `(A+B)*C &lt; (A*B)*D` can occur occur</span></div>
+<div class="line"><a name="l00346"></a><span class="lineno">  346</span>&#160;<span class="comment">     * when comparing the number of operations required for two</span></div>
+<div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160;<span class="comment">     * different orderings in which matrix multiplications can be</span></div>
+<div class="line"><a name="l00348"></a><span class="lineno">  348</span>&#160;<span class="comment">     * performed.  Proving or disproving this conditional allows an</span></div>
+<div class="line"><a name="l00349"></a><span class="lineno">  349</span>&#160;<span class="comment">     * optimal order of execution to be selected, even for dynamic</span></div>
+<div class="line"><a name="l00350"></a><span class="lineno">  350</span>&#160;<span class="comment">     * argument shapes.</span></div>
+<div class="line"><a name="l00351"></a><span class="lineno">  351</span>&#160;<span class="comment">     *</span></div>
+<div class="line"><a name="l00352"></a><span class="lineno">  352</span>&#160;<span class="comment">     * The default behavior of `ConstIntBounds` assumes that each term</span></div>
+<div class="line"><a name="l00353"></a><span class="lineno">  353</span>&#160;<span class="comment">     * in an expression is independent, and is insufficient to prove</span></div>
+<div class="line"><a name="l00354"></a><span class="lineno">  354</span>&#160;<span class="comment">     * these inequalities.  For example, the maximum value of `(A+B)*C</span></div>
+<div class="line"><a name="l00355"></a><span class="lineno">  355</span>&#160;<span class="comment">     * - (A*B)*D` is determined by taking the maximum value of</span></div>
+<div class="line"><a name="l00356"></a><span class="lineno">  356</span>&#160;<span class="comment">     * `(A+B)*C` and subtracting the minimum value of `(A*B)*D`.</span></div>
+<div class="line"><a name="l00357"></a><span class="lineno">  357</span>&#160;<span class="comment">     * While this algorithm can be applied in all cases, the bound it</span></div>
+<div class="line"><a name="l00358"></a><span class="lineno">  358</span>&#160;<span class="comment">     * provides is looser than strictly required.</span></div>
+<div class="line"><a name="l00359"></a><span class="lineno">  359</span>&#160;<span class="comment">     *</span></div>
+<div class="line"><a name="l00360"></a><span class="lineno">  360</span>&#160;<span class="comment">     * This extension adds a check for this case.  When `A`, `B`, `C`,</span></div>
+<div class="line"><a name="l00361"></a><span class="lineno">  361</span>&#160;<span class="comment">     * and `D` are all positive values, as is the case for tensor</span></div>
+<div class="line"><a name="l00362"></a><span class="lineno">  362</span>&#160;<span class="comment">     * shapes, the inequality can be written as `1/A + 1/B &lt; D/C`.  If</span></div>
+<div class="line"><a name="l00363"></a><span class="lineno">  363</span>&#160;<span class="comment">     * this inequality holds for the minimum values of `A`, `B`, and</span></div>
+<div class="line"><a name="l00364"></a><span class="lineno">  364</span>&#160;<span class="comment">     * `D`, along with the maximum value of `C`, then the inequality</span></div>
+<div class="line"><a name="l00365"></a><span class="lineno">  365</span>&#160;<span class="comment">     * holds for all values.</span></div>
+<div class="line"><a name="l00366"></a><span class="lineno">  366</span>&#160;<span class="comment">     *</span></div>
+<div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160;<span class="comment">     * This extension requires little to no performance overhead, and</span></div>
+<div class="line"><a name="l00368"></a><span class="lineno">  368</span>&#160;<span class="comment">     * may be enabled by default in future releases.</span></div>
+<div class="line"><a name="l00369"></a><span class="lineno">  369</span>&#160;<span class="comment">     */</span></div>
+<div class="line"><a name="l00370"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1RewriteSimplifier.html#a6705af5099418b968ded40d79102ad4eaf2a72591e015241f111c915110ad0b23">  370</a></span>&#160;    <a class="code" href="classtvm_1_1arith_1_1RewriteSimplifier.html#a6705af5099418b968ded40d79102ad4eaf2a72591e015241f111c915110ad0b23">kComparisonOfProductAndSum</a> = (1 &lt;&lt; 3),</div>
+<div class="line"><a name="l00371"></a><span class="lineno">  371</span>&#160;  };</div>
+<div class="line"><a name="l00372"></a><span class="lineno">  372</span>&#160; </div>
+<div class="line"><a name="l00378"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1RewriteSimplifier.html#a44b7c12d6a5d9adfc4ee4cee8d935e38">  378</a></span>&#160;  TVM_DLL <span class="keywordtype">void</span> <a class="code" href="classtvm_1_1arith_1_1RewriteSimplifier.html#a44b7c12d6a5d9adfc4ee4cee8d935e38">SetEnabledExtensions</a>(<a class="code" href="classtvm_1_1arith_1_1RewriteSimplifier.html#a6705af5099418b968ded40d79102ad4e">Extension</a> flags);</div>
+<div class="line"><a name="l00379"></a><span class="lineno">  379</span>&#160; </div>
+<div class="line"><a name="l00381"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1RewriteSimplifier.html#a2066e6d9a5b71d482c73542d0ca8c7a3">  381</a></span>&#160;  TVM_DLL <a class="code" href="classtvm_1_1arith_1_1RewriteSimplifier.html#a6705af5099418b968ded40d79102ad4e">Extension</a> <a class="code" href="classtvm_1_1arith_1_1RewriteSimplifier.html#a2066e6d9a5b71d482c73542d0ca8c7a3">GetEnabledExtensions</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00382"></a><span class="lineno">  382</span>&#160; </div>
+<div class="line"><a name="l00384"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1RewriteSimplifier.html#a5cbec380389ea7ccaa753d35d7a2dee9">  384</a></span>&#160;  TVM_DLL ObjectRef <a class="code" href="classtvm_1_1arith_1_1RewriteSimplifier.html#a5cbec380389ea7ccaa753d35d7a2dee9">GetStatsCounters</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00385"></a><span class="lineno">  385</span>&#160; </div>
+<div class="line"><a name="l00387"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1RewriteSimplifier.html#aef5b3e9793a5b459c9f457efef179e4f">  387</a></span>&#160;  TVM_DLL <span class="keywordtype">void</span> <a class="code" href="classtvm_1_1arith_1_1RewriteSimplifier.html#aef5b3e9793a5b459c9f457efef179e4f">ResetStatsCounters</a>();</div>
+<div class="line"><a name="l00388"></a><span class="lineno">  388</span>&#160; </div>
+<div class="line"><a name="l00402"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1RewriteSimplifier.html#a95dd28018de6b7aa1a5a7ee76f3ba178">  402</a></span>&#160;  TVM_DLL <span class="keywordtype">void</span> <a class="code" href="classtvm_1_1arith_1_1RewriteSimplifier.html#a95dd28018de6b7aa1a5a7ee76f3ba178">SetMaximumRewriteSteps</a>(int64_t <a class="code" href="namespacetvm_1_1topi.html#afd64bc3e27dfc97002d3add5d7ce4174">maximum</a>);</div>
+<div class="line"><a name="l00403"></a><span class="lineno">  403</span>&#160; </div>
+<div class="line"><a name="l00404"></a><span class="lineno">  404</span>&#160; <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00405"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1RewriteSimplifier.html#a88d594816df596eed10643082b0d0805">  405</a></span>&#160;  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classtvm_1_1arith_1_1Analyzer.html">Analyzer</a>;</div>
+<div class="line"><a name="l00406"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1RewriteSimplifier.html#ab8bf22547cf1df0a28fc4ee98841ab89">  406</a></span>&#160;  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classtvm_1_1arith_1_1ConstraintContext.html">ConstraintContext</a>;</div>
+<div class="line"><a name="l00407"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1RewriteSimplifier.html#abd092d074e3063da6d7bb0c67115a33f">  407</a></span>&#160;  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classtvm_1_1arith_1_1CanonicalSimplifier.html">CanonicalSimplifier</a>;</div>
+<div class="line"><a name="l00408"></a><span class="lineno">  408</span>&#160;  <span class="keyword">explicit</span> <a class="code" href="classtvm_1_1arith_1_1RewriteSimplifier.html">RewriteSimplifier</a>(<a class="code" href="classtvm_1_1arith_1_1Analyzer.html">Analyzer</a>* parent);</div>
+<div class="line"><a name="l00409"></a><span class="lineno">  409</span>&#160;  TVM_DLL ~<a class="code" href="classtvm_1_1arith_1_1RewriteSimplifier.html">RewriteSimplifier</a>();</div>
+<div class="line"><a name="l00410"></a><span class="lineno">  410</span>&#160;  <span class="keyword">class </span>Impl;</div>
+<div class="line"><a name="l00412"></a><span class="lineno">  412</span>&#160;  Impl* impl_;</div>
+<div class="line"><a name="l00413"></a><span class="lineno">  413</span>&#160;};</div>
+<div class="line"><a name="l00414"></a><span class="lineno">  414</span>&#160; </div>
+<div class="line"><a name="l00418"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1CanonicalSimplifier.html">  418</a></span>&#160;<span class="keyword">class </span><a class="code" href="classtvm_1_1arith_1_1CanonicalSimplifier.html">CanonicalSimplifier</a> {</div>
+<div class="line"><a name="l00419"></a><span class="lineno">  419</span>&#160; <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00425"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1CanonicalSimplifier.html#a2ed4ed7990499ee188e69967afb511c6">  425</a></span>&#160;  TVM_DLL <a class="code" href="classtvm_1_1PrimExpr.html">PrimExpr</a> <a class="code" href="classtvm_1_1arith_1_1CanonicalSimplifier.html#a2ed4ed7990499ee188e69967afb511c6">operator()</a>(<span class="keyword">const</span> <a class="code" href="classtvm_1_1PrimExpr.html">PrimExpr</a>&amp; expr);</div>
+<div class="line"><a name="l00426"></a><span class="lineno">  426</span>&#160; </div>
+<div class="line"><a name="l00434"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1CanonicalSimplifier.html#a790c032e12c7d93e9e940297b860c509">  434</a></span>&#160;  TVM_DLL <span class="keywordtype">void</span> <a class="code" href="classtvm_1_1arith_1_1CanonicalSimplifier.html#a790c032e12c7d93e9e940297b860c509">Update</a>(<span class="keyword">const</span> <a class="code" href="classtvm_1_1tir_1_1Var.html">Var</a>&amp; <a class="code" href="namespacetvm_1_1te.html# [...]
+<div class="line"><a name="l00435"></a><span class="lineno">  435</span>&#160; </div>
+<div class="line"><a name="l00436"></a><span class="lineno">  436</span>&#160; <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00437"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1CanonicalSimplifier.html#a88d594816df596eed10643082b0d0805">  437</a></span>&#160;  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classtvm_1_1arith_1_1Analyzer.html">Analyzer</a>;</div>
+<div class="line"><a name="l00438"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1CanonicalSimplifier.html#ab8bf22547cf1df0a28fc4ee98841ab89">  438</a></span>&#160;  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classtvm_1_1arith_1_1ConstraintContext.html">ConstraintContext</a>;</div>
+<div class="line"><a name="l00439"></a><span class="lineno">  439</span>&#160;  <span class="keyword">explicit</span> <a class="code" href="classtvm_1_1arith_1_1CanonicalSimplifier.html">CanonicalSimplifier</a>(<a class="code" href="classtvm_1_1arith_1_1Analyzer.html">Analyzer</a>* parent);</div>
+<div class="line"><a name="l00440"></a><span class="lineno">  440</span>&#160;  TVM_DLL ~<a class="code" href="classtvm_1_1arith_1_1CanonicalSimplifier.html">CanonicalSimplifier</a>();</div>
+<div class="line"><a name="l00441"></a><span class="lineno">  441</span>&#160;  <span class="keyword">class </span>Impl;</div>
+<div class="line"><a name="l00443"></a><span class="lineno">  443</span>&#160;  Impl* impl_;</div>
+<div class="line"><a name="l00444"></a><span class="lineno">  444</span>&#160;};</div>
+<div class="line"><a name="l00445"></a><span class="lineno">  445</span>&#160; </div>
+<div class="line"><a name="l00451"></a><span class="lineno"><a class="line" href="namespacetvm_1_1arith.html#a1d555a0cc363f669a49fad7e5f7d69d0">  451</a></span>&#160;<span class="keyword">enum class</span> <a class="code" href="namespacetvm_1_1arith.html#a1d555a0cc363f669a49fad7e5f7d69d0">CompareResult</a> : int {</div>
+<div class="line"><a name="l00452"></a><span class="lineno">  452</span>&#160;  <a class="code" href="namespacetvm_1_1arith.html#a1d555a0cc363f669a49fad7e5f7d69d0af9f8d006118de5ad04dd7c000b8f3b91">kInconsistent</a> = 0,</div>
+<div class="line"><a name="l00453"></a><span class="lineno">  453</span>&#160;  <a class="code" href="namespacetvm_1_1arith.html#a1d555a0cc363f669a49fad7e5f7d69d0a7db2fe13b438b1005c70fcc9ab826b3b">kEQ</a> = 1,</div>
+<div class="line"><a name="l00454"></a><span class="lineno">  454</span>&#160;  <a class="code" href="namespacetvm_1_1arith.html#a1d555a0cc363f669a49fad7e5f7d69d0add0f23f162dcf68bf7bc761ac13040ae">kLT</a> = 2,</div>
+<div class="line"><a name="l00455"></a><span class="lineno">  455</span>&#160;  <a class="code" href="namespacetvm_1_1arith.html#a1d555a0cc363f669a49fad7e5f7d69d0a1893df55d7fc768f2336fdcb7c7b9c37">kLE</a> = 3,</div>
+<div class="line"><a name="l00456"></a><span class="lineno">  456</span>&#160;  <a class="code" href="namespacetvm_1_1arith.html#a1d555a0cc363f669a49fad7e5f7d69d0aa3d18adb9a64157d6708f8ba39dfcdbc">kGT</a> = 4,</div>
+<div class="line"><a name="l00457"></a><span class="lineno">  457</span>&#160;  <a class="code" href="namespacetvm_1_1arith.html#a1d555a0cc363f669a49fad7e5f7d69d0ac0275be4f85005f8ef340d3d5be8d361">kGE</a> = 5,</div>
+<div class="line"><a name="l00458"></a><span class="lineno">  458</span>&#160;  <a class="code" href="namespacetvm_1_1arith.html#a1d555a0cc363f669a49fad7e5f7d69d0a03e3ad128c41e04acc6a0e59fdf11a58">kNE</a> = 6,</div>
+<div class="line"><a name="l00459"></a><span class="lineno">  459</span>&#160;  <a class="code" href="namespacetvm_1_1arith.html#aca8806e355ad3dd5f1df9c1eca9aac9da8812c1a077255594d23bc1c2f3af3979">kUnknown</a> = 7</div>
+<div class="line"><a name="l00460"></a><span class="lineno">  460</span>&#160;};</div>
+<div class="line"><a name="l00461"></a><span class="lineno">  461</span>&#160; </div>
+<div class="line"><a name="l00462"></a><span class="lineno"><a class="line" href="namespacetvm_1_1arith.html#ae300654bf1788008de90f1e77fbaa7fe">  462</a></span>&#160;<span class="keyword">inline</span> constexpr <a class="code" href="namespacetvm_1_1arith.html#a1d555a0cc363f669a49fad7e5f7d69d0">CompareResult</a> <a class="code" href="namespacetvm_1_1arith.html#ae300654bf1788008de90f1e77fbaa7fe">operator&amp;</a>(<a class="code" href="namespacetvm_1_1arith.html#a1d555a0cc363f669a49fad7e5f [...]
+<div class="line"><a name="l00463"></a><span class="lineno">  463</span>&#160;  <span class="keywordflow">return</span> <a class="code" href="namespacetvm_1_1arith.html#a1d555a0cc363f669a49fad7e5f7d69d0">CompareResult</a>(<span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>(lhs) &amp; <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>(rhs));</div>
+<div class="line"><a name="l00464"></a><span class="lineno">  464</span>&#160;}</div>
+<div class="line"><a name="l00465"></a><span class="lineno"><a class="line" href="namespacetvm_1_1arith.html#a660ff1fdbb08fea19a922157cadad7a7">  465</a></span>&#160;<span class="keyword">inline</span> constexpr <a class="code" href="namespacetvm_1_1arith.html#a1d555a0cc363f669a49fad7e5f7d69d0">CompareResult</a> <a class="code" href="namespacetvm_1_1arith.html#a660ff1fdbb08fea19a922157cadad7a7">operator|</a>(<a class="code" href="namespacetvm_1_1arith.html#a1d555a0cc363f669a49fad7e5f7d69 [...]
+<div class="line"><a name="l00466"></a><span class="lineno">  466</span>&#160;  <span class="keywordflow">return</span> <a class="code" href="namespacetvm_1_1arith.html#a1d555a0cc363f669a49fad7e5f7d69d0">CompareResult</a>(<span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>(lhs) | <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>(rhs));</div>
+<div class="line"><a name="l00467"></a><span class="lineno">  467</span>&#160;}</div>
+<div class="line"><a name="l00468"></a><span class="lineno">  468</span>&#160; </div>
+<div class="line"><a name="l00475"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1TransitiveComparisonAnalyzer.html">  475</a></span>&#160;<span class="keyword">class </span><a class="code" href="classtvm_1_1arith_1_1TransitiveComparisonAnalyzer.html">TransitiveComparisonAnalyzer</a> {</div>
+<div class="line"><a name="l00476"></a><span class="lineno">  476</span>&#160; <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00477"></a><span class="lineno">  477</span>&#160;  <span class="comment">/* \brief Using previously specified knowns, compare the expressions provided</span></div>
+<div class="line"><a name="l00478"></a><span class="lineno">  478</span>&#160;<span class="comment">   *</span></div>
+<div class="line"><a name="l00479"></a><span class="lineno">  479</span>&#160;<span class="comment">   * \param lhs The left-hand side of the comparison</span></div>
 <div class="line"><a name="l00480"></a><span class="lineno">  480</span>&#160;<span class="comment">   *</span></div>
-<div class="line"><a name="l00481"></a><span class="lineno">  481</span>&#160;<span class="comment">   * \param lhs The left-hand side of the comparison</span></div>
+<div class="line"><a name="l00481"></a><span class="lineno">  481</span>&#160;<span class="comment">   * \param rhs The right-hand side of the comparison</span></div>
 <div class="line"><a name="l00482"></a><span class="lineno">  482</span>&#160;<span class="comment">   *</span></div>
-<div class="line"><a name="l00483"></a><span class="lineno">  483</span>&#160;<span class="comment">   * \param rhs The right-hand side of the comparison</span></div>
-<div class="line"><a name="l00484"></a><span class="lineno">  484</span>&#160;<span class="comment">   *</span></div>
-<div class="line"><a name="l00485"></a><span class="lineno">  485</span>&#160;<span class="comment">   * \param propagate_inequalities If true, attempt to find a sequence</span></div>
-<div class="line"><a name="l00486"></a><span class="lineno">  486</span>&#160;<span class="comment">   * of transitive inequalities that allow the lhs and rhs to be</span></div>
-<div class="line"><a name="l00487"></a><span class="lineno">  487</span>&#160;<span class="comment">   * compared.  If false, only use the known comparison that have been</span></div>
-<div class="line"><a name="l00488"></a><span class="lineno">  488</span>&#160;<span class="comment">   * directly provided.  Using `propagate_inequalities = false` is</span></div>
-<div class="line"><a name="l00489"></a><span class="lineno">  489</span>&#160;<span class="comment">   * roughly equivalent to comparing against all known inequality</span></div>
-<div class="line"><a name="l00490"></a><span class="lineno">  490</span>&#160;<span class="comment">   * expressions using `ExprDeepEqual`, but also allows for constant</span></div>
-<div class="line"><a name="l00491"></a><span class="lineno">  491</span>&#160;<span class="comment">   * offsets on either side of the inequality.</span></div>
-<div class="line"><a name="l00492"></a><span class="lineno">  492</span>&#160;<span class="comment">   *</span></div>
-<div class="line"><a name="l00493"></a><span class="lineno">  493</span>&#160;<span class="comment">   * \return The most specific result that can be proven about the</span></div>
-<div class="line"><a name="l00494"></a><span class="lineno">  494</span>&#160;<span class="comment">   * comparison.  If nothing can be proven, returns kUnknown.</span></div>
-<div class="line"><a name="l00495"></a><span class="lineno">  495</span>&#160;<span class="comment">   */</span></div>
-<div class="line"><a name="l00496"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1TransitiveComparisonAnalyzer.html#ad00ac744402de84c7c3d6f2f46a6f7c7">  496</a></span>&#160;  TVM_DLL <a class="code" href="namespacetvm_1_1arith.html#a1d555a0cc363f669a49fad7e5f7d69d0">CompareResult</a> <a class="code" href="classtvm_1_1arith_1_1TransitiveComparisonAnalyzer.html#ad00ac744402de84c7c3d6f2f46a6f7c7">TryCompare</a>(<span class="keyword">const</span> <a class="code" href="cl [...]
-<div class="line"><a name="l00497"></a><span class="lineno">  497</span>&#160;                                   <span class="keywordtype">bool</span> propagate_inequalities = <span class="keyword">true</span>);</div>
-<div class="line"><a name="l00498"></a><span class="lineno">  498</span>&#160; </div>
-<div class="line"><a name="l00505"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1TransitiveComparisonAnalyzer.html#ab397bc32c73753205e70d63b71738779">  505</a></span>&#160;  TVM_DLL <span class="keywordtype">void</span> <a class="code" href="classtvm_1_1arith_1_1TransitiveComparisonAnalyzer.html#ab397bc32c73753205e70d63b71738779">Bind</a>(<span class="keyword">const</span> <a class="code" href="classtvm_1_1tir_1_1Var.html">Var</a>&amp; <a class="code" href="namespac [...]
-<div class="line"><a name="l00506"></a><span class="lineno">  506</span>&#160; </div>
-<div class="line"><a name="l00513"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1TransitiveComparisonAnalyzer.html#a1a57e873676402922a7af5b8e1991f00">  513</a></span>&#160;  TVM_DLL <span class="keywordtype">void</span> <a class="code" href="classtvm_1_1arith_1_1TransitiveComparisonAnalyzer.html#a1a57e873676402922a7af5b8e1991f00">Bind</a>(<span class="keyword">const</span> <a class="code" href="classtvm_1_1tir_1_1Var.html">Var</a>&amp; <a class="code" href="namespac [...]
-<div class="line"><a name="l00514"></a><span class="lineno">  514</span>&#160; </div>
-<div class="line"><a name="l00521"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1TransitiveComparisonAnalyzer.html#ab0c67cf201be8b57460cc155e5ff352a">  521</a></span>&#160;  TVM_DLL std::function&lt;void()&gt; <a class="code" href="classtvm_1_1arith_1_1TransitiveComparisonAnalyzer.html#ab0c67cf201be8b57460cc155e5ff352a">EnterConstraint</a>(<span class="keyword">const</span> <a class="code" href="classtvm_1_1PrimExpr.html">PrimExpr</a>&amp; constraint);</div>
-<div class="line"><a name="l00522"></a><span class="lineno">  522</span>&#160; </div>
-<div class="line"><a name="l00523"></a><span class="lineno">  523</span>&#160; <span class="keyword">private</span>:</div>
-<div class="line"><a name="l00524"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1TransitiveComparisonAnalyzer.html#a88d594816df596eed10643082b0d0805">  524</a></span>&#160;  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classtvm_1_1arith_1_1Analyzer.html">Analyzer</a>;</div>
-<div class="line"><a name="l00525"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1TransitiveComparisonAnalyzer.html#ab8bf22547cf1df0a28fc4ee98841ab89">  525</a></span>&#160;  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classtvm_1_1arith_1_1ConstraintContext.html">ConstraintContext</a>;</div>
-<div class="line"><a name="l00526"></a><span class="lineno">  526</span>&#160;  <a class="code" href="classtvm_1_1arith_1_1TransitiveComparisonAnalyzer.html">TransitiveComparisonAnalyzer</a>();</div>
-<div class="line"><a name="l00527"></a><span class="lineno">  527</span>&#160;  TVM_DLL ~<a class="code" href="classtvm_1_1arith_1_1TransitiveComparisonAnalyzer.html">TransitiveComparisonAnalyzer</a>();</div>
-<div class="line"><a name="l00528"></a><span class="lineno">  528</span>&#160;  <span class="keyword">class </span>Impl;</div>
-<div class="line"><a name="l00530"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1ConstraintContext.html#acf0da349a64c42ae689d9459ae09f0e3">  530</a></span>&#160;  std::unique_ptr&lt;Impl&gt; impl_;</div>
-<div class="line"><a name="l00531"></a><span class="lineno">  531</span>&#160;};</div>
-<div class="line"><a name="l00532"></a><span class="lineno">  532</span>&#160; </div>
-<div class="line"><a name="l00549"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1ConstraintContext.html">  549</a></span>&#160;<span class="keyword">class </span><a class="code" href="classtvm_1_1arith_1_1ConstraintContext.html">ConstraintContext</a> {</div>
-<div class="line"><a name="l00550"></a><span class="lineno">  550</span>&#160; <span class="keyword">private</span>:</div>
-<div class="line"><a name="l00551"></a><span class="lineno">  551</span>&#160;  <span class="comment">// declare friend to enable with.</span></div>
-<div class="line"><a name="l00552"></a><span class="lineno">  552</span>&#160;  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classtvm_1_1With.html">With</a>&lt;<a class="code" href="classtvm_1_1arith_1_1ConstraintContext.html">ConstraintContext</a>&gt;;</div>
-<div class="line"><a name="l00558"></a><span class="lineno">  558</span>&#160;  <a class="code" href="classtvm_1_1arith_1_1ConstraintContext.html">ConstraintContext</a>(<a class="code" href="classtvm_1_1arith_1_1Analyzer.html">Analyzer</a>* analyzer, <a class="code" href="classtvm_1_1PrimExpr.html">PrimExpr</a> constraint)</div>
-<div class="line"><a name="l00559"></a><span class="lineno">  559</span>&#160;      : analyzer_(analyzer), constraint_(constraint) {}</div>
-<div class="line"><a name="l00560"></a><span class="lineno">  560</span>&#160;  <span class="comment">// enter the scope.</span></div>
-<div class="line"><a name="l00561"></a><span class="lineno">  561</span>&#160;  <span class="keywordtype">void</span> EnterWithScope();</div>
-<div class="line"><a name="l00562"></a><span class="lineno">  562</span>&#160;  <span class="comment">// exit the scope.</span></div>
-<div class="line"><a name="l00563"></a><span class="lineno">  563</span>&#160;  <span class="keywordtype">void</span> ExitWithScope();</div>
-<div class="line"><a name="l00565"></a><span class="lineno">  565</span>&#160;  <a class="code" href="classtvm_1_1arith_1_1Analyzer.html">Analyzer</a>* analyzer_;</div>
-<div class="line"><a name="l00567"></a><span class="lineno">  567</span>&#160;  <a class="code" href="classtvm_1_1PrimExpr.html">PrimExpr</a> constraint_;</div>
-<div class="line"><a name="l00569"></a><span class="lineno">  569</span>&#160;  std::vector&lt;std::function&lt;void()&gt;&gt; recovery_functions_;</div>
-<div class="line"><a name="l00570"></a><span class="lineno">  570</span>&#160;};</div>
-<div class="line"><a name="l00571"></a><span class="lineno">  571</span>&#160; </div>
-<div class="line"><a name="l00575"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1IntSetAnalyzer.html">  575</a></span>&#160;<span class="keyword">class </span><a class="code" href="classtvm_1_1arith_1_1IntSetAnalyzer.html">IntSetAnalyzer</a> {</div>
-<div class="line"><a name="l00576"></a><span class="lineno">  576</span>&#160; <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00585"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1IntSetAnalyzer.html#ab84b89220625f2b2bc7c69c860e42155">  585</a></span>&#160;  TVM_DLL <a class="code" href="classtvm_1_1arith_1_1IntSet.html">IntSet</a> <a class="code" href="classtvm_1_1arith_1_1IntSetAnalyzer.html#ab84b89220625f2b2bc7c69c860e42155">operator()</a>(<span class="keyword">const</span> <a class="code" href="classtvm_1_1PrimExpr.html">PrimExpr</a>&amp; expr, <span class="k [...]
-<div class="line"><a name="l00586"></a><span class="lineno">  586</span>&#160; </div>
-<div class="line"><a name="l00595"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1IntSetAnalyzer.html#af4274caf7f5a6af64fbafc2f2465f591">  595</a></span>&#160;  TVM_DLL <a class="code" href="classtvm_1_1arith_1_1IntSet.html">IntSet</a> <a class="code" href="classtvm_1_1arith_1_1IntSetAnalyzer.html#af4274caf7f5a6af64fbafc2f2465f591">operator()</a>(<span class="keyword">const</span> <a class="code" href="classtvm_1_1PrimExpr.html">PrimExpr</a>&amp; expr);</div>
-<div class="line"><a name="l00596"></a><span class="lineno">  596</span>&#160; </div>
-<div class="line"><a name="l00604"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1IntSetAnalyzer.html#a9a201c941931807b4b88eedc4f8c03f4">  604</a></span>&#160;  TVM_DLL <span class="keywordtype">void</span> <a class="code" href="classtvm_1_1arith_1_1IntSetAnalyzer.html#a9a201c941931807b4b88eedc4f8c03f4">Update</a>(<span class="keyword">const</span> <a class="code" href="classtvm_1_1tir_1_1Var.html">Var</a>&amp; <a class="code" href="namespacetvm_1_1te.html#ae0c71f847 [...]
-<div class="line"><a name="l00605"></a><span class="lineno">  605</span>&#160; </div>
-<div class="line"><a name="l00613"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1IntSetAnalyzer.html#ab0ded402c93fc89cba57015b6f3f4d8d">  613</a></span>&#160;  TVM_DLL <span class="keywordtype">void</span> <a class="code" href="classtvm_1_1arith_1_1IntSetAnalyzer.html#ab0ded402c93fc89cba57015b6f3f4d8d">Bind</a>(<span class="keyword">const</span> <a class="code" href="classtvm_1_1tir_1_1Var.html">Var</a>&amp; <a class="code" href="namespacetvm_1_1te.html#ae0c71f84710 [...]
+<div class="line"><a name="l00483"></a><span class="lineno">  483</span>&#160;<span class="comment">   * \param propagate_inequalities If true, attempt to find a sequence</span></div>
+<div class="line"><a name="l00484"></a><span class="lineno">  484</span>&#160;<span class="comment">   * of transitive inequalities that allow the lhs and rhs to be</span></div>
+<div class="line"><a name="l00485"></a><span class="lineno">  485</span>&#160;<span class="comment">   * compared.  If false, only use the known comparison that have been</span></div>
+<div class="line"><a name="l00486"></a><span class="lineno">  486</span>&#160;<span class="comment">   * directly provided.  Using `propagate_inequalities = false` is</span></div>
+<div class="line"><a name="l00487"></a><span class="lineno">  487</span>&#160;<span class="comment">   * roughly equivalent to comparing against all known inequality</span></div>
+<div class="line"><a name="l00488"></a><span class="lineno">  488</span>&#160;<span class="comment">   * expressions using `ExprDeepEqual`, but also allows for constant</span></div>
+<div class="line"><a name="l00489"></a><span class="lineno">  489</span>&#160;<span class="comment">   * offsets on either side of the inequality.</span></div>
+<div class="line"><a name="l00490"></a><span class="lineno">  490</span>&#160;<span class="comment">   *</span></div>
+<div class="line"><a name="l00491"></a><span class="lineno">  491</span>&#160;<span class="comment">   * \return The most specific result that can be proven about the</span></div>
+<div class="line"><a name="l00492"></a><span class="lineno">  492</span>&#160;<span class="comment">   * comparison.  If nothing can be proven, returns kUnknown.</span></div>
+<div class="line"><a name="l00493"></a><span class="lineno">  493</span>&#160;<span class="comment">   */</span></div>
+<div class="line"><a name="l00494"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1TransitiveComparisonAnalyzer.html#ad00ac744402de84c7c3d6f2f46a6f7c7">  494</a></span>&#160;  TVM_DLL <a class="code" href="namespacetvm_1_1arith.html#a1d555a0cc363f669a49fad7e5f7d69d0">CompareResult</a> <a class="code" href="classtvm_1_1arith_1_1TransitiveComparisonAnalyzer.html#ad00ac744402de84c7c3d6f2f46a6f7c7">TryCompare</a>(<span class="keyword">const</span> <a class="code" href="cl [...]
+<div class="line"><a name="l00495"></a><span class="lineno">  495</span>&#160;                                   <span class="keywordtype">bool</span> propagate_inequalities = <span class="keyword">true</span>);</div>
+<div class="line"><a name="l00496"></a><span class="lineno">  496</span>&#160; </div>
+<div class="line"><a name="l00503"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1TransitiveComparisonAnalyzer.html#ab397bc32c73753205e70d63b71738779">  503</a></span>&#160;  TVM_DLL <span class="keywordtype">void</span> <a class="code" href="classtvm_1_1arith_1_1TransitiveComparisonAnalyzer.html#ab397bc32c73753205e70d63b71738779">Bind</a>(<span class="keyword">const</span> <a class="code" href="classtvm_1_1tir_1_1Var.html">Var</a>&amp; <a class="code" href="namespac [...]
+<div class="line"><a name="l00504"></a><span class="lineno">  504</span>&#160; </div>
+<div class="line"><a name="l00511"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1TransitiveComparisonAnalyzer.html#a1a57e873676402922a7af5b8e1991f00">  511</a></span>&#160;  TVM_DLL <span class="keywordtype">void</span> <a class="code" href="classtvm_1_1arith_1_1TransitiveComparisonAnalyzer.html#a1a57e873676402922a7af5b8e1991f00">Bind</a>(<span class="keyword">const</span> <a class="code" href="classtvm_1_1tir_1_1Var.html">Var</a>&amp; <a class="code" href="namespac [...]
+<div class="line"><a name="l00512"></a><span class="lineno">  512</span>&#160; </div>
+<div class="line"><a name="l00519"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1TransitiveComparisonAnalyzer.html#ab0c67cf201be8b57460cc155e5ff352a">  519</a></span>&#160;  TVM_DLL std::function&lt;void()&gt; <a class="code" href="classtvm_1_1arith_1_1TransitiveComparisonAnalyzer.html#ab0c67cf201be8b57460cc155e5ff352a">EnterConstraint</a>(<span class="keyword">const</span> <a class="code" href="classtvm_1_1PrimExpr.html">PrimExpr</a>&amp; constraint);</div>
+<div class="line"><a name="l00520"></a><span class="lineno">  520</span>&#160; </div>
+<div class="line"><a name="l00521"></a><span class="lineno">  521</span>&#160; <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00522"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1TransitiveComparisonAnalyzer.html#a88d594816df596eed10643082b0d0805">  522</a></span>&#160;  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classtvm_1_1arith_1_1Analyzer.html">Analyzer</a>;</div>
+<div class="line"><a name="l00523"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1TransitiveComparisonAnalyzer.html#ab8bf22547cf1df0a28fc4ee98841ab89">  523</a></span>&#160;  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classtvm_1_1arith_1_1ConstraintContext.html">ConstraintContext</a>;</div>
+<div class="line"><a name="l00524"></a><span class="lineno">  524</span>&#160;  <a class="code" href="classtvm_1_1arith_1_1TransitiveComparisonAnalyzer.html">TransitiveComparisonAnalyzer</a>();</div>
+<div class="line"><a name="l00525"></a><span class="lineno">  525</span>&#160;  TVM_DLL ~<a class="code" href="classtvm_1_1arith_1_1TransitiveComparisonAnalyzer.html">TransitiveComparisonAnalyzer</a>();</div>
+<div class="line"><a name="l00526"></a><span class="lineno">  526</span>&#160;  <span class="keyword">class </span>Impl;</div>
+<div class="line"><a name="l00528"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1ConstraintContext.html#acf0da349a64c42ae689d9459ae09f0e3">  528</a></span>&#160;  std::unique_ptr&lt;Impl&gt; impl_;</div>
+<div class="line"><a name="l00529"></a><span class="lineno">  529</span>&#160;};</div>
+<div class="line"><a name="l00530"></a><span class="lineno">  530</span>&#160; </div>
+<div class="line"><a name="l00547"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1ConstraintContext.html">  547</a></span>&#160;<span class="keyword">class </span><a class="code" href="classtvm_1_1arith_1_1ConstraintContext.html">ConstraintContext</a> {</div>
+<div class="line"><a name="l00548"></a><span class="lineno">  548</span>&#160; <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00549"></a><span class="lineno">  549</span>&#160;  <span class="comment">// declare friend to enable with.</span></div>
+<div class="line"><a name="l00550"></a><span class="lineno">  550</span>&#160;  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classtvm_1_1With.html">With</a>&lt;<a class="code" href="classtvm_1_1arith_1_1ConstraintContext.html">ConstraintContext</a>&gt;;</div>
+<div class="line"><a name="l00556"></a><span class="lineno">  556</span>&#160;  <a class="code" href="classtvm_1_1arith_1_1ConstraintContext.html">ConstraintContext</a>(<a class="code" href="classtvm_1_1arith_1_1Analyzer.html">Analyzer</a>* analyzer, <a class="code" href="classtvm_1_1PrimExpr.html">PrimExpr</a> constraint)</div>
+<div class="line"><a name="l00557"></a><span class="lineno">  557</span>&#160;      : analyzer_(analyzer), constraint_(constraint) {}</div>
+<div class="line"><a name="l00558"></a><span class="lineno">  558</span>&#160;  <span class="comment">// enter the scope.</span></div>
+<div class="line"><a name="l00559"></a><span class="lineno">  559</span>&#160;  <span class="keywordtype">void</span> EnterWithScope();</div>
+<div class="line"><a name="l00560"></a><span class="lineno">  560</span>&#160;  <span class="comment">// exit the scope.</span></div>
+<div class="line"><a name="l00561"></a><span class="lineno">  561</span>&#160;  <span class="keywordtype">void</span> ExitWithScope();</div>
+<div class="line"><a name="l00563"></a><span class="lineno">  563</span>&#160;  <a class="code" href="classtvm_1_1arith_1_1Analyzer.html">Analyzer</a>* analyzer_;</div>
+<div class="line"><a name="l00565"></a><span class="lineno">  565</span>&#160;  <a class="code" href="classtvm_1_1PrimExpr.html">PrimExpr</a> constraint_;</div>
+<div class="line"><a name="l00567"></a><span class="lineno">  567</span>&#160;  std::vector&lt;std::function&lt;void()&gt;&gt; recovery_functions_;</div>
+<div class="line"><a name="l00568"></a><span class="lineno">  568</span>&#160;};</div>
+<div class="line"><a name="l00569"></a><span class="lineno">  569</span>&#160; </div>
+<div class="line"><a name="l00573"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1IntSetAnalyzer.html">  573</a></span>&#160;<span class="keyword">class </span><a class="code" href="classtvm_1_1arith_1_1IntSetAnalyzer.html">IntSetAnalyzer</a> {</div>
+<div class="line"><a name="l00574"></a><span class="lineno">  574</span>&#160; <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00583"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1IntSetAnalyzer.html#ab84b89220625f2b2bc7c69c860e42155">  583</a></span>&#160;  TVM_DLL <a class="code" href="classtvm_1_1arith_1_1IntSet.html">IntSet</a> <a class="code" href="classtvm_1_1arith_1_1IntSetAnalyzer.html#ab84b89220625f2b2bc7c69c860e42155">operator()</a>(<span class="keyword">const</span> <a class="code" href="classtvm_1_1PrimExpr.html">PrimExpr</a>&amp; expr, <span class="k [...]
+<div class="line"><a name="l00584"></a><span class="lineno">  584</span>&#160; </div>
+<div class="line"><a name="l00593"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1IntSetAnalyzer.html#af4274caf7f5a6af64fbafc2f2465f591">  593</a></span>&#160;  TVM_DLL <a class="code" href="classtvm_1_1arith_1_1IntSet.html">IntSet</a> <a class="code" href="classtvm_1_1arith_1_1IntSetAnalyzer.html#af4274caf7f5a6af64fbafc2f2465f591">operator()</a>(<span class="keyword">const</span> <a class="code" href="classtvm_1_1PrimExpr.html">PrimExpr</a>&amp; expr);</div>
+<div class="line"><a name="l00594"></a><span class="lineno">  594</span>&#160; </div>
+<div class="line"><a name="l00602"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1IntSetAnalyzer.html#a9a201c941931807b4b88eedc4f8c03f4">  602</a></span>&#160;  TVM_DLL <span class="keywordtype">void</span> <a class="code" href="classtvm_1_1arith_1_1IntSetAnalyzer.html#a9a201c941931807b4b88eedc4f8c03f4">Update</a>(<span class="keyword">const</span> <a class="code" href="classtvm_1_1tir_1_1Var.html">Var</a>&amp; <a class="code" href="namespacetvm_1_1te.html#ae0c71f847 [...]
+<div class="line"><a name="l00603"></a><span class="lineno">  603</span>&#160; </div>
+<div class="line"><a name="l00611"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1IntSetAnalyzer.html#ab0ded402c93fc89cba57015b6f3f4d8d">  611</a></span>&#160;  TVM_DLL <span class="keywordtype">void</span> <a class="code" href="classtvm_1_1arith_1_1IntSetAnalyzer.html#ab0ded402c93fc89cba57015b6f3f4d8d">Bind</a>(<span class="keyword">const</span> <a class="code" href="classtvm_1_1tir_1_1Var.html">Var</a>&amp; <a class="code" href="namespacetvm_1_1te.html#ae0c71f84710 [...]
+<div class="line"><a name="l00612"></a><span class="lineno">  612</span>&#160; </div>
+<div class="line"><a name="l00613"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1IntSetAnalyzer.html#a096433dd7bde50f73eed4854af8b6111">  613</a></span>&#160;  std::function&lt;void()&gt; <a class="code" href="classtvm_1_1arith_1_1IntSetAnalyzer.html#a096433dd7bde50f73eed4854af8b6111">EnterConstraint</a>(<span class="keyword">const</span> <a class="code" href="classtvm_1_1PrimExpr.html">PrimExpr</a>&amp; constraint);</div>
 <div class="line"><a name="l00614"></a><span class="lineno">  614</span>&#160; </div>
-<div class="line"><a name="l00615"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1IntSetAnalyzer.html#a096433dd7bde50f73eed4854af8b6111">  615</a></span>&#160;  std::function&lt;void()&gt; <a class="code" href="classtvm_1_1arith_1_1IntSetAnalyzer.html#a096433dd7bde50f73eed4854af8b6111">EnterConstraint</a>(<span class="keyword">const</span> <a class="code" href="classtvm_1_1PrimExpr.html">PrimExpr</a>&amp; constraint);</div>
-<div class="line"><a name="l00616"></a><span class="lineno">  616</span>&#160; </div>
-<div class="line"><a name="l00617"></a><span class="lineno">  617</span>&#160; <span class="keyword">private</span>:</div>
-<div class="line"><a name="l00618"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1IntSetAnalyzer.html#a88d594816df596eed10643082b0d0805">  618</a></span>&#160;  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classtvm_1_1arith_1_1Analyzer.html">Analyzer</a>;</div>
-<div class="line"><a name="l00619"></a><span class="lineno">  619</span>&#160;  <span class="keyword">explicit</span> <a class="code" href="classtvm_1_1arith_1_1IntSetAnalyzer.html">IntSetAnalyzer</a>(<a class="code" href="classtvm_1_1arith_1_1Analyzer.html">Analyzer</a>* parent);</div>
-<div class="line"><a name="l00620"></a><span class="lineno">  620</span>&#160;  TVM_DLL ~<a class="code" href="classtvm_1_1arith_1_1IntSetAnalyzer.html">IntSetAnalyzer</a>();</div>
-<div class="line"><a name="l00621"></a><span class="lineno">  621</span>&#160;  <span class="keyword">class </span>Impl;</div>
-<div class="line"><a name="l00623"></a><span class="lineno">  623</span>&#160;  Impl* impl_;</div>
-<div class="line"><a name="l00624"></a><span class="lineno">  624</span>&#160;};</div>
-<div class="line"><a name="l00625"></a><span class="lineno">  625</span>&#160; </div>
-<div class="line"><a name="l00636"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1Analyzer.html">  636</a></span>&#160;<span class="keyword">class </span>TVM_DLL <a class="code" href="classtvm_1_1arith_1_1Analyzer.html">Analyzer</a> {</div>
-<div class="line"><a name="l00637"></a><span class="lineno">  637</span>&#160; <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00638"></a><span class="lineno">  638</span>&#160;  <span class="comment">/*</span></div>
-<div class="line"><a name="l00639"></a><span class="lineno">  639</span>&#160;<span class="comment">   * Disable copy constructor.</span></div>
-<div class="line"><a name="l00640"></a><span class="lineno">  640</span>&#160;<span class="comment">   */</span></div>
-<div class="line"><a name="l00641"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1Analyzer.html#af33491068003d13952289cd296ba63af">  641</a></span>&#160;  <a class="code" href="classtvm_1_1arith_1_1Analyzer.html#af33491068003d13952289cd296ba63af">Analyzer</a>(<span class="keyword">const</span> <a class="code" href="classtvm_1_1arith_1_1Analyzer.html">Analyzer</a>&amp;) = <span class="keyword">delete</span>;</div>
-<div class="line"><a name="l00642"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1Analyzer.html#a9dccc7d98b8b9465390e10436d3a9178">  642</a></span>&#160;  <a class="code" href="classtvm_1_1arith_1_1Analyzer.html">Analyzer</a>&amp; <a class="code" href="classtvm_1_1arith_1_1Analyzer.html#a9dccc7d98b8b9465390e10436d3a9178">operator=</a>(<span class="keyword">const</span> <a class="code" href="classtvm_1_1arith_1_1Analyzer.html">Analyzer</a>&amp;) = <span class="keyword [...]
-<div class="line"><a name="l00644"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1Analyzer.html#a435eba3ac3a839d3c53b74acfdc10146">  644</a></span>&#160;  <a class="code" href="classtvm_1_1arith_1_1ConstIntBoundAnalyzer.html">ConstIntBoundAnalyzer</a> <a class="code" href="classtvm_1_1arith_1_1Analyzer.html#a435eba3ac3a839d3c53b74acfdc10146">const_int_bound</a>;</div>
-<div class="line"><a name="l00646"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1Analyzer.html#acac92a9522deabe289fea99efbd9eaec">  646</a></span>&#160;  <a class="code" href="classtvm_1_1arith_1_1ModularSetAnalyzer.html">ModularSetAnalyzer</a> <a class="code" href="classtvm_1_1arith_1_1Analyzer.html#acac92a9522deabe289fea99efbd9eaec">modular_set</a>;</div>
-<div class="line"><a name="l00648"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1Analyzer.html#acc86c6e8c04cb0de4ff9d78e769924b2">  648</a></span>&#160;  <a class="code" href="classtvm_1_1arith_1_1RewriteSimplifier.html">RewriteSimplifier</a> <a class="code" href="classtvm_1_1arith_1_1Analyzer.html#acc86c6e8c04cb0de4ff9d78e769924b2">rewrite_simplify</a>;</div>
-<div class="line"><a name="l00650"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1Analyzer.html#a6cdf29adeceaa20b8c3dd7c26b92cd00">  650</a></span>&#160;  <a class="code" href="classtvm_1_1arith_1_1CanonicalSimplifier.html">CanonicalSimplifier</a> <a class="code" href="classtvm_1_1arith_1_1Analyzer.html#a6cdf29adeceaa20b8c3dd7c26b92cd00">canonical_simplify</a>;</div>
-<div class="line"><a name="l00652"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1Analyzer.html#a0d054ea2ea5b7e99f0883c00672ec831">  652</a></span>&#160;  <a class="code" href="classtvm_1_1arith_1_1IntSetAnalyzer.html">IntSetAnalyzer</a> <a class="code" href="classtvm_1_1arith_1_1Analyzer.html#a0d054ea2ea5b7e99f0883c00672ec831">int_set</a>;</div>
-<div class="line"><a name="l00654"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1Analyzer.html#a23e266bcb0d9b5ca6cc01c691271db72">  654</a></span>&#160;  <a class="code" href="classtvm_1_1arith_1_1TransitiveComparisonAnalyzer.html">TransitiveComparisonAnalyzer</a> <a class="code" href="classtvm_1_1arith_1_1Analyzer.html#a23e266bcb0d9b5ca6cc01c691271db72">transitive_comparisons</a>;</div>
-<div class="line"><a name="l00656"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1Analyzer.html#ae8568eeee02c68849e468f8c19a2701d">  656</a></span>&#160;  <a class="code" href="classtvm_1_1arith_1_1Analyzer.html#ae8568eeee02c68849e468f8c19a2701d">Analyzer</a>();</div>
-<div class="line"><a name="l00672"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1Analyzer.html#a98d3fc802f7de0ea645cea47aa20c66f">  672</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classtvm_1_1arith_1_1Analyzer.html#a98d3fc802f7de0ea645cea47aa20c66f">MarkGlobalNonNegValue</a>(<span class="keyword">const</span> <a class="code" href="classtvm_1_1PrimExpr.html">PrimExpr</a>&amp; value);</div>
-<div class="line"><a name="l00685"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1Analyzer.html#a675ba44dc7d70ef5606e4147919da9f2">  685</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classtvm_1_1arith_1_1Analyzer.html#a675ba44dc7d70ef5606e4147919da9f2">Bind</a>(<span class="keyword">const</span> <a class="code" href="classtvm_1_1tir_1_1Var.html">Var</a>&amp; <a class="code" href="namespacetvm_1_1te.html#ae0c71f84710b436cbe0b32289d0838f [...]
-<div class="line"><a name="l00698"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1Analyzer.html#a20c4bae46db46362ba6bca4c1d368345">  698</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classtvm_1_1arith_1_1Analyzer.html#a20c4bae46db46362ba6bca4c1d368345">Bind</a>(<span class="keyword">const</span> <a class="code" href="classtvm_1_1tir_1_1Var.html">Var</a>&amp; <a class="code" href="namespacetvm_1_1te.html#ae0c71f84710b436cbe0b32289d0838f [...]
-<div class="line"><a name="l00707"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1Analyzer.html#a0c3f8b7ad1804e4dc8d4ca451ddc35b9">  707</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classtvm_1_1arith_1_1Analyzer.html#a0c3f8b7ad1804e4dc8d4ca451ddc35b9">Bind</a>(<span class="keyword">const</span> ffi::Map&lt;Var, Range&gt;&amp; variables, <span class="keywordtype">bool</span> allow_override = <span class="keyword">false</span>);</div>
-<div class="line"><a name="l00720"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1Analyzer.html#a5e97e3abc176f85a5b8e5d0d1cb9f5e1">  720</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classtvm_1_1arith_1_1Analyzer.html#a5e97e3abc176f85a5b8e5d0d1cb9f5e1">CanProveGreaterEqual</a>(<span class="keyword">const</span> <a class="code" href="classtvm_1_1PrimExpr.html">PrimExpr</a>&amp; expr, int64_t lower_bound);</div>
-<div class="line"><a name="l00733"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1Analyzer.html#adb7ace66382583595724d79cc1504638">  733</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classtvm_1_1arith_1_1Analyzer.html#adb7ace66382583595724d79cc1504638">CanProveLess</a>(<span class="keyword">const</span> <a class="code" href="classtvm_1_1PrimExpr.html">PrimExpr</a>&amp; expr, int64_t upper_bound);</div>
-<div class="line"><a name="l00743"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1Analyzer.html#a5b4350d33e93a9e6bb7f26e4c6569703">  743</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classtvm_1_1arith_1_1Analyzer.html#a5b4350d33e93a9e6bb7f26e4c6569703">CanProveEqual</a>(<span class="keyword">const</span> <a class="code" href="classtvm_1_1PrimExpr.html">PrimExpr</a>&amp; lhs, <span class="keyword">const</span> <a class="code" href="clas [...]
-<div class="line"><a name="l00760"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1Analyzer.html#a4371d28a6b3306bdb4eec6c6a8317e03">  760</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classtvm_1_1arith_1_1Analyzer.html#a4371d28a6b3306bdb4eec6c6a8317e03">CanProveLessEqualThanSymbolicShapeValue</a>(<span class="keyword">const</span> <a class="code" href="classtvm_1_1PrimExpr.html">PrimExpr</a>&amp; lhs, <span class="keyword">const</span>  [...]
-<div class="line"><a name="l00773"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1Analyzer.html#a7d8be689aff9dab648ca21f210d6d9c2">  773</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classtvm_1_1arith_1_1Analyzer.html#a7d8be689aff9dab648ca21f210d6d9c2">CanProve</a>(<span class="keyword">const</span> <a class="code" href="classtvm_1_1PrimExpr.html">PrimExpr</a>&amp; cond, <a class="code" href="namespacetvm_1_1arith.html#a038b0205b1c66d2 [...]
-<div class="line"><a name="l00774"></a><span class="lineno">  774</span>&#160; </div>
-<div class="line"><a name="l00788"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1Analyzer.html#a9b440f852f12ad0a4d8ed5ed97054425">  788</a></span>&#160;  <a class="code" href="classtvm_1_1PrimExpr.html">PrimExpr</a> <a class="code" href="classtvm_1_1arith_1_1Analyzer.html#a9b440f852f12ad0a4d8ed5ed97054425">Simplify</a>(<span class="keyword">const</span> <a class="code" href="classtvm_1_1PrimExpr.html">PrimExpr</a>&amp; expr, <span class="keywordtype">int</span> step [...]
-<div class="line"><a name="l00789"></a><span class="lineno">  789</span>&#160;};</div>
-<div class="line"><a name="l00790"></a><span class="lineno">  790</span>&#160; </div>
-<div class="line"><a name="l00791"></a><span class="lineno">  791</span>&#160;}  <span class="comment">// namespace arith</span></div>
-<div class="line"><a name="l00792"></a><span class="lineno">  792</span>&#160;}  <span class="comment">// namespace tvm</span></div>
-<div class="line"><a name="l00793"></a><span class="lineno">  793</span>&#160;<span class="preprocessor">#endif  </span><span class="comment">// TVM_ARITH_ANALYZER_H_</span></div>
-<div class="ttc" id="aclasstvm_1_1PrimExpr_html"><div class="ttname"><a href="classtvm_1_1PrimExpr.html">tvm::PrimExpr</a></div><div class="ttdoc">Reference to PrimExprNode.</div><div class="ttdef"><b>Definition:</b> expr.h:127</div></div>
-<div class="ttc" id="aclasstvm_1_1Range_html"><div class="ttname"><a href="classtvm_1_1Range.html">tvm::Range</a></div><div class="ttdoc">Range container</div><div class="ttdef"><b>Definition:</b> expr.h:700</div></div>
+<div class="line"><a name="l00615"></a><span class="lineno">  615</span>&#160; <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00616"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1IntSetAnalyzer.html#a88d594816df596eed10643082b0d0805">  616</a></span>&#160;  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classtvm_1_1arith_1_1Analyzer.html">Analyzer</a>;</div>
+<div class="line"><a name="l00617"></a><span class="lineno">  617</span>&#160;  <span class="keyword">explicit</span> <a class="code" href="classtvm_1_1arith_1_1IntSetAnalyzer.html">IntSetAnalyzer</a>(<a class="code" href="classtvm_1_1arith_1_1Analyzer.html">Analyzer</a>* parent);</div>
+<div class="line"><a name="l00618"></a><span class="lineno">  618</span>&#160;  TVM_DLL ~<a class="code" href="classtvm_1_1arith_1_1IntSetAnalyzer.html">IntSetAnalyzer</a>();</div>
+<div class="line"><a name="l00619"></a><span class="lineno">  619</span>&#160;  <span class="keyword">class </span>Impl;</div>
+<div class="line"><a name="l00621"></a><span class="lineno">  621</span>&#160;  Impl* impl_;</div>
+<div class="line"><a name="l00622"></a><span class="lineno">  622</span>&#160;};</div>
+<div class="line"><a name="l00623"></a><span class="lineno">  623</span>&#160; </div>
+<div class="line"><a name="l00634"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1Analyzer.html">  634</a></span>&#160;<span class="keyword">class </span>TVM_DLL <a class="code" href="classtvm_1_1arith_1_1Analyzer.html">Analyzer</a> {</div>
+<div class="line"><a name="l00635"></a><span class="lineno">  635</span>&#160; <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00636"></a><span class="lineno">  636</span>&#160;  <span class="comment">/*</span></div>
+<div class="line"><a name="l00637"></a><span class="lineno">  637</span>&#160;<span class="comment">   * Disable copy constructor.</span></div>
+<div class="line"><a name="l00638"></a><span class="lineno">  638</span>&#160;<span class="comment">   */</span></div>
+<div class="line"><a name="l00639"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1Analyzer.html#af33491068003d13952289cd296ba63af">  639</a></span>&#160;  <a class="code" href="classtvm_1_1arith_1_1Analyzer.html#af33491068003d13952289cd296ba63af">Analyzer</a>(<span class="keyword">const</span> <a class="code" href="classtvm_1_1arith_1_1Analyzer.html">Analyzer</a>&amp;) = <span class="keyword">delete</span>;</div>
+<div class="line"><a name="l00640"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1Analyzer.html#a9dccc7d98b8b9465390e10436d3a9178">  640</a></span>&#160;  <a class="code" href="classtvm_1_1arith_1_1Analyzer.html">Analyzer</a>&amp; <a class="code" href="classtvm_1_1arith_1_1Analyzer.html#a9dccc7d98b8b9465390e10436d3a9178">operator=</a>(<span class="keyword">const</span> <a class="code" href="classtvm_1_1arith_1_1Analyzer.html">Analyzer</a>&amp;) = <span class="keyword [...]
+<div class="line"><a name="l00642"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1Analyzer.html#a435eba3ac3a839d3c53b74acfdc10146">  642</a></span>&#160;  <a class="code" href="classtvm_1_1arith_1_1ConstIntBoundAnalyzer.html">ConstIntBoundAnalyzer</a> <a class="code" href="classtvm_1_1arith_1_1Analyzer.html#a435eba3ac3a839d3c53b74acfdc10146">const_int_bound</a>;</div>
+<div class="line"><a name="l00644"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1Analyzer.html#acac92a9522deabe289fea99efbd9eaec">  644</a></span>&#160;  <a class="code" href="classtvm_1_1arith_1_1ModularSetAnalyzer.html">ModularSetAnalyzer</a> <a class="code" href="classtvm_1_1arith_1_1Analyzer.html#acac92a9522deabe289fea99efbd9eaec">modular_set</a>;</div>
+<div class="line"><a name="l00646"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1Analyzer.html#acc86c6e8c04cb0de4ff9d78e769924b2">  646</a></span>&#160;  <a class="code" href="classtvm_1_1arith_1_1RewriteSimplifier.html">RewriteSimplifier</a> <a class="code" href="classtvm_1_1arith_1_1Analyzer.html#acc86c6e8c04cb0de4ff9d78e769924b2">rewrite_simplify</a>;</div>
+<div class="line"><a name="l00648"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1Analyzer.html#a6cdf29adeceaa20b8c3dd7c26b92cd00">  648</a></span>&#160;  <a class="code" href="classtvm_1_1arith_1_1CanonicalSimplifier.html">CanonicalSimplifier</a> <a class="code" href="classtvm_1_1arith_1_1Analyzer.html#a6cdf29adeceaa20b8c3dd7c26b92cd00">canonical_simplify</a>;</div>
+<div class="line"><a name="l00650"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1Analyzer.html#a0d054ea2ea5b7e99f0883c00672ec831">  650</a></span>&#160;  <a class="code" href="classtvm_1_1arith_1_1IntSetAnalyzer.html">IntSetAnalyzer</a> <a class="code" href="classtvm_1_1arith_1_1Analyzer.html#a0d054ea2ea5b7e99f0883c00672ec831">int_set</a>;</div>
+<div class="line"><a name="l00652"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1Analyzer.html#a23e266bcb0d9b5ca6cc01c691271db72">  652</a></span>&#160;  <a class="code" href="classtvm_1_1arith_1_1TransitiveComparisonAnalyzer.html">TransitiveComparisonAnalyzer</a> <a class="code" href="classtvm_1_1arith_1_1Analyzer.html#a23e266bcb0d9b5ca6cc01c691271db72">transitive_comparisons</a>;</div>
+<div class="line"><a name="l00654"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1Analyzer.html#ae8568eeee02c68849e468f8c19a2701d">  654</a></span>&#160;  <a class="code" href="classtvm_1_1arith_1_1Analyzer.html#ae8568eeee02c68849e468f8c19a2701d">Analyzer</a>();</div>
+<div class="line"><a name="l00670"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1Analyzer.html#a98d3fc802f7de0ea645cea47aa20c66f">  670</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classtvm_1_1arith_1_1Analyzer.html#a98d3fc802f7de0ea645cea47aa20c66f">MarkGlobalNonNegValue</a>(<span class="keyword">const</span> <a class="code" href="classtvm_1_1PrimExpr.html">PrimExpr</a>&amp; value);</div>
+<div class="line"><a name="l00683"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1Analyzer.html#a675ba44dc7d70ef5606e4147919da9f2">  683</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classtvm_1_1arith_1_1Analyzer.html#a675ba44dc7d70ef5606e4147919da9f2">Bind</a>(<span class="keyword">const</span> <a class="code" href="classtvm_1_1tir_1_1Var.html">Var</a>&amp; <a class="code" href="namespacetvm_1_1te.html#ae0c71f84710b436cbe0b32289d0838f [...]
+<div class="line"><a name="l00696"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1Analyzer.html#a20c4bae46db46362ba6bca4c1d368345">  696</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classtvm_1_1arith_1_1Analyzer.html#a20c4bae46db46362ba6bca4c1d368345">Bind</a>(<span class="keyword">const</span> <a class="code" href="classtvm_1_1tir_1_1Var.html">Var</a>&amp; <a class="code" href="namespacetvm_1_1te.html#ae0c71f84710b436cbe0b32289d0838f [...]
+<div class="line"><a name="l00705"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1Analyzer.html#a0c3f8b7ad1804e4dc8d4ca451ddc35b9">  705</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classtvm_1_1arith_1_1Analyzer.html#a0c3f8b7ad1804e4dc8d4ca451ddc35b9">Bind</a>(<span class="keyword">const</span> ffi::Map&lt;Var, Range&gt;&amp; variables, <span class="keywordtype">bool</span> allow_override = <span class="keyword">false</span>);</div>
+<div class="line"><a name="l00718"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1Analyzer.html#a5e97e3abc176f85a5b8e5d0d1cb9f5e1">  718</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classtvm_1_1arith_1_1Analyzer.html#a5e97e3abc176f85a5b8e5d0d1cb9f5e1">CanProveGreaterEqual</a>(<span class="keyword">const</span> <a class="code" href="classtvm_1_1PrimExpr.html">PrimExpr</a>&amp; expr, int64_t lower_bound);</div>
+<div class="line"><a name="l00731"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1Analyzer.html#adb7ace66382583595724d79cc1504638">  731</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classtvm_1_1arith_1_1Analyzer.html#adb7ace66382583595724d79cc1504638">CanProveLess</a>(<span class="keyword">const</span> <a class="code" href="classtvm_1_1PrimExpr.html">PrimExpr</a>&amp; expr, int64_t upper_bound);</div>
+<div class="line"><a name="l00741"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1Analyzer.html#a5b4350d33e93a9e6bb7f26e4c6569703">  741</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classtvm_1_1arith_1_1Analyzer.html#a5b4350d33e93a9e6bb7f26e4c6569703">CanProveEqual</a>(<span class="keyword">const</span> <a class="code" href="classtvm_1_1PrimExpr.html">PrimExpr</a>&amp; lhs, <span class="keyword">const</span> <a class="code" href="clas [...]
+<div class="line"><a name="l00758"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1Analyzer.html#a4371d28a6b3306bdb4eec6c6a8317e03">  758</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classtvm_1_1arith_1_1Analyzer.html#a4371d28a6b3306bdb4eec6c6a8317e03">CanProveLessEqualThanSymbolicShapeValue</a>(<span class="keyword">const</span> <a class="code" href="classtvm_1_1PrimExpr.html">PrimExpr</a>&amp; lhs, <span class="keyword">const</span>  [...]
+<div class="line"><a name="l00771"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1Analyzer.html#a7d8be689aff9dab648ca21f210d6d9c2">  771</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classtvm_1_1arith_1_1Analyzer.html#a7d8be689aff9dab648ca21f210d6d9c2">CanProve</a>(<span class="keyword">const</span> <a class="code" href="classtvm_1_1PrimExpr.html">PrimExpr</a>&amp; cond, <a class="code" href="namespacetvm_1_1arith.html#a038b0205b1c66d2 [...]
+<div class="line"><a name="l00772"></a><span class="lineno">  772</span>&#160; </div>
+<div class="line"><a name="l00786"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1Analyzer.html#a9b440f852f12ad0a4d8ed5ed97054425">  786</a></span>&#160;  <a class="code" href="classtvm_1_1PrimExpr.html">PrimExpr</a> <a class="code" href="classtvm_1_1arith_1_1Analyzer.html#a9b440f852f12ad0a4d8ed5ed97054425">Simplify</a>(<span class="keyword">const</span> <a class="code" href="classtvm_1_1PrimExpr.html">PrimExpr</a>&amp; expr, <span class="keywordtype">int</span> step [...]
+<div class="line"><a name="l00787"></a><span class="lineno">  787</span>&#160;};</div>
+<div class="line"><a name="l00788"></a><span class="lineno">  788</span>&#160; </div>
+<div class="line"><a name="l00789"></a><span class="lineno">  789</span>&#160;}  <span class="comment">// namespace arith</span></div>
+<div class="line"><a name="l00790"></a><span class="lineno">  790</span>&#160;}  <span class="comment">// namespace tvm</span></div>
+<div class="line"><a name="l00791"></a><span class="lineno">  791</span>&#160;<span class="preprocessor">#endif  </span><span class="comment">// TVM_ARITH_ANALYZER_H_</span></div>
+<div class="ttc" id="aclasstvm_1_1PrimExpr_html"><div class="ttname"><a href="classtvm_1_1PrimExpr.html">tvm::PrimExpr</a></div><div class="ttdoc">Reference to PrimExprNode.</div><div class="ttdef"><b>Definition:</b> expr.h:124</div></div>
+<div class="ttc" id="aclasstvm_1_1Range_html"><div class="ttname"><a href="classtvm_1_1Range.html">tvm::Range</a></div><div class="ttdoc">Range container</div><div class="ttdef"><b>Definition:</b> expr.h:689</div></div>
 <div class="ttc" id="aclasstvm_1_1With_html"><div class="ttname"><a href="classtvm_1_1With.html">tvm::With</a></div><div class="ttdoc">RAII wrapper function to enter and exit a context object similar to python's with syntax.</div><div class="ttdef"><b>Definition:</b> with.h:58</div></div>
-<div class="ttc" id="aclasstvm_1_1arith_1_1Analyzer_html"><div class="ttname"><a href="classtvm_1_1arith_1_1Analyzer.html">tvm::arith::Analyzer</a></div><div class="ttdoc">Analyzer that contains bunch of sub-analyzers.</div><div class="ttdef"><b>Definition:</b> analyzer.h:636</div></div>
+<div class="ttc" id="aclasstvm_1_1arith_1_1Analyzer_html"><div class="ttname"><a href="classtvm_1_1arith_1_1Analyzer.html">tvm::arith::Analyzer</a></div><div class="ttdoc">Analyzer that contains bunch of sub-analyzers.</div><div class="ttdef"><b>Definition:</b> analyzer.h:634</div></div>
 <div class="ttc" id="aclasstvm_1_1arith_1_1Analyzer_html_a0c3f8b7ad1804e4dc8d4ca451ddc35b9"><div class="ttname"><a href="classtvm_1_1arith_1_1Analyzer.html#a0c3f8b7ad1804e4dc8d4ca451ddc35b9">tvm::arith::Analyzer::Bind</a></div><div class="ttdeci">void Bind(const ffi::Map&lt; Var, Range &gt; &amp;variables, bool allow_override=false)</div><div class="ttdoc">Bind all the vars in the Map.</div></div>
-<div class="ttc" id="aclasstvm_1_1arith_1_1Analyzer_html_a0d054ea2ea5b7e99f0883c00672ec831"><div class="ttname"><a href="classtvm_1_1arith_1_1Analyzer.html#a0d054ea2ea5b7e99f0883c00672ec831">tvm::arith::Analyzer::int_set</a></div><div class="ttdeci">IntSetAnalyzer int_set</div><div class="ttdoc">sub-analyzer: int set</div><div class="ttdef"><b>Definition:</b> analyzer.h:652</div></div>
+<div class="ttc" id="aclasstvm_1_1arith_1_1Analyzer_html_a0d054ea2ea5b7e99f0883c00672ec831"><div class="ttname"><a href="classtvm_1_1arith_1_1Analyzer.html#a0d054ea2ea5b7e99f0883c00672ec831">tvm::arith::Analyzer::int_set</a></div><div class="ttdeci">IntSetAnalyzer int_set</div><div class="ttdoc">sub-analyzer: int set</div><div class="ttdef"><b>Definition:</b> analyzer.h:650</div></div>
 <div class="ttc" id="aclasstvm_1_1arith_1_1Analyzer_html_a20c4bae46db46362ba6bca4c1d368345"><div class="ttname"><a href="classtvm_1_1arith_1_1Analyzer.html#a20c4bae46db46362ba6bca4c1d368345">tvm::arith::Analyzer::Bind</a></div><div class="ttdeci">void Bind(const Var &amp;var, const Range &amp;range, bool allow_override=false)</div><div class="ttdoc">Notify all the sub-analyzers that var is created and bound to a range.</div></div>
-<div class="ttc" id="aclasstvm_1_1arith_1_1Analyzer_html_a23e266bcb0d9b5ca6cc01c691271db72"><div class="ttname"><a href="classtvm_1_1arith_1_1Analyzer.html#a23e266bcb0d9b5ca6cc01c691271db72">tvm::arith::Analyzer::transitive_comparisons</a></div><div class="ttdeci">TransitiveComparisonAnalyzer transitive_comparisons</div><div class="ttdoc">sub-analyzer transitive comparisons</div><div class="ttdef"><b>Definition:</b> analyzer.h:654</div></div>
-<div class="ttc" id="aclasstvm_1_1arith_1_1Analyzer_html_a435eba3ac3a839d3c53b74acfdc10146"><div class="ttname"><a href="classtvm_1_1arith_1_1Analyzer.html#a435eba3ac3a839d3c53b74acfdc10146">tvm::arith::Analyzer::const_int_bound</a></div><div class="ttdeci">ConstIntBoundAnalyzer const_int_bound</div><div class="ttdoc">sub-analyzer: const integer bound</div><div class="ttdef"><b>Definition:</b> analyzer.h:644</div></div>
+<div class="ttc" id="aclasstvm_1_1arith_1_1Analyzer_html_a23e266bcb0d9b5ca6cc01c691271db72"><div class="ttname"><a href="classtvm_1_1arith_1_1Analyzer.html#a23e266bcb0d9b5ca6cc01c691271db72">tvm::arith::Analyzer::transitive_comparisons</a></div><div class="ttdeci">TransitiveComparisonAnalyzer transitive_comparisons</div><div class="ttdoc">sub-analyzer transitive comparisons</div><div class="ttdef"><b>Definition:</b> analyzer.h:652</div></div>
+<div class="ttc" id="aclasstvm_1_1arith_1_1Analyzer_html_a435eba3ac3a839d3c53b74acfdc10146"><div class="ttname"><a href="classtvm_1_1arith_1_1Analyzer.html#a435eba3ac3a839d3c53b74acfdc10146">tvm::arith::Analyzer::const_int_bound</a></div><div class="ttdeci">ConstIntBoundAnalyzer const_int_bound</div><div class="ttdoc">sub-analyzer: const integer bound</div><div class="ttdef"><b>Definition:</b> analyzer.h:642</div></div>
 <div class="ttc" id="aclasstvm_1_1arith_1_1Analyzer_html_a4371d28a6b3306bdb4eec6c6a8317e03"><div class="ttname"><a href="classtvm_1_1arith_1_1Analyzer.html#a4371d28a6b3306bdb4eec6c6a8317e03">tvm::arith::Analyzer::CanProveLessEqualThanSymbolicShapeValue</a></div><div class="ttdeci">bool CanProveLessEqualThanSymbolicShapeValue(const PrimExpr &amp;lhs, const PrimExpr &amp;shape)</div><div class="ttdoc">Whether we can prove lhs is smaller than possibly symbolic shape.</div></div>
 <div class="ttc" id="aclasstvm_1_1arith_1_1Analyzer_html_a5b4350d33e93a9e6bb7f26e4c6569703"><div class="ttname"><a href="classtvm_1_1arith_1_1Analyzer.html#a5b4350d33e93a9e6bb7f26e4c6569703">tvm::arith::Analyzer::CanProveEqual</a></div><div class="ttdeci">bool CanProveEqual(const PrimExpr &amp;lhs, const PrimExpr &amp;rhs)</div><div class="ttdoc">Whether can we prove lhs == rhs.</div></div>
 <div class="ttc" id="aclasstvm_1_1arith_1_1Analyzer_html_a5e97e3abc176f85a5b8e5d0d1cb9f5e1"><div class="ttname"><a href="classtvm_1_1arith_1_1Analyzer.html#a5e97e3abc176f85a5b8e5d0d1cb9f5e1">tvm::arith::Analyzer::CanProveGreaterEqual</a></div><div class="ttdeci">bool CanProveGreaterEqual(const PrimExpr &amp;expr, int64_t lower_bound)</div><div class="ttdoc">Whether can we prove expr &gt;= val.</div></div>
 <div class="ttc" id="aclasstvm_1_1arith_1_1Analyzer_html_a675ba44dc7d70ef5606e4147919da9f2"><div class="ttname"><a href="classtvm_1_1arith_1_1Analyzer.html#a675ba44dc7d70ef5606e4147919da9f2">tvm::arith::Analyzer::Bind</a></div><div class="ttdeci">void Bind(const Var &amp;var, const PrimExpr &amp;expr, bool allow_override=false)</div><div class="ttdoc">Notify all the sub-analyzers that var is created and binded to expr.</div></div>
-<div class="ttc" id="aclasstvm_1_1arith_1_1Analyzer_html_a6cdf29adeceaa20b8c3dd7c26b92cd00"><div class="ttname"><a href="classtvm_1_1arith_1_1Analyzer.html#a6cdf29adeceaa20b8c3dd7c26b92cd00">tvm::arith::Analyzer::canonical_simplify</a></div><div class="ttdeci">CanonicalSimplifier canonical_simplify</div><div class="ttdoc">sub-analyzer canonical simplify</div><div class="ttdef"><b>Definition:</b> analyzer.h:650</div></div>
+<div class="ttc" id="aclasstvm_1_1arith_1_1Analyzer_html_a6cdf29adeceaa20b8c3dd7c26b92cd00"><div class="ttname"><a href="classtvm_1_1arith_1_1Analyzer.html#a6cdf29adeceaa20b8c3dd7c26b92cd00">tvm::arith::Analyzer::canonical_simplify</a></div><div class="ttdeci">CanonicalSimplifier canonical_simplify</div><div class="ttdoc">sub-analyzer canonical simplify</div><div class="ttdef"><b>Definition:</b> analyzer.h:648</div></div>
 <div class="ttc" id="aclasstvm_1_1arith_1_1Analyzer_html_a7d8be689aff9dab648ca21f210d6d9c2"><div class="ttname"><a href="classtvm_1_1arith_1_1Analyzer.html#a7d8be689aff9dab648ca21f210d6d9c2">tvm::arith::Analyzer::CanProve</a></div><div class="ttdeci">bool CanProve(const PrimExpr &amp;cond, ProofStrength strength=ProofStrength::kDefault)</div><div class="ttdoc">Whether can we prove condition.</div></div>
 <div class="ttc" id="aclasstvm_1_1arith_1_1Analyzer_html_a98d3fc802f7de0ea645cea47aa20c66f"><div class="ttname"><a href="classtvm_1_1arith_1_1Analyzer.html#a98d3fc802f7de0ea645cea47aa20c66f">tvm::arith::Analyzer::MarkGlobalNonNegValue</a></div><div class="ttdeci">void MarkGlobalNonNegValue(const PrimExpr &amp;value)</div><div class="ttdoc">Mark the value as non-negative value globally in analyzer.</div></div>
 <div class="ttc" id="aclasstvm_1_1arith_1_1Analyzer_html_a9b440f852f12ad0a4d8ed5ed97054425"><div class="ttname"><a href="classtvm_1_1arith_1_1Analyzer.html#a9b440f852f12ad0a4d8ed5ed97054425">tvm::arith::Analyzer::Simplify</a></div><div class="ttdeci">PrimExpr Simplify(const PrimExpr &amp;expr, int steps=2)</div><div class="ttdoc">Simplify expr.</div></div>
 <div class="ttc" id="aclasstvm_1_1arith_1_1Analyzer_html_a9dccc7d98b8b9465390e10436d3a9178"><div class="ttname"><a href="classtvm_1_1arith_1_1Analyzer.html#a9dccc7d98b8b9465390e10436d3a9178">tvm::arith::Analyzer::operator=</a></div><div class="ttdeci">Analyzer &amp; operator=(const Analyzer &amp;)=delete</div></div>
-<div class="ttc" id="aclasstvm_1_1arith_1_1Analyzer_html_acac92a9522deabe289fea99efbd9eaec"><div class="ttname"><a href="classtvm_1_1arith_1_1Analyzer.html#acac92a9522deabe289fea99efbd9eaec">tvm::arith::Analyzer::modular_set</a></div><div class="ttdeci">ModularSetAnalyzer modular_set</div><div class="ttdoc">sub-analyzer: modular set</div><div class="ttdef"><b>Definition:</b> analyzer.h:646</div></div>
-<div class="ttc" id="aclasstvm_1_1arith_1_1Analyzer_html_acc86c6e8c04cb0de4ff9d78e769924b2"><div class="ttname"><a href="classtvm_1_1arith_1_1Analyzer.html#acc86c6e8c04cb0de4ff9d78e769924b2">tvm::arith::Analyzer::rewrite_simplify</a></div><div class="ttdeci">RewriteSimplifier rewrite_simplify</div><div class="ttdoc">sub-analyzer rewrite simplify</div><div class="ttdef"><b>Definition:</b> analyzer.h:648</div></div>
+<div class="ttc" id="aclasstvm_1_1arith_1_1Analyzer_html_acac92a9522deabe289fea99efbd9eaec"><div class="ttname"><a href="classtvm_1_1arith_1_1Analyzer.html#acac92a9522deabe289fea99efbd9eaec">tvm::arith::Analyzer::modular_set</a></div><div class="ttdeci">ModularSetAnalyzer modular_set</div><div class="ttdoc">sub-analyzer: modular set</div><div class="ttdef"><b>Definition:</b> analyzer.h:644</div></div>
+<div class="ttc" id="aclasstvm_1_1arith_1_1Analyzer_html_acc86c6e8c04cb0de4ff9d78e769924b2"><div class="ttname"><a href="classtvm_1_1arith_1_1Analyzer.html#acc86c6e8c04cb0de4ff9d78e769924b2">tvm::arith::Analyzer::rewrite_simplify</a></div><div class="ttdeci">RewriteSimplifier rewrite_simplify</div><div class="ttdoc">sub-analyzer rewrite simplify</div><div class="ttdef"><b>Definition:</b> analyzer.h:646</div></div>
 <div class="ttc" id="aclasstvm_1_1arith_1_1Analyzer_html_adb7ace66382583595724d79cc1504638"><div class="ttname"><a href="classtvm_1_1arith_1_1Analyzer.html#adb7ace66382583595724d79cc1504638">tvm::arith::Analyzer::CanProveLess</a></div><div class="ttdeci">bool CanProveLess(const PrimExpr &amp;expr, int64_t upper_bound)</div><div class="ttdoc">Whether can we prove expr &lt; val.</div></div>
 <div class="ttc" id="aclasstvm_1_1arith_1_1Analyzer_html_ae8568eeee02c68849e468f8c19a2701d"><div class="ttname"><a href="classtvm_1_1arith_1_1Analyzer.html#ae8568eeee02c68849e468f8c19a2701d">tvm::arith::Analyzer::Analyzer</a></div><div class="ttdeci">Analyzer()</div><div class="ttdoc">constructor</div></div>
 <div class="ttc" id="aclasstvm_1_1arith_1_1Analyzer_html_af33491068003d13952289cd296ba63af"><div class="ttname"><a href="classtvm_1_1arith_1_1Analyzer.html#af33491068003d13952289cd296ba63af">tvm::arith::Analyzer::Analyzer</a></div><div class="ttdeci">Analyzer(const Analyzer &amp;)=delete</div></div>
-<div class="ttc" id="aclasstvm_1_1arith_1_1CanonicalSimplifier_html"><div class="ttname"><a href="classtvm_1_1arith_1_1CanonicalSimplifier.html">tvm::arith::CanonicalSimplifier</a></div><div class="ttdoc">Canonical-form based simplifier.</div><div class="ttdef"><b>Definition:</b> analyzer.h:420</div></div>
+<div class="ttc" id="aclasstvm_1_1arith_1_1CanonicalSimplifier_html"><div class="ttname"><a href="classtvm_1_1arith_1_1CanonicalSimplifier.html">tvm::arith::CanonicalSimplifier</a></div><div class="ttdoc">Canonical-form based simplifier.</div><div class="ttdef"><b>Definition:</b> analyzer.h:418</div></div>
 <div class="ttc" id="aclasstvm_1_1arith_1_1CanonicalSimplifier_html_a2ed4ed7990499ee188e69967afb511c6"><div class="ttname"><a href="classtvm_1_1arith_1_1CanonicalSimplifier.html#a2ed4ed7990499ee188e69967afb511c6">tvm::arith::CanonicalSimplifier::operator()</a></div><div class="ttdeci">PrimExpr operator()(const PrimExpr &amp;expr)</div><div class="ttdoc">analyze the expr</div></div>
 <div class="ttc" id="aclasstvm_1_1arith_1_1CanonicalSimplifier_html_a790c032e12c7d93e9e940297b860c509"><div class="ttname"><a href="classtvm_1_1arith_1_1CanonicalSimplifier.html#a790c032e12c7d93e9e940297b860c509">tvm::arith::CanonicalSimplifier::Update</a></div><div class="ttdeci">void Update(const Var &amp;var, const PrimExpr &amp;new_expr, bool allow_override=false)</div><div class="ttdoc">Update binding of var to a new expression.</div></div>
-<div class="ttc" id="aclasstvm_1_1arith_1_1ConstIntBoundAnalyzer_html"><div class="ttname"><a href="classtvm_1_1arith_1_1ConstIntBoundAnalyzer.html">tvm::arith::ConstIntBoundAnalyzer</a></div><div class="ttdoc">Analyzer to get constant integer bound over expression.</div><div class="ttdef"><b>Definition:</b> analyzer.h:131</div></div>
+<div class="ttc" id="aclasstvm_1_1arith_1_1ConstIntBoundAnalyzer_html"><div class="ttname"><a href="classtvm_1_1arith_1_1ConstIntBoundAnalyzer.html">tvm::arith::ConstIntBoundAnalyzer</a></div><div class="ttdoc">Analyzer to get constant integer bound over expression.</div><div class="ttdef"><b>Definition:</b> analyzer.h:130</div></div>
 <div class="ttc" id="aclasstvm_1_1arith_1_1ConstIntBoundAnalyzer_html_a0ec2252806be6e7abbba172b7d802e50"><div class="ttname"><a href="classtvm_1_1arith_1_1ConstIntBoundAnalyzer.html#a0ec2252806be6e7abbba172b7d802e50">tvm::arith::ConstIntBoundAnalyzer::IsBound</a></div><div class="ttdeci">bool IsBound(const Var &amp;var) const</div><div class="ttdoc">Check if a variable is bound to a range.</div></div>
-<div class="ttc" id="aclasstvm_1_1arith_1_1ConstIntBoundAnalyzer_html_a14736850005ba70395b09c2fb9113770"><div class="ttname"><a href="classtvm_1_1arith_1_1ConstIntBoundAnalyzer.html#a14736850005ba70395b09c2fb9113770">tvm::arith::ConstIntBoundAnalyzer::BoundMapType</a></div><div class="ttdeci">std::unordered_map&lt; PrimExpr, ConstIntBound, ObjectPtrHash, ObjectPtrEqual &gt; BoundMapType</div><div class="ttdef"><b>Definition:</b> analyzer.h:133</div></div>
+<div class="ttc" id="aclasstvm_1_1arith_1_1ConstIntBoundAnalyzer_html_a14736850005ba70395b09c2fb9113770"><div class="ttname"><a href="classtvm_1_1arith_1_1ConstIntBoundAnalyzer.html#a14736850005ba70395b09c2fb9113770">tvm::arith::ConstIntBoundAnalyzer::BoundMapType</a></div><div class="ttdeci">std::unordered_map&lt; PrimExpr, ConstIntBound, ObjectPtrHash, ObjectPtrEqual &gt; BoundMapType</div><div class="ttdef"><b>Definition:</b> analyzer.h:132</div></div>
 <div class="ttc" id="aclasstvm_1_1arith_1_1ConstIntBoundAnalyzer_html_a5ae0699196c4bbc754bbdd4c3a6c7ca7"><div class="ttname"><a href="classtvm_1_1arith_1_1ConstIntBoundAnalyzer.html#a5ae0699196c4bbc754bbdd4c3a6c7ca7">tvm::arith::ConstIntBoundAnalyzer::Update</a></div><div class="ttdeci">void Update(const Var &amp;var, const ConstIntBound &amp;info, bool allow_override=false)</div><div class="ttdoc">Update constant int bound information of var.</div></div>
 <div class="ttc" id="aclasstvm_1_1arith_1_1ConstIntBoundAnalyzer_html_a7107c1d182a3ac72336d83ab50d9d1c3"><div class="ttname"><a href="classtvm_1_1arith_1_1ConstIntBoundAnalyzer.html#a7107c1d182a3ac72336d83ab50d9d1c3">tvm::arith::ConstIntBoundAnalyzer::Bind</a></div><div class="ttdeci">void Bind(const Var &amp;var, const Range &amp;range, bool allow_override=false)</div><div class="ttdoc">Bind variable to a range.</div></div>
 <div class="ttc" id="aclasstvm_1_1arith_1_1ConstIntBoundAnalyzer_html_aa24f8d56b331e1b9c6ed315877c4e0a2"><div class="ttname"><a href="classtvm_1_1arith_1_1ConstIntBoundAnalyzer.html#aa24f8d56b331e1b9c6ed315877c4e0a2">tvm::arith::ConstIntBoundAnalyzer::operator()</a></div><div class="ttdeci">ConstIntBound operator()(const PrimExpr &amp;expr, BoundMapType *bound)</div><div class="ttdoc">analyze the expr with the intermediate memorized to avoid redundant computation</div></div>
 <div class="ttc" id="aclasstvm_1_1arith_1_1ConstIntBoundAnalyzer_html_add50f8cc72f7fbf50e456d31f045d24c"><div class="ttname"><a href="classtvm_1_1arith_1_1ConstIntBoundAnalyzer.html#add50f8cc72f7fbf50e456d31f045d24c">tvm::arith::ConstIntBoundAnalyzer::operator()</a></div><div class="ttdeci">ConstIntBound operator()(const PrimExpr &amp;expr) const</div><div class="ttdoc">analyze the expr</div></div>
 <div class="ttc" id="aclasstvm_1_1arith_1_1ConstIntBoundNode_html"><div class="ttname"><a href="classtvm_1_1arith_1_1ConstIntBoundNode.html">tvm::arith::ConstIntBoundNode</a></div><div class="ttdoc">Constant integer up and lower bound(inclusive). Useful for value bound analysis.</div><div class="ttdef"><b>Definition:</b> analyzer.h:85</div></div>
 <div class="ttc" id="aclasstvm_1_1arith_1_1ConstIntBoundNode_html_a0761897bf16ab73b848bf360e9b195a3"><div class="ttname"><a href="classtvm_1_1arith_1_1ConstIntBoundNode.html#a0761897bf16ab73b848bf360e9b195a3">tvm::arith::ConstIntBoundNode::min_value</a></div><div class="ttdeci">int64_t min_value</div><div class="ttdef"><b>Definition:</b> analyzer.h:87</div></div>
+<div class="ttc" id="aclasstvm_1_1arith_1_1ConstIntBoundNode_html_a3aff78da3ceeb7698c9505ba692ca25d"><div class="ttname"><a href="classtvm_1_1arith_1_1ConstIntBoundNode.html#a3aff78da3ceeb7698c9505ba692ca25d">tvm::arith::ConstIntBoundNode::TVM_FFI_DECLARE_OBJECT_INFO_FINAL</a></div><div class="ttdeci">TVM_FFI_DECLARE_OBJECT_INFO_FINAL(&quot;arith.ConstIntBound&quot;, ConstIntBoundNode, Object)</div></div>
 <div class="ttc" id="aclasstvm_1_1arith_1_1ConstIntBoundNode_html_a5082bc93cb9492d7bd04a019113aa07e"><div class="ttname"><a href="classtvm_1_1arith_1_1ConstIntBoundNode.html#a5082bc93cb9492d7bd04a019113aa07e">tvm::arith::ConstIntBoundNode::kNegInf</a></div><div class="ttdeci">static constexpr const int64_t kNegInf</div><div class="ttdoc">Number to represent -inf.</div><div class="ttdef"><b>Definition:</b> analyzer.h:103</div></div>
-<div class="ttc" id="aclasstvm_1_1arith_1_1ConstIntBoundNode_html_a652c9c965a3942f1ca45f7929ddd554c"><div class="ttname"><a href="classtvm_1_1arith_1_1ConstIntBoundNode.html#a652c9c965a3942f1ca45f7929ddd554c">tvm::arith::ConstIntBoundNode::_type_key</a></div><div class="ttdeci">static constexpr const char * _type_key</div><div class="ttdef"><b>Definition:</b> analyzer.h:106</div></div>
 <div class="ttc" id="aclasstvm_1_1arith_1_1ConstIntBoundNode_html_a7187224ffaf688dd1aa0f6069b393f92"><div class="ttname"><a href="classtvm_1_1arith_1_1ConstIntBoundNode.html#a7187224ffaf688dd1aa0f6069b393f92">tvm::arith::ConstIntBoundNode::max_value</a></div><div class="ttdeci">int64_t max_value</div><div class="ttdef"><b>Definition:</b> analyzer.h:88</div></div>
 <div class="ttc" id="aclasstvm_1_1arith_1_1ConstIntBoundNode_html_a752addf2fa5702290ea6b3cdfa8d7bf6"><div class="ttname"><a href="classtvm_1_1arith_1_1ConstIntBoundNode.html#a752addf2fa5702290ea6b3cdfa8d7bf6">tvm::arith::ConstIntBoundNode::_type_s_eq_hash_kind</a></div><div class="ttdeci">static constexpr TVMFFISEqHashKind _type_s_eq_hash_kind</div><div class="ttdef"><b>Definition:</b> analyzer.h:105</div></div>
-<div class="ttc" id="aclasstvm_1_1arith_1_1ConstIntBoundNode_html_a79d78aaf1f1c3e974a3fbe4f4875e8ee"><div class="ttname"><a href="classtvm_1_1arith_1_1ConstIntBoundNode.html#a79d78aaf1f1c3e974a3fbe4f4875e8ee">tvm::arith::ConstIntBoundNode::TVM_DECLARE_FINAL_OBJECT_INFO</a></div><div class="ttdeci">TVM_DECLARE_FINAL_OBJECT_INFO(ConstIntBoundNode, Object)</div></div>
 <div class="ttc" id="aclasstvm_1_1arith_1_1ConstIntBoundNode_html_ab1f0577fb4a6bda9c4375120b7085a62"><div class="ttname"><a href="classtvm_1_1arith_1_1ConstIntBoundNode.html#ab1f0577fb4a6bda9c4375120b7085a62">tvm::arith::ConstIntBoundNode::kPosInf</a></div><div class="ttdeci">static constexpr const int64_t kPosInf</div><div class="ttdoc">Number to represent +inf.</div><div class="ttdef"><b>Definition:</b> analyzer.h:98</div></div>
 <div class="ttc" id="aclasstvm_1_1arith_1_1ConstIntBoundNode_html_aca33f0ba1ee62694fc839b215cf6c50d"><div class="ttname"><a href="classtvm_1_1arith_1_1ConstIntBoundNode.html#aca33f0ba1ee62694fc839b215cf6c50d">tvm::arith::ConstIntBoundNode::RegisterReflection</a></div><div class="ttdeci">static void RegisterReflection()</div><div class="ttdef"><b>Definition:</b> analyzer.h:90</div></div>
-<div class="ttc" id="aclasstvm_1_1arith_1_1ConstIntBound_html"><div class="ttname"><a href="classtvm_1_1arith_1_1ConstIntBound.html">tvm::arith::ConstIntBound</a></div><div class="ttdoc">reference class to ConstIntBoundNode</div><div class="ttdef"><b>Definition:</b> analyzer.h:114</div></div>
-<div class="ttc" id="aclasstvm_1_1arith_1_1ConstIntBound_html_a2a26440158e4037dc8f82ba6ad0f296b"><div class="ttname"><a href="classtvm_1_1arith_1_1ConstIntBound.html#a2a26440158e4037dc8f82ba6ad0f296b">tvm::arith::ConstIntBound::TVM_DEFINE_OBJECT_REF_METHODS</a></div><div class="ttdeci">TVM_DEFINE_OBJECT_REF_METHODS(ConstIntBound, ObjectRef, ConstIntBoundNode)</div></div>
-<div class="ttc" id="aclasstvm_1_1arith_1_1ConstIntBound_html_ac2368aa444fafe5f030ac2674148c5fa"><div class="ttname"><a href="classtvm_1_1arith_1_1ConstIntBound.html#ac2368aa444fafe5f030ac2674148c5fa">tvm::arith::ConstIntBound::kNegInf</a></div><div class="ttdeci">static constexpr const int64_t kNegInf</div><div class="ttdef"><b>Definition:</b> analyzer.h:124</div></div>
+<div class="ttc" id="aclasstvm_1_1arith_1_1ConstIntBound_html"><div class="ttname"><a href="classtvm_1_1arith_1_1ConstIntBound.html">tvm::arith::ConstIntBound</a></div><div class="ttdoc">reference class to ConstIntBoundNode</div><div class="ttdef"><b>Definition:</b> analyzer.h:113</div></div>
+<div class="ttc" id="aclasstvm_1_1arith_1_1ConstIntBound_html_a6ab463a822b28c69214d81d444389bd5"><div class="ttname"><a href="classtvm_1_1arith_1_1ConstIntBound.html#a6ab463a822b28c69214d81d444389bd5">tvm::arith::ConstIntBound::TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE</a></div><div class="ttdeci">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE(ConstIntBound, ObjectRef, ConstIntBoundNode)</div></div>
+<div class="ttc" id="aclasstvm_1_1arith_1_1ConstIntBound_html_ac2368aa444fafe5f030ac2674148c5fa"><div class="ttname"><a href="classtvm_1_1arith_1_1ConstIntBound.html#ac2368aa444fafe5f030ac2674148c5fa">tvm::arith::ConstIntBound::kNegInf</a></div><div class="ttdeci">static constexpr const int64_t kNegInf</div><div class="ttdef"><b>Definition:</b> analyzer.h:123</div></div>
 <div class="ttc" id="aclasstvm_1_1arith_1_1ConstIntBound_html_aefb417203cf5c5996d7ed664051aaba3"><div class="ttname"><a href="classtvm_1_1arith_1_1ConstIntBound.html#aefb417203cf5c5996d7ed664051aaba3">tvm::arith::ConstIntBound::ConstIntBound</a></div><div class="ttdeci">ConstIntBound(int64_t min_value, int64_t max_value)</div><div class="ttdoc">constructor by fields.</div></div>
-<div class="ttc" id="aclasstvm_1_1arith_1_1ConstIntBound_html_af2dbef4ddb3a0895bab046d18ff85ab8"><div class="ttname"><a href="classtvm_1_1arith_1_1ConstIntBound.html#af2dbef4ddb3a0895bab046d18ff85ab8">tvm::arith::ConstIntBound::kPosInf</a></div><div class="ttdeci">static constexpr const int64_t kPosInf</div><div class="ttdef"><b>Definition:</b> analyzer.h:123</div></div>
-<div class="ttc" id="aclasstvm_1_1arith_1_1ConstraintContext_html"><div class="ttname"><a href="classtvm_1_1arith_1_1ConstraintContext.html">tvm::arith::ConstraintContext</a></div><div class="ttdoc">Constraint context.</div><div class="ttdef"><b>Definition:</b> analyzer.h:549</div></div>
-<div class="ttc" id="aclasstvm_1_1arith_1_1IntSetAnalyzer_html"><div class="ttname"><a href="classtvm_1_1arith_1_1IntSetAnalyzer.html">tvm::arith::IntSetAnalyzer</a></div><div class="ttdoc">Integer set analyzer.</div><div class="ttdef"><b>Definition:</b> analyzer.h:575</div></div>
+<div class="ttc" id="aclasstvm_1_1arith_1_1ConstIntBound_html_af2dbef4ddb3a0895bab046d18ff85ab8"><div class="ttname"><a href="classtvm_1_1arith_1_1ConstIntBound.html#af2dbef4ddb3a0895bab046d18ff85ab8">tvm::arith::ConstIntBound::kPosInf</a></div><div class="ttdeci">static constexpr const int64_t kPosInf</div><div class="ttdef"><b>Definition:</b> analyzer.h:122</div></div>
+<div class="ttc" id="aclasstvm_1_1arith_1_1ConstraintContext_html"><div class="ttname"><a href="classtvm_1_1arith_1_1ConstraintContext.html">tvm::arith::ConstraintContext</a></div><div class="ttdoc">Constraint context.</div><div class="ttdef"><b>Definition:</b> analyzer.h:547</div></div>
+<div class="ttc" id="aclasstvm_1_1arith_1_1IntSetAnalyzer_html"><div class="ttname"><a href="classtvm_1_1arith_1_1IntSetAnalyzer.html">tvm::arith::IntSetAnalyzer</a></div><div class="ttdoc">Integer set analyzer.</div><div class="ttdef"><b>Definition:</b> analyzer.h:573</div></div>
 <div class="ttc" id="aclasstvm_1_1arith_1_1IntSetAnalyzer_html_a096433dd7bde50f73eed4854af8b6111"><div class="ttname"><a href="classtvm_1_1arith_1_1IntSetAnalyzer.html#a096433dd7bde50f73eed4854af8b6111">tvm::arith::IntSetAnalyzer::EnterConstraint</a></div><div class="ttdeci">std::function&lt; void()&gt; EnterConstraint(const PrimExpr &amp;constraint)</div></div>
 <div class="ttc" id="aclasstvm_1_1arith_1_1IntSetAnalyzer_html_a9a201c941931807b4b88eedc4f8c03f4"><div class="ttname"><a href="classtvm_1_1arith_1_1IntSetAnalyzer.html#a9a201c941931807b4b88eedc4f8c03f4">tvm::arith::IntSetAnalyzer::Update</a></div><div class="ttdeci">void Update(const Var &amp;var, const IntSet &amp;new_interval_set, bool allow_override=false)</div><div class="ttdoc">Update binding of var to a new expression.</div></div>
 <div class="ttc" id="aclasstvm_1_1arith_1_1IntSetAnalyzer_html_ab0ded402c93fc89cba57015b6f3f4d8d"><div class="ttname"><a href="classtvm_1_1arith_1_1IntSetAnalyzer.html#ab0ded402c93fc89cba57015b6f3f4d8d">tvm::arith::IntSetAnalyzer::Bind</a></div><div class="ttdeci">void Bind(const Var &amp;var, const Range &amp;new_range, bool allow_override=false)</div><div class="ttdoc">Update binding of var to a new expression.</div></div>
 <div class="ttc" id="aclasstvm_1_1arith_1_1IntSetAnalyzer_html_ab84b89220625f2b2bc7c69c860e42155"><div class="ttname"><a href="classtvm_1_1arith_1_1IntSetAnalyzer.html#ab84b89220625f2b2bc7c69c860e42155">tvm::arith::IntSetAnalyzer::operator()</a></div><div class="ttdeci">IntSet operator()(const PrimExpr &amp;expr, const ffi::Map&lt; Var, IntSet &gt; &amp;dom_map)</div><div class="ttdoc">Find a symbolic integer set that contains all possible values of expr given the domain of each variab.. [...]
 <div class="ttc" id="aclasstvm_1_1arith_1_1IntSetAnalyzer_html_af4274caf7f5a6af64fbafc2f2465f591"><div class="ttname"><a href="classtvm_1_1arith_1_1IntSetAnalyzer.html#af4274caf7f5a6af64fbafc2f2465f591">tvm::arith::IntSetAnalyzer::operator()</a></div><div class="ttdeci">IntSet operator()(const PrimExpr &amp;expr)</div><div class="ttdoc">Find a symbolic integer set that contains all possible values of expr given the domain of each variab...</div></div>
-<div class="ttc" id="aclasstvm_1_1arith_1_1IntSet_html"><div class="ttname"><a href="classtvm_1_1arith_1_1IntSet.html">tvm::arith::IntSet</a></div><div class="ttdoc">Managed reference to IntSetNode.</div><div class="ttdef"><b>Definition:</b> int_set.h:68</div></div>
-<div class="ttc" id="aclasstvm_1_1arith_1_1ModularSetAnalyzer_html"><div class="ttname"><a href="classtvm_1_1arith_1_1ModularSetAnalyzer.html">tvm::arith::ModularSetAnalyzer</a></div><div class="ttdoc">Analyzer to get modular information over expression.</div><div class="ttdef"><b>Definition:</b> analyzer.h:237</div></div>
+<div class="ttc" id="aclasstvm_1_1arith_1_1IntSet_html"><div class="ttname"><a href="classtvm_1_1arith_1_1IntSet.html">tvm::arith::IntSet</a></div><div class="ttdoc">Managed reference to IntSetNode.</div><div class="ttdef"><b>Definition:</b> int_set.h:66</div></div>
+<div class="ttc" id="aclasstvm_1_1arith_1_1ModularSetAnalyzer_html"><div class="ttname"><a href="classtvm_1_1arith_1_1ModularSetAnalyzer.html">tvm::arith::ModularSetAnalyzer</a></div><div class="ttdoc">Analyzer to get modular information over expression.</div><div class="ttdef"><b>Definition:</b> analyzer.h:235</div></div>
 <div class="ttc" id="aclasstvm_1_1arith_1_1ModularSetAnalyzer_html_a04156fac580981f3005af3b8e676720d"><div class="ttname"><a href="classtvm_1_1arith_1_1ModularSetAnalyzer.html#a04156fac580981f3005af3b8e676720d">tvm::arith::ModularSetAnalyzer::Update</a></div><div class="ttdeci">void Update(const Var &amp;var, const ModularSet &amp;info, bool allow_override=false)</div><div class="ttdoc">Update constant int bound information of var.</div></div>
 <div class="ttc" id="aclasstvm_1_1arith_1_1ModularSetAnalyzer_html_a57c3c62ebc821f5f01bc2b43f06488da"><div class="ttname"><a href="classtvm_1_1arith_1_1ModularSetAnalyzer.html#a57c3c62ebc821f5f01bc2b43f06488da">tvm::arith::ModularSetAnalyzer::operator()</a></div><div class="ttdeci">ModularSet operator()(const PrimExpr &amp;expr)</div><div class="ttdoc">analyze the expr</div></div>
-<div class="ttc" id="aclasstvm_1_1arith_1_1ModularSetNode_html"><div class="ttname"><a href="classtvm_1_1arith_1_1ModularSetNode.html">tvm::arith::ModularSetNode</a></div><div class="ttdoc">Range of a linear integer function. Use to do specify the possible index values.</div><div class="ttdef"><b>Definition:</b> analyzer.h:204</div></div>
-<div class="ttc" id="aclasstvm_1_1arith_1_1ModularSetNode_html_a0531d08d8529454c726a9a20a2002ee6"><div class="ttname"><a href="classtvm_1_1arith_1_1ModularSetNode.html#a0531d08d8529454c726a9a20a2002ee6">tvm::arith::ModularSetNode::coeff</a></div><div class="ttdeci">int64_t coeff</div><div class="ttdoc">linear co-efficient</div><div class="ttdef"><b>Definition:</b> analyzer.h:207</div></div>
-<div class="ttc" id="aclasstvm_1_1arith_1_1ModularSetNode_html_a680e547835e5062f0c88e0f982bcc805"><div class="ttname"><a href="classtvm_1_1arith_1_1ModularSetNode.html#a680e547835e5062f0c88e0f982bcc805">tvm::arith::ModularSetNode::RegisterReflection</a></div><div class="ttdeci">static void RegisterReflection()</div><div class="ttdef"><b>Definition:</b> analyzer.h:211</div></div>
-<div class="ttc" id="aclasstvm_1_1arith_1_1ModularSetNode_html_aabf5ea254b6e5252f95aadbe35f6e889"><div class="ttname"><a href="classtvm_1_1arith_1_1ModularSetNode.html#aabf5ea254b6e5252f95aadbe35f6e889">tvm::arith::ModularSetNode::_type_key</a></div><div class="ttdeci">static constexpr const char * _type_key</div><div class="ttdef"><b>Definition:</b> analyzer.h:219</div></div>
-<div class="ttc" id="aclasstvm_1_1arith_1_1ModularSetNode_html_aaf398fe14003c53e0452dfde19fd1404"><div class="ttname"><a href="classtvm_1_1arith_1_1ModularSetNode.html#aaf398fe14003c53e0452dfde19fd1404">tvm::arith::ModularSetNode::TVM_DECLARE_FINAL_OBJECT_INFO</a></div><div class="ttdeci">TVM_DECLARE_FINAL_OBJECT_INFO(ModularSetNode, Object)</div></div>
-<div class="ttc" id="aclasstvm_1_1arith_1_1ModularSetNode_html_ac08e3992efa956f31feaf12cd360b578"><div class="ttname"><a href="classtvm_1_1arith_1_1ModularSetNode.html#ac08e3992efa956f31feaf12cd360b578">tvm::arith::ModularSetNode::_type_s_eq_hash_kind</a></div><div class="ttdeci">static constexpr TVMFFISEqHashKind _type_s_eq_hash_kind</div><div class="ttdef"><b>Definition:</b> analyzer.h:218</div></div>
-<div class="ttc" id="aclasstvm_1_1arith_1_1ModularSetNode_html_afe63e5586712774be5935e86121431ad"><div class="ttname"><a href="classtvm_1_1arith_1_1ModularSetNode.html#afe63e5586712774be5935e86121431ad">tvm::arith::ModularSetNode::base</a></div><div class="ttdeci">int64_t base</div><div class="ttdoc">The base.</div><div class="ttdef"><b>Definition:</b> analyzer.h:209</div></div>
-<div class="ttc" id="aclasstvm_1_1arith_1_1ModularSet_html"><div class="ttname"><a href="classtvm_1_1arith_1_1ModularSet.html">tvm::arith::ModularSet</a></div><div class="ttdoc">reference of ModularSetNode</div><div class="ttdef"><b>Definition:</b> analyzer.h:227</div></div>
-<div class="ttc" id="aclasstvm_1_1arith_1_1ModularSet_html_a3504121777581328517ee8f2e8ed18bf"><div class="ttname"><a href="classtvm_1_1arith_1_1ModularSet.html#a3504121777581328517ee8f2e8ed18bf">tvm::arith::ModularSet::TVM_DEFINE_OBJECT_REF_METHODS</a></div><div class="ttdeci">TVM_DEFINE_OBJECT_REF_METHODS(ModularSet, ObjectRef, ModularSetNode)</div></div>
+<div class="ttc" id="aclasstvm_1_1arith_1_1ModularSetNode_html"><div class="ttname"><a href="classtvm_1_1arith_1_1ModularSetNode.html">tvm::arith::ModularSetNode</a></div><div class="ttdoc">Range of a linear integer function. Use to do specify the possible index values.</div><div class="ttdef"><b>Definition:</b> analyzer.h:203</div></div>
+<div class="ttc" id="aclasstvm_1_1arith_1_1ModularSetNode_html_a0531d08d8529454c726a9a20a2002ee6"><div class="ttname"><a href="classtvm_1_1arith_1_1ModularSetNode.html#a0531d08d8529454c726a9a20a2002ee6">tvm::arith::ModularSetNode::coeff</a></div><div class="ttdeci">int64_t coeff</div><div class="ttdoc">linear co-efficient</div><div class="ttdef"><b>Definition:</b> analyzer.h:206</div></div>
+<div class="ttc" id="aclasstvm_1_1arith_1_1ModularSetNode_html_a680e547835e5062f0c88e0f982bcc805"><div class="ttname"><a href="classtvm_1_1arith_1_1ModularSetNode.html#a680e547835e5062f0c88e0f982bcc805">tvm::arith::ModularSetNode::RegisterReflection</a></div><div class="ttdeci">static void RegisterReflection()</div><div class="ttdef"><b>Definition:</b> analyzer.h:210</div></div>
+<div class="ttc" id="aclasstvm_1_1arith_1_1ModularSetNode_html_ac08e3992efa956f31feaf12cd360b578"><div class="ttname"><a href="classtvm_1_1arith_1_1ModularSetNode.html#ac08e3992efa956f31feaf12cd360b578">tvm::arith::ModularSetNode::_type_s_eq_hash_kind</a></div><div class="ttdeci">static constexpr TVMFFISEqHashKind _type_s_eq_hash_kind</div><div class="ttdef"><b>Definition:</b> analyzer.h:217</div></div>
+<div class="ttc" id="aclasstvm_1_1arith_1_1ModularSetNode_html_acd82a1ef8c6c733378c22f16c0bf4d32"><div class="ttname"><a href="classtvm_1_1arith_1_1ModularSetNode.html#acd82a1ef8c6c733378c22f16c0bf4d32">tvm::arith::ModularSetNode::TVM_FFI_DECLARE_OBJECT_INFO_FINAL</a></div><div class="ttdeci">TVM_FFI_DECLARE_OBJECT_INFO_FINAL(&quot;arith.ModularSet&quot;, ModularSetNode, Object)</div></div>
+<div class="ttc" id="aclasstvm_1_1arith_1_1ModularSetNode_html_afe63e5586712774be5935e86121431ad"><div class="ttname"><a href="classtvm_1_1arith_1_1ModularSetNode.html#afe63e5586712774be5935e86121431ad">tvm::arith::ModularSetNode::base</a></div><div class="ttdeci">int64_t base</div><div class="ttdoc">The base.</div><div class="ttdef"><b>Definition:</b> analyzer.h:208</div></div>
+<div class="ttc" id="aclasstvm_1_1arith_1_1ModularSet_html"><div class="ttname"><a href="classtvm_1_1arith_1_1ModularSet.html">tvm::arith::ModularSet</a></div><div class="ttdoc">reference of ModularSetNode</div><div class="ttdef"><b>Definition:</b> analyzer.h:225</div></div>
+<div class="ttc" id="aclasstvm_1_1arith_1_1ModularSet_html_a53847fcf3196d6ff83967ba0360861ea"><div class="ttname"><a href="classtvm_1_1arith_1_1ModularSet.html#a53847fcf3196d6ff83967ba0360861ea">tvm::arith::ModularSet::TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE</a></div><div class="ttdeci">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE(ModularSet, ObjectRef, ModularSetNode)</div></div>
 <div class="ttc" id="aclasstvm_1_1arith_1_1ModularSet_html_a9f54896d98169246c6a24cc338fde500"><div class="ttname"><a href="classtvm_1_1arith_1_1ModularSet.html#a9f54896d98169246c6a24cc338fde500">tvm::arith::ModularSet::ModularSet</a></div><div class="ttdeci">ModularSet(int64_t coeff, int64_t base)</div></div>
-<div class="ttc" id="aclasstvm_1_1arith_1_1RewriteSimplifier_html"><div class="ttname"><a href="classtvm_1_1arith_1_1RewriteSimplifier.html">tvm::arith::RewriteSimplifier</a></div><div class="ttdoc">Rewrite-rule based simplifier.</div><div class="ttdef"><b>Definition:</b> analyzer.h:275</div></div>
+<div class="ttc" id="aclasstvm_1_1arith_1_1RewriteSimplifier_html"><div class="ttname"><a href="classtvm_1_1arith_1_1RewriteSimplifier.html">tvm::arith::RewriteSimplifier</a></div><div class="ttdoc">Rewrite-rule based simplifier.</div><div class="ttdef"><b>Definition:</b> analyzer.h:273</div></div>
 <div class="ttc" id="aclasstvm_1_1arith_1_1RewriteSimplifier_html_a01dda385f4e0bb0e1155c76c2d28cb96"><div class="ttname"><a href="classtvm_1_1arith_1_1RewriteSimplifier.html#a01dda385f4e0bb0e1155c76c2d28cb96">tvm::arith::RewriteSimplifier::EnterConstraint</a></div><div class="ttdeci">std::function&lt; void()&gt; EnterConstraint(const PrimExpr &amp;constraint)</div><div class="ttdoc">Update the internal state to enter constraint.</div></div>
 <div class="ttc" id="aclasstvm_1_1arith_1_1RewriteSimplifier_html_a2066e6d9a5b71d482c73542d0ca8c7a3"><div class="ttname"><a href="classtvm_1_1arith_1_1RewriteSimplifier.html#a2066e6d9a5b71d482c73542d0ca8c7a3">tvm::arith::RewriteSimplifier::GetEnabledExtensions</a></div><div class="ttdeci">Extension GetEnabledExtensions() const</div><div class="ttdoc">Return the currently enabled extensions.</div></div>
 <div class="ttc" id="aclasstvm_1_1arith_1_1RewriteSimplifier_html_a44b7c12d6a5d9adfc4ee4cee8d935e38"><div class="ttname"><a href="classtvm_1_1arith_1_1RewriteSimplifier.html#a44b7c12d6a5d9adfc4ee4cee8d935e38">tvm::arith::RewriteSimplifier::SetEnabledExtensions</a></div><div class="ttdeci">void SetEnabledExtensions(Extension flags)</div><div class="ttdoc">Enable an optional extension or extensions.</div></div>
 <div class="ttc" id="aclasstvm_1_1arith_1_1RewriteSimplifier_html_a5cbec380389ea7ccaa753d35d7a2dee9"><div class="ttname"><a href="classtvm_1_1arith_1_1RewriteSimplifier.html#a5cbec380389ea7ccaa753d35d7a2dee9">tvm::arith::RewriteSimplifier::GetStatsCounters</a></div><div class="ttdeci">ObjectRef GetStatsCounters() const</div><div class="ttdoc">Return the statistics counters.</div></div>
 <div class="ttc" id="aclasstvm_1_1arith_1_1RewriteSimplifier_html_a5e6752c0702dc2d3e4235797d9d3ac7b"><div class="ttname"><a href="classtvm_1_1arith_1_1RewriteSimplifier.html#a5e6752c0702dc2d3e4235797d9d3ac7b">tvm::arith::RewriteSimplifier::Update</a></div><div class="ttdeci">void Update(const Var &amp;var, const PrimExpr &amp;new_expr, bool allow_override=false)</div><div class="ttdoc">Update binding of var to a new expression.</div></div>
-<div class="ttc" id="aclasstvm_1_1arith_1_1RewriteSimplifier_html_a6705af5099418b968ded40d79102ad4e"><div class="ttname"><a href="classtvm_1_1arith_1_1RewriteSimplifier.html#a6705af5099418b968ded40d79102ad4e">tvm::arith::RewriteSimplifier::Extension</a></div><div class="ttdeci">Extension</div><div class="ttdoc">Flags to enable more computationally-intensive simplifications.</div><div class="ttdef"><b>Definition:</b> analyzer.h:313</div></div>
-<div class="ttc" id="aclasstvm_1_1arith_1_1RewriteSimplifier_html_a6705af5099418b968ded40d79102ad4ea237e1cb407cd81dfc9608651eee87b3b"><div class="ttname"><a href="classtvm_1_1arith_1_1RewriteSimplifier.html#a6705af5099418b968ded40d79102ad4ea237e1cb407cd81dfc9608651eee87b3b">tvm::arith::RewriteSimplifier::kNone</a></div><div class="ttdeci">@ kNone</div><div class="ttdef"><b>Definition:</b> analyzer.h:315</div></div>
-<div class="ttc" id="aclasstvm_1_1arith_1_1RewriteSimplifier_html_a6705af5099418b968ded40d79102ad4ea254331b07f4bdf970d7f28f480da637b"><div class="ttname"><a href="classtvm_1_1arith_1_1RewriteSimplifier.html#a6705af5099418b968ded40d79102ad4ea254331b07f4bdf970d7f28f480da637b">tvm::arith::RewriteSimplifier::kApplyConstraintsToBooleanBranches</a></div><div class="ttdeci">@ kApplyConstraintsToBooleanBranches</div><div class="ttdef"><b>Definition:</b> analyzer.h:343</div></div>
-<div class="ttc" id="aclasstvm_1_1arith_1_1RewriteSimplifier_html_a6705af5099418b968ded40d79102ad4ea775c43159049079d4a71cd788f4d1568"><div class="ttname"><a href="classtvm_1_1arith_1_1RewriteSimplifier.html#a6705af5099418b968ded40d79102ad4ea775c43159049079d4a71cd788f4d1568">tvm::arith::RewriteSimplifier::kTransitivelyProveInequalities</a></div><div class="ttdeci">@ kTransitivelyProveInequalities</div><div class="ttdef"><b>Definition:</b> analyzer.h:322</div></div>
-<div class="ttc" id="aclasstvm_1_1arith_1_1RewriteSimplifier_html_a6705af5099418b968ded40d79102ad4eaf2a72591e015241f111c915110ad0b23"><div class="ttname"><a href="classtvm_1_1arith_1_1RewriteSimplifier.html#a6705af5099418b968ded40d79102ad4eaf2a72591e015241f111c915110ad0b23">tvm::arith::RewriteSimplifier::kComparisonOfProductAndSum</a></div><div class="ttdeci">@ kComparisonOfProductAndSum</div><div class="ttdef"><b>Definition:</b> analyzer.h:372</div></div>
-<div class="ttc" id="aclasstvm_1_1arith_1_1RewriteSimplifier_html_a6705af5099418b968ded40d79102ad4eafd77a96599dad627a7c1d88292aa578e"><div class="ttname"><a href="classtvm_1_1arith_1_1RewriteSimplifier.html#a6705af5099418b968ded40d79102ad4eafd77a96599dad627a7c1d88292aa578e">tvm::arith::RewriteSimplifier::kConvertBooleanToAndOfOrs</a></div><div class="ttdeci">@ kConvertBooleanToAndOfOrs</div><div class="ttdef"><b>Definition:</b> analyzer.h:330</div></div>
+<div class="ttc" id="aclasstvm_1_1arith_1_1RewriteSimplifier_html_a6705af5099418b968ded40d79102ad4e"><div class="ttname"><a href="classtvm_1_1arith_1_1RewriteSimplifier.html#a6705af5099418b968ded40d79102ad4e">tvm::arith::RewriteSimplifier::Extension</a></div><div class="ttdeci">Extension</div><div class="ttdoc">Flags to enable more computationally-intensive simplifications.</div><div class="ttdef"><b>Definition:</b> analyzer.h:311</div></div>
+<div class="ttc" id="aclasstvm_1_1arith_1_1RewriteSimplifier_html_a6705af5099418b968ded40d79102ad4ea237e1cb407cd81dfc9608651eee87b3b"><div class="ttname"><a href="classtvm_1_1arith_1_1RewriteSimplifier.html#a6705af5099418b968ded40d79102ad4ea237e1cb407cd81dfc9608651eee87b3b">tvm::arith::RewriteSimplifier::kNone</a></div><div class="ttdeci">@ kNone</div><div class="ttdef"><b>Definition:</b> analyzer.h:313</div></div>
+<div class="ttc" id="aclasstvm_1_1arith_1_1RewriteSimplifier_html_a6705af5099418b968ded40d79102ad4ea254331b07f4bdf970d7f28f480da637b"><div class="ttname"><a href="classtvm_1_1arith_1_1RewriteSimplifier.html#a6705af5099418b968ded40d79102ad4ea254331b07f4bdf970d7f28f480da637b">tvm::arith::RewriteSimplifier::kApplyConstraintsToBooleanBranches</a></div><div class="ttdeci">@ kApplyConstraintsToBooleanBranches</div><div class="ttdef"><b>Definition:</b> analyzer.h:341</div></div>
+<div class="ttc" id="aclasstvm_1_1arith_1_1RewriteSimplifier_html_a6705af5099418b968ded40d79102ad4ea775c43159049079d4a71cd788f4d1568"><div class="ttname"><a href="classtvm_1_1arith_1_1RewriteSimplifier.html#a6705af5099418b968ded40d79102ad4ea775c43159049079d4a71cd788f4d1568">tvm::arith::RewriteSimplifier::kTransitivelyProveInequalities</a></div><div class="ttdeci">@ kTransitivelyProveInequalities</div><div class="ttdef"><b>Definition:</b> analyzer.h:320</div></div>
+<div class="ttc" id="aclasstvm_1_1arith_1_1RewriteSimplifier_html_a6705af5099418b968ded40d79102ad4eaf2a72591e015241f111c915110ad0b23"><div class="ttname"><a href="classtvm_1_1arith_1_1RewriteSimplifier.html#a6705af5099418b968ded40d79102ad4eaf2a72591e015241f111c915110ad0b23">tvm::arith::RewriteSimplifier::kComparisonOfProductAndSum</a></div><div class="ttdeci">@ kComparisonOfProductAndSum</div><div class="ttdef"><b>Definition:</b> analyzer.h:370</div></div>
+<div class="ttc" id="aclasstvm_1_1arith_1_1RewriteSimplifier_html_a6705af5099418b968ded40d79102ad4eafd77a96599dad627a7c1d88292aa578e"><div class="ttname"><a href="classtvm_1_1arith_1_1RewriteSimplifier.html#a6705af5099418b968ded40d79102ad4eafd77a96599dad627a7c1d88292aa578e">tvm::arith::RewriteSimplifier::kConvertBooleanToAndOfOrs</a></div><div class="ttdeci">@ kConvertBooleanToAndOfOrs</div><div class="ttdef"><b>Definition:</b> analyzer.h:328</div></div>
 <div class="ttc" id="aclasstvm_1_1arith_1_1RewriteSimplifier_html_a95dd28018de6b7aa1a5a7ee76f3ba178"><div class="ttname"><a href="classtvm_1_1arith_1_1RewriteSimplifier.html#a95dd28018de6b7aa1a5a7ee76f3ba178">tvm::arith::RewriteSimplifier::SetMaximumRewriteSteps</a></div><div class="ttdeci">void SetMaximumRewriteSteps(int64_t maximum)</div><div class="ttdoc">Set the maximum allowed number of rewrite steps.</div></div>
 <div class="ttc" id="aclasstvm_1_1arith_1_1RewriteSimplifier_html_aef5b3e9793a5b459c9f457efef179e4f"><div class="ttname"><a href="classtvm_1_1arith_1_1RewriteSimplifier.html#aef5b3e9793a5b459c9f457efef179e4f">tvm::arith::RewriteSimplifier::ResetStatsCounters</a></div><div class="ttdeci">void ResetStatsCounters()</div><div class="ttdoc">Reset the statistics counters.</div></div>
 <div class="ttc" id="aclasstvm_1_1arith_1_1RewriteSimplifier_html_af91d307afc0c857751171a68d6d2b043"><div class="ttname"><a href="classtvm_1_1arith_1_1RewriteSimplifier.html#af91d307afc0c857751171a68d6d2b043">tvm::arith::RewriteSimplifier::operator()</a></div><div class="ttdeci">PrimExpr operator()(const PrimExpr &amp;expr)</div><div class="ttdoc">analyze the expr</div></div>
-<div class="ttc" id="aclasstvm_1_1arith_1_1TransitiveComparisonAnalyzer_html"><div class="ttname"><a href="classtvm_1_1arith_1_1TransitiveComparisonAnalyzer.html">tvm::arith::TransitiveComparisonAnalyzer</a></div><div class="ttdoc">Using previously specified knowns, compare the expressions provided.</div><div class="ttdef"><b>Definition:</b> analyzer.h:477</div></div>
+<div class="ttc" id="aclasstvm_1_1arith_1_1TransitiveComparisonAnalyzer_html"><div class="ttname"><a href="classtvm_1_1arith_1_1TransitiveComparisonAnalyzer.html">tvm::arith::TransitiveComparisonAnalyzer</a></div><div class="ttdoc">Using previously specified knowns, compare the expressions provided.</div><div class="ttdef"><b>Definition:</b> analyzer.h:475</div></div>
 <div class="ttc" id="aclasstvm_1_1arith_1_1TransitiveComparisonAnalyzer_html_a1a57e873676402922a7af5b8e1991f00"><div class="ttname"><a href="classtvm_1_1arith_1_1TransitiveComparisonAnalyzer.html#a1a57e873676402922a7af5b8e1991f00">tvm::arith::TransitiveComparisonAnalyzer::Bind</a></div><div class="ttdeci">void Bind(const Var &amp;var, const Range &amp;range, bool allow_override=false)</div><div class="ttdoc">Bind a variable as being within a specified range.</div></div>
 <div class="ttc" id="aclasstvm_1_1arith_1_1TransitiveComparisonAnalyzer_html_ab0c67cf201be8b57460cc155e5ff352a"><div class="ttname"><a href="classtvm_1_1arith_1_1TransitiveComparisonAnalyzer.html#ab0c67cf201be8b57460cc155e5ff352a">tvm::arith::TransitiveComparisonAnalyzer::EnterConstraint</a></div><div class="ttdeci">std::function&lt; void()&gt; EnterConstraint(const PrimExpr &amp;constraint)</div><div class="ttdoc">Update the internal state to enter constraint.</div></div>
 <div class="ttc" id="aclasstvm_1_1arith_1_1TransitiveComparisonAnalyzer_html_ab397bc32c73753205e70d63b71738779"><div class="ttname"><a href="classtvm_1_1arith_1_1TransitiveComparisonAnalyzer.html#ab397bc32c73753205e70d63b71738779">tvm::arith::TransitiveComparisonAnalyzer::Bind</a></div><div class="ttdeci">void Bind(const Var &amp;var, const PrimExpr &amp;expr, bool allow_override=false)</div><div class="ttdoc">Bind a variable as being equal to a known expression.</div></div>
 <div class="ttc" id="aclasstvm_1_1arith_1_1TransitiveComparisonAnalyzer_html_ad00ac744402de84c7c3d6f2f46a6f7c7"><div class="ttname"><a href="classtvm_1_1arith_1_1TransitiveComparisonAnalyzer.html#ad00ac744402de84c7c3d6f2f46a6f7c7">tvm::arith::TransitiveComparisonAnalyzer::TryCompare</a></div><div class="ttdeci">CompareResult TryCompare(const PrimExpr &amp;lhs, const PrimExpr &amp;rhs, bool propagate_inequalities=true)</div></div>
-<div class="ttc" id="aclasstvm_1_1tir_1_1Var_html"><div class="ttname"><a href="classtvm_1_1tir_1_1Var.html">tvm::tir::Var</a></div><div class="ttdoc">a named variable in TIR</div><div class="ttdef"><b>Definition:</b> var.h:78</div></div>
+<div class="ttc" id="aclasstvm_1_1tir_1_1Var_html"><div class="ttname"><a href="classtvm_1_1tir_1_1Var.html">tvm::tir::Var</a></div><div class="ttdoc">a named variable in TIR</div><div class="ttdef"><b>Definition:</b> var.h:77</div></div>
 <div class="ttc" id="aint__set_8h_html"><div class="ttname"><a href="int__set_8h.html">int_set.h</a></div><div class="ttdoc">Integer set.</div></div>
 <div class="ttc" id="air_2expr_8h_html"><div class="ttname"><a href="ir_2expr_8h.html">expr.h</a></div><div class="ttdoc">Base expr nodes in TVM.</div></div>
 <div class="ttc" id="anamespacetvm_1_1arith_html_a038b0205b1c66d27c9dff7703e359339"><div class="ttname"><a href="namespacetvm_1_1arith.html#a038b0205b1c66d27c9dff7703e359339">tvm::arith::ProofStrength</a></div><div class="ttdeci">ProofStrength</div><div class="ttdoc">The strength used in top-level condition proves.</div><div class="ttdef"><b>Definition:</b> analyzer.h:70</div></div>
 <div class="ttc" id="anamespacetvm_1_1arith_html_a038b0205b1c66d27c9dff7703e359339a3f67e3bf6c5ae9efc290f80011f65b80"><div class="ttname"><a href="namespacetvm_1_1arith.html#a038b0205b1c66d27c9dff7703e359339a3f67e3bf6c5ae9efc290f80011f65b80">tvm::arith::ProofStrength::kSymbolicBound</a></div><div class="ttdeci">@ kSymbolicBound</div><div class="ttdoc">Prove using symbolic bound analysis.</div></div>
 <div class="ttc" id="anamespacetvm_1_1arith_html_a038b0205b1c66d27c9dff7703e359339a6867faeaa475fda467e48267db2bb8a8"><div class="ttname"><a href="namespacetvm_1_1arith.html#a038b0205b1c66d27c9dff7703e359339a6867faeaa475fda467e48267db2bb8a8">tvm::arith::ProofStrength::kDefault</a></div><div class="ttdeci">@ kDefault</div><div class="ttdoc">default strength, can be used in.</div></div>
-<div class="ttc" id="anamespacetvm_1_1arith_html_a1d555a0cc363f669a49fad7e5f7d69d0"><div class="ttname"><a href="namespacetvm_1_1arith.html#a1d555a0cc363f669a49fad7e5f7d69d0">tvm::arith::CompareResult</a></div><div class="ttdeci">CompareResult</div><div class="ttdoc">Structure for representing result of known.</div><div class="ttdef"><b>Definition:</b> analyzer.h:453</div></div>
+<div class="ttc" id="anamespacetvm_1_1arith_html_a1d555a0cc363f669a49fad7e5f7d69d0"><div class="ttname"><a href="namespacetvm_1_1arith.html#a1d555a0cc363f669a49fad7e5f7d69d0">tvm::arith::CompareResult</a></div><div class="ttdeci">CompareResult</div><div class="ttdoc">Structure for representing result of known.</div><div class="ttdef"><b>Definition:</b> analyzer.h:451</div></div>
 <div class="ttc" id="anamespacetvm_1_1arith_html_a1d555a0cc363f669a49fad7e5f7d69d0a03e3ad128c41e04acc6a0e59fdf11a58"><div class="ttname"><a href="namespacetvm_1_1arith.html#a1d555a0cc363f669a49fad7e5f7d69d0a03e3ad128c41e04acc6a0e59fdf11a58">tvm::arith::CompareResult::kNE</a></div><div class="ttdeci">@ kNE</div></div>
 <div class="ttc" id="anamespacetvm_1_1arith_html_a1d555a0cc363f669a49fad7e5f7d69d0a1893df55d7fc768f2336fdcb7c7b9c37"><div class="ttname"><a href="namespacetvm_1_1arith.html#a1d555a0cc363f669a49fad7e5f7d69d0a1893df55d7fc768f2336fdcb7c7b9c37">tvm::arith::CompareResult::kLE</a></div><div class="ttdeci">@ kLE</div></div>
 <div class="ttc" id="anamespacetvm_1_1arith_html_a1d555a0cc363f669a49fad7e5f7d69d0a7db2fe13b438b1005c70fcc9ab826b3b"><div class="ttname"><a href="namespacetvm_1_1arith.html#a1d555a0cc363f669a49fad7e5f7d69d0a7db2fe13b438b1005c70fcc9ab826b3b">tvm::arith::CompareResult::kEQ</a></div><div class="ttdeci">@ kEQ</div></div>
@@ -549,12 +545,12 @@ $(function() {
 <div class="ttc" id="anamespacetvm_1_1arith_html_a1d555a0cc363f669a49fad7e5f7d69d0ac0275be4f85005f8ef340d3d5be8d361"><div class="ttname"><a href="namespacetvm_1_1arith.html#a1d555a0cc363f669a49fad7e5f7d69d0ac0275be4f85005f8ef340d3d5be8d361">tvm::arith::CompareResult::kGE</a></div><div class="ttdeci">@ kGE</div></div>
 <div class="ttc" id="anamespacetvm_1_1arith_html_a1d555a0cc363f669a49fad7e5f7d69d0add0f23f162dcf68bf7bc761ac13040ae"><div class="ttname"><a href="namespacetvm_1_1arith.html#a1d555a0cc363f669a49fad7e5f7d69d0add0f23f162dcf68bf7bc761ac13040ae">tvm::arith::CompareResult::kLT</a></div><div class="ttdeci">@ kLT</div></div>
 <div class="ttc" id="anamespacetvm_1_1arith_html_a1d555a0cc363f669a49fad7e5f7d69d0af9f8d006118de5ad04dd7c000b8f3b91"><div class="ttname"><a href="namespacetvm_1_1arith.html#a1d555a0cc363f669a49fad7e5f7d69d0af9f8d006118de5ad04dd7c000b8f3b91">tvm::arith::CompareResult::kInconsistent</a></div><div class="ttdeci">@ kInconsistent</div></div>
-<div class="ttc" id="anamespacetvm_1_1arith_html_a660ff1fdbb08fea19a922157cadad7a7"><div class="ttname"><a href="namespacetvm_1_1arith.html#a660ff1fdbb08fea19a922157cadad7a7">tvm::arith::operator|</a></div><div class="ttdeci">constexpr CompareResult operator|(CompareResult lhs, CompareResult rhs)</div><div class="ttdef"><b>Definition:</b> analyzer.h:467</div></div>
+<div class="ttc" id="anamespacetvm_1_1arith_html_a660ff1fdbb08fea19a922157cadad7a7"><div class="ttname"><a href="namespacetvm_1_1arith.html#a660ff1fdbb08fea19a922157cadad7a7">tvm::arith::operator|</a></div><div class="ttdeci">constexpr CompareResult operator|(CompareResult lhs, CompareResult rhs)</div><div class="ttdef"><b>Definition:</b> analyzer.h:465</div></div>
 <div class="ttc" id="anamespacetvm_1_1arith_html_ac6a38da661cd3681eb85abe1cd810422"><div class="ttname"><a href="namespacetvm_1_1arith.html#ac6a38da661cd3681eb85abe1cd810422">tvm::arith::DivMode</a></div><div class="ttdeci">DivMode</div><div class="ttdef"><b>Definition:</b> analyzer.h:56</div></div>
 <div class="ttc" id="anamespacetvm_1_1arith_html_ac6a38da661cd3681eb85abe1cd810422aa6da1e276448319d25de8fe181872432"><div class="ttname"><a href="namespacetvm_1_1arith.html#ac6a38da661cd3681eb85abe1cd810422aa6da1e276448319d25de8fe181872432">tvm::arith::kTruncDiv</a></div><div class="ttdeci">@ kTruncDiv</div><div class="ttdoc">Truncated division.</div><div class="ttdef"><b>Definition:</b> analyzer.h:58</div></div>
 <div class="ttc" id="anamespacetvm_1_1arith_html_ac6a38da661cd3681eb85abe1cd810422aad0250170b362173e1e2a2e3a6f13d20"><div class="ttname"><a href="namespacetvm_1_1arith.html#ac6a38da661cd3681eb85abe1cd810422aad0250170b362173e1e2a2e3a6f13d20">tvm::arith::kFloorDiv</a></div><div class="ttdeci">@ kFloorDiv</div><div class="ttdoc">Floor division.</div><div class="ttdef"><b>Definition:</b> analyzer.h:60</div></div>
 <div class="ttc" id="anamespacetvm_1_1arith_html_aca8806e355ad3dd5f1df9c1eca9aac9da8812c1a077255594d23bc1c2f3af3979"><div class="ttname"><a href="namespacetvm_1_1arith.html#aca8806e355ad3dd5f1df9c1eca9aac9da8812c1a077255594d23bc1c2f3af3979">tvm::arith::kUnknown</a></div><div class="ttdeci">@ kUnknown</div><div class="ttdef"><b>Definition:</b> int_set.h:50</div></div>
-<div class="ttc" id="anamespacetvm_1_1arith_html_ae300654bf1788008de90f1e77fbaa7fe"><div class="ttname"><a href="namespacetvm_1_1arith.html#ae300654bf1788008de90f1e77fbaa7fe">tvm::arith::operator&amp;</a></div><div class="ttdeci">constexpr CompareResult operator&amp;(CompareResult lhs, CompareResult rhs)</div><div class="ttdef"><b>Definition:</b> analyzer.h:464</div></div>
+<div class="ttc" id="anamespacetvm_1_1arith_html_ae300654bf1788008de90f1e77fbaa7fe"><div class="ttname"><a href="namespacetvm_1_1arith.html#ae300654bf1788008de90f1e77fbaa7fe">tvm::arith::operator&amp;</a></div><div class="ttdeci">constexpr CompareResult operator&amp;(CompareResult lhs, CompareResult rhs)</div><div class="ttdef"><b>Definition:</b> analyzer.h:462</div></div>
 <div class="ttc" id="anamespacetvm_1_1ffi_1_1reflection_html"><div class="ttname"><a href="namespacetvm_1_1ffi_1_1reflection.html">tvm::ffi::reflection</a></div><div class="ttdef"><b>Definition:</b> repr_printer.h:91</div></div>
 <div class="ttc" id="anamespacetvm_1_1te_html_ae0c71f84710b436cbe0b32289d0838f4"><div class="ttname"><a href="namespacetvm_1_1te.html#ae0c71f84710b436cbe0b32289d0838f4">tvm::te::var</a></div><div class="ttdeci">Var var(std::string name_hint, DataType t=DataType::Int(32))</div><div class="ttdoc">Construct a new Var expression.</div></div>
 <div class="ttc" id="anamespacetvm_1_1topi_html_af30c02f3a3f37c7963b3af60fb9c72a1"><div class="ttname"><a href="namespacetvm_1_1topi.html#af30c02f3a3f37c7963b3af60fb9c72a1">tvm::topi::shape</a></div><div class="ttdeci">Tensor shape(const Tensor &amp;src, DataType dtype, const std::string name=&quot;T_shape&quot;, const std::string tag=kInjective)</div><div class="ttdoc">Get the shape of input tensor.</div><div class="ttdef"><b>Definition:</b> transform.h:1960</div></div>
diff --git a/docs/reference/api/doxygen/arg__info_8h_source.html b/docs/reference/api/doxygen/arg__info_8h_source.html
index 5806e842cb..50fbf0d87f 100644
--- a/docs/reference/api/doxygen/arg__info_8h_source.html
+++ b/docs/reference/api/doxygen/arg__info_8h_source.html
@@ -103,81 +103,76 @@ $(function() {
 <div class="line"><a name="l00032"></a><span class="lineno">   32</span>&#160; </div>
 <div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1ArgInfoNode.html">   34</a></span>&#160;<span class="keyword">class </span><a class="code" href="classtvm_1_1meta__schedule_1_1ArgInfoNode.html">ArgInfoNode</a> : <span class="keyword">public</span> runtime::Object {</div>
 <div class="line"><a name="l00035"></a><span class="lineno">   35</span>&#160; <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1ArgInfoNode.html#abde212d9062947bdbbdff5905dca87a3">   36</a></span>&#160;  <span class="keyword">static</span> constexpr <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classtvm_1_1meta__schedule_1_1ArgInfoNode.html#abde212d9062947bdbbdff5905dca87a3">_type_key</a> = <span class="stringliteral">&quot;meta_schedule.ArgInfo&quot;</s [...]
-<div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1ArgInfoNode.html#ae4d4b80ecb87a63c4c81f059974a51ef">   37</a></span>&#160;  <a class="code" href="classtvm_1_1meta__schedule_1_1ArgInfoNode.html#ae4d4b80ecb87a63c4c81f059974a51ef">TVM_DECLARE_BASE_OBJECT_INFO</a>(<a class="code" href="classtvm_1_1meta__schedule_1_1ArgInfoNode.html">ArgInfoNode</a>, runtime::Object);</div>
-<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160; </div>
-<div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160; <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1ArgInfoNode.html#afa222e9c13224606febc09458b55de8d">   41</a></span>&#160;  <span class="keyword">virtual</span> <a class="code" href="classtvm_1_1meta__schedule_1_1ArgInfoNode.html#afa222e9c13224606febc09458b55de8d">~ArgInfoNode</a>() = <span class="keywordflow">default</span>;</div>
-<div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1ArgInfoNode.html#a3fbed6e0620c80a5d487066ad23c951b">   43</a></span>&#160;  <span class="keyword">virtual</span> ObjectRef <a class="code" href="classtvm_1_1meta__schedule_1_1ArgInfoNode.html#a3fbed6e0620c80a5d487066ad23c951b">AsJSON</a>() <span class="keyword">const</span> = 0;</div>
-<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160;};</div>
-<div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160; </div>
-<div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1ArgInfo.html">   50</a></span>&#160;<span class="keyword">class </span><a class="code" href="classtvm_1_1meta__schedule_1_1ArgInfo.html">ArgInfo</a> : <span class="keyword">public</span> runtime::ObjectRef {</div>
-<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160; <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1ArgInfo.html#afc2cfa9fdf0bcedc79e90f07a596f74a">   57</a></span>&#160;  TVM_DLL <span class="keyword">static</span> <a class="code" href="classtvm_1_1meta__schedule_1_1ArgInfo.html">ArgInfo</a> <a class="code" href="classtvm_1_1meta__schedule_1_1ArgInfo.html#afc2cfa9fdf0bcedc79e90f07a596f74a">FromJSON</a>(<span class="keyword">const</span> ObjectRef&amp; json_obj);</div>
-<div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1ArgInfo.html#a3dcc30d5c8df022f3667584eba3d041a">   63</a></span>&#160;  TVM_DLL <span class="keyword">static</span> ffi::Array&lt;ArgInfo, void&gt; <a class="code" href="classtvm_1_1meta__schedule_1_1ArgInfo.html#a3dcc30d5c8df022f3667584eba3d041a">FromPrimFunc</a>(<span class="keyword">const</span> <a class="code" href="classtvm_1_1tir_1_1PrimFunc.html">tir::PrimFunc</a>&amp; f [...]
-<div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1ArgInfo.html#ac9a7fadadd11500b26fd9841c23dd1af">   70</a></span>&#160;  TVM_DLL <span class="keyword">static</span> ffi::Array&lt;ArgInfo, void&gt; <a class="code" href="classtvm_1_1meta__schedule_1_1ArgInfo.html#ac9a7fadadd11500b26fd9841c23dd1af">FromEntryFunc</a>(<span class="keyword">const</span> <a class="code" href="classtvm_1_1IRModule.html">IRModule</a>&amp; <a class="co [...]
-<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160; </div>
-<div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1ArgInfo.html#ae7f43e23ff225851d93ba2a517997ee7">   72</a></span>&#160;  <a class="code" href="classtvm_1_1meta__schedule_1_1ArgInfo.html#ae7f43e23ff225851d93ba2a517997ee7">TVM_DEFINE_MUTABLE_NOTNULLABLE_OBJECT_REF_METHODS</a>(<a class="code" href="classtvm_1_1meta__schedule_1_1ArgInfo.html">ArgInfo</a>, runtime::ObjectRef, <a class="code" href="classtvm_1_1meta__schedule_1_1Arg [...]
-<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160; </div>
-<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160; <span class="keyword">protected</span>:</div>
-<div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1ArgInfo.html#af2be498a4c11d470e2cd1f1474cc4839">   75</a></span>&#160;  <a class="code" href="classtvm_1_1meta__schedule_1_1ArgInfo.html#af2be498a4c11d470e2cd1f1474cc4839">ArgInfo</a>() = <span class="keywordflow">default</span>;</div>
-<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;};</div>
-<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160; </div>
-<div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1TensorInfoNode.html">   79</a></span>&#160;<span class="keyword">class </span><a class="code" href="classtvm_1_1meta__schedule_1_1TensorInfoNode.html">TensorInfoNode</a> : <span class="keyword">public</span> <a class="code" href="classtvm_1_1meta__schedule_1_1ArgInfoNode.html">ArgInfoNode</a> {</div>
-<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160; <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1TensorInfoNode.html#a703cc684f922c4c7dddb20a503a78eb9">   82</a></span>&#160;  <a class="code" href="classtvm_1_1runtime_1_1DataType.html">runtime::DataType</a> <a class="code" href="classtvm_1_1meta__schedule_1_1TensorInfoNode.html#a703cc684f922c4c7dddb20a503a78eb9">dtype</a>;</div>
-<div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1TensorInfoNode.html#a2e90236e3c584c1eb676160f466721f1">   84</a></span>&#160;  ffi::Shape <a class="code" href="classtvm_1_1meta__schedule_1_1TensorInfoNode.html#a2e90236e3c584c1eb676160f466721f1">shape</a>;</div>
-<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160; </div>
-<div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1TensorInfoNode.html#ace2c5dec0316807e473710c50ef2df75">   86</a></span>&#160;  <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classtvm_1_1meta__schedule_1_1TensorInfoNode.html#ace2c5dec0316807e473710c50ef2df75">RegisterReflection</a>() {</div>
-<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;    <span class="keyword">namespace </span>refl = <a class="code" href="namespacetvm_1_1ffi_1_1reflection.html">tvm::ffi::reflection</a>;</div>
-<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;    refl::ObjectDef&lt;TensorInfoNode&gt;()</div>
-<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;        .def_ro(<span class="stringliteral">&quot;dtype&quot;</span>, &amp;<a class="code" href="classtvm_1_1meta__schedule_1_1TensorInfoNode.html#a703cc684f922c4c7dddb20a503a78eb9">TensorInfoNode::dtype</a>)</div>
-<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;        .def_ro(<span class="stringliteral">&quot;shape&quot;</span>, &amp;<a class="code" href="classtvm_1_1meta__schedule_1_1TensorInfoNode.html#a2e90236e3c584c1eb676160f466721f1">TensorInfoNode::shape</a>);</div>
-<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;  }</div>
+<div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1ArgInfoNode.html#a1376ef729145345bd3bed1afc7721305">   36</a></span>&#160;  <a class="code" href="classtvm_1_1meta__schedule_1_1ArgInfoNode.html#a1376ef729145345bd3bed1afc7721305">TVM_FFI_DECLARE_OBJECT_INFO</a>(<span class="stringliteral">&quot;meta_schedule.ArgInfo&quot;</span>, <a class="code" href="classtvm_1_1meta__schedule_1_1ArgInfoNode.html">ArgInfoNode</a>, runtime::Ob [...]
+<div class="line"><a name="l00037"></a><span class="lineno">   37</span>&#160; </div>
+<div class="line"><a name="l00038"></a><span class="lineno">   38</span>&#160; <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1ArgInfoNode.html#afa222e9c13224606febc09458b55de8d">   40</a></span>&#160;  <span class="keyword">virtual</span> <a class="code" href="classtvm_1_1meta__schedule_1_1ArgInfoNode.html#afa222e9c13224606febc09458b55de8d">~ArgInfoNode</a>() = <span class="keywordflow">default</span>;</div>
+<div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1ArgInfoNode.html#a3fbed6e0620c80a5d487066ad23c951b">   42</a></span>&#160;  <span class="keyword">virtual</span> ObjectRef <a class="code" href="classtvm_1_1meta__schedule_1_1ArgInfoNode.html#a3fbed6e0620c80a5d487066ad23c951b">AsJSON</a>() <span class="keyword">const</span> = 0;</div>
+<div class="line"><a name="l00043"></a><span class="lineno">   43</span>&#160;};</div>
+<div class="line"><a name="l00044"></a><span class="lineno">   44</span>&#160; </div>
+<div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1ArgInfo.html">   49</a></span>&#160;<span class="keyword">class </span><a class="code" href="classtvm_1_1meta__schedule_1_1ArgInfo.html">ArgInfo</a> : <span class="keyword">public</span> runtime::ObjectRef {</div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160; <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1ArgInfo.html#afc2cfa9fdf0bcedc79e90f07a596f74a">   56</a></span>&#160;  TVM_DLL <span class="keyword">static</span> <a class="code" href="classtvm_1_1meta__schedule_1_1ArgInfo.html">ArgInfo</a> <a class="code" href="classtvm_1_1meta__schedule_1_1ArgInfo.html#afc2cfa9fdf0bcedc79e90f07a596f74a">FromJSON</a>(<span class="keyword">const</span> ObjectRef&amp; json_obj);</div>
+<div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1ArgInfo.html#a3dcc30d5c8df022f3667584eba3d041a">   62</a></span>&#160;  TVM_DLL <span class="keyword">static</span> ffi::Array&lt;ArgInfo, void&gt; <a class="code" href="classtvm_1_1meta__schedule_1_1ArgInfo.html#a3dcc30d5c8df022f3667584eba3d041a">FromPrimFunc</a>(<span class="keyword">const</span> <a class="code" href="classtvm_1_1tir_1_1PrimFunc.html">tir::PrimFunc</a>&amp; f [...]
+<div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1ArgInfo.html#ac9a7fadadd11500b26fd9841c23dd1af">   69</a></span>&#160;  TVM_DLL <span class="keyword">static</span> ffi::Array&lt;ArgInfo, void&gt; <a class="code" href="classtvm_1_1meta__schedule_1_1ArgInfo.html#ac9a7fadadd11500b26fd9841c23dd1af">FromEntryFunc</a>(<span class="keyword">const</span> <a class="code" href="classtvm_1_1IRModule.html">IRModule</a>&amp; <a class="co [...]
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160; </div>
+<div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1ArgInfo.html#a849fb6b5244f3ea1e4e9177c6ef31438">   71</a></span>&#160;  <a class="code" href="classtvm_1_1meta__schedule_1_1ArgInfo.html#a849fb6b5244f3ea1e4e9177c6ef31438">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NOTNULLABLE</a>(<a class="code" href="classtvm_1_1meta__schedule_1_1ArgInfo.html">ArgInfo</a>, runtime::ObjectRef, <a class="code" href="classtvm_1_1meta__schedule_1_1ArgInfo [...]
+<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160; </div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160; <span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1ArgInfo.html#af2be498a4c11d470e2cd1f1474cc4839">   74</a></span>&#160;  <a class="code" href="classtvm_1_1meta__schedule_1_1ArgInfo.html#af2be498a4c11d470e2cd1f1474cc4839">ArgInfo</a>() = <span class="keywordflow">default</span>;</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;};</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160; </div>
+<div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1TensorInfoNode.html">   78</a></span>&#160;<span class="keyword">class </span><a class="code" href="classtvm_1_1meta__schedule_1_1TensorInfoNode.html">TensorInfoNode</a> : <span class="keyword">public</span> <a class="code" href="classtvm_1_1meta__schedule_1_1ArgInfoNode.html">ArgInfoNode</a> {</div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160; <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1TensorInfoNode.html#a703cc684f922c4c7dddb20a503a78eb9">   81</a></span>&#160;  <a class="code" href="classtvm_1_1runtime_1_1DataType.html">runtime::DataType</a> <a class="code" href="classtvm_1_1meta__schedule_1_1TensorInfoNode.html#a703cc684f922c4c7dddb20a503a78eb9">dtype</a>;</div>
+<div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1TensorInfoNode.html#a2e90236e3c584c1eb676160f466721f1">   83</a></span>&#160;  ffi::Shape <a class="code" href="classtvm_1_1meta__schedule_1_1TensorInfoNode.html#a2e90236e3c584c1eb676160f466721f1">shape</a>;</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160; </div>
+<div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1TensorInfoNode.html#ace2c5dec0316807e473710c50ef2df75">   85</a></span>&#160;  <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classtvm_1_1meta__schedule_1_1TensorInfoNode.html#ace2c5dec0316807e473710c50ef2df75">RegisterReflection</a>() {</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;    <span class="keyword">namespace </span>refl = <a class="code" href="namespacetvm_1_1ffi_1_1reflection.html">tvm::ffi::reflection</a>;</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;    refl::ObjectDef&lt;TensorInfoNode&gt;()</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;        .def_ro(<span class="stringliteral">&quot;dtype&quot;</span>, &amp;<a class="code" href="classtvm_1_1meta__schedule_1_1TensorInfoNode.html#a703cc684f922c4c7dddb20a503a78eb9">TensorInfoNode::dtype</a>)</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;        .def_ro(<span class="stringliteral">&quot;shape&quot;</span>, &amp;<a class="code" href="classtvm_1_1meta__schedule_1_1TensorInfoNode.html#a2e90236e3c584c1eb676160f466721f1">TensorInfoNode::shape</a>);</div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;  }</div>
+<div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1TensorInfoNode.html#ab8b9921040113a510bde0cb514e8e0e6">   91</a></span>&#160;  <a class="code" href="classtvm_1_1meta__schedule_1_1TensorInfoNode.html#ab8b9921040113a510bde0cb514e8e0e6">TVM_FFI_DECLARE_OBJECT_INFO_FINAL</a>(<span class="stringliteral">&quot;meta_schedule.TensorInfo&quot;</span>, <a class="code" href="classtvm_1_1meta__schedule_1_1TensorInfoNode.html">TensorInfo [...]
 <div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160; </div>
-<div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1TensorInfoNode.html#abe939f5433460fb634414bc241cca069">   93</a></span>&#160;  <span class="keyword">static</span> constexpr <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classtvm_1_1meta__schedule_1_1TensorInfoNode.html#abe939f5433460fb634414bc241cca069">_type_key</a> = <span class="stringliteral">&quot;meta_schedule.TensorInfo [...]
-<div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1TensorInfoNode.html#a6f55440f1571c3a9178ae0e98c6faf20">   94</a></span>&#160;  <a class="code" href="classtvm_1_1meta__schedule_1_1TensorInfoNode.html#a6f55440f1571c3a9178ae0e98c6faf20">TVM_DECLARE_FINAL_OBJECT_INFO</a>(<a class="code" href="classtvm_1_1meta__schedule_1_1TensorInfoNode.html">TensorInfoNode</a>, <a class="code" href="classtvm_1_1meta__schedule_1_1ArgInfoNode.htm [...]
-<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160; </div>
-<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160; <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1TensorInfoNode.html#a7316d623b28dfdf5536e3f5b910bb3d8">   97</a></span>&#160;  ObjectRef <a class="code" href="classtvm_1_1meta__schedule_1_1TensorInfoNode.html#a7316d623b28dfdf5536e3f5b910bb3d8">AsJSON</a>() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;};</div>
-<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160; </div>
-<div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1TensorInfo.html">  104</a></span>&#160;<span class="keyword">class </span><a class="code" href="classtvm_1_1meta__schedule_1_1TensorInfo.html">TensorInfo</a> : <span class="keyword">public</span> <a class="code" href="classtvm_1_1meta__schedule_1_1ArgInfo.html">ArgInfo</a> {</div>
-<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160; <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1TensorInfo.html#ae7663bb88cb206dbe17b0a5974cc7cb2">  111</a></span>&#160;  TVM_DLL <span class="keyword">explicit</span> <a class="code" href="classtvm_1_1meta__schedule_1_1TensorInfo.html#ae7663bb88cb206dbe17b0a5974cc7cb2">TensorInfo</a>(<a class="code" href="classtvm_1_1runtime_1_1DataType.html">runtime::DataType</a> dtype, ffi::Shape <a class="code" href="namespacetvm_1_1top [...]
-<div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1TensorInfo.html#a1d4166d5ac2777b955c7263ebcaa068a">  117</a></span>&#160;  TVM_DLL <span class="keyword">static</span> <a class="code" href="classtvm_1_1meta__schedule_1_1TensorInfo.html">TensorInfo</a> <a class="code" href="classtvm_1_1meta__schedule_1_1TensorInfo.html#a1d4166d5ac2777b955c7263ebcaa068a">FromJSON</a>(<span class="keyword">const</span> ObjectRef&amp; json_obj);</div>
-<div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1TensorInfo.html#aef522e84c489e32d20854a8946bc43b4">  118</a></span>&#160;  <a class="code" href="classtvm_1_1meta__schedule_1_1TensorInfo.html#aef522e84c489e32d20854a8946bc43b4">TVM_DEFINE_NOTNULLABLE_OBJECT_REF_METHODS</a>(<a class="code" href="classtvm_1_1meta__schedule_1_1TensorInfo.html">TensorInfo</a>, <a class="code" href="classtvm_1_1meta__schedule_1_1ArgInfo.html">ArgIn [...]
-<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;};</div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160; <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1TensorInfoNode.html#a7316d623b28dfdf5536e3f5b910bb3d8">   94</a></span>&#160;  ObjectRef <a class="code" href="classtvm_1_1meta__schedule_1_1TensorInfoNode.html#a7316d623b28dfdf5536e3f5b910bb3d8">AsJSON</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;};</div>
+<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160; </div>
+<div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1TensorInfo.html">  101</a></span>&#160;<span class="keyword">class </span><a class="code" href="classtvm_1_1meta__schedule_1_1TensorInfo.html">TensorInfo</a> : <span class="keyword">public</span> <a class="code" href="classtvm_1_1meta__schedule_1_1ArgInfo.html">ArgInfo</a> {</div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160; <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1TensorInfo.html#ae7663bb88cb206dbe17b0a5974cc7cb2">  108</a></span>&#160;  TVM_DLL <span class="keyword">explicit</span> <a class="code" href="classtvm_1_1meta__schedule_1_1TensorInfo.html#ae7663bb88cb206dbe17b0a5974cc7cb2">TensorInfo</a>(<a class="code" href="classtvm_1_1runtime_1_1DataType.html">runtime::DataType</a> dtype, ffi::Shape <a class="code" href="namespacetvm_1_1top [...]
+<div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1TensorInfo.html#a1d4166d5ac2777b955c7263ebcaa068a">  114</a></span>&#160;  TVM_DLL <span class="keyword">static</span> <a class="code" href="classtvm_1_1meta__schedule_1_1TensorInfo.html">TensorInfo</a> <a class="code" href="classtvm_1_1meta__schedule_1_1TensorInfo.html#a1d4166d5ac2777b955c7263ebcaa068a">FromJSON</a>(<span class="keyword">const</span> ObjectRef&amp; json_obj);</div>
+<div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1TensorInfo.html#a5b640722275b2301024ad0b539a52776">  115</a></span>&#160;  <a class="code" href="classtvm_1_1meta__schedule_1_1TensorInfo.html#a5b640722275b2301024ad0b539a52776">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NOTNULLABLE</a>(<a class="code" href="classtvm_1_1meta__schedule_1_1TensorInfo.html">TensorInfo</a>, <a class="code" href="classtvm_1_1meta__schedule_1_1ArgInfo.html">A [...]
+<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;};</div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160; </div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;}  <span class="comment">// namespace meta_schedule</span></div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;}  <span class="comment">// namespace tvm</span></div>
 <div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160; </div>
-<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;}  <span class="comment">// namespace meta_schedule</span></div>
-<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;}  <span class="comment">// namespace tvm</span></div>
-<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160; </div>
-<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;<span class="preprocessor">#endif  </span><span class="comment">// TVM_META_SCHEDULE_ARG_INFO_H_</span></div>
-<div class="ttc" id="aclasstvm_1_1IRModule_html"><div class="ttname"><a href="classtvm_1_1IRModule.html">tvm::IRModule</a></div><div class="ttdoc">Managed reference class to IRModuleNode.</div><div class="ttdef"><b>Definition:</b> module.h:257</div></div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;<span class="preprocessor">#endif  </span><span class="comment">// TVM_META_SCHEDULE_ARG_INFO_H_</span></div>
+<div class="ttc" id="aclasstvm_1_1IRModule_html"><div class="ttname"><a href="classtvm_1_1IRModule.html">tvm::IRModule</a></div><div class="ttdoc">Managed reference class to IRModuleNode.</div><div class="ttdef"><b>Definition:</b> module.h:256</div></div>
 <div class="ttc" id="aclasstvm_1_1meta__schedule_1_1ArgInfoNode_html"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1ArgInfoNode.html">tvm::meta_schedule::ArgInfoNode</a></div><div class="ttdoc">The argument information.</div><div class="ttdef"><b>Definition:</b> arg_info.h:34</div></div>
+<div class="ttc" id="aclasstvm_1_1meta__schedule_1_1ArgInfoNode_html_a1376ef729145345bd3bed1afc7721305"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1ArgInfoNode.html#a1376ef729145345bd3bed1afc7721305">tvm::meta_schedule::ArgInfoNode::TVM_FFI_DECLARE_OBJECT_INFO</a></div><div class="ttdeci">TVM_FFI_DECLARE_OBJECT_INFO(&quot;meta_schedule.ArgInfo&quot;, ArgInfoNode, runtime::Object)</div></div>
 <div class="ttc" id="aclasstvm_1_1meta__schedule_1_1ArgInfoNode_html_a3fbed6e0620c80a5d487066ad23c951b"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1ArgInfoNode.html#a3fbed6e0620c80a5d487066ad23c951b">tvm::meta_schedule::ArgInfoNode::AsJSON</a></div><div class="ttdeci">virtual ObjectRef AsJSON() const =0</div><div class="ttdoc">Converts the ArgInfo to its corresponding JSON representation.</div></div>
-<div class="ttc" id="aclasstvm_1_1meta__schedule_1_1ArgInfoNode_html_abde212d9062947bdbbdff5905dca87a3"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1ArgInfoNode.html#abde212d9062947bdbbdff5905dca87a3">tvm::meta_schedule::ArgInfoNode::_type_key</a></div><div class="ttdeci">static constexpr const char * _type_key</div><div class="ttdef"><b>Definition:</b> arg_info.h:36</div></div>
-<div class="ttc" id="aclasstvm_1_1meta__schedule_1_1ArgInfoNode_html_ae4d4b80ecb87a63c4c81f059974a51ef"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1ArgInfoNode.html#ae4d4b80ecb87a63c4c81f059974a51ef">tvm::meta_schedule::ArgInfoNode::TVM_DECLARE_BASE_OBJECT_INFO</a></div><div class="ttdeci">TVM_DECLARE_BASE_OBJECT_INFO(ArgInfoNode, runtime::Object)</div></div>
 <div class="ttc" id="aclasstvm_1_1meta__schedule_1_1ArgInfoNode_html_afa222e9c13224606febc09458b55de8d"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1ArgInfoNode.html#afa222e9c13224606febc09458b55de8d">tvm::meta_schedule::ArgInfoNode::~ArgInfoNode</a></div><div class="ttdeci">virtual ~ArgInfoNode()=default</div><div class="ttdoc">Default destructor.</div></div>
-<div class="ttc" id="aclasstvm_1_1meta__schedule_1_1ArgInfo_html"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1ArgInfo.html">tvm::meta_schedule::ArgInfo</a></div><div class="ttdoc">Managed reference to ArgInfoNode.</div><div class="ttdef"><b>Definition:</b> arg_info.h:50</div></div>
+<div class="ttc" id="aclasstvm_1_1meta__schedule_1_1ArgInfo_html"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1ArgInfo.html">tvm::meta_schedule::ArgInfo</a></div><div class="ttdoc">Managed reference to ArgInfoNode.</div><div class="ttdef"><b>Definition:</b> arg_info.h:49</div></div>
 <div class="ttc" id="aclasstvm_1_1meta__schedule_1_1ArgInfo_html_a3dcc30d5c8df022f3667584eba3d041a"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1ArgInfo.html#a3dcc30d5c8df022f3667584eba3d041a">tvm::meta_schedule::ArgInfo::FromPrimFunc</a></div><div class="ttdeci">static ffi::Array&lt; ArgInfo, void &gt; FromPrimFunc(const tir::PrimFunc &amp;func)</div><div class="ttdoc">Extract a list of the argument information from PrimFunc.</div></div>
+<div class="ttc" id="aclasstvm_1_1meta__schedule_1_1ArgInfo_html_a849fb6b5244f3ea1e4e9177c6ef31438"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1ArgInfo.html#a849fb6b5244f3ea1e4e9177c6ef31438">tvm::meta_schedule::ArgInfo::TVM_FFI_DEFINE_OBJECT_REF_METHODS_NOTNULLABLE</a></div><div class="ttdeci">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NOTNULLABLE(ArgInfo, runtime::ObjectRef, ArgInfoNode)</div></div>
 <div class="ttc" id="aclasstvm_1_1meta__schedule_1_1ArgInfo_html_ac9a7fadadd11500b26fd9841c23dd1af"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1ArgInfo.html#ac9a7fadadd11500b26fd9841c23dd1af">tvm::meta_schedule::ArgInfo::FromEntryFunc</a></div><div class="ttdeci">static ffi::Array&lt; ArgInfo, void &gt; FromEntryFunc(const IRModule &amp;mod, bool remove_preproc)</div><div class="ttdoc">Extract a list of the argument information from the entry func of an IRModule.</div></div>
-<div class="ttc" id="aclasstvm_1_1meta__schedule_1_1ArgInfo_html_ae7f43e23ff225851d93ba2a517997ee7"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1ArgInfo.html#ae7f43e23ff225851d93ba2a517997ee7">tvm::meta_schedule::ArgInfo::TVM_DEFINE_MUTABLE_NOTNULLABLE_OBJECT_REF_METHODS</a></div><div class="ttdeci">TVM_DEFINE_MUTABLE_NOTNULLABLE_OBJECT_REF_METHODS(ArgInfo, runtime::ObjectRef, ArgInfoNode)</div></div>
 <div class="ttc" id="aclasstvm_1_1meta__schedule_1_1ArgInfo_html_af2be498a4c11d470e2cd1f1474cc4839"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1ArgInfo.html#af2be498a4c11d470e2cd1f1474cc4839">tvm::meta_schedule::ArgInfo::ArgInfo</a></div><div class="ttdeci">ArgInfo()=default</div></div>
 <div class="ttc" id="aclasstvm_1_1meta__schedule_1_1ArgInfo_html_afc2cfa9fdf0bcedc79e90f07a596f74a"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1ArgInfo.html#afc2cfa9fdf0bcedc79e90f07a596f74a">tvm::meta_schedule::ArgInfo::FromJSON</a></div><div class="ttdeci">static ArgInfo FromJSON(const ObjectRef &amp;json_obj)</div><div class="ttdoc">Parse the argument information from a JSON object.</div></div>
-<div class="ttc" id="aclasstvm_1_1meta__schedule_1_1TensorInfoNode_html"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1TensorInfoNode.html">tvm::meta_schedule::TensorInfoNode</a></div><div class="ttdoc">The tensor argument information.</div><div class="ttdef"><b>Definition:</b> arg_info.h:79</div></div>
-<div class="ttc" id="aclasstvm_1_1meta__schedule_1_1TensorInfoNode_html_a2e90236e3c584c1eb676160f466721f1"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1TensorInfoNode.html#a2e90236e3c584c1eb676160f466721f1">tvm::meta_schedule::TensorInfoNode::shape</a></div><div class="ttdeci">ffi::Shape shape</div><div class="ttdoc">The shape of the tensor.</div><div class="ttdef"><b>Definition:</b> arg_info.h:84</div></div>
-<div class="ttc" id="aclasstvm_1_1meta__schedule_1_1TensorInfoNode_html_a6f55440f1571c3a9178ae0e98c6faf20"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1TensorInfoNode.html#a6f55440f1571c3a9178ae0e98c6faf20">tvm::meta_schedule::TensorInfoNode::TVM_DECLARE_FINAL_OBJECT_INFO</a></div><div class="ttdeci">TVM_DECLARE_FINAL_OBJECT_INFO(TensorInfoNode, ArgInfoNode)</div></div>
-<div class="ttc" id="aclasstvm_1_1meta__schedule_1_1TensorInfoNode_html_a703cc684f922c4c7dddb20a503a78eb9"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1TensorInfoNode.html#a703cc684f922c4c7dddb20a503a78eb9">tvm::meta_schedule::TensorInfoNode::dtype</a></div><div class="ttdeci">runtime::DataType dtype</div><div class="ttdoc">The data type of the tensor.</div><div class="ttdef"><b>Definition:</b> arg_info.h:82</div></div>
+<div class="ttc" id="aclasstvm_1_1meta__schedule_1_1TensorInfoNode_html"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1TensorInfoNode.html">tvm::meta_schedule::TensorInfoNode</a></div><div class="ttdoc">The tensor argument information.</div><div class="ttdef"><b>Definition:</b> arg_info.h:78</div></div>
+<div class="ttc" id="aclasstvm_1_1meta__schedule_1_1TensorInfoNode_html_a2e90236e3c584c1eb676160f466721f1"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1TensorInfoNode.html#a2e90236e3c584c1eb676160f466721f1">tvm::meta_schedule::TensorInfoNode::shape</a></div><div class="ttdeci">ffi::Shape shape</div><div class="ttdoc">The shape of the tensor.</div><div class="ttdef"><b>Definition:</b> arg_info.h:83</div></div>
+<div class="ttc" id="aclasstvm_1_1meta__schedule_1_1TensorInfoNode_html_a703cc684f922c4c7dddb20a503a78eb9"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1TensorInfoNode.html#a703cc684f922c4c7dddb20a503a78eb9">tvm::meta_schedule::TensorInfoNode::dtype</a></div><div class="ttdeci">runtime::DataType dtype</div><div class="ttdoc">The data type of the tensor.</div><div class="ttdef"><b>Definition:</b> arg_info.h:81</div></div>
 <div class="ttc" id="aclasstvm_1_1meta__schedule_1_1TensorInfoNode_html_a7316d623b28dfdf5536e3f5b910bb3d8"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1TensorInfoNode.html#a7316d623b28dfdf5536e3f5b910bb3d8">tvm::meta_schedule::TensorInfoNode::AsJSON</a></div><div class="ttdeci">ObjectRef AsJSON() const</div><div class="ttdoc">Converts the ArgInfo to its corresponding JSON representation.</div></div>
-<div class="ttc" id="aclasstvm_1_1meta__schedule_1_1TensorInfoNode_html_abe939f5433460fb634414bc241cca069"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1TensorInfoNode.html#abe939f5433460fb634414bc241cca069">tvm::meta_schedule::TensorInfoNode::_type_key</a></div><div class="ttdeci">static constexpr const char * _type_key</div><div class="ttdef"><b>Definition:</b> arg_info.h:93</div></div>
-<div class="ttc" id="aclasstvm_1_1meta__schedule_1_1TensorInfoNode_html_ace2c5dec0316807e473710c50ef2df75"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1TensorInfoNode.html#ace2c5dec0316807e473710c50ef2df75">tvm::meta_schedule::TensorInfoNode::RegisterReflection</a></div><div class="ttdeci">static void RegisterReflection()</div><div class="ttdef"><b>Definition:</b> arg_info.h:86</div></div>
-<div class="ttc" id="aclasstvm_1_1meta__schedule_1_1TensorInfo_html"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1TensorInfo.html">tvm::meta_schedule::TensorInfo</a></div><div class="ttdoc">Managed reference to TensorInfoNode.</div><div class="ttdef"><b>Definition:</b> arg_info.h:104</div></div>
+<div class="ttc" id="aclasstvm_1_1meta__schedule_1_1TensorInfoNode_html_ab8b9921040113a510bde0cb514e8e0e6"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1TensorInfoNode.html#ab8b9921040113a510bde0cb514e8e0e6">tvm::meta_schedule::TensorInfoNode::TVM_FFI_DECLARE_OBJECT_INFO_FINAL</a></div><div class="ttdeci">TVM_FFI_DECLARE_OBJECT_INFO_FINAL(&quot;meta_schedule.TensorInfo&quot;, TensorInfoNode, ArgInfoNode)</div></div>
+<div class="ttc" id="aclasstvm_1_1meta__schedule_1_1TensorInfoNode_html_ace2c5dec0316807e473710c50ef2df75"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1TensorInfoNode.html#ace2c5dec0316807e473710c50ef2df75">tvm::meta_schedule::TensorInfoNode::RegisterReflection</a></div><div class="ttdeci">static void RegisterReflection()</div><div class="ttdef"><b>Definition:</b> arg_info.h:85</div></div>
+<div class="ttc" id="aclasstvm_1_1meta__schedule_1_1TensorInfo_html"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1TensorInfo.html">tvm::meta_schedule::TensorInfo</a></div><div class="ttdoc">Managed reference to TensorInfoNode.</div><div class="ttdef"><b>Definition:</b> arg_info.h:101</div></div>
 <div class="ttc" id="aclasstvm_1_1meta__schedule_1_1TensorInfo_html_a1d4166d5ac2777b955c7263ebcaa068a"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1TensorInfo.html#a1d4166d5ac2777b955c7263ebcaa068a">tvm::meta_schedule::TensorInfo::FromJSON</a></div><div class="ttdeci">static TensorInfo FromJSON(const ObjectRef &amp;json_obj)</div><div class="ttdoc">Parse the argument information from a JSON object.</div></div>
+<div class="ttc" id="aclasstvm_1_1meta__schedule_1_1TensorInfo_html_a5b640722275b2301024ad0b539a52776"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1TensorInfo.html#a5b640722275b2301024ad0b539a52776">tvm::meta_schedule::TensorInfo::TVM_FFI_DEFINE_OBJECT_REF_METHODS_NOTNULLABLE</a></div><div class="ttdeci">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NOTNULLABLE(TensorInfo, ArgInfo, TensorInfoNode)</div></div>
 <div class="ttc" id="aclasstvm_1_1meta__schedule_1_1TensorInfo_html_ae7663bb88cb206dbe17b0a5974cc7cb2"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1TensorInfo.html#ae7663bb88cb206dbe17b0a5974cc7cb2">tvm::meta_schedule::TensorInfo::TensorInfo</a></div><div class="ttdeci">TensorInfo(runtime::DataType dtype, ffi::Shape shape)</div><div class="ttdoc">Constructor of TensorInfo.</div></div>
-<div class="ttc" id="aclasstvm_1_1meta__schedule_1_1TensorInfo_html_aef522e84c489e32d20854a8946bc43b4"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1TensorInfo.html#aef522e84c489e32d20854a8946bc43b4">tvm::meta_schedule::TensorInfo::TVM_DEFINE_NOTNULLABLE_OBJECT_REF_METHODS</a></div><div class="ttdeci">TVM_DEFINE_NOTNULLABLE_OBJECT_REF_METHODS(TensorInfo, ArgInfo, TensorInfoNode)</div></div>
 <div class="ttc" id="aclasstvm_1_1runtime_1_1DataType_html"><div class="ttname"><a href="classtvm_1_1runtime_1_1DataType.html">tvm::runtime::DataType</a></div><div class="ttdoc">Runtime primitive data type.</div><div class="ttdef"><b>Definition:</b> data_type.h:47</div></div>
-<div class="ttc" id="aclasstvm_1_1tir_1_1PrimFunc_html"><div class="ttname"><a href="classtvm_1_1tir_1_1PrimFunc.html">tvm::tir::PrimFunc</a></div><div class="ttdoc">Managed reference to PrimFuncNode.</div><div class="ttdef"><b>Definition:</b> function.h:131</div></div>
+<div class="ttc" id="aclasstvm_1_1tir_1_1PrimFunc_html"><div class="ttname"><a href="classtvm_1_1tir_1_1PrimFunc.html">tvm::tir::PrimFunc</a></div><div class="ttdoc">Managed reference to PrimFuncNode.</div><div class="ttdef"><b>Definition:</b> function.h:129</div></div>
 <div class="ttc" id="adata__type_8h_html"><div class="ttname"><a href="data__type_8h.html">data_type.h</a></div></div>
 <div class="ttc" id="air_2module_8h_html"><div class="ttname"><a href="ir_2module_8h.html">module.h</a></div><div class="ttdoc">IRModule that holds the functions and type definitions.</div></div>
 <div class="ttc" id="anamespacetvm_1_1ffi_1_1reflection_html"><div class="ttname"><a href="namespacetvm_1_1ffi_1_1reflection.html">tvm::ffi::reflection</a></div><div class="ttdef"><b>Definition:</b> repr_printer.h:91</div></div>
diff --git a/docs/reference/api/doxygen/attr__registry__map_8h_source.html b/docs/reference/api/doxygen/attr__registry__map_8h_source.html
index 8bec00165f..790fde0f7d 100644
--- a/docs/reference/api/doxygen/attr__registry__map_8h_source.html
+++ b/docs/reference/api/doxygen/attr__registry__map_8h_source.html
@@ -170,7 +170,7 @@ $(function() {
 <div class="ttc" id="aclasstvm_1_1AttrRegistryMap_html_ae4152d6da01b645eeff90fbaeac7c14f"><div class="ttname"><a href="classtvm_1_1AttrRegistryMap.html#ae4152d6da01b645eeff90fbaeac7c14f">tvm::AttrRegistryMap::operator[]</a></div><div class="ttdeci">ValueType operator[](const KeyType &amp;key) const</div><div class="ttdoc">get the corresponding value element at key.</div><div class="ttdef"><b>Definition:</b> attr_registry_map.h:123</div></div>
 <div class="ttc" id="aclasstvm_1_1AttrRegistryMap_html_aefe7933b03f49eac54bec961e75f8650"><div class="ttname"><a href="classtvm_1_1AttrRegistryMap.html#aefe7933b03f49eac54bec961e75f8650">tvm::AttrRegistryMap::AttrRegistryMap</a></div><div class="ttdeci">AttrRegistryMap(const AttrRegistryMapContainerMap&lt; KeyType &gt; &amp;map)</div><div class="ttdoc">constructor</div><div class="ttdef"><b>Definition:</b> attr_registry_map.h:111</div></div>
 <div class="ttc" id="aclasstvm_1_1AttrRegistry_html"><div class="ttname"><a href="classtvm_1_1AttrRegistry.html">tvm::AttrRegistry</a></div><div class="ttdef"><b>Definition:</b> instruction.h:30</div></div>
-<div class="ttc" id="aclasstvm_1_1OpRegEntry_html"><div class="ttname"><a href="classtvm_1_1OpRegEntry.html">tvm::OpRegEntry</a></div><div class="ttdoc">Helper structure to register operators.</div><div class="ttdef"><b>Definition:</b> op.h:172</div></div>
+<div class="ttc" id="aclasstvm_1_1OpRegEntry_html"><div class="ttname"><a href="classtvm_1_1OpRegEntry.html">tvm::OpRegEntry</a></div><div class="ttdoc">Helper structure to register operators.</div><div class="ttdef"><b>Definition:</b> op.h:171</div></div>
 <div class="ttc" id="anamespacetvm_html"><div class="ttname"><a href="namespacetvm.html">tvm</a></div><div class="ttdoc">Performance counters for profiling via the PAPI library.</div><div class="ttdef"><b>Definition:</b> analyzer.h:37</div></div>
 </div><!-- fragment --></div><!-- contents -->
 <!-- start footer part -->
diff --git a/docs/reference/api/doxygen/attrs_8h_source.html b/docs/reference/api/doxygen/attrs_8h_source.html
index b814a5fda2..3fb08d2700 100644
--- a/docs/reference/api/doxygen/attrs_8h_source.html
+++ b/docs/reference/api/doxygen/attrs_8h_source.html
@@ -133,202 +133,196 @@ $(function() {
 <div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;        .def_ro(<span class="stringliteral">&quot;description&quot;</span>, &amp;<a class="code" href="classtvm_1_1AttrFieldInfoNode.html#a431098190172ef1755e1bb34a7565845">AttrFieldInfoNode::description</a>);</div>
 <div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;  }</div>
 <div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160; </div>
-<div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="classtvm_1_1AttrFieldInfoNode.html#afe4293c9f1aea71f845c5ed9633af2c9">   85</a></span>&#160;  <span class="keyword">static</span> constexpr <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classtvm_1_1AttrFieldInfoNode.html#afe4293c9f1aea71f845c5ed9633af2c9">_type_key</a> = <span class="stringliteral">&quot;ir.AttrFieldInfo&quot;</span>;</div>
-<div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="classtvm_1_1AttrFieldInfoNode.html#afba3081e4108c2ba2d34a6a228de5d88">   86</a></span>&#160;  <span class="keyword">static</span> constexpr TVMFFISEqHashKind <a class="code" href="classtvm_1_1AttrFieldInfoNode.html#afba3081e4108c2ba2d34a6a228de5d88">_type_s_eq_hash_kind</a> = kTVMFFISEqHashKindTreeNode;</div>
-<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160; </div>
-<div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="classtvm_1_1AttrFieldInfoNode.html#a915476a2aefc4dfb342c3aa40f235b81">   88</a></span>&#160;  <a class="code" href="classtvm_1_1AttrFieldInfoNode.html#a915476a2aefc4dfb342c3aa40f235b81">TVM_DECLARE_FINAL_OBJECT_INFO</a>(<a class="code" href="classtvm_1_1AttrFieldInfoNode.html">AttrFieldInfoNode</a>, Object);</div>
-<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;};</div>
-<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160; </div>
-<div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="classtvm_1_1AttrFieldInfo.html">   92</a></span>&#160;<span class="keyword">class </span><a class="code" href="classtvm_1_1AttrFieldInfo.html">AttrFieldInfo</a> : <span class="keyword">public</span> ObjectRef {</div>
-<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160; <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="classtvm_1_1AttrFieldInfo.html#af897e77cf019cd43014025ac0d2a5a37">   94</a></span>&#160;  <a class="code" href="classtvm_1_1AttrFieldInfo.html#af897e77cf019cd43014025ac0d2a5a37">TVM_DEFINE_OBJECT_REF_METHODS</a>(<a class="code" href="classtvm_1_1AttrFieldInfo.html">AttrFieldInfo</a>, ObjectRef, <a class="code" href="classtvm_1_1AttrFieldInfoNode.html">AttrFieldInfoNode</a>);</div>
-<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;};</div>
-<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160; </div>
-<div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="classtvm_1_1BaseAttrsNode.html">  103</a></span>&#160;<span class="keyword">class </span><a class="code" href="classtvm_1_1BaseAttrsNode.html">BaseAttrsNode</a> : <span class="keyword">public</span> Object {</div>
-<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160; <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="classtvm_1_1BaseAttrsNode.html#a225581a40231b2de219da30fced428a2">  106</a></span>&#160;  <span class="keyword">virtual</span> <a class="code" href="classtvm_1_1BaseAttrsNode.html#a225581a40231b2de219da30fced428a2">~BaseAttrsNode</a>() {}</div>
-<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;  <span class="keyword">template</span> &lt;<span class="keyword">typename</span>... Args&gt;</div>
-<div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="classtvm_1_1BaseAttrsNode.html#abcc04a722102d16fd4d86f9b7dcdd1e1">  113</a></span>&#160;  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classtvm_1_1BaseAttrsNode.html#abcc04a722102d16fd4d86f9b7dcdd1e1">InitBySeq</a>(Args&amp;&amp;... args);</div>
-<div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="classtvm_1_1BaseAttrsNode.html#adf84245590cf8fa64042329a24eaad54">  121</a></span>&#160;  TVM_DLL <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classtvm_1_1BaseAttrsNode.html#adf84245590cf8fa64042329a24eaad54">InitByPackedArgs</a>(<span class="keyword">const</span> ffi::PackedArgs&amp; kwargs,</div>
-<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;                                        <span class="keywordtype">bool</span> allow_unknown = <span class="keyword">false</span>) = 0;</div>
-<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160; </div>
-<div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="classtvm_1_1BaseAttrsNode.html#a7c9d86042f7419c0cc25b7b9c1aa8695">  124</a></span>&#160;  <span class="keyword">static</span> constexpr TVMFFISEqHashKind <a class="code" href="classtvm_1_1BaseAttrsNode.html#a7c9d86042f7419c0cc25b7b9c1aa8695">_type_s_eq_hash_kind</a> = kTVMFFISEqHashKindTreeNode;</div>
-<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160; </div>
-<div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="classtvm_1_1BaseAttrsNode.html#a8e4fd4e728774e0556cda84b0c2b80d6">  126</a></span>&#160;  <span class="keyword">static</span> constexpr <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classtvm_1_1BaseAttrsNode.html#a8e4fd4e728774e0556cda84b0c2b80d6">_type_key</a> = <span class="stringliteral">&quot;ir.Attrs&quot;</span>;</div>
-<div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="classtvm_1_1BaseAttrsNode.html#aaca524319f015a18a1385cfea5ba8895">  127</a></span>&#160;  <a class="code" href="classtvm_1_1BaseAttrsNode.html#aaca524319f015a18a1385cfea5ba8895">TVM_DECLARE_BASE_OBJECT_INFO</a>(<a class="code" href="classtvm_1_1BaseAttrsNode.html">BaseAttrsNode</a>, Object);</div>
-<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;};</div>
-<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160; </div>
-<div class="line"><a name="l00134"></a><span class="lineno"><a class="line" href="classtvm_1_1Attrs.html">  134</a></span>&#160;<span class="keyword">class </span><a class="code" href="classtvm_1_1Attrs.html">Attrs</a> : <span class="keyword">public</span> ObjectRef {</div>
-<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160; <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="classtvm_1_1Attrs.html#a1bf8ffc23955fe9b066d838ca41819e1">  136</a></span>&#160;  <a class="code" href="classtvm_1_1Attrs.html#a1bf8ffc23955fe9b066d838ca41819e1">TVM_DEFINE_OBJECT_REF_METHODS</a>(<a class="code" href="classtvm_1_1Attrs.html">Attrs</a>, ObjectRef, <a class="code" href="classtvm_1_1BaseAttrsNode.html">BaseAttrsNode</a>);</div>
-<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;};</div>
-<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160; </div>
-<div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="classtvm_1_1DictAttrsNode.html">  145</a></span>&#160;<span class="keyword">class </span><a class="code" href="classtvm_1_1DictAttrsNode.html">DictAttrsNode</a> : <span class="keyword">public</span> <a class="code" href="classtvm_1_1BaseAttrsNode.html">BaseAttrsNode</a> {</div>
-<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160; <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00148"></a><span class="lineno"><a class="line" href="classtvm_1_1DictAttrsNode.html#af348aa9a0f2095a34c82be2a97e6e8fc">  148</a></span>&#160;  ffi::Map&lt;ffi::String, ffi::Any&gt; <a class="code" href="classtvm_1_1DictAttrsNode.html#af348aa9a0f2095a34c82be2a97e6e8fc">dict</a>;</div>
-<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160; </div>
-<div class="line"><a name="l00150"></a><span class="lineno"><a class="line" href="classtvm_1_1DictAttrsNode.html#a6296a6c5f7946e291181996d30b78eb3">  150</a></span>&#160;  <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classtvm_1_1DictAttrsNode.html#a6296a6c5f7946e291181996d30b78eb3">RegisterReflection</a>() {</div>
-<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160;    <span class="keyword">namespace </span>rfl = ffi::reflection;</div>
-<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;    rfl::ObjectDef&lt;DictAttrsNode&gt;().def_ro(<span class="stringliteral">&quot;__dict__&quot;</span>, &amp;<a class="code" href="classtvm_1_1DictAttrsNode.html#af348aa9a0f2095a34c82be2a97e6e8fc">DictAttrsNode::dict</a>);</div>
-<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;  }</div>
-<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160; </div>
-<div class="line"><a name="l00155"></a><span class="lineno"><a class="line" href="classtvm_1_1DictAttrsNode.html#a942e6c4426178c6e8068fae60dac3311">  155</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classtvm_1_1DictAttrsNode.html#a942e6c4426178c6e8068fae60dac3311">InitByPackedArgs</a>(<span class="keyword">const</span> ffi::PackedArgs&amp; args, <span class="keywordtype">bool</span> allow_unknown) <span class="keyword">final</span>;</div>
-<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160; </div>
-<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;  <span class="comment">// type info</span></div>
-<div class="line"><a name="l00158"></a><span class="lineno"><a class="line" href="classtvm_1_1DictAttrsNode.html#aaef3e4d948905fc26a25d5ea8fd15c27">  158</a></span>&#160;  <span class="keyword">static</span> constexpr <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classtvm_1_1DictAttrsNode.html#aaef3e4d948905fc26a25d5ea8fd15c27">_type_key</a> = <span class="stringliteral">&quot;ir.DictAttrs&quot;</span>;</div>
-<div class="line"><a name="l00159"></a><span class="lineno"><a class="line" href="classtvm_1_1DictAttrsNode.html#a064a2af1c7fbe5140278e28cc5ec8c78">  159</a></span>&#160;  <a class="code" href="classtvm_1_1DictAttrsNode.html#a064a2af1c7fbe5140278e28cc5ec8c78">TVM_DECLARE_FINAL_OBJECT_INFO</a>(<a class="code" href="classtvm_1_1DictAttrsNode.html">DictAttrsNode</a>, <a class="code" href="classtvm_1_1BaseAttrsNode.html">BaseAttrsNode</a>);</div>
-<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;};</div>
-<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160; </div>
-<div class="line"><a name="l00166"></a><span class="lineno"><a class="line" href="classtvm_1_1DictAttrs.html">  166</a></span>&#160;<span class="keyword">class </span><a class="code" href="classtvm_1_1DictAttrs.html">DictAttrs</a> : <span class="keyword">public</span> <a class="code" href="classtvm_1_1Attrs.html">Attrs</a> {</div>
-<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160; <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00171"></a><span class="lineno"><a class="line" href="classtvm_1_1DictAttrs.html#ae7a8b87b44eda534913f28d6c7ef8d07">  171</a></span>&#160;  <span class="keyword">explicit</span> <a class="code" href="classtvm_1_1DictAttrs.html#ae7a8b87b44eda534913f28d6c7ef8d07">DictAttrs</a>(ffi::UnsafeInit tag) : <a class="code" href="classtvm_1_1Attrs.html">Attrs</a>(tag) {}</div>
-<div class="line"><a name="l00176"></a><span class="lineno"><a class="line" href="classtvm_1_1DictAttrs.html#aaba8e5c4c42eb8160df2e5e988174222">  176</a></span>&#160;  TVM_DLL <span class="keyword">explicit</span> <a class="code" href="classtvm_1_1DictAttrs.html#aaba8e5c4c42eb8160df2e5e988174222">DictAttrs</a>(ffi::Map&lt;ffi::String, Any&gt; dict = {});</div>
-<div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160; </div>
-<div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;  <span class="comment">// Utils for accessing attributes</span></div>
-<div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;  <span class="comment">// This needs to be on DictAttrs, not DictAttrsNode because we return the default</span></div>
-<div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;  <span class="comment">// value if DictAttrsNode is not defined.</span></div>
-<div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;<span class="comment"></span>  <span class="keyword">template</span> &lt;<span class="keyword">typename</span> TObjectRef&gt;</div>
-<div class="line"><a name="l00201"></a><span class="lineno"><a class="line" href="classtvm_1_1DictAttrs.html#ad186f731f94d6b6dcd37dacddcfc714a">  201</a></span>&#160;  ffi::Optional&lt;TObjectRef&gt; <a class="code" href="classtvm_1_1DictAttrs.html#ad186f731f94d6b6dcd37dacddcfc714a">GetAttr</a>(</div>
-<div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;      <span class="keyword">const</span> std::string&amp; attr_key,</div>
-<div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;      ffi::Optional&lt;TObjectRef&gt; default_value = ffi::Optional&lt;TObjectRef&gt;(std::nullopt))<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;    <span class="keywordflow">if</span> (!defined()) <span class="keywordflow">return</span> default_value;</div>
-<div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;    <span class="keyword">const</span> <a class="code" href="classtvm_1_1DictAttrsNode.html">DictAttrsNode</a>* node = this-&gt;as&lt;DictAttrsNode&gt;();</div>
-<div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;    <span class="keyword">auto</span> it = node-&gt;<a class="code" href="classtvm_1_1DictAttrsNode.html#af348aa9a0f2095a34c82be2a97e6e8fc">dict</a>.find(attr_key);</div>
-<div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;    <span class="keywordflow">if</span> (it != node-&gt;<a class="code" href="classtvm_1_1DictAttrsNode.html#af348aa9a0f2095a34c82be2a97e6e8fc">dict</a>.end()) {</div>
-<div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;      <span class="keywordflow">return</span> (*it).second.cast&lt;TObjectRef&gt;();</div>
-<div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;    } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;      <span class="keywordflow">return</span> default_value;</div>
-<div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;    }</div>
-<div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;  }</div>
-<div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;  <span class="comment">// variant that uses TObjectRef to enable implicit conversion to default value.</span></div>
-<div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;  <span class="keyword">template</span> &lt;<span class="keyword">typename</span> TObjectRef&gt;</div>
-<div class="line"><a name="l00215"></a><span class="lineno"><a class="line" href="classtvm_1_1DictAttrs.html#af63d14a1a6ffeb1c6fc403f46df8c13a">  215</a></span>&#160;  ffi::Optional&lt;TObjectRef&gt; <a class="code" href="classtvm_1_1DictAttrs.html#af63d14a1a6ffeb1c6fc403f46df8c13a">GetAttr</a>(<span class="keyword">const</span> std::string&amp; attr_key, TObjectRef default_value)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;    <span class="keywordflow">return</span> GetAttr&lt;TObjectRef&gt;(attr_key, ffi::Optional&lt;TObjectRef&gt;(default_value));</div>
-<div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;  }</div>
-<div class="line"><a name="l00237"></a><span class="lineno"><a class="line" href="classtvm_1_1DictAttrs.html#a45e524ce0f8ae389341ec37e468d887d">  237</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classtvm_1_1DictAttrs.html#a45e524ce0f8ae389341ec37e468d887d">HasNonzeroAttr</a>(<span class="keyword">const</span> std::string&amp; attr_key)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;    <span class="keywordflow">return</span> GetAttr&lt;Integer&gt;(attr_key, 0).value_or(0).IntValue() != 0;</div>
-<div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;  }</div>
-<div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160; </div>
-<div class="line"><a name="l00241"></a><span class="lineno"><a class="line" href="classtvm_1_1DictAttrs.html#afcb5444a0a4ad51f9b2968368e17aa79">  241</a></span>&#160;  <a class="code" href="classtvm_1_1DictAttrs.html#afcb5444a0a4ad51f9b2968368e17aa79">TVM_DEFINE_OBJECT_REF_METHODS_WITHOUT_DEFAULT_CONSTRUCTOR</a>(<a class="code" href="classtvm_1_1DictAttrs.html">DictAttrs</a>, <a class="code" href="classtvm_1_1Attrs.html">Attrs</a>, <a class="code" href="classtvm_1_1DictAttrsNode.html">Di [...]
-<div class="line"><a name="l00242"></a><span class="lineno"><a class="line" href="classtvm_1_1DictAttrs.html#adcb7e5ecede9d976bda30fb3f762c953">  242</a></span>&#160;  <a class="code" href="classtvm_1_1DictAttrs.html#adcb7e5ecede9d976bda30fb3f762c953">TVM_DEFINE_OBJECT_REF_COW_METHOD</a>(<a class="code" href="classtvm_1_1DictAttrsNode.html">DictAttrsNode</a>);</div>
-<div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;};</div>
-<div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160; </div>
-<div class="line"><a name="l00255"></a><span class="lineno"><a class="line" href="namespacetvm.html#a59d3cb510c04a3afbe0ec546078db2ea">  255</a></span>&#160;<a class="code" href="classtvm_1_1DictAttrs.html">DictAttrs</a> <a class="code" href="namespacetvm.html#a59d3cb510c04a3afbe0ec546078db2ea">WithAttrs</a>(<a class="code" href="classtvm_1_1DictAttrs.html">DictAttrs</a> attrs, ffi::Map&lt;ffi::String, Any&gt; new_attrs);</div>
-<div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160; </div>
-<div class="line"><a name="l00268"></a><span class="lineno"><a class="line" href="namespacetvm.html#ac72a699554139c2b75c8a3bd03af2bd2">  268</a></span>&#160;<a class="code" href="classtvm_1_1DictAttrs.html">DictAttrs</a> <a class="code" href="namespacetvm.html#ac72a699554139c2b75c8a3bd03af2bd2">WithAttr</a>(<a class="code" href="classtvm_1_1DictAttrs.html">DictAttrs</a> attrs, ffi::String key, Any value);</div>
-<div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160; </div>
-<div class="line"><a name="l00270"></a><span class="lineno"><a class="line" href="namespacetvm.html#a2c089f4112b14b10d2288007d257382a">  270</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="classtvm_1_1DictAttrs.html">DictAttrs</a> <a class="code" href="namespacetvm.html#ac72a699554139c2b75c8a3bd03af2bd2">WithAttr</a>(<a class="code" href="classtvm_1_1DictAttrs.html">DictAttrs</a> attrs, <span class="keyword">const</span> std::string&amp; key, Any value) {</div>
-<div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;  <span class="keywordflow">return</span> <a class="code" href="namespacetvm.html#ac72a699554139c2b75c8a3bd03af2bd2">WithAttr</a>(std::move(attrs), ffi::String(key), std::move(value));</div>
-<div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;}</div>
-<div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160; </div>
-<div class="line"><a name="l00283"></a><span class="lineno"><a class="line" href="namespacetvm.html#a1c16c956c043e2dd23bcaf5ff5272692">  283</a></span>&#160;<a class="code" href="classtvm_1_1DictAttrs.html">DictAttrs</a> <a class="code" href="namespacetvm.html#a1c16c956c043e2dd23bcaf5ff5272692">WithoutAttr</a>(<a class="code" href="classtvm_1_1DictAttrs.html">DictAttrs</a> attrs, <span class="keyword">const</span> std::string&amp; key);</div>
-<div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160; </div>
-<div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> TFunc&gt;</div>
-<div class="line"><a name="l00313"></a><span class="lineno"><a class="line" href="namespacetvm.html#a61b12b12e74b3984360d40547aa7ab29">  313</a></span>&#160;<span class="keyword">inline</span> TFunc <a class="code" href="namespacetvm.html#ac72a699554139c2b75c8a3bd03af2bd2">WithAttr</a>(TFunc input, <span class="keyword">const</span> std::string&amp; attr_key, Any attr_value) {</div>
-<div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;  <span class="keyword">using</span> TNode = <span class="keyword">typename</span> TFunc::ContainerType;</div>
-<div class="line"><a name="l00315"></a><span class="lineno">  315</span>&#160;  static_assert(TNode::_type_final, <span class="stringliteral">&quot;Can only operate on the leaf nodes&quot;</span>);</div>
-<div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;  TNode* node = input.CopyOnWrite();</div>
-<div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160;  node-&gt;attrs = <a class="code" href="namespacetvm.html#ac72a699554139c2b75c8a3bd03af2bd2">WithAttr</a>(std::move(node-&gt;attrs), attr_key, attr_value);</div>
-<div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160;  <span class="keywordflow">return</span> input;</div>
-<div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;}</div>
-<div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160; </div>
-<div class="line"><a name="l00331"></a><span class="lineno">  331</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> TFunc&gt;</div>
-<div class="line"><a name="l00332"></a><span class="lineno"><a class="line" href="namespacetvm.html#a31d64ff4720a3ed13273776208ab1391">  332</a></span>&#160;<span class="keyword">inline</span> TFunc <a class="code" href="namespacetvm.html#a59d3cb510c04a3afbe0ec546078db2ea">WithAttrs</a>(TFunc input, ffi::Map&lt;ffi::String, Any&gt; attrs) {</div>
-<div class="line"><a name="l00333"></a><span class="lineno">  333</span>&#160;  <span class="keyword">using</span> TNode = <span class="keyword">typename</span> TFunc::ContainerType;</div>
-<div class="line"><a name="l00334"></a><span class="lineno">  334</span>&#160;  static_assert(TNode::_type_final, <span class="stringliteral">&quot;Can only operate on the leaf nodes&quot;</span>);</div>
-<div class="line"><a name="l00335"></a><span class="lineno">  335</span>&#160;  TNode* node = input.CopyOnWrite();</div>
-<div class="line"><a name="l00336"></a><span class="lineno">  336</span>&#160; </div>
-<div class="line"><a name="l00337"></a><span class="lineno">  337</span>&#160;  node-&gt;attrs = <a class="code" href="namespacetvm.html#a59d3cb510c04a3afbe0ec546078db2ea">WithAttrs</a>(std::move(node-&gt;attrs), attrs);</div>
+<div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="classtvm_1_1AttrFieldInfoNode.html#afba3081e4108c2ba2d34a6a228de5d88">   85</a></span>&#160;  <span class="keyword">static</span> constexpr TVMFFISEqHashKind <a class="code" href="classtvm_1_1AttrFieldInfoNode.html#afba3081e4108c2ba2d34a6a228de5d88">_type_s_eq_hash_kind</a> = kTVMFFISEqHashKindTreeNode;</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160; </div>
+<div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="classtvm_1_1AttrFieldInfoNode.html#aafcd1ccd44f6e27c3783d46bb3e774d4">   87</a></span>&#160;  <a class="code" href="classtvm_1_1AttrFieldInfoNode.html#aafcd1ccd44f6e27c3783d46bb3e774d4">TVM_FFI_DECLARE_OBJECT_INFO_FINAL</a>(<span class="stringliteral">&quot;ir.AttrFieldInfo&quot;</span>, <a class="code" href="classtvm_1_1AttrFieldInfoNode.html">AttrFieldInfoNode</a>, Object);</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;};</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160; </div>
+<div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="classtvm_1_1AttrFieldInfo.html">   91</a></span>&#160;<span class="keyword">class </span><a class="code" href="classtvm_1_1AttrFieldInfo.html">AttrFieldInfo</a> : <span class="keyword">public</span> ObjectRef {</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160; <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="classtvm_1_1AttrFieldInfo.html#a3ae31205d125508f83752ba76dcef2cd">   93</a></span>&#160;  <a class="code" href="classtvm_1_1AttrFieldInfo.html#a3ae31205d125508f83752ba76dcef2cd">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE</a>(<a class="code" href="classtvm_1_1AttrFieldInfo.html">AttrFieldInfo</a>, ObjectRef, <a class="code" href="classtvm_1_1AttrFieldInfoNode.html">AttrFieldInfoNode</a>);</div>
+<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;};</div>
+<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160; </div>
+<div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="classtvm_1_1BaseAttrsNode.html">  102</a></span>&#160;<span class="keyword">class </span><a class="code" href="classtvm_1_1BaseAttrsNode.html">BaseAttrsNode</a> : <span class="keyword">public</span> Object {</div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160; <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="classtvm_1_1BaseAttrsNode.html#a225581a40231b2de219da30fced428a2">  105</a></span>&#160;  <span class="keyword">virtual</span> <a class="code" href="classtvm_1_1BaseAttrsNode.html#a225581a40231b2de219da30fced428a2">~BaseAttrsNode</a>() {}</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;  <span class="keyword">template</span> &lt;<span class="keyword">typename</span>... Args&gt;</div>
+<div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="classtvm_1_1BaseAttrsNode.html#abcc04a722102d16fd4d86f9b7dcdd1e1">  112</a></span>&#160;  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classtvm_1_1BaseAttrsNode.html#abcc04a722102d16fd4d86f9b7dcdd1e1">InitBySeq</a>(Args&amp;&amp;... args);</div>
+<div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="classtvm_1_1BaseAttrsNode.html#adf84245590cf8fa64042329a24eaad54">  120</a></span>&#160;  TVM_DLL <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="classtvm_1_1BaseAttrsNode.html#adf84245590cf8fa64042329a24eaad54">InitByPackedArgs</a>(<span class="keyword">const</span> ffi::PackedArgs&amp; kwargs,</div>
+<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;                                        <span class="keywordtype">bool</span> allow_unknown = <span class="keyword">false</span>) = 0;</div>
+<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160; </div>
+<div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="classtvm_1_1BaseAttrsNode.html#a7c9d86042f7419c0cc25b7b9c1aa8695">  123</a></span>&#160;  <span class="keyword">static</span> constexpr TVMFFISEqHashKind <a class="code" href="classtvm_1_1BaseAttrsNode.html#a7c9d86042f7419c0cc25b7b9c1aa8695">_type_s_eq_hash_kind</a> = kTVMFFISEqHashKindTreeNode;</div>
+<div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="classtvm_1_1BaseAttrsNode.html#afabaaba39bdc345410373b0e73125f2a">  124</a></span>&#160;  <a class="code" href="classtvm_1_1BaseAttrsNode.html#afabaaba39bdc345410373b0e73125f2a">TVM_FFI_DECLARE_OBJECT_INFO</a>(<span class="stringliteral">&quot;ir.Attrs&quot;</span>, <a class="code" href="classtvm_1_1BaseAttrsNode.html">BaseAttrsNode</a>, Object);</div>
+<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;};</div>
+<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160; </div>
+<div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="classtvm_1_1Attrs.html">  131</a></span>&#160;<span class="keyword">class </span><a class="code" href="classtvm_1_1Attrs.html">Attrs</a> : <span class="keyword">public</span> ObjectRef {</div>
+<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160; <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="classtvm_1_1Attrs.html#a329a6fb7890822cb4c09c6e84b29908f">  133</a></span>&#160;  <a class="code" href="classtvm_1_1Attrs.html#a329a6fb7890822cb4c09c6e84b29908f">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE</a>(<a class="code" href="classtvm_1_1Attrs.html">Attrs</a>, ObjectRef, <a class="code" href="classtvm_1_1BaseAttrsNode.html">BaseAttrsNode</a>);</div>
+<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;};</div>
+<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160; </div>
+<div class="line"><a name="l00142"></a><span class="lineno"><a class="line" href="classtvm_1_1DictAttrsNode.html">  142</a></span>&#160;<span class="keyword">class </span><a class="code" href="classtvm_1_1DictAttrsNode.html">DictAttrsNode</a> : <span class="keyword">public</span> <a class="code" href="classtvm_1_1BaseAttrsNode.html">BaseAttrsNode</a> {</div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160; <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="classtvm_1_1DictAttrsNode.html#af348aa9a0f2095a34c82be2a97e6e8fc">  145</a></span>&#160;  ffi::Map&lt;ffi::String, ffi::Any&gt; <a class="code" href="classtvm_1_1DictAttrsNode.html#af348aa9a0f2095a34c82be2a97e6e8fc">dict</a>;</div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160; </div>
+<div class="line"><a name="l00147"></a><span class="lineno"><a class="line" href="classtvm_1_1DictAttrsNode.html#a6296a6c5f7946e291181996d30b78eb3">  147</a></span>&#160;  <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classtvm_1_1DictAttrsNode.html#a6296a6c5f7946e291181996d30b78eb3">RegisterReflection</a>() {</div>
+<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;    <span class="keyword">namespace </span>rfl = ffi::reflection;</div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;    rfl::ObjectDef&lt;DictAttrsNode&gt;().def_ro(<span class="stringliteral">&quot;__dict__&quot;</span>, &amp;<a class="code" href="classtvm_1_1DictAttrsNode.html#af348aa9a0f2095a34c82be2a97e6e8fc">DictAttrsNode::dict</a>);</div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;  }</div>
+<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160; </div>
+<div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="classtvm_1_1DictAttrsNode.html#a942e6c4426178c6e8068fae60dac3311">  152</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classtvm_1_1DictAttrsNode.html#a942e6c4426178c6e8068fae60dac3311">InitByPackedArgs</a>(<span class="keyword">const</span> ffi::PackedArgs&amp; args, <span class="keywordtype">bool</span> allow_unknown) <span class="keyword">final</span>;</div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160; </div>
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;  <span class="comment">// type info</span></div>
+<div class="line"><a name="l00155"></a><span class="lineno"><a class="line" href="classtvm_1_1DictAttrsNode.html#a4c67d6d4272cdb2a86d1e1c7dd5f7b39">  155</a></span>&#160;  <a class="code" href="classtvm_1_1DictAttrsNode.html#a4c67d6d4272cdb2a86d1e1c7dd5f7b39">TVM_FFI_DECLARE_OBJECT_INFO_FINAL</a>(<span class="stringliteral">&quot;ir.DictAttrs&quot;</span>, <a class="code" href="classtvm_1_1DictAttrsNode.html">DictAttrsNode</a>, <a class="code" href="classtvm_1_1BaseAttrsNode.html">BaseAt [...]
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;};</div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160; </div>
+<div class="line"><a name="l00162"></a><span class="lineno"><a class="line" href="classtvm_1_1DictAttrs.html">  162</a></span>&#160;<span class="keyword">class </span><a class="code" href="classtvm_1_1DictAttrs.html">DictAttrs</a> : <span class="keyword">public</span> <a class="code" href="classtvm_1_1Attrs.html">Attrs</a> {</div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160; <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00167"></a><span class="lineno"><a class="line" href="classtvm_1_1DictAttrs.html#ae7a8b87b44eda534913f28d6c7ef8d07">  167</a></span>&#160;  <span class="keyword">explicit</span> <a class="code" href="classtvm_1_1DictAttrs.html#ae7a8b87b44eda534913f28d6c7ef8d07">DictAttrs</a>(ffi::UnsafeInit tag) : <a class="code" href="classtvm_1_1Attrs.html">Attrs</a>(tag) {}</div>
+<div class="line"><a name="l00172"></a><span class="lineno"><a class="line" href="classtvm_1_1DictAttrs.html#aaba8e5c4c42eb8160df2e5e988174222">  172</a></span>&#160;  TVM_DLL <span class="keyword">explicit</span> <a class="code" href="classtvm_1_1DictAttrs.html#aaba8e5c4c42eb8160df2e5e988174222">DictAttrs</a>(ffi::Map&lt;ffi::String, Any&gt; dict = {});</div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160; </div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;  <span class="comment">// Utils for accessing attributes</span></div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;  <span class="comment">// This needs to be on DictAttrs, not DictAttrsNode because we return the default</span></div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;  <span class="comment">// value if DictAttrsNode is not defined.</span></div>
+<div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;<span class="comment"></span>  <span class="keyword">template</span> &lt;<span class="keyword">typename</span> TObjectRef&gt;</div>
+<div class="line"><a name="l00197"></a><span class="lineno"><a class="line" href="classtvm_1_1DictAttrs.html#ad186f731f94d6b6dcd37dacddcfc714a">  197</a></span>&#160;  ffi::Optional&lt;TObjectRef&gt; <a class="code" href="classtvm_1_1DictAttrs.html#ad186f731f94d6b6dcd37dacddcfc714a">GetAttr</a>(</div>
+<div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;      <span class="keyword">const</span> std::string&amp; attr_key,</div>
+<div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;      ffi::Optional&lt;TObjectRef&gt; default_value = ffi::Optional&lt;TObjectRef&gt;(std::nullopt))<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;    <span class="keywordflow">if</span> (!defined()) <span class="keywordflow">return</span> default_value;</div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;    <span class="keyword">const</span> <a class="code" href="classtvm_1_1DictAttrsNode.html">DictAttrsNode</a>* node = this-&gt;as&lt;DictAttrsNode&gt;();</div>
+<div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;    <span class="keyword">auto</span> it = node-&gt;<a class="code" href="classtvm_1_1DictAttrsNode.html#af348aa9a0f2095a34c82be2a97e6e8fc">dict</a>.find(attr_key);</div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;    <span class="keywordflow">if</span> (it != node-&gt;<a class="code" href="classtvm_1_1DictAttrsNode.html#af348aa9a0f2095a34c82be2a97e6e8fc">dict</a>.end()) {</div>
+<div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;      <span class="keywordflow">return</span> (*it).second.cast&lt;TObjectRef&gt;();</div>
+<div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;    } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;      <span class="keywordflow">return</span> default_value;</div>
+<div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;    }</div>
+<div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;  }</div>
+<div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;  <span class="comment">// variant that uses TObjectRef to enable implicit conversion to default value.</span></div>
+<div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;  <span class="keyword">template</span> &lt;<span class="keyword">typename</span> TObjectRef&gt;</div>
+<div class="line"><a name="l00211"></a><span class="lineno"><a class="line" href="classtvm_1_1DictAttrs.html#af63d14a1a6ffeb1c6fc403f46df8c13a">  211</a></span>&#160;  ffi::Optional&lt;TObjectRef&gt; <a class="code" href="classtvm_1_1DictAttrs.html#af63d14a1a6ffeb1c6fc403f46df8c13a">GetAttr</a>(<span class="keyword">const</span> std::string&amp; attr_key, TObjectRef default_value)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;    <span class="keywordflow">return</span> GetAttr&lt;TObjectRef&gt;(attr_key, ffi::Optional&lt;TObjectRef&gt;(default_value));</div>
+<div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;  }</div>
+<div class="line"><a name="l00233"></a><span class="lineno"><a class="line" href="classtvm_1_1DictAttrs.html#a45e524ce0f8ae389341ec37e468d887d">  233</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="classtvm_1_1DictAttrs.html#a45e524ce0f8ae389341ec37e468d887d">HasNonzeroAttr</a>(<span class="keyword">const</span> std::string&amp; attr_key)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;    <span class="keywordflow">return</span> GetAttr&lt;Integer&gt;(attr_key, 0).value_or(0).IntValue() != 0;</div>
+<div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;  }</div>
+<div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160; </div>
+<div class="line"><a name="l00237"></a><span class="lineno"><a class="line" href="classtvm_1_1DictAttrs.html#aedcebe6fa883eef8d0e4fdbf35909e6b">  237</a></span>&#160;  <a class="code" href="classtvm_1_1DictAttrs.html#aedcebe6fa883eef8d0e4fdbf35909e6b">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE_WITHOUT_DEFAULT_CONSTRUCTOR</a>(<a class="code" href="classtvm_1_1DictAttrs.html">DictAttrs</a>, <a class="code" href="classtvm_1_1Attrs.html">Attrs</a>,</div>
+<div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;                                                                         <a class="code" href="classtvm_1_1DictAttrsNode.html">DictAttrsNode</a>);</div>
+<div class="line"><a name="l00239"></a><span class="lineno"><a class="line" href="classtvm_1_1DictAttrs.html#adcb7e5ecede9d976bda30fb3f762c953">  239</a></span>&#160;  <a class="code" href="classtvm_1_1DictAttrs.html#adcb7e5ecede9d976bda30fb3f762c953">TVM_DEFINE_OBJECT_REF_COW_METHOD</a>(<a class="code" href="classtvm_1_1DictAttrsNode.html">DictAttrsNode</a>);</div>
+<div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;};</div>
+<div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160; </div>
+<div class="line"><a name="l00252"></a><span class="lineno"><a class="line" href="namespacetvm.html#a59d3cb510c04a3afbe0ec546078db2ea">  252</a></span>&#160;<a class="code" href="classtvm_1_1DictAttrs.html">DictAttrs</a> <a class="code" href="namespacetvm.html#a59d3cb510c04a3afbe0ec546078db2ea">WithAttrs</a>(<a class="code" href="classtvm_1_1DictAttrs.html">DictAttrs</a> attrs, ffi::Map&lt;ffi::String, Any&gt; new_attrs);</div>
+<div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160; </div>
+<div class="line"><a name="l00265"></a><span class="lineno"><a class="line" href="namespacetvm.html#ac72a699554139c2b75c8a3bd03af2bd2">  265</a></span>&#160;<a class="code" href="classtvm_1_1DictAttrs.html">DictAttrs</a> <a class="code" href="namespacetvm.html#ac72a699554139c2b75c8a3bd03af2bd2">WithAttr</a>(<a class="code" href="classtvm_1_1DictAttrs.html">DictAttrs</a> attrs, ffi::String key, Any value);</div>
+<div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160; </div>
+<div class="line"><a name="l00267"></a><span class="lineno"><a class="line" href="namespacetvm.html#a2c089f4112b14b10d2288007d257382a">  267</a></span>&#160;<span class="keyword">inline</span> <a class="code" href="classtvm_1_1DictAttrs.html">DictAttrs</a> <a class="code" href="namespacetvm.html#ac72a699554139c2b75c8a3bd03af2bd2">WithAttr</a>(<a class="code" href="classtvm_1_1DictAttrs.html">DictAttrs</a> attrs, <span class="keyword">const</span> std::string&amp; key, Any value) {</div>
+<div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;  <span class="keywordflow">return</span> <a class="code" href="namespacetvm.html#ac72a699554139c2b75c8a3bd03af2bd2">WithAttr</a>(std::move(attrs), ffi::String(key), std::move(value));</div>
+<div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;}</div>
+<div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160; </div>
+<div class="line"><a name="l00280"></a><span class="lineno"><a class="line" href="namespacetvm.html#a1c16c956c043e2dd23bcaf5ff5272692">  280</a></span>&#160;<a class="code" href="classtvm_1_1DictAttrs.html">DictAttrs</a> <a class="code" href="namespacetvm.html#a1c16c956c043e2dd23bcaf5ff5272692">WithoutAttr</a>(<a class="code" href="classtvm_1_1DictAttrs.html">DictAttrs</a> attrs, <span class="keyword">const</span> std::string&amp; key);</div>
+<div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160; </div>
+<div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> TFunc&gt;</div>
+<div class="line"><a name="l00310"></a><span class="lineno"><a class="line" href="namespacetvm.html#a61b12b12e74b3984360d40547aa7ab29">  310</a></span>&#160;<span class="keyword">inline</span> TFunc <a class="code" href="namespacetvm.html#ac72a699554139c2b75c8a3bd03af2bd2">WithAttr</a>(TFunc input, <span class="keyword">const</span> std::string&amp; attr_key, Any attr_value) {</div>
+<div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160;  <span class="keyword">using</span> TNode = <span class="keyword">typename</span> TFunc::ContainerType;</div>
+<div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;  static_assert(TNode::_type_final, <span class="stringliteral">&quot;Can only operate on the leaf nodes&quot;</span>);</div>
+<div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160;  TNode* node = input.CopyOnWrite();</div>
+<div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;  node-&gt;attrs = <a class="code" href="namespacetvm.html#ac72a699554139c2b75c8a3bd03af2bd2">WithAttr</a>(std::move(node-&gt;attrs), attr_key, attr_value);</div>
+<div class="line"><a name="l00315"></a><span class="lineno">  315</span>&#160;  <span class="keywordflow">return</span> input;</div>
+<div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;}</div>
+<div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160; </div>
+<div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> TFunc&gt;</div>
+<div class="line"><a name="l00329"></a><span class="lineno"><a class="line" href="namespacetvm.html#a31d64ff4720a3ed13273776208ab1391">  329</a></span>&#160;<span class="keyword">inline</span> TFunc <a class="code" href="namespacetvm.html#a59d3cb510c04a3afbe0ec546078db2ea">WithAttrs</a>(TFunc input, ffi::Map&lt;ffi::String, Any&gt; attrs) {</div>
+<div class="line"><a name="l00330"></a><span class="lineno">  330</span>&#160;  <span class="keyword">using</span> TNode = <span class="keyword">typename</span> TFunc::ContainerType;</div>
+<div class="line"><a name="l00331"></a><span class="lineno">  331</span>&#160;  static_assert(TNode::_type_final, <span class="stringliteral">&quot;Can only operate on the leaf nodes&quot;</span>);</div>
+<div class="line"><a name="l00332"></a><span class="lineno">  332</span>&#160;  TNode* node = input.CopyOnWrite();</div>
+<div class="line"><a name="l00333"></a><span class="lineno">  333</span>&#160; </div>
+<div class="line"><a name="l00334"></a><span class="lineno">  334</span>&#160;  node-&gt;attrs = <a class="code" href="namespacetvm.html#a59d3cb510c04a3afbe0ec546078db2ea">WithAttrs</a>(std::move(node-&gt;attrs), attrs);</div>
+<div class="line"><a name="l00335"></a><span class="lineno">  335</span>&#160; </div>
+<div class="line"><a name="l00336"></a><span class="lineno">  336</span>&#160;  <span class="keywordflow">return</span> input;</div>
+<div class="line"><a name="l00337"></a><span class="lineno">  337</span>&#160;}</div>
 <div class="line"><a name="l00338"></a><span class="lineno">  338</span>&#160; </div>
-<div class="line"><a name="l00339"></a><span class="lineno">  339</span>&#160;  <span class="keywordflow">return</span> input;</div>
-<div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;}</div>
-<div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160; </div>
-<div class="line"><a name="l00368"></a><span class="lineno">  368</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> TFunc&gt;</div>
-<div class="line"><a name="l00369"></a><span class="lineno"><a class="line" href="namespacetvm.html#a7e2bc626db8be997b1562c79df3d9e11">  369</a></span>&#160;<span class="keyword">inline</span> TFunc <a class="code" href="namespacetvm.html#a1c16c956c043e2dd23bcaf5ff5272692">WithoutAttr</a>(TFunc input, <span class="keyword">const</span> std::string&amp; attr_key) {</div>
-<div class="line"><a name="l00370"></a><span class="lineno">  370</span>&#160;  <span class="keyword">using</span> TNode = <span class="keyword">typename</span> TFunc::ContainerType;</div>
-<div class="line"><a name="l00371"></a><span class="lineno">  371</span>&#160;  static_assert(TNode::_type_final, <span class="stringliteral">&quot;Can only operate on the leaf nodes&quot;</span>);</div>
+<div class="line"><a name="l00365"></a><span class="lineno">  365</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> TFunc&gt;</div>
+<div class="line"><a name="l00366"></a><span class="lineno"><a class="line" href="namespacetvm.html#a7e2bc626db8be997b1562c79df3d9e11">  366</a></span>&#160;<span class="keyword">inline</span> TFunc <a class="code" href="namespacetvm.html#a1c16c956c043e2dd23bcaf5ff5272692">WithoutAttr</a>(TFunc input, <span class="keyword">const</span> std::string&amp; attr_key) {</div>
+<div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160;  <span class="keyword">using</span> TNode = <span class="keyword">typename</span> TFunc::ContainerType;</div>
+<div class="line"><a name="l00368"></a><span class="lineno">  368</span>&#160;  static_assert(TNode::_type_final, <span class="stringliteral">&quot;Can only operate on the leaf nodes&quot;</span>);</div>
+<div class="line"><a name="l00369"></a><span class="lineno">  369</span>&#160; </div>
+<div class="line"><a name="l00370"></a><span class="lineno">  370</span>&#160;  TNode* node = input.CopyOnWrite();</div>
+<div class="line"><a name="l00371"></a><span class="lineno">  371</span>&#160;  node-&gt;attrs = <a class="code" href="namespacetvm.html#a1c16c956c043e2dd23bcaf5ff5272692">WithoutAttr</a>(std::move(node-&gt;attrs), attr_key);</div>
 <div class="line"><a name="l00372"></a><span class="lineno">  372</span>&#160; </div>
-<div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160;  TNode* node = input.CopyOnWrite();</div>
-<div class="line"><a name="l00374"></a><span class="lineno">  374</span>&#160;  node-&gt;attrs = <a class="code" href="namespacetvm.html#a1c16c956c043e2dd23bcaf5ff5272692">WithoutAttr</a>(std::move(node-&gt;attrs), attr_key);</div>
+<div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160;  <span class="keywordflow">return</span> input;</div>
+<div class="line"><a name="l00374"></a><span class="lineno">  374</span>&#160;}</div>
 <div class="line"><a name="l00375"></a><span class="lineno">  375</span>&#160; </div>
-<div class="line"><a name="l00376"></a><span class="lineno">  376</span>&#160;  <span class="keywordflow">return</span> input;</div>
-<div class="line"><a name="l00377"></a><span class="lineno">  377</span>&#160;}</div>
-<div class="line"><a name="l00378"></a><span class="lineno">  378</span>&#160; </div>
-<div class="line"><a name="l00387"></a><span class="lineno">  387</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> DerivedType&gt;</div>
-<div class="line"><a name="l00388"></a><span class="lineno"><a class="line" href="classtvm_1_1AttrsNodeReflAdapter.html">  388</a></span>&#160;<span class="keyword">class </span><a class="code" href="classtvm_1_1AttrsNodeReflAdapter.html">AttrsNodeReflAdapter</a> : <span class="keyword">public</span> <a class="code" href="classtvm_1_1BaseAttrsNode.html">BaseAttrsNode</a> {</div>
-<div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160; <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00390"></a><span class="lineno"><a class="line" href="classtvm_1_1AttrsNodeReflAdapter.html#a4ecc2c9f98b17f656cbfe5755461e30c">  390</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classtvm_1_1AttrsNodeReflAdapter.html#a4ecc2c9f98b17f656cbfe5755461e30c">InitByPackedArgs</a>(<span class="keyword">const</span> ffi::PackedArgs&amp; args, <span class="keywordtype">bool</span> allow_unknown) <span class="keyword">final</span> {</div>
-<div class="line"><a name="l00391"></a><span class="lineno">  391</span>&#160;    LOG(FATAL) &lt;&lt; <span class="stringliteral">&quot;`&quot;</span> &lt;&lt; DerivedType::_type_key &lt;&lt; <span class="stringliteral">&quot;` uses new reflection mechanism for init&quot;</span>;</div>
-<div class="line"><a name="l00392"></a><span class="lineno">  392</span>&#160;  }</div>
-<div class="line"><a name="l00393"></a><span class="lineno">  393</span>&#160; </div>
-<div class="line"><a name="l00394"></a><span class="lineno">  394</span>&#160; <span class="keyword">private</span>:</div>
-<div class="line"><a name="l00395"></a><span class="lineno">  395</span>&#160;  DerivedType* <span class="keyword">self</span>() <span class="keyword">const</span> {</div>
-<div class="line"><a name="l00396"></a><span class="lineno">  396</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span>DerivedType*<span class="keyword">&gt;</span>(<span class="keyword">static_cast&lt;</span><span class="keyword">const </span>DerivedType*<span class="keyword">&gt;</span>(<span class="keyword">this</span>));</div>
-<div class="line"><a name="l00397"></a><span class="lineno">  397</span>&#160;  }</div>
-<div class="line"><a name="l00398"></a><span class="lineno">  398</span>&#160;};</div>
-<div class="line"><a name="l00399"></a><span class="lineno">  399</span>&#160; </div>
-<div class="line"><a name="l00405"></a><span class="lineno">  405</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> TAttrs&gt;</div>
-<div class="line"><a name="l00406"></a><span class="lineno"><a class="line" href="namespacetvm.html#a2e3193a20ee748b08d5a528275859dbe">  406</a></span>&#160;<span class="keyword">inline</span> TAttrs <a class="code" href="namespacetvm.html#a2e3193a20ee748b08d5a528275859dbe">AttrsWithDefaultValues</a>() {</div>
-<div class="line"><a name="l00407"></a><span class="lineno">  407</span>&#160;  static_assert(std::is_base_of_v&lt;Attrs, TAttrs&gt;, <span class="stringliteral">&quot;Can only take attr nodes&quot;</span>);</div>
-<div class="line"><a name="l00408"></a><span class="lineno">  408</span>&#160;  <span class="keyword">using</span> ContainerType = <span class="keyword">typename</span> TAttrs::ContainerType;</div>
-<div class="line"><a name="l00409"></a><span class="lineno">  409</span>&#160;  <span class="keywordflow">if</span> constexpr (std::is_base_of_v&lt;<a class="code" href="classtvm_1_1AttrsNodeReflAdapter.html">AttrsNodeReflAdapter&lt;ContainerType&gt;</a>, ContainerType&gt;) {</div>
-<div class="line"><a name="l00410"></a><span class="lineno">  410</span>&#160;    <span class="keyword">static</span> <span class="keyword">auto</span> finit_object = ffi::Function::GetGlobalRequired(<span class="stringliteral">&quot;ffi.MakeObjectFromPackedArgs&quot;</span>);</div>
-<div class="line"><a name="l00411"></a><span class="lineno">  411</span>&#160;    AnyView packed_args[1];</div>
-<div class="line"><a name="l00412"></a><span class="lineno">  412</span>&#160;    packed_args[0] = ContainerType::RuntimeTypeIndex();</div>
-<div class="line"><a name="l00413"></a><span class="lineno">  413</span>&#160;    ffi::Any rv;</div>
-<div class="line"><a name="l00414"></a><span class="lineno">  414</span>&#160;    finit_object.CallPacked(ffi::PackedArgs(packed_args, 1), &amp;rv);</div>
-<div class="line"><a name="l00415"></a><span class="lineno">  415</span>&#160;    <span class="keywordflow">return</span> rv.cast&lt;TAttrs&gt;();</div>
-<div class="line"><a name="l00416"></a><span class="lineno">  416</span>&#160;  } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00417"></a><span class="lineno">  417</span>&#160;    <span class="keyword">auto</span> n = ffi::make_object&lt;ContainerType&gt;();</div>
-<div class="line"><a name="l00418"></a><span class="lineno">  418</span>&#160;    n-&gt;InitByPackedArgs(ffi::PackedArgs(<span class="keyword">nullptr</span>, 0), <span class="keyword">false</span>);</div>
-<div class="line"><a name="l00419"></a><span class="lineno">  419</span>&#160;    <span class="keywordflow">return</span> TAttrs(n);</div>
-<div class="line"><a name="l00420"></a><span class="lineno">  420</span>&#160;  }</div>
-<div class="line"><a name="l00421"></a><span class="lineno">  421</span>&#160;}</div>
-<div class="line"><a name="l00422"></a><span class="lineno">  422</span>&#160; </div>
-<div class="line"><a name="l00423"></a><span class="lineno">  423</span>&#160;}  <span class="comment">// namespace tvm</span></div>
-<div class="line"><a name="l00424"></a><span class="lineno">  424</span>&#160;<span class="preprocessor">#endif  </span><span class="comment">// TVM_IR_ATTRS_H_</span></div>
+<div class="line"><a name="l00384"></a><span class="lineno">  384</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> DerivedType&gt;</div>
+<div class="line"><a name="l00385"></a><span class="lineno"><a class="line" href="classtvm_1_1AttrsNodeReflAdapter.html">  385</a></span>&#160;<span class="keyword">class </span><a class="code" href="classtvm_1_1AttrsNodeReflAdapter.html">AttrsNodeReflAdapter</a> : <span class="keyword">public</span> <a class="code" href="classtvm_1_1BaseAttrsNode.html">BaseAttrsNode</a> {</div>
+<div class="line"><a name="l00386"></a><span class="lineno">  386</span>&#160; <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00387"></a><span class="lineno"><a class="line" href="classtvm_1_1AttrsNodeReflAdapter.html#a4ecc2c9f98b17f656cbfe5755461e30c">  387</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classtvm_1_1AttrsNodeReflAdapter.html#a4ecc2c9f98b17f656cbfe5755461e30c">InitByPackedArgs</a>(<span class="keyword">const</span> ffi::PackedArgs&amp; args, <span class="keywordtype">bool</span> allow_unknown) <span class="keyword">final</span> {</div>
+<div class="line"><a name="l00388"></a><span class="lineno">  388</span>&#160;    LOG(FATAL) &lt;&lt; <span class="stringliteral">&quot;`&quot;</span> &lt;&lt; DerivedType::_type_key &lt;&lt; <span class="stringliteral">&quot;` uses new reflection mechanism for init&quot;</span>;</div>
+<div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160;  }</div>
+<div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160; </div>
+<div class="line"><a name="l00391"></a><span class="lineno">  391</span>&#160; <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00392"></a><span class="lineno">  392</span>&#160;  DerivedType* <span class="keyword">self</span>() <span class="keyword">const</span> {</div>
+<div class="line"><a name="l00393"></a><span class="lineno">  393</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">const_cast&lt;</span>DerivedType*<span class="keyword">&gt;</span>(<span class="keyword">static_cast&lt;</span><span class="keyword">const </span>DerivedType*<span class="keyword">&gt;</span>(<span class="keyword">this</span>));</div>
+<div class="line"><a name="l00394"></a><span class="lineno">  394</span>&#160;  }</div>
+<div class="line"><a name="l00395"></a><span class="lineno">  395</span>&#160;};</div>
+<div class="line"><a name="l00396"></a><span class="lineno">  396</span>&#160; </div>
+<div class="line"><a name="l00402"></a><span class="lineno">  402</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> TAttrs&gt;</div>
+<div class="line"><a name="l00403"></a><span class="lineno"><a class="line" href="namespacetvm.html#a2e3193a20ee748b08d5a528275859dbe">  403</a></span>&#160;<span class="keyword">inline</span> TAttrs <a class="code" href="namespacetvm.html#a2e3193a20ee748b08d5a528275859dbe">AttrsWithDefaultValues</a>() {</div>
+<div class="line"><a name="l00404"></a><span class="lineno">  404</span>&#160;  static_assert(std::is_base_of_v&lt;Attrs, TAttrs&gt;, <span class="stringliteral">&quot;Can only take attr nodes&quot;</span>);</div>
+<div class="line"><a name="l00405"></a><span class="lineno">  405</span>&#160;  <span class="keyword">using</span> ContainerType = <span class="keyword">typename</span> TAttrs::ContainerType;</div>
+<div class="line"><a name="l00406"></a><span class="lineno">  406</span>&#160;  <span class="keywordflow">if</span> constexpr (std::is_base_of_v&lt;<a class="code" href="classtvm_1_1AttrsNodeReflAdapter.html">AttrsNodeReflAdapter&lt;ContainerType&gt;</a>, ContainerType&gt;) {</div>
+<div class="line"><a name="l00407"></a><span class="lineno">  407</span>&#160;    <span class="keyword">static</span> <span class="keyword">auto</span> finit_object = ffi::Function::GetGlobalRequired(<span class="stringliteral">&quot;ffi.MakeObjectFromPackedArgs&quot;</span>);</div>
+<div class="line"><a name="l00408"></a><span class="lineno">  408</span>&#160;    AnyView packed_args[1];</div>
+<div class="line"><a name="l00409"></a><span class="lineno">  409</span>&#160;    packed_args[0] = ContainerType::RuntimeTypeIndex();</div>
+<div class="line"><a name="l00410"></a><span class="lineno">  410</span>&#160;    ffi::Any rv;</div>
+<div class="line"><a name="l00411"></a><span class="lineno">  411</span>&#160;    finit_object.CallPacked(ffi::PackedArgs(packed_args, 1), &amp;rv);</div>
+<div class="line"><a name="l00412"></a><span class="lineno">  412</span>&#160;    <span class="keywordflow">return</span> rv.cast&lt;TAttrs&gt;();</div>
+<div class="line"><a name="l00413"></a><span class="lineno">  413</span>&#160;  } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00414"></a><span class="lineno">  414</span>&#160;    <span class="keyword">auto</span> n = ffi::make_object&lt;ContainerType&gt;();</div>
+<div class="line"><a name="l00415"></a><span class="lineno">  415</span>&#160;    n-&gt;InitByPackedArgs(ffi::PackedArgs(<span class="keyword">nullptr</span>, 0), <span class="keyword">false</span>);</div>
+<div class="line"><a name="l00416"></a><span class="lineno">  416</span>&#160;    <span class="keywordflow">return</span> TAttrs(n);</div>
+<div class="line"><a name="l00417"></a><span class="lineno">  417</span>&#160;  }</div>
+<div class="line"><a name="l00418"></a><span class="lineno">  418</span>&#160;}</div>
+<div class="line"><a name="l00419"></a><span class="lineno">  419</span>&#160; </div>
+<div class="line"><a name="l00420"></a><span class="lineno">  420</span>&#160;}  <span class="comment">// namespace tvm</span></div>
+<div class="line"><a name="l00421"></a><span class="lineno">  421</span>&#160;<span class="preprocessor">#endif  </span><span class="comment">// TVM_IR_ATTRS_H_</span></div>
 <div class="ttc" id="aclasstvm_1_1AttrFieldInfoNode_html"><div class="ttname"><a href="classtvm_1_1AttrFieldInfoNode.html">tvm::AttrFieldInfoNode</a></div><div class="ttdoc">Information about attribute fields in string representations.</div><div class="ttdef"><b>Definition:</b> attrs.h:68</div></div>
 <div class="ttc" id="aclasstvm_1_1AttrFieldInfoNode_html_a1c31419f817ab146644d8be1f7a0bd39"><div class="ttname"><a href="classtvm_1_1AttrFieldInfoNode.html#a1c31419f817ab146644d8be1f7a0bd39">tvm::AttrFieldInfoNode::name</a></div><div class="ttdeci">ffi::String name</div><div class="ttdoc">name of the field</div><div class="ttdef"><b>Definition:</b> attrs.h:71</div></div>
 <div class="ttc" id="aclasstvm_1_1AttrFieldInfoNode_html_a41b9598ec008e11d6f24a3a7a1ad03fb"><div class="ttname"><a href="classtvm_1_1AttrFieldInfoNode.html#a41b9598ec008e11d6f24a3a7a1ad03fb">tvm::AttrFieldInfoNode::type_info</a></div><div class="ttdeci">ffi::String type_info</div><div class="ttdoc">type docstring information in str.</div><div class="ttdef"><b>Definition:</b> attrs.h:73</div></div>
 <div class="ttc" id="aclasstvm_1_1AttrFieldInfoNode_html_a431098190172ef1755e1bb34a7565845"><div class="ttname"><a href="classtvm_1_1AttrFieldInfoNode.html#a431098190172ef1755e1bb34a7565845">tvm::AttrFieldInfoNode::description</a></div><div class="ttdeci">ffi::String description</div><div class="ttdoc">detailed description of the type</div><div class="ttdef"><b>Definition:</b> attrs.h:75</div></div>
 <div class="ttc" id="aclasstvm_1_1AttrFieldInfoNode_html_a5e3b6347697842584c77d0122a6ecc51"><div class="ttname"><a href="classtvm_1_1AttrFieldInfoNode.html#a5e3b6347697842584c77d0122a6ecc51">tvm::AttrFieldInfoNode::RegisterReflection</a></div><div class="ttdeci">static void RegisterReflection()</div><div class="ttdef"><b>Definition:</b> attrs.h:77</div></div>
-<div class="ttc" id="aclasstvm_1_1AttrFieldInfoNode_html_a915476a2aefc4dfb342c3aa40f235b81"><div class="ttname"><a href="classtvm_1_1AttrFieldInfoNode.html#a915476a2aefc4dfb342c3aa40f235b81">tvm::AttrFieldInfoNode::TVM_DECLARE_FINAL_OBJECT_INFO</a></div><div class="ttdeci">TVM_DECLARE_FINAL_OBJECT_INFO(AttrFieldInfoNode, Object)</div></div>
-<div class="ttc" id="aclasstvm_1_1AttrFieldInfoNode_html_afba3081e4108c2ba2d34a6a228de5d88"><div class="ttname"><a href="classtvm_1_1AttrFieldInfoNode.html#afba3081e4108c2ba2d34a6a228de5d88">tvm::AttrFieldInfoNode::_type_s_eq_hash_kind</a></div><div class="ttdeci">static constexpr TVMFFISEqHashKind _type_s_eq_hash_kind</div><div class="ttdef"><b>Definition:</b> attrs.h:86</div></div>
-<div class="ttc" id="aclasstvm_1_1AttrFieldInfoNode_html_afe4293c9f1aea71f845c5ed9633af2c9"><div class="ttname"><a href="classtvm_1_1AttrFieldInfoNode.html#afe4293c9f1aea71f845c5ed9633af2c9">tvm::AttrFieldInfoNode::_type_key</a></div><div class="ttdeci">static constexpr const char * _type_key</div><div class="ttdef"><b>Definition:</b> attrs.h:85</div></div>
-<div class="ttc" id="aclasstvm_1_1AttrFieldInfo_html"><div class="ttname"><a href="classtvm_1_1AttrFieldInfo.html">tvm::AttrFieldInfo</a></div><div class="ttdoc">AttrFieldInfo.</div><div class="ttdef"><b>Definition:</b> attrs.h:92</div></div>
-<div class="ttc" id="aclasstvm_1_1AttrFieldInfo_html_af897e77cf019cd43014025ac0d2a5a37"><div class="ttname"><a href="classtvm_1_1AttrFieldInfo.html#af897e77cf019cd43014025ac0d2a5a37">tvm::AttrFieldInfo::TVM_DEFINE_OBJECT_REF_METHODS</a></div><div class="ttdeci">TVM_DEFINE_OBJECT_REF_METHODS(AttrFieldInfo, ObjectRef, AttrFieldInfoNode)</div></div>
-<div class="ttc" id="aclasstvm_1_1AttrsNodeReflAdapter_html"><div class="ttname"><a href="classtvm_1_1AttrsNodeReflAdapter.html">tvm::AttrsNodeReflAdapter</a></div><div class="ttdoc">Adapter for AttrsNode with the new reflection API.</div><div class="ttdef"><b>Definition:</b> attrs.h:388</div></div>
-<div class="ttc" id="aclasstvm_1_1AttrsNodeReflAdapter_html_a4ecc2c9f98b17f656cbfe5755461e30c"><div class="ttname"><a href="classtvm_1_1AttrsNodeReflAdapter.html#a4ecc2c9f98b17f656cbfe5755461e30c">tvm::AttrsNodeReflAdapter::InitByPackedArgs</a></div><div class="ttdeci">void InitByPackedArgs(const ffi::PackedArgs &amp;args, bool allow_unknown) final</div><div class="ttdoc">Initialize the attributes by arguments.</div><div class="ttdef"><b>Definition:</b> attrs.h:390</div></div>
-<div class="ttc" id="aclasstvm_1_1Attrs_html"><div class="ttname"><a href="classtvm_1_1Attrs.html">tvm::Attrs</a></div><div class="ttdoc">Managed reference to BaseAttrsNode.</div><div class="ttdef"><b>Definition:</b> attrs.h:134</div></div>
-<div class="ttc" id="aclasstvm_1_1Attrs_html_a1bf8ffc23955fe9b066d838ca41819e1"><div class="ttname"><a href="classtvm_1_1Attrs.html#a1bf8ffc23955fe9b066d838ca41819e1">tvm::Attrs::TVM_DEFINE_OBJECT_REF_METHODS</a></div><div class="ttdeci">TVM_DEFINE_OBJECT_REF_METHODS(Attrs, ObjectRef, BaseAttrsNode)</div></div>
-<div class="ttc" id="aclasstvm_1_1BaseAttrsNode_html"><div class="ttname"><a href="classtvm_1_1BaseAttrsNode.html">tvm::BaseAttrsNode</a></div><div class="ttdoc">Base class of all attribute class.</div><div class="ttdef"><b>Definition:</b> attrs.h:103</div></div>
-<div class="ttc" id="aclasstvm_1_1BaseAttrsNode_html_a225581a40231b2de219da30fced428a2"><div class="ttname"><a href="classtvm_1_1BaseAttrsNode.html#a225581a40231b2de219da30fced428a2">tvm::BaseAttrsNode::~BaseAttrsNode</a></div><div class="ttdeci">virtual ~BaseAttrsNode()</div><div class="ttdoc">virtual destructor</div><div class="ttdef"><b>Definition:</b> attrs.h:106</div></div>
-<div class="ttc" id="aclasstvm_1_1BaseAttrsNode_html_a7c9d86042f7419c0cc25b7b9c1aa8695"><div class="ttname"><a href="classtvm_1_1BaseAttrsNode.html#a7c9d86042f7419c0cc25b7b9c1aa8695">tvm::BaseAttrsNode::_type_s_eq_hash_kind</a></div><div class="ttdeci">static constexpr TVMFFISEqHashKind _type_s_eq_hash_kind</div><div class="ttdef"><b>Definition:</b> attrs.h:124</div></div>
-<div class="ttc" id="aclasstvm_1_1BaseAttrsNode_html_a8e4fd4e728774e0556cda84b0c2b80d6"><div class="ttname"><a href="classtvm_1_1BaseAttrsNode.html#a8e4fd4e728774e0556cda84b0c2b80d6">tvm::BaseAttrsNode::_type_key</a></div><div class="ttdeci">static constexpr const char * _type_key</div><div class="ttdef"><b>Definition:</b> attrs.h:126</div></div>
-<div class="ttc" id="aclasstvm_1_1BaseAttrsNode_html_aaca524319f015a18a1385cfea5ba8895"><div class="ttname"><a href="classtvm_1_1BaseAttrsNode.html#aaca524319f015a18a1385cfea5ba8895">tvm::BaseAttrsNode::TVM_DECLARE_BASE_OBJECT_INFO</a></div><div class="ttdeci">TVM_DECLARE_BASE_OBJECT_INFO(BaseAttrsNode, Object)</div></div>
+<div class="ttc" id="aclasstvm_1_1AttrFieldInfoNode_html_aafcd1ccd44f6e27c3783d46bb3e774d4"><div class="ttname"><a href="classtvm_1_1AttrFieldInfoNode.html#aafcd1ccd44f6e27c3783d46bb3e774d4">tvm::AttrFieldInfoNode::TVM_FFI_DECLARE_OBJECT_INFO_FINAL</a></div><div class="ttdeci">TVM_FFI_DECLARE_OBJECT_INFO_FINAL(&quot;ir.AttrFieldInfo&quot;, AttrFieldInfoNode, Object)</div></div>
+<div class="ttc" id="aclasstvm_1_1AttrFieldInfoNode_html_afba3081e4108c2ba2d34a6a228de5d88"><div class="ttname"><a href="classtvm_1_1AttrFieldInfoNode.html#afba3081e4108c2ba2d34a6a228de5d88">tvm::AttrFieldInfoNode::_type_s_eq_hash_kind</a></div><div class="ttdeci">static constexpr TVMFFISEqHashKind _type_s_eq_hash_kind</div><div class="ttdef"><b>Definition:</b> attrs.h:85</div></div>
+<div class="ttc" id="aclasstvm_1_1AttrFieldInfo_html"><div class="ttname"><a href="classtvm_1_1AttrFieldInfo.html">tvm::AttrFieldInfo</a></div><div class="ttdoc">AttrFieldInfo.</div><div class="ttdef"><b>Definition:</b> attrs.h:91</div></div>
+<div class="ttc" id="aclasstvm_1_1AttrFieldInfo_html_a3ae31205d125508f83752ba76dcef2cd"><div class="ttname"><a href="classtvm_1_1AttrFieldInfo.html#a3ae31205d125508f83752ba76dcef2cd">tvm::AttrFieldInfo::TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE</a></div><div class="ttdeci">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE(AttrFieldInfo, ObjectRef, AttrFieldInfoNode)</div></div>
+<div class="ttc" id="aclasstvm_1_1AttrsNodeReflAdapter_html"><div class="ttname"><a href="classtvm_1_1AttrsNodeReflAdapter.html">tvm::AttrsNodeReflAdapter</a></div><div class="ttdoc">Adapter for AttrsNode with the new reflection API.</div><div class="ttdef"><b>Definition:</b> attrs.h:385</div></div>
+<div class="ttc" id="aclasstvm_1_1AttrsNodeReflAdapter_html_a4ecc2c9f98b17f656cbfe5755461e30c"><div class="ttname"><a href="classtvm_1_1AttrsNodeReflAdapter.html#a4ecc2c9f98b17f656cbfe5755461e30c">tvm::AttrsNodeReflAdapter::InitByPackedArgs</a></div><div class="ttdeci">void InitByPackedArgs(const ffi::PackedArgs &amp;args, bool allow_unknown) final</div><div class="ttdoc">Initialize the attributes by arguments.</div><div class="ttdef"><b>Definition:</b> attrs.h:387</div></div>
+<div class="ttc" id="aclasstvm_1_1Attrs_html"><div class="ttname"><a href="classtvm_1_1Attrs.html">tvm::Attrs</a></div><div class="ttdoc">Managed reference to BaseAttrsNode.</div><div class="ttdef"><b>Definition:</b> attrs.h:131</div></div>
+<div class="ttc" id="aclasstvm_1_1Attrs_html_a329a6fb7890822cb4c09c6e84b29908f"><div class="ttname"><a href="classtvm_1_1Attrs.html#a329a6fb7890822cb4c09c6e84b29908f">tvm::Attrs::TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE</a></div><div class="ttdeci">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE(Attrs, ObjectRef, BaseAttrsNode)</div></div>
+<div class="ttc" id="aclasstvm_1_1BaseAttrsNode_html"><div class="ttname"><a href="classtvm_1_1BaseAttrsNode.html">tvm::BaseAttrsNode</a></div><div class="ttdoc">Base class of all attribute class.</div><div class="ttdef"><b>Definition:</b> attrs.h:102</div></div>
+<div class="ttc" id="aclasstvm_1_1BaseAttrsNode_html_a225581a40231b2de219da30fced428a2"><div class="ttname"><a href="classtvm_1_1BaseAttrsNode.html#a225581a40231b2de219da30fced428a2">tvm::BaseAttrsNode::~BaseAttrsNode</a></div><div class="ttdeci">virtual ~BaseAttrsNode()</div><div class="ttdoc">virtual destructor</div><div class="ttdef"><b>Definition:</b> attrs.h:105</div></div>
+<div class="ttc" id="aclasstvm_1_1BaseAttrsNode_html_a7c9d86042f7419c0cc25b7b9c1aa8695"><div class="ttname"><a href="classtvm_1_1BaseAttrsNode.html#a7c9d86042f7419c0cc25b7b9c1aa8695">tvm::BaseAttrsNode::_type_s_eq_hash_kind</a></div><div class="ttdeci">static constexpr TVMFFISEqHashKind _type_s_eq_hash_kind</div><div class="ttdef"><b>Definition:</b> attrs.h:123</div></div>
 <div class="ttc" id="aclasstvm_1_1BaseAttrsNode_html_abcc04a722102d16fd4d86f9b7dcdd1e1"><div class="ttname"><a href="classtvm_1_1BaseAttrsNode.html#abcc04a722102d16fd4d86f9b7dcdd1e1">tvm::BaseAttrsNode::InitBySeq</a></div><div class="ttdeci">void InitBySeq(Args &amp;&amp;... args)</div><div class="ttdoc">Initialize the attributes by sequence of arguments.</div></div>
 <div class="ttc" id="aclasstvm_1_1BaseAttrsNode_html_adf84245590cf8fa64042329a24eaad54"><div class="ttname"><a href="classtvm_1_1BaseAttrsNode.html#adf84245590cf8fa64042329a24eaad54">tvm::BaseAttrsNode::InitByPackedArgs</a></div><div class="ttdeci">virtual void InitByPackedArgs(const ffi::PackedArgs &amp;kwargs, bool allow_unknown=false)=0</div><div class="ttdoc">Initialize the attributes by arguments.</div></div>
-<div class="ttc" id="aclasstvm_1_1DictAttrsNode_html"><div class="ttname"><a href="classtvm_1_1DictAttrsNode.html">tvm::DictAttrsNode</a></div><div class="ttdoc">Specialized attribute type that is backed by a map. The DictAttrsNode implements the Attrs behavior,...</div><div class="ttdef"><b>Definition:</b> attrs.h:145</div></div>
-<div class="ttc" id="aclasstvm_1_1DictAttrsNode_html_a064a2af1c7fbe5140278e28cc5ec8c78"><div class="ttname"><a href="classtvm_1_1DictAttrsNode.html#a064a2af1c7fbe5140278e28cc5ec8c78">tvm::DictAttrsNode::TVM_DECLARE_FINAL_OBJECT_INFO</a></div><div class="ttdeci">TVM_DECLARE_FINAL_OBJECT_INFO(DictAttrsNode, BaseAttrsNode)</div></div>
-<div class="ttc" id="aclasstvm_1_1DictAttrsNode_html_a6296a6c5f7946e291181996d30b78eb3"><div class="ttname"><a href="classtvm_1_1DictAttrsNode.html#a6296a6c5f7946e291181996d30b78eb3">tvm::DictAttrsNode::RegisterReflection</a></div><div class="ttdeci">static void RegisterReflection()</div><div class="ttdef"><b>Definition:</b> attrs.h:150</div></div>
+<div class="ttc" id="aclasstvm_1_1BaseAttrsNode_html_afabaaba39bdc345410373b0e73125f2a"><div class="ttname"><a href="classtvm_1_1BaseAttrsNode.html#afabaaba39bdc345410373b0e73125f2a">tvm::BaseAttrsNode::TVM_FFI_DECLARE_OBJECT_INFO</a></div><div class="ttdeci">TVM_FFI_DECLARE_OBJECT_INFO(&quot;ir.Attrs&quot;, BaseAttrsNode, Object)</div></div>
+<div class="ttc" id="aclasstvm_1_1DictAttrsNode_html"><div class="ttname"><a href="classtvm_1_1DictAttrsNode.html">tvm::DictAttrsNode</a></div><div class="ttdoc">Specialized attribute type that is backed by a map. The DictAttrsNode implements the Attrs behavior,...</div><div class="ttdef"><b>Definition:</b> attrs.h:142</div></div>
+<div class="ttc" id="aclasstvm_1_1DictAttrsNode_html_a4c67d6d4272cdb2a86d1e1c7dd5f7b39"><div class="ttname"><a href="classtvm_1_1DictAttrsNode.html#a4c67d6d4272cdb2a86d1e1c7dd5f7b39">tvm::DictAttrsNode::TVM_FFI_DECLARE_OBJECT_INFO_FINAL</a></div><div class="ttdeci">TVM_FFI_DECLARE_OBJECT_INFO_FINAL(&quot;ir.DictAttrs&quot;, DictAttrsNode, BaseAttrsNode)</div></div>
+<div class="ttc" id="aclasstvm_1_1DictAttrsNode_html_a6296a6c5f7946e291181996d30b78eb3"><div class="ttname"><a href="classtvm_1_1DictAttrsNode.html#a6296a6c5f7946e291181996d30b78eb3">tvm::DictAttrsNode::RegisterReflection</a></div><div class="ttdeci">static void RegisterReflection()</div><div class="ttdef"><b>Definition:</b> attrs.h:147</div></div>
 <div class="ttc" id="aclasstvm_1_1DictAttrsNode_html_a942e6c4426178c6e8068fae60dac3311"><div class="ttname"><a href="classtvm_1_1DictAttrsNode.html#a942e6c4426178c6e8068fae60dac3311">tvm::DictAttrsNode::InitByPackedArgs</a></div><div class="ttdeci">void InitByPackedArgs(const ffi::PackedArgs &amp;args, bool allow_unknown) final</div><div class="ttdoc">Initialize the attributes by arguments.</div></div>
-<div class="ttc" id="aclasstvm_1_1DictAttrsNode_html_aaef3e4d948905fc26a25d5ea8fd15c27"><div class="ttname"><a href="classtvm_1_1DictAttrsNode.html#aaef3e4d948905fc26a25d5ea8fd15c27">tvm::DictAttrsNode::_type_key</a></div><div class="ttdeci">static constexpr const char * _type_key</div><div class="ttdef"><b>Definition:</b> attrs.h:158</div></div>
-<div class="ttc" id="aclasstvm_1_1DictAttrsNode_html_af348aa9a0f2095a34c82be2a97e6e8fc"><div class="ttname"><a href="classtvm_1_1DictAttrsNode.html#af348aa9a0f2095a34c82be2a97e6e8fc">tvm::DictAttrsNode::dict</a></div><div class="ttdeci">ffi::Map&lt; ffi::String, ffi::Any &gt; dict</div><div class="ttdoc">internal attrs map</div><div class="ttdef"><b>Definition:</b> attrs.h:148</div></div>
-<div class="ttc" id="aclasstvm_1_1DictAttrs_html"><div class="ttname"><a href="classtvm_1_1DictAttrs.html">tvm::DictAttrs</a></div><div class="ttdoc">Managed reference to DictAttrsNode.</div><div class="ttdef"><b>Definition:</b> attrs.h:166</div></div>
-<div class="ttc" id="aclasstvm_1_1DictAttrs_html_a45e524ce0f8ae389341ec37e468d887d"><div class="ttname"><a href="classtvm_1_1DictAttrs.html#a45e524ce0f8ae389341ec37e468d887d">tvm::DictAttrs::HasNonzeroAttr</a></div><div class="ttdeci">bool HasNonzeroAttr(const std::string &amp;attr_key) const</div><div class="ttdoc">Check whether the function has an non-zero integer attr.</div><div class="ttdef"><b>Definition:</b> attrs.h:237</div></div>
+<div class="ttc" id="aclasstvm_1_1DictAttrsNode_html_af348aa9a0f2095a34c82be2a97e6e8fc"><div class="ttname"><a href="classtvm_1_1DictAttrsNode.html#af348aa9a0f2095a34c82be2a97e6e8fc">tvm::DictAttrsNode::dict</a></div><div class="ttdeci">ffi::Map&lt; ffi::String, ffi::Any &gt; dict</div><div class="ttdoc">internal attrs map</div><div class="ttdef"><b>Definition:</b> attrs.h:145</div></div>
+<div class="ttc" id="aclasstvm_1_1DictAttrs_html"><div class="ttname"><a href="classtvm_1_1DictAttrs.html">tvm::DictAttrs</a></div><div class="ttdoc">Managed reference to DictAttrsNode.</div><div class="ttdef"><b>Definition:</b> attrs.h:162</div></div>
+<div class="ttc" id="aclasstvm_1_1DictAttrs_html_a45e524ce0f8ae389341ec37e468d887d"><div class="ttname"><a href="classtvm_1_1DictAttrs.html#a45e524ce0f8ae389341ec37e468d887d">tvm::DictAttrs::HasNonzeroAttr</a></div><div class="ttdeci">bool HasNonzeroAttr(const std::string &amp;attr_key) const</div><div class="ttdoc">Check whether the function has an non-zero integer attr.</div><div class="ttdef"><b>Definition:</b> attrs.h:233</div></div>
 <div class="ttc" id="aclasstvm_1_1DictAttrs_html_aaba8e5c4c42eb8160df2e5e988174222"><div class="ttname"><a href="classtvm_1_1DictAttrs.html#aaba8e5c4c42eb8160df2e5e988174222">tvm::DictAttrs::DictAttrs</a></div><div class="ttdeci">DictAttrs(ffi::Map&lt; ffi::String, Any &gt; dict={})</div><div class="ttdoc">Consruct a Attrs backed by DictAttrsNode.</div></div>
-<div class="ttc" id="aclasstvm_1_1DictAttrs_html_ad186f731f94d6b6dcd37dacddcfc714a"><div class="ttname"><a href="classtvm_1_1DictAttrs.html#ad186f731f94d6b6dcd37dacddcfc714a">tvm::DictAttrs::GetAttr</a></div><div class="ttdeci">ffi::Optional&lt; TObjectRef &gt; GetAttr(const std::string &amp;attr_key, ffi::Optional&lt; TObjectRef &gt; default_value=ffi::Optional&lt; TObjectRef &gt;(std::nullopt)) const</div><div class="ttdoc">Get a function attribute.</div><div class="ttdef"><b>Definitio [...]
+<div class="ttc" id="aclasstvm_1_1DictAttrs_html_ad186f731f94d6b6dcd37dacddcfc714a"><div class="ttname"><a href="classtvm_1_1DictAttrs.html#ad186f731f94d6b6dcd37dacddcfc714a">tvm::DictAttrs::GetAttr</a></div><div class="ttdeci">ffi::Optional&lt; TObjectRef &gt; GetAttr(const std::string &amp;attr_key, ffi::Optional&lt; TObjectRef &gt; default_value=ffi::Optional&lt; TObjectRef &gt;(std::nullopt)) const</div><div class="ttdoc">Get a function attribute.</div><div class="ttdef"><b>Definitio [...]
 <div class="ttc" id="aclasstvm_1_1DictAttrs_html_adcb7e5ecede9d976bda30fb3f762c953"><div class="ttname"><a href="classtvm_1_1DictAttrs.html#adcb7e5ecede9d976bda30fb3f762c953">tvm::DictAttrs::TVM_DEFINE_OBJECT_REF_COW_METHOD</a></div><div class="ttdeci">TVM_DEFINE_OBJECT_REF_COW_METHOD(DictAttrsNode)</div></div>
-<div class="ttc" id="aclasstvm_1_1DictAttrs_html_ae7a8b87b44eda534913f28d6c7ef8d07"><div class="ttname"><a href="classtvm_1_1DictAttrs.html#ae7a8b87b44eda534913f28d6c7ef8d07">tvm::DictAttrs::DictAttrs</a></div><div class="ttdeci">DictAttrs(ffi::UnsafeInit tag)</div><div class="ttdoc">constructor with UnsafeInit</div><div class="ttdef"><b>Definition:</b> attrs.h:171</div></div>
-<div class="ttc" id="aclasstvm_1_1DictAttrs_html_af63d14a1a6ffeb1c6fc403f46df8c13a"><div class="ttname"><a href="classtvm_1_1DictAttrs.html#af63d14a1a6ffeb1c6fc403f46df8c13a">tvm::DictAttrs::GetAttr</a></div><div class="ttdeci">ffi::Optional&lt; TObjectRef &gt; GetAttr(const std::string &amp;attr_key, TObjectRef default_value) const</div><div class="ttdef"><b>Definition:</b> attrs.h:215</div></div>
-<div class="ttc" id="aclasstvm_1_1DictAttrs_html_afcb5444a0a4ad51f9b2968368e17aa79"><div class="ttname"><a href="classtvm_1_1DictAttrs.html#afcb5444a0a4ad51f9b2968368e17aa79">tvm::DictAttrs::TVM_DEFINE_OBJECT_REF_METHODS_WITHOUT_DEFAULT_CONSTRUCTOR</a></div><div class="ttdeci">TVM_DEFINE_OBJECT_REF_METHODS_WITHOUT_DEFAULT_CONSTRUCTOR(DictAttrs, Attrs, DictAttrsNode)</div></div>
+<div class="ttc" id="aclasstvm_1_1DictAttrs_html_ae7a8b87b44eda534913f28d6c7ef8d07"><div class="ttname"><a href="classtvm_1_1DictAttrs.html#ae7a8b87b44eda534913f28d6c7ef8d07">tvm::DictAttrs::DictAttrs</a></div><div class="ttdeci">DictAttrs(ffi::UnsafeInit tag)</div><div class="ttdoc">constructor with UnsafeInit</div><div class="ttdef"><b>Definition:</b> attrs.h:167</div></div>
+<div class="ttc" id="aclasstvm_1_1DictAttrs_html_aedcebe6fa883eef8d0e4fdbf35909e6b"><div class="ttname"><a href="classtvm_1_1DictAttrs.html#aedcebe6fa883eef8d0e4fdbf35909e6b">tvm::DictAttrs::TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE_WITHOUT_DEFAULT_CONSTRUCTOR</a></div><div class="ttdeci">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE_WITHOUT_DEFAULT_CONSTRUCTOR(DictAttrs, Attrs, DictAttrsNode)</div></div>
+<div class="ttc" id="aclasstvm_1_1DictAttrs_html_af63d14a1a6ffeb1c6fc403f46df8c13a"><div class="ttname"><a href="classtvm_1_1DictAttrs.html#af63d14a1a6ffeb1c6fc403f46df8c13a">tvm::DictAttrs::GetAttr</a></div><div class="ttdeci">ffi::Optional&lt; TObjectRef &gt; GetAttr(const std::string &amp;attr_key, TObjectRef default_value) const</div><div class="ttdef"><b>Definition:</b> attrs.h:211</div></div>
 <div class="ttc" id="aclasstvm_1_1runtime_1_1DataType_html"><div class="ttname"><a href="classtvm_1_1runtime_1_1DataType.html">tvm::runtime::DataType</a></div><div class="ttdoc">Runtime primitive data type.</div><div class="ttdef"><b>Definition:</b> data_type.h:47</div></div>
 <div class="ttc" id="aclasstvm_1_1runtime_1_1DataType_html_a3c9ce1627be2550f656cd37b6c698c7da2a59b355bef5ebc40bd78833666197cb"><div class="ttname"><a href="classtvm_1_1runtime_1_1DataType.html#a3c9ce1627be2550f656cd37b6c698c7da2a59b355bef5ebc40bd78833666197cb">tvm::runtime::DataType::kHandle</a></div><div class="ttdeci">@ kHandle</div><div class="ttdef"><b>Definition:</b> data_type.h:61</div></div>
 <div class="ttc" id="air_2expr_8h_html"><div class="ttname"><a href="ir_2expr_8h.html">expr.h</a></div><div class="ttdoc">Base expr nodes in TVM.</div></div>
 <div class="ttc" id="anamespacetvm_html"><div class="ttname"><a href="namespacetvm.html">tvm</a></div><div class="ttdoc">Performance counters for profiling via the PAPI library.</div><div class="ttdef"><b>Definition:</b> analyzer.h:37</div></div>
 <div class="ttc" id="anamespacetvm_html_a1c16c956c043e2dd23bcaf5ff5272692"><div class="ttname"><a href="namespacetvm.html#a1c16c956c043e2dd23bcaf5ff5272692">tvm::WithoutAttr</a></div><div class="ttdeci">DictAttrs WithoutAttr(DictAttrs attrs, const std::string &amp;key)</div><div class="ttdoc">Copy the DictAttrs, but without a specific attribute.</div></div>
 <div class="ttc" id="anamespacetvm_html_a28c693333c2b15702b1a9a57dec0fbf5"><div class="ttname"><a href="namespacetvm.html#a28c693333c2b15702b1a9a57dec0fbf5">tvm::NullValue&lt; DataType &gt;</a></div><div class="ttdeci">DataType NullValue&lt; DataType &gt;()</div><div class="ttdef"><b>Definition:</b> attrs.h:61</div></div>
-<div class="ttc" id="anamespacetvm_html_a2e3193a20ee748b08d5a528275859dbe"><div class="ttname"><a href="namespacetvm.html#a2e3193a20ee748b08d5a528275859dbe">tvm::AttrsWithDefaultValues</a></div><div class="ttdeci">TAttrs AttrsWithDefaultValues()</div><div class="ttdoc">Create an Attr object with all default values.</div><div class="ttdef"><b>Definition:</b> attrs.h:406</div></div>
+<div class="ttc" id="anamespacetvm_html_a2e3193a20ee748b08d5a528275859dbe"><div class="ttname"><a href="namespacetvm.html#a2e3193a20ee748b08d5a528275859dbe">tvm::AttrsWithDefaultValues</a></div><div class="ttdeci">TAttrs AttrsWithDefaultValues()</div><div class="ttdoc">Create an Attr object with all default values.</div><div class="ttdef"><b>Definition:</b> attrs.h:403</div></div>
 <div class="ttc" id="anamespacetvm_html_a41918af1a1dc386388639a9d3ad06c5d"><div class="ttname"><a href="namespacetvm.html#a41918af1a1dc386388639a9d3ad06c5d">tvm::DataType</a></div><div class="ttdeci">runtime::DataType DataType</div><div class="ttdef"><b>Definition:</b> data_type.h:458</div></div>
 <div class="ttc" id="anamespacetvm_html_a59d3cb510c04a3afbe0ec546078db2ea"><div class="ttname"><a href="namespacetvm.html#a59d3cb510c04a3afbe0ec546078db2ea">tvm::WithAttrs</a></div><div class="ttdeci">DictAttrs WithAttrs(DictAttrs attrs, ffi::Map&lt; ffi::String, Any &gt; new_attrs)</div><div class="ttdoc">Copy the DictAttrs, but overrides attributes with the entries from attrs.</div></div>
 <div class="ttc" id="anamespacetvm_html_ab6c242e8ac09beb463fba306948b7f15"><div class="ttname"><a href="namespacetvm.html#ab6c242e8ac09beb463fba306948b7f15">tvm::NullValue</a></div><div class="ttdeci">TObjectRef NullValue()</div><div class="ttdoc">Create a NodeRef type that represents null.</div><div class="ttdef"><b>Definition:</b> attrs.h:55</div></div>
diff --git a/docs/reference/api/doxygen/axis__group__graph_8h_source.html b/docs/reference/api/doxygen/axis__group__graph_8h_source.html
index a2dc77f51b..c0cb414d8c 100644
--- a/docs/reference/api/doxygen/axis__group__graph_8h_source.html
+++ b/docs/reference/api/doxygen/axis__group__graph_8h_source.html
@@ -499,16 +499,16 @@ $(function() {
 <div class="line"><a name="l00477"></a><span class="lineno">  477</span>&#160;}  <span class="comment">// namespace tvm</span></div>
 <div class="line"><a name="l00478"></a><span class="lineno">  478</span>&#160; </div>
 <div class="line"><a name="l00479"></a><span class="lineno">  479</span>&#160;<span class="preprocessor">#endif  </span><span class="comment">// TVM_RELAX_DISTRIBUTED_AXIS_GROUP_GRAPH_H_</span></div>
-<div class="ttc" id="aclasstvm_1_1PrimExpr_html"><div class="ttname"><a href="classtvm_1_1PrimExpr.html">tvm::PrimExpr</a></div><div class="ttdoc">Reference to PrimExprNode.</div><div class="ttdef"><b>Definition:</b> expr.h:127</div></div>
+<div class="ttc" id="aclasstvm_1_1PrimExpr_html"><div class="ttname"><a href="classtvm_1_1PrimExpr.html">tvm::PrimExpr</a></div><div class="ttdoc">Reference to PrimExprNode.</div><div class="ttdef"><b>Definition:</b> expr.h:124</div></div>
 <div class="ttc" id="aclasstvm_1_1Range_html_a91e7301ca1d135ca5f8ed199efbb9818"><div class="ttname"><a href="classtvm_1_1Range.html#a91e7301ca1d135ca5f8ed199efbb9818">tvm::Range::FromMinExtent</a></div><div class="ttdeci">static Range FromMinExtent(PrimExpr min, PrimExpr extent, Span span=Span())</div><div class="ttdoc">construct a new range with min and extent The corresponding constructor is removed,...</div></div>
-<div class="ttc" id="aclasstvm_1_1RelaxExprNode_html"><div class="ttname"><a href="classtvm_1_1RelaxExprNode.html">tvm::RelaxExprNode</a></div><div class="ttdoc">Base node of all non-primitive expressions.</div><div class="ttdef"><b>Definition:</b> expr.h:420</div></div>
+<div class="ttc" id="aclasstvm_1_1RelaxExprNode_html"><div class="ttname"><a href="classtvm_1_1RelaxExprNode.html">tvm::RelaxExprNode</a></div><div class="ttdoc">Base node of all non-primitive expressions.</div><div class="ttdef"><b>Definition:</b> expr.h:416</div></div>
 <div class="ttc" id="aclasstvm_1_1StructuralEqual_html"><div class="ttname"><a href="classtvm_1_1StructuralEqual.html">tvm::StructuralEqual</a></div><div class="ttdoc">Content-aware structural equality comparator for objects.</div><div class="ttdef"><b>Definition:</b> structural_equal.h:97</div></div>
 <div class="ttc" id="aclasstvm_1_1StructuralHash_html"><div class="ttname"><a href="classtvm_1_1StructuralHash.html">tvm::StructuralHash</a></div><div class="ttdoc">Content-aware structural hashing.</div><div class="ttdef"><b>Definition:</b> structural_hash.h:116</div></div>
-<div class="ttc" id="aclasstvm_1_1arith_1_1Analyzer_html"><div class="ttname"><a href="classtvm_1_1arith_1_1Analyzer.html">tvm::arith::Analyzer</a></div><div class="ttdoc">Analyzer that contains bunch of sub-analyzers.</div><div class="ttdef"><b>Definition:</b> analyzer.h:636</div></div>
-<div class="ttc" id="aclasstvm_1_1relax_1_1Call_html"><div class="ttname"><a href="classtvm_1_1relax_1_1Call.html">tvm::relax::Call</a></div><div class="ttdef"><b>Definition:</b> expr.h:181</div></div>
-<div class="ttc" id="aclasstvm_1_1relax_1_1ConstantNode_html"><div class="ttname"><a href="classtvm_1_1relax_1_1ConstantNode.html">tvm::relax::ConstantNode</a></div><div class="ttdoc">Constant tensor.</div><div class="ttdef"><b>Definition:</b> expr.h:436</div></div>
-<div class="ttc" id="aclasstvm_1_1relax_1_1VarNode_html"><div class="ttname"><a href="classtvm_1_1relax_1_1VarNode.html">tvm::relax::VarNode</a></div><div class="ttdoc">The variable class for all Relax bindings.</div><div class="ttdef"><b>Definition:</b> expr.h:352</div></div>
-<div class="ttc" id="aclasstvm_1_1relax_1_1Var_html"><div class="ttname"><a href="classtvm_1_1relax_1_1Var.html">tvm::relax::Var</a></div><div class="ttdef"><b>Definition:</b> expr.h:390</div></div>
+<div class="ttc" id="aclasstvm_1_1arith_1_1Analyzer_html"><div class="ttname"><a href="classtvm_1_1arith_1_1Analyzer.html">tvm::arith::Analyzer</a></div><div class="ttdoc">Analyzer that contains bunch of sub-analyzers.</div><div class="ttdef"><b>Definition:</b> analyzer.h:634</div></div>
+<div class="ttc" id="aclasstvm_1_1relax_1_1Call_html"><div class="ttname"><a href="classtvm_1_1relax_1_1Call.html">tvm::relax::Call</a></div><div class="ttdef"><b>Definition:</b> expr.h:176</div></div>
+<div class="ttc" id="aclasstvm_1_1relax_1_1ConstantNode_html"><div class="ttname"><a href="classtvm_1_1relax_1_1ConstantNode.html">tvm::relax::ConstantNode</a></div><div class="ttdoc">Constant tensor.</div><div class="ttdef"><b>Definition:</b> expr.h:422</div></div>
+<div class="ttc" id="aclasstvm_1_1relax_1_1VarNode_html"><div class="ttname"><a href="classtvm_1_1relax_1_1VarNode.html">tvm::relax::VarNode</a></div><div class="ttdoc">The variable class for all Relax bindings.</div><div class="ttdef"><b>Definition:</b> expr.h:340</div></div>
+<div class="ttc" id="aclasstvm_1_1relax_1_1Var_html"><div class="ttname"><a href="classtvm_1_1relax_1_1Var.html">tvm::relax::Var</a></div><div class="ttdef"><b>Definition:</b> expr.h:377</div></div>
 <div class="ttc" id="aclasstvm_1_1relax_1_1distributed_1_1AxisGroupGraph_html"><div class="ttname"><a href="classtvm_1_1relax_1_1distributed_1_1AxisGroupGraph.html">tvm::relax::distributed::AxisGroupGraph</a></div><div class="ttdoc">A graph whose nodes are tensor axes, and the edge means some information can be propagated through th...</div><div class="ttdef"><b>Definition:</b> axis_group_graph.h:273</div></div>
 <div class="ttc" id="aclasstvm_1_1relax_1_1distributed_1_1AxisGroupGraph_html_a0fb2b70e3d9cb6c10b42358a5f14b9d1"><div class="ttname"><a href="classtvm_1_1relax_1_1distributed_1_1AxisGroupGraph.html#a0fb2b70e3d9cb6c10b42358a5f14b9d1">tvm::relax::distributed::AxisGroupGraph::AxisGroupGraph</a></div><div class="ttdeci">AxisGroupGraph()=default</div></div>
 <div class="ttc" id="aclasstvm_1_1relax_1_1distributed_1_1AxisGroupGraph_html_a1b03b19ae392de95720059294f23db6e"><div class="ttname"><a href="classtvm_1_1relax_1_1distributed_1_1AxisGroupGraph.html#a1b03b19ae392de95720059294f23db6e">tvm::relax::distributed::AxisGroupGraph::JoinAxis</a></div><div class="ttdeci">void JoinAxis(Axis axis1, Axis axis2, EdgeType type)</div><div class="ttdoc">add edge between two axes</div><div class="ttdef"><b>Definition:</b> axis_group_graph.h:350</div></div>
@@ -528,19 +528,19 @@ $(function() {
 <div class="ttc" id="aclasstvm_1_1relax_1_1distributed_1_1AxisShardingSpecEqual_html_ad6cbaecfc29a40f424472aa5f047b17e"><div class="ttname"><a href="classtvm_1_1relax_1_1distributed_1_1AxisShardingSpecEqual.html#ad6cbaecfc29a40f424472aa5f047b17e">tvm::relax::distributed::AxisShardingSpecEqual::operator()</a></div><div class="ttdeci">bool operator()(const AxisShardingSpec &amp;lhs, const AxisShardingSpec &amp;rhs) const</div><div class="ttdef"><b>Definition:</b> axis_group_graph.h:253</di [...]
 <div class="ttc" id="aclasstvm_1_1relax_1_1distributed_1_1AxisShardingSpecHash_html"><div class="ttname"><a href="classtvm_1_1relax_1_1distributed_1_1AxisShardingSpecHash.html">tvm::relax::distributed::AxisShardingSpecHash</a></div><div class="ttdef"><b>Definition:</b> axis_group_graph.h:258</div></div>
 <div class="ttc" id="aclasstvm_1_1relax_1_1distributed_1_1AxisShardingSpecHash_html_a46f11568a527fb234fce861b87947ac2"><div class="ttname"><a href="classtvm_1_1relax_1_1distributed_1_1AxisShardingSpecHash.html#a46f11568a527fb234fce861b87947ac2">tvm::relax::distributed::AxisShardingSpecHash::operator()</a></div><div class="ttdeci">size_t operator()(const AxisShardingSpec &amp;sharding_spec) const</div><div class="ttdef"><b>Definition:</b> axis_group_graph.h:260</div></div>
-<div class="ttc" id="aclasstvm_1_1relax_1_1distributed_1_1DeviceMesh_html"><div class="ttname"><a href="classtvm_1_1relax_1_1distributed_1_1DeviceMesh.html">tvm::relax::distributed::DeviceMesh</a></div><div class="ttdoc">Managed reference to a DeviceMesh.</div><div class="ttdef"><b>Definition:</b> global_info.h:64</div></div>
+<div class="ttc" id="aclasstvm_1_1relax_1_1distributed_1_1DeviceMesh_html"><div class="ttname"><a href="classtvm_1_1relax_1_1distributed_1_1DeviceMesh.html">tvm::relax::distributed::DeviceMesh</a></div><div class="ttdoc">Managed reference to a DeviceMesh.</div><div class="ttdef"><b>Definition:</b> global_info.h:62</div></div>
 <div class="ttc" id="aclasstvm_1_1tir_1_1BufferAxisGraphExtractor_html"><div class="ttname"><a href="classtvm_1_1tir_1_1BufferAxisGraphExtractor.html">tvm::tir::BufferAxisGraphExtractor</a></div><div class="ttdoc">Construct an axis group graph from a PrimFunc. Two buffer axis are connected if they are accessed by ...</div><div class="ttdef"><b>Definition:</b> axis_group_graph.h:68</div></div>
 <div class="ttc" id="aclasstvm_1_1tir_1_1BufferAxisGraphExtractor_html_a8deb81dd5625a7d76143f800d355b46a"><div class="ttname"><a href="classtvm_1_1tir_1_1BufferAxisGraphExtractor.html#a8deb81dd5625a7d76143f800d355b46a">tvm::tir::BufferAxisGraphExtractor::GetTIRVarAxisGraph</a></div><div class="ttdeci">static std::vector&lt; std::vector&lt; TIRVarAxis &gt; &gt; GetTIRVarAxisGraph(const PrimFunc &amp;prim_func)</div><div class="ttdef"><b>Definition:</b> axis_group_graph.h:70</div></div>
 <div class="ttc" id="aclasstvm_1_1tir_1_1BufferAxisGraphExtractor_html_aff70b4e34f336ce2f7d22cd402840934"><div class="ttname"><a href="classtvm_1_1tir_1_1BufferAxisGraphExtractor.html#aff70b4e34f336ce2f7d22cd402840934">tvm::tir::BufferAxisGraphExtractor::DFSGraph</a></div><div class="ttdeci">void DFSGraph(BufferAxis cur, std::unordered_set&lt; BufferAxis, BufferAxisHash &gt; *visited, std::vector&lt; BufferAxis &gt; *buffer_axis_group)</div><div class="ttdef"><b>Definition:</b> axis_grou [...]
 <div class="ttc" id="aclasstvm_1_1tir_1_1BufferAxisHash_html"><div class="ttname"><a href="classtvm_1_1tir_1_1BufferAxisHash.html">tvm::tir::BufferAxisHash</a></div><div class="ttdef"><b>Definition:</b> axis_group_graph.h:44</div></div>
 <div class="ttc" id="aclasstvm_1_1tir_1_1BufferAxisHash_html_a82765eaf23ed934832142070c16526ee"><div class="ttname"><a href="classtvm_1_1tir_1_1BufferAxisHash.html#a82765eaf23ed934832142070c16526ee">tvm::tir::BufferAxisHash::operator()</a></div><div class="ttdeci">size_t operator()(const BufferAxis &amp;buffer_axis) const</div><div class="ttdef"><b>Definition:</b> axis_group_graph.h:46</div></div>
-<div class="ttc" id="aclasstvm_1_1tir_1_1BufferStoreNode_html"><div class="ttname"><a href="classtvm_1_1tir_1_1BufferStoreNode.html">tvm::tir::BufferStoreNode</a></div><div class="ttdoc">Store value to the high dimension buffer.</div><div class="ttdef"><b>Definition:</b> stmt.h:201</div></div>
-<div class="ttc" id="aclasstvm_1_1tir_1_1Buffer_html"><div class="ttname"><a href="classtvm_1_1tir_1_1Buffer.html">tvm::tir::Buffer</a></div><div class="ttdoc">Buffer is a symbolic n-darray structure. It is a composition of primitive symbolic types,...</div><div class="ttdef"><b>Definition:</b> buffer.h:157</div></div>
+<div class="ttc" id="aclasstvm_1_1tir_1_1BufferStoreNode_html"><div class="ttname"><a href="classtvm_1_1tir_1_1BufferStoreNode.html">tvm::tir::BufferStoreNode</a></div><div class="ttdoc">Store value to the high dimension buffer.</div><div class="ttdef"><b>Definition:</b> stmt.h:194</div></div>
+<div class="ttc" id="aclasstvm_1_1tir_1_1Buffer_html"><div class="ttname"><a href="classtvm_1_1tir_1_1Buffer.html">tvm::tir::Buffer</a></div><div class="ttdoc">Buffer is a symbolic n-darray structure. It is a composition of primitive symbolic types,...</div><div class="ttdef"><b>Definition:</b> buffer.h:156</div></div>
 <div class="ttc" id="aclasstvm_1_1tir_1_1ExprVisitor_html_abf1ea11bdeb9df050bc73155ffb50a8a"><div class="ttname"><a href="classtvm_1_1tir_1_1ExprVisitor.html#abf1ea11bdeb9df050bc73155ffb50a8a">tvm::tir::ExprVisitor::VisitExpr_</a></div><div class="ttdeci">void VisitExpr_(const VarNode *op) override</div></div>
-<div class="ttc" id="aclasstvm_1_1tir_1_1PrimFunc_html"><div class="ttname"><a href="classtvm_1_1tir_1_1PrimFunc.html">tvm::tir::PrimFunc</a></div><div class="ttdoc">Managed reference to PrimFuncNode.</div><div class="ttdef"><b>Definition:</b> function.h:131</div></div>
+<div class="ttc" id="aclasstvm_1_1tir_1_1PrimFunc_html"><div class="ttname"><a href="classtvm_1_1tir_1_1PrimFunc.html">tvm::tir::PrimFunc</a></div><div class="ttdoc">Managed reference to PrimFuncNode.</div><div class="ttdef"><b>Definition:</b> function.h:129</div></div>
 <div class="ttc" id="aclasstvm_1_1tir_1_1StmtExprVisitor_html"><div class="ttname"><a href="classtvm_1_1tir_1_1StmtExprVisitor.html">tvm::tir::StmtExprVisitor</a></div><div class="ttdoc">Visitor that recursively visit stmts and exprs on them.</div><div class="ttdef"><b>Definition:</b> stmt_functor.h:285</div></div>
 <div class="ttc" id="aclasstvm_1_1tir_1_1StmtVisitor_html_a0e6ca99ff599eea59b322df49b1c3449"><div class="ttname"><a href="classtvm_1_1tir_1_1StmtVisitor.html#a0e6ca99ff599eea59b322df49b1c3449">tvm::tir::StmtVisitor::VisitStmt_</a></div><div class="ttdeci">void VisitStmt_(const AttrStmtNode *op) override</div></div>
-<div class="ttc" id="aclasstvm_1_1tir_1_1Var_html"><div class="ttname"><a href="classtvm_1_1tir_1_1Var.html">tvm::tir::Var</a></div><div class="ttdoc">a named variable in TIR</div><div class="ttdef"><b>Definition:</b> var.h:78</div></div>
+<div class="ttc" id="aclasstvm_1_1tir_1_1Var_html"><div class="ttname"><a href="classtvm_1_1tir_1_1Var.html">tvm::tir::Var</a></div><div class="ttdoc">a named variable in TIR</div><div class="ttdef"><b>Definition:</b> var.h:77</div></div>
 <div class="ttc" id="adistributed_2struct__info_8h_html"><div class="ttname"><a href="distributed_2struct__info_8h.html">struct_info.h</a></div><div class="ttdoc">Struct info for DTensor (Distributed Tensor)</div></div>
 <div class="ttc" id="aiter__affine__map_8h_html"><div class="ttname"><a href="iter__affine__map_8h.html">iter_affine_map.h</a></div><div class="ttdoc">Iterator quasi-affine mapping patterns.</div></div>
 <div class="ttc" id="anamespacetvm_1_1arith_html_a316a3f58d040b0e570e4d540d68fbc2d"><div class="ttname"><a href="namespacetvm_1_1arith.html#a316a3f58d040b0e570e4d540d68fbc2d">tvm::arith::AsIntSet</a></div><div class="ttdeci">ffi::Map&lt; Var, arith::IntSet &gt; AsIntSet(const ffi::Map&lt; Var, Range &gt; &amp;var_dom)</div><div class="ttdoc">Converts the Ranges to IntSets.</div></div>
diff --git a/docs/reference/api/doxygen/backend_8h_source.html b/docs/reference/api/doxygen/backend_8h_source.html
index 0f3130f7ab..38cd11d409 100644
--- a/docs/reference/api/doxygen/backend_8h_source.html
+++ b/docs/reference/api/doxygen/backend_8h_source.html
@@ -106,7 +106,7 @@ $(function() {
 <div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;}  <span class="comment">// namespace tvm</span></div>
 <div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160; </div>
 <div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;<span class="preprocessor">#endif  </span><span class="comment">// TVM_RELAX_BACKEND_H_</span></div>
-<div class="ttc" id="aclasstvm_1_1transform_1_1Pass_html"><div class="ttname"><a href="classtvm_1_1transform_1_1Pass.html">tvm::transform::Pass</a></div><div class="ttdef"><b>Definition:</b> transform.h:408</div></div>
+<div class="ttc" id="aclasstvm_1_1transform_1_1Pass_html"><div class="ttname"><a href="classtvm_1_1transform_1_1Pass.html">tvm::transform::Pass</a></div><div class="ttdef"><b>Definition:</b> transform.h:400</div></div>
 <div class="ttc" id="anamespacetvm_1_1relax_1_1transform_html_a640f84c6058f570cdef3e463338a8267"><div class="ttname"><a href="namespacetvm_1_1relax_1_1transform.html#a640f84c6058f570cdef3e463338a8267">tvm::relax::transform::VMShapeLower</a></div><div class="ttdeci">Pass VMShapeLower()</div><div class="ttdoc">Lower the shape expression in relax to VM shape heap and TIR functions.</div></div>
 <div class="ttc" id="anamespacetvm_1_1relax_1_1transform_html_a86cd9160e38cee85c2122c488dcc9a02"><div class="ttname"><a href="namespacetvm_1_1relax_1_1transform.html#a86cd9160e38cee85c2122c488dcc9a02">tvm::relax::transform::LowerRuntimeBuiltin</a></div><div class="ttdeci">Pass LowerRuntimeBuiltin()</div><div class="ttdoc">Perform builtin lowering to map most of the op to VM builtin functions.</div></div>
 <div class="ttc" id="anamespacetvm_html"><div class="ttname"><a href="namespacetvm.html">tvm</a></div><div class="ttdoc">Performance counters for profiling via the PAPI library.</div><div class="ttdef"><b>Definition:</b> analyzer.h:37</div></div>
diff --git a/docs/reference/api/doxygen/bias__add_8h_source.html b/docs/reference/api/doxygen/bias__add_8h_source.html
index 0e7e96e6b8..4644bb4970 100644
--- a/docs/reference/api/doxygen/bias__add_8h_source.html
+++ b/docs/reference/api/doxygen/bias__add_8h_source.html
@@ -116,7 +116,7 @@ $(function() {
 <div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;}  <span class="comment">// namespace tvm</span></div>
 <div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;<span class="preprocessor">#endif  </span><span class="comment">// TVM_TOPI_NN_BIAS_ADD_H_</span></div>
 <div class="ttc" id="abroadcast_8h_html"><div class="ttname"><a href="broadcast_8h.html">broadcast.h</a></div><div class="ttdoc">Broadcast op constructions.</div></div>
-<div class="ttc" id="aclasstvm_1_1te_1_1Tensor_html"><div class="ttname"><a href="classtvm_1_1te_1_1Tensor.html">tvm::te::Tensor</a></div><div class="ttdoc">Tensor structure representing a possible input, or intermediate computation result.</div><div class="ttdef"><b>Definition:</b> tensor.h:101</div></div>
+<div class="ttc" id="aclasstvm_1_1te_1_1Tensor_html"><div class="ttname"><a href="classtvm_1_1te_1_1Tensor.html">tvm::te::Tensor</a></div><div class="ttdoc">Tensor structure representing a possible input, or intermediate computation result.</div><div class="ttdef"><b>Definition:</b> tensor.h:100</div></div>
 <div class="ttc" id="anamespacetvm_1_1topi_1_1nn_html_a258f660698c476e2ac7e7f78b32ad6ba"><div class="ttname"><a href="namespacetvm_1_1topi_1_1nn.html#a258f660698c476e2ac7e7f78b32ad6ba">tvm::topi::nn::bias_add</a></div><div class="ttdeci">tvm::te::Tensor bias_add(const tvm::te::Tensor &amp;data, const tvm::te::Tensor &amp;bias, int axis)</div><div class="ttdoc">Creates an operation that calculates data + bias.</div><div class="ttdef"><b>Definition:</b> bias_add.h:46</div></div>
 <div class="ttc" id="anamespacetvm_1_1topi_html_a7ddbd03d0d29a05618a1ef42f717ec9f"><div class="ttname"><a href="namespacetvm_1_1topi.html#a7ddbd03d0d29a05618a1ef42f717ec9f">tvm::topi::expand_dims</a></div><div class="ttdeci">Tensor expand_dims(const Tensor &amp;x, int axis, int num_newaxis=1, std::string name=&quot;T_expand_dims&quot;, std::string tag=kBroadcast)</div><div class="ttdoc">Creates an operation to insert new dimensions of length 1.</div><div class="ttdef"><b>Definition:</b>  [...]
 <div class="ttc" id="anamespacetvm_1_1topi_html_aa7d7e1d5966e6de6b29c902458a421e8"><div class="ttname"><a href="namespacetvm_1_1topi.html#aa7d7e1d5966e6de6b29c902458a421e8">tvm::topi::add</a></div><div class="ttdeci">tvm::PrimExpr add(const tvm::PrimExpr &amp;a, const tvm::PrimExpr &amp;b)</div><div class="ttdef"><b>Definition:</b> broadcast.h:199</div></div>
diff --git a/docs/reference/api/doxygen/binding__rewrite_8h_source.html b/docs/reference/api/doxygen/binding__rewrite_8h_source.html
index a9d5164b6c..cebe7c5e3c 100644
--- a/docs/reference/api/doxygen/binding__rewrite_8h_source.html
+++ b/docs/reference/api/doxygen/binding__rewrite_8h_source.html
@@ -129,75 +129,73 @@ $(function() {
 <div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;        .def_ro(<span class="stringliteral">&quot;dfb&quot;</span>, &amp;<a class="code" href="classtvm_1_1relax_1_1DataflowBlockRewriteNode.html#adfefc5b12e582cdac4808bd838442263">DataflowBlockRewriteNode::dfb_</a>)</div>
 <div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;        .def_ro(<span class="stringliteral">&quot;root_fn&quot;</span>, &amp;<a class="code" href="classtvm_1_1relax_1_1DataflowBlockRewriteNode.html#a854c996f9e9eb5e38b6942352f753eb4">DataflowBlockRewriteNode::root_fn_</a>);</div>
 <div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;  }</div>
-<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160; </div>
-<div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="classtvm_1_1relax_1_1DataflowBlockRewriteNode.html#a942055ef3f8e8deb5c426856486f1673">   78</a></span>&#160;  <span class="keyword">static</span> constexpr <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classtvm_1_1relax_1_1DataflowBlockRewriteNode.html#a942055ef3f8e8deb5c426856486f1673">_type_key</a> = <span class="stringliteral">&quot;relax.DataflowBlockRew [...]
-<div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="classtvm_1_1relax_1_1DataflowBlockRewriteNode.html#a94177765c494d30d46b8e103e3c26241">   79</a></span>&#160;  <a class="code" href="classtvm_1_1relax_1_1DataflowBlockRewriteNode.html#a94177765c494d30d46b8e103e3c26241">TVM_DECLARE_FINAL_OBJECT_INFO</a>(<a class="code" href="classtvm_1_1relax_1_1DataflowBlockRewriteNode.html">DataflowBlockRewriteNode</a>, Object);</div>
-<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160; </div>
-<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160; <span class="keyword">protected</span>:</div>
-<div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="classtvm_1_1relax_1_1DataflowBlockRewriteNode.html#ad7cbef1aa889c9f40cf1444d9f780dc6">   82</a></span>&#160;  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classtvm_1_1relax_1_1DataflowBlockRewrite.html">DataflowBlockRewrite</a>;</div>
-<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160; </div>
-<div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="classtvm_1_1relax_1_1DataflowBlockRewriteNode.html#adfefc5b12e582cdac4808bd838442263">   84</a></span>&#160;  <a class="code" href="classtvm_1_1relax_1_1DataflowBlock.html">DataflowBlock</a> <a class="code" href="classtvm_1_1relax_1_1DataflowBlockRewriteNode.html#adfefc5b12e582cdac4808bd838442263">dfb_</a>;                        </div>
-<div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="classtvm_1_1relax_1_1DataflowBlockRewriteNode.html#a854c996f9e9eb5e38b6942352f753eb4">   85</a></span>&#160;  ffi::Optional&lt;Function&gt; <a class="code" href="classtvm_1_1relax_1_1DataflowBlockRewriteNode.html#a854c996f9e9eb5e38b6942352f753eb4">root_fn_</a>;          </div>
-<div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="classtvm_1_1relax_1_1DataflowBlockRewriteNode.html#a20f44bd03d79fcaa77be014a6835bc44">   86</a></span>&#160;  <span class="keyword">const</span> <a class="code" href="classtvm_1_1relax_1_1FunctionNode.html">FunctionNode</a>* <a class="code" href="classtvm_1_1relax_1_1DataflowBlockRewriteNode.html#a20f44bd03d79fcaa77be014a6835bc44">original_fn_ptr_</a>;      </div>
-<div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="classtvm_1_1relax_1_1DataflowBlockRewriteNode.html#a667829eb57e5e2ca06817f15dc4e45ff">   87</a></span>&#160;  ffi::Map&lt;Var, ffi::Array&lt;Var&gt;&gt; <a class="code" href="classtvm_1_1relax_1_1DataflowBlockRewriteNode.html#a667829eb57e5e2ca06817f15dc4e45ff">to_users_</a>;  </div>
-<div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="classtvm_1_1relax_1_1DataflowBlockRewriteNode.html#a22d36ba160e08f50566795a8eccadf31">   88</a></span>&#160;  ffi::Array&lt;Var&gt; <a class="code" href="classtvm_1_1relax_1_1DataflowBlockRewriteNode.html#a22d36ba160e08f50566795a8eccadf31">fn_outputs_</a>;               </div>
-<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160; </div>
-<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160; <span class="keyword">private</span>:</div>
-<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;  <a class="code" href="classtvm_1_1NameSupply.html">NameSupply</a> name_supply_;  </div>
-<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;};</div>
-<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160; </div>
-<div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="classtvm_1_1relax_1_1DataflowBlockRewrite.html">   98</a></span>&#160;<span class="keyword">class </span><a class="code" href="classtvm_1_1relax_1_1DataflowBlockRewrite.html">DataflowBlockRewrite</a> : <span class="keyword">public</span> ObjectRef {</div>
-<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160; <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="classtvm_1_1relax_1_1DataflowBlockRewrite.html#afacb6ae055a52590dac89c349e75f643">  100</a></span>&#160;  TVM_DLL <span class="keyword">explicit</span> <a class="code" href="classtvm_1_1relax_1_1DataflowBlockRewrite.html#afacb6ae055a52590dac89c349e75f643">DataflowBlockRewrite</a>(<a class="code" href="classtvm_1_1relax_1_1DataflowBlock.html">DataflowBlock</a> dfb, <a class="code" href="classtvm_1_1relax_1_1 [...]
-<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160; </div>
-<div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="classtvm_1_1relax_1_1DataflowBlockRewrite.html#ae3fcaaa9b52ae31bfce13dab56d57d4a">  106</a></span>&#160;  <a class="code" href="classtvm_1_1relax_1_1DataflowBlockRewriteNode.html">DataflowBlockRewriteNode</a>* <a class="code" href="classtvm_1_1relax_1_1DataflowBlockRewrite.html#ae3fcaaa9b52ae31bfce13dab56d57d4a">operator-&gt;</a>() {</div>
-<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;    ICHECK(get() != <span class="keyword">nullptr</span>);</div>
-<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span><a class="code" href="classtvm_1_1relax_1_1DataflowBlockRewriteNode.html">DataflowBlockRewriteNode</a>*<span class="keyword">&gt;</span>(get_mutable());</div>
-<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;  }</div>
-<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160; </div>
-<div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="classtvm_1_1relax_1_1DataflowBlockRewrite.html#a61292cb124a6efd8eea8d6eb50fa1dc9">  111</a></span>&#160;  <a class="code" href="classtvm_1_1relax_1_1DataflowBlockRewrite.html#a61292cb124a6efd8eea8d6eb50fa1dc9">TVM_DEFINE_OBJECT_REF_METHODS</a>(<a class="code" href="classtvm_1_1relax_1_1DataflowBlockRewrite.html">DataflowBlockRewrite</a>, ObjectRef, <a class="code" href="classtvm_1_1relax_1_1DataflowBlockRew [...]
-<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;};</div>
-<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160; </div>
-<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;}  <span class="comment">// namespace relax</span></div>
-<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;}  <span class="comment">// namespace tvm</span></div>
-<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160; </div>
-<div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="binding__rewrite_8h.html#a3ce77ac22e5aa454d3803902b888f6e1">  117</a></span>&#160;<span class="preprocessor">#define TVM_RELAX_BINDING_REWRITE_H_</span></div>
-<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;<span class="preprocessor">#endif  </span><span class="comment">// TVM_RELAX_BINDING_REWRITE_H_</span></div>
-<div class="ttc" id="aclasstvm_1_1IRModule_html"><div class="ttname"><a href="classtvm_1_1IRModule.html">tvm::IRModule</a></div><div class="ttdoc">Managed reference class to IRModuleNode.</div><div class="ttdef"><b>Definition:</b> module.h:257</div></div>
+<div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="classtvm_1_1relax_1_1DataflowBlockRewriteNode.html#adf84cecd9b57015ad27acc1b0b7baf4d">   77</a></span>&#160;  <a class="code" href="classtvm_1_1relax_1_1DataflowBlockRewriteNode.html#adf84cecd9b57015ad27acc1b0b7baf4d">TVM_FFI_DECLARE_OBJECT_INFO_FINAL</a>(<span class="stringliteral">&quot;relax.DataflowBlockRewrite&quot;</span>, <a class="code" href="classtvm_1_1relax_1_1DataflowBlockRewriteNode.html">Dataf [...]
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160; </div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160; <span class="keyword">protected</span>:</div>
+<div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="classtvm_1_1relax_1_1DataflowBlockRewriteNode.html#ad7cbef1aa889c9f40cf1444d9f780dc6">   80</a></span>&#160;  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classtvm_1_1relax_1_1DataflowBlockRewrite.html">DataflowBlockRewrite</a>;</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160; </div>
+<div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="classtvm_1_1relax_1_1DataflowBlockRewriteNode.html#adfefc5b12e582cdac4808bd838442263">   82</a></span>&#160;  <a class="code" href="classtvm_1_1relax_1_1DataflowBlock.html">DataflowBlock</a> <a class="code" href="classtvm_1_1relax_1_1DataflowBlockRewriteNode.html#adfefc5b12e582cdac4808bd838442263">dfb_</a>;                        </div>
+<div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="classtvm_1_1relax_1_1DataflowBlockRewriteNode.html#a854c996f9e9eb5e38b6942352f753eb4">   83</a></span>&#160;  ffi::Optional&lt;Function&gt; <a class="code" href="classtvm_1_1relax_1_1DataflowBlockRewriteNode.html#a854c996f9e9eb5e38b6942352f753eb4">root_fn_</a>;          </div>
+<div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="classtvm_1_1relax_1_1DataflowBlockRewriteNode.html#a20f44bd03d79fcaa77be014a6835bc44">   84</a></span>&#160;  <span class="keyword">const</span> <a class="code" href="classtvm_1_1relax_1_1FunctionNode.html">FunctionNode</a>* <a class="code" href="classtvm_1_1relax_1_1DataflowBlockRewriteNode.html#a20f44bd03d79fcaa77be014a6835bc44">original_fn_ptr_</a>;      </div>
+<div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="classtvm_1_1relax_1_1DataflowBlockRewriteNode.html#a667829eb57e5e2ca06817f15dc4e45ff">   85</a></span>&#160;  ffi::Map&lt;Var, ffi::Array&lt;Var&gt;&gt; <a class="code" href="classtvm_1_1relax_1_1DataflowBlockRewriteNode.html#a667829eb57e5e2ca06817f15dc4e45ff">to_users_</a>;  </div>
+<div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="classtvm_1_1relax_1_1DataflowBlockRewriteNode.html#a22d36ba160e08f50566795a8eccadf31">   86</a></span>&#160;  ffi::Array&lt;Var&gt; <a class="code" href="classtvm_1_1relax_1_1DataflowBlockRewriteNode.html#a22d36ba160e08f50566795a8eccadf31">fn_outputs_</a>;               </div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160; </div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160; <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;  <a class="code" href="classtvm_1_1NameSupply.html">NameSupply</a> name_supply_;  </div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;};</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160; </div>
+<div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="classtvm_1_1relax_1_1DataflowBlockRewrite.html">   96</a></span>&#160;<span class="keyword">class </span><a class="code" href="classtvm_1_1relax_1_1DataflowBlockRewrite.html">DataflowBlockRewrite</a> : <span class="keyword">public</span> ObjectRef {</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160; <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="classtvm_1_1relax_1_1DataflowBlockRewrite.html#afacb6ae055a52590dac89c349e75f643">   98</a></span>&#160;  TVM_DLL <span class="keyword">explicit</span> <a class="code" href="classtvm_1_1relax_1_1DataflowBlockRewrite.html#afacb6ae055a52590dac89c349e75f643">DataflowBlockRewrite</a>(<a class="code" href="classtvm_1_1relax_1_1DataflowBlock.html">DataflowBlock</a> dfb, <a class="code" href="classtvm_1_1relax_1_1 [...]
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160; </div>
+<div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="classtvm_1_1relax_1_1DataflowBlockRewrite.html#ae3fcaaa9b52ae31bfce13dab56d57d4a">  104</a></span>&#160;  <a class="code" href="classtvm_1_1relax_1_1DataflowBlockRewriteNode.html">DataflowBlockRewriteNode</a>* <a class="code" href="classtvm_1_1relax_1_1DataflowBlockRewrite.html#ae3fcaaa9b52ae31bfce13dab56d57d4a">operator-&gt;</a>() {</div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;    ICHECK(get() != <span class="keyword">nullptr</span>);</div>
+<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;    <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span><a class="code" href="classtvm_1_1relax_1_1DataflowBlockRewriteNode.html">DataflowBlockRewriteNode</a>*<span class="keyword">&gt;</span>(get_mutable());</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;  }</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160; </div>
+<div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="classtvm_1_1relax_1_1DataflowBlockRewrite.html#ad93c4ce278615b7a9aa55e6ff6aba2b9">  109</a></span>&#160;  <a class="code" href="classtvm_1_1relax_1_1DataflowBlockRewrite.html#ad93c4ce278615b7a9aa55e6ff6aba2b9">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE</a>(<a class="code" href="classtvm_1_1relax_1_1DataflowBlockRewrite.html">DataflowBlockRewrite</a>, ObjectRef,</div>
+<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;                                             <a class="code" href="classtvm_1_1relax_1_1DataflowBlockRewriteNode.html">DataflowBlockRewriteNode</a>);</div>
+<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;};</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160; </div>
+<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;}  <span class="comment">// namespace relax</span></div>
+<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;}  <span class="comment">// namespace tvm</span></div>
+<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160; </div>
+<div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="binding__rewrite_8h.html#a3ce77ac22e5aa454d3803902b888f6e1">  116</a></span>&#160;<span class="preprocessor">#define TVM_RELAX_BINDING_REWRITE_H_</span></div>
+<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;<span class="preprocessor">#endif  </span><span class="comment">// TVM_RELAX_BINDING_REWRITE_H_</span></div>
+<div class="ttc" id="aclasstvm_1_1IRModule_html"><div class="ttname"><a href="classtvm_1_1IRModule.html">tvm::IRModule</a></div><div class="ttdoc">Managed reference class to IRModuleNode.</div><div class="ttdef"><b>Definition:</b> module.h:256</div></div>
 <div class="ttc" id="aclasstvm_1_1NameSupply_html"><div class="ttname"><a href="classtvm_1_1NameSupply.html">tvm::NameSupply</a></div><div class="ttdoc">Managed reference class to NameSupplyNode.</div><div class="ttdef"><b>Definition:</b> name_supply.h:111</div></div>
-<div class="ttc" id="aclasstvm_1_1RelaxExpr_html"><div class="ttname"><a href="classtvm_1_1RelaxExpr.html">tvm::RelaxExpr</a></div><div class="ttdoc">Managed reference to RelaxExprNode.</div><div class="ttdef"><b>Definition:</b> expr.h:444</div></div>
-<div class="ttc" id="aclasstvm_1_1relax_1_1Binding_html"><div class="ttname"><a href="classtvm_1_1relax_1_1Binding.html">tvm::relax::Binding</a></div><div class="ttdef"><b>Definition:</b> expr.h:605</div></div>
+<div class="ttc" id="aclasstvm_1_1RelaxExpr_html"><div class="ttname"><a href="classtvm_1_1RelaxExpr.html">tvm::RelaxExpr</a></div><div class="ttdoc">Managed reference to RelaxExprNode.</div><div class="ttdef"><b>Definition:</b> expr.h:439</div></div>
+<div class="ttc" id="aclasstvm_1_1relax_1_1Binding_html"><div class="ttname"><a href="classtvm_1_1relax_1_1Binding.html">tvm::relax::Binding</a></div><div class="ttdef"><b>Definition:</b> expr.h:582</div></div>
 <div class="ttc" id="aclasstvm_1_1relax_1_1DataflowBlockRewriteNode_html"><div class="ttname"><a href="classtvm_1_1relax_1_1DataflowBlockRewriteNode.html">tvm::relax::DataflowBlockRewriteNode</a></div><div class="ttdoc">Statement rewriter for relax.DataflowBlock.</div><div class="ttdef"><b>Definition:</b> binding_rewrite.h:42</div></div>
 <div class="ttc" id="aclasstvm_1_1relax_1_1DataflowBlockRewriteNode_html_a0cc3a12b24b1173c6048f4ade3b618cd"><div class="ttname"><a href="classtvm_1_1relax_1_1DataflowBlockRewriteNode.html#a0cc3a12b24b1173c6048f4ade3b618cd">tvm::relax::DataflowBlockRewriteNode::MutatedDataflowBlock</a></div><div class="ttdeci">DataflowBlock MutatedDataflowBlock()</div><div class="ttdoc">The rewritten dataflow block.</div><div class="ttdef"><b>Definition:</b> binding_rewrite.h:64</div></div>
 <div class="ttc" id="aclasstvm_1_1relax_1_1DataflowBlockRewriteNode_html_a10748f79386e788d837be44a46b4978d"><div class="ttname"><a href="classtvm_1_1relax_1_1DataflowBlockRewriteNode.html#a10748f79386e788d837be44a46b4978d">tvm::relax::DataflowBlockRewriteNode::Add</a></div><div class="ttdeci">void Add(ffi::String var_name, Expr expr, bool is_dfvar=false)</div><div class="ttdoc">Insert an expression as VarBinding with variable name.</div><div class="ttdef"><b>Definition:</b> binding_rewri [...]
-<div class="ttc" id="aclasstvm_1_1relax_1_1DataflowBlockRewriteNode_html_a20f44bd03d79fcaa77be014a6835bc44"><div class="ttname"><a href="classtvm_1_1relax_1_1DataflowBlockRewriteNode.html#a20f44bd03d79fcaa77be014a6835bc44">tvm::relax::DataflowBlockRewriteNode::original_fn_ptr_</a></div><div class="ttdeci">const FunctionNode * original_fn_ptr_</div><div class="ttdoc">Pointer to the original function.</div><div class="ttdef"><b>Definition:</b> binding_rewrite.h:86</div></div>
-<div class="ttc" id="aclasstvm_1_1relax_1_1DataflowBlockRewriteNode_html_a22d36ba160e08f50566795a8eccadf31"><div class="ttname"><a href="classtvm_1_1relax_1_1DataflowBlockRewriteNode.html#a22d36ba160e08f50566795a8eccadf31">tvm::relax::DataflowBlockRewriteNode::fn_outputs_</a></div><div class="ttdeci">ffi::Array&lt; Var &gt; fn_outputs_</div><div class="ttdoc">Variables required by function outputs.</div><div class="ttdef"><b>Definition:</b> binding_rewrite.h:88</div></div>
+<div class="ttc" id="aclasstvm_1_1relax_1_1DataflowBlockRewriteNode_html_a20f44bd03d79fcaa77be014a6835bc44"><div class="ttname"><a href="classtvm_1_1relax_1_1DataflowBlockRewriteNode.html#a20f44bd03d79fcaa77be014a6835bc44">tvm::relax::DataflowBlockRewriteNode::original_fn_ptr_</a></div><div class="ttdeci">const FunctionNode * original_fn_ptr_</div><div class="ttdoc">Pointer to the original function.</div><div class="ttdef"><b>Definition:</b> binding_rewrite.h:84</div></div>
+<div class="ttc" id="aclasstvm_1_1relax_1_1DataflowBlockRewriteNode_html_a22d36ba160e08f50566795a8eccadf31"><div class="ttname"><a href="classtvm_1_1relax_1_1DataflowBlockRewriteNode.html#a22d36ba160e08f50566795a8eccadf31">tvm::relax::DataflowBlockRewriteNode::fn_outputs_</a></div><div class="ttdeci">ffi::Array&lt; Var &gt; fn_outputs_</div><div class="ttdoc">Variables required by function outputs.</div><div class="ttdef"><b>Definition:</b> binding_rewrite.h:86</div></div>
 <div class="ttc" id="aclasstvm_1_1relax_1_1DataflowBlockRewriteNode_html_a280955bd2650128aa5ca32e8b50c3927"><div class="ttname"><a href="classtvm_1_1relax_1_1DataflowBlockRewriteNode.html#a280955bd2650128aa5ca32e8b50c3927">tvm::relax::DataflowBlockRewriteNode::MutatedFunc</a></div><div class="ttdeci">Function MutatedFunc()</div><div class="ttdoc">The rewritten function.</div><div class="ttdef"><b>Definition:</b> binding_rewrite.h:66</div></div>
-<div class="ttc" id="aclasstvm_1_1relax_1_1DataflowBlockRewriteNode_html_a667829eb57e5e2ca06817f15dc4e45ff"><div class="ttname"><a href="classtvm_1_1relax_1_1DataflowBlockRewriteNode.html#a667829eb57e5e2ca06817f15dc4e45ff">tvm::relax::DataflowBlockRewriteNode::to_users_</a></div><div class="ttdeci">ffi::Map&lt; Var, ffi::Array&lt; Var &gt; &gt; to_users_</div><div class="ttdoc">Map from variable to its users.</div><div class="ttdef"><b>Definition:</b> binding_rewrite.h:87</div></div>
-<div class="ttc" id="aclasstvm_1_1relax_1_1DataflowBlockRewriteNode_html_a854c996f9e9eb5e38b6942352f753eb4"><div class="ttname"><a href="classtvm_1_1relax_1_1DataflowBlockRewriteNode.html#a854c996f9e9eb5e38b6942352f753eb4">tvm::relax::DataflowBlockRewriteNode::root_fn_</a></div><div class="ttdeci">ffi::Optional&lt; Function &gt; root_fn_</div><div class="ttdoc">The rewritten function.</div><div class="ttdef"><b>Definition:</b> binding_rewrite.h:85</div></div>
+<div class="ttc" id="aclasstvm_1_1relax_1_1DataflowBlockRewriteNode_html_a667829eb57e5e2ca06817f15dc4e45ff"><div class="ttname"><a href="classtvm_1_1relax_1_1DataflowBlockRewriteNode.html#a667829eb57e5e2ca06817f15dc4e45ff">tvm::relax::DataflowBlockRewriteNode::to_users_</a></div><div class="ttdeci">ffi::Map&lt; Var, ffi::Array&lt; Var &gt; &gt; to_users_</div><div class="ttdoc">Map from variable to its users.</div><div class="ttdef"><b>Definition:</b> binding_rewrite.h:85</div></div>
+<div class="ttc" id="aclasstvm_1_1relax_1_1DataflowBlockRewriteNode_html_a854c996f9e9eb5e38b6942352f753eb4"><div class="ttname"><a href="classtvm_1_1relax_1_1DataflowBlockRewriteNode.html#a854c996f9e9eb5e38b6942352f753eb4">tvm::relax::DataflowBlockRewriteNode::root_fn_</a></div><div class="ttdeci">ffi::Optional&lt; Function &gt; root_fn_</div><div class="ttdoc">The rewritten function.</div><div class="ttdef"><b>Definition:</b> binding_rewrite.h:83</div></div>
 <div class="ttc" id="aclasstvm_1_1relax_1_1DataflowBlockRewriteNode_html_a8ebfa683b7ddde17e3f77d985fb10cd3"><div class="ttname"><a href="classtvm_1_1relax_1_1DataflowBlockRewriteNode.html#a8ebfa683b7ddde17e3f77d985fb10cd3">tvm::relax::DataflowBlockRewriteNode::RegisterReflection</a></div><div class="ttdeci">static void RegisterReflection()</div><div class="ttdoc">Visit attributes.</div><div class="ttdef"><b>Definition:</b> binding_rewrite.h:71</div></div>
-<div class="ttc" id="aclasstvm_1_1relax_1_1DataflowBlockRewriteNode_html_a94177765c494d30d46b8e103e3c26241"><div class="ttname"><a href="classtvm_1_1relax_1_1DataflowBlockRewriteNode.html#a94177765c494d30d46b8e103e3c26241">tvm::relax::DataflowBlockRewriteNode::TVM_DECLARE_FINAL_OBJECT_INFO</a></div><div class="ttdeci">TVM_DECLARE_FINAL_OBJECT_INFO(DataflowBlockRewriteNode, Object)</div></div>
-<div class="ttc" id="aclasstvm_1_1relax_1_1DataflowBlockRewriteNode_html_a942055ef3f8e8deb5c426856486f1673"><div class="ttname"><a href="classtvm_1_1relax_1_1DataflowBlockRewriteNode.html#a942055ef3f8e8deb5c426856486f1673">tvm::relax::DataflowBlockRewriteNode::_type_key</a></div><div class="ttdeci">static constexpr const char * _type_key</div><div class="ttdef"><b>Definition:</b> binding_rewrite.h:78</div></div>
 <div class="ttc" id="aclasstvm_1_1relax_1_1DataflowBlockRewriteNode_html_a9ade090eb39b47ebf70b59cf4a50f7dc"><div class="ttname"><a href="classtvm_1_1relax_1_1DataflowBlockRewriteNode.html#a9ade090eb39b47ebf70b59cf4a50f7dc">tvm::relax::DataflowBlockRewriteNode::Add</a></div><div class="ttdeci">void Add(Expr expr, bool is_dfvar=false)</div><div class="ttdoc">Insert an expression as VarBinding with automatic variable name.</div><div class="ttdef"><b>Definition:</b> binding_rewrite.h:55</div></div>
 <div class="ttc" id="aclasstvm_1_1relax_1_1DataflowBlockRewriteNode_html_ab6be9b473fac12d08365487089d9776a"><div class="ttname"><a href="classtvm_1_1relax_1_1DataflowBlockRewriteNode.html#ab6be9b473fac12d08365487089d9776a">tvm::relax::DataflowBlockRewriteNode::RemoveUnused</a></div><div class="ttdeci">void RemoveUnused(Var unused, bool allow_undef=false)</div><div class="ttdoc">Remove the definition statement of an unused variable.</div></div>
 <div class="ttc" id="aclasstvm_1_1relax_1_1DataflowBlockRewriteNode_html_acbb1bbda9f82aed1c1679d89809d5ea6"><div class="ttname"><a href="classtvm_1_1relax_1_1DataflowBlockRewriteNode.html#acbb1bbda9f82aed1c1679d89809d5ea6">tvm::relax::DataflowBlockRewriteNode::MutateIRModule</a></div><div class="ttdeci">IRModule MutateIRModule(IRModule irmod)</div><div class="ttdoc">The rewritten IRModule.</div></div>
 <div class="ttc" id="aclasstvm_1_1relax_1_1DataflowBlockRewriteNode_html_accdf3b49ec7ad51da201c7f48057d731"><div class="ttname"><a href="classtvm_1_1relax_1_1DataflowBlockRewriteNode.html#accdf3b49ec7ad51da201c7f48057d731">tvm::relax::DataflowBlockRewriteNode::ReplaceAllUses</a></div><div class="ttdeci">void ReplaceAllUses(Var old_var, Var new_var)</div><div class="ttdoc">Replace all uses of old_var with new_var.</div></div>
 <div class="ttc" id="aclasstvm_1_1relax_1_1DataflowBlockRewriteNode_html_ad44d84245706e24e5504ce1973c4fa15"><div class="ttname"><a href="classtvm_1_1relax_1_1DataflowBlockRewriteNode.html#ad44d84245706e24e5504ce1973c4fa15">tvm::relax::DataflowBlockRewriteNode::RemoveAllUnused</a></div><div class="ttdeci">void RemoveAllUnused()</div><div class="ttdoc">Remove the definition statements of all unused variables.</div></div>
-<div class="ttc" id="aclasstvm_1_1relax_1_1DataflowBlockRewriteNode_html_adfefc5b12e582cdac4808bd838442263"><div class="ttname"><a href="classtvm_1_1relax_1_1DataflowBlockRewriteNode.html#adfefc5b12e582cdac4808bd838442263">tvm::relax::DataflowBlockRewriteNode::dfb_</a></div><div class="ttdeci">DataflowBlock dfb_</div><div class="ttdoc">The rewritten dataflow block.</div><div class="ttdef"><b>Definition:</b> binding_rewrite.h:84</div></div>
+<div class="ttc" id="aclasstvm_1_1relax_1_1DataflowBlockRewriteNode_html_adf84cecd9b57015ad27acc1b0b7baf4d"><div class="ttname"><a href="classtvm_1_1relax_1_1DataflowBlockRewriteNode.html#adf84cecd9b57015ad27acc1b0b7baf4d">tvm::relax::DataflowBlockRewriteNode::TVM_FFI_DECLARE_OBJECT_INFO_FINAL</a></div><div class="ttdeci">TVM_FFI_DECLARE_OBJECT_INFO_FINAL(&quot;relax.DataflowBlockRewrite&quot;, DataflowBlockRewriteNode, Object)</div></div>
+<div class="ttc" id="aclasstvm_1_1relax_1_1DataflowBlockRewriteNode_html_adfefc5b12e582cdac4808bd838442263"><div class="ttname"><a href="classtvm_1_1relax_1_1DataflowBlockRewriteNode.html#adfefc5b12e582cdac4808bd838442263">tvm::relax::DataflowBlockRewriteNode::dfb_</a></div><div class="ttdeci">DataflowBlock dfb_</div><div class="ttdoc">The rewritten dataflow block.</div><div class="ttdef"><b>Definition:</b> binding_rewrite.h:82</div></div>
 <div class="ttc" id="aclasstvm_1_1relax_1_1DataflowBlockRewriteNode_html_ae47c6e1bebd3f83956d18c32cf2289bd"><div class="ttname"><a href="classtvm_1_1relax_1_1DataflowBlockRewriteNode.html#ae47c6e1bebd3f83956d18c32cf2289bd">tvm::relax::DataflowBlockRewriteNode::Add</a></div><div class="ttdeci">void Add(Binding binding)</div><div class="ttdoc">Insert a Binding statement.</div></div>
-<div class="ttc" id="aclasstvm_1_1relax_1_1DataflowBlockRewrite_html"><div class="ttname"><a href="classtvm_1_1relax_1_1DataflowBlockRewrite.html">tvm::relax::DataflowBlockRewrite</a></div><div class="ttdoc">A statement rewriter for relax.DataflowBlock.</div><div class="ttdef"><b>Definition:</b> binding_rewrite.h:98</div></div>
-<div class="ttc" id="aclasstvm_1_1relax_1_1DataflowBlockRewrite_html_a61292cb124a6efd8eea8d6eb50fa1dc9"><div class="ttname"><a href="classtvm_1_1relax_1_1DataflowBlockRewrite.html#a61292cb124a6efd8eea8d6eb50fa1dc9">tvm::relax::DataflowBlockRewrite::TVM_DEFINE_OBJECT_REF_METHODS</a></div><div class="ttdeci">TVM_DEFINE_OBJECT_REF_METHODS(DataflowBlockRewrite, ObjectRef, DataflowBlockRewriteNode)</div></div>
-<div class="ttc" id="aclasstvm_1_1relax_1_1DataflowBlockRewrite_html_ae3fcaaa9b52ae31bfce13dab56d57d4a"><div class="ttname"><a href="classtvm_1_1relax_1_1DataflowBlockRewrite.html#ae3fcaaa9b52ae31bfce13dab56d57d4a">tvm::relax::DataflowBlockRewrite::operator-&gt;</a></div><div class="ttdeci">DataflowBlockRewriteNode * operator-&gt;()</div><div class="ttdoc">mutable accessor.</div><div class="ttdef"><b>Definition:</b> binding_rewrite.h:106</div></div>
+<div class="ttc" id="aclasstvm_1_1relax_1_1DataflowBlockRewrite_html"><div class="ttname"><a href="classtvm_1_1relax_1_1DataflowBlockRewrite.html">tvm::relax::DataflowBlockRewrite</a></div><div class="ttdoc">A statement rewriter for relax.DataflowBlock.</div><div class="ttdef"><b>Definition:</b> binding_rewrite.h:96</div></div>
+<div class="ttc" id="aclasstvm_1_1relax_1_1DataflowBlockRewrite_html_ad93c4ce278615b7a9aa55e6ff6aba2b9"><div class="ttname"><a href="classtvm_1_1relax_1_1DataflowBlockRewrite.html#ad93c4ce278615b7a9aa55e6ff6aba2b9">tvm::relax::DataflowBlockRewrite::TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE</a></div><div class="ttdeci">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE(DataflowBlockRewrite, ObjectRef, DataflowBlockRewriteNode)</div></div>
+<div class="ttc" id="aclasstvm_1_1relax_1_1DataflowBlockRewrite_html_ae3fcaaa9b52ae31bfce13dab56d57d4a"><div class="ttname"><a href="classtvm_1_1relax_1_1DataflowBlockRewrite.html#ae3fcaaa9b52ae31bfce13dab56d57d4a">tvm::relax::DataflowBlockRewrite::operator-&gt;</a></div><div class="ttdeci">DataflowBlockRewriteNode * operator-&gt;()</div><div class="ttdoc">mutable accessor.</div><div class="ttdef"><b>Definition:</b> binding_rewrite.h:104</div></div>
 <div class="ttc" id="aclasstvm_1_1relax_1_1DataflowBlockRewrite_html_afacb6ae055a52590dac89c349e75f643"><div class="ttname"><a href="classtvm_1_1relax_1_1DataflowBlockRewrite.html#afacb6ae055a52590dac89c349e75f643">tvm::relax::DataflowBlockRewrite::DataflowBlockRewrite</a></div><div class="ttdeci">DataflowBlockRewrite(DataflowBlock dfb, Function root_fn)</div></div>
-<div class="ttc" id="aclasstvm_1_1relax_1_1DataflowBlock_html"><div class="ttname"><a href="classtvm_1_1relax_1_1DataflowBlock.html">tvm::relax::DataflowBlock</a></div><div class="ttdef"><b>Definition:</b> expr.h:725</div></div>
-<div class="ttc" id="aclasstvm_1_1relax_1_1DataflowVar_html"><div class="ttname"><a href="classtvm_1_1relax_1_1DataflowVar.html">tvm::relax::DataflowVar</a></div><div class="ttdef"><b>Definition:</b> expr.h:418</div></div>
-<div class="ttc" id="aclasstvm_1_1relax_1_1FunctionNode_html"><div class="ttname"><a href="classtvm_1_1relax_1_1FunctionNode.html">tvm::relax::FunctionNode</a></div><div class="ttdoc">A Relax function.</div><div class="ttdef"><b>Definition:</b> expr.h:842</div></div>
-<div class="ttc" id="aclasstvm_1_1relax_1_1Function_html"><div class="ttname"><a href="classtvm_1_1relax_1_1Function.html">tvm::relax::Function</a></div><div class="ttdef"><b>Definition:</b> expr.h:867</div></div>
-<div class="ttc" id="aclasstvm_1_1relax_1_1VarBinding_html"><div class="ttname"><a href="classtvm_1_1relax_1_1VarBinding.html">tvm::relax::VarBinding</a></div><div class="ttdef"><b>Definition:</b> expr.h:679</div></div>
-<div class="ttc" id="aclasstvm_1_1relax_1_1Var_html"><div class="ttname"><a href="classtvm_1_1relax_1_1Var.html">tvm::relax::Var</a></div><div class="ttdef"><b>Definition:</b> expr.h:390</div></div>
+<div class="ttc" id="aclasstvm_1_1relax_1_1DataflowBlock_html"><div class="ttname"><a href="classtvm_1_1relax_1_1DataflowBlock.html">tvm::relax::DataflowBlock</a></div><div class="ttdef"><b>Definition:</b> expr.h:693</div></div>
+<div class="ttc" id="aclasstvm_1_1relax_1_1DataflowVar_html"><div class="ttname"><a href="classtvm_1_1relax_1_1DataflowVar.html">tvm::relax::DataflowVar</a></div><div class="ttdef"><b>Definition:</b> expr.h:404</div></div>
+<div class="ttc" id="aclasstvm_1_1relax_1_1FunctionNode_html"><div class="ttname"><a href="classtvm_1_1relax_1_1FunctionNode.html">tvm::relax::FunctionNode</a></div><div class="ttdoc">A Relax function.</div><div class="ttdef"><b>Definition:</b> expr.h:806</div></div>
+<div class="ttc" id="aclasstvm_1_1relax_1_1Function_html"><div class="ttname"><a href="classtvm_1_1relax_1_1Function.html">tvm::relax::Function</a></div><div class="ttdef"><b>Definition:</b> expr.h:830</div></div>
+<div class="ttc" id="aclasstvm_1_1relax_1_1VarBinding_html"><div class="ttname"><a href="classtvm_1_1relax_1_1VarBinding.html">tvm::relax::VarBinding</a></div><div class="ttdef"><b>Definition:</b> expr.h:651</div></div>
+<div class="ttc" id="aclasstvm_1_1relax_1_1Var_html"><div class="ttname"><a href="classtvm_1_1relax_1_1Var.html">tvm::relax::Var</a></div><div class="ttdef"><b>Definition:</b> expr.h:377</div></div>
 <div class="ttc" id="aname__supply_8h_html"><div class="ttname"><a href="name__supply_8h.html">name_supply.h</a></div><div class="ttdoc">NameSupply that can be used to generate unique variable names.</div></div>
 <div class="ttc" id="anamespacetvm_1_1ffi_1_1reflection_html"><div class="ttname"><a href="namespacetvm_1_1ffi_1_1reflection.html">tvm::ffi::reflection</a></div><div class="ttdef"><b>Definition:</b> repr_printer.h:91</div></div>
-<div class="ttc" id="anamespacetvm_1_1relax_html_ab80dd203171d2efc5553d3fe8d4e3945"><div class="ttname"><a href="namespacetvm_1_1relax.html#ab80dd203171d2efc5553d3fe8d4e3945">tvm::relax::GetStructInfo</a></div><div class="ttdeci">StructInfo GetStructInfo(const Expr &amp;expr)</div><div class="ttdoc">Get the underlying structure info of expr.</div><div class="ttdef"><b>Definition:</b> struct_info.h:407</div></div>
+<div class="ttc" id="anamespacetvm_1_1relax_html_ab80dd203171d2efc5553d3fe8d4e3945"><div class="ttname"><a href="namespacetvm_1_1relax.html#ab80dd203171d2efc5553d3fe8d4e3945">tvm::relax::GetStructInfo</a></div><div class="ttdeci">StructInfo GetStructInfo(const Expr &amp;expr)</div><div class="ttdoc">Get the underlying structure info of expr.</div><div class="ttdef"><b>Definition:</b> struct_info.h:395</div></div>
 <div class="ttc" id="anamespacetvm_1_1te_html_ae0c71f84710b436cbe0b32289d0838f4"><div class="ttname"><a href="namespacetvm_1_1te.html#ae0c71f84710b436cbe0b32289d0838f4">tvm::te::var</a></div><div class="ttdeci">Var var(std::string name_hint, DataType t=DataType::Int(32))</div><div class="ttdoc">Construct a new Var expression.</div></div>
 <div class="ttc" id="anamespacetvm_html"><div class="ttname"><a href="namespacetvm.html">tvm</a></div><div class="ttdoc">Performance counters for profiling via the PAPI library.</div><div class="ttdef"><b>Definition:</b> analyzer.h:37</div></div>
 <div class="ttc" id="arelax_2analysis_8h_html"><div class="ttname"><a href="relax_2analysis_8h.html">analysis.h</a></div><div class="ttdoc">The set of Relax specific analysis on IR.</div></div>
diff --git a/docs/reference/api/doxygen/block__builder_8h_source.html b/docs/reference/api/doxygen/block__builder_8h_source.html
index d8907f4d41..286c1d8f00 100644
--- a/docs/reference/api/doxygen/block__builder_8h_source.html
+++ b/docs/reference/api/doxygen/block__builder_8h_source.html
@@ -152,8 +152,8 @@ $(function() {
 <div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160; </div>
 <div class="line"><a name="l00258"></a><span class="lineno"><a class="line" href="classtvm_1_1relax_1_1BlockBuilderNode.html#ab06a2973e5b0231d889bb6b55b1d66b2">  258</a></span>&#160;  <span class="keyword">virtual</span> <a class="code" href="classtvm_1_1arith_1_1Analyzer.html">arith::Analyzer</a>* <a class="code" href="classtvm_1_1relax_1_1BlockBuilderNode.html#ab06a2973e5b0231d889bb6b55b1d66b2">GetAnalyzer</a>() = 0;</div>
 <div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160; </div>
-<div class="line"><a name="l00260"></a><span class="lineno"><a class="line" href="classtvm_1_1relax_1_1BlockBuilderNode.html#a5ecf5dc8d5e332f57687d026e4437b9f">  260</a></span>&#160;  <span class="keyword">static</span> constexpr <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classtvm_1_1relax_1_1BlockBuilderNode.html#a5ecf5dc8d5e332f57687d026e4437b9f">_type_key</a> = <span class="stringliteral">&quot;relax.BlockBuilder&quot;</span>;</div>
-<div class="line"><a name="l00261"></a><span class="lineno"><a class="line" href="classtvm_1_1relax_1_1BlockBuilderNode.html#ac47e65fd6c4cd9e56ed5d105f75a5c30">  261</a></span>&#160;  <a class="code" href="classtvm_1_1relax_1_1BlockBuilderNode.html#ac47e65fd6c4cd9e56ed5d105f75a5c30">TVM_DECLARE_BASE_OBJECT_INFO</a>(<a class="code" href="classtvm_1_1relax_1_1BlockBuilderNode.html">BlockBuilderNode</a>, Object);</div>
+<div class="line"><a name="l00260"></a><span class="lineno"><a class="line" href="classtvm_1_1relax_1_1BlockBuilderNode.html#aecb5793fbe44871649c86a1d6109a23a">  260</a></span>&#160;  <span class="keyword">static</span> constexpr <span class="keyword">const</span> <span class="keywordtype">bool</span> <a class="code" href="classtvm_1_1relax_1_1BlockBuilderNode.html#aecb5793fbe44871649c86a1d6109a23a">_type_mutable</a> = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00261"></a><span class="lineno"><a class="line" href="classtvm_1_1relax_1_1BlockBuilderNode.html#aea09b0082a711498dfc65c26f76163f6">  261</a></span>&#160;  <a class="code" href="classtvm_1_1relax_1_1BlockBuilderNode.html#aea09b0082a711498dfc65c26f76163f6">TVM_FFI_DECLARE_OBJECT_INFO</a>(<span class="stringliteral">&quot;relax.BlockBuilder&quot;</span>, <a class="code" href="classtvm_1_1relax_1_1BlockBuilderNode.html">BlockBuilderNode</a>, Object);</div>
 <div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;};</div>
 <div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160; </div>
 <div class="line"><a name="l00264"></a><span class="lineno"><a class="line" href="classtvm_1_1relax_1_1BlockBuilder.html">  264</a></span>&#160;<span class="keyword">class </span><a class="code" href="classtvm_1_1relax_1_1BlockBuilder.html">BlockBuilder</a> : <span class="keyword">public</span> ObjectRef {</div>
@@ -166,7 +166,7 @@ $(function() {
 <div class="line"><a name="l00318"></a><span class="lineno"><a class="line" href="classtvm_1_1relax_1_1BlockBuilder.html#a6a6cf74aaed9849cf1b1286babfbc8f6">  318</a></span>&#160;  TVM_DLL <span class="keyword">static</span> <a class="code" href="classtvm_1_1relax_1_1BlockBuilder.html">BlockBuilder</a> <a class="code" href="classtvm_1_1relax_1_1BlockBuilder.html#a6a6cf74aaed9849cf1b1286babfbc8f6">Create</a>(ffi::Optional&lt;IRModule&gt; ctx_mod,</div>
 <div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;                                     <a class="code" href="structtvm_1_1relax_1_1BlockBuilder_1_1DisableOperatorSpecificNormalizationForTVMScript.html">DisableOperatorSpecificNormalizationForTVMScript</a> tag);</div>
 <div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160; </div>
-<div class="line"><a name="l00321"></a><span class="lineno"><a class="line" href="classtvm_1_1relax_1_1BlockBuilder.html#ae42cf2c6fef89fe2f280626f0a099ed9">  321</a></span>&#160;  <a class="code" href="classtvm_1_1relax_1_1BlockBuilder.html#ae42cf2c6fef89fe2f280626f0a099ed9">TVM_DEFINE_MUTABLE_OBJECT_REF_METHODS</a>(<a class="code" href="classtvm_1_1relax_1_1BlockBuilder.html">BlockBuilder</a>, ObjectRef, <a class="code" href="classtvm_1_1relax_1_1BlockBuilderNode.html">BlockBuilderNode< [...]
+<div class="line"><a name="l00321"></a><span class="lineno"><a class="line" href="classtvm_1_1relax_1_1BlockBuilder.html#aff2f2395b514f41b3dc83360a662dc9d">  321</a></span>&#160;  <a class="code" href="classtvm_1_1relax_1_1BlockBuilder.html#aff2f2395b514f41b3dc83360a662dc9d">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE</a>(<a class="code" href="classtvm_1_1relax_1_1BlockBuilder.html">BlockBuilder</a>, ObjectRef, <a class="code" href="classtvm_1_1relax_1_1BlockBuilderNode.html">BlockBuilder [...]
 <div class="line"><a name="l00322"></a><span class="lineno">  322</span>&#160;};</div>
 <div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160; </div>
 <div class="line"><a name="l00324"></a><span class="lineno">  324</span>&#160;}  <span class="comment">// namespace relax</span></div>
@@ -174,15 +174,15 @@ $(function() {
 <div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160; </div>
 <div class="line"><a name="l00327"></a><span class="lineno">  327</span>&#160;<span class="preprocessor">#endif  </span><span class="comment">// TVM_RELAX_BLOCK_BUILDER_H_</span></div>
 <div class="ttc" id="aanalyzer_8h_html"><div class="ttname"><a href="analyzer_8h.html">analyzer.h</a></div><div class="ttdoc">Algebra expression simplifications.</div></div>
-<div class="ttc" id="aclasstvm_1_1BaseFunc_html"><div class="ttname"><a href="classtvm_1_1BaseFunc.html">tvm::BaseFunc</a></div><div class="ttdoc">Managed reference to BaseFuncNode.</div><div class="ttdef"><b>Definition:</b> function.h:234</div></div>
-<div class="ttc" id="aclasstvm_1_1Diagnostic_html"><div class="ttname"><a href="classtvm_1_1Diagnostic.html">tvm::Diagnostic</a></div><div class="ttdef"><b>Definition:</b> diagnostic.h:82</div></div>
-<div class="ttc" id="aclasstvm_1_1GlobalVar_html"><div class="ttname"><a href="classtvm_1_1GlobalVar.html">tvm::GlobalVar</a></div><div class="ttdoc">Managed reference to GlobalVarNode.</div><div class="ttdef"><b>Definition:</b> expr.h:487</div></div>
-<div class="ttc" id="aclasstvm_1_1IRModule_html"><div class="ttname"><a href="classtvm_1_1IRModule.html">tvm::IRModule</a></div><div class="ttdoc">Managed reference class to IRModuleNode.</div><div class="ttdef"><b>Definition:</b> module.h:257</div></div>
+<div class="ttc" id="aclasstvm_1_1BaseFunc_html"><div class="ttname"><a href="classtvm_1_1BaseFunc.html">tvm::BaseFunc</a></div><div class="ttdoc">Managed reference to BaseFuncNode.</div><div class="ttdef"><b>Definition:</b> function.h:233</div></div>
+<div class="ttc" id="aclasstvm_1_1Diagnostic_html"><div class="ttname"><a href="classtvm_1_1Diagnostic.html">tvm::Diagnostic</a></div><div class="ttdef"><b>Definition:</b> diagnostic.h:81</div></div>
+<div class="ttc" id="aclasstvm_1_1GlobalVar_html"><div class="ttname"><a href="classtvm_1_1GlobalVar.html">tvm::GlobalVar</a></div><div class="ttdoc">Managed reference to GlobalVarNode.</div><div class="ttdef"><b>Definition:</b> expr.h:481</div></div>
+<div class="ttc" id="aclasstvm_1_1IRModule_html"><div class="ttname"><a href="classtvm_1_1IRModule.html">tvm::IRModule</a></div><div class="ttdoc">Managed reference class to IRModuleNode.</div><div class="ttdef"><b>Definition:</b> module.h:256</div></div>
 <div class="ttc" id="aclasstvm_1_1NameSupply_html"><div class="ttname"><a href="classtvm_1_1NameSupply.html">tvm::NameSupply</a></div><div class="ttdoc">Managed reference class to NameSupplyNode.</div><div class="ttdef"><b>Definition:</b> name_supply.h:111</div></div>
-<div class="ttc" id="aclasstvm_1_1RelaxExpr_html"><div class="ttname"><a href="classtvm_1_1RelaxExpr.html">tvm::RelaxExpr</a></div><div class="ttdoc">Managed reference to RelaxExprNode.</div><div class="ttdef"><b>Definition:</b> expr.h:444</div></div>
-<div class="ttc" id="aclasstvm_1_1arith_1_1Analyzer_html"><div class="ttname"><a href="classtvm_1_1arith_1_1Analyzer.html">tvm::arith::Analyzer</a></div><div class="ttdoc">Analyzer that contains bunch of sub-analyzers.</div><div class="ttdef"><b>Definition:</b> analyzer.h:636</div></div>
-<div class="ttc" id="aclasstvm_1_1relax_1_1BindingBlock_html"><div class="ttname"><a href="classtvm_1_1relax_1_1BindingBlock.html">tvm::relax::BindingBlock</a></div><div class="ttdef"><b>Definition:</b> expr.h:705</div></div>
-<div class="ttc" id="aclasstvm_1_1relax_1_1Binding_html"><div class="ttname"><a href="classtvm_1_1relax_1_1Binding.html">tvm::relax::Binding</a></div><div class="ttdef"><b>Definition:</b> expr.h:605</div></div>
+<div class="ttc" id="aclasstvm_1_1RelaxExpr_html"><div class="ttname"><a href="classtvm_1_1RelaxExpr.html">tvm::RelaxExpr</a></div><div class="ttdoc">Managed reference to RelaxExprNode.</div><div class="ttdef"><b>Definition:</b> expr.h:439</div></div>
+<div class="ttc" id="aclasstvm_1_1arith_1_1Analyzer_html"><div class="ttname"><a href="classtvm_1_1arith_1_1Analyzer.html">tvm::arith::Analyzer</a></div><div class="ttdoc">Analyzer that contains bunch of sub-analyzers.</div><div class="ttdef"><b>Definition:</b> analyzer.h:634</div></div>
+<div class="ttc" id="aclasstvm_1_1relax_1_1BindingBlock_html"><div class="ttname"><a href="classtvm_1_1relax_1_1BindingBlock.html">tvm::relax::BindingBlock</a></div><div class="ttdef"><b>Definition:</b> expr.h:675</div></div>
+<div class="ttc" id="aclasstvm_1_1relax_1_1Binding_html"><div class="ttname"><a href="classtvm_1_1relax_1_1Binding.html">tvm::relax::Binding</a></div><div class="ttdef"><b>Definition:</b> expr.h:582</div></div>
 <div class="ttc" id="aclasstvm_1_1relax_1_1BlockBuilderNode_html"><div class="ttname"><a href="classtvm_1_1relax_1_1BlockBuilderNode.html">tvm::relax::BlockBuilderNode</a></div><div class="ttdoc">A builder to build Relax binding blocks.</div><div class="ttdef"><b>Definition:</b> block_builder.h:66</div></div>
 <div class="ttc" id="aclasstvm_1_1relax_1_1BlockBuilderNode_html_a0d90afaaadeab9dedac9a61311c910f5"><div class="ttname"><a href="classtvm_1_1relax_1_1BlockBuilderNode.html#a0d90afaaadeab9dedac9a61311c910f5">tvm::relax::BlockBuilderNode::name_supply</a></div><div class="ttdeci">virtual NameSupply name_supply()=0</div><div class="ttdoc">Get the name supply for generating unique names.</div></div>
 <div class="ttc" id="aclasstvm_1_1relax_1_1BlockBuilderNode_html_a1676f6889de59fd2d316eef32ab80d9a"><div class="ttname"><a href="classtvm_1_1relax_1_1BlockBuilderNode.html#a1676f6889de59fd2d316eef32ab80d9a">tvm::relax::BlockBuilderNode::BeginDataflowBlock</a></div><div class="ttdeci">virtual void BeginDataflowBlock()=0</div><div class="ttdoc">Begin to build a DataflowBlock.</div></div>
@@ -193,7 +193,6 @@ $(function() {
 <div class="ttc" id="aclasstvm_1_1relax_1_1BlockBuilderNode_html_a57efb80d606d8ca2cda6c4864d83c50b"><div class="ttname"><a href="classtvm_1_1relax_1_1BlockBuilderNode.html#a57efb80d606d8ca2cda6c4864d83c50b">tvm::relax::BlockBuilderNode::EmitNormalized</a></div><div class="ttdeci">virtual void EmitNormalized(Binding normalized_binding)=0</div><div class="ttdoc">Emit a binding that is already normalized.</div></div>
 <div class="ttc" id="aclasstvm_1_1relax_1_1BlockBuilderNode_html_a5d75cea9b45e192109a522d5cf679fcb"><div class="ttname"><a href="classtvm_1_1relax_1_1BlockBuilderNode.html#a5d75cea9b45e192109a522d5cf679fcb">tvm::relax::BlockBuilderNode::ReportFatal</a></div><div class="ttdeci">virtual void ReportFatal(const Diagnostic &amp;diagnostic)=0</div><div class="ttdoc">Report an error during transformation construction.</div></div>
 <div class="ttc" id="aclasstvm_1_1relax_1_1BlockBuilderNode_html_a5e1fdb540233627a71b1ac1b2094caa5"><div class="ttname"><a href="classtvm_1_1relax_1_1BlockBuilderNode.html#a5e1fdb540233627a71b1ac1b2094caa5">tvm::relax::BlockBuilderNode::AddFunction</a></div><div class="ttdeci">virtual GlobalVar AddFunction(const BaseFunc &amp;func, ffi::String func_name_hint)=0</div><div class="ttdoc">Add a Relax function or a TIR PrimFunc to internal context module.</div></div>
-<div class="ttc" id="aclasstvm_1_1relax_1_1BlockBuilderNode_html_a5ecf5dc8d5e332f57687d026e4437b9f"><div class="ttname"><a href="classtvm_1_1relax_1_1BlockBuilderNode.html#a5ecf5dc8d5e332f57687d026e4437b9f">tvm::relax::BlockBuilderNode::_type_key</a></div><div class="ttdeci">static constexpr const char * _type_key</div><div class="ttdef"><b>Definition:</b> block_builder.h:260</div></div>
 <div class="ttc" id="aclasstvm_1_1relax_1_1BlockBuilderNode_html_a6656c6162859b94d465b7aaabb2aaf90"><div class="ttname"><a href="classtvm_1_1relax_1_1BlockBuilderNode.html#a6656c6162859b94d465b7aaabb2aaf90">tvm::relax::BlockBuilderNode::Finalize</a></div><div class="ttdeci">virtual IRModule Finalize()=0</div><div class="ttdoc">Finalize the building process and return the result IRModule. Possibly rename GlobalVars in the IRMod...</div></div>
 <div class="ttc" id="aclasstvm_1_1relax_1_1BlockBuilderNode_html_a683462e0a52c58df6721735d32841be5"><div class="ttname"><a href="classtvm_1_1relax_1_1BlockBuilderNode.html#a683462e0a52c58df6721735d32841be5">tvm::relax::BlockBuilderNode::Normalize</a></div><div class="ttdeci">virtual Expr Normalize(const Expr &amp;expr)=0</div><div class="ttdoc">Convert an expression to normal form, and try to eagerly infer types and shapes.</div></div>
 <div class="ttc" id="aclasstvm_1_1relax_1_1BlockBuilderNode_html_a7c34f4741a963c939051f1970d4c074b"><div class="ttname"><a href="classtvm_1_1relax_1_1BlockBuilderNode.html#a7c34f4741a963c939051f1970d4c074b">tvm::relax::BlockBuilderNode::EndScope</a></div><div class="ttdeci">virtual void EndScope()=0</div><div class="ttdoc">End the previously defined scope.</div></div>
@@ -203,17 +202,18 @@ $(function() {
 <div class="ttc" id="aclasstvm_1_1relax_1_1BlockBuilderNode_html_aaa5d41a949606f96e497f1c87e205c4f"><div class="ttname"><a href="classtvm_1_1relax_1_1BlockBuilderNode.html#aaa5d41a949606f96e497f1c87e205c4f">tvm::relax::BlockBuilderNode::EmitOutput</a></div><div class="ttdeci">virtual Var EmitOutput(Expr output, ffi::String name_hint=&quot;&quot;)=0</div><div class="ttdoc">Generate an output for the current dataflow block.</div></div>
 <div class="ttc" id="aclasstvm_1_1relax_1_1BlockBuilderNode_html_ab06a2973e5b0231d889bb6b55b1d66b2"><div class="ttname"><a href="classtvm_1_1relax_1_1BlockBuilderNode.html#ab06a2973e5b0231d889bb6b55b1d66b2">tvm::relax::BlockBuilderNode::GetAnalyzer</a></div><div class="ttdeci">virtual arith::Analyzer * GetAnalyzer()=0</div><div class="ttdoc">Get the analyzer of the BlockBuilder.</div></div>
 <div class="ttc" id="aclasstvm_1_1relax_1_1BlockBuilderNode_html_ab226667e1c8d4bc5971bf5f4aadda5a6"><div class="ttname"><a href="classtvm_1_1relax_1_1BlockBuilderNode.html#ab226667e1c8d4bc5971bf5f4aadda5a6">tvm::relax::BlockBuilderNode::AddDefinitionToScope</a></div><div class="ttdeci">virtual void AddDefinitionToScope(Var var)=0</div><div class="ttdoc">Append a definition to the current scope.</div></div>
-<div class="ttc" id="aclasstvm_1_1relax_1_1BlockBuilderNode_html_ac47e65fd6c4cd9e56ed5d105f75a5c30"><div class="ttname"><a href="classtvm_1_1relax_1_1BlockBuilderNode.html#ac47e65fd6c4cd9e56ed5d105f75a5c30">tvm::relax::BlockBuilderNode::TVM_DECLARE_BASE_OBJECT_INFO</a></div><div class="ttdeci">TVM_DECLARE_BASE_OBJECT_INFO(BlockBuilderNode, Object)</div></div>
 <div class="ttc" id="aclasstvm_1_1relax_1_1BlockBuilderNode_html_acddf8f1c0da2a5e7f430a50039bfbde3"><div class="ttname"><a href="classtvm_1_1relax_1_1BlockBuilderNode.html#acddf8f1c0da2a5e7f430a50039bfbde3">tvm::relax::BlockBuilderNode::CurrentBlockIsDataFlow</a></div><div class="ttdeci">virtual bool CurrentBlockIsDataFlow()=0</div><div class="ttdoc">Check if the block being built is DataflowBlock or not.</div></div>
 <div class="ttc" id="aclasstvm_1_1relax_1_1BlockBuilderNode_html_ad3b8666ba75f38ed74845c22f5902604"><div class="ttname"><a href="classtvm_1_1relax_1_1BlockBuilderNode.html#ad3b8666ba75f38ed74845c22f5902604">tvm::relax::BlockBuilderNode::EndBlock</a></div><div class="ttdeci">virtual BindingBlock EndBlock()=0</div><div class="ttdoc">End building a BindingBlock.</div></div>
 <div class="ttc" id="aclasstvm_1_1relax_1_1BlockBuilderNode_html_ad66cba2fdae54095fc9d9cf7fbbec13d"><div class="ttname"><a href="classtvm_1_1relax_1_1BlockBuilderNode.html#ad66cba2fdae54095fc9d9cf7fbbec13d">tvm::relax::BlockBuilderNode::BeginBindingBlock</a></div><div class="ttdeci">virtual void BeginBindingBlock()=0</div><div class="ttdoc">Begin to build a BindingBlock.</div></div>
+<div class="ttc" id="aclasstvm_1_1relax_1_1BlockBuilderNode_html_aea09b0082a711498dfc65c26f76163f6"><div class="ttname"><a href="classtvm_1_1relax_1_1BlockBuilderNode.html#aea09b0082a711498dfc65c26f76163f6">tvm::relax::BlockBuilderNode::TVM_FFI_DECLARE_OBJECT_INFO</a></div><div class="ttdeci">TVM_FFI_DECLARE_OBJECT_INFO(&quot;relax.BlockBuilder&quot;, BlockBuilderNode, Object)</div></div>
+<div class="ttc" id="aclasstvm_1_1relax_1_1BlockBuilderNode_html_aecb5793fbe44871649c86a1d6109a23a"><div class="ttname"><a href="classtvm_1_1relax_1_1BlockBuilderNode.html#aecb5793fbe44871649c86a1d6109a23a">tvm::relax::BlockBuilderNode::_type_mutable</a></div><div class="ttdeci">static constexpr const bool _type_mutable</div><div class="ttdef"><b>Definition:</b> block_builder.h:260</div></div>
 <div class="ttc" id="aclasstvm_1_1relax_1_1BlockBuilderNode_html_af0489cea01c75c300bfd8535d5666c98"><div class="ttname"><a href="classtvm_1_1relax_1_1BlockBuilderNode.html#af0489cea01c75c300bfd8535d5666c98">tvm::relax::BlockBuilderNode::NormalizeArgument</a></div><div class="ttdeci">virtual Expr NormalizeArgument(const Expr &amp;expr)=0</div><div class="ttdoc">Normalize argument to a call or another IRNode.</div></div>
 <div class="ttc" id="aclasstvm_1_1relax_1_1BlockBuilder_html"><div class="ttname"><a href="classtvm_1_1relax_1_1BlockBuilder.html">tvm::relax::BlockBuilder</a></div><div class="ttdef"><b>Definition:</b> block_builder.h:264</div></div>
 <div class="ttc" id="aclasstvm_1_1relax_1_1BlockBuilder_html_a6a6cf74aaed9849cf1b1286babfbc8f6"><div class="ttname"><a href="classtvm_1_1relax_1_1BlockBuilder.html#a6a6cf74aaed9849cf1b1286babfbc8f6">tvm::relax::BlockBuilder::Create</a></div><div class="ttdeci">static BlockBuilder Create(ffi::Optional&lt; IRModule &gt; ctx_mod, DisableOperatorSpecificNormalizationForTVMScript tag)</div><div class="ttdoc">Create a BlockBuilder.</div></div>
 <div class="ttc" id="aclasstvm_1_1relax_1_1BlockBuilder_html_acbd6aeb3432b642c41f4c1b4cddc54c0"><div class="ttname"><a href="classtvm_1_1relax_1_1BlockBuilder.html#acbd6aeb3432b642c41f4c1b4cddc54c0">tvm::relax::BlockBuilder::Create</a></div><div class="ttdeci">static BlockBuilder Create(ffi::Optional&lt; IRModule &gt; ctx_mod)</div><div class="ttdoc">Create a BlockBuilder.</div></div>
-<div class="ttc" id="aclasstvm_1_1relax_1_1BlockBuilder_html_ae42cf2c6fef89fe2f280626f0a099ed9"><div class="ttname"><a href="classtvm_1_1relax_1_1BlockBuilder.html#ae42cf2c6fef89fe2f280626f0a099ed9">tvm::relax::BlockBuilder::TVM_DEFINE_MUTABLE_OBJECT_REF_METHODS</a></div><div class="ttdeci">TVM_DEFINE_MUTABLE_OBJECT_REF_METHODS(BlockBuilder, ObjectRef, BlockBuilderNode)</div></div>
-<div class="ttc" id="aclasstvm_1_1relax_1_1StructInfo_html"><div class="ttname"><a href="classtvm_1_1relax_1_1StructInfo.html">tvm::relax::StructInfo</a></div><div class="ttdoc">Managed reference to StructInfoNode.</div><div class="ttdef"><b>Definition:</b> expr.h:135</div></div>
-<div class="ttc" id="aclasstvm_1_1relax_1_1Var_html"><div class="ttname"><a href="classtvm_1_1relax_1_1Var.html">tvm::relax::Var</a></div><div class="ttdef"><b>Definition:</b> expr.h:390</div></div>
+<div class="ttc" id="aclasstvm_1_1relax_1_1BlockBuilder_html_aff2f2395b514f41b3dc83360a662dc9d"><div class="ttname"><a href="classtvm_1_1relax_1_1BlockBuilder.html#aff2f2395b514f41b3dc83360a662dc9d">tvm::relax::BlockBuilder::TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE</a></div><div class="ttdeci">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE(BlockBuilder, ObjectRef, BlockBuilderNode)</div></div>
+<div class="ttc" id="aclasstvm_1_1relax_1_1StructInfo_html"><div class="ttname"><a href="classtvm_1_1relax_1_1StructInfo.html">tvm::relax::StructInfo</a></div><div class="ttdoc">Managed reference to StructInfoNode.</div><div class="ttdef"><b>Definition:</b> expr.h:132</div></div>
+<div class="ttc" id="aclasstvm_1_1relax_1_1Var_html"><div class="ttname"><a href="classtvm_1_1relax_1_1Var.html">tvm::relax::Var</a></div><div class="ttdef"><b>Definition:</b> expr.h:377</div></div>
 <div class="ttc" id="adiagnostic_8h_html"><div class="ttname"><a href="diagnostic_8h.html">diagnostic.h</a></div><div class="ttdoc">A new diagnostic interface for TVM error reporting.</div></div>
 <div class="ttc" id="aname__supply_8h_html"><div class="ttname"><a href="name__supply_8h.html">name_supply.h</a></div><div class="ttdoc">NameSupply that can be used to generate unique variable names.</div></div>
 <div class="ttc" id="anamespacetvm_1_1te_html_ae0c71f84710b436cbe0b32289d0838f4"><div class="ttname"><a href="namespacetvm_1_1te.html#ae0c71f84710b436cbe0b32289d0838f4">tvm::te::var</a></div><div class="ttdeci">Var var(std::string name_hint, DataType t=DataType::Int(32))</div><div class="ttdoc">Construct a new Var expression.</div></div>
diff --git a/docs/reference/api/doxygen/block__dependence__info_8h_source.html b/docs/reference/api/doxygen/block__dependence__info_8h_source.html
index 2155e5323a..80b696f160 100644
--- a/docs/reference/api/doxygen/block__dependence__info_8h_source.html
+++ b/docs/reference/api/doxygen/block__dependence__info_8h_source.html
@@ -107,45 +107,42 @@ $(function() {
 <div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;    <span class="keyword">namespace </span>refl = <a class="code" href="namespacetvm_1_1ffi_1_1reflection.html">tvm::ffi::reflection</a>;</div>
 <div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;    refl::ObjectDef&lt;BlockDependenceInfoNode&gt;();</div>
 <div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;  }</div>
-<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160; </div>
-<div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1BlockDependenceInfoNode.html#a448f7ee3b6d1034c2ae200cc03c031c6">   69</a></span>&#160;  <span class="keyword">static</span> constexpr <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classtvm_1_1tir_1_1BlockDependenceInfoNode.html#a448f7ee3b6d1034c2ae200cc03c031c6">_type_key</a> = <span class="stringliteral">&quot;tir.BlockDependenceInfo&quot [...]
-<div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1BlockDependenceInfoNode.html#a4aa800584322c87abcdae53e795c6da4">   70</a></span>&#160;  <a class="code" href="classtvm_1_1tir_1_1BlockDependenceInfoNode.html#a4aa800584322c87abcdae53e795c6da4">TVM_DECLARE_FINAL_OBJECT_INFO</a>(<a class="code" href="classtvm_1_1tir_1_1BlockDependenceInfoNode.html">BlockDependenceInfoNode</a>, Object);</div>
-<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160; </div>
-<div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1BlockDependenceInfoNode.html#ad0640b76fa934c29f357539b1eaf20b9">   77</a></span>&#160;  <a class="code" href="classtvm_1_1tir_1_1BlockScope.html">BlockScope</a> <a class="code" href="classtvm_1_1tir_1_1BlockDependenceInfoNode.html#ad0640b76fa934c29f357539b1eaf20b9">GetBlockScope</a>(<span class="keyword">const</span> <a class="code" href="classtvm_1_1tir_1_1StmtSRef.html">StmtSRef</a>&amp [...]
-<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;    <span class="keyword">auto</span> it = <a class="code" href="classtvm_1_1tir_1_1BlockDependenceInfoNode.html#ac83f06f7c59be79c0ce58a31a4a7b05d">sref2scope</a>.find(scope_root);</div>
-<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;    CHECK(it != <a class="code" href="classtvm_1_1tir_1_1BlockDependenceInfoNode.html#ac83f06f7c59be79c0ce58a31a4a7b05d">sref2scope</a>.end())</div>
-<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;        &lt;&lt; <span class="stringliteral">&quot;IndexError: Cannot find the corresponding BlockScope to the block sref:\n&quot;</span></div>
-<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;        &lt;&lt; ffi::GetRef&lt;Stmt&gt;(scope_root-&gt;stmt);</div>
-<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;    <span class="keywordflow">return</span> it-&gt;second;</div>
-<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;  }</div>
-<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;};</div>
-<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160; </div>
-<div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1BlockDependenceInfo.html">   90</a></span>&#160;<span class="keyword">class </span><a class="code" href="classtvm_1_1tir_1_1BlockDependenceInfo.html">BlockDependenceInfo</a> : <span class="keyword">public</span> ObjectRef {</div>
-<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;  TVM_DLL <a class="code" href="classtvm_1_1tir_1_1BlockDependenceInfo.html">BlockDependenceInfo</a>();</div>
-<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160; </div>
-<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160; <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1BlockDependenceInfo.html#a51aa1c7985e83c71f57a5a03aa64d423">   98</a></span>&#160;  TVM_DLL <a class="code" href="classtvm_1_1tir_1_1BlockDependenceInfo.html#a51aa1c7985e83c71f57a5a03aa64d423">BlockDependenceInfo</a>(<a class="code" href="classtvm_1_1IRModule.html">IRModule</a> <a class="code" href="namespacetvm_1_1topi.html#aaa95d3ad68932ab206efbe0a326db6a2">mod</a>);</div>
-<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160; </div>
-<div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1BlockDependenceInfo.html#a9b027f1b1dbaf9636f57c4ad932c8088">  100</a></span>&#160;  <a class="code" href="classtvm_1_1tir_1_1BlockDependenceInfo.html#a9b027f1b1dbaf9636f57c4ad932c8088">TVM_DEFINE_MUTABLE_NOTNULLABLE_OBJECT_REF_METHODS</a>(<a class="code" href="classtvm_1_1tir_1_1BlockDependenceInfo.html">BlockDependenceInfo</a>, ObjectRef,</div>
-<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160;                                                    <a class="code" href="classtvm_1_1tir_1_1BlockDependenceInfoNode.html">BlockDependenceInfoNode</a>);</div>
-<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;};</div>
-<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160; </div>
-<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;}  <span class="comment">// namespace tir</span></div>
-<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;}  <span class="comment">// namespace tvm</span></div>
-<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;<span class="preprocessor">#endif  </span><span class="comment">// TVM_TIR_BLOCK_DEPENDENCE_INFO_H_</span></div>
+<div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1BlockDependenceInfoNode.html#a6ffa5818b2ffb6cec1b1a7f5c204ad6b">   68</a></span>&#160;  <a class="code" href="classtvm_1_1tir_1_1BlockDependenceInfoNode.html#a6ffa5818b2ffb6cec1b1a7f5c204ad6b">TVM_FFI_DECLARE_OBJECT_INFO_FINAL</a>(<span class="stringliteral">&quot;tir.BlockDependenceInfo&quot;</span>, <a class="code" href="classtvm_1_1tir_1_1BlockDependenceInfoNode.html">BlockDependenceIn [...]
+<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160; </div>
+<div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1BlockDependenceInfoNode.html#ad0640b76fa934c29f357539b1eaf20b9">   75</a></span>&#160;  <a class="code" href="classtvm_1_1tir_1_1BlockScope.html">BlockScope</a> <a class="code" href="classtvm_1_1tir_1_1BlockDependenceInfoNode.html#ad0640b76fa934c29f357539b1eaf20b9">GetBlockScope</a>(<span class="keyword">const</span> <a class="code" href="classtvm_1_1tir_1_1StmtSRef.html">StmtSRef</a>&amp [...]
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;    <span class="keyword">auto</span> it = <a class="code" href="classtvm_1_1tir_1_1BlockDependenceInfoNode.html#ac83f06f7c59be79c0ce58a31a4a7b05d">sref2scope</a>.find(scope_root);</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;    CHECK(it != <a class="code" href="classtvm_1_1tir_1_1BlockDependenceInfoNode.html#ac83f06f7c59be79c0ce58a31a4a7b05d">sref2scope</a>.end())</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;        &lt;&lt; <span class="stringliteral">&quot;IndexError: Cannot find the corresponding BlockScope to the block sref:\n&quot;</span></div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;        &lt;&lt; ffi::GetRef&lt;Stmt&gt;(scope_root-&gt;stmt);</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;    <span class="keywordflow">return</span> it-&gt;second;</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;  }</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;};</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160; </div>
+<div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1BlockDependenceInfo.html">   88</a></span>&#160;<span class="keyword">class </span><a class="code" href="classtvm_1_1tir_1_1BlockDependenceInfo.html">BlockDependenceInfo</a> : <span class="keyword">public</span> ObjectRef {</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;  TVM_DLL <a class="code" href="classtvm_1_1tir_1_1BlockDependenceInfo.html">BlockDependenceInfo</a>();</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160; </div>
+<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160; <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1BlockDependenceInfo.html#a51aa1c7985e83c71f57a5a03aa64d423">   96</a></span>&#160;  TVM_DLL <a class="code" href="classtvm_1_1tir_1_1BlockDependenceInfo.html#a51aa1c7985e83c71f57a5a03aa64d423">BlockDependenceInfo</a>(<a class="code" href="classtvm_1_1IRModule.html">IRModule</a> <a class="code" href="namespacetvm_1_1topi.html#aaa95d3ad68932ab206efbe0a326db6a2">mod</a>);</div>
+<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160; </div>
+<div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1BlockDependenceInfo.html#a3c5059830e553b8c4ed0ee27979094b0">   98</a></span>&#160;  <a class="code" href="classtvm_1_1tir_1_1BlockDependenceInfo.html#a3c5059830e553b8c4ed0ee27979094b0">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NOTNULLABLE</a>(<a class="code" href="classtvm_1_1tir_1_1BlockDependenceInfo.html">BlockDependenceInfo</a>, ObjectRef,</div>
+<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;                                                <a class="code" href="classtvm_1_1tir_1_1BlockDependenceInfoNode.html">BlockDependenceInfoNode</a>);</div>
+<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;};</div>
+<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160; </div>
+<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;}  <span class="comment">// namespace tir</span></div>
+<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;}  <span class="comment">// namespace tvm</span></div>
+<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;<span class="preprocessor">#endif  </span><span class="comment">// TVM_TIR_BLOCK_DEPENDENCE_INFO_H_</span></div>
 <div class="ttc" id="ablock__scope_8h_html"><div class="ttname"><a href="block__scope_8h.html">block_scope.h</a></div><div class="ttdoc">Definition of two pillar data structure for TensorIR scheduling: StmtSRef, BlockScope.</div></div>
-<div class="ttc" id="aclasstvm_1_1IRModule_html"><div class="ttname"><a href="classtvm_1_1IRModule.html">tvm::IRModule</a></div><div class="ttdoc">Managed reference class to IRModuleNode.</div><div class="ttdef"><b>Definition:</b> module.h:257</div></div>
+<div class="ttc" id="aclasstvm_1_1IRModule_html"><div class="ttname"><a href="classtvm_1_1IRModule.html">tvm::IRModule</a></div><div class="ttdoc">Managed reference class to IRModuleNode.</div><div class="ttdef"><b>Definition:</b> module.h:256</div></div>
 <div class="ttc" id="aclasstvm_1_1tir_1_1BlockDependenceInfoNode_html"><div class="ttname"><a href="classtvm_1_1tir_1_1BlockDependenceInfoNode.html">tvm::tir::BlockDependenceInfoNode</a></div><div class="ttdoc">An object that helps build and query block level dependences using the 2 core objects BlockScope and ...</div><div class="ttdef"><b>Definition:</b> block_dependence_info.h:54</div></div>
 <div class="ttc" id="aclasstvm_1_1tir_1_1BlockDependenceInfoNode_html_a0fde1349d6d0cef06e057928a4ad00cb"><div class="ttname"><a href="classtvm_1_1tir_1_1BlockDependenceInfoNode.html#a0fde1349d6d0cef06e057928a4ad00cb">tvm::tir::BlockDependenceInfoNode::RegisterReflection</a></div><div class="ttdeci">static void RegisterReflection()</div><div class="ttdef"><b>Definition:</b> block_dependence_info.h:64</div></div>
-<div class="ttc" id="aclasstvm_1_1tir_1_1BlockDependenceInfoNode_html_a448f7ee3b6d1034c2ae200cc03c031c6"><div class="ttname"><a href="classtvm_1_1tir_1_1BlockDependenceInfoNode.html#a448f7ee3b6d1034c2ae200cc03c031c6">tvm::tir::BlockDependenceInfoNode::_type_key</a></div><div class="ttdeci">static constexpr const char * _type_key</div><div class="ttdef"><b>Definition:</b> block_dependence_info.h:69</div></div>
-<div class="ttc" id="aclasstvm_1_1tir_1_1BlockDependenceInfoNode_html_a4aa800584322c87abcdae53e795c6da4"><div class="ttname"><a href="classtvm_1_1tir_1_1BlockDependenceInfoNode.html#a4aa800584322c87abcdae53e795c6da4">tvm::tir::BlockDependenceInfoNode::TVM_DECLARE_FINAL_OBJECT_INFO</a></div><div class="ttdeci">TVM_DECLARE_FINAL_OBJECT_INFO(BlockDependenceInfoNode, Object)</div></div>
 <div class="ttc" id="aclasstvm_1_1tir_1_1BlockDependenceInfoNode_html_a68f89dbffed319b548701b2737f20a56"><div class="ttname"><a href="classtvm_1_1tir_1_1BlockDependenceInfoNode.html#a68f89dbffed319b548701b2737f20a56">tvm::tir::BlockDependenceInfoNode::stmt2ref</a></div><div class="ttdeci">std::unordered_map&lt; const StmtNode *, StmtSRef &gt; stmt2ref</div><div class="ttdoc">The reverse mapping from block/for-loop to their corresponding srefs.</div><div class="ttdef"><b>Definition:</b> b [...]
+<div class="ttc" id="aclasstvm_1_1tir_1_1BlockDependenceInfoNode_html_a6ffa5818b2ffb6cec1b1a7f5c204ad6b"><div class="ttname"><a href="classtvm_1_1tir_1_1BlockDependenceInfoNode.html#a6ffa5818b2ffb6cec1b1a7f5c204ad6b">tvm::tir::BlockDependenceInfoNode::TVM_FFI_DECLARE_OBJECT_INFO_FINAL</a></div><div class="ttdeci">TVM_FFI_DECLARE_OBJECT_INFO_FINAL(&quot;tir.BlockDependenceInfo&quot;, BlockDependenceInfoNode, Object)</div></div>
 <div class="ttc" id="aclasstvm_1_1tir_1_1BlockDependenceInfoNode_html_ac83f06f7c59be79c0ce58a31a4a7b05d"><div class="ttname"><a href="classtvm_1_1tir_1_1BlockDependenceInfoNode.html#ac83f06f7c59be79c0ce58a31a4a7b05d">tvm::tir::BlockDependenceInfoNode::sref2scope</a></div><div class="ttdeci">std::unordered_map&lt; StmtSRef, BlockScope, ObjectPtrHash, ObjectPtrEqual &gt; sref2scope</div><div class="ttdoc">Mapping from a block sref to its corresponding BlockScope, tracking the dependency in [...]
-<div class="ttc" id="aclasstvm_1_1tir_1_1BlockDependenceInfoNode_html_ad0640b76fa934c29f357539b1eaf20b9"><div class="ttname"><a href="classtvm_1_1tir_1_1BlockDependenceInfoNode.html#ad0640b76fa934c29f357539b1eaf20b9">tvm::tir::BlockDependenceInfoNode::GetBlockScope</a></div><div class="ttdeci">BlockScope GetBlockScope(const StmtSRef &amp;scope_root) const</div><div class="ttdoc">Get the BlockScope corresponding to the sref of scope root block.</div><div class="ttdef"><b>Definition:</b> b [...]
-<div class="ttc" id="aclasstvm_1_1tir_1_1BlockDependenceInfo_html"><div class="ttname"><a href="classtvm_1_1tir_1_1BlockDependenceInfo.html">tvm::tir::BlockDependenceInfo</a></div><div class="ttdoc">Managed reference to BlockDependenceInfoNode.</div><div class="ttdef"><b>Definition:</b> block_dependence_info.h:90</div></div>
+<div class="ttc" id="aclasstvm_1_1tir_1_1BlockDependenceInfoNode_html_ad0640b76fa934c29f357539b1eaf20b9"><div class="ttname"><a href="classtvm_1_1tir_1_1BlockDependenceInfoNode.html#ad0640b76fa934c29f357539b1eaf20b9">tvm::tir::BlockDependenceInfoNode::GetBlockScope</a></div><div class="ttdeci">BlockScope GetBlockScope(const StmtSRef &amp;scope_root) const</div><div class="ttdoc">Get the BlockScope corresponding to the sref of scope root block.</div><div class="ttdef"><b>Definition:</b> b [...]
+<div class="ttc" id="aclasstvm_1_1tir_1_1BlockDependenceInfo_html"><div class="ttname"><a href="classtvm_1_1tir_1_1BlockDependenceInfo.html">tvm::tir::BlockDependenceInfo</a></div><div class="ttdoc">Managed reference to BlockDependenceInfoNode.</div><div class="ttdef"><b>Definition:</b> block_dependence_info.h:88</div></div>
+<div class="ttc" id="aclasstvm_1_1tir_1_1BlockDependenceInfo_html_a3c5059830e553b8c4ed0ee27979094b0"><div class="ttname"><a href="classtvm_1_1tir_1_1BlockDependenceInfo.html#a3c5059830e553b8c4ed0ee27979094b0">tvm::tir::BlockDependenceInfo::TVM_FFI_DEFINE_OBJECT_REF_METHODS_NOTNULLABLE</a></div><div class="ttdeci">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NOTNULLABLE(BlockDependenceInfo, ObjectRef, BlockDependenceInfoNode)</div></div>
 <div class="ttc" id="aclasstvm_1_1tir_1_1BlockDependenceInfo_html_a51aa1c7985e83c71f57a5a03aa64d423"><div class="ttname"><a href="classtvm_1_1tir_1_1BlockDependenceInfo.html#a51aa1c7985e83c71f57a5a03aa64d423">tvm::tir::BlockDependenceInfo::BlockDependenceInfo</a></div><div class="ttdeci">BlockDependenceInfo(IRModule mod)</div><div class="ttdoc">Construct a BlockDependenceInfo from IRModule.</div></div>
-<div class="ttc" id="aclasstvm_1_1tir_1_1BlockDependenceInfo_html_a9b027f1b1dbaf9636f57c4ad932c8088"><div class="ttname"><a href="classtvm_1_1tir_1_1BlockDependenceInfo.html#a9b027f1b1dbaf9636f57c4ad932c8088">tvm::tir::BlockDependenceInfo::TVM_DEFINE_MUTABLE_NOTNULLABLE_OBJECT_REF_METHODS</a></div><div class="ttdeci">TVM_DEFINE_MUTABLE_NOTNULLABLE_OBJECT_REF_METHODS(BlockDependenceInfo, ObjectRef, BlockDependenceInfoNode)</div></div>
-<div class="ttc" id="aclasstvm_1_1tir_1_1BlockScope_html"><div class="ttname"><a href="classtvm_1_1tir_1_1BlockScope.html">tvm::tir::BlockScope</a></div><div class="ttdoc">Managed reference to BlockScopeNode.</div><div class="ttdef"><b>Definition:</b> block_scope.h:298</div></div>
+<div class="ttc" id="aclasstvm_1_1tir_1_1BlockScope_html"><div class="ttname"><a href="classtvm_1_1tir_1_1BlockScope.html">tvm::tir::BlockScope</a></div><div class="ttdoc">Managed reference to BlockScopeNode.</div><div class="ttdef"><b>Definition:</b> block_scope.h:291</div></div>
 <div class="ttc" id="aclasstvm_1_1tir_1_1StmtSRef_html"><div class="ttname"><a href="classtvm_1_1tir_1_1StmtSRef.html">tvm::tir::StmtSRef</a></div><div class="ttdoc">Managed reference to StmtSRefNode.</div><div class="ttdef"><b>Definition:</b> block_scope.h:106</div></div>
 <div class="ttc" id="anamespacetvm_1_1ffi_1_1reflection_html"><div class="ttname"><a href="namespacetvm_1_1ffi_1_1reflection.html">tvm::ffi::reflection</a></div><div class="ttdef"><b>Definition:</b> repr_printer.h:91</div></div>
 <div class="ttc" id="anamespacetvm_1_1topi_html_aaa95d3ad68932ab206efbe0a326db6a2"><div class="ttname"><a href="namespacetvm_1_1topi.html#aaa95d3ad68932ab206efbe0a326db6a2">tvm::topi::mod</a></div><div class="ttdeci">tvm::PrimExpr mod(const tvm::PrimExpr &amp;a, const tvm::PrimExpr &amp;b)</div><div class="ttdef"><b>Definition:</b> broadcast.h:308</div></div>
diff --git a/docs/reference/api/doxygen/block__scope_8h_source.html b/docs/reference/api/doxygen/block__scope_8h_source.html
index c12fcd733f..8d9e1e3b51 100644
--- a/docs/reference/api/doxygen/block__scope_8h_source.html
+++ b/docs/reference/api/doxygen/block__scope_8h_source.html
@@ -113,8 +113,8 @@ $(function() {
 <div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;    refl::ObjectDef&lt;StmtSRefNode&gt;().def_ro(<span class="stringliteral">&quot;seq_index&quot;</span>, &amp;<a class="code" href="classtvm_1_1tir_1_1StmtSRefNode.html#a1ce9920064b0c2ed42be0e9412fd3939">StmtSRefNode::seq_index</a>);</div>
 <div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;  }</div>
 <div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160; </div>
-<div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1StmtSRefNode.html#ad4e8d0b49a5ba2d03c3f19c65ac100aa">   75</a></span>&#160;  <span class="keyword">static</span> constexpr <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classtvm_1_1tir_1_1StmtSRefNode.html#ad4e8d0b49a5ba2d03c3f19c65ac100aa">_type_key</a> = <span class="stringliteral">&quot;tir.StmtSRef&quot;</span>;</div>
-<div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1StmtSRefNode.html#a5ca6c02336cbccf783afb43e60d6c168">   76</a></span>&#160;  <a class="code" href="classtvm_1_1tir_1_1StmtSRefNode.html#a5ca6c02336cbccf783afb43e60d6c168">TVM_DECLARE_FINAL_OBJECT_INFO</a>(<a class="code" href="classtvm_1_1tir_1_1StmtSRefNode.html">StmtSRefNode</a>, Object);</div>
+<div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1StmtSRefNode.html#a905b29f772db85ef437408d0343442ef">   75</a></span>&#160;  <span class="keyword">static</span> constexpr <span class="keyword">const</span> <span class="keywordtype">bool</span> <a class="code" href="classtvm_1_1tir_1_1StmtSRefNode.html#a905b29f772db85ef437408d0343442ef">_type_mutable</a> = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1StmtSRefNode.html#a91049ccd5566979c9233ef96024ff667">   76</a></span>&#160;  <a class="code" href="classtvm_1_1tir_1_1StmtSRefNode.html#a91049ccd5566979c9233ef96024ff667">TVM_FFI_DECLARE_OBJECT_INFO_FINAL</a>(<span class="stringliteral">&quot;tir.StmtSRef&quot;</span>, <a class="code" href="classtvm_1_1tir_1_1StmtSRefNode.html">StmtSRefNode</a>, Object);</div>
 <div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160; </div>
 <div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1StmtSRefNode.html#a0a81a6ea87f86ef7ebefccdb7cf378da">   79</a></span>&#160;  <span class="keywordtype">void</span> <a class="code" href="classtvm_1_1tir_1_1StmtSRefNode.html#a0a81a6ea87f86ef7ebefccdb7cf378da">Reset</a>() {</div>
 <div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;    this-&gt;stmt = <span class="keyword">nullptr</span>;</div>
@@ -136,166 +136,157 @@ $(function() {
 <div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160; <span class="keyword">public</span>:</div>
 <div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1StmtSRef.html#a31687ace5dc4fe487ffb87d658d86412">  115</a></span>&#160;  TVM_DLL <span class="keyword">explicit</span> <a class="code" href="classtvm_1_1tir_1_1StmtSRef.html#a31687ace5dc4fe487ffb87d658d86412">StmtSRef</a>(<span class="keyword">const</span> <a class="code" href="classtvm_1_1tir_1_1StmtNode.html">StmtNode</a>* stmt, <a class="code" href="classtvm_1_1tir_1_1StmtSRefNode.html [...]
 <div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160; </div>
-<div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1StmtSRef.html#a92142a45bfa223528edab435a5ceaf9d">  118</a></span>&#160;  <a class="code" href="classtvm_1_1tir_1_1StmtSRefNode.html">StmtSRefNode</a>* <a class="code" href="classtvm_1_1tir_1_1StmtSRef.html#a92142a45bfa223528edab435a5ceaf9d">get</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span><a class="code" hre [...]
-<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160; </div>
-<div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1StmtSRef.html#a3613db2f3425a9679fb3de9f773231ab">  120</a></span>&#160;  <a class="code" href="classtvm_1_1tir_1_1StmtSRef.html#a3613db2f3425a9679fb3de9f773231ab">TVM_DEFINE_MUTABLE_OBJECT_REF_METHODS</a>(<a class="code" href="classtvm_1_1tir_1_1StmtSRef.html">StmtSRef</a>, ObjectRef, <a class="code" href="classtvm_1_1tir_1_1StmtSRefNode.html">StmtSRefNode</a>);</div>
-<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160; </div>
-<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160; <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00134"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1StmtSRef.html#a20ae0e36408213db9574c4121ef17837">  134</a></span>&#160;  TVM_DLL <span class="keyword">static</span> <a class="code" href="classtvm_1_1tir_1_1StmtSRef.html">StmtSRef</a> <a class="code" href="classtvm_1_1tir_1_1StmtSRef.html#a20ae0e36408213db9574c4121ef17837">InlineMark</a>();</div>
-<div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1StmtSRef.html#a755ffc34c02e5af0129c7d2eedc1cfb5">  146</a></span>&#160;  TVM_DLL <span class="keyword">static</span> <a class="code" href="classtvm_1_1tir_1_1StmtSRef.html">StmtSRef</a> <a class="code" href="classtvm_1_1tir_1_1StmtSRef.html#a755ffc34c02e5af0129c7d2eedc1cfb5">RootMark</a>();</div>
-<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;};</div>
-<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160; </div>
-<div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1SRefTreeCreator.html">  149</a></span>&#160;<span class="keyword">class </span><a class="code" href="classtvm_1_1tir_1_1SRefTreeCreator.html">SRefTreeCreator</a> : <span class="keyword">private</span> <a class="code" href="classtvm_1_1tir_1_1StmtVisitor.html">StmtVisitor</a> {</div>
-<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160; <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1SRefTreeCreator.html#aec756aaae7eacc4e6f88e74d9d490fcc">  156</a></span>&#160;  <span class="keyword">static</span> std::unordered_map&lt;const StmtNode*, StmtSRef&gt; <a class="code" href="classtvm_1_1tir_1_1SRefTreeCreator.html#aec756aaae7eacc4e6f88e74d9d490fcc">Create</a>(<a class="code" href="classtvm_1_1IRModule.html">IRModule</a> <a class="code" href="namespacetvm_1_1topi.html#aaa95 [...]
-<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;                                                              <span class="keywordtype">bool</span> include_loops = <span class="keyword">true</span>) {</div>
-<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;    <a class="code" href="classtvm_1_1tir_1_1SRefTreeCreator.html">SRefTreeCreator</a> creator(include_loops);</div>
-<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;    <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>&amp; kv : <a class="code" href="namespacetvm_1_1topi.html#aaa95d3ad68932ab206efbe0a326db6a2">mod</a>-&gt;functions) {</div>
-<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;      <span class="keyword">const</span> <a class="code" href="classtvm_1_1BaseFunc.html">BaseFunc</a>&amp; base_func = kv.second;</div>
-<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;      <span class="keywordflow">if</span> (<span class="keyword">auto</span> opt = base_func.as&lt;<a class="code" href="classtvm_1_1tir_1_1PrimFunc.html">PrimFunc</a>&gt;()) {</div>
-<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;        <span class="keyword">auto</span> func = opt.value();</div>
-<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;        creator.VisitStmt(func-&gt;body);</div>
-<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;      }</div>
-<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;    }</div>
-<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;    <span class="keywordflow">return</span> std::move(creator.stmt2ref_);</div>
-<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;  }</div>
+<div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1StmtSRef.html#adc2f47c1649ba3521aaf17227627281d">  117</a></span>&#160;  <a class="code" href="classtvm_1_1tir_1_1StmtSRef.html#adc2f47c1649ba3521aaf17227627281d">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE</a>(<a class="code" href="classtvm_1_1tir_1_1StmtSRef.html">StmtSRef</a>, ObjectRef, <a class="code" href="classtvm_1_1tir_1_1StmtSRefNode.html">StmtSRefNode</a>);</div>
+<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160; </div>
+<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160; <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1StmtSRef.html#a20ae0e36408213db9574c4121ef17837">  131</a></span>&#160;  TVM_DLL <span class="keyword">static</span> <a class="code" href="classtvm_1_1tir_1_1StmtSRef.html">StmtSRef</a> <a class="code" href="classtvm_1_1tir_1_1StmtSRef.html#a20ae0e36408213db9574c4121ef17837">InlineMark</a>();</div>
+<div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1StmtSRef.html#a755ffc34c02e5af0129c7d2eedc1cfb5">  143</a></span>&#160;  TVM_DLL <span class="keyword">static</span> <a class="code" href="classtvm_1_1tir_1_1StmtSRef.html">StmtSRef</a> <a class="code" href="classtvm_1_1tir_1_1StmtSRef.html#a755ffc34c02e5af0129c7d2eedc1cfb5">RootMark</a>();</div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;};</div>
+<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160; </div>
+<div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1SRefTreeCreator.html">  146</a></span>&#160;<span class="keyword">class </span><a class="code" href="classtvm_1_1tir_1_1SRefTreeCreator.html">SRefTreeCreator</a> : <span class="keyword">private</span> <a class="code" href="classtvm_1_1tir_1_1StmtVisitor.html">StmtVisitor</a> {</div>
+<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160; <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00153"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1SRefTreeCreator.html#aec756aaae7eacc4e6f88e74d9d490fcc">  153</a></span>&#160;  <span class="keyword">static</span> std::unordered_map&lt;const StmtNode*, StmtSRef&gt; <a class="code" href="classtvm_1_1tir_1_1SRefTreeCreator.html#aec756aaae7eacc4e6f88e74d9d490fcc">Create</a>(<a class="code" href="classtvm_1_1IRModule.html">IRModule</a> <a class="code" href="namespacetvm_1_1topi.html#aaa95 [...]
+<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;                                                              <span class="keywordtype">bool</span> include_loops = <span class="keyword">true</span>) {</div>
+<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;    <a class="code" href="classtvm_1_1tir_1_1SRefTreeCreator.html">SRefTreeCreator</a> creator(include_loops);</div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;    <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>&amp; kv : <a class="code" href="namespacetvm_1_1topi.html#aaa95d3ad68932ab206efbe0a326db6a2">mod</a>-&gt;functions) {</div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;      <span class="keyword">const</span> <a class="code" href="classtvm_1_1BaseFunc.html">BaseFunc</a>&amp; base_func = kv.second;</div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;      <span class="keywordflow">if</span> (<span class="keyword">auto</span> opt = base_func.as&lt;<a class="code" href="classtvm_1_1tir_1_1PrimFunc.html">PrimFunc</a>&gt;()) {</div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;        <span class="keyword">auto</span> func = opt.value();</div>
+<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;        creator.VisitStmt(func-&gt;body);</div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;      }</div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;    }</div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;    <span class="keywordflow">return</span> std::move(creator.stmt2ref_);</div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;  }</div>
+<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160; </div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160; <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;  <span class="keyword">explicit</span> <a class="code" href="classtvm_1_1tir_1_1SRefTreeCreator.html">SRefTreeCreator</a>(<span class="keywordtype">bool</span> include_loops) : include_loops_(include_loops) {}</div>
 <div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160; </div>
-<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160; <span class="keyword">private</span>:</div>
-<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;  <span class="keyword">explicit</span> <a class="code" href="classtvm_1_1tir_1_1SRefTreeCreator.html">SRefTreeCreator</a>(<span class="keywordtype">bool</span> include_loops) : include_loops_(include_loops) {}</div>
-<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160; </div>
-<div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;  <span class="keywordtype">void</span> PushSRef(<span class="keyword">const</span> StmtNode* stmt);</div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;  <span class="keywordtype">void</span> PushSRef(<span class="keyword">const</span> StmtNode* stmt);</div>
+<div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160; </div>
+<div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;  <span class="keywordtype">void</span> PopAndRecordSRef();</div>
 <div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160; </div>
-<div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;  <span class="keywordtype">void</span> PopAndRecordSRef();</div>
-<div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160; </div>
-<div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;  <span class="keywordtype">void</span> VisitStmt_(<span class="keyword">const</span> ForNode* loop) <span class="keyword">final</span>;</div>
-<div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160; </div>
-<div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;  <span class="keywordtype">void</span> VisitStmt_(<span class="keyword">const</span> BlockRealizeNode* realize) <span class="keyword">final</span>;</div>
-<div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160; </div>
-<div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;  <span class="keywordtype">void</span> VisitStmt_(<span class="keyword">const</span> SeqStmtNode* seq_stmt) <span class="keyword">final</span>;</div>
-<div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160; </div>
-<div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;  <span class="keywordtype">bool</span> include_loops_;</div>
-<div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;  std::unordered_map&lt;const StmtNode*, StmtSRef&gt; stmt2ref_;</div>
-<div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;  std::vector&lt;StmtSRef&gt; srefs_;</div>
-<div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;};</div>
-<div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160; </div>
-<div class="line"><a name="l00201"></a><span class="lineno"><a class="line" href="namespacetvm_1_1tir.html#a82f5fe564edbe0dadbc4a56a82dfe12e">  201</a></span>&#160;<span class="keyword">enum class</span> <a class="code" href="namespacetvm_1_1tir.html#a82f5fe564edbe0dadbc4a56a82dfe12e">DepKind</a> : int32_t {</div>
-<div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;  <a class="code" href="namespacetvm_1_1tir.html#a82f5fe564edbe0dadbc4a56a82dfe12ea565ac768da7890c2660ff4b12d267f4b">kRAW</a> = 0,</div>
-<div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;  <a class="code" href="namespacetvm_1_1tir.html#a82f5fe564edbe0dadbc4a56a82dfe12eaf3b1d6a59161fbe655adccdd10c6eda4">kWAW</a> = 1,</div>
-<div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160;  <a class="code" href="namespacetvm_1_1tir.html#a82f5fe564edbe0dadbc4a56a82dfe12ea8b16acbc820d7479d796a3a0ac180724">kWAR</a> = 2,</div>
-<div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;  <a class="code" href="namespacetvm_1_1tir.html#add7d0a6b1dd91f0c3c5dd2f4cf64358eaf324873e6195114a186db7f910559b2c">kOpaque</a> = 3,</div>
-<div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;};</div>
-<div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160; </div>
-<div class="line"><a name="l00213"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1DependencyNode.html">  213</a></span>&#160;<span class="keyword">class </span><a class="code" href="classtvm_1_1tir_1_1DependencyNode.html">DependencyNode</a> : <span class="keyword">public</span> Object {</div>
-<div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160; <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00216"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1DependencyNode.html#ab334c31b5f17026cd64c0a76db6dd7a4">  216</a></span>&#160;  <a class="code" href="classtvm_1_1tir_1_1StmtSRef.html">StmtSRef</a> <a class="code" href="classtvm_1_1tir_1_1DependencyNode.html#ab334c31b5f17026cd64c0a76db6dd7a4">src</a>;</div>
-<div class="line"><a name="l00218"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1DependencyNode.html#a1d7d574b27ba0a420eb65306cdc77020">  218</a></span>&#160;  <a class="code" href="classtvm_1_1tir_1_1StmtSRef.html">StmtSRef</a> <a class="code" href="classtvm_1_1tir_1_1DependencyNode.html#a1d7d574b27ba0a420eb65306cdc77020">dst</a>;</div>
-<div class="line"><a name="l00220"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1DependencyNode.html#aeb900845b1ca3fb8787ab183af8389b7">  220</a></span>&#160;  <a class="code" href="namespacetvm_1_1tir.html#a82f5fe564edbe0dadbc4a56a82dfe12e">DepKind</a> <a class="code" href="classtvm_1_1tir_1_1DependencyNode.html#aeb900845b1ca3fb8787ab183af8389b7">kind</a>;</div>
-<div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160; </div>
-<div class="line"><a name="l00222"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1DependencyNode.html#a01ab5c0f090bb5720f9fe8cb5c42e75b">  222</a></span>&#160;  <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classtvm_1_1tir_1_1DependencyNode.html#a01ab5c0f090bb5720f9fe8cb5c42e75b">RegisterReflection</a>() {</div>
-<div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;    <span class="keyword">namespace </span>refl = <a class="code" href="namespacetvm_1_1ffi_1_1reflection.html">tvm::ffi::reflection</a>;</div>
-<div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;    refl::ObjectDef&lt;DependencyNode&gt;()</div>
-<div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;        .def_ro(<span class="stringliteral">&quot;src&quot;</span>, &amp;<a class="code" href="classtvm_1_1tir_1_1DependencyNode.html#ab334c31b5f17026cd64c0a76db6dd7a4">DependencyNode::src</a>)</div>
-<div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;        .def_ro(<span class="stringliteral">&quot;dst&quot;</span>, &amp;<a class="code" href="classtvm_1_1tir_1_1DependencyNode.html#a1d7d574b27ba0a420eb65306cdc77020">DependencyNode::dst</a>)</div>
-<div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;        .def_ro(<span class="stringliteral">&quot;kind&quot;</span>, &amp;<a class="code" href="classtvm_1_1tir_1_1DependencyNode.html#aeb900845b1ca3fb8787ab183af8389b7">DependencyNode::kind</a>);</div>
-<div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;  }</div>
-<div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160; </div>
-<div class="line"><a name="l00230"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1DependencyNode.html#acb3f7280438fcc6dd0f5a54b589bfb87">  230</a></span>&#160;  <span class="keyword">static</span> constexpr <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classtvm_1_1tir_1_1DependencyNode.html#acb3f7280438fcc6dd0f5a54b589bfb87">_type_key</a> = <span class="stringliteral">&quot;tir.Dependency&quot;</span>;</div>
-<div class="line"><a name="l00231"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1DependencyNode.html#afb23faf0e92c12d581e00b953f48e901">  231</a></span>&#160;  <a class="code" href="classtvm_1_1tir_1_1DependencyNode.html#afb23faf0e92c12d581e00b953f48e901">TVM_DECLARE_FINAL_OBJECT_INFO</a>(<a class="code" href="classtvm_1_1tir_1_1DependencyNode.html">DependencyNode</a>, Object);</div>
-<div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;};</div>
-<div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160; </div>
-<div class="line"><a name="l00238"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1Dependency.html">  238</a></span>&#160;<span class="keyword">class </span><a class="code" href="classtvm_1_1tir_1_1Dependency.html">Dependency</a> : <span class="keyword">public</span> ObjectRef {</div>
-<div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160; <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00241"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1Dependency.html#a43d8f2d3a2b251094774252f526db176">  241</a></span>&#160;  TVM_DLL <span class="keyword">explicit</span> <a class="code" href="classtvm_1_1tir_1_1Dependency.html#a43d8f2d3a2b251094774252f526db176">Dependency</a>(<a class="code" href="classtvm_1_1tir_1_1StmtSRef.html">StmtSRef</a> src, <a class="code" href="classtvm_1_1tir_1_1StmtSRef.html">StmtSRef</a> dst, <a class="code" [...]
-<div class="line"><a name="l00242"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1Dependency.html#a2d1a68d55040ae26f6392dffcd4ba9c8">  242</a></span>&#160;  <a class="code" href="classtvm_1_1tir_1_1Dependency.html#a2d1a68d55040ae26f6392dffcd4ba9c8">TVM_DEFINE_NOTNULLABLE_OBJECT_REF_METHODS</a>(<a class="code" href="classtvm_1_1tir_1_1Dependency.html">Dependency</a>, ObjectRef, <a class="code" href="classtvm_1_1tir_1_1DependencyNode.html">DependencyNode</a>);</div>
-<div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;};</div>
-<div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160; </div>
-<div class="line"><a name="l00258"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1BlockScopeNode.html">  258</a></span>&#160;<span class="keyword">class </span><a class="code" href="classtvm_1_1tir_1_1BlockScopeNode.html">BlockScopeNode</a> : <span class="keyword">public</span> Object {</div>
-<div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160; <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00265"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1BlockScopeNode.html#a1a29ce763d4956fcd583e198ead5681d">  265</a></span>&#160;  std::unordered_map&lt;StmtSRef, ffi::Array&lt;Dependency&gt;, ObjectPtrHash, ObjectPtrEqual&gt; <a class="code" href="classtvm_1_1tir_1_1BlockScopeNode.html#a1a29ce763d4956fcd583e198ead5681d">src2deps</a>;</div>
-<div class="line"><a name="l00267"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1BlockScopeNode.html#a204be63e94b669840e058e0690860255">  267</a></span>&#160;  std::unordered_map&lt;StmtSRef, ffi::Array&lt;Dependency&gt;, ObjectPtrHash, ObjectPtrEqual&gt; <a class="code" href="classtvm_1_1tir_1_1BlockScopeNode.html#a204be63e94b669840e058e0690860255">dst2deps</a>;</div>
-<div class="line"><a name="l00269"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1BlockScopeNode.html#a1b1e91c3e8f682224a40b01e3c1b06b7">  269</a></span>&#160;  std::unordered_map&lt;Buffer, ffi::Array&lt;StmtSRef&gt;, ObjectPtrHash, ObjectPtrEqual&gt; <a class="code" href="classtvm_1_1tir_1_1BlockScopeNode.html#a1b1e91c3e8f682224a40b01e3c1b06b7">buffer_writers</a>;</div>
+<div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;  <span class="keywordtype">void</span> VisitStmt_(<span class="keyword">const</span> ForNode* loop) <span class="keyword">final</span>;</div>
+<div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160; </div>
+<div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;  <span class="keywordtype">void</span> VisitStmt_(<span class="keyword">const</span> BlockRealizeNode* realize) <span class="keyword">final</span>;</div>
+<div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160; </div>
+<div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;  <span class="keywordtype">void</span> VisitStmt_(<span class="keyword">const</span> SeqStmtNode* seq_stmt) <span class="keyword">final</span>;</div>
+<div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160; </div>
+<div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;  <span class="keywordtype">bool</span> include_loops_;</div>
+<div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;  std::unordered_map&lt;const StmtNode*, StmtSRef&gt; stmt2ref_;</div>
+<div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;  std::vector&lt;StmtSRef&gt; srefs_;</div>
+<div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;};</div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160; </div>
+<div class="line"><a name="l00198"></a><span class="lineno"><a class="line" href="namespacetvm_1_1tir.html#a82f5fe564edbe0dadbc4a56a82dfe12e">  198</a></span>&#160;<span class="keyword">enum class</span> <a class="code" href="namespacetvm_1_1tir.html#a82f5fe564edbe0dadbc4a56a82dfe12e">DepKind</a> : int32_t {</div>
+<div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;  <a class="code" href="namespacetvm_1_1tir.html#a82f5fe564edbe0dadbc4a56a82dfe12ea565ac768da7890c2660ff4b12d267f4b">kRAW</a> = 0,</div>
+<div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;  <a class="code" href="namespacetvm_1_1tir.html#a82f5fe564edbe0dadbc4a56a82dfe12eaf3b1d6a59161fbe655adccdd10c6eda4">kWAW</a> = 1,</div>
+<div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;  <a class="code" href="namespacetvm_1_1tir.html#a82f5fe564edbe0dadbc4a56a82dfe12ea8b16acbc820d7479d796a3a0ac180724">kWAR</a> = 2,</div>
+<div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;  <a class="code" href="namespacetvm_1_1tir.html#add7d0a6b1dd91f0c3c5dd2f4cf64358eaf324873e6195114a186db7f910559b2c">kOpaque</a> = 3,</div>
+<div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;};</div>
+<div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160; </div>
+<div class="line"><a name="l00210"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1DependencyNode.html">  210</a></span>&#160;<span class="keyword">class </span><a class="code" href="classtvm_1_1tir_1_1DependencyNode.html">DependencyNode</a> : <span class="keyword">public</span> Object {</div>
+<div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160; <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00213"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1DependencyNode.html#ab334c31b5f17026cd64c0a76db6dd7a4">  213</a></span>&#160;  <a class="code" href="classtvm_1_1tir_1_1StmtSRef.html">StmtSRef</a> <a class="code" href="classtvm_1_1tir_1_1DependencyNode.html#ab334c31b5f17026cd64c0a76db6dd7a4">src</a>;</div>
+<div class="line"><a name="l00215"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1DependencyNode.html#a1d7d574b27ba0a420eb65306cdc77020">  215</a></span>&#160;  <a class="code" href="classtvm_1_1tir_1_1StmtSRef.html">StmtSRef</a> <a class="code" href="classtvm_1_1tir_1_1DependencyNode.html#a1d7d574b27ba0a420eb65306cdc77020">dst</a>;</div>
+<div class="line"><a name="l00217"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1DependencyNode.html#aeb900845b1ca3fb8787ab183af8389b7">  217</a></span>&#160;  <a class="code" href="namespacetvm_1_1tir.html#a82f5fe564edbe0dadbc4a56a82dfe12e">DepKind</a> <a class="code" href="classtvm_1_1tir_1_1DependencyNode.html#aeb900845b1ca3fb8787ab183af8389b7">kind</a>;</div>
+<div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160; </div>
+<div class="line"><a name="l00219"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1DependencyNode.html#a01ab5c0f090bb5720f9fe8cb5c42e75b">  219</a></span>&#160;  <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classtvm_1_1tir_1_1DependencyNode.html#a01ab5c0f090bb5720f9fe8cb5c42e75b">RegisterReflection</a>() {</div>
+<div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;    <span class="keyword">namespace </span>refl = <a class="code" href="namespacetvm_1_1ffi_1_1reflection.html">tvm::ffi::reflection</a>;</div>
+<div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;    refl::ObjectDef&lt;DependencyNode&gt;()</div>
+<div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;        .def_ro(<span class="stringliteral">&quot;src&quot;</span>, &amp;<a class="code" href="classtvm_1_1tir_1_1DependencyNode.html#ab334c31b5f17026cd64c0a76db6dd7a4">DependencyNode::src</a>)</div>
+<div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;        .def_ro(<span class="stringliteral">&quot;dst&quot;</span>, &amp;<a class="code" href="classtvm_1_1tir_1_1DependencyNode.html#a1d7d574b27ba0a420eb65306cdc77020">DependencyNode::dst</a>)</div>
+<div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;        .def_ro(<span class="stringliteral">&quot;kind&quot;</span>, &amp;<a class="code" href="classtvm_1_1tir_1_1DependencyNode.html#aeb900845b1ca3fb8787ab183af8389b7">DependencyNode::kind</a>);</div>
+<div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;  }</div>
+<div class="line"><a name="l00226"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1DependencyNode.html#ac7050f0f8a7e551916977bce0aa80263">  226</a></span>&#160;  <a class="code" href="classtvm_1_1tir_1_1DependencyNode.html#ac7050f0f8a7e551916977bce0aa80263">TVM_FFI_DECLARE_OBJECT_INFO_FINAL</a>(<span class="stringliteral">&quot;tir.Dependency&quot;</span>, <a class="code" href="classtvm_1_1tir_1_1DependencyNode.html">DependencyNode</a>, Object);</div>
+<div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;};</div>
+<div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160; </div>
+<div class="line"><a name="l00233"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1Dependency.html">  233</a></span>&#160;<span class="keyword">class </span><a class="code" href="classtvm_1_1tir_1_1Dependency.html">Dependency</a> : <span class="keyword">public</span> ObjectRef {</div>
+<div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160; <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00236"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1Dependency.html#a43d8f2d3a2b251094774252f526db176">  236</a></span>&#160;  TVM_DLL <span class="keyword">explicit</span> <a class="code" href="classtvm_1_1tir_1_1Dependency.html#a43d8f2d3a2b251094774252f526db176">Dependency</a>(<a class="code" href="classtvm_1_1tir_1_1StmtSRef.html">StmtSRef</a> src, <a class="code" href="classtvm_1_1tir_1_1StmtSRef.html">StmtSRef</a> dst, <a class="code" [...]
+<div class="line"><a name="l00237"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1Dependency.html#a9640ac9254fd49478e3a9210b97901bc">  237</a></span>&#160;  <a class="code" href="classtvm_1_1tir_1_1Dependency.html#a9640ac9254fd49478e3a9210b97901bc">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NOTNULLABLE</a>(<a class="code" href="classtvm_1_1tir_1_1Dependency.html">Dependency</a>, ObjectRef, <a class="code" href="classtvm_1_1tir_1_1DependencyNode.html">DependencyNode</a>);</div>
+<div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;};</div>
+<div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160; </div>
+<div class="line"><a name="l00253"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1BlockScopeNode.html">  253</a></span>&#160;<span class="keyword">class </span><a class="code" href="classtvm_1_1tir_1_1BlockScopeNode.html">BlockScopeNode</a> : <span class="keyword">public</span> Object {</div>
+<div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160; <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00260"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1BlockScopeNode.html#a1a29ce763d4956fcd583e198ead5681d">  260</a></span>&#160;  std::unordered_map&lt;StmtSRef, ffi::Array&lt;Dependency&gt;, ObjectPtrHash, ObjectPtrEqual&gt; <a class="code" href="classtvm_1_1tir_1_1BlockScopeNode.html#a1a29ce763d4956fcd583e198ead5681d">src2deps</a>;</div>
+<div class="line"><a name="l00262"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1BlockScopeNode.html#a204be63e94b669840e058e0690860255">  262</a></span>&#160;  std::unordered_map&lt;StmtSRef, ffi::Array&lt;Dependency&gt;, ObjectPtrHash, ObjectPtrEqual&gt; <a class="code" href="classtvm_1_1tir_1_1BlockScopeNode.html#a204be63e94b669840e058e0690860255">dst2deps</a>;</div>
+<div class="line"><a name="l00264"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1BlockScopeNode.html#a1b1e91c3e8f682224a40b01e3c1b06b7">  264</a></span>&#160;  std::unordered_map&lt;Buffer, ffi::Array&lt;StmtSRef&gt;, ObjectPtrHash, ObjectPtrEqual&gt; <a class="code" href="classtvm_1_1tir_1_1BlockScopeNode.html#a1b1e91c3e8f682224a40b01e3c1b06b7">buffer_writers</a>;</div>
+<div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160; </div>
+<div class="line"><a name="l00266"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1BlockScopeNode.html#a7f45aa5d9ce95c0043a98c1cad13e785">  266</a></span>&#160;  <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classtvm_1_1tir_1_1BlockScopeNode.html#a7f45aa5d9ce95c0043a98c1cad13e785">RegisterReflection</a>() {</div>
+<div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160;    <span class="comment">// No fields to register as they are not visited</span></div>
+<div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;  }</div>
+<div class="line"><a name="l00269"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1BlockScopeNode.html#a23b52cad8db67eb123e3a670ad9ddfc5">  269</a></span>&#160;  <a class="code" href="classtvm_1_1tir_1_1BlockScopeNode.html#a23b52cad8db67eb123e3a670ad9ddfc5">TVM_FFI_DECLARE_OBJECT_INFO_FINAL</a>(<span class="stringliteral">&quot;tir.BlockScope&quot;</span>, <a class="code" href="classtvm_1_1tir_1_1BlockScopeNode.html">BlockScopeNode</a>, Object);</div>
 <div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160; </div>
-<div class="line"><a name="l00271"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1BlockScopeNode.html#a7f45aa5d9ce95c0043a98c1cad13e785">  271</a></span>&#160;  <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classtvm_1_1tir_1_1BlockScopeNode.html#a7f45aa5d9ce95c0043a98c1cad13e785">RegisterReflection</a>() {</div>
-<div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;    <span class="comment">// No fields to register as they are not visited</span></div>
-<div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;  }</div>
-<div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160; </div>
-<div class="line"><a name="l00275"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1BlockScopeNode.html#aff26a836ffc2147f95487d228632c678">  275</a></span>&#160;  <span class="keyword">static</span> constexpr <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classtvm_1_1tir_1_1BlockScopeNode.html#aff26a836ffc2147f95487d228632c678">_type_key</a> = <span class="stringliteral">&quot;tir.BlockScope&quot;</span>;</div>
-<div class="line"><a name="l00276"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1BlockScopeNode.html#afbf297b8f7bb0aa9a23bfd2706481554">  276</a></span>&#160;  <a class="code" href="classtvm_1_1tir_1_1BlockScopeNode.html#afbf297b8f7bb0aa9a23bfd2706481554">TVM_DECLARE_FINAL_OBJECT_INFO</a>(<a class="code" href="classtvm_1_1tir_1_1BlockScopeNode.html">BlockScopeNode</a>, Object);</div>
-<div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160; </div>
-<div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160; <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;<span class="comment">  /******** Dependency ********/</span></div>
-<div class="line"><a name="l00285"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1BlockScopeNode.html#afdd568119071241fe51245c180e7795f">  285</a></span>&#160;  TVM_DLL ffi::Array&lt;Dependency&gt; <a class="code" href="classtvm_1_1tir_1_1BlockScopeNode.html#afdd568119071241fe51245c180e7795f">GetDepsBySrc</a>(<span class="keyword">const</span> <a class="code" href="classtvm_1_1tir_1_1StmtSRef.html">StmtSRef</a>&amp; src) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00291"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1BlockScopeNode.html#a0a87a50056024d0b0cd6950a07b01c3f">  291</a></span>&#160;  TVM_DLL ffi::Array&lt;Dependency&gt; <a class="code" href="classtvm_1_1tir_1_1BlockScopeNode.html#a0a87a50056024d0b0cd6950a07b01c3f">GetDepsByDst</a>(<span class="keyword">const</span> <a class="code" href="classtvm_1_1tir_1_1StmtSRef.html">StmtSRef</a>&amp; dst) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;};</div>
-<div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160; </div>
-<div class="line"><a name="l00298"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1BlockScope.html">  298</a></span>&#160;<span class="keyword">class </span><a class="code" href="classtvm_1_1tir_1_1BlockScope.html">BlockScope</a> : <span class="keyword">public</span> ObjectRef {</div>
-<div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160; <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00304"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1BlockScope.html#abd4c11502a8e1d1cb7d03543aa379c07">  304</a></span>&#160;  <span class="keyword">explicit</span> <a class="code" href="classtvm_1_1tir_1_1BlockScope.html#abd4c11502a8e1d1cb7d03543aa379c07">BlockScope</a>(ObjectPtr&lt;BlockScopeNode&gt; data) : ObjectRef(data) {</div>
-<div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160;    TVM_FFI_ICHECK(data != <span class="keyword">nullptr</span>);</div>
-<div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;  }</div>
-<div class="line"><a name="l00308"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1BlockScope.html#a6178e756a3b76b6bb8d124f58846da72">  308</a></span>&#160;  TVM_DLL <a class="code" href="classtvm_1_1tir_1_1BlockScope.html#a6178e756a3b76b6bb8d124f58846da72">BlockScope</a>();</div>
-<div class="line"><a name="l00315"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1BlockScope.html#ae957047ed30c7748d013c25c133eab12">  315</a></span>&#160;  TVM_DLL <span class="keyword">explicit</span> <a class="code" href="classtvm_1_1tir_1_1BlockScope.html#ae957047ed30c7748d013c25c133eab12">BlockScope</a>(<span class="keyword">const</span> ffi::Array&lt;StmtSRef&gt;&amp; child_block_srefs);</div>
-<div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160; </div>
-<div class="line"><a name="l00317"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1BlockScope.html#aa01b50d8de4bd42abacf55d33f4fca25">  317</a></span>&#160;  <a class="code" href="classtvm_1_1tir_1_1BlockScope.html#aa01b50d8de4bd42abacf55d33f4fca25">TVM_DEFINE_MUTABLE_NOTNULLABLE_OBJECT_REF_METHODS</a>(<a class="code" href="classtvm_1_1tir_1_1BlockScope.html">BlockScope</a>, ObjectRef, <a class="code" href="classtvm_1_1tir_1_1BlockScopeNode.html">BlockScopeNode</a>);</div>
-<div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160;};</div>
-<div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160; </div>
-<div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;}  <span class="comment">// namespace tir</span></div>
-<div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160;}  <span class="comment">// namespace tvm</span></div>
-<div class="line"><a name="l00322"></a><span class="lineno">  322</span>&#160; </div>
-<div class="line"><a name="l00323"></a><span class="lineno">  323</span>&#160;<span class="preprocessor">#endif  </span><span class="comment">// TVM_TIR_BLOCK_SCOPE_H_</span></div>
-<div class="ttc" id="aclasstvm_1_1BaseFunc_html"><div class="ttname"><a href="classtvm_1_1BaseFunc.html">tvm::BaseFunc</a></div><div class="ttdoc">Managed reference to BaseFuncNode.</div><div class="ttdef"><b>Definition:</b> function.h:234</div></div>
-<div class="ttc" id="aclasstvm_1_1IRModule_html"><div class="ttname"><a href="classtvm_1_1IRModule.html">tvm::IRModule</a></div><div class="ttdoc">Managed reference class to IRModuleNode.</div><div class="ttdef"><b>Definition:</b> module.h:257</div></div>
-<div class="ttc" id="aclasstvm_1_1tir_1_1BlockScopeNode_html"><div class="ttname"><a href="classtvm_1_1tir_1_1BlockScopeNode.html">tvm::tir::BlockScopeNode</a></div><div class="ttdoc">An object with 1-to-1 correspondence with each block reference in the sref tree. This data structure ...</div><div class="ttdef"><b>Definition:</b> block_scope.h:258</div></div>
+<div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160; <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;<span class="comment">  /******** Dependency ********/</span></div>
+<div class="line"><a name="l00278"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1BlockScopeNode.html#afdd568119071241fe51245c180e7795f">  278</a></span>&#160;  TVM_DLL ffi::Array&lt;Dependency&gt; <a class="code" href="classtvm_1_1tir_1_1BlockScopeNode.html#afdd568119071241fe51245c180e7795f">GetDepsBySrc</a>(<span class="keyword">const</span> <a class="code" href="classtvm_1_1tir_1_1StmtSRef.html">StmtSRef</a>&amp; src) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00284"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1BlockScopeNode.html#a0a87a50056024d0b0cd6950a07b01c3f">  284</a></span>&#160;  TVM_DLL ffi::Array&lt;Dependency&gt; <a class="code" href="classtvm_1_1tir_1_1BlockScopeNode.html#a0a87a50056024d0b0cd6950a07b01c3f">GetDepsByDst</a>(<span class="keyword">const</span> <a class="code" href="classtvm_1_1tir_1_1StmtSRef.html">StmtSRef</a>&amp; dst) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;};</div>
+<div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160; </div>
+<div class="line"><a name="l00291"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1BlockScope.html">  291</a></span>&#160;<span class="keyword">class </span><a class="code" href="classtvm_1_1tir_1_1BlockScope.html">BlockScope</a> : <span class="keyword">public</span> ObjectRef {</div>
+<div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160; <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00297"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1BlockScope.html#abd4c11502a8e1d1cb7d03543aa379c07">  297</a></span>&#160;  <span class="keyword">explicit</span> <a class="code" href="classtvm_1_1tir_1_1BlockScope.html#abd4c11502a8e1d1cb7d03543aa379c07">BlockScope</a>(ObjectPtr&lt;BlockScopeNode&gt; data) : ObjectRef(data) {</div>
+<div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;    TVM_FFI_ICHECK(data != <span class="keyword">nullptr</span>);</div>
+<div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;  }</div>
+<div class="line"><a name="l00301"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1BlockScope.html#a6178e756a3b76b6bb8d124f58846da72">  301</a></span>&#160;  TVM_DLL <a class="code" href="classtvm_1_1tir_1_1BlockScope.html#a6178e756a3b76b6bb8d124f58846da72">BlockScope</a>();</div>
+<div class="line"><a name="l00308"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1BlockScope.html#ae957047ed30c7748d013c25c133eab12">  308</a></span>&#160;  TVM_DLL <span class="keyword">explicit</span> <a class="code" href="classtvm_1_1tir_1_1BlockScope.html#ae957047ed30c7748d013c25c133eab12">BlockScope</a>(<span class="keyword">const</span> ffi::Array&lt;StmtSRef&gt;&amp; child_block_srefs);</div>
+<div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160; </div>
+<div class="line"><a name="l00310"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1BlockScope.html#a86b0a2bb1ee3c08a614be166f082c6c7">  310</a></span>&#160;  <a class="code" href="classtvm_1_1tir_1_1BlockScope.html#a86b0a2bb1ee3c08a614be166f082c6c7">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NOTNULLABLE</a>(<a class="code" href="classtvm_1_1tir_1_1BlockScope.html">BlockScope</a>, ObjectRef, <a class="code" href="classtvm_1_1tir_1_1BlockScopeNode.html">BlockScopeNode</a>);</div>
+<div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160;};</div>
+<div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160; </div>
+<div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160;}  <span class="comment">// namespace tir</span></div>
+<div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;}  <span class="comment">// namespace tvm</span></div>
+<div class="line"><a name="l00315"></a><span class="lineno">  315</span>&#160; </div>
+<div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;<span class="preprocessor">#endif  </span><span class="comment">// TVM_TIR_BLOCK_SCOPE_H_</span></div>
+<div class="ttc" id="aclasstvm_1_1BaseFunc_html"><div class="ttname"><a href="classtvm_1_1BaseFunc.html">tvm::BaseFunc</a></div><div class="ttdoc">Managed reference to BaseFuncNode.</div><div class="ttdef"><b>Definition:</b> function.h:233</div></div>
+<div class="ttc" id="aclasstvm_1_1IRModule_html"><div class="ttname"><a href="classtvm_1_1IRModule.html">tvm::IRModule</a></div><div class="ttdoc">Managed reference class to IRModuleNode.</div><div class="ttdef"><b>Definition:</b> module.h:256</div></div>
+<div class="ttc" id="aclasstvm_1_1tir_1_1BlockScopeNode_html"><div class="ttname"><a href="classtvm_1_1tir_1_1BlockScopeNode.html">tvm::tir::BlockScopeNode</a></div><div class="ttdoc">An object with 1-to-1 correspondence with each block reference in the sref tree. This data structure ...</div><div class="ttdef"><b>Definition:</b> block_scope.h:253</div></div>
 <div class="ttc" id="aclasstvm_1_1tir_1_1BlockScopeNode_html_a0a87a50056024d0b0cd6950a07b01c3f"><div class="ttname"><a href="classtvm_1_1tir_1_1BlockScopeNode.html#a0a87a50056024d0b0cd6950a07b01c3f">tvm::tir::BlockScopeNode::GetDepsByDst</a></div><div class="ttdeci">ffi::Array&lt; Dependency &gt; GetDepsByDst(const StmtSRef &amp;dst) const</div><div class="ttdoc">Get all dependencies whose dst equals dst</div></div>
-<div class="ttc" id="aclasstvm_1_1tir_1_1BlockScopeNode_html_a1a29ce763d4956fcd583e198ead5681d"><div class="ttname"><a href="classtvm_1_1tir_1_1BlockScopeNode.html#a1a29ce763d4956fcd583e198ead5681d">tvm::tir::BlockScopeNode::src2deps</a></div><div class="ttdeci">std::unordered_map&lt; StmtSRef, ffi::Array&lt; Dependency &gt;, ObjectPtrHash, ObjectPtrEqual &gt; src2deps</div><div class="ttdoc">Lookup table for the src of dependencies.</div><div class="ttdef"><b>Definition:</b> block_scope [...]
-<div class="ttc" id="aclasstvm_1_1tir_1_1BlockScopeNode_html_a1b1e91c3e8f682224a40b01e3c1b06b7"><div class="ttname"><a href="classtvm_1_1tir_1_1BlockScopeNode.html#a1b1e91c3e8f682224a40b01e3c1b06b7">tvm::tir::BlockScopeNode::buffer_writers</a></div><div class="ttdeci">std::unordered_map&lt; Buffer, ffi::Array&lt; StmtSRef &gt;, ObjectPtrHash, ObjectPtrEqual &gt; buffer_writers</div><div class="ttdoc">The mapping from the buffer to the blocks who write it.</div><div class="ttdef"><b>Defin [...]
-<div class="ttc" id="aclasstvm_1_1tir_1_1BlockScopeNode_html_a204be63e94b669840e058e0690860255"><div class="ttname"><a href="classtvm_1_1tir_1_1BlockScopeNode.html#a204be63e94b669840e058e0690860255">tvm::tir::BlockScopeNode::dst2deps</a></div><div class="ttdeci">std::unordered_map&lt; StmtSRef, ffi::Array&lt; Dependency &gt;, ObjectPtrHash, ObjectPtrEqual &gt; dst2deps</div><div class="ttdoc">Lookup table for the dst of dependencies.</div><div class="ttdef"><b>Definition:</b> block_scope [...]
-<div class="ttc" id="aclasstvm_1_1tir_1_1BlockScopeNode_html_a7f45aa5d9ce95c0043a98c1cad13e785"><div class="ttname"><a href="classtvm_1_1tir_1_1BlockScopeNode.html#a7f45aa5d9ce95c0043a98c1cad13e785">tvm::tir::BlockScopeNode::RegisterReflection</a></div><div class="ttdeci">static void RegisterReflection()</div><div class="ttdef"><b>Definition:</b> block_scope.h:271</div></div>
-<div class="ttc" id="aclasstvm_1_1tir_1_1BlockScopeNode_html_afbf297b8f7bb0aa9a23bfd2706481554"><div class="ttname"><a href="classtvm_1_1tir_1_1BlockScopeNode.html#afbf297b8f7bb0aa9a23bfd2706481554">tvm::tir::BlockScopeNode::TVM_DECLARE_FINAL_OBJECT_INFO</a></div><div class="ttdeci">TVM_DECLARE_FINAL_OBJECT_INFO(BlockScopeNode, Object)</div></div>
+<div class="ttc" id="aclasstvm_1_1tir_1_1BlockScopeNode_html_a1a29ce763d4956fcd583e198ead5681d"><div class="ttname"><a href="classtvm_1_1tir_1_1BlockScopeNode.html#a1a29ce763d4956fcd583e198ead5681d">tvm::tir::BlockScopeNode::src2deps</a></div><div class="ttdeci">std::unordered_map&lt; StmtSRef, ffi::Array&lt; Dependency &gt;, ObjectPtrHash, ObjectPtrEqual &gt; src2deps</div><div class="ttdoc">Lookup table for the src of dependencies.</div><div class="ttdef"><b>Definition:</b> block_scope [...]
+<div class="ttc" id="aclasstvm_1_1tir_1_1BlockScopeNode_html_a1b1e91c3e8f682224a40b01e3c1b06b7"><div class="ttname"><a href="classtvm_1_1tir_1_1BlockScopeNode.html#a1b1e91c3e8f682224a40b01e3c1b06b7">tvm::tir::BlockScopeNode::buffer_writers</a></div><div class="ttdeci">std::unordered_map&lt; Buffer, ffi::Array&lt; StmtSRef &gt;, ObjectPtrHash, ObjectPtrEqual &gt; buffer_writers</div><div class="ttdoc">The mapping from the buffer to the blocks who write it.</div><div class="ttdef"><b>Defin [...]
+<div class="ttc" id="aclasstvm_1_1tir_1_1BlockScopeNode_html_a204be63e94b669840e058e0690860255"><div class="ttname"><a href="classtvm_1_1tir_1_1BlockScopeNode.html#a204be63e94b669840e058e0690860255">tvm::tir::BlockScopeNode::dst2deps</a></div><div class="ttdeci">std::unordered_map&lt; StmtSRef, ffi::Array&lt; Dependency &gt;, ObjectPtrHash, ObjectPtrEqual &gt; dst2deps</div><div class="ttdoc">Lookup table for the dst of dependencies.</div><div class="ttdef"><b>Definition:</b> block_scope [...]
+<div class="ttc" id="aclasstvm_1_1tir_1_1BlockScopeNode_html_a23b52cad8db67eb123e3a670ad9ddfc5"><div class="ttname"><a href="classtvm_1_1tir_1_1BlockScopeNode.html#a23b52cad8db67eb123e3a670ad9ddfc5">tvm::tir::BlockScopeNode::TVM_FFI_DECLARE_OBJECT_INFO_FINAL</a></div><div class="ttdeci">TVM_FFI_DECLARE_OBJECT_INFO_FINAL(&quot;tir.BlockScope&quot;, BlockScopeNode, Object)</div></div>
+<div class="ttc" id="aclasstvm_1_1tir_1_1BlockScopeNode_html_a7f45aa5d9ce95c0043a98c1cad13e785"><div class="ttname"><a href="classtvm_1_1tir_1_1BlockScopeNode.html#a7f45aa5d9ce95c0043a98c1cad13e785">tvm::tir::BlockScopeNode::RegisterReflection</a></div><div class="ttdeci">static void RegisterReflection()</div><div class="ttdef"><b>Definition:</b> block_scope.h:266</div></div>
 <div class="ttc" id="aclasstvm_1_1tir_1_1BlockScopeNode_html_afdd568119071241fe51245c180e7795f"><div class="ttname"><a href="classtvm_1_1tir_1_1BlockScopeNode.html#afdd568119071241fe51245c180e7795f">tvm::tir::BlockScopeNode::GetDepsBySrc</a></div><div class="ttdeci">ffi::Array&lt; Dependency &gt; GetDepsBySrc(const StmtSRef &amp;src) const</div><div class="ttdoc">Get all dependencies whose src equals src</div></div>
-<div class="ttc" id="aclasstvm_1_1tir_1_1BlockScopeNode_html_aff26a836ffc2147f95487d228632c678"><div class="ttname"><a href="classtvm_1_1tir_1_1BlockScopeNode.html#aff26a836ffc2147f95487d228632c678">tvm::tir::BlockScopeNode::_type_key</a></div><div class="ttdeci">static constexpr const char * _type_key</div><div class="ttdef"><b>Definition:</b> block_scope.h:275</div></div>
-<div class="ttc" id="aclasstvm_1_1tir_1_1BlockScope_html"><div class="ttname"><a href="classtvm_1_1tir_1_1BlockScope.html">tvm::tir::BlockScope</a></div><div class="ttdoc">Managed reference to BlockScopeNode.</div><div class="ttdef"><b>Definition:</b> block_scope.h:298</div></div>
+<div class="ttc" id="aclasstvm_1_1tir_1_1BlockScope_html"><div class="ttname"><a href="classtvm_1_1tir_1_1BlockScope.html">tvm::tir::BlockScope</a></div><div class="ttdoc">Managed reference to BlockScopeNode.</div><div class="ttdef"><b>Definition:</b> block_scope.h:291</div></div>
 <div class="ttc" id="aclasstvm_1_1tir_1_1BlockScope_html_a6178e756a3b76b6bb8d124f58846da72"><div class="ttname"><a href="classtvm_1_1tir_1_1BlockScope.html#a6178e756a3b76b6bb8d124f58846da72">tvm::tir::BlockScope::BlockScope</a></div><div class="ttdeci">BlockScope()</div><div class="ttdoc">The constructor creating an empty block scope with on dependency information.</div></div>
-<div class="ttc" id="aclasstvm_1_1tir_1_1BlockScope_html_aa01b50d8de4bd42abacf55d33f4fca25"><div class="ttname"><a href="classtvm_1_1tir_1_1BlockScope.html#aa01b50d8de4bd42abacf55d33f4fca25">tvm::tir::BlockScope::TVM_DEFINE_MUTABLE_NOTNULLABLE_OBJECT_REF_METHODS</a></div><div class="ttdeci">TVM_DEFINE_MUTABLE_NOTNULLABLE_OBJECT_REF_METHODS(BlockScope, ObjectRef, BlockScopeNode)</div></div>
-<div class="ttc" id="aclasstvm_1_1tir_1_1BlockScope_html_abd4c11502a8e1d1cb7d03543aa379c07"><div class="ttname"><a href="classtvm_1_1tir_1_1BlockScope.html#abd4c11502a8e1d1cb7d03543aa379c07">tvm::tir::BlockScope::BlockScope</a></div><div class="ttdeci">BlockScope(ObjectPtr&lt; BlockScopeNode &gt; data)</div><div class="ttdoc">Constructor from ObjectPtr&lt;BlockScopeNode&gt;.</div><div class="ttdef"><b>Definition:</b> block_scope.h:304</div></div>
+<div class="ttc" id="aclasstvm_1_1tir_1_1BlockScope_html_a86b0a2bb1ee3c08a614be166f082c6c7"><div class="ttname"><a href="classtvm_1_1tir_1_1BlockScope.html#a86b0a2bb1ee3c08a614be166f082c6c7">tvm::tir::BlockScope::TVM_FFI_DEFINE_OBJECT_REF_METHODS_NOTNULLABLE</a></div><div class="ttdeci">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NOTNULLABLE(BlockScope, ObjectRef, BlockScopeNode)</div></div>
+<div class="ttc" id="aclasstvm_1_1tir_1_1BlockScope_html_abd4c11502a8e1d1cb7d03543aa379c07"><div class="ttname"><a href="classtvm_1_1tir_1_1BlockScope.html#abd4c11502a8e1d1cb7d03543aa379c07">tvm::tir::BlockScope::BlockScope</a></div><div class="ttdeci">BlockScope(ObjectPtr&lt; BlockScopeNode &gt; data)</div><div class="ttdoc">Constructor from ObjectPtr&lt;BlockScopeNode&gt;.</div><div class="ttdef"><b>Definition:</b> block_scope.h:297</div></div>
 <div class="ttc" id="aclasstvm_1_1tir_1_1BlockScope_html_ae957047ed30c7748d013c25c133eab12"><div class="ttname"><a href="classtvm_1_1tir_1_1BlockScope.html#ae957047ed30c7748d013c25c133eab12">tvm::tir::BlockScope::BlockScope</a></div><div class="ttdeci">BlockScope(const ffi::Array&lt; StmtSRef &gt; &amp;child_block_srefs)</div><div class="ttdoc">Create the object with the specific leaf blocks, and compute the dependency information between the l...</div></div>
-<div class="ttc" id="aclasstvm_1_1tir_1_1DependencyNode_html"><div class="ttname"><a href="classtvm_1_1tir_1_1DependencyNode.html">tvm::tir::DependencyNode</a></div><div class="ttdoc">A tuple (src, dst, kind) representing certain types of dependency. For example, (A,...</div><div class="ttdef"><b>Definition:</b> block_scope.h:213</div></div>
-<div class="ttc" id="aclasstvm_1_1tir_1_1DependencyNode_html_a01ab5c0f090bb5720f9fe8cb5c42e75b"><div class="ttname"><a href="classtvm_1_1tir_1_1DependencyNode.html#a01ab5c0f090bb5720f9fe8cb5c42e75b">tvm::tir::DependencyNode::RegisterReflection</a></div><div class="ttdeci">static void RegisterReflection()</div><div class="ttdef"><b>Definition:</b> block_scope.h:222</div></div>
-<div class="ttc" id="aclasstvm_1_1tir_1_1DependencyNode_html_a1d7d574b27ba0a420eb65306cdc77020"><div class="ttname"><a href="classtvm_1_1tir_1_1DependencyNode.html#a1d7d574b27ba0a420eb65306cdc77020">tvm::tir::DependencyNode::dst</a></div><div class="ttdeci">StmtSRef dst</div><div class="ttdoc">The destination of the dependency relation.</div><div class="ttdef"><b>Definition:</b> block_scope.h:218</div></div>
-<div class="ttc" id="aclasstvm_1_1tir_1_1DependencyNode_html_ab334c31b5f17026cd64c0a76db6dd7a4"><div class="ttname"><a href="classtvm_1_1tir_1_1DependencyNode.html#ab334c31b5f17026cd64c0a76db6dd7a4">tvm::tir::DependencyNode::src</a></div><div class="ttdeci">StmtSRef src</div><div class="ttdoc">The source of the dependency relation.</div><div class="ttdef"><b>Definition:</b> block_scope.h:216</div></div>
-<div class="ttc" id="aclasstvm_1_1tir_1_1DependencyNode_html_acb3f7280438fcc6dd0f5a54b589bfb87"><div class="ttname"><a href="classtvm_1_1tir_1_1DependencyNode.html#acb3f7280438fcc6dd0f5a54b589bfb87">tvm::tir::DependencyNode::_type_key</a></div><div class="ttdeci">static constexpr const char * _type_key</div><div class="ttdef"><b>Definition:</b> block_scope.h:230</div></div>
-<div class="ttc" id="aclasstvm_1_1tir_1_1DependencyNode_html_aeb900845b1ca3fb8787ab183af8389b7"><div class="ttname"><a href="classtvm_1_1tir_1_1DependencyNode.html#aeb900845b1ca3fb8787ab183af8389b7">tvm::tir::DependencyNode::kind</a></div><div class="ttdeci">DepKind kind</div><div class="ttdoc">The dependency kind.</div><div class="ttdef"><b>Definition:</b> block_scope.h:220</div></div>
-<div class="ttc" id="aclasstvm_1_1tir_1_1DependencyNode_html_afb23faf0e92c12d581e00b953f48e901"><div class="ttname"><a href="classtvm_1_1tir_1_1DependencyNode.html#afb23faf0e92c12d581e00b953f48e901">tvm::tir::DependencyNode::TVM_DECLARE_FINAL_OBJECT_INFO</a></div><div class="ttdeci">TVM_DECLARE_FINAL_OBJECT_INFO(DependencyNode, Object)</div></div>
-<div class="ttc" id="aclasstvm_1_1tir_1_1Dependency_html"><div class="ttname"><a href="classtvm_1_1tir_1_1Dependency.html">tvm::tir::Dependency</a></div><div class="ttdoc">Managed reference to DependencyNode.</div><div class="ttdef"><b>Definition:</b> block_scope.h:238</div></div>
-<div class="ttc" id="aclasstvm_1_1tir_1_1Dependency_html_a2d1a68d55040ae26f6392dffcd4ba9c8"><div class="ttname"><a href="classtvm_1_1tir_1_1Dependency.html#a2d1a68d55040ae26f6392dffcd4ba9c8">tvm::tir::Dependency::TVM_DEFINE_NOTNULLABLE_OBJECT_REF_METHODS</a></div><div class="ttdeci">TVM_DEFINE_NOTNULLABLE_OBJECT_REF_METHODS(Dependency, ObjectRef, DependencyNode)</div></div>
+<div class="ttc" id="aclasstvm_1_1tir_1_1DependencyNode_html"><div class="ttname"><a href="classtvm_1_1tir_1_1DependencyNode.html">tvm::tir::DependencyNode</a></div><div class="ttdoc">A tuple (src, dst, kind) representing certain types of dependency. For example, (A,...</div><div class="ttdef"><b>Definition:</b> block_scope.h:210</div></div>
+<div class="ttc" id="aclasstvm_1_1tir_1_1DependencyNode_html_a01ab5c0f090bb5720f9fe8cb5c42e75b"><div class="ttname"><a href="classtvm_1_1tir_1_1DependencyNode.html#a01ab5c0f090bb5720f9fe8cb5c42e75b">tvm::tir::DependencyNode::RegisterReflection</a></div><div class="ttdeci">static void RegisterReflection()</div><div class="ttdef"><b>Definition:</b> block_scope.h:219</div></div>
+<div class="ttc" id="aclasstvm_1_1tir_1_1DependencyNode_html_a1d7d574b27ba0a420eb65306cdc77020"><div class="ttname"><a href="classtvm_1_1tir_1_1DependencyNode.html#a1d7d574b27ba0a420eb65306cdc77020">tvm::tir::DependencyNode::dst</a></div><div class="ttdeci">StmtSRef dst</div><div class="ttdoc">The destination of the dependency relation.</div><div class="ttdef"><b>Definition:</b> block_scope.h:215</div></div>
+<div class="ttc" id="aclasstvm_1_1tir_1_1DependencyNode_html_ab334c31b5f17026cd64c0a76db6dd7a4"><div class="ttname"><a href="classtvm_1_1tir_1_1DependencyNode.html#ab334c31b5f17026cd64c0a76db6dd7a4">tvm::tir::DependencyNode::src</a></div><div class="ttdeci">StmtSRef src</div><div class="ttdoc">The source of the dependency relation.</div><div class="ttdef"><b>Definition:</b> block_scope.h:213</div></div>
+<div class="ttc" id="aclasstvm_1_1tir_1_1DependencyNode_html_ac7050f0f8a7e551916977bce0aa80263"><div class="ttname"><a href="classtvm_1_1tir_1_1DependencyNode.html#ac7050f0f8a7e551916977bce0aa80263">tvm::tir::DependencyNode::TVM_FFI_DECLARE_OBJECT_INFO_FINAL</a></div><div class="ttdeci">TVM_FFI_DECLARE_OBJECT_INFO_FINAL(&quot;tir.Dependency&quot;, DependencyNode, Object)</div></div>
+<div class="ttc" id="aclasstvm_1_1tir_1_1DependencyNode_html_aeb900845b1ca3fb8787ab183af8389b7"><div class="ttname"><a href="classtvm_1_1tir_1_1DependencyNode.html#aeb900845b1ca3fb8787ab183af8389b7">tvm::tir::DependencyNode::kind</a></div><div class="ttdeci">DepKind kind</div><div class="ttdoc">The dependency kind.</div><div class="ttdef"><b>Definition:</b> block_scope.h:217</div></div>
+<div class="ttc" id="aclasstvm_1_1tir_1_1Dependency_html"><div class="ttname"><a href="classtvm_1_1tir_1_1Dependency.html">tvm::tir::Dependency</a></div><div class="ttdoc">Managed reference to DependencyNode.</div><div class="ttdef"><b>Definition:</b> block_scope.h:233</div></div>
 <div class="ttc" id="aclasstvm_1_1tir_1_1Dependency_html_a43d8f2d3a2b251094774252f526db176"><div class="ttname"><a href="classtvm_1_1tir_1_1Dependency.html#a43d8f2d3a2b251094774252f526db176">tvm::tir::Dependency::Dependency</a></div><div class="ttdeci">Dependency(StmtSRef src, StmtSRef dst, DepKind kind)</div><div class="ttdoc">Constructor.</div></div>
-<div class="ttc" id="aclasstvm_1_1tir_1_1PrimFunc_html"><div class="ttname"><a href="classtvm_1_1tir_1_1PrimFunc.html">tvm::tir::PrimFunc</a></div><div class="ttdoc">Managed reference to PrimFuncNode.</div><div class="ttdef"><b>Definition:</b> function.h:131</div></div>
-<div class="ttc" id="aclasstvm_1_1tir_1_1SRefTreeCreator_html"><div class="ttname"><a href="classtvm_1_1tir_1_1SRefTreeCreator.html">tvm::tir::SRefTreeCreator</a></div><div class="ttdef"><b>Definition:</b> block_scope.h:149</div></div>
-<div class="ttc" id="aclasstvm_1_1tir_1_1SRefTreeCreator_html_aec756aaae7eacc4e6f88e74d9d490fcc"><div class="ttname"><a href="classtvm_1_1tir_1_1SRefTreeCreator.html#aec756aaae7eacc4e6f88e74d9d490fcc">tvm::tir::SRefTreeCreator::Create</a></div><div class="ttdeci">static std::unordered_map&lt; const StmtNode *, StmtSRef &gt; Create(IRModule mod, bool include_loops=true)</div><div class="ttdoc">StmtSRef Tree Creator.</div><div class="ttdef"><b>Definition:</b> block_scope.h:156</div></div>
+<div class="ttc" id="aclasstvm_1_1tir_1_1Dependency_html_a9640ac9254fd49478e3a9210b97901bc"><div class="ttname"><a href="classtvm_1_1tir_1_1Dependency.html#a9640ac9254fd49478e3a9210b97901bc">tvm::tir::Dependency::TVM_FFI_DEFINE_OBJECT_REF_METHODS_NOTNULLABLE</a></div><div class="ttdeci">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NOTNULLABLE(Dependency, ObjectRef, DependencyNode)</div></div>
+<div class="ttc" id="aclasstvm_1_1tir_1_1PrimFunc_html"><div class="ttname"><a href="classtvm_1_1tir_1_1PrimFunc.html">tvm::tir::PrimFunc</a></div><div class="ttdoc">Managed reference to PrimFuncNode.</div><div class="ttdef"><b>Definition:</b> function.h:129</div></div>
+<div class="ttc" id="aclasstvm_1_1tir_1_1SRefTreeCreator_html"><div class="ttname"><a href="classtvm_1_1tir_1_1SRefTreeCreator.html">tvm::tir::SRefTreeCreator</a></div><div class="ttdef"><b>Definition:</b> block_scope.h:146</div></div>
+<div class="ttc" id="aclasstvm_1_1tir_1_1SRefTreeCreator_html_aec756aaae7eacc4e6f88e74d9d490fcc"><div class="ttname"><a href="classtvm_1_1tir_1_1SRefTreeCreator.html#aec756aaae7eacc4e6f88e74d9d490fcc">tvm::tir::SRefTreeCreator::Create</a></div><div class="ttdeci">static std::unordered_map&lt; const StmtNode *, StmtSRef &gt; Create(IRModule mod, bool include_loops=true)</div><div class="ttdoc">StmtSRef Tree Creator.</div><div class="ttdef"><b>Definition:</b> block_scope.h:153</div></div>
 <div class="ttc" id="aclasstvm_1_1tir_1_1StmtNode_html"><div class="ttname"><a href="classtvm_1_1tir_1_1StmtNode.html">tvm::tir::StmtNode</a></div><div class="ttdoc">Base node of all statements.</div><div class="ttdef"><b>Definition:</b> stmt.h:38</div></div>
 <div class="ttc" id="aclasstvm_1_1tir_1_1StmtSRefNode_html"><div class="ttname"><a href="classtvm_1_1tir_1_1StmtSRefNode.html">tvm::tir::StmtSRefNode</a></div><div class="ttdoc">An object that refers to schedulable elements (block/for-loop) in TensorIR, aka &quot;sref&quot;.</div><div class="ttdef"><b>Definition:</b> block_scope.h:54</div></div>
 <div class="ttc" id="aclasstvm_1_1tir_1_1StmtSRefNode_html_a0a81a6ea87f86ef7ebefccdb7cf378da"><div class="ttname"><a href="classtvm_1_1tir_1_1StmtSRefNode.html#a0a81a6ea87f86ef7ebefccdb7cf378da">tvm::tir::StmtSRefNode::Reset</a></div><div class="ttdeci">void Reset()</div><div class="ttdoc">Reset the object inplace to the invalid state.</div><div class="ttdef"><b>Definition:</b> block_scope.h:79</div></div>
 <div class="ttc" id="aclasstvm_1_1tir_1_1StmtSRefNode_html_a1ce9920064b0c2ed42be0e9412fd3939"><div class="ttname"><a href="classtvm_1_1tir_1_1StmtSRefNode.html#a1ce9920064b0c2ed42be0e9412fd3939">tvm::tir::StmtSRefNode::seq_index</a></div><div class="ttdeci">int64_t seq_index</div><div class="ttdoc">If the statement the sref points to is an element of a SeqStmt in the AST, then seq_index is set to i...</div><div class="ttdef"><b>Definition:</b> block_scope.h:68</div></div>
-<div class="ttc" id="aclasstvm_1_1tir_1_1StmtSRefNode_html_a5ca6c02336cbccf783afb43e60d6c168"><div class="ttname"><a href="classtvm_1_1tir_1_1StmtSRefNode.html#a5ca6c02336cbccf783afb43e60d6c168">tvm::tir::StmtSRefNode::TVM_DECLARE_FINAL_OBJECT_INFO</a></div><div class="ttdeci">TVM_DECLARE_FINAL_OBJECT_INFO(StmtSRefNode, Object)</div></div>
+<div class="ttc" id="aclasstvm_1_1tir_1_1StmtSRefNode_html_a905b29f772db85ef437408d0343442ef"><div class="ttname"><a href="classtvm_1_1tir_1_1StmtSRefNode.html#a905b29f772db85ef437408d0343442ef">tvm::tir::StmtSRefNode::_type_mutable</a></div><div class="ttdeci">static constexpr const bool _type_mutable</div><div class="ttdef"><b>Definition:</b> block_scope.h:75</div></div>
+<div class="ttc" id="aclasstvm_1_1tir_1_1StmtSRefNode_html_a91049ccd5566979c9233ef96024ff667"><div class="ttname"><a href="classtvm_1_1tir_1_1StmtSRefNode.html#a91049ccd5566979c9233ef96024ff667">tvm::tir::StmtSRefNode::TVM_FFI_DECLARE_OBJECT_INFO_FINAL</a></div><div class="ttdeci">TVM_FFI_DECLARE_OBJECT_INFO_FINAL(&quot;tir.StmtSRef&quot;, StmtSRefNode, Object)</div></div>
 <div class="ttc" id="aclasstvm_1_1tir_1_1StmtSRefNode_html_a9349331c4abba879f71f029ce43f7ff7"><div class="ttname"><a href="classtvm_1_1tir_1_1StmtSRefNode.html#a9349331c4abba879f71f029ce43f7ff7">tvm::tir::StmtSRefNode::RegisterReflection</a></div><div class="ttdeci">static void RegisterReflection()</div><div class="ttdef"><b>Definition:</b> block_scope.h:70</div></div>
 <div class="ttc" id="aclasstvm_1_1tir_1_1StmtSRefNode_html_aa69a77c8bee12ecc0c17fe75656e392d"><div class="ttname"><a href="classtvm_1_1tir_1_1StmtSRefNode.html#aa69a77c8bee12ecc0c17fe75656e392d">tvm::tir::StmtSRefNode::parent</a></div><div class="ttdeci">StmtSRefNode * parent</div><div class="ttdoc">The parent sref.</div><div class="ttdef"><b>Definition:</b> block_scope.h:63</div></div>
 <div class="ttc" id="aclasstvm_1_1tir_1_1StmtSRefNode_html_acf4e832651882cfbc33e3d5930159791"><div class="ttname"><a href="classtvm_1_1tir_1_1StmtSRefNode.html#acf4e832651882cfbc33e3d5930159791">tvm::tir::StmtSRefNode::stmt</a></div><div class="ttdeci">const StmtNode * stmt</div><div class="ttdoc">The block or for stmt the object refers to.</div><div class="ttdef"><b>Definition:</b> block_scope.h:61</div></div>
-<div class="ttc" id="aclasstvm_1_1tir_1_1StmtSRefNode_html_ad4e8d0b49a5ba2d03c3f19c65ac100aa"><div class="ttname"><a href="classtvm_1_1tir_1_1StmtSRefNode.html#ad4e8d0b49a5ba2d03c3f19c65ac100aa">tvm::tir::StmtSRefNode::_type_key</a></div><div class="ttdeci">static constexpr const char * _type_key</div><div class="ttdef"><b>Definition:</b> block_scope.h:75</div></div>
 <div class="ttc" id="aclasstvm_1_1tir_1_1StmtSRefNode_html_afc61714fbac246f72d02d0729fb9ba2d"><div class="ttname"><a href="classtvm_1_1tir_1_1StmtSRefNode.html#afc61714fbac246f72d02d0729fb9ba2d">tvm::tir::StmtSRefNode::StmtAs</a></div><div class="ttdeci">const StmtType * StmtAs() const</div><div class="ttdoc">Get the referenced statement with proper type checking. It serves the same purpose as ObjectRef::as,...</div><div class="ttdef"><b>Definition:</b> block_scope.h:93</div></div>
 <div class="ttc" id="aclasstvm_1_1tir_1_1StmtSRef_html"><div class="ttname"><a href="classtvm_1_1tir_1_1StmtSRef.html">tvm::tir::StmtSRef</a></div><div class="ttdoc">Managed reference to StmtSRefNode.</div><div class="ttdef"><b>Definition:</b> block_scope.h:106</div></div>
 <div class="ttc" id="aclasstvm_1_1tir_1_1StmtSRef_html_a20ae0e36408213db9574c4121ef17837"><div class="ttname"><a href="classtvm_1_1tir_1_1StmtSRef.html#a20ae0e36408213db9574c4121ef17837">tvm::tir::StmtSRef::InlineMark</a></div><div class="ttdeci">static StmtSRef InlineMark()</div></div>
 <div class="ttc" id="aclasstvm_1_1tir_1_1StmtSRef_html_a31687ace5dc4fe487ffb87d658d86412"><div class="ttname"><a href="classtvm_1_1tir_1_1StmtSRef.html#a31687ace5dc4fe487ffb87d658d86412">tvm::tir::StmtSRef::StmtSRef</a></div><div class="ttdeci">StmtSRef(const StmtNode *stmt, StmtSRefNode *parent, int64_t seq_index)</div><div class="ttdoc">The constructor.</div></div>
-<div class="ttc" id="aclasstvm_1_1tir_1_1StmtSRef_html_a3613db2f3425a9679fb3de9f773231ab"><div class="ttname"><a href="classtvm_1_1tir_1_1StmtSRef.html#a3613db2f3425a9679fb3de9f773231ab">tvm::tir::StmtSRef::TVM_DEFINE_MUTABLE_OBJECT_REF_METHODS</a></div><div class="ttdeci">TVM_DEFINE_MUTABLE_OBJECT_REF_METHODS(StmtSRef, ObjectRef, StmtSRefNode)</div></div>
 <div class="ttc" id="aclasstvm_1_1tir_1_1StmtSRef_html_a755ffc34c02e5af0129c7d2eedc1cfb5"><div class="ttname"><a href="classtvm_1_1tir_1_1StmtSRef.html#a755ffc34c02e5af0129c7d2eedc1cfb5">tvm::tir::StmtSRef::RootMark</a></div><div class="ttdeci">static StmtSRef RootMark()</div></div>
-<div class="ttc" id="aclasstvm_1_1tir_1_1StmtSRef_html_a92142a45bfa223528edab435a5ceaf9d"><div class="ttname"><a href="classtvm_1_1tir_1_1StmtSRef.html#a92142a45bfa223528edab435a5ceaf9d">tvm::tir::StmtSRef::get</a></div><div class="ttdeci">StmtSRefNode * get() const</div><div class="ttdef"><b>Definition:</b> block_scope.h:118</div></div>
+<div class="ttc" id="aclasstvm_1_1tir_1_1StmtSRef_html_adc2f47c1649ba3521aaf17227627281d"><div class="ttname"><a href="classtvm_1_1tir_1_1StmtSRef.html#adc2f47c1649ba3521aaf17227627281d">tvm::tir::StmtSRef::TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE</a></div><div class="ttdeci">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE(StmtSRef, ObjectRef, StmtSRefNode)</div></div>
 <div class="ttc" id="aclasstvm_1_1tir_1_1StmtVisitor_html"><div class="ttname"><a href="classtvm_1_1tir_1_1StmtVisitor.html">tvm::tir::StmtVisitor</a></div><div class="ttdoc">StmtVisitor.</div><div class="ttdef"><b>Definition:</b> stmt_functor.h:135</div></div>
 <div class="ttc" id="air_2module_8h_html"><div class="ttname"><a href="ir_2module_8h.html">module.h</a></div><div class="ttdoc">IRModule that holds the functions and type definitions.</div></div>
 <div class="ttc" id="anamespacetvm_1_1ffi_1_1reflection_html"><div class="ttname"><a href="namespacetvm_1_1ffi_1_1reflection.html">tvm::ffi::reflection</a></div><div class="ttdef"><b>Definition:</b> repr_printer.h:91</div></div>
-<div class="ttc" id="anamespacetvm_1_1tir_html_a82f5fe564edbe0dadbc4a56a82dfe12e"><div class="ttname"><a href="namespacetvm_1_1tir.html#a82f5fe564edbe0dadbc4a56a82dfe12e">tvm::tir::DepKind</a></div><div class="ttdeci">DepKind</div><div class="ttdoc">Type of dependency. Right now we have 4 types of dependencies 1) Read-after-write (kRAW) 2) Write-aft...</div><div class="ttdef"><b>Definition:</b> block_scope.h:201</div></div>
+<div class="ttc" id="anamespacetvm_1_1tir_html_a82f5fe564edbe0dadbc4a56a82dfe12e"><div class="ttname"><a href="namespacetvm_1_1tir.html#a82f5fe564edbe0dadbc4a56a82dfe12e">tvm::tir::DepKind</a></div><div class="ttdeci">DepKind</div><div class="ttdoc">Type of dependency. Right now we have 4 types of dependencies 1) Read-after-write (kRAW) 2) Write-aft...</div><div class="ttdef"><b>Definition:</b> block_scope.h:198</div></div>
 <div class="ttc" id="anamespacetvm_1_1tir_html_a82f5fe564edbe0dadbc4a56a82dfe12ea565ac768da7890c2660ff4b12d267f4b"><div class="ttname"><a href="namespacetvm_1_1tir.html#a82f5fe564edbe0dadbc4a56a82dfe12ea565ac768da7890c2660ff4b12d267f4b">tvm::tir::DepKind::kRAW</a></div><div class="ttdeci">@ kRAW</div></div>
 <div class="ttc" id="anamespacetvm_1_1tir_html_a82f5fe564edbe0dadbc4a56a82dfe12ea8b16acbc820d7479d796a3a0ac180724"><div class="ttname"><a href="namespacetvm_1_1tir.html#a82f5fe564edbe0dadbc4a56a82dfe12ea8b16acbc820d7479d796a3a0ac180724">tvm::tir::DepKind::kWAR</a></div><div class="ttdeci">@ kWAR</div></div>
 <div class="ttc" id="anamespacetvm_1_1tir_html_a82f5fe564edbe0dadbc4a56a82dfe12eaf3b1d6a59161fbe655adccdd10c6eda4"><div class="ttname"><a href="namespacetvm_1_1tir.html#a82f5fe564edbe0dadbc4a56a82dfe12eaf3b1d6a59161fbe655adccdd10c6eda4">tvm::tir::DepKind::kWAW</a></div><div class="ttdeci">@ kWAW</div></div>
-<div class="ttc" id="anamespacetvm_1_1tir_html_add7d0a6b1dd91f0c3c5dd2f4cf64358eaf324873e6195114a186db7f910559b2c"><div class="ttname"><a href="namespacetvm_1_1tir.html#add7d0a6b1dd91f0c3c5dd2f4cf64358eaf324873e6195114a186db7f910559b2c">tvm::tir::kOpaque</a></div><div class="ttdeci">@ kOpaque</div><div class="ttdoc">IterVar is opaque,.</div><div class="ttdef"><b>Definition:</b> var.h:229</div></div>
+<div class="ttc" id="anamespacetvm_1_1tir_html_add7d0a6b1dd91f0c3c5dd2f4cf64358eaf324873e6195114a186db7f910559b2c"><div class="ttname"><a href="namespacetvm_1_1tir.html#add7d0a6b1dd91f0c3c5dd2f4cf64358eaf324873e6195114a186db7f910559b2c">tvm::tir::kOpaque</a></div><div class="ttdeci">@ kOpaque</div><div class="ttdoc">IterVar is opaque,.</div><div class="ttdef"><b>Definition:</b> var.h:227</div></div>
 <div class="ttc" id="anamespacetvm_1_1topi_html_aaa95d3ad68932ab206efbe0a326db6a2"><div class="ttname"><a href="namespacetvm_1_1topi.html#aaa95d3ad68932ab206efbe0a326db6a2">tvm::topi::mod</a></div><div class="ttdeci">tvm::PrimExpr mod(const tvm::PrimExpr &amp;a, const tvm::PrimExpr &amp;b)</div><div class="ttdef"><b>Definition:</b> broadcast.h:308</div></div>
 <div class="ttc" id="anamespacetvm_html"><div class="ttname"><a href="namespacetvm.html">tvm</a></div><div class="ttdoc">Performance counters for profiling via the PAPI library.</div><div class="ttdef"><b>Definition:</b> analyzer.h:37</div></div>
 <div class="ttc" id="astmt_8h_html"><div class="ttname"><a href="stmt_8h.html">stmt.h</a></div><div class="ttdoc">TIR statements.</div></div>
diff --git a/docs/reference/api/doxygen/bnn_8h_source.html b/docs/reference/api/doxygen/bnn_8h_source.html
index f02dd11cd3..b785a57a3b 100644
--- a/docs/reference/api/doxygen/bnn_8h_source.html
+++ b/docs/reference/api/doxygen/bnn_8h_source.html
@@ -172,13 +172,13 @@ $(function() {
 <div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;}  <span class="comment">// namespace tvm</span></div>
 <div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;<span class="preprocessor">#endif  </span><span class="comment">// TVM_TOPI_NN_BNN_H_</span></div>
 <div class="ttc" id="aanalyzer_8h_html"><div class="ttname"><a href="analyzer_8h.html">analyzer.h</a></div><div class="ttdoc">Algebra expression simplifications.</div></div>
-<div class="ttc" id="aclasstvm_1_1PrimExpr_html"><div class="ttname"><a href="classtvm_1_1PrimExpr.html">tvm::PrimExpr</a></div><div class="ttdoc">Reference to PrimExprNode.</div><div class="ttdef"><b>Definition:</b> expr.h:127</div></div>
-<div class="ttc" id="aclasstvm_1_1Range_html"><div class="ttname"><a href="classtvm_1_1Range.html">tvm::Range</a></div><div class="ttdoc">Range container</div><div class="ttdef"><b>Definition:</b> expr.h:700</div></div>
-<div class="ttc" id="aclasstvm_1_1arith_1_1Analyzer_html"><div class="ttname"><a href="classtvm_1_1arith_1_1Analyzer.html">tvm::arith::Analyzer</a></div><div class="ttdoc">Analyzer that contains bunch of sub-analyzers.</div><div class="ttdef"><b>Definition:</b> analyzer.h:636</div></div>
+<div class="ttc" id="aclasstvm_1_1PrimExpr_html"><div class="ttname"><a href="classtvm_1_1PrimExpr.html">tvm::PrimExpr</a></div><div class="ttdoc">Reference to PrimExprNode.</div><div class="ttdef"><b>Definition:</b> expr.h:124</div></div>
+<div class="ttc" id="aclasstvm_1_1Range_html"><div class="ttname"><a href="classtvm_1_1Range.html">tvm::Range</a></div><div class="ttdoc">Range container</div><div class="ttdef"><b>Definition:</b> expr.h:689</div></div>
+<div class="ttc" id="aclasstvm_1_1arith_1_1Analyzer_html"><div class="ttname"><a href="classtvm_1_1arith_1_1Analyzer.html">tvm::arith::Analyzer</a></div><div class="ttdoc">Analyzer that contains bunch of sub-analyzers.</div><div class="ttdef"><b>Definition:</b> analyzer.h:634</div></div>
 <div class="ttc" id="aclasstvm_1_1arith_1_1Analyzer_html_a9b440f852f12ad0a4d8ed5ed97054425"><div class="ttname"><a href="classtvm_1_1arith_1_1Analyzer.html#a9b440f852f12ad0a4d8ed5ed97054425">tvm::arith::Analyzer::Simplify</a></div><div class="ttdeci">PrimExpr Simplify(const PrimExpr &amp;expr, int steps=2)</div><div class="ttdoc">Simplify expr.</div></div>
 <div class="ttc" id="aclasstvm_1_1runtime_1_1DataType_html_aef2fa30c095f37b20a301665bed80826"><div class="ttname"><a href="classtvm_1_1runtime_1_1DataType.html#aef2fa30c095f37b20a301665bed80826">tvm::runtime::DataType::UInt</a></div><div class="ttdeci">static DataType UInt(int bits, int lanes=1, bool is_scalable=false)</div><div class="ttdoc">Construct an uint type.</div><div class="ttdef"><b>Definition:</b> data_type.h:282</div></div>
-<div class="ttc" id="aclasstvm_1_1te_1_1Tensor_html"><div class="ttname"><a href="classtvm_1_1te_1_1Tensor.html">tvm::te::Tensor</a></div><div class="ttdoc">Tensor structure representing a possible input, or intermediate computation result.</div><div class="ttdef"><b>Definition:</b> tensor.h:101</div></div>
-<div class="ttc" id="aclasstvm_1_1tir_1_1Var_html"><div class="ttname"><a href="classtvm_1_1tir_1_1Var.html">tvm::tir::Var</a></div><div class="ttdoc">a named variable in TIR</div><div class="ttdef"><b>Definition:</b> var.h:78</div></div>
+<div class="ttc" id="aclasstvm_1_1te_1_1Tensor_html"><div class="ttname"><a href="classtvm_1_1te_1_1Tensor.html">tvm::te::Tensor</a></div><div class="ttdoc">Tensor structure representing a possible input, or intermediate computation result.</div><div class="ttdef"><b>Definition:</b> tensor.h:100</div></div>
+<div class="ttc" id="aclasstvm_1_1tir_1_1Var_html"><div class="ttname"><a href="classtvm_1_1tir_1_1Var.html">tvm::tir::Var</a></div><div class="ttdoc">a named variable in TIR</div><div class="ttdef"><b>Definition:</b> var.h:77</div></div>
 <div class="ttc" id="aconstant__utils_8h_html"><div class="ttname"><a href="constant__utils_8h.html">constant_utils.h</a></div><div class="ttdoc">Utility functions for handling constants in TVM expressions.</div></div>
 <div class="ttc" id="anamespacetvm_1_1te_html"><div class="ttname"><a href="namespacetvm_1_1te.html">tvm::te</a></div><div class="ttdoc">Tensor expression language DSL.</div><div class="ttdef"><b>Definition:</b> extracted_task.h:33</div></div>
 <div class="ttc" id="anamespacetvm_1_1te_html_aae384e9b73c2271905486e4a74b69265"><div class="ttname"><a href="namespacetvm_1_1te.html#aae384e9b73c2271905486e4a74b69265">tvm::te::reduce_axis</a></div><div class="ttdeci">IterVar reduce_axis(Range dom, std::string name=&quot;rv&quot;)</div><div class="ttdoc">Create a new IterVar for reduction operations.</div></div>
diff --git a/docs/reference/api/doxygen/bound_8h_source.html b/docs/reference/api/doxygen/bound_8h_source.html
index a3ca7b8559..d14369c49d 100644
--- a/docs/reference/api/doxygen/bound_8h_source.html
+++ b/docs/reference/api/doxygen/bound_8h_source.html
@@ -117,15 +117,15 @@ $(function() {
 <div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;}  <span class="comment">// namespace arith</span></div>
 <div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;}  <span class="comment">// namespace tvm</span></div>
 <div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;<span class="preprocessor">#endif  </span><span class="comment">// TVM_ARITH_BOUND_H_</span></div>
-<div class="ttc" id="aclasstvm_1_1PrimExpr_html"><div class="ttname"><a href="classtvm_1_1PrimExpr.html">tvm::PrimExpr</a></div><div class="ttdoc">Reference to PrimExprNode.</div><div class="ttdef"><b>Definition:</b> expr.h:127</div></div>
-<div class="ttc" id="aclasstvm_1_1arith_1_1IntSet_html"><div class="ttname"><a href="classtvm_1_1arith_1_1IntSet.html">tvm::arith::IntSet</a></div><div class="ttdoc">Managed reference to IntSetNode.</div><div class="ttdef"><b>Definition:</b> int_set.h:68</div></div>
-<div class="ttc" id="aclasstvm_1_1tir_1_1Buffer_html"><div class="ttname"><a href="classtvm_1_1tir_1_1Buffer.html">tvm::tir::Buffer</a></div><div class="ttdoc">Buffer is a symbolic n-darray structure. It is a composition of primitive symbolic types,...</div><div class="ttdef"><b>Definition:</b> buffer.h:157</div></div>
-<div class="ttc" id="aclasstvm_1_1tir_1_1Stmt_html"><div class="ttname"><a href="classtvm_1_1tir_1_1Stmt.html">tvm::tir::Stmt</a></div><div class="ttdoc">Container of all statements.</div><div class="ttdef"><b>Definition:</b> stmt.h:64</div></div>
+<div class="ttc" id="aclasstvm_1_1PrimExpr_html"><div class="ttname"><a href="classtvm_1_1PrimExpr.html">tvm::PrimExpr</a></div><div class="ttdoc">Reference to PrimExprNode.</div><div class="ttdef"><b>Definition:</b> expr.h:124</div></div>
+<div class="ttc" id="aclasstvm_1_1arith_1_1IntSet_html"><div class="ttname"><a href="classtvm_1_1arith_1_1IntSet.html">tvm::arith::IntSet</a></div><div class="ttdoc">Managed reference to IntSetNode.</div><div class="ttdef"><b>Definition:</b> int_set.h:66</div></div>
+<div class="ttc" id="aclasstvm_1_1tir_1_1Buffer_html"><div class="ttname"><a href="classtvm_1_1tir_1_1Buffer.html">tvm::tir::Buffer</a></div><div class="ttdoc">Buffer is a symbolic n-darray structure. It is a composition of primitive symbolic types,...</div><div class="ttdef"><b>Definition:</b> buffer.h:156</div></div>
+<div class="ttc" id="aclasstvm_1_1tir_1_1Stmt_html"><div class="ttname"><a href="classtvm_1_1tir_1_1Stmt.html">tvm::tir::Stmt</a></div><div class="ttdoc">Container of all statements.</div><div class="ttdef"><b>Definition:</b> stmt.h:63</div></div>
 <div class="ttc" id="aint__set_8h_html"><div class="ttname"><a href="int__set_8h.html">int_set.h</a></div><div class="ttdoc">Integer set.</div></div>
 <div class="ttc" id="air_2expr_8h_html"><div class="ttname"><a href="ir_2expr_8h.html">expr.h</a></div><div class="ttdoc">Base expr nodes in TVM.</div></div>
 <div class="ttc" id="anamespacetvm_1_1arith_html_a7641fa29ca6d8941f2696aacccf23998"><div class="ttname"><a href="namespacetvm_1_1arith.html#a7641fa29ca6d8941f2696aacccf23998">tvm::arith::DomainTouched</a></div><div class="ttdeci">Region DomainTouched(const Stmt &amp;body, const tir::Buffer &amp;buffer, bool consider_loads, bool consider_stores)</div><div class="ttdoc">Infer a regular domain that covers all the calls or provides within the given statement.</div></div>
 <div class="ttc" id="anamespacetvm_1_1arith_html_a7959263b3cd452d41fd114c763ba16ca"><div class="ttname"><a href="namespacetvm_1_1arith.html#a7959263b3cd452d41fd114c763ba16ca">tvm::arith::DeduceBound</a></div><div class="ttdeci">IntSet DeduceBound(PrimExpr v, PrimExpr cond, const ffi::Map&lt; Var, IntSet &gt; &amp;hint_map, const ffi::Map&lt; Var, IntSet &gt; &amp;relax_map)</div><div class="ttdoc">Deduce the bound of the target variable in a expression, give the domain of each variables. [...]
-<div class="ttc" id="anamespacetvm_1_1tir_html_ac2f1aa0cdcd55abe485b2ca344794ee6"><div class="ttname"><a href="namespacetvm_1_1tir.html#ac2f1aa0cdcd55abe485b2ca344794ee6">tvm::tir::Region</a></div><div class="ttdeci">ffi::Array&lt; Range &gt; Region</div><div class="ttdef"><b>Definition:</b> var.h:178</div></div>
+<div class="ttc" id="anamespacetvm_1_1tir_html_ac2f1aa0cdcd55abe485b2ca344794ee6"><div class="ttname"><a href="namespacetvm_1_1tir.html#ac2f1aa0cdcd55abe485b2ca344794ee6">tvm::tir::Region</a></div><div class="ttdeci">ffi::Array&lt; Range &gt; Region</div><div class="ttdef"><b>Definition:</b> var.h:176</div></div>
 <div class="ttc" id="anamespacetvm_html"><div class="ttname"><a href="namespacetvm.html">tvm</a></div><div class="ttdoc">Performance counters for profiling via the PAPI library.</div><div class="ttdef"><b>Definition:</b> analyzer.h:37</div></div>
 <div class="ttc" id="astmt_8h_html"><div class="ttname"><a href="stmt_8h.html">stmt.h</a></div><div class="ttdoc">TIR statements.</div></div>
 <div class="ttc" id="atir_2expr_8h_html"><div class="ttname"><a href="tir_2expr_8h.html">expr.h</a></div><div class="ttdoc">TIR expressions.</div></div>
diff --git a/docs/reference/api/doxygen/broadcast_8h.html b/docs/reference/api/doxygen/broadcast_8h.html
index a5651e9b48..fff2516269 100644
--- a/docs/reference/api/doxygen/broadcast_8h.html
+++ b/docs/reference/api/doxygen/broadcast_8h.html
@@ -441,8 +441,8 @@ Functions</h2></td></tr>
 <div class="line">        B-&gt;shape, [&amp;](const ::tvm::ffi::Array&lt;::tvm::tir::Var&gt;&amp; i) { return l(A, B(i)); }, name, \</div>
 <div class="line">        tag);                                                                                    \</div>
 <div class="line">  }</div>
-<div class="ttc" id="aclasstvm_1_1PrimExpr_html"><div class="ttname"><a href="classtvm_1_1PrimExpr.html">tvm::PrimExpr</a></div><div class="ttdoc">Reference to PrimExprNode.</div><div class="ttdef"><b>Definition:</b> expr.h:127</div></div>
-<div class="ttc" id="aclasstvm_1_1te_1_1Tensor_html"><div class="ttname"><a href="classtvm_1_1te_1_1Tensor.html">tvm::te::Tensor</a></div><div class="ttdoc">Tensor structure representing a possible input, or intermediate computation result.</div><div class="ttdef"><b>Definition:</b> tensor.h:101</div></div>
+<div class="ttc" id="aclasstvm_1_1PrimExpr_html"><div class="ttname"><a href="classtvm_1_1PrimExpr.html">tvm::PrimExpr</a></div><div class="ttdoc">Reference to PrimExprNode.</div><div class="ttdef"><b>Definition:</b> expr.h:124</div></div>
+<div class="ttc" id="aclasstvm_1_1te_1_1Tensor_html"><div class="ttname"><a href="classtvm_1_1te_1_1Tensor.html">tvm::te::Tensor</a></div><div class="ttdoc">Tensor structure representing a possible input, or intermediate computation result.</div><div class="ttdef"><b>Definition:</b> tensor.h:100</div></div>
 <div class="ttc" id="anamespacetvm_1_1relax_html_acffa9e980a7331f2eb89cce97f2e3575abea71ce5432e0ebfa7039b36f018e26e"><div class="ttname"><a href="namespacetvm_1_1relax.html#acffa9e980a7331f2eb89cce97f2e3575abea71ce5432e0ebfa7039b36f018e26e">tvm::relax::kBroadcast</a></div><div class="ttdeci">@ kBroadcast</div><div class="ttdef"><b>Definition:</b> op_attr_types.h:40</div></div>
 <div class="ttc" id="anamespacetvm_1_1te_html_ad98d13fdbc71aede147f419e218fc680"><div class="ttname"><a href="namespacetvm_1_1te.html#ad98d13fdbc71aede147f419e218fc680">tvm::te::compute</a></div><div class="ttdeci">Tensor compute(ffi::Array&lt; PrimExpr &gt; shape, FCompute fcompute, std::string name=&quot;tensor&quot;, std::string tag=&quot;&quot;, ffi::Map&lt; ffi::String, ffi::Any &gt; attrs={})</div><div class="ttdoc">Construct a new tensor by computing over shape, using the computat [...]
 <div class="ttc" id="anamespacetvm_1_1topi_html_a0250c4095f19ae8a22ed85bc4ce5a40d"><div class="ttname"><a href="namespacetvm_1_1topi.html#a0250c4095f19ae8a22ed85bc4ce5a40d">tvm::topi::kElementWise</a></div><div class="ttdeci">constexpr auto kElementWise</div><div class="ttdef"><b>Definition:</b> tags.h:32</div></div>
diff --git a/docs/reference/api/doxygen/broadcast_8h_source.html b/docs/reference/api/doxygen/broadcast_8h_source.html
index 1646c5dd8e..9917d4904c 100644
--- a/docs/reference/api/doxygen/broadcast_8h_source.html
+++ b/docs/reference/api/doxygen/broadcast_8h_source.html
@@ -252,7 +252,7 @@ $(function() {
 <div class="line"><a name="l00496"></a><span class="lineno">  496</span>&#160;<span class="preprocessor">#endif  </span><span class="comment">// TVM_TOPI_BROADCAST_H_</span></div>
 <div class="ttc" id="abroadcast_8h_html_a7f3943bdaba8836ffa7d14457a7d730c"><div class="ttname"><a href="broadcast_8h.html#a7f3943bdaba8836ffa7d14457a7d730c">TOPI_DEFINE_OP_OVERLOAD</a></div><div class="ttdeci">#define TOPI_DEFINE_OP_OVERLOAD(Name, OpName)</div><div class="ttdef"><b>Definition:</b> broadcast.h:94</div></div>
 <div class="ttc" id="abroadcast_8h_html_acb867d9c8250a748f59b5a47711b495a"><div class="ttname"><a href="broadcast_8h.html#acb867d9c8250a748f59b5a47711b495a">TOPI_DEFINE_BCAST_OP</a></div><div class="ttdeci">#define TOPI_DEFINE_BCAST_OP(Name, ComputeRule)</div><div class="ttdef"><b>Definition:</b> broadcast.h:72</div></div>
-<div class="ttc" id="aclasstvm_1_1te_1_1Tensor_html"><div class="ttname"><a href="classtvm_1_1te_1_1Tensor.html">tvm::te::Tensor</a></div><div class="ttdoc">Tensor structure representing a possible input, or intermediate computation result.</div><div class="ttdef"><b>Definition:</b> tensor.h:101</div></div>
+<div class="ttc" id="aclasstvm_1_1te_1_1Tensor_html"><div class="ttname"><a href="classtvm_1_1te_1_1Tensor.html">tvm::te::Tensor</a></div><div class="ttdoc">Tensor structure representing a possible input, or intermediate computation result.</div><div class="ttdef"><b>Definition:</b> tensor.h:100</div></div>
 <div class="ttc" id="aconstant__utils_8h_html"><div class="ttname"><a href="constant__utils_8h.html">constant_utils.h</a></div><div class="ttdoc">Utility functions for handling constants in TVM expressions.</div></div>
 <div class="ttc" id="adetail_2broadcast_8h_html"><div class="ttname"><a href="detail_2broadcast_8h.html">broadcast.h</a></div><div class="ttdoc">Detail broadcast.</div></div>
 <div class="ttc" id="anamespacetvm_1_1te_html_ad98d13fdbc71aede147f419e218fc680"><div class="ttname"><a href="namespacetvm_1_1te.html#ad98d13fdbc71aede147f419e218fc680">tvm::te::compute</a></div><div class="ttdeci">Tensor compute(ffi::Array&lt; PrimExpr &gt; shape, FCompute fcompute, std::string name=&quot;tensor&quot;, std::string tag=&quot;&quot;, ffi::Map&lt; ffi::String, ffi::Any &gt; attrs={})</div><div class="ttdoc">Construct a new tensor by computing over shape, using the computat [...]
diff --git a/docs/reference/api/doxygen/buffer_8h_source.html b/docs/reference/api/doxygen/buffer_8h_source.html
index 4d41b07bee..f338011e22 100644
--- a/docs/reference/api/doxygen/buffer_8h_source.html
+++ b/docs/reference/api/doxygen/buffer_8h_source.html
@@ -163,81 +163,77 @@ $(function() {
 <div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160; </div>
 <div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1BufferNode.html#a96e275d64090dc31c9e5cac913d5cfb3">  143</a></span>&#160;  ffi::Array&lt;PrimExpr&gt; <a class="code" href="classtvm_1_1tir_1_1BufferNode.html#a96e275d64090dc31c9e5cac913d5cfb3">ElemOffset</a>(ffi::Array&lt;PrimExpr&gt; index) <span class="keyword">const</span>;</div>
 <div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160; </div>
-<div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1BufferNode.html#a10305e404bd42b5b46ddb1944ce2c231">  145</a></span>&#160;  <span class="keyword">static</span> constexpr <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classtvm_1_1tir_1_1BufferNode.html#a10305e404bd42b5b46ddb1944ce2c231">_type_key</a> = <span class="stringliteral">&quot;tir.Buffer&quot;</span>;</div>
-<div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1BufferNode.html#aa2ca39cf4a1e227eca78e6084587a36d">  146</a></span>&#160;  <span class="keyword">static</span> constexpr TVMFFISEqHashKind <a class="code" href="classtvm_1_1tir_1_1BufferNode.html#aa2ca39cf4a1e227eca78e6084587a36d">_type_s_eq_hash_kind</a> = kTVMFFISEqHashKindTreeNode;</div>
-<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160; </div>
-<div class="line"><a name="l00148"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1BufferNode.html#a9c4a74fd95cc9cd80f87b3f13bcdb8b3">  148</a></span>&#160;  <a class="code" href="classtvm_1_1tir_1_1BufferNode.html#a9c4a74fd95cc9cd80f87b3f13bcdb8b3">TVM_DECLARE_FINAL_OBJECT_INFO</a>(<a class="code" href="classtvm_1_1tir_1_1BufferNode.html">BufferNode</a>, Object);</div>
-<div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1BufferNode.html#ab024a51cd27286a2b1300012736f81d3">  149</a></span>&#160;  <a class="code" href="classtvm_1_1tir_1_1BufferNode.html#ab024a51cd27286a2b1300012736f81d3">TVM_OBJECT_ENABLE_SCRIPT_PRINTER</a>();</div>
-<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;};</div>
-<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160; </div>
-<div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1Buffer.html">  157</a></span>&#160;<span class="keyword">class </span><a class="code" href="classtvm_1_1tir_1_1Buffer.html">Buffer</a> : <span class="keyword">public</span> ObjectRef {</div>
-<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160; <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;  <span class="comment">// User can specify data_alignment and offset_factor to be 0</span></div>
-<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;  <span class="comment">// A default value will be picked.</span></div>
-<div class="line"><a name="l00161"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1Buffer.html#a350170e88bbbe5834fbafd8440912f76">  161</a></span>&#160;  TVM_DLL <a class="code" href="classtvm_1_1tir_1_1Buffer.html#a350170e88bbbe5834fbafd8440912f76">Buffer</a>(<a class="code" href="classtvm_1_1tir_1_1Var.html">Var</a> data, <a class="code" href="classtvm_1_1runtime_1_1DataType.html">DataType</a> dtype, ffi::Array&lt;PrimExpr&gt; <a class="code" href="namespacetvm_1_1top [...]
-<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;                 <a class="code" href="classtvm_1_1PrimExpr.html">PrimExpr</a> elem_offset, ffi::String name, <span class="keywordtype">int</span> data_alignment, <span class="keywordtype">int</span> offset_factor,</div>
-<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;                 <a class="code" href="namespacetvm_1_1tir.html#a9ac05a14db42ca73da1d3945e7ce2fd1">BufferType</a> buffer_type, ffi::Array&lt;IntImm&gt; <a class="code" href="namespacetvm_1_1tir_1_1attr.html#acf23614bc95ff92e0aa41a519eec08e4">axis_separators</a> = {},</div>
-<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;                 <a class="code" href="classtvm_1_1Span.html">Span</a> span = <a class="code" href="classtvm_1_1Span.html">Span</a>());</div>
-<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160; </div>
-<div class="line"><a name="l00171"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1Buffer.html#a65a2f6105673663048a9a9f8dd1a6787">  171</a></span>&#160;  TVM_DLL <a class="code" href="classtvm_1_1tir_1_1Buffer.html">Buffer</a> <a class="code" href="classtvm_1_1tir_1_1Buffer.html#a65a2f6105673663048a9a9f8dd1a6787">MakeStrideView</a>() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00180"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1Buffer.html#ab2507ebd8ea3128fad85807db3c9161f">  180</a></span>&#160;  TVM_DLL <a class="code" href="classtvm_1_1tir_1_1Buffer.html">Buffer</a> <a class="code" href="classtvm_1_1tir_1_1Buffer.html#ab2507ebd8ea3128fad85807db3c9161f">MakeSlice</a>(ffi::Array&lt;PrimExpr&gt; begins, ffi::Array&lt;PrimExpr&gt; extents) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00189"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1Buffer.html#a8ec878af1571252c236a67716c89bc11">  189</a></span>&#160;  TVM_DLL <a class="code" href="classtvm_1_1PrimExpr.html">PrimExpr</a> <a class="code" href="classtvm_1_1tir_1_1Buffer.html#a8ec878af1571252c236a67716c89bc11">access_ptr</a>(<span class="keywordtype">int</span> access_mask, <a class="code" href="classtvm_1_1runtime_1_1DataType.html">DataType</a> ptr_type = <a class="cod [...]
-<div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;                              <span class="keywordtype">int</span> content_lanes = 1, <a class="code" href="classtvm_1_1PrimExpr.html">PrimExpr</a> offset = <a class="code" href="classtvm_1_1IntImm.html">IntImm</a>(<a class="code" href="classtvm_1_1runtime_1_1DataType.html#ab45f13dd70d982d9f977c79b6f7fac98">DataType::Int</a>(32), 0),</div>
-<div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;                              ffi::Optional&lt;PrimExpr&gt; input_extent = std::nullopt) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00199"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1Buffer.html#a2bd8ad60bbd6ca672034232ec49f695c">  199</a></span>&#160;  TVM_DLL <a class="code" href="classtvm_1_1PrimExpr.html">PrimExpr</a> <a class="code" href="classtvm_1_1tir_1_1Buffer.html#a2bd8ad60bbd6ca672034232ec49f695c">vload</a>(ffi::Array&lt;PrimExpr&gt; begin, <a class="code" href="classtvm_1_1runtime_1_1DataType.html">DataType</a> dtype,</div>
-<div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;                         ffi::Optional&lt;PrimExpr&gt; predicate = std::nullopt) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00208"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1Buffer.html#ad7ddfc15cf300fdf326624bee23e309d">  208</a></span>&#160;  TVM_DLL <a class="code" href="classtvm_1_1tir_1_1Stmt.html">Stmt</a> <a class="code" href="classtvm_1_1tir_1_1Buffer.html#ad7ddfc15cf300fdf326624bee23e309d">vstore</a>(ffi::Array&lt;PrimExpr&gt; begin, <a class="code" href="classtvm_1_1PrimExpr.html">PrimExpr</a> value,</div>
-<div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;                      ffi::Optional&lt;PrimExpr&gt; predicate = std::nullopt) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160; </div>
-<div class="line"><a name="l00214"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1Buffer.html#af8019f3bee7e534132d94c525c12c67b">  214</a></span>&#160;  <a class="code" href="classtvm_1_1tir_1_1Buffer.html">Buffer</a> <a class="code" href="classtvm_1_1tir_1_1Buffer.html#af8019f3bee7e534132d94c525c12c67b">GetFlattenedBuffer</a>() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160; </div>
-<div class="line"><a name="l00222"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1Buffer.html#a7fa08585fc787a950c7ae53ac195e38c">  222</a></span>&#160;  ffi::Array&lt;PrimExpr&gt; <a class="code" href="classtvm_1_1tir_1_1Buffer.html#a7fa08585fc787a950c7ae53ac195e38c">OffsetOf</a>(ffi::Array&lt;PrimExpr&gt; index) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160; </div>
-<div class="line"><a name="l00227"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1Buffer.html#a205bcd8281a0f3687322e156cca02bd3">  227</a></span>&#160;  TVM_DLL ffi::String <a class="code" href="classtvm_1_1tir_1_1Buffer.html#a205bcd8281a0f3687322e156cca02bd3">scope</a>() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160; </div>
-<div class="line"><a name="l00229"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1Buffer.html#ad90510e027bb3c151169823b2f7baff6">  229</a></span>&#160;  <a class="code" href="classtvm_1_1tir_1_1Buffer.html#ad90510e027bb3c151169823b2f7baff6">TVM_DEFINE_OBJECT_REF_METHODS</a>(<a class="code" href="classtvm_1_1tir_1_1Buffer.html">Buffer</a>, ObjectRef, <a class="code" href="classtvm_1_1tir_1_1BufferNode.html">BufferNode</a>);</div>
-<div class="line"><a name="l00230"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1Buffer.html#a558a55dfde5413638526c6575b56aaaf">  230</a></span>&#160;  <a class="code" href="classtvm_1_1tir_1_1Buffer.html#a558a55dfde5413638526c6575b56aaaf">TVM_DEFINE_OBJECT_REF_COW_METHOD</a>(<a class="code" href="classtvm_1_1tir_1_1BufferNode.html">BufferNode</a>);</div>
-<div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;};</div>
-<div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160; </div>
-<div class="line"><a name="l00244"></a><span class="lineno"><a class="line" href="namespacetvm_1_1tir.html#ae79e5c24dfb22cc60b4da7f2d37d6e04">  244</a></span>&#160;TVM_DLL <a class="code" href="classtvm_1_1tir_1_1Buffer.html">Buffer</a> <a class="code" href="namespacetvm_1_1tir.html#ae79e5c24dfb22cc60b4da7f2d37d6e04">decl_buffer</a>(ffi::Array&lt;PrimExpr&gt; <a class="code" href="namespacetvm_1_1topi.html#af30c02f3a3f37c7963b3af60fb9c72a1">shape</a>, <a class="code" href="classtvm_1_1ru [...]
-<div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;                           ffi::String name = <span class="stringliteral">&quot;buffer&quot;</span>, ffi::String storage_scope = <span class="stringliteral">&quot;&quot;</span>,</div>
-<div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;                           ffi::Optional&lt;ffi::Array&lt;IntImm&gt;&gt; <a class="code" href="namespacetvm_1_1tir_1_1attr.html#acf23614bc95ff92e0aa41a519eec08e4">axis_separators</a> = std::nullopt,</div>
-<div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;                           <a class="code" href="classtvm_1_1Span.html">Span</a> span = <a class="code" href="classtvm_1_1Span.html">Span</a>());</div>
-<div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160; </div>
-<div class="line"><a name="l00261"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1DataProducerNode.html">  261</a></span>&#160;<span class="keyword">class </span><a class="code" href="classtvm_1_1tir_1_1DataProducerNode.html">DataProducerNode</a> : <span class="keyword">public</span> <a class="code" href="classtvm_1_1PrimExprConvertibleNode.html">PrimExprConvertibleNode</a> {</div>
-<div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160; <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00264"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1DataProducerNode.html#aeb887c35d09af934251932b0120f9dfa">  264</a></span>&#160;  <span class="keyword">virtual</span> <a class="code" href="classtvm_1_1tir_1_1DataProducerNode.html#aeb887c35d09af934251932b0120f9dfa">~DataProducerNode</a>() {}</div>
-<div class="line"><a name="l00269"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1DataProducerNode.html#a6dad98302fcd3ee1523fb6e9a3b0c783">  269</a></span>&#160;  <span class="keyword">virtual</span> ffi::Array&lt;PrimExpr&gt; <a class="code" href="classtvm_1_1tir_1_1DataProducerNode.html#a6dad98302fcd3ee1523fb6e9a3b0c783">GetShape</a>() <span class="keyword">const</span> = 0;</div>
-<div class="line"><a name="l00274"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1DataProducerNode.html#a2cfae87e1a95ac4a95093d4485770d62">  274</a></span>&#160;  <span class="keyword">virtual</span> <a class="code" href="classtvm_1_1runtime_1_1DataType.html">DataType</a> <a class="code" href="classtvm_1_1tir_1_1DataProducerNode.html#a2cfae87e1a95ac4a95093d4485770d62">GetDataType</a>() <span class="keyword">const</span> = 0;</div>
-<div class="line"><a name="l00279"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1DataProducerNode.html#a03002bfbc65da973a56cdc0fadd998bf">  279</a></span>&#160;  <span class="keyword">virtual</span> ffi::String <a class="code" href="classtvm_1_1tir_1_1DataProducerNode.html#a03002bfbc65da973a56cdc0fadd998bf">GetNameHint</a>() <span class="keyword">const</span> = 0;</div>
-<div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160; </div>
-<div class="line"><a name="l00281"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1DataProducerNode.html#a217c304881c81d4c87df7110e1b1e787">  281</a></span>&#160;  <span class="keyword">static</span> constexpr <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classtvm_1_1tir_1_1DataProducerNode.html#a217c304881c81d4c87df7110e1b1e787">_type_key</a> = <span class="stringliteral">&quot;tir.DataProducer&quot;</span>;</div>
-<div class="line"><a name="l00282"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1DataProducerNode.html#aea51894cdbb3f79121aef5d33d892025">  282</a></span>&#160;  <a class="code" href="classtvm_1_1tir_1_1DataProducerNode.html#aea51894cdbb3f79121aef5d33d892025">TVM_DECLARE_BASE_OBJECT_INFO</a>(<a class="code" href="classtvm_1_1tir_1_1DataProducerNode.html">DataProducerNode</a>, <a class="code" href="classtvm_1_1PrimExprConvertibleNode.html">PrimExprConvertibleNode</a>);</div>
-<div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;};</div>
-<div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160; </div>
-<div class="line"><a name="l00289"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1DataProducer.html">  289</a></span>&#160;<span class="keyword">class </span><a class="code" href="classtvm_1_1tir_1_1DataProducer.html">DataProducer</a> : <span class="keyword">public</span> <a class="code" href="classtvm_1_1PrimExprConvertible.html">PrimExprConvertible</a> {</div>
-<div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160; <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00291"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1DataProducer.html#a424efdef013d287ddb5d87e5c842bcff">  291</a></span>&#160;  <a class="code" href="classtvm_1_1tir_1_1DataProducer.html#a424efdef013d287ddb5d87e5c842bcff">TVM_DEFINE_OBJECT_REF_METHODS</a>(<a class="code" href="classtvm_1_1tir_1_1DataProducer.html">DataProducer</a>, <a class="code" href="classtvm_1_1PrimExprConvertible.html">PrimExprConvertible</a>, <a class="code" href="c [...]
-<div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;};</div>
-<div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160; </div>
-<div class="line"><a name="l00307"></a><span class="lineno"><a class="line" href="namespacetvm_1_1tir.html#ada2b82fa6b780c3d3396ec300ddc1039">  307</a></span>&#160;TVM_DLL <a class="code" href="classtvm_1_1tir_1_1Buffer.html">tir::Buffer</a> <a class="code" href="namespacetvm_1_1tir.html#ada2b82fa6b780c3d3396ec300ddc1039">BufferWithOffsetAlignment</a>(ffi::Array&lt;PrimExpr&gt; <a class="code" href="namespacetvm_1_1topi.html#af30c02f3a3f37c7963b3af60fb9c72a1">shape</a>, <a class="code" h [...]
-<div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;                                              std::string name, <span class="keywordtype">int</span> data_alignment,</div>
-<div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160;                                              <span class="keywordtype">int</span> offset_factor, <span class="keywordtype">bool</span> compact,</div>
-<div class="line"><a name="l00310"></a><span class="lineno">  310</span>&#160;                                              std::string memory_scope = <span class="stringliteral">&quot;&quot;</span>);</div>
-<div class="line"><a name="l00311"></a><span class="lineno">  311</span>&#160;}  <span class="comment">// namespace tir</span></div>
-<div class="line"><a name="l00312"></a><span class="lineno">  312</span>&#160;}  <span class="comment">// namespace tvm</span></div>
-<div class="line"><a name="l00313"></a><span class="lineno">  313</span>&#160;<span class="preprocessor">#endif  </span><span class="comment">// TVM_TIR_BUFFER_H_</span></div>
-<div class="ttc" id="aclasstvm_1_1IntImm_html"><div class="ttname"><a href="classtvm_1_1IntImm.html">tvm::IntImm</a></div><div class="ttdoc">Managed reference class to IntImmNode.</div><div class="ttdef"><b>Definition:</b> expr.h:518</div></div>
-<div class="ttc" id="aclasstvm_1_1PrimExprConvertibleNode_html"><div class="ttname"><a href="classtvm_1_1PrimExprConvertibleNode.html">tvm::PrimExprConvertibleNode</a></div><div class="ttdoc">Base class for other IR constructs that can be converted to PrimExpr. This is useful for the FFI to c...</div><div class="ttdef"><b>Definition:</b> expr.h:157</div></div>
-<div class="ttc" id="aclasstvm_1_1PrimExprConvertible_html"><div class="ttname"><a href="classtvm_1_1PrimExprConvertible.html">tvm::PrimExprConvertible</a></div><div class="ttdoc">Managed reference to PrimExprConvertibleNode.</div><div class="ttdef"><b>Definition:</b> expr.h:170</div></div>
-<div class="ttc" id="aclasstvm_1_1PrimExpr_html"><div class="ttname"><a href="classtvm_1_1PrimExpr.html">tvm::PrimExpr</a></div><div class="ttdoc">Reference to PrimExprNode.</div><div class="ttdef"><b>Definition:</b> expr.h:127</div></div>
-<div class="ttc" id="aclasstvm_1_1Span_html"><div class="ttname"><a href="classtvm_1_1Span.html">tvm::Span</a></div><div class="ttdef"><b>Definition:</b> source_map.h:113</div></div>
+<div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1BufferNode.html#aa2ca39cf4a1e227eca78e6084587a36d">  145</a></span>&#160;  <span class="keyword">static</span> constexpr TVMFFISEqHashKind <a class="code" href="classtvm_1_1tir_1_1BufferNode.html#aa2ca39cf4a1e227eca78e6084587a36d">_type_s_eq_hash_kind</a> = kTVMFFISEqHashKindTreeNode;</div>
+<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160; </div>
+<div class="line"><a name="l00147"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1BufferNode.html#ae8a63237f6be04fa9d29c5d8ba6f03c9">  147</a></span>&#160;  <a class="code" href="classtvm_1_1tir_1_1BufferNode.html#ae8a63237f6be04fa9d29c5d8ba6f03c9">TVM_FFI_DECLARE_OBJECT_INFO_FINAL</a>(<span class="stringliteral">&quot;tir.Buffer&quot;</span>, <a class="code" href="classtvm_1_1tir_1_1BufferNode.html">BufferNode</a>, Object);</div>
+<div class="line"><a name="l00148"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1BufferNode.html#ab024a51cd27286a2b1300012736f81d3">  148</a></span>&#160;  <a class="code" href="classtvm_1_1tir_1_1BufferNode.html#ab024a51cd27286a2b1300012736f81d3">TVM_OBJECT_ENABLE_SCRIPT_PRINTER</a>();</div>
+<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;};</div>
+<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160; </div>
+<div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1Buffer.html">  156</a></span>&#160;<span class="keyword">class </span><a class="code" href="classtvm_1_1tir_1_1Buffer.html">Buffer</a> : <span class="keyword">public</span> ObjectRef {</div>
+<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160; <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;  <span class="comment">// User can specify data_alignment and offset_factor to be 0</span></div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;  <span class="comment">// A default value will be picked.</span></div>
+<div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1Buffer.html#a350170e88bbbe5834fbafd8440912f76">  160</a></span>&#160;  TVM_DLL <a class="code" href="classtvm_1_1tir_1_1Buffer.html#a350170e88bbbe5834fbafd8440912f76">Buffer</a>(<a class="code" href="classtvm_1_1tir_1_1Var.html">Var</a> data, <a class="code" href="classtvm_1_1runtime_1_1DataType.html">DataType</a> dtype, ffi::Array&lt;PrimExpr&gt; <a class="code" href="namespacetvm_1_1top [...]
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;                 <a class="code" href="classtvm_1_1PrimExpr.html">PrimExpr</a> elem_offset, ffi::String name, <span class="keywordtype">int</span> data_alignment, <span class="keywordtype">int</span> offset_factor,</div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;                 <a class="code" href="namespacetvm_1_1tir.html#a9ac05a14db42ca73da1d3945e7ce2fd1">BufferType</a> buffer_type, ffi::Array&lt;IntImm&gt; <a class="code" href="namespacetvm_1_1tir_1_1attr.html#acf23614bc95ff92e0aa41a519eec08e4">axis_separators</a> = {},</div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;                 <a class="code" href="classtvm_1_1Span.html">Span</a> span = <a class="code" href="classtvm_1_1Span.html">Span</a>());</div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160; </div>
+<div class="line"><a name="l00170"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1Buffer.html#a65a2f6105673663048a9a9f8dd1a6787">  170</a></span>&#160;  TVM_DLL <a class="code" href="classtvm_1_1tir_1_1Buffer.html">Buffer</a> <a class="code" href="classtvm_1_1tir_1_1Buffer.html#a65a2f6105673663048a9a9f8dd1a6787">MakeStrideView</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00179"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1Buffer.html#ab2507ebd8ea3128fad85807db3c9161f">  179</a></span>&#160;  TVM_DLL <a class="code" href="classtvm_1_1tir_1_1Buffer.html">Buffer</a> <a class="code" href="classtvm_1_1tir_1_1Buffer.html#ab2507ebd8ea3128fad85807db3c9161f">MakeSlice</a>(ffi::Array&lt;PrimExpr&gt; begins, ffi::Array&lt;PrimExpr&gt; extents) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00188"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1Buffer.html#a8ec878af1571252c236a67716c89bc11">  188</a></span>&#160;  TVM_DLL <a class="code" href="classtvm_1_1PrimExpr.html">PrimExpr</a> <a class="code" href="classtvm_1_1tir_1_1Buffer.html#a8ec878af1571252c236a67716c89bc11">access_ptr</a>(<span class="keywordtype">int</span> access_mask, <a class="code" href="classtvm_1_1runtime_1_1DataType.html">DataType</a> ptr_type = <a class="cod [...]
+<div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;                              <span class="keywordtype">int</span> content_lanes = 1, <a class="code" href="classtvm_1_1PrimExpr.html">PrimExpr</a> offset = <a class="code" href="classtvm_1_1IntImm.html">IntImm</a>(<a class="code" href="classtvm_1_1runtime_1_1DataType.html#ab45f13dd70d982d9f977c79b6f7fac98">DataType::Int</a>(32), 0),</div>
+<div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;                              ffi::Optional&lt;PrimExpr&gt; input_extent = std::nullopt) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00198"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1Buffer.html#a2bd8ad60bbd6ca672034232ec49f695c">  198</a></span>&#160;  TVM_DLL <a class="code" href="classtvm_1_1PrimExpr.html">PrimExpr</a> <a class="code" href="classtvm_1_1tir_1_1Buffer.html#a2bd8ad60bbd6ca672034232ec49f695c">vload</a>(ffi::Array&lt;PrimExpr&gt; begin, <a class="code" href="classtvm_1_1runtime_1_1DataType.html">DataType</a> dtype,</div>
+<div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;                         ffi::Optional&lt;PrimExpr&gt; predicate = std::nullopt) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00207"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1Buffer.html#ad7ddfc15cf300fdf326624bee23e309d">  207</a></span>&#160;  TVM_DLL <a class="code" href="classtvm_1_1tir_1_1Stmt.html">Stmt</a> <a class="code" href="classtvm_1_1tir_1_1Buffer.html#ad7ddfc15cf300fdf326624bee23e309d">vstore</a>(ffi::Array&lt;PrimExpr&gt; begin, <a class="code" href="classtvm_1_1PrimExpr.html">PrimExpr</a> value,</div>
+<div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160;                      ffi::Optional&lt;PrimExpr&gt; predicate = std::nullopt) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160; </div>
+<div class="line"><a name="l00213"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1Buffer.html#af8019f3bee7e534132d94c525c12c67b">  213</a></span>&#160;  <a class="code" href="classtvm_1_1tir_1_1Buffer.html">Buffer</a> <a class="code" href="classtvm_1_1tir_1_1Buffer.html#af8019f3bee7e534132d94c525c12c67b">GetFlattenedBuffer</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160; </div>
+<div class="line"><a name="l00221"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1Buffer.html#a7fa08585fc787a950c7ae53ac195e38c">  221</a></span>&#160;  ffi::Array&lt;PrimExpr&gt; <a class="code" href="classtvm_1_1tir_1_1Buffer.html#a7fa08585fc787a950c7ae53ac195e38c">OffsetOf</a>(ffi::Array&lt;PrimExpr&gt; index) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160; </div>
+<div class="line"><a name="l00226"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1Buffer.html#a205bcd8281a0f3687322e156cca02bd3">  226</a></span>&#160;  TVM_DLL ffi::String <a class="code" href="classtvm_1_1tir_1_1Buffer.html#a205bcd8281a0f3687322e156cca02bd3">scope</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160; </div>
+<div class="line"><a name="l00228"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1Buffer.html#ae3ff3a560dc8d3dfd785454476d08aec">  228</a></span>&#160;  <a class="code" href="classtvm_1_1tir_1_1Buffer.html#ae3ff3a560dc8d3dfd785454476d08aec">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE</a>(<a class="code" href="classtvm_1_1tir_1_1Buffer.html">Buffer</a>, ObjectRef, <a class="code" href="classtvm_1_1tir_1_1BufferNode.html">BufferNode</a>);</div>
+<div class="line"><a name="l00229"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1Buffer.html#a558a55dfde5413638526c6575b56aaaf">  229</a></span>&#160;  <a class="code" href="classtvm_1_1tir_1_1Buffer.html#a558a55dfde5413638526c6575b56aaaf">TVM_DEFINE_OBJECT_REF_COW_METHOD</a>(<a class="code" href="classtvm_1_1tir_1_1BufferNode.html">BufferNode</a>);</div>
+<div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160;};</div>
+<div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160; </div>
+<div class="line"><a name="l00243"></a><span class="lineno"><a class="line" href="namespacetvm_1_1tir.html#ae79e5c24dfb22cc60b4da7f2d37d6e04">  243</a></span>&#160;TVM_DLL <a class="code" href="classtvm_1_1tir_1_1Buffer.html">Buffer</a> <a class="code" href="namespacetvm_1_1tir.html#ae79e5c24dfb22cc60b4da7f2d37d6e04">decl_buffer</a>(ffi::Array&lt;PrimExpr&gt; <a class="code" href="namespacetvm_1_1topi.html#af30c02f3a3f37c7963b3af60fb9c72a1">shape</a>, <a class="code" href="classtvm_1_1ru [...]
+<div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;                           ffi::String name = <span class="stringliteral">&quot;buffer&quot;</span>, ffi::String storage_scope = <span class="stringliteral">&quot;&quot;</span>,</div>
+<div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;                           ffi::Optional&lt;ffi::Array&lt;IntImm&gt;&gt; <a class="code" href="namespacetvm_1_1tir_1_1attr.html#acf23614bc95ff92e0aa41a519eec08e4">axis_separators</a> = std::nullopt,</div>
+<div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;                           <a class="code" href="classtvm_1_1Span.html">Span</a> span = <a class="code" href="classtvm_1_1Span.html">Span</a>());</div>
+<div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160; </div>
+<div class="line"><a name="l00260"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1DataProducerNode.html">  260</a></span>&#160;<span class="keyword">class </span><a class="code" href="classtvm_1_1tir_1_1DataProducerNode.html">DataProducerNode</a> : <span class="keyword">public</span> <a class="code" href="classtvm_1_1PrimExprConvertibleNode.html">PrimExprConvertibleNode</a> {</div>
+<div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160; <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00263"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1DataProducerNode.html#aeb887c35d09af934251932b0120f9dfa">  263</a></span>&#160;  <span class="keyword">virtual</span> <a class="code" href="classtvm_1_1tir_1_1DataProducerNode.html#aeb887c35d09af934251932b0120f9dfa">~DataProducerNode</a>() {}</div>
+<div class="line"><a name="l00268"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1DataProducerNode.html#a6dad98302fcd3ee1523fb6e9a3b0c783">  268</a></span>&#160;  <span class="keyword">virtual</span> ffi::Array&lt;PrimExpr&gt; <a class="code" href="classtvm_1_1tir_1_1DataProducerNode.html#a6dad98302fcd3ee1523fb6e9a3b0c783">GetShape</a>() <span class="keyword">const</span> = 0;</div>
+<div class="line"><a name="l00273"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1DataProducerNode.html#a2cfae87e1a95ac4a95093d4485770d62">  273</a></span>&#160;  <span class="keyword">virtual</span> <a class="code" href="classtvm_1_1runtime_1_1DataType.html">DataType</a> <a class="code" href="classtvm_1_1tir_1_1DataProducerNode.html#a2cfae87e1a95ac4a95093d4485770d62">GetDataType</a>() <span class="keyword">const</span> = 0;</div>
+<div class="line"><a name="l00278"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1DataProducerNode.html#a03002bfbc65da973a56cdc0fadd998bf">  278</a></span>&#160;  <span class="keyword">virtual</span> ffi::String <a class="code" href="classtvm_1_1tir_1_1DataProducerNode.html#a03002bfbc65da973a56cdc0fadd998bf">GetNameHint</a>() <span class="keyword">const</span> = 0;</div>
+<div class="line"><a name="l00279"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1DataProducerNode.html#a629c21d779be75da2022c7ec625ddcbf">  279</a></span>&#160;  <a class="code" href="classtvm_1_1tir_1_1DataProducerNode.html#a629c21d779be75da2022c7ec625ddcbf">TVM_FFI_DECLARE_OBJECT_INFO</a>(<span class="stringliteral">&quot;tir.DataProducer&quot;</span>, <a class="code" href="classtvm_1_1tir_1_1DataProducerNode.html">DataProducerNode</a>, <a class="code" href="classtv [...]
+<div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;};</div>
+<div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160; </div>
+<div class="line"><a name="l00286"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1DataProducer.html">  286</a></span>&#160;<span class="keyword">class </span><a class="code" href="classtvm_1_1tir_1_1DataProducer.html">DataProducer</a> : <span class="keyword">public</span> <a class="code" href="classtvm_1_1PrimExprConvertible.html">PrimExprConvertible</a> {</div>
+<div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160; <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00288"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1DataProducer.html#a6e5c814921c5d7515d476d8a2320fe15">  288</a></span>&#160;  <a class="code" href="classtvm_1_1tir_1_1DataProducer.html#a6e5c814921c5d7515d476d8a2320fe15">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE</a>(<a class="code" href="classtvm_1_1tir_1_1DataProducer.html">DataProducer</a>, <a class="code" href="classtvm_1_1PrimExprConvertible.html">PrimExprConvertible</a>, <a class=" [...]
+<div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;};</div>
+<div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160; </div>
+<div class="line"><a name="l00304"></a><span class="lineno"><a class="line" href="namespacetvm_1_1tir.html#ada2b82fa6b780c3d3396ec300ddc1039">  304</a></span>&#160;TVM_DLL <a class="code" href="classtvm_1_1tir_1_1Buffer.html">tir::Buffer</a> <a class="code" href="namespacetvm_1_1tir.html#ada2b82fa6b780c3d3396ec300ddc1039">BufferWithOffsetAlignment</a>(ffi::Array&lt;PrimExpr&gt; <a class="code" href="namespacetvm_1_1topi.html#af30c02f3a3f37c7963b3af60fb9c72a1">shape</a>, <a class="code" h [...]
+<div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160;                                              std::string name, <span class="keywordtype">int</span> data_alignment,</div>
+<div class="line"><a name="l00306"></a><span class="lineno">  306</span>&#160;                                              <span class="keywordtype">int</span> offset_factor, <span class="keywordtype">bool</span> compact,</div>
+<div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;                                              std::string memory_scope = <span class="stringliteral">&quot;&quot;</span>);</div>
+<div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;}  <span class="comment">// namespace tir</span></div>
+<div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160;}  <span class="comment">// namespace tvm</span></div>
+<div class="line"><a name="l00310"></a><span class="lineno">  310</span>&#160;<span class="preprocessor">#endif  </span><span class="comment">// TVM_TIR_BUFFER_H_</span></div>
+<div class="ttc" id="aclasstvm_1_1IntImm_html"><div class="ttname"><a href="classtvm_1_1IntImm.html">tvm::IntImm</a></div><div class="ttdoc">Managed reference class to IntImmNode.</div><div class="ttdef"><b>Definition:</b> expr.h:510</div></div>
+<div class="ttc" id="aclasstvm_1_1PrimExprConvertibleNode_html"><div class="ttname"><a href="classtvm_1_1PrimExprConvertibleNode.html">tvm::PrimExprConvertibleNode</a></div><div class="ttdoc">Base class for other IR constructs that can be converted to PrimExpr. This is useful for the FFI to c...</div><div class="ttdef"><b>Definition:</b> expr.h:154</div></div>
+<div class="ttc" id="aclasstvm_1_1PrimExprConvertible_html"><div class="ttname"><a href="classtvm_1_1PrimExprConvertible.html">tvm::PrimExprConvertible</a></div><div class="ttdoc">Managed reference to PrimExprConvertibleNode.</div><div class="ttdef"><b>Definition:</b> expr.h:165</div></div>
+<div class="ttc" id="aclasstvm_1_1PrimExpr_html"><div class="ttname"><a href="classtvm_1_1PrimExpr.html">tvm::PrimExpr</a></div><div class="ttdoc">Reference to PrimExprNode.</div><div class="ttdef"><b>Definition:</b> expr.h:124</div></div>
+<div class="ttc" id="aclasstvm_1_1Span_html"><div class="ttname"><a href="classtvm_1_1Span.html">tvm::Span</a></div><div class="ttdef"><b>Definition:</b> source_map.h:111</div></div>
 <div class="ttc" id="aclasstvm_1_1runtime_1_1DataType_html"><div class="ttname"><a href="classtvm_1_1runtime_1_1DataType.html">tvm::runtime::DataType</a></div><div class="ttdoc">Runtime primitive data type.</div><div class="ttdef"><b>Definition:</b> data_type.h:47</div></div>
 <div class="ttc" id="aclasstvm_1_1runtime_1_1DataType_html_a237a714a6a16e14aa01fa4ac52426551"><div class="ttname"><a href="classtvm_1_1runtime_1_1DataType.html#a237a714a6a16e14aa01fa4ac52426551">tvm::runtime::DataType::Float</a></div><div class="ttdeci">static DataType Float(int bits, int lanes=1)</div><div class="ttdoc">Construct an float type.</div><div class="ttdef"><b>Definition:</b> data_type.h:291</div></div>
 <div class="ttc" id="aclasstvm_1_1runtime_1_1DataType_html_ab45f13dd70d982d9f977c79b6f7fac98"><div class="ttname"><a href="classtvm_1_1runtime_1_1DataType.html#ab45f13dd70d982d9f977c79b6f7fac98">tvm::runtime::DataType::Int</a></div><div class="ttdeci">static DataType Int(int bits, int lanes=1)</div><div class="ttdoc">Construct an int type.</div><div class="ttdef"><b>Definition:</b> data_type.h:274</div></div>
 <div class="ttc" id="aclasstvm_1_1runtime_1_1DataType_html_aebad9f7235dd20af649fb5c2113797b8"><div class="ttname"><a href="classtvm_1_1runtime_1_1DataType.html#aebad9f7235dd20af649fb5c2113797b8">tvm::runtime::DataType::Handle</a></div><div class="ttdeci">static DataType Handle(int bits=64, int lanes=1)</div><div class="ttdoc">Construct a handle type.</div><div class="ttdef"><b>Definition:</b> data_type.h:392</div></div>
 <div class="ttc" id="aclasstvm_1_1tir_1_1BufferNode_html"><div class="ttname"><a href="classtvm_1_1tir_1_1BufferNode.html">tvm::tir::BufferNode</a></div><div class="ttdoc">Node to represent a buffer.</div><div class="ttdef"><b>Definition:</b> buffer.h:62</div></div>
-<div class="ttc" id="aclasstvm_1_1tir_1_1BufferNode_html_a10305e404bd42b5b46ddb1944ce2c231"><div class="ttname"><a href="classtvm_1_1tir_1_1BufferNode.html#a10305e404bd42b5b46ddb1944ce2c231">tvm::tir::BufferNode::_type_key</a></div><div class="ttdeci">static constexpr const char * _type_key</div><div class="ttdef"><b>Definition:</b> buffer.h:145</div></div>
 <div class="ttc" id="aclasstvm_1_1tir_1_1BufferNode_html_a13fc164e1b65cee741b4895df6316a4a"><div class="ttname"><a href="classtvm_1_1tir_1_1BufferNode.html#a13fc164e1b65cee741b4895df6316a4a">tvm::tir::BufferNode::span</a></div><div class="ttdeci">Span span</div><div class="ttdoc">Span that points to the original source code. Reserved debug information.</div><div class="ttdef"><b>Definition:</b> buffer.h:111</div></div>
 <div class="ttc" id="aclasstvm_1_1tir_1_1BufferNode_html_a1abac917e1de0b3c43774ee94477016b"><div class="ttname"><a href="classtvm_1_1tir_1_1BufferNode.html#a1abac917e1de0b3c43774ee94477016b">tvm::tir::BufferNode::BufferNode</a></div><div class="ttdeci">BufferNode()</div><div class="ttdoc">constructor</div><div class="ttdef"><b>Definition:</b> buffer.h:113</div></div>
 <div class="ttc" id="aclasstvm_1_1tir_1_1BufferNode_html_a28e7c2e7919f09db03a7713441e10250"><div class="ttname"><a href="classtvm_1_1tir_1_1BufferNode.html#a28e7c2e7919f09db03a7713441e10250">tvm::tir::BufferNode::name</a></div><div class="ttdeci">ffi::String name</div><div class="ttdoc">optional name of the buffer</div><div class="ttdef"><b>Definition:</b> buffer.h:97</div></div>
@@ -248,15 +244,15 @@ $(function() {
 <div class="ttc" id="aclasstvm_1_1tir_1_1BufferNode_html_a92b84a76c975399a028b61e4b99ac87b"><div class="ttname"><a href="classtvm_1_1tir_1_1BufferNode.html#a92b84a76c975399a028b61e4b99ac87b">tvm::tir::BufferNode::elem_offset</a></div><div class="ttdeci">PrimExpr elem_offset</div><div class="ttdoc">The offset in terms of number of dtype elements (including lanes)</div><div class="ttdef"><b>Definition:</b> buffer.h:94</div></div>
 <div class="ttc" id="aclasstvm_1_1tir_1_1BufferNode_html_a94f5a74c08bdeb3a2ccd8f2182b1a95b"><div class="ttname"><a href="classtvm_1_1tir_1_1BufferNode.html#a94f5a74c08bdeb3a2ccd8f2182b1a95b">tvm::tir::BufferNode::shape</a></div><div class="ttdeci">ffi::Array&lt; PrimExpr &gt; shape</div><div class="ttdoc">The type of the buffer prior to flattening.</div><div class="ttdef"><b>Definition:</b> buffer.h:78</div></div>
 <div class="ttc" id="aclasstvm_1_1tir_1_1BufferNode_html_a96e275d64090dc31c9e5cac913d5cfb3"><div class="ttname"><a href="classtvm_1_1tir_1_1BufferNode.html#a96e275d64090dc31c9e5cac913d5cfb3">tvm::tir::BufferNode::ElemOffset</a></div><div class="ttdeci">ffi::Array&lt; PrimExpr &gt; ElemOffset(ffi::Array&lt; PrimExpr &gt; index) const</div><div class="ttdoc">Determine the offset in the buffer of the given index.</div></div>
-<div class="ttc" id="aclasstvm_1_1tir_1_1BufferNode_html_a9c4a74fd95cc9cd80f87b3f13bcdb8b3"><div class="ttname"><a href="classtvm_1_1tir_1_1BufferNode.html#a9c4a74fd95cc9cd80f87b3f13bcdb8b3">tvm::tir::BufferNode::TVM_DECLARE_FINAL_OBJECT_INFO</a></div><div class="ttdeci">TVM_DECLARE_FINAL_OBJECT_INFO(BufferNode, Object)</div></div>
-<div class="ttc" id="aclasstvm_1_1tir_1_1BufferNode_html_aa2ca39cf4a1e227eca78e6084587a36d"><div class="ttname"><a href="classtvm_1_1tir_1_1BufferNode.html#aa2ca39cf4a1e227eca78e6084587a36d">tvm::tir::BufferNode::_type_s_eq_hash_kind</a></div><div class="ttdeci">static constexpr TVMFFISEqHashKind _type_s_eq_hash_kind</div><div class="ttdef"><b>Definition:</b> buffer.h:146</div></div>
+<div class="ttc" id="aclasstvm_1_1tir_1_1BufferNode_html_aa2ca39cf4a1e227eca78e6084587a36d"><div class="ttname"><a href="classtvm_1_1tir_1_1BufferNode.html#aa2ca39cf4a1e227eca78e6084587a36d">tvm::tir::BufferNode::_type_s_eq_hash_kind</a></div><div class="ttdeci">static constexpr TVMFFISEqHashKind _type_s_eq_hash_kind</div><div class="ttdef"><b>Definition:</b> buffer.h:145</div></div>
 <div class="ttc" id="aclasstvm_1_1tir_1_1BufferNode_html_aa769c384d53cb8a55be99d431b251f72"><div class="ttname"><a href="classtvm_1_1tir_1_1BufferNode.html#aa769c384d53cb8a55be99d431b251f72">tvm::tir::BufferNode::strides</a></div><div class="ttdeci">ffi::Array&lt; PrimExpr &gt; strides</div><div class="ttdoc">The strides of each dimension This can be an empty array, indicating array is contiguous.</div><div class="ttdef"><b>Definition:</b> buffer.h:92</div></div>
 <div class="ttc" id="aclasstvm_1_1tir_1_1BufferNode_html_aa89852936d3a026cea1470c4c7f27488"><div class="ttname"><a href="classtvm_1_1tir_1_1BufferNode.html#aa89852936d3a026cea1470c4c7f27488">tvm::tir::BufferNode::offset_factor</a></div><div class="ttdeci">int offset_factor</div><div class="ttdoc">Factor of elem_offset field, elem_offset is guaranteed to be multiple of offset_factor.</div><div class="ttdef"><b>Definition:</b> buffer.h:104</div></div>
 <div class="ttc" id="aclasstvm_1_1tir_1_1BufferNode_html_aac30fc17abe8bde34272a854ba74b16a"><div class="ttname"><a href="classtvm_1_1tir_1_1BufferNode.html#aac30fc17abe8bde34272a854ba74b16a">tvm::tir::BufferNode::data_alignment</a></div><div class="ttdeci">int data_alignment</div><div class="ttdoc">Alignment requirement of data pointer in bytes.</div><div class="ttdef"><b>Definition:</b> buffer.h:99</div></div>
 <div class="ttc" id="aclasstvm_1_1tir_1_1BufferNode_html_ab024a51cd27286a2b1300012736f81d3"><div class="ttname"><a href="classtvm_1_1tir_1_1BufferNode.html#ab024a51cd27286a2b1300012736f81d3">tvm::tir::BufferNode::TVM_OBJECT_ENABLE_SCRIPT_PRINTER</a></div><div class="ttdeci">TVM_OBJECT_ENABLE_SCRIPT_PRINTER()</div></div>
 <div class="ttc" id="aclasstvm_1_1tir_1_1BufferNode_html_ac24a0bfa4f80776086c7eadaf98ba5b3"><div class="ttname"><a href="classtvm_1_1tir_1_1BufferNode.html#ac24a0bfa4f80776086c7eadaf98ba5b3">tvm::tir::BufferNode::DefaultIndexType</a></div><div class="ttdeci">DataType DefaultIndexType() const</div><div class="ttdef"><b>Definition:</b> buffer.h:133</div></div>
 <div class="ttc" id="aclasstvm_1_1tir_1_1BufferNode_html_acf0d9633c7c746acb419f09a687bcc77"><div class="ttname"><a href="classtvm_1_1tir_1_1BufferNode.html#acf0d9633c7c746acb419f09a687bcc77">tvm::tir::BufferNode::dtype</a></div><div class="ttdeci">DataType dtype</div><div class="ttdoc">data type in the content of the tensor</div><div class="ttdef"><b>Definition:</b> buffer.h:71</div></div>
-<div class="ttc" id="aclasstvm_1_1tir_1_1Buffer_html"><div class="ttname"><a href="classtvm_1_1tir_1_1Buffer.html">tvm::tir::Buffer</a></div><div class="ttdoc">Buffer is a symbolic n-darray structure. It is a composition of primitive symbolic types,...</div><div class="ttdef"><b>Definition:</b> buffer.h:157</div></div>
+<div class="ttc" id="aclasstvm_1_1tir_1_1BufferNode_html_ae8a63237f6be04fa9d29c5d8ba6f03c9"><div class="ttname"><a href="classtvm_1_1tir_1_1BufferNode.html#ae8a63237f6be04fa9d29c5d8ba6f03c9">tvm::tir::BufferNode::TVM_FFI_DECLARE_OBJECT_INFO_FINAL</a></div><div class="ttdeci">TVM_FFI_DECLARE_OBJECT_INFO_FINAL(&quot;tir.Buffer&quot;, BufferNode, Object)</div></div>
+<div class="ttc" id="aclasstvm_1_1tir_1_1Buffer_html"><div class="ttname"><a href="classtvm_1_1tir_1_1Buffer.html">tvm::tir::Buffer</a></div><div class="ttdoc">Buffer is a symbolic n-darray structure. It is a composition of primitive symbolic types,...</div><div class="ttdef"><b>Definition:</b> buffer.h:156</div></div>
 <div class="ttc" id="aclasstvm_1_1tir_1_1Buffer_html_a205bcd8281a0f3687322e156cca02bd3"><div class="ttname"><a href="classtvm_1_1tir_1_1Buffer.html#a205bcd8281a0f3687322e156cca02bd3">tvm::tir::Buffer::scope</a></div><div class="ttdeci">ffi::String scope() const</div><div class="ttdoc">Return the storage scope associated with this buffer.</div></div>
 <div class="ttc" id="aclasstvm_1_1tir_1_1Buffer_html_a2bd8ad60bbd6ca672034232ec49f695c"><div class="ttname"><a href="classtvm_1_1tir_1_1Buffer.html#a2bd8ad60bbd6ca672034232ec49f695c">tvm::tir::Buffer::vload</a></div><div class="ttdeci">PrimExpr vload(ffi::Array&lt; PrimExpr &gt; begin, DataType dtype, ffi::Optional&lt; PrimExpr &gt; predicate=std::nullopt) const</div><div class="ttdoc">Create an Expr that does a vector load at begin index.</div></div>
 <div class="ttc" id="aclasstvm_1_1tir_1_1Buffer_html_a350170e88bbbe5834fbafd8440912f76"><div class="ttname"><a href="classtvm_1_1tir_1_1Buffer.html#a350170e88bbbe5834fbafd8440912f76">tvm::tir::Buffer::Buffer</a></div><div class="ttdeci">Buffer(Var data, DataType dtype, ffi::Array&lt; PrimExpr &gt; shape, ffi::Array&lt; PrimExpr &gt; strides, PrimExpr elem_offset, ffi::String name, int data_alignment, int offset_factor, BufferType buffer_type, ffi::Array&lt; IntImm &gt; axis_separators={} [...]
@@ -266,22 +262,21 @@ $(function() {
 <div class="ttc" id="aclasstvm_1_1tir_1_1Buffer_html_a8ec878af1571252c236a67716c89bc11"><div class="ttname"><a href="classtvm_1_1tir_1_1Buffer.html#a8ec878af1571252c236a67716c89bc11">tvm::tir::Buffer::access_ptr</a></div><div class="ttdeci">PrimExpr access_ptr(int access_mask, DataType ptr_type=DataType::Handle(), int content_lanes=1, PrimExpr offset=IntImm(DataType::Int(32), 0), ffi::Optional&lt; PrimExpr &gt; input_extent=std::nullopt) const</div><div class="ttdoc">Get access ptr to th [...]
 <div class="ttc" id="aclasstvm_1_1tir_1_1Buffer_html_ab2507ebd8ea3128fad85807db3c9161f"><div class="ttname"><a href="classtvm_1_1tir_1_1Buffer.html#ab2507ebd8ea3128fad85807db3c9161f">tvm::tir::Buffer::MakeSlice</a></div><div class="ttdeci">Buffer MakeSlice(ffi::Array&lt; PrimExpr &gt; begins, ffi::Array&lt; PrimExpr &gt; extents) const</div><div class="ttdoc">Make a new symbolic buffer representing a slice of the buffer.</div></div>
 <div class="ttc" id="aclasstvm_1_1tir_1_1Buffer_html_ad7ddfc15cf300fdf326624bee23e309d"><div class="ttname"><a href="classtvm_1_1tir_1_1Buffer.html#ad7ddfc15cf300fdf326624bee23e309d">tvm::tir::Buffer::vstore</a></div><div class="ttdeci">Stmt vstore(ffi::Array&lt; PrimExpr &gt; begin, PrimExpr value, ffi::Optional&lt; PrimExpr &gt; predicate=std::nullopt) const</div><div class="ttdoc">Create a Stmt that does a vector store at begin index.</div></div>
-<div class="ttc" id="aclasstvm_1_1tir_1_1Buffer_html_ad90510e027bb3c151169823b2f7baff6"><div class="ttname"><a href="classtvm_1_1tir_1_1Buffer.html#ad90510e027bb3c151169823b2f7baff6">tvm::tir::Buffer::TVM_DEFINE_OBJECT_REF_METHODS</a></div><div class="ttdeci">TVM_DEFINE_OBJECT_REF_METHODS(Buffer, ObjectRef, BufferNode)</div></div>
+<div class="ttc" id="aclasstvm_1_1tir_1_1Buffer_html_ae3ff3a560dc8d3dfd785454476d08aec"><div class="ttname"><a href="classtvm_1_1tir_1_1Buffer.html#ae3ff3a560dc8d3dfd785454476d08aec">tvm::tir::Buffer::TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE</a></div><div class="ttdeci">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE(Buffer, ObjectRef, BufferNode)</div></div>
 <div class="ttc" id="aclasstvm_1_1tir_1_1Buffer_html_af8019f3bee7e534132d94c525c12c67b"><div class="ttname"><a href="classtvm_1_1tir_1_1Buffer.html#af8019f3bee7e534132d94c525c12c67b">tvm::tir::Buffer::GetFlattenedBuffer</a></div><div class="ttdeci">Buffer GetFlattenedBuffer() const</div><div class="ttdoc">Get a flattened version of the buffer.</div></div>
-<div class="ttc" id="aclasstvm_1_1tir_1_1DataProducerNode_html"><div class="ttname"><a href="classtvm_1_1tir_1_1DataProducerNode.html">tvm::tir::DataProducerNode</a></div><div class="ttdoc">Base node for data producers.</div><div class="ttdef"><b>Definition:</b> buffer.h:261</div></div>
+<div class="ttc" id="aclasstvm_1_1tir_1_1DataProducerNode_html"><div class="ttname"><a href="classtvm_1_1tir_1_1DataProducerNode.html">tvm::tir::DataProducerNode</a></div><div class="ttdoc">Base node for data producers.</div><div class="ttdef"><b>Definition:</b> buffer.h:260</div></div>
 <div class="ttc" id="aclasstvm_1_1tir_1_1DataProducerNode_html_a03002bfbc65da973a56cdc0fadd998bf"><div class="ttname"><a href="classtvm_1_1tir_1_1DataProducerNode.html#a03002bfbc65da973a56cdc0fadd998bf">tvm::tir::DataProducerNode::GetNameHint</a></div><div class="ttdeci">virtual ffi::String GetNameHint() const =0</div><div class="ttdoc">Get the name hint of the data producer.</div></div>
-<div class="ttc" id="aclasstvm_1_1tir_1_1DataProducerNode_html_a217c304881c81d4c87df7110e1b1e787"><div class="ttname"><a href="classtvm_1_1tir_1_1DataProducerNode.html#a217c304881c81d4c87df7110e1b1e787">tvm::tir::DataProducerNode::_type_key</a></div><div class="ttdeci">static constexpr const char * _type_key</div><div class="ttdef"><b>Definition:</b> buffer.h:281</div></div>
 <div class="ttc" id="aclasstvm_1_1tir_1_1DataProducerNode_html_a2cfae87e1a95ac4a95093d4485770d62"><div class="ttname"><a href="classtvm_1_1tir_1_1DataProducerNode.html#a2cfae87e1a95ac4a95093d4485770d62">tvm::tir::DataProducerNode::GetDataType</a></div><div class="ttdeci">virtual DataType GetDataType() const =0</div><div class="ttdoc">Get the data type of the result.</div></div>
+<div class="ttc" id="aclasstvm_1_1tir_1_1DataProducerNode_html_a629c21d779be75da2022c7ec625ddcbf"><div class="ttname"><a href="classtvm_1_1tir_1_1DataProducerNode.html#a629c21d779be75da2022c7ec625ddcbf">tvm::tir::DataProducerNode::TVM_FFI_DECLARE_OBJECT_INFO</a></div><div class="ttdeci">TVM_FFI_DECLARE_OBJECT_INFO(&quot;tir.DataProducer&quot;, DataProducerNode, PrimExprConvertibleNode)</div></div>
 <div class="ttc" id="aclasstvm_1_1tir_1_1DataProducerNode_html_a6dad98302fcd3ee1523fb6e9a3b0c783"><div class="ttname"><a href="classtvm_1_1tir_1_1DataProducerNode.html#a6dad98302fcd3ee1523fb6e9a3b0c783">tvm::tir::DataProducerNode::GetShape</a></div><div class="ttdeci">virtual ffi::Array&lt; PrimExpr &gt; GetShape() const =0</div><div class="ttdoc">Get the shape of the result.</div></div>
-<div class="ttc" id="aclasstvm_1_1tir_1_1DataProducerNode_html_aea51894cdbb3f79121aef5d33d892025"><div class="ttname"><a href="classtvm_1_1tir_1_1DataProducerNode.html#aea51894cdbb3f79121aef5d33d892025">tvm::tir::DataProducerNode::TVM_DECLARE_BASE_OBJECT_INFO</a></div><div class="ttdeci">TVM_DECLARE_BASE_OBJECT_INFO(DataProducerNode, PrimExprConvertibleNode)</div></div>
-<div class="ttc" id="aclasstvm_1_1tir_1_1DataProducerNode_html_aeb887c35d09af934251932b0120f9dfa"><div class="ttname"><a href="classtvm_1_1tir_1_1DataProducerNode.html#aeb887c35d09af934251932b0120f9dfa">tvm::tir::DataProducerNode::~DataProducerNode</a></div><div class="ttdeci">virtual ~DataProducerNode()</div><div class="ttdoc">destructor.</div><div class="ttdef"><b>Definition:</b> buffer.h:264</div></div>
-<div class="ttc" id="aclasstvm_1_1tir_1_1DataProducer_html"><div class="ttname"><a href="classtvm_1_1tir_1_1DataProducer.html">tvm::tir::DataProducer</a></div><div class="ttdoc">Managed reference to DataProducerNode.</div><div class="ttdef"><b>Definition:</b> buffer.h:289</div></div>
-<div class="ttc" id="aclasstvm_1_1tir_1_1DataProducer_html_a424efdef013d287ddb5d87e5c842bcff"><div class="ttname"><a href="classtvm_1_1tir_1_1DataProducer.html#a424efdef013d287ddb5d87e5c842bcff">tvm::tir::DataProducer::TVM_DEFINE_OBJECT_REF_METHODS</a></div><div class="ttdeci">TVM_DEFINE_OBJECT_REF_METHODS(DataProducer, PrimExprConvertible, DataProducerNode)</div></div>
-<div class="ttc" id="aclasstvm_1_1tir_1_1Stmt_html"><div class="ttname"><a href="classtvm_1_1tir_1_1Stmt.html">tvm::tir::Stmt</a></div><div class="ttdoc">Container of all statements.</div><div class="ttdef"><b>Definition:</b> stmt.h:64</div></div>
-<div class="ttc" id="aclasstvm_1_1tir_1_1Var_html"><div class="ttname"><a href="classtvm_1_1tir_1_1Var.html">tvm::tir::Var</a></div><div class="ttdoc">a named variable in TIR</div><div class="ttdef"><b>Definition:</b> var.h:78</div></div>
+<div class="ttc" id="aclasstvm_1_1tir_1_1DataProducerNode_html_aeb887c35d09af934251932b0120f9dfa"><div class="ttname"><a href="classtvm_1_1tir_1_1DataProducerNode.html#aeb887c35d09af934251932b0120f9dfa">tvm::tir::DataProducerNode::~DataProducerNode</a></div><div class="ttdeci">virtual ~DataProducerNode()</div><div class="ttdoc">destructor.</div><div class="ttdef"><b>Definition:</b> buffer.h:263</div></div>
+<div class="ttc" id="aclasstvm_1_1tir_1_1DataProducer_html"><div class="ttname"><a href="classtvm_1_1tir_1_1DataProducer.html">tvm::tir::DataProducer</a></div><div class="ttdoc">Managed reference to DataProducerNode.</div><div class="ttdef"><b>Definition:</b> buffer.h:286</div></div>
+<div class="ttc" id="aclasstvm_1_1tir_1_1DataProducer_html_a6e5c814921c5d7515d476d8a2320fe15"><div class="ttname"><a href="classtvm_1_1tir_1_1DataProducer.html#a6e5c814921c5d7515d476d8a2320fe15">tvm::tir::DataProducer::TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE</a></div><div class="ttdeci">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE(DataProducer, PrimExprConvertible, DataProducerNode)</div></div>
+<div class="ttc" id="aclasstvm_1_1tir_1_1Stmt_html"><div class="ttname"><a href="classtvm_1_1tir_1_1Stmt.html">tvm::tir::Stmt</a></div><div class="ttdoc">Container of all statements.</div><div class="ttdef"><b>Definition:</b> stmt.h:63</div></div>
+<div class="ttc" id="aclasstvm_1_1tir_1_1Var_html"><div class="ttname"><a href="classtvm_1_1tir_1_1Var.html">tvm::tir::Var</a></div><div class="ttdoc">a named variable in TIR</div><div class="ttdef"><b>Definition:</b> var.h:77</div></div>
 <div class="ttc" id="air_2expr_8h_html"><div class="ttname"><a href="ir_2expr_8h.html">expr.h</a></div><div class="ttdoc">Base expr nodes in TVM.</div></div>
 <div class="ttc" id="anamespacetvm_1_1ffi_1_1reflection_html"><div class="ttname"><a href="namespacetvm_1_1ffi_1_1reflection.html">tvm::ffi::reflection</a></div><div class="ttdef"><b>Definition:</b> repr_printer.h:91</div></div>
-<div class="ttc" id="anamespacetvm_1_1tir_1_1attr_html_acf23614bc95ff92e0aa41a519eec08e4"><div class="ttname"><a href="namespacetvm_1_1tir_1_1attr.html#acf23614bc95ff92e0aa41a519eec08e4">tvm::tir::attr::axis_separators</a></div><div class="ttdeci">constexpr const char * axis_separators</div><div class="ttdoc">Marks the physical axis separators.</div><div class="ttdef"><b>Definition:</b> stmt.h:1128</div></div>
+<div class="ttc" id="anamespacetvm_1_1tir_1_1attr_html_acf23614bc95ff92e0aa41a519eec08e4"><div class="ttname"><a href="namespacetvm_1_1tir_1_1attr.html#acf23614bc95ff92e0aa41a519eec08e4">tvm::tir::attr::axis_separators</a></div><div class="ttdeci">constexpr const char * axis_separators</div><div class="ttdoc">Marks the physical axis separators.</div><div class="ttdef"><b>Definition:</b> stmt.h:1094</div></div>
 <div class="ttc" id="anamespacetvm_1_1tir_html_a514a80098d90dbd3b0c25262c932a981"><div class="ttname"><a href="namespacetvm_1_1tir.html#a514a80098d90dbd3b0c25262c932a981">tvm::tir::DefaultIndexType</a></div><div class="ttdeci">DataType DefaultIndexType()</div><div class="ttdoc">if TVM_INDEX_DEFAULT_I64 is set, return int64, otherwise return int32</div><div class="ttdef"><b>Definition:</b> buffer.h:43</div></div>
 <div class="ttc" id="anamespacetvm_1_1tir_html_a9ac05a14db42ca73da1d3945e7ce2fd1"><div class="ttname"><a href="namespacetvm_1_1tir.html#a9ac05a14db42ca73da1d3945e7ce2fd1">tvm::tir::BufferType</a></div><div class="ttdeci">BufferType</div><div class="ttdoc">buffer type</div><div class="ttdef"><b>Definition:</b> buffer.h:55</div></div>
 <div class="ttc" id="anamespacetvm_1_1tir_html_a9ac05a14db42ca73da1d3945e7ce2fd1a08cd53d61aa635081a2f7a0597025663"><div class="ttname"><a href="namespacetvm_1_1tir.html#a9ac05a14db42ca73da1d3945e7ce2fd1a08cd53d61aa635081a2f7a0597025663">tvm::tir::kAutoBroadcast</a></div><div class="ttdeci">@ kAutoBroadcast</div><div class="ttdef"><b>Definition:</b> buffer.h:58</div></div>
diff --git a/docs/reference/api/doxygen/builder_8h_source.html b/docs/reference/api/doxygen/builder_8h_source.html
index dad33413f1..3622b60cee 100644
--- a/docs/reference/api/doxygen/builder_8h_source.html
+++ b/docs/reference/api/doxygen/builder_8h_source.html
@@ -117,120 +117,114 @@ $(function() {
 <div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160;        .def_ro(<span class="stringliteral">&quot;target&quot;</span>, &amp;<a class="code" href="classtvm_1_1meta__schedule_1_1BuilderInputNode.html#afc001f3e427cfc8c05236b615cfd2868">BuilderInputNode::target</a>)</div>
 <div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;        .def_ro(<span class="stringliteral">&quot;params&quot;</span>, &amp;<a class="code" href="classtvm_1_1meta__schedule_1_1BuilderInputNode.html#aadd3482be8f6c255bc9c5a7ac57e6117">BuilderInputNode::params</a>);</div>
 <div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;  }</div>
-<div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160; </div>
-<div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1BuilderInputNode.html#a04d0f1274e396d9cdae6bc925144b0d3">   54</a></span>&#160;  <span class="keyword">static</span> constexpr <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classtvm_1_1meta__schedule_1_1BuilderInputNode.html#a04d0f1274e396d9cdae6bc925144b0d3">_type_key</a> = <span class="stringliteral">&quot;meta_schedule.Builde [...]
-<div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1BuilderInputNode.html#aefeb9bc39e17443d9f4cb6683e5d2af6">   55</a></span>&#160;  <a class="code" href="classtvm_1_1meta__schedule_1_1BuilderInputNode.html#aefeb9bc39e17443d9f4cb6683e5d2af6">TVM_DECLARE_FINAL_OBJECT_INFO</a>(<a class="code" href="classtvm_1_1meta__schedule_1_1BuilderInputNode.html">BuilderInputNode</a>, runtime::Object);</div>
-<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;};</div>
-<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160; </div>
-<div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1BuilderInput.html">   62</a></span>&#160;<span class="keyword">class </span><a class="code" href="classtvm_1_1meta__schedule_1_1BuilderInput.html">BuilderInput</a> : <span class="keyword">public</span> runtime::ObjectRef {</div>
-<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160; <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1BuilderInput.html#a2af6d3d23c9823d62e04ae53fd6952ab">   70</a></span>&#160;  TVM_DLL <span class="keyword">explicit</span> <a class="code" href="classtvm_1_1meta__schedule_1_1BuilderInput.html#a2af6d3d23c9823d62e04ae53fd6952ab">BuilderInput</a>(</div>
-<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;      <a class="code" href="classtvm_1_1IRModule.html">IRModule</a> <a class="code" href="namespacetvm_1_1topi.html#aaa95d3ad68932ab206efbe0a326db6a2">mod</a>, <a class="code" href="classtvm_1_1Target.html">Target</a> target,</div>
-<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;      ffi::Optional&lt;ffi::Map&lt;ffi::String, runtime::Tensor&gt;&gt; params = std::nullopt);</div>
-<div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1BuilderInput.html#ad42e2f1c6e5c48d4ec35d5e8b993ffa3">   73</a></span>&#160;  <a class="code" href="classtvm_1_1meta__schedule_1_1BuilderInput.html#ad42e2f1c6e5c48d4ec35d5e8b993ffa3">TVM_DEFINE_NOTNULLABLE_OBJECT_REF_METHODS</a>(<a class="code" href="classtvm_1_1meta__schedule_1_1BuilderInput.html">BuilderInput</a>, runtime::ObjectRef, <a class="code" href="classtvm_1_1meta__sch [...]
-<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;};</div>
-<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160; </div>
-<div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1BuilderResultNode.html">   77</a></span>&#160;<span class="keyword">class </span><a class="code" href="classtvm_1_1meta__schedule_1_1BuilderResultNode.html">BuilderResultNode</a> : <span class="keyword">public</span> runtime::Object {</div>
-<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160; <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1BuilderResultNode.html#ae41ba1fd11282d8d70717a77444c97dd">   80</a></span>&#160;  ffi::Optional&lt;ffi::String&gt; <a class="code" href="classtvm_1_1meta__schedule_1_1BuilderResultNode.html#ae41ba1fd11282d8d70717a77444c97dd">artifact_path</a>;</div>
-<div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1BuilderResultNode.html#a6b087252dc1aa515419f9e82f3ca0d1c">   82</a></span>&#160;  ffi::Optional&lt;ffi::String&gt; <a class="code" href="classtvm_1_1meta__schedule_1_1BuilderResultNode.html#a6b087252dc1aa515419f9e82f3ca0d1c">error_msg</a>;</div>
-<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160; </div>
-<div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1BuilderResultNode.html#a51f14ee7b15a63f88255330461f46d16">   84</a></span>&#160;  <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classtvm_1_1meta__schedule_1_1BuilderResultNode.html#a51f14ee7b15a63f88255330461f46d16">RegisterReflection</a>() {</div>
-<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;    <span class="keyword">namespace </span>refl = <a class="code" href="namespacetvm_1_1ffi_1_1reflection.html">tvm::ffi::reflection</a>;</div>
-<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;    refl::ObjectDef&lt;BuilderResultNode&gt;()</div>
-<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;        .def_ro(<span class="stringliteral">&quot;artifact_path&quot;</span>, &amp;<a class="code" href="classtvm_1_1meta__schedule_1_1BuilderResultNode.html#ae41ba1fd11282d8d70717a77444c97dd">BuilderResultNode::artifact_path</a>)</div>
-<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;        .def_ro(<span class="stringliteral">&quot;error_msg&quot;</span>, &amp;<a class="code" href="classtvm_1_1meta__schedule_1_1BuilderResultNode.html#a6b087252dc1aa515419f9e82f3ca0d1c">BuilderResultNode::error_msg</a>);</div>
-<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;  }</div>
-<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160; </div>
-<div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1BuilderResultNode.html#a64c5be21fa64bac97140d483ad911dea">   91</a></span>&#160;  <span class="keyword">static</span> constexpr <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classtvm_1_1meta__schedule_1_1BuilderResultNode.html#a64c5be21fa64bac97140d483ad911dea">_type_key</a> = <span class="stringliteral">&quot;meta_schedule.Buil [...]
-<div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1BuilderResultNode.html#ac9447e120bcdfc2d93d416e89452fd5d">   92</a></span>&#160;  <a class="code" href="classtvm_1_1meta__schedule_1_1BuilderResultNode.html#ac9447e120bcdfc2d93d416e89452fd5d">TVM_DECLARE_FINAL_OBJECT_INFO</a>(<a class="code" href="classtvm_1_1meta__schedule_1_1BuilderResultNode.html">BuilderResultNode</a>, runtime::Object);</div>
-<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;};</div>
-<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160; </div>
-<div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1BuilderResult.html">   99</a></span>&#160;<span class="keyword">class </span><a class="code" href="classtvm_1_1meta__schedule_1_1BuilderResult.html">BuilderResult</a> : <span class="keyword">public</span> runtime::ObjectRef {</div>
-<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160; <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1BuilderResult.html#aa0a1254f9899ac775b02d6d1bfffc783">  106</a></span>&#160;  TVM_DLL <span class="keyword">explicit</span> <a class="code" href="classtvm_1_1meta__schedule_1_1BuilderResult.html#aa0a1254f9899ac775b02d6d1bfffc783">BuilderResult</a>(ffi::Optional&lt;ffi::String&gt; artifact_path,</div>
-<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;                                 ffi::Optional&lt;ffi::String&gt; error_msg);</div>
-<div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1BuilderResult.html#ac032343c5fa8d7136684a04e63f7eeef">  108</a></span>&#160;  <a class="code" href="classtvm_1_1meta__schedule_1_1BuilderResult.html#ac032343c5fa8d7136684a04e63f7eeef">TVM_DEFINE_NOTNULLABLE_OBJECT_REF_METHODS</a>(<a class="code" href="classtvm_1_1meta__schedule_1_1BuilderResult.html">BuilderResult</a>, runtime::ObjectRef, <a class="code" href="classtvm_1_1meta_ [...]
-<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;};</div>
-<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160; </div>
-<div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1BuilderNode.html">  112</a></span>&#160;<span class="keyword">class </span><a class="code" href="classtvm_1_1meta__schedule_1_1BuilderNode.html">BuilderNode</a> : <span class="keyword">public</span> runtime::Object {</div>
-<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160; <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1BuilderNode.html#a7215cd095b70a5514388f5d38b3a3cca">  115</a></span>&#160;  <span class="keyword">virtual</span> <a class="code" href="classtvm_1_1meta__schedule_1_1BuilderNode.html#a7215cd095b70a5514388f5d38b3a3cca">~BuilderNode</a>() = <span class="keywordflow">default</span>;</div>
-<div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1BuilderNode.html#a220de0c39924fc803d62ba4ebb727cbd">  121</a></span>&#160;  <span class="keyword">virtual</span> ffi::Array&lt;BuilderResult&gt; <a class="code" href="classtvm_1_1meta__schedule_1_1BuilderNode.html#a220de0c39924fc803d62ba4ebb727cbd">Build</a>(<span class="keyword">const</span> ffi::Array&lt;BuilderInput&gt;&amp; build_inputs) = 0;</div>
-<div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1BuilderNode.html#a294e7e5f9f01e8d11555691bcb375502">  127</a></span>&#160;  <span class="keyword">using</span> <a class="code" href="classtvm_1_1meta__schedule_1_1BuilderNode.html#a294e7e5f9f01e8d11555691bcb375502">FBuild</a> = ffi::TypedFunction&lt;ffi::Array&lt;BuilderResult&gt;(<span class="keyword">const</span> ffi::Array&lt;BuilderInput&gt;&amp;)&gt;;</div>
-<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160; </div>
-<div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1BuilderNode.html#a63b990b091ef1031b807d178a508b116">  129</a></span>&#160;  <span class="keyword">static</span> constexpr <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classtvm_1_1meta__schedule_1_1BuilderNode.html#a63b990b091ef1031b807d178a508b116">_type_key</a> = <span class="stringliteral">&quot;meta_schedule.Builder&quot;</s [...]
-<div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1BuilderNode.html#a43ba43181645b95ebf15e6f361eedd31">  130</a></span>&#160;  <a class="code" href="classtvm_1_1meta__schedule_1_1BuilderNode.html#a43ba43181645b95ebf15e6f361eedd31">TVM_DECLARE_BASE_OBJECT_INFO</a>(<a class="code" href="classtvm_1_1meta__schedule_1_1BuilderNode.html">BuilderNode</a>, runtime::Object);</div>
-<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;};</div>
-<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160; </div>
-<div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1Builder.html">  137</a></span>&#160;<span class="keyword">class </span><a class="code" href="classtvm_1_1meta__schedule_1_1Builder.html">Builder</a> : <span class="keyword">public</span> runtime::ObjectRef {</div>
-<div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160; <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1Builder.html#a2a7aa2d52f0f106a9a13c9052b8a22e0">  143</a></span>&#160;  <span class="keyword">explicit</span> <a class="code" href="classtvm_1_1meta__schedule_1_1Builder.html#a2a7aa2d52f0f106a9a13c9052b8a22e0">Builder</a>(ObjectPtr&lt;BuilderNode&gt; data) : ObjectRef(data) {</div>
-<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;    TVM_FFI_ICHECK(data != <span class="keyword">nullptr</span>);</div>
-<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;  }</div>
-<div class="line"><a name="l00151"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1Builder.html#a91fe7e36ba1e213e65b59f05a685e89f">  151</a></span>&#160;  <span class="keyword">static</span> <a class="code" href="classtvm_1_1meta__schedule_1_1Builder.html">Builder</a> <a class="code" href="classtvm_1_1meta__schedule_1_1Builder.html#a91fe7e36ba1e213e65b59f05a685e89f">PyBuilder</a>(<a class="code" href="classtvm_1_1meta__schedule_1_1BuilderNode.html#a294e7e5f9f [...]
-<div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1Builder.html#aeea720ca59791282cd8ec2729ce14f13">  152</a></span>&#160;  <a class="code" href="classtvm_1_1meta__schedule_1_1Builder.html#aeea720ca59791282cd8ec2729ce14f13">TVM_DEFINE_MUTABLE_NOTNULLABLE_OBJECT_REF_METHODS</a>(<a class="code" href="classtvm_1_1meta__schedule_1_1Builder.html">Builder</a>, runtime::ObjectRef, <a class="code" href="classtvm_1_1meta__schedule_1_1Bui [...]
-<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;};</div>
-<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160; </div>
-<div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1PyBuilderNode.html">  156</a></span>&#160;<span class="keyword">class </span><a class="code" href="classtvm_1_1meta__schedule_1_1PyBuilderNode.html">PyBuilderNode</a> : <span class="keyword">public</span> <a class="code" href="classtvm_1_1meta__schedule_1_1BuilderNode.html">BuilderNode</a> {</div>
-<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160; <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00159"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1PyBuilderNode.html#a4ea31c8060f7921ae79135a19bb0f20e">  159</a></span>&#160;  <a class="code" href="classtvm_1_1meta__schedule_1_1BuilderNode.html#a294e7e5f9f01e8d11555691bcb375502">FBuild</a> <a class="code" href="classtvm_1_1meta__schedule_1_1PyBuilderNode.html#a4ea31c8060f7921ae79135a19bb0f20e">f_build</a>;</div>
-<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160; </div>
-<div class="line"><a name="l00161"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1PyBuilderNode.html#ae9c7f6a94e6516acf6f8f303951247e5">  161</a></span>&#160;  <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classtvm_1_1meta__schedule_1_1PyBuilderNode.html#ae9c7f6a94e6516acf6f8f303951247e5">RegisterReflection</a>() {</div>
-<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;    <span class="keyword">namespace </span>refl = <a class="code" href="namespacetvm_1_1ffi_1_1reflection.html">tvm::ffi::reflection</a>;</div>
-<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;    refl::ObjectDef&lt;PyBuilderNode&gt;().def_ro(<span class="stringliteral">&quot;f_build&quot;</span>, &amp;<a class="code" href="classtvm_1_1meta__schedule_1_1PyBuilderNode.html#a4ea31c8060f7921ae79135a19bb0f20e">PyBuilderNode::f_build</a>);</div>
-<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;  }</div>
-<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160; </div>
-<div class="line"><a name="l00166"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1PyBuilderNode.html#a90d4630c53de514ba47d2bf31e906db0">  166</a></span>&#160;  ffi::Array&lt;BuilderResult&gt; <a class="code" href="classtvm_1_1meta__schedule_1_1PyBuilderNode.html#a90d4630c53de514ba47d2bf31e906db0">Build</a>(<span class="keyword">const</span> ffi::Array&lt;BuilderInput&gt;&amp; build_inputs) <span class="keyword">final</span> {</div>
-<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;    ICHECK(<a class="code" href="classtvm_1_1meta__schedule_1_1PyBuilderNode.html#a4ea31c8060f7921ae79135a19bb0f20e">f_build</a> != <span class="keyword">nullptr</span>) &lt;&lt; <span class="stringliteral">&quot;PyBuilder&#39;s Build method not implemented!&quot;</span>;</div>
-<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="classtvm_1_1meta__schedule_1_1PyBuilderNode.html#a4ea31c8060f7921ae79135a19bb0f20e">f_build</a>(build_inputs);</div>
-<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;  }</div>
-<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160; </div>
-<div class="line"><a name="l00171"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1PyBuilderNode.html#ac974d99577077ad9e1b80887bb528bc6">  171</a></span>&#160;  <span class="keyword">static</span> constexpr <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="classtvm_1_1meta__schedule_1_1PyBuilderNode.html#ac974d99577077ad9e1b80887bb528bc6">_type_key</a> = <span class="stringliteral">&quot;meta_schedule.PyBuilder&qu [...]
-<div class="line"><a name="l00172"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1PyBuilderNode.html#a15408f0424caee62975cb7ffd43f72d9">  172</a></span>&#160;  <a class="code" href="classtvm_1_1meta__schedule_1_1PyBuilderNode.html#a15408f0424caee62975cb7ffd43f72d9">TVM_DECLARE_FINAL_OBJECT_INFO</a>(<a class="code" href="classtvm_1_1meta__schedule_1_1PyBuilderNode.html">PyBuilderNode</a>, <a class="code" href="classtvm_1_1meta__schedule_1_1BuilderNode.html">B [...]
-<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;};</div>
+<div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1BuilderInputNode.html#a44eb70aab790324168dd3ce5e01fb8f0">   53</a></span>&#160;  <a class="code" href="classtvm_1_1meta__schedule_1_1BuilderInputNode.html#a44eb70aab790324168dd3ce5e01fb8f0">TVM_FFI_DECLARE_OBJECT_INFO_FINAL</a>(<span class="stringliteral">&quot;meta_schedule.BuilderInput&quot;</span>, <a class="code" href="classtvm_1_1meta__schedule_1_1BuilderInputNode.html">Bu [...]
+<div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;                                    runtime::Object);</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;};</div>
+<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160; </div>
+<div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1BuilderInput.html">   61</a></span>&#160;<span class="keyword">class </span><a class="code" href="classtvm_1_1meta__schedule_1_1BuilderInput.html">BuilderInput</a> : <span class="keyword">public</span> runtime::ObjectRef {</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160; <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1BuilderInput.html#a2af6d3d23c9823d62e04ae53fd6952ab">   69</a></span>&#160;  TVM_DLL <span class="keyword">explicit</span> <a class="code" href="classtvm_1_1meta__schedule_1_1BuilderInput.html#a2af6d3d23c9823d62e04ae53fd6952ab">BuilderInput</a>(</div>
+<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;      <a class="code" href="classtvm_1_1IRModule.html">IRModule</a> <a class="code" href="namespacetvm_1_1topi.html#aaa95d3ad68932ab206efbe0a326db6a2">mod</a>, <a class="code" href="classtvm_1_1Target.html">Target</a> target,</div>
+<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;      ffi::Optional&lt;ffi::Map&lt;ffi::String, runtime::Tensor&gt;&gt; params = std::nullopt);</div>
+<div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1BuilderInput.html#a6ad42832642fd9e9a139e743facc1679">   72</a></span>&#160;  <a class="code" href="classtvm_1_1meta__schedule_1_1BuilderInput.html#a6ad42832642fd9e9a139e743facc1679">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NOTNULLABLE</a>(<a class="code" href="classtvm_1_1meta__schedule_1_1BuilderInput.html">BuilderInput</a>, runtime::ObjectRef, <a class="code" href="classtvm_1_1meta_ [...]
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160;};</div>
+<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160; </div>
+<div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1BuilderResultNode.html">   76</a></span>&#160;<span class="keyword">class </span><a class="code" href="classtvm_1_1meta__schedule_1_1BuilderResultNode.html">BuilderResultNode</a> : <span class="keyword">public</span> runtime::Object {</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160; <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1BuilderResultNode.html#ae41ba1fd11282d8d70717a77444c97dd">   79</a></span>&#160;  ffi::Optional&lt;ffi::String&gt; <a class="code" href="classtvm_1_1meta__schedule_1_1BuilderResultNode.html#ae41ba1fd11282d8d70717a77444c97dd">artifact_path</a>;</div>
+<div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1BuilderResultNode.html#a6b087252dc1aa515419f9e82f3ca0d1c">   81</a></span>&#160;  ffi::Optional&lt;ffi::String&gt; <a class="code" href="classtvm_1_1meta__schedule_1_1BuilderResultNode.html#a6b087252dc1aa515419f9e82f3ca0d1c">error_msg</a>;</div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160; </div>
+<div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1BuilderResultNode.html#a51f14ee7b15a63f88255330461f46d16">   83</a></span>&#160;  <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classtvm_1_1meta__schedule_1_1BuilderResultNode.html#a51f14ee7b15a63f88255330461f46d16">RegisterReflection</a>() {</div>
+<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;    <span class="keyword">namespace </span>refl = <a class="code" href="namespacetvm_1_1ffi_1_1reflection.html">tvm::ffi::reflection</a>;</div>
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;    refl::ObjectDef&lt;BuilderResultNode&gt;()</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;        .def_ro(<span class="stringliteral">&quot;artifact_path&quot;</span>, &amp;<a class="code" href="classtvm_1_1meta__schedule_1_1BuilderResultNode.html#ae41ba1fd11282d8d70717a77444c97dd">BuilderResultNode::artifact_path</a>)</div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;        .def_ro(<span class="stringliteral">&quot;error_msg&quot;</span>, &amp;<a class="code" href="classtvm_1_1meta__schedule_1_1BuilderResultNode.html#a6b087252dc1aa515419f9e82f3ca0d1c">BuilderResultNode::error_msg</a>);</div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;  }</div>
+<div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1BuilderResultNode.html#aa9ac191daadf670ba1da1a7b018ad590">   89</a></span>&#160;  <a class="code" href="classtvm_1_1meta__schedule_1_1BuilderResultNode.html#aa9ac191daadf670ba1da1a7b018ad590">TVM_FFI_DECLARE_OBJECT_INFO_FINAL</a>(<span class="stringliteral">&quot;meta_schedule.BuilderResult&quot;</span>, <a class="code" href="classtvm_1_1meta__schedule_1_1BuilderResultNode.html [...]
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;                                    runtime::Object);</div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;};</div>
+<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160; </div>
+<div class="line"><a name="l00097"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1BuilderResult.html">   97</a></span>&#160;<span class="keyword">class </span><a class="code" href="classtvm_1_1meta__schedule_1_1BuilderResult.html">BuilderResult</a> : <span class="keyword">public</span> runtime::ObjectRef {</div>
+<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160; <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1BuilderResult.html#aa0a1254f9899ac775b02d6d1bfffc783">  104</a></span>&#160;  TVM_DLL <span class="keyword">explicit</span> <a class="code" href="classtvm_1_1meta__schedule_1_1BuilderResult.html#aa0a1254f9899ac775b02d6d1bfffc783">BuilderResult</a>(ffi::Optional&lt;ffi::String&gt; artifact_path,</div>
+<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;                                 ffi::Optional&lt;ffi::String&gt; error_msg);</div>
+<div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1BuilderResult.html#a9daf48054930ec155838c04abd1097b9">  106</a></span>&#160;  <a class="code" href="classtvm_1_1meta__schedule_1_1BuilderResult.html#a9daf48054930ec155838c04abd1097b9">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NOTNULLABLE</a>(<a class="code" href="classtvm_1_1meta__schedule_1_1BuilderResult.html">BuilderResult</a>, runtime::ObjectRef,</div>
+<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;                                                <a class="code" href="classtvm_1_1meta__schedule_1_1BuilderResultNode.html">BuilderResultNode</a>);</div>
+<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;};</div>
+<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160; </div>
+<div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1BuilderNode.html">  111</a></span>&#160;<span class="keyword">class </span><a class="code" href="classtvm_1_1meta__schedule_1_1BuilderNode.html">BuilderNode</a> : <span class="keyword">public</span> runtime::Object {</div>
+<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160; <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1BuilderNode.html#a7215cd095b70a5514388f5d38b3a3cca">  114</a></span>&#160;  <span class="keyword">virtual</span> <a class="code" href="classtvm_1_1meta__schedule_1_1BuilderNode.html#a7215cd095b70a5514388f5d38b3a3cca">~BuilderNode</a>() = <span class="keywordflow">default</span>;</div>
+<div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1BuilderNode.html#a220de0c39924fc803d62ba4ebb727cbd">  120</a></span>&#160;  <span class="keyword">virtual</span> ffi::Array&lt;BuilderResult&gt; <a class="code" href="classtvm_1_1meta__schedule_1_1BuilderNode.html#a220de0c39924fc803d62ba4ebb727cbd">Build</a>(<span class="keyword">const</span> ffi::Array&lt;BuilderInput&gt;&amp; build_inputs) = 0;</div>
+<div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1BuilderNode.html#a294e7e5f9f01e8d11555691bcb375502">  126</a></span>&#160;  <span class="keyword">using</span> <a class="code" href="classtvm_1_1meta__schedule_1_1BuilderNode.html#a294e7e5f9f01e8d11555691bcb375502">FBuild</a> = ffi::TypedFunction&lt;ffi::Array&lt;BuilderResult&gt;(<span class="keyword">const</span> ffi::Array&lt;BuilderInput&gt;&amp;)&gt;;</div>
+<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160; </div>
+<div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1BuilderNode.html#adabad502a610ec412a276af1e69b54fe">  128</a></span>&#160;  <span class="keyword">static</span> constexpr <span class="keyword">const</span> <span class="keywordtype">bool</span> <a class="code" href="classtvm_1_1meta__schedule_1_1BuilderNode.html#adabad502a610ec412a276af1e69b54fe">_type_mutable</a> = <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1BuilderNode.html#a97489b6a7ac55cd9bd849b3d519fd2a0">  129</a></span>&#160;  <a class="code" href="classtvm_1_1meta__schedule_1_1BuilderNode.html#a97489b6a7ac55cd9bd849b3d519fd2a0">TVM_FFI_DECLARE_OBJECT_INFO</a>(<span class="stringliteral">&quot;meta_schedule.Builder&quot;</span>, <a class="code" href="classtvm_1_1meta__schedule_1_1BuilderNode.html">BuilderNode</a>, runtime::Ob [...]
+<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;};</div>
+<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160; </div>
+<div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1Builder.html">  136</a></span>&#160;<span class="keyword">class </span><a class="code" href="classtvm_1_1meta__schedule_1_1Builder.html">Builder</a> : <span class="keyword">public</span> runtime::ObjectRef {</div>
+<div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160; <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00142"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1Builder.html#a2a7aa2d52f0f106a9a13c9052b8a22e0">  142</a></span>&#160;  <span class="keyword">explicit</span> <a class="code" href="classtvm_1_1meta__schedule_1_1Builder.html#a2a7aa2d52f0f106a9a13c9052b8a22e0">Builder</a>(ObjectPtr&lt;BuilderNode&gt; data) : ObjectRef(data) {</div>
+<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;    TVM_FFI_ICHECK(data != <span class="keyword">nullptr</span>);</div>
+<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160;  }</div>
+<div class="line"><a name="l00150"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1Builder.html#a91fe7e36ba1e213e65b59f05a685e89f">  150</a></span>&#160;  <span class="keyword">static</span> <a class="code" href="classtvm_1_1meta__schedule_1_1Builder.html">Builder</a> <a class="code" href="classtvm_1_1meta__schedule_1_1Builder.html#a91fe7e36ba1e213e65b59f05a685e89f">PyBuilder</a>(<a class="code" href="classtvm_1_1meta__schedule_1_1BuilderNode.html#a294e7e5f9f [...]
+<div class="line"><a name="l00151"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1Builder.html#ac5cd769d74cb9d8d3a9d8b23449468e6">  151</a></span>&#160;  <a class="code" href="classtvm_1_1meta__schedule_1_1Builder.html#ac5cd769d74cb9d8d3a9d8b23449468e6">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NOTNULLABLE</a>(<a class="code" href="classtvm_1_1meta__schedule_1_1Builder.html">Builder</a>, runtime::ObjectRef, <a class="code" href="classtvm_1_1meta__schedule_1_1Builder [...]
+<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;};</div>
+<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160; </div>
+<div class="line"><a name="l00155"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1PyBuilderNode.html">  155</a></span>&#160;<span class="keyword">class </span><a class="code" href="classtvm_1_1meta__schedule_1_1PyBuilderNode.html">PyBuilderNode</a> : <span class="keyword">public</span> <a class="code" href="classtvm_1_1meta__schedule_1_1BuilderNode.html">BuilderNode</a> {</div>
+<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160; <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00158"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1PyBuilderNode.html#a4ea31c8060f7921ae79135a19bb0f20e">  158</a></span>&#160;  <a class="code" href="classtvm_1_1meta__schedule_1_1BuilderNode.html#a294e7e5f9f01e8d11555691bcb375502">FBuild</a> <a class="code" href="classtvm_1_1meta__schedule_1_1PyBuilderNode.html#a4ea31c8060f7921ae79135a19bb0f20e">f_build</a>;</div>
+<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160; </div>
+<div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1PyBuilderNode.html#ae9c7f6a94e6516acf6f8f303951247e5">  160</a></span>&#160;  <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="classtvm_1_1meta__schedule_1_1PyBuilderNode.html#ae9c7f6a94e6516acf6f8f303951247e5">RegisterReflection</a>() {</div>
+<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;    <span class="keyword">namespace </span>refl = <a class="code" href="namespacetvm_1_1ffi_1_1reflection.html">tvm::ffi::reflection</a>;</div>
+<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;    refl::ObjectDef&lt;PyBuilderNode&gt;().def_ro(<span class="stringliteral">&quot;f_build&quot;</span>, &amp;<a class="code" href="classtvm_1_1meta__schedule_1_1PyBuilderNode.html#a4ea31c8060f7921ae79135a19bb0f20e">PyBuilderNode::f_build</a>);</div>
+<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;  }</div>
+<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160; </div>
+<div class="line"><a name="l00165"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1PyBuilderNode.html#a90d4630c53de514ba47d2bf31e906db0">  165</a></span>&#160;  ffi::Array&lt;BuilderResult&gt; <a class="code" href="classtvm_1_1meta__schedule_1_1PyBuilderNode.html#a90d4630c53de514ba47d2bf31e906db0">Build</a>(<span class="keyword">const</span> ffi::Array&lt;BuilderInput&gt;&amp; build_inputs) <span class="keyword">final</span> {</div>
+<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;    ICHECK(<a class="code" href="classtvm_1_1meta__schedule_1_1PyBuilderNode.html#a4ea31c8060f7921ae79135a19bb0f20e">f_build</a> != <span class="keyword">nullptr</span>) &lt;&lt; <span class="stringliteral">&quot;PyBuilder&#39;s Build method not implemented!&quot;</span>;</div>
+<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;    <span class="keywordflow">return</span> <a class="code" href="classtvm_1_1meta__schedule_1_1PyBuilderNode.html#a4ea31c8060f7921ae79135a19bb0f20e">f_build</a>(build_inputs);</div>
+<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;  }</div>
+<div class="line"><a name="l00169"></a><span class="lineno"><a class="line" href="classtvm_1_1meta__schedule_1_1PyBuilderNode.html#a59c0a7db2116263121247721d577c9ff">  169</a></span>&#160;  <a class="code" href="classtvm_1_1meta__schedule_1_1PyBuilderNode.html#a59c0a7db2116263121247721d577c9ff">TVM_FFI_DECLARE_OBJECT_INFO_FINAL</a>(<span class="stringliteral">&quot;meta_schedule.PyBuilder&quot;</span>, <a class="code" href="classtvm_1_1meta__schedule_1_1PyBuilderNode.html">PyBuilderNode< [...]
+<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;};</div>
+<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160; </div>
+<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;}  <span class="comment">// namespace meta_schedule</span></div>
+<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;}  <span class="comment">// namespace tvm</span></div>
 <div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160; </div>
-<div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;}  <span class="comment">// namespace meta_schedule</span></div>
-<div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;}  <span class="comment">// namespace tvm</span></div>
-<div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160; </div>
-<div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;<span class="preprocessor">#endif  </span><span class="comment">// TVM_META_SCHEDULE_BUILDER_H_</span></div>
-<div class="ttc" id="aclasstvm_1_1IRModule_html"><div class="ttname"><a href="classtvm_1_1IRModule.html">tvm::IRModule</a></div><div class="ttdoc">Managed reference class to IRModuleNode.</div><div class="ttdef"><b>Definition:</b> module.h:257</div></div>
-<div class="ttc" id="aclasstvm_1_1Target_html"><div class="ttname"><a href="classtvm_1_1Target.html">tvm::Target</a></div><div class="ttdoc">Managed reference class to TargetNode.</div><div class="ttdef"><b>Definition:</b> target.h:193</div></div>
+<div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;<span class="preprocessor">#endif  </span><span class="comment">// TVM_META_SCHEDULE_BUILDER_H_</span></div>
+<div class="ttc" id="aclasstvm_1_1IRModule_html"><div class="ttname"><a href="classtvm_1_1IRModule.html">tvm::IRModule</a></div><div class="ttdoc">Managed reference class to IRModuleNode.</div><div class="ttdef"><b>Definition:</b> module.h:256</div></div>
+<div class="ttc" id="aclasstvm_1_1Target_html"><div class="ttname"><a href="classtvm_1_1Target.html">tvm::Target</a></div><div class="ttdoc">Managed reference class to TargetNode.</div><div class="ttdef"><b>Definition:</b> target.h:192</div></div>
 <div class="ttc" id="aclasstvm_1_1meta__schedule_1_1BuilderInputNode_html"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1BuilderInputNode.html">tvm::meta_schedule::BuilderInputNode</a></div><div class="ttdoc">The builder's input, containing an IRModule and the target.</div><div class="ttdef"><b>Definition:</b> builder.h:37</div></div>
-<div class="ttc" id="aclasstvm_1_1meta__schedule_1_1BuilderInputNode_html_a04d0f1274e396d9cdae6bc925144b0d3"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1BuilderInputNode.html#a04d0f1274e396d9cdae6bc925144b0d3">tvm::meta_schedule::BuilderInputNode::_type_key</a></div><div class="ttdeci">static constexpr const char * _type_key</div><div class="ttdef"><b>Definition:</b> builder.h:54</div></div>
+<div class="ttc" id="aclasstvm_1_1meta__schedule_1_1BuilderInputNode_html_a44eb70aab790324168dd3ce5e01fb8f0"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1BuilderInputNode.html#a44eb70aab790324168dd3ce5e01fb8f0">tvm::meta_schedule::BuilderInputNode::TVM_FFI_DECLARE_OBJECT_INFO_FINAL</a></div><div class="ttdeci">TVM_FFI_DECLARE_OBJECT_INFO_FINAL(&quot;meta_schedule.BuilderInput&quot;, BuilderInputNode, runtime::Object)</div></div>
 <div class="ttc" id="aclasstvm_1_1meta__schedule_1_1BuilderInputNode_html_a7b827d3cdfbdad980dcd9f3247cc6b94"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1BuilderInputNode.html#a7b827d3cdfbdad980dcd9f3247cc6b94">tvm::meta_schedule::BuilderInputNode::RegisterReflection</a></div><div class="ttdeci">static void RegisterReflection()</div><div class="ttdef"><b>Definition:</b> builder.h:46</div></div>
 <div class="ttc" id="aclasstvm_1_1meta__schedule_1_1BuilderInputNode_html_aadd3482be8f6c255bc9c5a7ac57e6117"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1BuilderInputNode.html#aadd3482be8f6c255bc9c5a7ac57e6117">tvm::meta_schedule::BuilderInputNode::params</a></div><div class="ttdeci">ffi::Optional&lt; ffi::Map&lt; ffi::String, runtime::Tensor &gt; &gt; params</div><div class="ttdoc">Parameters for Relax build module.</div><div class="ttdef"><b>Definition:</b> builder.h:44</ [...]
 <div class="ttc" id="aclasstvm_1_1meta__schedule_1_1BuilderInputNode_html_ab2fb058ca54af03b5bc47bf4fac23cf7"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1BuilderInputNode.html#ab2fb058ca54af03b5bc47bf4fac23cf7">tvm::meta_schedule::BuilderInputNode::mod</a></div><div class="ttdeci">IRModule mod</div><div class="ttdoc">The IRModule to be built.</div><div class="ttdef"><b>Definition:</b> builder.h:40</div></div>
-<div class="ttc" id="aclasstvm_1_1meta__schedule_1_1BuilderInputNode_html_aefeb9bc39e17443d9f4cb6683e5d2af6"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1BuilderInputNode.html#aefeb9bc39e17443d9f4cb6683e5d2af6">tvm::meta_schedule::BuilderInputNode::TVM_DECLARE_FINAL_OBJECT_INFO</a></div><div class="ttdeci">TVM_DECLARE_FINAL_OBJECT_INFO(BuilderInputNode, runtime::Object)</div></div>
 <div class="ttc" id="aclasstvm_1_1meta__schedule_1_1BuilderInputNode_html_afc001f3e427cfc8c05236b615cfd2868"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1BuilderInputNode.html#afc001f3e427cfc8c05236b615cfd2868">tvm::meta_schedule::BuilderInputNode::target</a></div><div class="ttdeci">Target target</div><div class="ttdoc">The target to be built for.</div><div class="ttdef"><b>Definition:</b> builder.h:42</div></div>
-<div class="ttc" id="aclasstvm_1_1meta__schedule_1_1BuilderInput_html"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1BuilderInput.html">tvm::meta_schedule::BuilderInput</a></div><div class="ttdoc">Managed reference to BuilderInputNode.</div><div class="ttdef"><b>Definition:</b> builder.h:62</div></div>
+<div class="ttc" id="aclasstvm_1_1meta__schedule_1_1BuilderInput_html"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1BuilderInput.html">tvm::meta_schedule::BuilderInput</a></div><div class="ttdoc">Managed reference to BuilderInputNode.</div><div class="ttdef"><b>Definition:</b> builder.h:61</div></div>
 <div class="ttc" id="aclasstvm_1_1meta__schedule_1_1BuilderInput_html_a2af6d3d23c9823d62e04ae53fd6952ab"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1BuilderInput.html#a2af6d3d23c9823d62e04ae53fd6952ab">tvm::meta_schedule::BuilderInput::BuilderInput</a></div><div class="ttdeci">BuilderInput(IRModule mod, Target target, ffi::Optional&lt; ffi::Map&lt; ffi::String, runtime::Tensor &gt;&gt; params=std::nullopt)</div><div class="ttdoc">Constructor of BuilderInput.</div></div>
-<div class="ttc" id="aclasstvm_1_1meta__schedule_1_1BuilderInput_html_ad42e2f1c6e5c48d4ec35d5e8b993ffa3"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1BuilderInput.html#ad42e2f1c6e5c48d4ec35d5e8b993ffa3">tvm::meta_schedule::BuilderInput::TVM_DEFINE_NOTNULLABLE_OBJECT_REF_METHODS</a></div><div class="ttdeci">TVM_DEFINE_NOTNULLABLE_OBJECT_REF_METHODS(BuilderInput, runtime::ObjectRef, BuilderInputNode)</div></div>
-<div class="ttc" id="aclasstvm_1_1meta__schedule_1_1BuilderNode_html"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1BuilderNode.html">tvm::meta_schedule::BuilderNode</a></div><div class="ttdoc">The abstract builder interface.</div><div class="ttdef"><b>Definition:</b> builder.h:112</div></div>
+<div class="ttc" id="aclasstvm_1_1meta__schedule_1_1BuilderInput_html_a6ad42832642fd9e9a139e743facc1679"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1BuilderInput.html#a6ad42832642fd9e9a139e743facc1679">tvm::meta_schedule::BuilderInput::TVM_FFI_DEFINE_OBJECT_REF_METHODS_NOTNULLABLE</a></div><div class="ttdeci">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NOTNULLABLE(BuilderInput, runtime::ObjectRef, BuilderInputNode)</div></div>
+<div class="ttc" id="aclasstvm_1_1meta__schedule_1_1BuilderNode_html"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1BuilderNode.html">tvm::meta_schedule::BuilderNode</a></div><div class="ttdoc">The abstract builder interface.</div><div class="ttdef"><b>Definition:</b> builder.h:111</div></div>
 <div class="ttc" id="aclasstvm_1_1meta__schedule_1_1BuilderNode_html_a220de0c39924fc803d62ba4ebb727cbd"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1BuilderNode.html#a220de0c39924fc803d62ba4ebb727cbd">tvm::meta_schedule::BuilderNode::Build</a></div><div class="ttdeci">virtual ffi::Array&lt; BuilderResult &gt; Build(const ffi::Array&lt; BuilderInput &gt; &amp;build_inputs)=0</div><div class="ttdoc">Generate the build results from build inputs.</div></div>
-<div class="ttc" id="aclasstvm_1_1meta__schedule_1_1BuilderNode_html_a294e7e5f9f01e8d11555691bcb375502"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1BuilderNode.html#a294e7e5f9f01e8d11555691bcb375502">tvm::meta_schedule::BuilderNode::FBuild</a></div><div class="ttdeci">ffi::TypedFunction&lt; ffi::Array&lt; BuilderResult &gt;(const ffi::Array&lt; BuilderInput &gt; &amp;)&gt; FBuild</div><div class="ttdoc">The function type of Build method.</div><div class="ttdef"><b>Definiti [...]
-<div class="ttc" id="aclasstvm_1_1meta__schedule_1_1BuilderNode_html_a43ba43181645b95ebf15e6f361eedd31"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1BuilderNode.html#a43ba43181645b95ebf15e6f361eedd31">tvm::meta_schedule::BuilderNode::TVM_DECLARE_BASE_OBJECT_INFO</a></div><div class="ttdeci">TVM_DECLARE_BASE_OBJECT_INFO(BuilderNode, runtime::Object)</div></div>
-<div class="ttc" id="aclasstvm_1_1meta__schedule_1_1BuilderNode_html_a63b990b091ef1031b807d178a508b116"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1BuilderNode.html#a63b990b091ef1031b807d178a508b116">tvm::meta_schedule::BuilderNode::_type_key</a></div><div class="ttdeci">static constexpr const char * _type_key</div><div class="ttdef"><b>Definition:</b> builder.h:129</div></div>
+<div class="ttc" id="aclasstvm_1_1meta__schedule_1_1BuilderNode_html_a294e7e5f9f01e8d11555691bcb375502"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1BuilderNode.html#a294e7e5f9f01e8d11555691bcb375502">tvm::meta_schedule::BuilderNode::FBuild</a></div><div class="ttdeci">ffi::TypedFunction&lt; ffi::Array&lt; BuilderResult &gt;(const ffi::Array&lt; BuilderInput &gt; &amp;)&gt; FBuild</div><div class="ttdoc">The function type of Build method.</div><div class="ttdef"><b>Definiti [...]
 <div class="ttc" id="aclasstvm_1_1meta__schedule_1_1BuilderNode_html_a7215cd095b70a5514388f5d38b3a3cca"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1BuilderNode.html#a7215cd095b70a5514388f5d38b3a3cca">tvm::meta_schedule::BuilderNode::~BuilderNode</a></div><div class="ttdeci">virtual ~BuilderNode()=default</div><div class="ttdoc">Default destructor.</div></div>
-<div class="ttc" id="aclasstvm_1_1meta__schedule_1_1BuilderResultNode_html"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1BuilderResultNode.html">tvm::meta_schedule::BuilderResultNode</a></div><div class="ttdoc">The builder's output, containing the artifact path or error message if any.</div><div class="ttdef"><b>Definition:</b> builder.h:77</div></div>
-<div class="ttc" id="aclasstvm_1_1meta__schedule_1_1BuilderResultNode_html_a51f14ee7b15a63f88255330461f46d16"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1BuilderResultNode.html#a51f14ee7b15a63f88255330461f46d16">tvm::meta_schedule::BuilderResultNode::RegisterReflection</a></div><div class="ttdeci">static void RegisterReflection()</div><div class="ttdef"><b>Definition:</b> builder.h:84</div></div>
-<div class="ttc" id="aclasstvm_1_1meta__schedule_1_1BuilderResultNode_html_a64c5be21fa64bac97140d483ad911dea"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1BuilderResultNode.html#a64c5be21fa64bac97140d483ad911dea">tvm::meta_schedule::BuilderResultNode::_type_key</a></div><div class="ttdeci">static constexpr const char * _type_key</div><div class="ttdef"><b>Definition:</b> builder.h:91</div></div>
-<div class="ttc" id="aclasstvm_1_1meta__schedule_1_1BuilderResultNode_html_a6b087252dc1aa515419f9e82f3ca0d1c"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1BuilderResultNode.html#a6b087252dc1aa515419f9e82f3ca0d1c">tvm::meta_schedule::BuilderResultNode::error_msg</a></div><div class="ttdeci">ffi::Optional&lt; ffi::String &gt; error_msg</div><div class="ttdoc">The error message if any.</div><div class="ttdef"><b>Definition:</b> builder.h:82</div></div>
-<div class="ttc" id="aclasstvm_1_1meta__schedule_1_1BuilderResultNode_html_ac9447e120bcdfc2d93d416e89452fd5d"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1BuilderResultNode.html#ac9447e120bcdfc2d93d416e89452fd5d">tvm::meta_schedule::BuilderResultNode::TVM_DECLARE_FINAL_OBJECT_INFO</a></div><div class="ttdeci">TVM_DECLARE_FINAL_OBJECT_INFO(BuilderResultNode, runtime::Object)</div></div>
-<div class="ttc" id="aclasstvm_1_1meta__schedule_1_1BuilderResultNode_html_ae41ba1fd11282d8d70717a77444c97dd"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1BuilderResultNode.html#ae41ba1fd11282d8d70717a77444c97dd">tvm::meta_schedule::BuilderResultNode::artifact_path</a></div><div class="ttdeci">ffi::Optional&lt; ffi::String &gt; artifact_path</div><div class="ttdoc">The path to the built artifact.</div><div class="ttdef"><b>Definition:</b> builder.h:80</div></div>
-<div class="ttc" id="aclasstvm_1_1meta__schedule_1_1BuilderResult_html"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1BuilderResult.html">tvm::meta_schedule::BuilderResult</a></div><div class="ttdoc">Managed reference to BuilderResultNode.</div><div class="ttdef"><b>Definition:</b> builder.h:99</div></div>
+<div class="ttc" id="aclasstvm_1_1meta__schedule_1_1BuilderNode_html_a97489b6a7ac55cd9bd849b3d519fd2a0"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1BuilderNode.html#a97489b6a7ac55cd9bd849b3d519fd2a0">tvm::meta_schedule::BuilderNode::TVM_FFI_DECLARE_OBJECT_INFO</a></div><div class="ttdeci">TVM_FFI_DECLARE_OBJECT_INFO(&quot;meta_schedule.Builder&quot;, BuilderNode, runtime::Object)</div></div>
+<div class="ttc" id="aclasstvm_1_1meta__schedule_1_1BuilderNode_html_adabad502a610ec412a276af1e69b54fe"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1BuilderNode.html#adabad502a610ec412a276af1e69b54fe">tvm::meta_schedule::BuilderNode::_type_mutable</a></div><div class="ttdeci">static constexpr const bool _type_mutable</div><div class="ttdef"><b>Definition:</b> builder.h:128</div></div>
+<div class="ttc" id="aclasstvm_1_1meta__schedule_1_1BuilderResultNode_html"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1BuilderResultNode.html">tvm::meta_schedule::BuilderResultNode</a></div><div class="ttdoc">The builder's output, containing the artifact path or error message if any.</div><div class="ttdef"><b>Definition:</b> builder.h:76</div></div>
+<div class="ttc" id="aclasstvm_1_1meta__schedule_1_1BuilderResultNode_html_a51f14ee7b15a63f88255330461f46d16"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1BuilderResultNode.html#a51f14ee7b15a63f88255330461f46d16">tvm::meta_schedule::BuilderResultNode::RegisterReflection</a></div><div class="ttdeci">static void RegisterReflection()</div><div class="ttdef"><b>Definition:</b> builder.h:83</div></div>
+<div class="ttc" id="aclasstvm_1_1meta__schedule_1_1BuilderResultNode_html_a6b087252dc1aa515419f9e82f3ca0d1c"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1BuilderResultNode.html#a6b087252dc1aa515419f9e82f3ca0d1c">tvm::meta_schedule::BuilderResultNode::error_msg</a></div><div class="ttdeci">ffi::Optional&lt; ffi::String &gt; error_msg</div><div class="ttdoc">The error message if any.</div><div class="ttdef"><b>Definition:</b> builder.h:81</div></div>
+<div class="ttc" id="aclasstvm_1_1meta__schedule_1_1BuilderResultNode_html_aa9ac191daadf670ba1da1a7b018ad590"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1BuilderResultNode.html#aa9ac191daadf670ba1da1a7b018ad590">tvm::meta_schedule::BuilderResultNode::TVM_FFI_DECLARE_OBJECT_INFO_FINAL</a></div><div class="ttdeci">TVM_FFI_DECLARE_OBJECT_INFO_FINAL(&quot;meta_schedule.BuilderResult&quot;, BuilderResultNode, runtime::Object)</div></div>
+<div class="ttc" id="aclasstvm_1_1meta__schedule_1_1BuilderResultNode_html_ae41ba1fd11282d8d70717a77444c97dd"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1BuilderResultNode.html#ae41ba1fd11282d8d70717a77444c97dd">tvm::meta_schedule::BuilderResultNode::artifact_path</a></div><div class="ttdeci">ffi::Optional&lt; ffi::String &gt; artifact_path</div><div class="ttdoc">The path to the built artifact.</div><div class="ttdef"><b>Definition:</b> builder.h:79</div></div>
+<div class="ttc" id="aclasstvm_1_1meta__schedule_1_1BuilderResult_html"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1BuilderResult.html">tvm::meta_schedule::BuilderResult</a></div><div class="ttdoc">Managed reference to BuilderResultNode.</div><div class="ttdef"><b>Definition:</b> builder.h:97</div></div>
+<div class="ttc" id="aclasstvm_1_1meta__schedule_1_1BuilderResult_html_a9daf48054930ec155838c04abd1097b9"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1BuilderResult.html#a9daf48054930ec155838c04abd1097b9">tvm::meta_schedule::BuilderResult::TVM_FFI_DEFINE_OBJECT_REF_METHODS_NOTNULLABLE</a></div><div class="ttdeci">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NOTNULLABLE(BuilderResult, runtime::ObjectRef, BuilderResultNode)</div></div>
 <div class="ttc" id="aclasstvm_1_1meta__schedule_1_1BuilderResult_html_aa0a1254f9899ac775b02d6d1bfffc783"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1BuilderResult.html#aa0a1254f9899ac775b02d6d1bfffc783">tvm::meta_schedule::BuilderResult::BuilderResult</a></div><div class="ttdeci">BuilderResult(ffi::Optional&lt; ffi::String &gt; artifact_path, ffi::Optional&lt; ffi::String &gt; error_msg)</div><div class="ttdoc">Constructor of BuilderResult.</div></div>
-<div class="ttc" id="aclasstvm_1_1meta__schedule_1_1BuilderResult_html_ac032343c5fa8d7136684a04e63f7eeef"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1BuilderResult.html#ac032343c5fa8d7136684a04e63f7eeef">tvm::meta_schedule::BuilderResult::TVM_DEFINE_NOTNULLABLE_OBJECT_REF_METHODS</a></div><div class="ttdeci">TVM_DEFINE_NOTNULLABLE_OBJECT_REF_METHODS(BuilderResult, runtime::ObjectRef, BuilderResultNode)</div></div>
-<div class="ttc" id="aclasstvm_1_1meta__schedule_1_1Builder_html"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1Builder.html">tvm::meta_schedule::Builder</a></div><div class="ttdoc">Managed reference to BuilderNode.</div><div class="ttdef"><b>Definition:</b> builder.h:137</div></div>
-<div class="ttc" id="aclasstvm_1_1meta__schedule_1_1Builder_html_a2a7aa2d52f0f106a9a13c9052b8a22e0"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1Builder.html#a2a7aa2d52f0f106a9a13c9052b8a22e0">tvm::meta_schedule::Builder::Builder</a></div><div class="ttdeci">Builder(ObjectPtr&lt; BuilderNode &gt; data)</div><div class="ttdoc">Constructor from ObjectPtr&lt;BuilderNode&gt;.</div><div class="ttdef"><b>Definition:</b> builder.h:143</div></div>
+<div class="ttc" id="aclasstvm_1_1meta__schedule_1_1Builder_html"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1Builder.html">tvm::meta_schedule::Builder</a></div><div class="ttdoc">Managed reference to BuilderNode.</div><div class="ttdef"><b>Definition:</b> builder.h:136</div></div>
+<div class="ttc" id="aclasstvm_1_1meta__schedule_1_1Builder_html_a2a7aa2d52f0f106a9a13c9052b8a22e0"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1Builder.html#a2a7aa2d52f0f106a9a13c9052b8a22e0">tvm::meta_schedule::Builder::Builder</a></div><div class="ttdeci">Builder(ObjectPtr&lt; BuilderNode &gt; data)</div><div class="ttdoc">Constructor from ObjectPtr&lt;BuilderNode&gt;.</div><div class="ttdef"><b>Definition:</b> builder.h:142</div></div>
 <div class="ttc" id="aclasstvm_1_1meta__schedule_1_1Builder_html_a91fe7e36ba1e213e65b59f05a685e89f"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1Builder.html#a91fe7e36ba1e213e65b59f05a685e89f">tvm::meta_schedule::Builder::PyBuilder</a></div><div class="ttdeci">static Builder PyBuilder(BuilderNode::FBuild f_build)</div><div class="ttdoc">Create a builder with customized build method on the python-side.</div></div>
-<div class="ttc" id="aclasstvm_1_1meta__schedule_1_1Builder_html_aeea720ca59791282cd8ec2729ce14f13"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1Builder.html#aeea720ca59791282cd8ec2729ce14f13">tvm::meta_schedule::Builder::TVM_DEFINE_MUTABLE_NOTNULLABLE_OBJECT_REF_METHODS</a></div><div class="ttdeci">TVM_DEFINE_MUTABLE_NOTNULLABLE_OBJECT_REF_METHODS(Builder, runtime::ObjectRef, BuilderNode)</div></div>
-<div class="ttc" id="aclasstvm_1_1meta__schedule_1_1PyBuilderNode_html"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1PyBuilderNode.html">tvm::meta_schedule::PyBuilderNode</a></div><div class="ttdoc">An abstract builder with customized build method on the python-side.</div><div class="ttdef"><b>Definition:</b> builder.h:156</div></div>
-<div class="ttc" id="aclasstvm_1_1meta__schedule_1_1PyBuilderNode_html_a15408f0424caee62975cb7ffd43f72d9"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1PyBuilderNode.html#a15408f0424caee62975cb7ffd43f72d9">tvm::meta_schedule::PyBuilderNode::TVM_DECLARE_FINAL_OBJECT_INFO</a></div><div class="ttdeci">TVM_DECLARE_FINAL_OBJECT_INFO(PyBuilderNode, BuilderNode)</div></div>
-<div class="ttc" id="aclasstvm_1_1meta__schedule_1_1PyBuilderNode_html_a4ea31c8060f7921ae79135a19bb0f20e"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1PyBuilderNode.html#a4ea31c8060f7921ae79135a19bb0f20e">tvm::meta_schedule::PyBuilderNode::f_build</a></div><div class="ttdeci">FBuild f_build</div><div class="ttdoc">The packed function to the Build function.</div><div class="ttdef"><b>Definition:</b> builder.h:159</div></div>
-<div class="ttc" id="aclasstvm_1_1meta__schedule_1_1PyBuilderNode_html_a90d4630c53de514ba47d2bf31e906db0"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1PyBuilderNode.html#a90d4630c53de514ba47d2bf31e906db0">tvm::meta_schedule::PyBuilderNode::Build</a></div><div class="ttdeci">ffi::Array&lt; BuilderResult &gt; Build(const ffi::Array&lt; BuilderInput &gt; &amp;build_inputs) final</div><div class="ttdoc">Generate the build results from build inputs.</div><div class="ttdef"><b>De [...]
-<div class="ttc" id="aclasstvm_1_1meta__schedule_1_1PyBuilderNode_html_ac974d99577077ad9e1b80887bb528bc6"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1PyBuilderNode.html#ac974d99577077ad9e1b80887bb528bc6">tvm::meta_schedule::PyBuilderNode::_type_key</a></div><div class="ttdeci">static constexpr const char * _type_key</div><div class="ttdef"><b>Definition:</b> builder.h:171</div></div>
-<div class="ttc" id="aclasstvm_1_1meta__schedule_1_1PyBuilderNode_html_ae9c7f6a94e6516acf6f8f303951247e5"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1PyBuilderNode.html#ae9c7f6a94e6516acf6f8f303951247e5">tvm::meta_schedule::PyBuilderNode::RegisterReflection</a></div><div class="ttdeci">static void RegisterReflection()</div><div class="ttdef"><b>Definition:</b> builder.h:161</div></div>
+<div class="ttc" id="aclasstvm_1_1meta__schedule_1_1Builder_html_ac5cd769d74cb9d8d3a9d8b23449468e6"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1Builder.html#ac5cd769d74cb9d8d3a9d8b23449468e6">tvm::meta_schedule::Builder::TVM_FFI_DEFINE_OBJECT_REF_METHODS_NOTNULLABLE</a></div><div class="ttdeci">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NOTNULLABLE(Builder, runtime::ObjectRef, BuilderNode)</div></div>
+<div class="ttc" id="aclasstvm_1_1meta__schedule_1_1PyBuilderNode_html"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1PyBuilderNode.html">tvm::meta_schedule::PyBuilderNode</a></div><div class="ttdoc">An abstract builder with customized build method on the python-side.</div><div class="ttdef"><b>Definition:</b> builder.h:155</div></div>
+<div class="ttc" id="aclasstvm_1_1meta__schedule_1_1PyBuilderNode_html_a4ea31c8060f7921ae79135a19bb0f20e"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1PyBuilderNode.html#a4ea31c8060f7921ae79135a19bb0f20e">tvm::meta_schedule::PyBuilderNode::f_build</a></div><div class="ttdeci">FBuild f_build</div><div class="ttdoc">The packed function to the Build function.</div><div class="ttdef"><b>Definition:</b> builder.h:158</div></div>
+<div class="ttc" id="aclasstvm_1_1meta__schedule_1_1PyBuilderNode_html_a59c0a7db2116263121247721d577c9ff"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1PyBuilderNode.html#a59c0a7db2116263121247721d577c9ff">tvm::meta_schedule::PyBuilderNode::TVM_FFI_DECLARE_OBJECT_INFO_FINAL</a></div><div class="ttdeci">TVM_FFI_DECLARE_OBJECT_INFO_FINAL(&quot;meta_schedule.PyBuilder&quot;, PyBuilderNode, BuilderNode)</div></div>
+<div class="ttc" id="aclasstvm_1_1meta__schedule_1_1PyBuilderNode_html_a90d4630c53de514ba47d2bf31e906db0"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1PyBuilderNode.html#a90d4630c53de514ba47d2bf31e906db0">tvm::meta_schedule::PyBuilderNode::Build</a></div><div class="ttdeci">ffi::Array&lt; BuilderResult &gt; Build(const ffi::Array&lt; BuilderInput &gt; &amp;build_inputs) final</div><div class="ttdoc">Generate the build results from build inputs.</div><div class="ttdef"><b>De [...]
+<div class="ttc" id="aclasstvm_1_1meta__schedule_1_1PyBuilderNode_html_ae9c7f6a94e6516acf6f8f303951247e5"><div class="ttname"><a href="classtvm_1_1meta__schedule_1_1PyBuilderNode.html#ae9c7f6a94e6516acf6f8f303951247e5">tvm::meta_schedule::PyBuilderNode::RegisterReflection</a></div><div class="ttdeci">static void RegisterReflection()</div><div class="ttdef"><b>Definition:</b> builder.h:160</div></div>
 <div class="ttc" id="air_2module_8h_html"><div class="ttname"><a href="ir_2module_8h.html">module.h</a></div><div class="ttdoc">IRModule that holds the functions and type definitions.</div></div>
 <div class="ttc" id="anamespacetvm_1_1ffi_1_1reflection_html"><div class="ttname"><a href="namespacetvm_1_1ffi_1_1reflection.html">tvm::ffi::reflection</a></div><div class="ttdef"><b>Definition:</b> repr_printer.h:91</div></div>
 <div class="ttc" id="anamespacetvm_1_1topi_html_aaa95d3ad68932ab206efbe0a326db6a2"><div class="ttname"><a href="namespacetvm_1_1topi.html#aaa95d3ad68932ab206efbe0a326db6a2">tvm::topi::mod</a></div><div class="ttdeci">tvm::PrimExpr mod(const tvm::PrimExpr &amp;a, const tvm::PrimExpr &amp;b)</div><div class="ttdef"><b>Definition:</b> broadcast.h:308</div></div>
diff --git a/docs/reference/api/doxygen/c__backend__api_8h_source.html b/docs/reference/api/doxygen/c__backend__api_8h_source.html
index eaf0365242..ed51b759d3 100644
--- a/docs/reference/api/doxygen/c__backend__api_8h_source.html
+++ b/docs/reference/api/doxygen/c__backend__api_8h_source.html
@@ -129,8 +129,8 @@ $(function() {
 <div class="ttc" id="ac__backend__api_8h_html_a91e87c39129de4872be763ce4f5238d4"><div class="ttname"><a href="c__backend__api_8h.html#a91e87c39129de4872be763ce4f5238d4">TVMBackendGetFuncFromEnv</a></div><div class="ttdeci">int TVMBackendGetFuncFromEnv(void *mod_node, const char *func_name, TVMFFIObjectHandle *out)</div><div class="ttdoc">Backend function for modules to get function from its environment mod_node (its imports and global fu...</div></div>
 <div class="ttc" id="ac__backend__api_8h_html_ac1b48128210969500e27aad08a7fe51b"><div class="ttname"><a href="c__backend__api_8h.html#ac1b48128210969500e27aad08a7fe51b">FTVMParallelLambda</a></div><div class="ttdeci">int(* FTVMParallelLambda)(int task_id, TVMParallelGroupEnv *penv, void *cdata)</div><div class="ttdoc">The callback function to execute a parallel lambda.</div><div class="ttdef"><b>Definition:</b> c_backend_api.h:97</div></div>
 <div class="ttc" id="ac__backend__api_8h_html_ae70bd3ee026eb55b438ada05b08f0ce8"><div class="ttname"><a href="c__backend__api_8h.html#ae70bd3ee026eb55b438ada05b08f0ce8">TVMBackendRunOnce</a></div><div class="ttdeci">int TVMBackendRunOnce(void **handle, int(*f)(void *), void *cdata, int nbytes)</div><div class="ttdoc">Simple static initialization function. Run f once and set handle to be not null. This function is mai...</div></div>
-<div class="ttc" id="anamespacetvm_1_1tir_1_1attr_html_a61b1ef1047fb722a4e5ec2167c9963d7"><div class="ttname"><a href="namespacetvm_1_1tir_1_1attr.html#a61b1ef1047fb722a4e5ec2167c9963d7">tvm::tir::attr::device_id</a></div><div class="ttdeci">constexpr const char * device_id</div><div class="ttdoc">The allocation device for global malloc in host.</div><div class="ttdef"><b>Definition:</b> stmt.h:1095</div></div>
-<div class="ttc" id="anamespacetvm_1_1tir_1_1attr_html_a7e4e7cd47471a9089022214d63d24206"><div class="ttname"><a href="namespacetvm_1_1tir_1_1attr.html#a7e4e7cd47471a9089022214d63d24206">tvm::tir::attr::device_type</a></div><div class="ttdeci">constexpr const char * device_type</div><div class="ttdoc">The device type.</div><div class="ttdef"><b>Definition:</b> stmt.h:1097</div></div>
+<div class="ttc" id="anamespacetvm_1_1tir_1_1attr_html_a61b1ef1047fb722a4e5ec2167c9963d7"><div class="ttname"><a href="namespacetvm_1_1tir_1_1attr.html#a61b1ef1047fb722a4e5ec2167c9963d7">tvm::tir::attr::device_id</a></div><div class="ttdeci">constexpr const char * device_id</div><div class="ttdoc">The allocation device for global malloc in host.</div><div class="ttdef"><b>Definition:</b> stmt.h:1061</div></div>
+<div class="ttc" id="anamespacetvm_1_1tir_1_1attr_html_a7e4e7cd47471a9089022214d63d24206"><div class="ttname"><a href="namespacetvm_1_1tir_1_1attr.html#a7e4e7cd47471a9089022214d63d24206">tvm::tir::attr::device_type</a></div><div class="ttdeci">constexpr const char * device_type</div><div class="ttdoc">The device type.</div><div class="ttdef"><b>Definition:</b> stmt.h:1063</div></div>
 <div class="ttc" id="aruntime_2base_8h_html"><div class="ttname"><a href="runtime_2base_8h.html">base.h</a></div></div>
 <div class="ttc" id="astructTVMParallelGroupEnv_html"><div class="ttname"><a href="structTVMParallelGroupEnv.html">TVMParallelGroupEnv</a></div><div class="ttdoc">Environment for TVM parallel task.</div><div class="ttdef"><b>Definition:</b> c_backend_api.h:82</div></div>
 <div class="ttc" id="astructTVMParallelGroupEnv_html_a0633fa0370c01f1ab38948a53801d90c"><div class="ttname"><a href="structTVMParallelGroupEnv.html#a0633fa0370c01f1ab38948a53801d90c">TVMParallelGroupEnv::sync_handle</a></div><div class="ttdeci">void * sync_handle</div><div class="ttdoc">Auxiliary used for synchronization.</div><div class="ttdef"><b>Definition:</b> c_backend_api.h:86</div></div>
diff --git a/docs/reference/api/doxygen/ccl_8h_source.html b/docs/reference/api/doxygen/ccl_8h_source.html
index 32fb469f09..2f12321e68 100644
--- a/docs/reference/api/doxygen/ccl_8h_source.html
+++ b/docs/reference/api/doxygen/ccl_8h_source.html
@@ -111,76 +111,68 @@ $(function() {
 <div class="line"><a name="l00045"></a><span class="lineno">   45</span>&#160;                <span class="stringliteral">&quot;Whether the reduction operation performs in group or globally or in group as &quot;</span></div>
 <div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;                <span class="stringliteral">&quot;default.&quot;</span>);</div>
 <div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;  }</div>
-<div class="line"><a name="l00048"></a><span class="lineno">   48</span>&#160; </div>
-<div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="structtvm_1_1relax_1_1AllReduceAttrs.html#a93643ac435bbb2de9113cfd57cc3a1a3">   49</a></span>&#160;  <span class="keyword">static</span> constexpr <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="structtvm_1_1relax_1_1AllReduceAttrs.html#a93643ac435bbb2de9113cfd57cc3a1a3">_type_key</a> = <span class="stringliteral">&quot;relax.attrs.AllReduceAttrs&quot;</span>;</div>
-<div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="structtvm_1_1relax_1_1AllReduceAttrs.html#a5d6e7fa4ad55420ee5f2d90d30207783">   50</a></span>&#160;  <a class="code" href="structtvm_1_1relax_1_1AllReduceAttrs.html#a5d6e7fa4ad55420ee5f2d90d30207783">TVM_FFI_DECLARE_FINAL_OBJECT_INFO</a>(<a class="code" href="structtvm_1_1relax_1_1AllReduceAttrs.html">AllReduceAttrs</a>, <a class="code" href="classtvm_1_1BaseAttrsNode.html">BaseAttrsNode</a>);</div>
-<div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;};  <span class="comment">// struct AllReduceAttrs</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160; </div>
-<div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="structtvm_1_1relax_1_1AllGatherAttrs.html">   54</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structtvm_1_1relax_1_1AllGatherAttrs.html">AllGatherAttrs</a> : <span class="keyword">public</span> <a class="code" href="classtvm_1_1AttrsNodeReflAdapter.html">tvm::AttrsNodeReflAdapter</a>&lt;AllGatherAttrs&gt; {</div>
-<div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="structtvm_1_1relax_1_1AllGatherAttrs.html#aa8a95de256fe1565306b3f28b782c873">   55</a></span>&#160;  <span class="keywordtype">int</span> <a class="code" href="structtvm_1_1relax_1_1AllGatherAttrs.html#aa8a95de256fe1565306b3f28b782c873">num_workers</a>;</div>
-<div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="structtvm_1_1relax_1_1AllGatherAttrs.html#ad35adcd63120d6ba35ec30027563128e">   56</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="structtvm_1_1relax_1_1AllGatherAttrs.html#ad35adcd63120d6ba35ec30027563128e">in_group</a>;</div>
-<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160; </div>
-<div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="structtvm_1_1relax_1_1AllGatherAttrs.html#a65cdddab8fc8f4a1c27e106e9c86b67c">   58</a></span>&#160;  <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="structtvm_1_1relax_1_1AllGatherAttrs.html#a65cdddab8fc8f4a1c27e106e9c86b67c">RegisterReflection</a>() {</div>
-<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;    <span class="keyword">namespace </span>refl = <a class="code" href="namespacetvm_1_1ffi_1_1reflection.html">tvm::ffi::reflection</a>;</div>
-<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;    refl::ObjectDef&lt;AllGatherAttrs&gt;()</div>
-<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;        .def_ro(<span class="stringliteral">&quot;num_workers&quot;</span>, &amp;<a class="code" href="structtvm_1_1relax_1_1AllGatherAttrs.html#aa8a95de256fe1565306b3f28b782c873">AllGatherAttrs::num_workers</a>,</div>
-<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;                <span class="stringliteral">&quot;The number of workers, also the number of parts the given buffer should be &quot;</span></div>
-<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;                <span class="stringliteral">&quot;chunked into.&quot;</span>)</div>
-<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;        .def_ro(<span class="stringliteral">&quot;in_group&quot;</span>, &amp;<a class="code" href="structtvm_1_1relax_1_1AllGatherAttrs.html#ad35adcd63120d6ba35ec30027563128e">AllGatherAttrs::in_group</a>,</div>
-<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;                <span class="stringliteral">&quot;Whether the allgather operation performs in group or globally or in group as &quot;</span></div>
-<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;                <span class="stringliteral">&quot;default.&quot;</span>);</div>
-<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;  }</div>
+<div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="structtvm_1_1relax_1_1AllReduceAttrs.html#ab10ac5fa354283552ccf49019505f2d2">   48</a></span>&#160;  <a class="code" href="structtvm_1_1relax_1_1AllReduceAttrs.html#ab10ac5fa354283552ccf49019505f2d2">TVM_FFI_DECLARE_OBJECT_INFO_FINAL</a>(<span class="stringliteral">&quot;relax.attrs.AllReduceAttrs&quot;</span>, <a class="code" href="structtvm_1_1relax_1_1AllReduceAttrs.html">AllReduceAttrs</a>, <a class="co [...]
+<div class="line"><a name="l00049"></a><span class="lineno">   49</span>&#160;};  <span class="comment">// struct AllReduceAttrs</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno">   50</span>&#160; </div>
+<div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="structtvm_1_1relax_1_1AllGatherAttrs.html">   52</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structtvm_1_1relax_1_1AllGatherAttrs.html">AllGatherAttrs</a> : <span class="keyword">public</span> <a class="code" href="classtvm_1_1AttrsNodeReflAdapter.html">tvm::AttrsNodeReflAdapter</a>&lt;AllGatherAttrs&gt; {</div>
+<div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="structtvm_1_1relax_1_1AllGatherAttrs.html#aa8a95de256fe1565306b3f28b782c873">   53</a></span>&#160;  <span class="keywordtype">int</span> <a class="code" href="structtvm_1_1relax_1_1AllGatherAttrs.html#aa8a95de256fe1565306b3f28b782c873">num_workers</a>;</div>
+<div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="structtvm_1_1relax_1_1AllGatherAttrs.html#ad35adcd63120d6ba35ec30027563128e">   54</a></span>&#160;  <span class="keywordtype">bool</span> <a class="code" href="structtvm_1_1relax_1_1AllGatherAttrs.html#ad35adcd63120d6ba35ec30027563128e">in_group</a>;</div>
+<div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160; </div>
+<div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="structtvm_1_1relax_1_1AllGatherAttrs.html#a65cdddab8fc8f4a1c27e106e9c86b67c">   56</a></span>&#160;  <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="structtvm_1_1relax_1_1AllGatherAttrs.html#a65cdddab8fc8f4a1c27e106e9c86b67c">RegisterReflection</a>() {</div>
+<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;    <span class="keyword">namespace </span>refl = <a class="code" href="namespacetvm_1_1ffi_1_1reflection.html">tvm::ffi::reflection</a>;</div>
+<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;    refl::ObjectDef&lt;AllGatherAttrs&gt;()</div>
+<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;        .def_ro(<span class="stringliteral">&quot;num_workers&quot;</span>, &amp;<a class="code" href="structtvm_1_1relax_1_1AllGatherAttrs.html#aa8a95de256fe1565306b3f28b782c873">AllGatherAttrs::num_workers</a>,</div>
+<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;                <span class="stringliteral">&quot;The number of workers, also the number of parts the given buffer should be &quot;</span></div>
+<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;                <span class="stringliteral">&quot;chunked into.&quot;</span>)</div>
+<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;        .def_ro(<span class="stringliteral">&quot;in_group&quot;</span>, &amp;<a class="code" href="structtvm_1_1relax_1_1AllGatherAttrs.html#ad35adcd63120d6ba35ec30027563128e">AllGatherAttrs::in_group</a>,</div>
+<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;                <span class="stringliteral">&quot;Whether the allgather operation performs in group or globally or in group as &quot;</span></div>
+<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;                <span class="stringliteral">&quot;default.&quot;</span>);</div>
+<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;  }</div>
+<div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="structtvm_1_1relax_1_1AllGatherAttrs.html#ac2da1e90052714183ac9c10161fa6810">   66</a></span>&#160;  <a class="code" href="structtvm_1_1relax_1_1AllGatherAttrs.html#ac2da1e90052714183ac9c10161fa6810">TVM_FFI_DECLARE_OBJECT_INFO_FINAL</a>(<span class="stringliteral">&quot;relax.attrs.AllGatherAttrs&quot;</span>, <a class="code" href="structtvm_1_1relax_1_1AllGatherAttrs.html">AllGatherAttrs</a>, <a class="co [...]
+<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;};  <span class="comment">// struct AllGatherAttrs</span></div>
 <div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160; </div>
-<div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="structtvm_1_1relax_1_1AllGatherAttrs.html#a78145c9987da1b3d2cab5f444a99dcb3">   69</a></span>&#160;  <span class="keyword">static</span> constexpr <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="structtvm_1_1relax_1_1AllGatherAttrs.html#a78145c9987da1b3d2cab5f444a99dcb3">_type_key</a> = <span class="stringliteral">&quot;relax.attrs.AllGatherAttrs&quot;</span>;</div>
-<div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="structtvm_1_1relax_1_1AllGatherAttrs.html#a883775535dedc7a3db877cc9b3dd5a0e">   70</a></span>&#160;  <a class="code" href="structtvm_1_1relax_1_1AllGatherAttrs.html#a883775535dedc7a3db877cc9b3dd5a0e">TVM_FFI_DECLARE_FINAL_OBJECT_INFO</a>(<a class="code" href="structtvm_1_1relax_1_1AllGatherAttrs.html">AllGatherAttrs</a>, <a class="code" href="classtvm_1_1BaseAttrsNode.html">BaseAttrsNode</a>);</div>
-<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;};  <span class="comment">// struct AllGatherAttrs</span></div>
-<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160; </div>
-<div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="structtvm_1_1relax_1_1ScatterCollectiveAttrs.html">   74</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structtvm_1_1relax_1_1ScatterCollectiveAttrs.html">ScatterCollectiveAttrs</a> : <span class="keyword">public</span> <a class="code" href="classtvm_1_1AttrsNodeReflAdapter.html">tvm::AttrsNodeReflAdapter</a>&lt;ScatterCollectiveAttrs&gt; {</div>
-<div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="structtvm_1_1relax_1_1ScatterCollectiveAttrs.html#a3e48efc9aec46c1eef10dd2f9ad8f84e">   75</a></span>&#160;  <span class="keywordtype">int</span> <a class="code" href="structtvm_1_1relax_1_1ScatterCollectiveAttrs.html#a3e48efc9aec46c1eef10dd2f9ad8f84e">num_workers</a>;</div>
-<div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="structtvm_1_1relax_1_1ScatterCollectiveAttrs.html#a71748308f84732284f57016f62389a4d">   76</a></span>&#160;  <span class="keywordtype">int</span> <a class="code" href="structtvm_1_1relax_1_1ScatterCollectiveAttrs.html#a71748308f84732284f57016f62389a4d">axis</a>;</div>
-<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160; </div>
-<div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="structtvm_1_1relax_1_1ScatterCollectiveAttrs.html#a28bdc285d3de0023b5ca883bd3db5ea0">   78</a></span>&#160;  <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="structtvm_1_1relax_1_1ScatterCollectiveAttrs.html#a28bdc285d3de0023b5ca883bd3db5ea0">RegisterReflection</a>() {</div>
-<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;    <span class="keyword">namespace </span>refl = <a class="code" href="namespacetvm_1_1ffi_1_1reflection.html">tvm::ffi::reflection</a>;</div>
-<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;    refl::ObjectDef&lt;ScatterCollectiveAttrs&gt;()</div>
-<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;        .def_ro(<span class="stringliteral">&quot;num_workers&quot;</span>, &amp;<a class="code" href="structtvm_1_1relax_1_1ScatterCollectiveAttrs.html#a3e48efc9aec46c1eef10dd2f9ad8f84e">ScatterCollectiveAttrs::num_workers</a>,</div>
-<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;                <span class="stringliteral">&quot;The number of workers, also the number of parts the given buffer should be &quot;</span></div>
-<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;                <span class="stringliteral">&quot;chunked into.&quot;</span>)</div>
-<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;        .def_ro(<span class="stringliteral">&quot;axis&quot;</span>, &amp;<a class="code" href="structtvm_1_1relax_1_1ScatterCollectiveAttrs.html#a71748308f84732284f57016f62389a4d">ScatterCollectiveAttrs::axis</a>,</div>
-<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;                <span class="stringliteral">&quot;The axis of the tensor to be scattered. The tensor will be chunked along &quot;</span></div>
-<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;                <span class="stringliteral">&quot;this axis.&quot;</span>);</div>
-<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;  }</div>
-<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160; </div>
-<div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="structtvm_1_1relax_1_1ScatterCollectiveAttrs.html#a84205ce0b58d3faf2644e7db1ed95739">   89</a></span>&#160;  <span class="keyword">static</span> constexpr <span class="keyword">const</span> <span class="keywordtype">char</span>* <a class="code" href="structtvm_1_1relax_1_1ScatterCollectiveAttrs.html#a84205ce0b58d3faf2644e7db1ed95739">_type_key</a> = <span class="stringliteral">&quot;relax.attrs.ScatterColle [...]
-<div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="structtvm_1_1relax_1_1ScatterCollectiveAttrs.html#a56c7a42f540f289c8f72d714e4fd0991">   90</a></span>&#160;  <a class="code" href="structtvm_1_1relax_1_1ScatterCollectiveAttrs.html#a56c7a42f540f289c8f72d714e4fd0991">TVM_FFI_DECLARE_FINAL_OBJECT_INFO</a>(<a class="code" href="structtvm_1_1relax_1_1ScatterCollectiveAttrs.html">ScatterCollectiveAttrs</a>, <a class="code" href="classtvm_1_1BaseAttrsNode.html">B [...]
-<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;};  <span class="comment">// struct ScatterCollectiveAttrs</span></div>
-<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160; </div>
-<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;}  <span class="comment">// namespace relax</span></div>
-<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;}  <span class="comment">// namespace tvm</span></div>
-<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160; </div>
-<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;<span class="preprocessor">#endif  </span><span class="comment">// TVM_RELAX_ATTRS_CCL_H_</span></div>
-<div class="ttc" id="aclasstvm_1_1AttrsNodeReflAdapter_html"><div class="ttname"><a href="classtvm_1_1AttrsNodeReflAdapter.html">tvm::AttrsNodeReflAdapter</a></div><div class="ttdoc">Adapter for AttrsNode with the new reflection API.</div><div class="ttdef"><b>Definition:</b> attrs.h:388</div></div>
-<div class="ttc" id="aclasstvm_1_1BaseAttrsNode_html"><div class="ttname"><a href="classtvm_1_1BaseAttrsNode.html">tvm::BaseAttrsNode</a></div><div class="ttdoc">Base class of all attribute class.</div><div class="ttdef"><b>Definition:</b> attrs.h:103</div></div>
+<div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="structtvm_1_1relax_1_1ScatterCollectiveAttrs.html">   70</a></span>&#160;<span class="keyword">struct </span><a class="code" href="structtvm_1_1relax_1_1ScatterCollectiveAttrs.html">ScatterCollectiveAttrs</a> : <span class="keyword">public</span> <a class="code" href="classtvm_1_1AttrsNodeReflAdapter.html">tvm::AttrsNodeReflAdapter</a>&lt;ScatterCollectiveAttrs&gt; {</div>
+<div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="structtvm_1_1relax_1_1ScatterCollectiveAttrs.html#a3e48efc9aec46c1eef10dd2f9ad8f84e">   71</a></span>&#160;  <span class="keywordtype">int</span> <a class="code" href="structtvm_1_1relax_1_1ScatterCollectiveAttrs.html#a3e48efc9aec46c1eef10dd2f9ad8f84e">num_workers</a>;</div>
+<div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="structtvm_1_1relax_1_1ScatterCollectiveAttrs.html#a71748308f84732284f57016f62389a4d">   72</a></span>&#160;  <span class="keywordtype">int</span> <a class="code" href="structtvm_1_1relax_1_1ScatterCollectiveAttrs.html#a71748308f84732284f57016f62389a4d">axis</a>;</div>
+<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160; </div>
+<div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="structtvm_1_1relax_1_1ScatterCollectiveAttrs.html#a28bdc285d3de0023b5ca883bd3db5ea0">   74</a></span>&#160;  <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="structtvm_1_1relax_1_1ScatterCollectiveAttrs.html#a28bdc285d3de0023b5ca883bd3db5ea0">RegisterReflection</a>() {</div>
+<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;    <span class="keyword">namespace </span>refl = <a class="code" href="namespacetvm_1_1ffi_1_1reflection.html">tvm::ffi::reflection</a>;</div>
+<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;    refl::ObjectDef&lt;ScatterCollectiveAttrs&gt;()</div>
+<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;        .def_ro(<span class="stringliteral">&quot;num_workers&quot;</span>, &amp;<a class="code" href="structtvm_1_1relax_1_1ScatterCollectiveAttrs.html#a3e48efc9aec46c1eef10dd2f9ad8f84e">ScatterCollectiveAttrs::num_workers</a>,</div>
+<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;                <span class="stringliteral">&quot;The number of workers, also the number of parts the given buffer should be &quot;</span></div>
+<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;                <span class="stringliteral">&quot;chunked into.&quot;</span>)</div>
+<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;        .def_ro(<span class="stringliteral">&quot;axis&quot;</span>, &amp;<a class="code" href="structtvm_1_1relax_1_1ScatterCollectiveAttrs.html#a71748308f84732284f57016f62389a4d">ScatterCollectiveAttrs::axis</a>,</div>
+<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;                <span class="stringliteral">&quot;The axis of the tensor to be scattered. The tensor will be chunked along &quot;</span></div>
+<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;                <span class="stringliteral">&quot;this axis.&quot;</span>);</div>
+<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;  }</div>
+<div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="structtvm_1_1relax_1_1ScatterCollectiveAttrs.html#aba988dcf4c6b5608a49e38206c91e14e">   84</a></span>&#160;  <a class="code" href="structtvm_1_1relax_1_1ScatterCollectiveAttrs.html#aba988dcf4c6b5608a49e38206c91e14e">TVM_FFI_DECLARE_OBJECT_INFO_FINAL</a>(<span class="stringliteral">&quot;relax.attrs.ScatterCollectiveAttrs&quot;</span>, <a class="code" href="structtvm_1_1relax_1_1ScatterCollectiveAttrs.html"> [...]
+<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;                                    <a class="code" href="classtvm_1_1BaseAttrsNode.html">BaseAttrsNode</a>);</div>
+<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;};  <span class="comment">// struct ScatterCollectiveAttrs</span></div>
+<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160; </div>
+<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;}  <span class="comment">// namespace relax</span></div>
+<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;}  <span class="comment">// namespace tvm</span></div>
+<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160; </div>
+<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;<span class="preprocessor">#endif  </span><span class="comment">// TVM_RELAX_ATTRS_CCL_H_</span></div>
+<div class="ttc" id="aclasstvm_1_1AttrsNodeReflAdapter_html"><div class="ttname"><a href="classtvm_1_1AttrsNodeReflAdapter.html">tvm::AttrsNodeReflAdapter</a></div><div class="ttdoc">Adapter for AttrsNode with the new reflection API.</div><div class="ttdef"><b>Definition:</b> attrs.h:385</div></div>
+<div class="ttc" id="aclasstvm_1_1BaseAttrsNode_html"><div class="ttname"><a href="classtvm_1_1BaseAttrsNode.html">tvm::BaseAttrsNode</a></div><div class="ttdoc">Base class of all attribute class.</div><div class="ttdef"><b>Definition:</b> attrs.h:102</div></div>
 <div class="ttc" id="anamespacetvm_1_1ffi_1_1reflection_html"><div class="ttname"><a href="namespacetvm_1_1ffi_1_1reflection.html">tvm::ffi::reflection</a></div><div class="ttdef"><b>Definition:</b> repr_printer.h:91</div></div>
 <div class="ttc" id="anamespacetvm_html"><div class="ttname"><a href="namespacetvm.html">tvm</a></div><div class="ttdoc">Performance counters for profiling via the PAPI library.</div><div class="ttdef"><b>Definition:</b> analyzer.h:37</div></div>
 <div class="ttc" id="arelax_2expr_8h_html"><div class="ttname"><a href="relax_2expr_8h.html">expr.h</a></div></div>
-<div class="ttc" id="astructtvm_1_1relax_1_1AllGatherAttrs_html"><div class="ttname"><a href="structtvm_1_1relax_1_1AllGatherAttrs.html">tvm::relax::AllGatherAttrs</a></div><div class="ttdoc">Attributes used in allgather operators.</div><div class="ttdef"><b>Definition:</b> ccl.h:54</div></div>
-<div class="ttc" id="astructtvm_1_1relax_1_1AllGatherAttrs_html_a65cdddab8fc8f4a1c27e106e9c86b67c"><div class="ttname"><a href="structtvm_1_1relax_1_1AllGatherAttrs.html#a65cdddab8fc8f4a1c27e106e9c86b67c">tvm::relax::AllGatherAttrs::RegisterReflection</a></div><div class="ttdeci">static void RegisterReflection()</div><div class="ttdef"><b>Definition:</b> ccl.h:58</div></div>
-<div class="ttc" id="astructtvm_1_1relax_1_1AllGatherAttrs_html_a78145c9987da1b3d2cab5f444a99dcb3"><div class="ttname"><a href="structtvm_1_1relax_1_1AllGatherAttrs.html#a78145c9987da1b3d2cab5f444a99dcb3">tvm::relax::AllGatherAttrs::_type_key</a></div><div class="ttdeci">static constexpr const char * _type_key</div><div class="ttdef"><b>Definition:</b> ccl.h:69</div></div>
-<div class="ttc" id="astructtvm_1_1relax_1_1AllGatherAttrs_html_a883775535dedc7a3db877cc9b3dd5a0e"><div class="ttname"><a href="structtvm_1_1relax_1_1AllGatherAttrs.html#a883775535dedc7a3db877cc9b3dd5a0e">tvm::relax::AllGatherAttrs::TVM_FFI_DECLARE_FINAL_OBJECT_INFO</a></div><div class="ttdeci">TVM_FFI_DECLARE_FINAL_OBJECT_INFO(AllGatherAttrs, BaseAttrsNode)</div></div>
-<div class="ttc" id="astructtvm_1_1relax_1_1AllGatherAttrs_html_aa8a95de256fe1565306b3f28b782c873"><div class="ttname"><a href="structtvm_1_1relax_1_1AllGatherAttrs.html#aa8a95de256fe1565306b3f28b782c873">tvm::relax::AllGatherAttrs::num_workers</a></div><div class="ttdeci">int num_workers</div><div class="ttdef"><b>Definition:</b> ccl.h:55</div></div>
-<div class="ttc" id="astructtvm_1_1relax_1_1AllGatherAttrs_html_ad35adcd63120d6ba35ec30027563128e"><div class="ttname"><a href="structtvm_1_1relax_1_1AllGatherAttrs.html#ad35adcd63120d6ba35ec30027563128e">tvm::relax::AllGatherAttrs::in_group</a></div><div class="ttdeci">bool in_group</div><div class="ttdef"><b>Definition:</b> ccl.h:56</div></div>
+<div class="ttc" id="astructtvm_1_1relax_1_1AllGatherAttrs_html"><div class="ttname"><a href="structtvm_1_1relax_1_1AllGatherAttrs.html">tvm::relax::AllGatherAttrs</a></div><div class="ttdoc">Attributes used in allgather operators.</div><div class="ttdef"><b>Definition:</b> ccl.h:52</div></div>
+<div class="ttc" id="astructtvm_1_1relax_1_1AllGatherAttrs_html_a65cdddab8fc8f4a1c27e106e9c86b67c"><div class="ttname"><a href="structtvm_1_1relax_1_1AllGatherAttrs.html#a65cdddab8fc8f4a1c27e106e9c86b67c">tvm::relax::AllGatherAttrs::RegisterReflection</a></div><div class="ttdeci">static void RegisterReflection()</div><div class="ttdef"><b>Definition:</b> ccl.h:56</div></div>
+<div class="ttc" id="astructtvm_1_1relax_1_1AllGatherAttrs_html_aa8a95de256fe1565306b3f28b782c873"><div class="ttname"><a href="structtvm_1_1relax_1_1AllGatherAttrs.html#aa8a95de256fe1565306b3f28b782c873">tvm::relax::AllGatherAttrs::num_workers</a></div><div class="ttdeci">int num_workers</div><div class="ttdef"><b>Definition:</b> ccl.h:53</div></div>
+<div class="ttc" id="astructtvm_1_1relax_1_1AllGatherAttrs_html_ac2da1e90052714183ac9c10161fa6810"><div class="ttname"><a href="structtvm_1_1relax_1_1AllGatherAttrs.html#ac2da1e90052714183ac9c10161fa6810">tvm::relax::AllGatherAttrs::TVM_FFI_DECLARE_OBJECT_INFO_FINAL</a></div><div class="ttdeci">TVM_FFI_DECLARE_OBJECT_INFO_FINAL(&quot;relax.attrs.AllGatherAttrs&quot;, AllGatherAttrs, BaseAttrsNode)</div></div>
+<div class="ttc" id="astructtvm_1_1relax_1_1AllGatherAttrs_html_ad35adcd63120d6ba35ec30027563128e"><div class="ttname"><a href="structtvm_1_1relax_1_1AllGatherAttrs.html#ad35adcd63120d6ba35ec30027563128e">tvm::relax::AllGatherAttrs::in_group</a></div><div class="ttdeci">bool in_group</div><div class="ttdef"><b>Definition:</b> ccl.h:54</div></div>
 <div class="ttc" id="astructtvm_1_1relax_1_1AllReduceAttrs_html"><div class="ttname"><a href="structtvm_1_1relax_1_1AllReduceAttrs.html">tvm::relax::AllReduceAttrs</a></div><div class="ttdoc">Attributes used in allreduce operators.</div><div class="ttdef"><b>Definition:</b> ccl.h:34</div></div>
 <div class="ttc" id="astructtvm_1_1relax_1_1AllReduceAttrs_html_a14ab2c1b39f63f8586b3aaa26e1b6e23"><div class="ttname"><a href="structtvm_1_1relax_1_1AllReduceAttrs.html#a14ab2c1b39f63f8586b3aaa26e1b6e23">tvm::relax::AllReduceAttrs::in_group</a></div><div class="ttdeci">bool in_group</div><div class="ttdef"><b>Definition:</b> ccl.h:36</div></div>
 <div class="ttc" id="astructtvm_1_1relax_1_1AllReduceAttrs_html_a301e64a13c7202e2579a0396c4852c0e"><div class="ttname"><a href="structtvm_1_1relax_1_1AllReduceAttrs.html#a301e64a13c7202e2579a0396c4852c0e">tvm::relax::AllReduceAttrs::RegisterReflection</a></div><div class="ttdeci">static void RegisterReflection()</div><div class="ttdef"><b>Definition:</b> ccl.h:38</div></div>
-<div class="ttc" id="astructtvm_1_1relax_1_1AllReduceAttrs_html_a5d6e7fa4ad55420ee5f2d90d30207783"><div class="ttname"><a href="structtvm_1_1relax_1_1AllReduceAttrs.html#a5d6e7fa4ad55420ee5f2d90d30207783">tvm::relax::AllReduceAttrs::TVM_FFI_DECLARE_FINAL_OBJECT_INFO</a></div><div class="ttdeci">TVM_FFI_DECLARE_FINAL_OBJECT_INFO(AllReduceAttrs, BaseAttrsNode)</div></div>
-<div class="ttc" id="astructtvm_1_1relax_1_1AllReduceAttrs_html_a93643ac435bbb2de9113cfd57cc3a1a3"><div class="ttname"><a href="structtvm_1_1relax_1_1AllReduceAttrs.html#a93643ac435bbb2de9113cfd57cc3a1a3">tvm::relax::AllReduceAttrs::_type_key</a></div><div class="ttdeci">static constexpr const char * _type_key</div><div class="ttdef"><b>Definition:</b> ccl.h:49</div></div>
 <div class="ttc" id="astructtvm_1_1relax_1_1AllReduceAttrs_html_aa0884b56708052f5a53ac5cf77a5f36d"><div class="ttname"><a href="structtvm_1_1relax_1_1AllReduceAttrs.html#aa0884b56708052f5a53ac5cf77a5f36d">tvm::relax::AllReduceAttrs::op_type</a></div><div class="ttdeci">ffi::String op_type</div><div class="ttdef"><b>Definition:</b> ccl.h:35</div></div>
-<div class="ttc" id="astructtvm_1_1relax_1_1ScatterCollectiveAttrs_html"><div class="ttname"><a href="structtvm_1_1relax_1_1ScatterCollectiveAttrs.html">tvm::relax::ScatterCollectiveAttrs</a></div><div class="ttdoc">Attributes used in scatter operators.</div><div class="ttdef"><b>Definition:</b> ccl.h:74</div></div>
-<div class="ttc" id="astructtvm_1_1relax_1_1ScatterCollectiveAttrs_html_a28bdc285d3de0023b5ca883bd3db5ea0"><div class="ttname"><a href="structtvm_1_1relax_1_1ScatterCollectiveAttrs.html#a28bdc285d3de0023b5ca883bd3db5ea0">tvm::relax::ScatterCollectiveAttrs::RegisterReflection</a></div><div class="ttdeci">static void RegisterReflection()</div><div class="ttdef"><b>Definition:</b> ccl.h:78</div></div>
-<div class="ttc" id="astructtvm_1_1relax_1_1ScatterCollectiveAttrs_html_a3e48efc9aec46c1eef10dd2f9ad8f84e"><div class="ttname"><a href="structtvm_1_1relax_1_1ScatterCollectiveAttrs.html#a3e48efc9aec46c1eef10dd2f9ad8f84e">tvm::relax::ScatterCollectiveAttrs::num_workers</a></div><div class="ttdeci">int num_workers</div><div class="ttdef"><b>Definition:</b> ccl.h:75</div></div>
-<div class="ttc" id="astructtvm_1_1relax_1_1ScatterCollectiveAttrs_html_a56c7a42f540f289c8f72d714e4fd0991"><div class="ttname"><a href="structtvm_1_1relax_1_1ScatterCollectiveAttrs.html#a56c7a42f540f289c8f72d714e4fd0991">tvm::relax::ScatterCollectiveAttrs::TVM_FFI_DECLARE_FINAL_OBJECT_INFO</a></div><div class="ttdeci">TVM_FFI_DECLARE_FINAL_OBJECT_INFO(ScatterCollectiveAttrs, BaseAttrsNode)</div></div>
-<div class="ttc" id="astructtvm_1_1relax_1_1ScatterCollectiveAttrs_html_a71748308f84732284f57016f62389a4d"><div class="ttname"><a href="structtvm_1_1relax_1_1ScatterCollectiveAttrs.html#a71748308f84732284f57016f62389a4d">tvm::relax::ScatterCollectiveAttrs::axis</a></div><div class="ttdeci">int axis</div><div class="ttdef"><b>Definition:</b> ccl.h:76</div></div>
-<div class="ttc" id="astructtvm_1_1relax_1_1ScatterCollectiveAttrs_html_a84205ce0b58d3faf2644e7db1ed95739"><div class="ttname"><a href="structtvm_1_1relax_1_1ScatterCollectiveAttrs.html#a84205ce0b58d3faf2644e7db1ed95739">tvm::relax::ScatterCollectiveAttrs::_type_key</a></div><div class="ttdeci">static constexpr const char * _type_key</div><div class="ttdef"><b>Definition:</b> ccl.h:89</div></div>
+<div class="ttc" id="astructtvm_1_1relax_1_1AllReduceAttrs_html_ab10ac5fa354283552ccf49019505f2d2"><div class="ttname"><a href="structtvm_1_1relax_1_1AllReduceAttrs.html#ab10ac5fa354283552ccf49019505f2d2">tvm::relax::AllReduceAttrs::TVM_FFI_DECLARE_OBJECT_INFO_FINAL</a></div><div class="ttdeci">TVM_FFI_DECLARE_OBJECT_INFO_FINAL(&quot;relax.attrs.AllReduceAttrs&quot;, AllReduceAttrs, BaseAttrsNode)</div></div>
+<div class="ttc" id="astructtvm_1_1relax_1_1ScatterCollectiveAttrs_html"><div class="ttname"><a href="structtvm_1_1relax_1_1ScatterCollectiveAttrs.html">tvm::relax::ScatterCollectiveAttrs</a></div><div class="ttdoc">Attributes used in scatter operators.</div><div class="ttdef"><b>Definition:</b> ccl.h:70</div></div>
+<div class="ttc" id="astructtvm_1_1relax_1_1ScatterCollectiveAttrs_html_a28bdc285d3de0023b5ca883bd3db5ea0"><div class="ttname"><a href="structtvm_1_1relax_1_1ScatterCollectiveAttrs.html#a28bdc285d3de0023b5ca883bd3db5ea0">tvm::relax::ScatterCollectiveAttrs::RegisterReflection</a></div><div class="ttdeci">static void RegisterReflection()</div><div class="ttdef"><b>Definition:</b> ccl.h:74</div></div>
+<div class="ttc" id="astructtvm_1_1relax_1_1ScatterCollectiveAttrs_html_a3e48efc9aec46c1eef10dd2f9ad8f84e"><div class="ttname"><a href="structtvm_1_1relax_1_1ScatterCollectiveAttrs.html#a3e48efc9aec46c1eef10dd2f9ad8f84e">tvm::relax::ScatterCollectiveAttrs::num_workers</a></div><div class="ttdeci">int num_workers</div><div class="ttdef"><b>Definition:</b> ccl.h:71</div></div>
+<div class="ttc" id="astructtvm_1_1relax_1_1ScatterCollectiveAttrs_html_a71748308f84732284f57016f62389a4d"><div class="ttname"><a href="structtvm_1_1relax_1_1ScatterCollectiveAttrs.html#a71748308f84732284f57016f62389a4d">tvm::relax::ScatterCollectiveAttrs::axis</a></div><div class="ttdeci">int axis</div><div class="ttdef"><b>Definition:</b> ccl.h:72</div></div>
+<div class="ttc" id="astructtvm_1_1relax_1_1ScatterCollectiveAttrs_html_aba988dcf4c6b5608a49e38206c91e14e"><div class="ttname"><a href="structtvm_1_1relax_1_1ScatterCollectiveAttrs.html#aba988dcf4c6b5608a49e38206c91e14e">tvm::relax::ScatterCollectiveAttrs::TVM_FFI_DECLARE_OBJECT_INFO_FINAL</a></div><div class="ttdeci">TVM_FFI_DECLARE_OBJECT_INFO_FINAL(&quot;relax.attrs.ScatterCollectiveAttrs&quot;, ScatterCollectiveAttrs, BaseAttrsNode)</div></div>
 </div><!-- fragment --></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
diff --git a/docs/reference/api/doxygen/classtvm_1_1AttrFieldInfo-members.html b/docs/reference/api/doxygen/classtvm_1_1AttrFieldInfo-members.html
index 7d08bde72e..b3c7c599b4 100644
--- a/docs/reference/api/doxygen/classtvm_1_1AttrFieldInfo-members.html
+++ b/docs/reference/api/doxygen/classtvm_1_1AttrFieldInfo-members.html
@@ -72,7 +72,7 @@ $(function() {
 
 <p>This is the complete list of members for <a class="el" href="classtvm_1_1AttrFieldInfo.html">tvm::AttrFieldInfo</a>, including all inherited members.</p>
 <table class="directory">
-  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1AttrFieldInfo.html#af897e77cf019cd43014025ac0d2a5a37">TVM_DEFINE_OBJECT_REF_METHODS</a>(AttrFieldInfo, ObjectRef, AttrFieldInfoNode)</td><td class="entry"><a class="el" href="classtvm_1_1AttrFieldInfo.html">tvm::AttrFieldInfo</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1AttrFieldInfo.html#a3ae31205d125508f83752ba76dcef2cd">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE</a>(AttrFieldInfo, ObjectRef, AttrFieldInfoNode)</td><td class="entry"><a class="el" href="classtvm_1_1AttrFieldInfo.html">tvm::AttrFieldInfo</a></td><td class="entry"></td></tr>
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
diff --git a/docs/reference/api/doxygen/classtvm_1_1AttrFieldInfo.html b/docs/reference/api/doxygen/classtvm_1_1AttrFieldInfo.html
index a168205214..1306d0f535 100644
--- a/docs/reference/api/doxygen/classtvm_1_1AttrFieldInfo.html
+++ b/docs/reference/api/doxygen/classtvm_1_1AttrFieldInfo.html
@@ -80,32 +80,32 @@ $(function() {
 <div class="dynheader">
 Inheritance diagram for tvm::AttrFieldInfo:</div>
 <div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1AttrFieldInfo__inherit__graph.svg" width="219" height="228"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
+<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1AttrFieldInfo__inherit__graph.svg" width="223" height="228"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
 </div>
 </div>
 <div class="dynheader">
 Collaboration diagram for tvm::AttrFieldInfo:</div>
 <div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1AttrFieldInfo__coll__graph.svg" width="219" height="228"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
+<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1AttrFieldInfo__coll__graph.svg" width="223" height="228"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
 </div>
 </div>
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
 Public Member Functions</h2></td></tr>
-<tr class="memitem:af897e77cf019cd43014025ac0d2a5a37"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1AttrFieldInfo.html#af897e77cf019cd43014025ac0d2a5a37">TVM_DEFINE_OBJECT_REF_METHODS</a> (<a class="el" href="classtvm_1_1AttrFieldInfo.html">AttrFieldInfo</a>, ObjectRef, <a class="el" href="classtvm_1_1AttrFieldInfoNode.html">AttrFieldInfoNode</a>)</td></tr>
-<tr class="separator:af897e77cf019cd43014025ac0d2a5a37"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3ae31205d125508f83752ba76dcef2cd"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1AttrFieldInfo.html#a3ae31205d125508f83752ba76dcef2cd">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE</a> (<a class="el" href="classtvm_1_1AttrFieldInfo.html">AttrFieldInfo</a>, ObjectRef, <a class="el" href="classtvm_1_1AttrFieldInfoNode.html">AttrFieldInfoNode</a>)</td></tr>
+<tr class="separator:a3ae31205d125508f83752ba76dcef2cd"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
 <div class="textblock"><p><a class="el" href="classtvm_1_1AttrFieldInfo.html" title="AttrFieldInfo.">AttrFieldInfo</a>. </p>
 </div><h2 class="groupheader">Member Function Documentation</h2>
-<a id="af897e77cf019cd43014025ac0d2a5a37"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#af897e77cf019cd43014025ac0d2a5a37">&#9670;&nbsp;</a></span>TVM_DEFINE_OBJECT_REF_METHODS()</h2>
+<a id="a3ae31205d125508f83752ba76dcef2cd"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a3ae31205d125508f83752ba76dcef2cd">&#9670;&nbsp;</a></span>TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE()</h2>
 
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">tvm::AttrFieldInfo::TVM_DEFINE_OBJECT_REF_METHODS </td>
+          <td class="memname">tvm::AttrFieldInfo::TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE </td>
           <td>(</td>
           <td class="paramtype"><a class="el" href="classtvm_1_1AttrFieldInfo.html">AttrFieldInfo</a>&#160;</td>
           <td class="paramname">, </td>
diff --git a/docs/reference/api/doxygen/classtvm_1_1AttrFieldInfoNode-members.html b/docs/reference/api/doxygen/classtvm_1_1AttrFieldInfoNode-members.html
index e6312f1598..85254d5e46 100644
--- a/docs/reference/api/doxygen/classtvm_1_1AttrFieldInfoNode-members.html
+++ b/docs/reference/api/doxygen/classtvm_1_1AttrFieldInfoNode-members.html
@@ -72,13 +72,12 @@ $(function() {
 
 <p>This is the complete list of members for <a class="el" href="classtvm_1_1AttrFieldInfoNode.html">tvm::AttrFieldInfoNode</a>, including all inherited members.</p>
 <table class="directory">
-  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1AttrFieldInfoNode.html#afe4293c9f1aea71f845c5ed9633af2c9">_type_key</a></td><td class="entry"><a class="el" href="classtvm_1_1AttrFieldInfoNode.html">tvm::AttrFieldInfoNode</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classtvm_1_1AttrFieldInfoNode.html#afba3081e4108c2ba2d34a6a228de5d88">_type_s_eq_hash_kind</a></td><td class="entry"><a class="el" href="classtvm_1_1AttrFieldInfoNode.html">tvm::AttrFieldInfoNode</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1AttrFieldInfoNode.html#a431098190172ef1755e1bb34a7565845">description</a></td><td class="entry"><a class="el" href="classtvm_1_1AttrFieldInfoNode.html">tvm::AttrFieldInfoNode</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classtvm_1_1AttrFieldInfoNode.html#a1c31419f817ab146644d8be1f7a0bd39">name</a></td><td class="entry"><a class="el" href="classtvm_1_1AttrFieldInfoNode.html">tvm::AttrFieldInfoNode</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1AttrFieldInfoNode.html#a5e3b6347697842584c77d0122a6ecc51">RegisterReflection</a>()</td><td class="entry"><a class="el" href="classtvm_1_1AttrFieldInfoNode.html">tvm::AttrFieldInfoNode</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classtvm_1_1AttrFieldInfoNode.html#a915476a2aefc4dfb342c3aa40f235b81">TVM_DECLARE_FINAL_OBJECT_INFO</a>(AttrFieldInfoNode, Object)</td><td class="entry"><a class="el" href="classtvm_1_1AttrFieldInfoNode.html">tvm::AttrFieldInfoNode</a></td><td class="entry"></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1AttrFieldInfoNode.html#a41b9598ec008e11d6f24a3a7a1ad03fb">type_info</a></td><td class="entry"><a class="el" href="classtvm_1_1AttrFieldInfoNode.html">tvm::AttrFieldInfoNode</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1AttrFieldInfoNode.html#afba3081e4108c2ba2d34a6a228de5d88">_type_s_eq_hash_kind</a></td><td class="entry"><a class="el" href="classtvm_1_1AttrFieldInfoNode.html">tvm::AttrFieldInfoNode</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1AttrFieldInfoNode.html#a431098190172ef1755e1bb34a7565845">description</a></td><td class="entry"><a class="el" href="classtvm_1_1AttrFieldInfoNode.html">tvm::AttrFieldInfoNode</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1AttrFieldInfoNode.html#a1c31419f817ab146644d8be1f7a0bd39">name</a></td><td class="entry"><a class="el" href="classtvm_1_1AttrFieldInfoNode.html">tvm::AttrFieldInfoNode</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1AttrFieldInfoNode.html#a5e3b6347697842584c77d0122a6ecc51">RegisterReflection</a>()</td><td class="entry"><a class="el" href="classtvm_1_1AttrFieldInfoNode.html">tvm::AttrFieldInfoNode</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">static</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1AttrFieldInfoNode.html#aafcd1ccd44f6e27c3783d46bb3e774d4">TVM_FFI_DECLARE_OBJECT_INFO_FINAL</a>(&quot;ir.AttrFieldInfo&quot;, AttrFieldInfoNode, Object)</td><td class="entry"><a class="el" href="classtvm_1_1AttrFieldInfoNode.html">tvm::AttrFieldInfoNode</a></td><td class="entry"></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1AttrFieldInfoNode.html#a41b9598ec008e11d6f24a3a7a1ad03fb">type_info</a></td><td class="entry"><a class="el" href="classtvm_1_1AttrFieldInfoNode.html">tvm::AttrFieldInfoNode</a></td><td class="entry"></td></tr>
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
diff --git a/docs/reference/api/doxygen/classtvm_1_1AttrFieldInfoNode.html b/docs/reference/api/doxygen/classtvm_1_1AttrFieldInfoNode.html
index 81f7a0a59e..d20fa0c582 100644
--- a/docs/reference/api/doxygen/classtvm_1_1AttrFieldInfoNode.html
+++ b/docs/reference/api/doxygen/classtvm_1_1AttrFieldInfoNode.html
@@ -83,20 +83,20 @@ $(function() {
 <div class="dynheader">
 Inheritance diagram for tvm::AttrFieldInfoNode:</div>
 <div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1AttrFieldInfoNode__inherit__graph.svg" width="246" height="302"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
+<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1AttrFieldInfoNode__inherit__graph.svg" width="227" height="287"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
 </div>
 </div>
 <div class="dynheader">
 Collaboration diagram for tvm::AttrFieldInfoNode:</div>
 <div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1AttrFieldInfoNode__coll__graph.svg" width="246" height="302"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
+<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1AttrFieldInfoNode__coll__graph.svg" width="227" height="287"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
 </div>
 </div>
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
 Public Member Functions</h2></td></tr>
-<tr class="memitem:a915476a2aefc4dfb342c3aa40f235b81"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1AttrFieldInfoNode.html#a915476a2aefc4dfb342c3aa40f235b81">TVM_DECLARE_FINAL_OBJECT_INFO</a> (<a class="el" href="classtvm_1_1AttrFieldInfoNode.html">AttrFieldInfoNode</a>, Object)</td></tr>
-<tr class="separator:a915476a2aefc4dfb342c3aa40f235b81"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aafcd1ccd44f6e27c3783d46bb3e774d4"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1AttrFieldInfoNode.html#aafcd1ccd44f6e27c3783d46bb3e774d4">TVM_FFI_DECLARE_OBJECT_INFO_FINAL</a> (&quot;ir.AttrFieldInfo&quot;, AttrFieldInfoNode, Object)</td></tr>
+<tr class="separator:aafcd1ccd44f6e27c3783d46bb3e774d4"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-methods"></a>
 Static Public Member Functions</h2></td></tr>
@@ -117,8 +117,6 @@ Public Attributes</h2></td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-attribs"></a>
 Static Public Attributes</h2></td></tr>
-<tr class="memitem:afe4293c9f1aea71f845c5ed9633af2c9"><td class="memItemLeft" align="right" valign="top">static constexpr const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1AttrFieldInfoNode.html#afe4293c9f1aea71f845c5ed9633af2c9">_type_key</a> = &quot;ir.AttrFieldInfo&quot;</td></tr>
-<tr class="separator:afe4293c9f1aea71f845c5ed9633af2c9"><td class="memSeparator" colspan="2">&#160;</td></tr>
 <tr class="memitem:afba3081e4108c2ba2d34a6a228de5d88"><td class="memItemLeft" align="right" valign="top">static constexpr TVMFFISEqHashKind&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1AttrFieldInfoNode.html#afba3081e4108c2ba2d34a6a228de5d88">_type_s_eq_hash_kind</a> = kTVMFFISEqHashKindTreeNode</td></tr>
 <tr class="separator:afba3081e4108c2ba2d34a6a228de5d88"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
@@ -150,15 +148,21 @@ Static Public Attributes</h2></td></tr>
 
 </div>
 </div>
-<a id="a915476a2aefc4dfb342c3aa40f235b81"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a915476a2aefc4dfb342c3aa40f235b81">&#9670;&nbsp;</a></span>TVM_DECLARE_FINAL_OBJECT_INFO()</h2>
+<a id="aafcd1ccd44f6e27c3783d46bb3e774d4"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aafcd1ccd44f6e27c3783d46bb3e774d4">&#9670;&nbsp;</a></span>TVM_FFI_DECLARE_OBJECT_INFO_FINAL()</h2>
 
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">tvm::AttrFieldInfoNode::TVM_DECLARE_FINAL_OBJECT_INFO </td>
+          <td class="memname">tvm::AttrFieldInfoNode::TVM_FFI_DECLARE_OBJECT_INFO_FINAL </td>
           <td>(</td>
+          <td class="paramtype">&quot;ir.AttrFieldInfo&quot;&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
           <td class="paramtype"><a class="el" href="classtvm_1_1AttrFieldInfoNode.html">AttrFieldInfoNode</a>&#160;</td>
           <td class="paramname">, </td>
         </tr>
@@ -179,28 +183,6 @@ Static Public Attributes</h2></td></tr>
 </div>
 </div>
 <h2 class="groupheader">Member Data Documentation</h2>
-<a id="afe4293c9f1aea71f845c5ed9633af2c9"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#afe4293c9f1aea71f845c5ed9633af2c9">&#9670;&nbsp;</a></span>_type_key</h2>
-
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
-  <tr>
-  <td class="mlabels-left">
-      <table class="memname">
-        <tr>
-          <td class="memname">constexpr const char* tvm::AttrFieldInfoNode::_type_key = &quot;ir.AttrFieldInfo&quot;</td>
-        </tr>
-      </table>
-  </td>
-  <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">constexpr</span></span>  </td>
-  </tr>
-</table>
-</div><div class="memdoc">
-
-</div>
-</div>
 <a id="afba3081e4108c2ba2d34a6a228de5d88"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#afba3081e4108c2ba2d34a6a228de5d88">&#9670;&nbsp;</a></span>_type_s_eq_hash_kind</h2>
 
diff --git a/docs/reference/api/doxygen/classtvm_1_1AttrFieldInfoNode__coll__graph.svg b/docs/reference/api/doxygen/classtvm_1_1AttrFieldInfoNode__coll__graph.svg
index 3a3ddaa133..32a0ac34c6 100644
--- a/docs/reference/api/doxygen/classtvm_1_1AttrFieldInfoNode__coll__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1AttrFieldInfoNode__coll__graph.svg
@@ -4,26 +4,25 @@
 <!-- Generated by graphviz version 2.43.0 (0)
  -->
 <!-- Title: tvm::AttrFieldInfoNode Pages: 1 -->
-<svg width="184pt" height="226pt"
- viewBox="0.00 0.00 184.00 226.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 222)">
+<svg width="170pt" height="215pt"
+ viewBox="0.00 0.00 170.00 215.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 211)">
 <title>tvm::AttrFieldInfoNode</title>
-<polygon fill="white" stroke="transparent" points="-4,4 -4,-222 180,-222 180,4 -4,4"/>
+<polygon fill="white" stroke="transparent" points="-4,4 -4,-211 166,-211 166,4 -4,4"/>
 <!-- Node1 -->
 <g id="node1" class="node">
 <title>Node1</title>
 <g id="a_node1"><a xlink:title="Information about attribute fields in string representations.">
-<polygon fill="#bfbfbf" stroke="black" points="0,-0.5 0,-123.5 176,-123.5 176,-0.5 0,-0.5"/>
-<text text-anchor="middle" x="88" y="-111.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrFieldInfoNode</text>
-<polyline fill="none" stroke="black" points="0,-104.5 176,-104.5 "/>
-<text text-anchor="start" x="8" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ name</text>
-<text text-anchor="start" x="8" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ type_info</text>
-<text text-anchor="start" x="8" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ description</text>
-<text text-anchor="start" x="8" y="-59.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
+<polygon fill="#bfbfbf" stroke="black" points="0,-0.5 0,-112.5 162,-112.5 162,-0.5 0,-0.5"/>
+<text text-anchor="middle" x="81" y="-100.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrFieldInfoNode</text>
+<polyline fill="none" stroke="black" points="0,-93.5 162,-93.5 "/>
+<text text-anchor="start" x="8" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ name</text>
+<text text-anchor="start" x="8" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ type_info</text>
+<text text-anchor="start" x="8" y="-59.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ description</text>
 <text text-anchor="start" x="8" y="-48.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_s_eq_hash_kind</text>
-<polyline fill="none" stroke="black" points="0,-41.5 176,-41.5 "/>
-<text text-anchor="start" x="8" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DECLARE_FINAL_OBJECT</text>
-<text text-anchor="start" x="8" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO()</text>
+<polyline fill="none" stroke="black" points="0,-41.5 162,-41.5 "/>
+<text text-anchor="start" x="8" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="8" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
 <text text-anchor="start" x="8" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
 </a>
 </g>
@@ -32,20 +31,20 @@
 <g id="node2" class="node">
 <title>Node2</title>
 <g id="a_node2"><a xlink:title=" ">
-<polygon fill="white" stroke="#bfbfbf" points="64,-160.5 64,-217.5 112,-217.5 112,-160.5 64,-160.5"/>
-<text text-anchor="middle" x="88" y="-205.5" font-family="Helvetica,sans-Serif" font-size="10.00">Object</text>
-<polyline fill="none" stroke="#bfbfbf" points="64,-198.5 112,-198.5 "/>
-<text text-anchor="middle" x="88" y="-186.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="#bfbfbf" points="64,-179.5 112,-179.5 "/>
-<text text-anchor="middle" x="88" y="-167.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polygon fill="white" stroke="#bfbfbf" points="57,-149.5 57,-206.5 105,-206.5 105,-149.5 57,-149.5"/>
+<text text-anchor="middle" x="81" y="-194.5" font-family="Helvetica,sans-Serif" font-size="10.00">Object</text>
+<polyline fill="none" stroke="#bfbfbf" points="57,-187.5 105,-187.5 "/>
+<text text-anchor="middle" x="81" y="-175.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="#bfbfbf" points="57,-168.5 105,-168.5 "/>
+<text text-anchor="middle" x="81" y="-156.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node1 -->
 <g id="edge1" class="edge">
 <title>Node2&#45;&gt;Node1</title>
-<path fill="none" stroke="midnightblue" d="M88,-150.1C88,-141.74 88,-132.68 88,-123.67"/>
-<polygon fill="none" stroke="midnightblue" points="84.5,-150.26 88,-160.26 91.5,-150.26 84.5,-150.26"/>
+<path fill="none" stroke="midnightblue" d="M81,-139.11C81,-130.75 81,-121.73 81,-112.83"/>
+<polygon fill="none" stroke="midnightblue" points="77.5,-139.28 81,-149.28 84.5,-139.28 77.5,-139.28"/>
 </g>
 </g>
 </svg>
diff --git a/docs/reference/api/doxygen/classtvm_1_1AttrFieldInfoNode__inherit__graph.svg b/docs/reference/api/doxygen/classtvm_1_1AttrFieldInfoNode__inherit__graph.svg
index 3a3ddaa133..32a0ac34c6 100644
--- a/docs/reference/api/doxygen/classtvm_1_1AttrFieldInfoNode__inherit__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1AttrFieldInfoNode__inherit__graph.svg
@@ -4,26 +4,25 @@
 <!-- Generated by graphviz version 2.43.0 (0)
  -->
 <!-- Title: tvm::AttrFieldInfoNode Pages: 1 -->
-<svg width="184pt" height="226pt"
- viewBox="0.00 0.00 184.00 226.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 222)">
+<svg width="170pt" height="215pt"
+ viewBox="0.00 0.00 170.00 215.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 211)">
 <title>tvm::AttrFieldInfoNode</title>
-<polygon fill="white" stroke="transparent" points="-4,4 -4,-222 180,-222 180,4 -4,4"/>
+<polygon fill="white" stroke="transparent" points="-4,4 -4,-211 166,-211 166,4 -4,4"/>
 <!-- Node1 -->
 <g id="node1" class="node">
 <title>Node1</title>
 <g id="a_node1"><a xlink:title="Information about attribute fields in string representations.">
-<polygon fill="#bfbfbf" stroke="black" points="0,-0.5 0,-123.5 176,-123.5 176,-0.5 0,-0.5"/>
-<text text-anchor="middle" x="88" y="-111.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrFieldInfoNode</text>
-<polyline fill="none" stroke="black" points="0,-104.5 176,-104.5 "/>
-<text text-anchor="start" x="8" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ name</text>
-<text text-anchor="start" x="8" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ type_info</text>
-<text text-anchor="start" x="8" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ description</text>
-<text text-anchor="start" x="8" y="-59.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
+<polygon fill="#bfbfbf" stroke="black" points="0,-0.5 0,-112.5 162,-112.5 162,-0.5 0,-0.5"/>
+<text text-anchor="middle" x="81" y="-100.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrFieldInfoNode</text>
+<polyline fill="none" stroke="black" points="0,-93.5 162,-93.5 "/>
+<text text-anchor="start" x="8" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ name</text>
+<text text-anchor="start" x="8" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ type_info</text>
+<text text-anchor="start" x="8" y="-59.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ description</text>
 <text text-anchor="start" x="8" y="-48.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_s_eq_hash_kind</text>
-<polyline fill="none" stroke="black" points="0,-41.5 176,-41.5 "/>
-<text text-anchor="start" x="8" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DECLARE_FINAL_OBJECT</text>
-<text text-anchor="start" x="8" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO()</text>
+<polyline fill="none" stroke="black" points="0,-41.5 162,-41.5 "/>
+<text text-anchor="start" x="8" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="8" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
 <text text-anchor="start" x="8" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
 </a>
 </g>
@@ -32,20 +31,20 @@
 <g id="node2" class="node">
 <title>Node2</title>
 <g id="a_node2"><a xlink:title=" ">
-<polygon fill="white" stroke="#bfbfbf" points="64,-160.5 64,-217.5 112,-217.5 112,-160.5 64,-160.5"/>
-<text text-anchor="middle" x="88" y="-205.5" font-family="Helvetica,sans-Serif" font-size="10.00">Object</text>
-<polyline fill="none" stroke="#bfbfbf" points="64,-198.5 112,-198.5 "/>
-<text text-anchor="middle" x="88" y="-186.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="#bfbfbf" points="64,-179.5 112,-179.5 "/>
-<text text-anchor="middle" x="88" y="-167.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polygon fill="white" stroke="#bfbfbf" points="57,-149.5 57,-206.5 105,-206.5 105,-149.5 57,-149.5"/>
+<text text-anchor="middle" x="81" y="-194.5" font-family="Helvetica,sans-Serif" font-size="10.00">Object</text>
+<polyline fill="none" stroke="#bfbfbf" points="57,-187.5 105,-187.5 "/>
+<text text-anchor="middle" x="81" y="-175.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="#bfbfbf" points="57,-168.5 105,-168.5 "/>
+<text text-anchor="middle" x="81" y="-156.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node1 -->
 <g id="edge1" class="edge">
 <title>Node2&#45;&gt;Node1</title>
-<path fill="none" stroke="midnightblue" d="M88,-150.1C88,-141.74 88,-132.68 88,-123.67"/>
-<polygon fill="none" stroke="midnightblue" points="84.5,-150.26 88,-160.26 91.5,-150.26 84.5,-150.26"/>
+<path fill="none" stroke="midnightblue" d="M81,-139.11C81,-130.75 81,-121.73 81,-112.83"/>
+<polygon fill="none" stroke="midnightblue" points="77.5,-139.28 81,-149.28 84.5,-139.28 77.5,-139.28"/>
 </g>
 </g>
 </svg>
diff --git a/docs/reference/api/doxygen/classtvm_1_1AttrFieldInfo__coll__graph.svg b/docs/reference/api/doxygen/classtvm_1_1AttrFieldInfo__coll__graph.svg
index b5b52df7e2..3773847cf3 100644
--- a/docs/reference/api/doxygen/classtvm_1_1AttrFieldInfo__coll__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1AttrFieldInfo__coll__graph.svg
@@ -4,22 +4,22 @@
 <!-- Generated by graphviz version 2.43.0 (0)
  -->
 <!-- Title: tvm::AttrFieldInfo Pages: 1 -->
-<svg width="164pt" height="171pt"
- viewBox="0.00 0.00 164.00 171.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<svg width="167pt" height="171pt"
+ viewBox="0.00 0.00 167.00 171.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
 <g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 167)">
 <title>tvm::AttrFieldInfo</title>
-<polygon fill="white" stroke="transparent" points="-4,4 -4,-167 160,-167 160,4 -4,4"/>
+<polygon fill="white" stroke="transparent" points="-4,4 -4,-167 163,-167 163,4 -4,4"/>
 <!-- Node1 -->
 <g id="node1" class="node">
 <title>Node1</title>
 <g id="a_node1"><a xlink:title="AttrFieldInfo.">
-<polygon fill="#bfbfbf" stroke="black" points="0,-0.5 0,-68.5 156,-68.5 156,-0.5 0,-0.5"/>
-<text text-anchor="middle" x="78" y="-56.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrFieldInfo</text>
-<polyline fill="none" stroke="black" points="0,-49.5 156,-49.5 "/>
-<text text-anchor="middle" x="78" y="-37.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="0,-30.5 156,-30.5 "/>
-<text text-anchor="start" x="8" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="8" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">_METHODS()</text>
+<polygon fill="#bfbfbf" stroke="black" points="0,-0.5 0,-68.5 159,-68.5 159,-0.5 0,-0.5"/>
+<text text-anchor="middle" x="79.5" y="-56.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrFieldInfo</text>
+<polyline fill="none" stroke="black" points="0,-49.5 159,-49.5 "/>
+<text text-anchor="middle" x="79.5" y="-37.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="0,-30.5 159,-30.5 "/>
+<text text-anchor="start" x="8" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DEFINE_OBJECT</text>
+<text text-anchor="start" x="8" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NULLABLE()</text>
 </a>
 </g>
 </g>
@@ -27,20 +27,20 @@
 <g id="node2" class="node">
 <title>Node2</title>
 <g id="a_node2"><a xlink:title=" ">
-<polygon fill="white" stroke="#bfbfbf" points="45.5,-105.5 45.5,-162.5 110.5,-162.5 110.5,-105.5 45.5,-105.5"/>
-<text text-anchor="middle" x="78" y="-150.5" font-family="Helvetica,sans-Serif" font-size="10.00">ObjectRef</text>
-<polyline fill="none" stroke="#bfbfbf" points="45.5,-143.5 110.5,-143.5 "/>
-<text text-anchor="middle" x="78" y="-131.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="#bfbfbf" points="45.5,-124.5 110.5,-124.5 "/>
-<text text-anchor="middle" x="78" y="-112.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polygon fill="white" stroke="#bfbfbf" points="47,-105.5 47,-162.5 112,-162.5 112,-105.5 47,-105.5"/>
+<text text-anchor="middle" x="79.5" y="-150.5" font-family="Helvetica,sans-Serif" font-size="10.00">ObjectRef</text>
+<polyline fill="none" stroke="#bfbfbf" points="47,-143.5 112,-143.5 "/>
+<text text-anchor="middle" x="79.5" y="-131.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="#bfbfbf" points="47,-124.5 112,-124.5 "/>
+<text text-anchor="middle" x="79.5" y="-112.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node1 -->
 <g id="edge1" class="edge">
 <title>Node2&#45;&gt;Node1</title>
-<path fill="none" stroke="midnightblue" d="M78,-95.06C78,-86.39 78,-77.24 78,-68.79"/>
-<polygon fill="none" stroke="midnightblue" points="74.5,-95.32 78,-105.32 81.5,-95.32 74.5,-95.32"/>
+<path fill="none" stroke="midnightblue" d="M79.5,-95.06C79.5,-86.39 79.5,-77.24 79.5,-68.79"/>
+<polygon fill="none" stroke="midnightblue" points="76,-95.32 79.5,-105.32 83,-95.32 76,-95.32"/>
 </g>
 </g>
 </svg>
diff --git a/docs/reference/api/doxygen/classtvm_1_1AttrFieldInfo__inherit__graph.svg b/docs/reference/api/doxygen/classtvm_1_1AttrFieldInfo__inherit__graph.svg
index b5b52df7e2..3773847cf3 100644
--- a/docs/reference/api/doxygen/classtvm_1_1AttrFieldInfo__inherit__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1AttrFieldInfo__inherit__graph.svg
@@ -4,22 +4,22 @@
 <!-- Generated by graphviz version 2.43.0 (0)
  -->
 <!-- Title: tvm::AttrFieldInfo Pages: 1 -->
-<svg width="164pt" height="171pt"
- viewBox="0.00 0.00 164.00 171.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<svg width="167pt" height="171pt"
+ viewBox="0.00 0.00 167.00 171.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
 <g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 167)">
 <title>tvm::AttrFieldInfo</title>
-<polygon fill="white" stroke="transparent" points="-4,4 -4,-167 160,-167 160,4 -4,4"/>
+<polygon fill="white" stroke="transparent" points="-4,4 -4,-167 163,-167 163,4 -4,4"/>
 <!-- Node1 -->
 <g id="node1" class="node">
 <title>Node1</title>
 <g id="a_node1"><a xlink:title="AttrFieldInfo.">
-<polygon fill="#bfbfbf" stroke="black" points="0,-0.5 0,-68.5 156,-68.5 156,-0.5 0,-0.5"/>
-<text text-anchor="middle" x="78" y="-56.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrFieldInfo</text>
-<polyline fill="none" stroke="black" points="0,-49.5 156,-49.5 "/>
-<text text-anchor="middle" x="78" y="-37.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="0,-30.5 156,-30.5 "/>
-<text text-anchor="start" x="8" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="8" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">_METHODS()</text>
+<polygon fill="#bfbfbf" stroke="black" points="0,-0.5 0,-68.5 159,-68.5 159,-0.5 0,-0.5"/>
+<text text-anchor="middle" x="79.5" y="-56.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrFieldInfo</text>
+<polyline fill="none" stroke="black" points="0,-49.5 159,-49.5 "/>
+<text text-anchor="middle" x="79.5" y="-37.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="0,-30.5 159,-30.5 "/>
+<text text-anchor="start" x="8" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DEFINE_OBJECT</text>
+<text text-anchor="start" x="8" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NULLABLE()</text>
 </a>
 </g>
 </g>
@@ -27,20 +27,20 @@
 <g id="node2" class="node">
 <title>Node2</title>
 <g id="a_node2"><a xlink:title=" ">
-<polygon fill="white" stroke="#bfbfbf" points="45.5,-105.5 45.5,-162.5 110.5,-162.5 110.5,-105.5 45.5,-105.5"/>
-<text text-anchor="middle" x="78" y="-150.5" font-family="Helvetica,sans-Serif" font-size="10.00">ObjectRef</text>
-<polyline fill="none" stroke="#bfbfbf" points="45.5,-143.5 110.5,-143.5 "/>
-<text text-anchor="middle" x="78" y="-131.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="#bfbfbf" points="45.5,-124.5 110.5,-124.5 "/>
-<text text-anchor="middle" x="78" y="-112.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polygon fill="white" stroke="#bfbfbf" points="47,-105.5 47,-162.5 112,-162.5 112,-105.5 47,-105.5"/>
+<text text-anchor="middle" x="79.5" y="-150.5" font-family="Helvetica,sans-Serif" font-size="10.00">ObjectRef</text>
+<polyline fill="none" stroke="#bfbfbf" points="47,-143.5 112,-143.5 "/>
+<text text-anchor="middle" x="79.5" y="-131.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="#bfbfbf" points="47,-124.5 112,-124.5 "/>
+<text text-anchor="middle" x="79.5" y="-112.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node1 -->
 <g id="edge1" class="edge">
 <title>Node2&#45;&gt;Node1</title>
-<path fill="none" stroke="midnightblue" d="M78,-95.06C78,-86.39 78,-77.24 78,-68.79"/>
-<polygon fill="none" stroke="midnightblue" points="74.5,-95.32 78,-105.32 81.5,-95.32 74.5,-95.32"/>
+<path fill="none" stroke="midnightblue" d="M79.5,-95.06C79.5,-86.39 79.5,-77.24 79.5,-68.79"/>
+<polygon fill="none" stroke="midnightblue" points="76,-95.32 79.5,-105.32 83,-95.32 76,-95.32"/>
 </g>
 </g>
 </svg>
diff --git a/docs/reference/api/doxygen/classtvm_1_1Attrs-members.html b/docs/reference/api/doxygen/classtvm_1_1Attrs-members.html
index 40309892d1..11c3a42d2a 100644
--- a/docs/reference/api/doxygen/classtvm_1_1Attrs-members.html
+++ b/docs/reference/api/doxygen/classtvm_1_1Attrs-members.html
@@ -72,7 +72,7 @@ $(function() {
 
 <p>This is the complete list of members for <a class="el" href="classtvm_1_1Attrs.html">tvm::Attrs</a>, including all inherited members.</p>
 <table class="directory">
-  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1Attrs.html#a1bf8ffc23955fe9b066d838ca41819e1">TVM_DEFINE_OBJECT_REF_METHODS</a>(Attrs, ObjectRef, BaseAttrsNode)</td><td class="entry"><a class="el" href="classtvm_1_1Attrs.html">tvm::Attrs</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1Attrs.html#a329a6fb7890822cb4c09c6e84b29908f">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE</a>(Attrs, ObjectRef, BaseAttrsNode)</td><td class="entry"><a class="el" href="classtvm_1_1Attrs.html">tvm::Attrs</a></td><td class="entry"></td></tr>
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
diff --git a/docs/reference/api/doxygen/classtvm_1_1Attrs.html b/docs/reference/api/doxygen/classtvm_1_1Attrs.html
index ba3178213d..e39672a86c 100644
--- a/docs/reference/api/doxygen/classtvm_1_1Attrs.html
+++ b/docs/reference/api/doxygen/classtvm_1_1Attrs.html
@@ -80,33 +80,33 @@ $(function() {
 <div class="dynheader">
 Inheritance diagram for tvm::Attrs:</div>
 <div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1Attrs__inherit__graph.svg" width="240" height="486"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
+<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1Attrs__inherit__graph.svg" width="284" height="486"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
 </div>
 </div>
 <div class="dynheader">
 Collaboration diagram for tvm::Attrs:</div>
 <div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1Attrs__coll__graph.svg" width="219" height="228"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
+<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1Attrs__coll__graph.svg" width="223" height="228"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
 </div>
 </div>
 <table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
 Public Member Functions</h2></td></tr>
-<tr class="memitem:a1bf8ffc23955fe9b066d838ca41819e1"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1Attrs.html#a1bf8ffc23955fe9b066d838ca41819e1">TVM_DEFINE_OBJECT_REF_METHODS</a> (<a class="el" href="classtvm_1_1Attrs.html">Attrs</a>, ObjectRef, <a class="el" href="classtvm_1_1BaseAttrsNode.html">BaseAttrsNode</a>)</td></tr>
-<tr class="separator:a1bf8ffc23955fe9b066d838ca41819e1"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a329a6fb7890822cb4c09c6e84b29908f"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1Attrs.html#a329a6fb7890822cb4c09c6e84b29908f">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE</a> (<a class="el" href="classtvm_1_1Attrs.html">Attrs</a>, ObjectRef, <a class="el" href="classtvm_1_1BaseAttrsNode.html">BaseAttrsNode</a>)</td></tr>
+<tr class="separator:a329a6fb7890822cb4c09c6e84b29908f"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
 <div class="textblock"><p>Managed reference to <a class="el" href="classtvm_1_1BaseAttrsNode.html" title="Base class of all attribute class.">BaseAttrsNode</a>. </p>
 <dl class="section see"><dt>See also</dt><dd>AttrsNode, <a class="el" href="classtvm_1_1BaseAttrsNode.html" title="Base class of all attribute class.">BaseAttrsNode</a> </dd></dl>
 </div><h2 class="groupheader">Member Function Documentation</h2>
-<a id="a1bf8ffc23955fe9b066d838ca41819e1"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a1bf8ffc23955fe9b066d838ca41819e1">&#9670;&nbsp;</a></span>TVM_DEFINE_OBJECT_REF_METHODS()</h2>
+<a id="a329a6fb7890822cb4c09c6e84b29908f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a329a6fb7890822cb4c09c6e84b29908f">&#9670;&nbsp;</a></span>TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE()</h2>
 
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">tvm::Attrs::TVM_DEFINE_OBJECT_REF_METHODS </td>
+          <td class="memname">tvm::Attrs::TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE </td>
           <td>(</td>
           <td class="paramtype"><a class="el" href="classtvm_1_1Attrs.html">Attrs</a>&#160;</td>
           <td class="paramname">, </td>
diff --git a/docs/reference/api/doxygen/classtvm_1_1AttrsNodeReflAdapter-members.html b/docs/reference/api/doxygen/classtvm_1_1AttrsNodeReflAdapter-members.html
index cc90776484..f98211a8d6 100644
--- a/docs/reference/api/doxygen/classtvm_1_1AttrsNodeReflAdapter-members.html
+++ b/docs/reference/api/doxygen/classtvm_1_1AttrsNodeReflAdapter-members.html
@@ -72,12 +72,11 @@ $(function() {
 
 <p>This is the complete list of members for <a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html">tvm::AttrsNodeReflAdapter&lt; DerivedType &gt;</a>, including all inherited members.</p>
 <table class="directory">
-  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1BaseAttrsNode.html#a8e4fd4e728774e0556cda84b0c2b80d6">_type_key</a></td><td class="entry"><a class="el" href="classtvm_1_1BaseAttrsNode.html">tvm::BaseAttrsNode</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classtvm_1_1BaseAttrsNode.html#a7c9d86042f7419c0cc25b7b9c1aa8695">_type_s_eq_hash_kind</a></td><td class="entry"><a class="el" href="classtvm_1_1BaseAttrsNode.html">tvm::BaseAttrsNode</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html#a4ecc2c9f98b17f656cbfe5755461e30c">InitByPackedArgs</a>(const ffi::PackedArgs &amp;args, bool allow_unknown) final</td><td class="entry"><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html">tvm::AttrsNodeReflAdapter&lt; DerivedType &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classtvm_1_1BaseAttrsNode.html#abcc04a722102d16fd4d86f9b7dcdd1e1">InitBySeq</a>(Args &amp;&amp;... args)</td><td class="entry"><a class="el" href="classtvm_1_1BaseAttrsNode.html">tvm::BaseAttrsNode</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1BaseAttrsNode.html#aaca524319f015a18a1385cfea5ba8895">TVM_DECLARE_BASE_OBJECT_INFO</a>(BaseAttrsNode, Object)</td><td class="entry"><a class="el" href="classtvm_1_1BaseAttrsNode.html">tvm::BaseAttrsNode</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classtvm_1_1BaseAttrsNode.html#a225581a40231b2de219da30fced428a2">~BaseAttrsNode</a>()</td><td class="entry"><a class="el" href="classtvm_1_1BaseAttrsNode.html">tvm::BaseAttrsNode</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1BaseAttrsNode.html#a7c9d86042f7419c0cc25b7b9c1aa8695">_type_s_eq_hash_kind</a></td><td class="entry"><a class="el" href="classtvm_1_1BaseAttrsNode.html">tvm::BaseAttrsNode</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html#a4ecc2c9f98b17f656cbfe5755461e30c">InitByPackedArgs</a>(const ffi::PackedArgs &amp;args, bool allow_unknown) final</td><td class="entry"><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html">tvm::AttrsNodeReflAdapter&lt; DerivedType &gt;</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1BaseAttrsNode.html#abcc04a722102d16fd4d86f9b7dcdd1e1">InitBySeq</a>(Args &amp;&amp;... args)</td><td class="entry"><a class="el" href="classtvm_1_1BaseAttrsNode.html">tvm::BaseAttrsNode</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1BaseAttrsNode.html#afabaaba39bdc345410373b0e73125f2a">TVM_FFI_DECLARE_OBJECT_INFO</a>(&quot;ir.Attrs&quot;, BaseAttrsNode, Object)</td><td class="entry"><a class="el" href="classtvm_1_1BaseAttrsNode.html">tvm::BaseAttrsNode</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1BaseAttrsNode.html#a225581a40231b2de219da30fced428a2">~BaseAttrsNode</a>()</td><td class="entry"><a class="el" href="classtvm_1_1BaseAttrsNode.html">tvm::BaseAttrsNode</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
diff --git a/docs/reference/api/doxygen/classtvm_1_1AttrsNodeReflAdapter.html b/docs/reference/api/doxygen/classtvm_1_1AttrsNodeReflAdapter.html
index 048c6ca836..20b8fdd32a 100644
--- a/docs/reference/api/doxygen/classtvm_1_1AttrsNodeReflAdapter.html
+++ b/docs/reference/api/doxygen/classtvm_1_1AttrsNodeReflAdapter.html
@@ -80,13 +80,13 @@ $(function() {
 <div class="dynheader">
 Inheritance diagram for tvm::AttrsNodeReflAdapter&lt; DerivedType &gt;:</div>
 <div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1AttrsNodeReflAdapter__inherit__graph.svg" width="242" height="427"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
+<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1AttrsNodeReflAdapter__inherit__graph.svg" width="227" height="412"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
 </div>
 </div>
 <div class="dynheader">
 Collaboration diagram for tvm::AttrsNodeReflAdapter&lt; DerivedType &gt;:</div>
 <div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1AttrsNodeReflAdapter__coll__graph.svg" width="242" height="427"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
+<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1AttrsNodeReflAdapter__coll__graph.svg" width="227" height="412"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
 </div>
 </div>
 <table class="memberdecls">
@@ -103,16 +103,14 @@ Public Member Functions</h2></td></tr>
 <tr class="memitem:abcc04a722102d16fd4d86f9b7dcdd1e1 inherit pub_methods_classtvm_1_1BaseAttrsNode"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classtvm_1_1BaseAttrsNode.html#abcc04a722102d16fd4d86f9b7dcdd1e1">InitBySeq</a> (Args &amp;&amp;... args)</td></tr>
 <tr class="memdesc:abcc04a722102d16fd4d86f9b7dcdd1e1 inherit pub_methods_classtvm_1_1BaseAttrsNode"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize the attributes by sequence of arguments.  <a href="classtvm_1_1BaseAttrsNode.html#abcc04a722102d16fd4d86f9b7dcdd1e1">More...</a><br /></td></tr>
 <tr class="separator:abcc04a722102d16fd4d86f9b7dcdd1e1 inherit pub_methods_classtvm_1_1BaseAttrsNode"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aaca524319f015a18a1385cfea5ba8895 inherit pub_methods_classtvm_1_1BaseAttrsNode"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1BaseAttrsNode.html#aaca524319f015a18a1385cfea5ba8895">TVM_DECLARE_BASE_OBJECT_INFO</a> (<a class="el" href="classtvm_1_1BaseAttrsNode.html">BaseAttrsNode</a>, Object)</td></tr>
-<tr class="separator:aaca524319f015a18a1385cfea5ba8895 inherit pub_methods_classtvm_1_1BaseAttrsNode"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afabaaba39bdc345410373b0e73125f2a inherit pub_methods_classtvm_1_1BaseAttrsNode"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1BaseAttrsNode.html#afabaaba39bdc345410373b0e73125f2a">TVM_FFI_DECLARE_OBJECT_INFO</a> (&quot;ir.Attrs&quot;, BaseAttrsNode, Object)</td></tr>
+<tr class="separator:afabaaba39bdc345410373b0e73125f2a inherit pub_methods_classtvm_1_1BaseAttrsNode"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="inherited"></a>
 Additional Inherited Members</h2></td></tr>
 <tr class="inherit_header pub_static_attribs_classtvm_1_1BaseAttrsNode"><td colspan="2" onclick="javascript:toggleInherit('pub_static_attribs_classtvm_1_1BaseAttrsNode')"><img src="closed.png" alt="-"/>&#160;Static Public Attributes inherited from <a class="el" href="classtvm_1_1BaseAttrsNode.html">tvm::BaseAttrsNode</a></td></tr>
 <tr class="memitem:a7c9d86042f7419c0cc25b7b9c1aa8695 inherit pub_static_attribs_classtvm_1_1BaseAttrsNode"><td class="memItemLeft" align="right" valign="top">static constexpr TVMFFISEqHashKind&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1BaseAttrsNode.html#a7c9d86042f7419c0cc25b7b9c1aa8695">_type_s_eq_hash_kind</a> = kTVMFFISEqHashKindTreeNode</td></tr>
 <tr class="separator:a7c9d86042f7419c0cc25b7b9c1aa8695 inherit pub_static_attribs_classtvm_1_1BaseAttrsNode"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a8e4fd4e728774e0556cda84b0c2b80d6 inherit pub_static_attribs_classtvm_1_1BaseAttrsNode"><td class="memItemLeft" align="right" valign="top">static constexpr const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1BaseAttrsNode.html#a8e4fd4e728774e0556cda84b0c2b80d6">_type_key</a> = &quot;ir.Attrs&quot;</td></tr>
-<tr class="separator:a8e4fd4e728774e0556cda84b0c2b80d6 inherit pub_static_attribs_classtvm_1_1BaseAttrsNode"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
 <div class="textblock"><h3>template&lt;typename DerivedType&gt;<br />
diff --git a/docs/reference/api/doxygen/classtvm_1_1AttrsNodeReflAdapter__coll__graph.svg b/docs/reference/api/doxygen/classtvm_1_1AttrsNodeReflAdapter__coll__graph.svg
index 03a3c8aefc..1ddfc63608 100644
--- a/docs/reference/api/doxygen/classtvm_1_1AttrsNodeReflAdapter__coll__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1AttrsNodeReflAdapter__coll__graph.svg
@@ -4,22 +4,22 @@
 <!-- Generated by graphviz version 2.43.0 (0)
  -->
 <!-- Title: tvm::AttrsNodeReflAdapter&lt; DerivedType &gt; Pages: 1 -->
-<svg width="181pt" height="320pt"
- viewBox="0.00 0.00 181.00 320.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 316)">
+<svg width="170pt" height="309pt"
+ viewBox="0.00 0.00 170.00 309.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 305)">
 <title>tvm::AttrsNodeReflAdapter&lt; DerivedType &gt;</title>
-<polygon fill="white" stroke="transparent" points="-4,4 -4,-316 177,-316 177,4 -4,4"/>
+<polygon fill="white" stroke="transparent" points="-4,4 -4,-305 166,-305 166,4 -4,4"/>
 <!-- Node1 -->
 <g id="node1" class="node">
 <title>Node1</title>
 <g id="a_node1"><a xlink:title="Adapter for AttrsNode with the new reflection API.">
-<polygon fill="#bfbfbf" stroke="black" points="12.5,-0.5 12.5,-68.5 160.5,-68.5 160.5,-0.5 12.5,-0.5"/>
-<text text-anchor="start" x="20.5" y="-56.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="86.5" y="-45.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; DerivedType &gt;</text>
-<polyline fill="none" stroke="black" points="12.5,-38.5 160.5,-38.5 "/>
-<text text-anchor="middle" x="86.5" y="-26.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="12.5,-19.5 160.5,-19.5 "/>
-<text text-anchor="start" x="20.5" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="#bfbfbf" stroke="black" points="7,-0.5 7,-68.5 155,-68.5 155,-0.5 7,-0.5"/>
+<text text-anchor="start" x="15" y="-56.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="81" y="-45.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; DerivedType &gt;</text>
+<polyline fill="none" stroke="black" points="7,-38.5 155,-38.5 "/>
+<text text-anchor="middle" x="81" y="-26.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="7,-19.5 155,-19.5 "/>
+<text text-anchor="start" x="15" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
@@ -27,16 +27,15 @@
 <g id="node2" class="node">
 <title>Node2</title>
 <g id="a_node2"><a xlink:href="classtvm_1_1BaseAttrsNode.html" target="_top" xlink:title="Base class of all attribute class.">
-<polygon fill="white" stroke="black" points="0,-105.5 0,-217.5 173,-217.5 173,-105.5 0,-105.5"/>
-<text text-anchor="middle" x="86.5" y="-205.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::BaseAttrsNode</text>
-<polyline fill="none" stroke="black" points="0,-198.5 173,-198.5 "/>
-<text text-anchor="start" x="8" y="-186.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_s_eq_hash_kind</text>
-<text text-anchor="start" x="8" y="-175.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
-<polyline fill="none" stroke="black" points="0,-168.5 173,-168.5 "/>
+<polygon fill="white" stroke="black" points="0,-105.5 0,-206.5 162,-206.5 162,-105.5 0,-105.5"/>
+<text text-anchor="middle" x="81" y="-194.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::BaseAttrsNode</text>
+<polyline fill="none" stroke="black" points="0,-187.5 162,-187.5 "/>
+<text text-anchor="start" x="8" y="-175.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_s_eq_hash_kind</text>
+<polyline fill="none" stroke="black" points="0,-168.5 162,-168.5 "/>
 <text text-anchor="start" x="8" y="-156.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ~BaseAttrsNode()</text>
 <text text-anchor="start" x="8" y="-145.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitBySeq()</text>
 <text text-anchor="start" x="8" y="-134.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
-<text text-anchor="start" x="8" y="-123.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DECLARE_BASE_OBJECT</text>
+<text text-anchor="start" x="8" y="-123.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
 <text text-anchor="start" x="8" y="-112.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO()</text>
 </a>
 </g>
@@ -44,27 +43,27 @@
 <!-- Node2&#45;&gt;Node1 -->
 <g id="edge1" class="edge">
 <title>Node2&#45;&gt;Node1</title>
-<path fill="none" stroke="midnightblue" d="M86.5,-95.26C86.5,-85.99 86.5,-76.8 86.5,-68.51"/>
-<polygon fill="none" stroke="midnightblue" points="83,-95.31 86.5,-105.31 90,-95.31 83,-95.31"/>
+<path fill="none" stroke="midnightblue" d="M81,-95.17C81,-86.11 81,-77.05 81,-68.83"/>
+<polygon fill="none" stroke="midnightblue" points="77.5,-95.36 81,-105.36 84.5,-95.36 77.5,-95.36"/>
 </g>
 <!-- Node3 -->
 <g id="node3" class="node">
 <title>Node3</title>
 <g id="a_node3"><a xlink:title=" ">
-<polygon fill="white" stroke="#bfbfbf" points="62.5,-254.5 62.5,-311.5 110.5,-311.5 110.5,-254.5 62.5,-254.5"/>
-<text text-anchor="middle" x="86.5" y="-299.5" font-family="Helvetica,sans-Serif" font-size="10.00">Object</text>
-<polyline fill="none" stroke="#bfbfbf" points="62.5,-292.5 110.5,-292.5 "/>
-<text text-anchor="middle" x="86.5" y="-280.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="#bfbfbf" points="62.5,-273.5 110.5,-273.5 "/>
-<text text-anchor="middle" x="86.5" y="-261.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polygon fill="white" stroke="#bfbfbf" points="57,-243.5 57,-300.5 105,-300.5 105,-243.5 57,-243.5"/>
+<text text-anchor="middle" x="81" y="-288.5" font-family="Helvetica,sans-Serif" font-size="10.00">Object</text>
+<polyline fill="none" stroke="#bfbfbf" points="57,-281.5 105,-281.5 "/>
+<text text-anchor="middle" x="81" y="-269.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="#bfbfbf" points="57,-262.5 105,-262.5 "/>
+<text text-anchor="middle" x="81" y="-250.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
 </a>
 </g>
 </g>
 <!-- Node3&#45;&gt;Node2 -->
 <g id="edge2" class="edge">
 <title>Node3&#45;&gt;Node2</title>
-<path fill="none" stroke="midnightblue" d="M86.5,-244.11C86.5,-235.75 86.5,-226.73 86.5,-217.83"/>
-<polygon fill="none" stroke="midnightblue" points="83,-244.28 86.5,-254.28 90,-244.28 83,-244.28"/>
+<path fill="none" stroke="midnightblue" d="M81,-233.35C81,-224.8 81,-215.58 81,-206.61"/>
+<polygon fill="none" stroke="midnightblue" points="77.5,-233.4 81,-243.4 84.5,-233.4 77.5,-233.4"/>
 </g>
 </g>
 </svg>
diff --git a/docs/reference/api/doxygen/classtvm_1_1AttrsNodeReflAdapter__inherit__graph.svg b/docs/reference/api/doxygen/classtvm_1_1AttrsNodeReflAdapter__inherit__graph.svg
index 03a3c8aefc..1ddfc63608 100644
--- a/docs/reference/api/doxygen/classtvm_1_1AttrsNodeReflAdapter__inherit__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1AttrsNodeReflAdapter__inherit__graph.svg
@@ -4,22 +4,22 @@
 <!-- Generated by graphviz version 2.43.0 (0)
  -->
 <!-- Title: tvm::AttrsNodeReflAdapter&lt; DerivedType &gt; Pages: 1 -->
-<svg width="181pt" height="320pt"
- viewBox="0.00 0.00 181.00 320.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 316)">
+<svg width="170pt" height="309pt"
+ viewBox="0.00 0.00 170.00 309.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 305)">
 <title>tvm::AttrsNodeReflAdapter&lt; DerivedType &gt;</title>
-<polygon fill="white" stroke="transparent" points="-4,4 -4,-316 177,-316 177,4 -4,4"/>
+<polygon fill="white" stroke="transparent" points="-4,4 -4,-305 166,-305 166,4 -4,4"/>
 <!-- Node1 -->
 <g id="node1" class="node">
 <title>Node1</title>
 <g id="a_node1"><a xlink:title="Adapter for AttrsNode with the new reflection API.">
-<polygon fill="#bfbfbf" stroke="black" points="12.5,-0.5 12.5,-68.5 160.5,-68.5 160.5,-0.5 12.5,-0.5"/>
-<text text-anchor="start" x="20.5" y="-56.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="86.5" y="-45.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; DerivedType &gt;</text>
-<polyline fill="none" stroke="black" points="12.5,-38.5 160.5,-38.5 "/>
-<text text-anchor="middle" x="86.5" y="-26.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="12.5,-19.5 160.5,-19.5 "/>
-<text text-anchor="start" x="20.5" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="#bfbfbf" stroke="black" points="7,-0.5 7,-68.5 155,-68.5 155,-0.5 7,-0.5"/>
+<text text-anchor="start" x="15" y="-56.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="81" y="-45.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; DerivedType &gt;</text>
+<polyline fill="none" stroke="black" points="7,-38.5 155,-38.5 "/>
+<text text-anchor="middle" x="81" y="-26.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="7,-19.5 155,-19.5 "/>
+<text text-anchor="start" x="15" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
@@ -27,16 +27,15 @@
 <g id="node2" class="node">
 <title>Node2</title>
 <g id="a_node2"><a xlink:href="classtvm_1_1BaseAttrsNode.html" target="_top" xlink:title="Base class of all attribute class.">
-<polygon fill="white" stroke="black" points="0,-105.5 0,-217.5 173,-217.5 173,-105.5 0,-105.5"/>
-<text text-anchor="middle" x="86.5" y="-205.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::BaseAttrsNode</text>
-<polyline fill="none" stroke="black" points="0,-198.5 173,-198.5 "/>
-<text text-anchor="start" x="8" y="-186.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_s_eq_hash_kind</text>
-<text text-anchor="start" x="8" y="-175.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
-<polyline fill="none" stroke="black" points="0,-168.5 173,-168.5 "/>
+<polygon fill="white" stroke="black" points="0,-105.5 0,-206.5 162,-206.5 162,-105.5 0,-105.5"/>
+<text text-anchor="middle" x="81" y="-194.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::BaseAttrsNode</text>
+<polyline fill="none" stroke="black" points="0,-187.5 162,-187.5 "/>
+<text text-anchor="start" x="8" y="-175.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_s_eq_hash_kind</text>
+<polyline fill="none" stroke="black" points="0,-168.5 162,-168.5 "/>
 <text text-anchor="start" x="8" y="-156.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ~BaseAttrsNode()</text>
 <text text-anchor="start" x="8" y="-145.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitBySeq()</text>
 <text text-anchor="start" x="8" y="-134.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
-<text text-anchor="start" x="8" y="-123.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DECLARE_BASE_OBJECT</text>
+<text text-anchor="start" x="8" y="-123.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
 <text text-anchor="start" x="8" y="-112.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO()</text>
 </a>
 </g>
@@ -44,27 +43,27 @@
 <!-- Node2&#45;&gt;Node1 -->
 <g id="edge1" class="edge">
 <title>Node2&#45;&gt;Node1</title>
-<path fill="none" stroke="midnightblue" d="M86.5,-95.26C86.5,-85.99 86.5,-76.8 86.5,-68.51"/>
-<polygon fill="none" stroke="midnightblue" points="83,-95.31 86.5,-105.31 90,-95.31 83,-95.31"/>
+<path fill="none" stroke="midnightblue" d="M81,-95.17C81,-86.11 81,-77.05 81,-68.83"/>
+<polygon fill="none" stroke="midnightblue" points="77.5,-95.36 81,-105.36 84.5,-95.36 77.5,-95.36"/>
 </g>
 <!-- Node3 -->
 <g id="node3" class="node">
 <title>Node3</title>
 <g id="a_node3"><a xlink:title=" ">
-<polygon fill="white" stroke="#bfbfbf" points="62.5,-254.5 62.5,-311.5 110.5,-311.5 110.5,-254.5 62.5,-254.5"/>
-<text text-anchor="middle" x="86.5" y="-299.5" font-family="Helvetica,sans-Serif" font-size="10.00">Object</text>
-<polyline fill="none" stroke="#bfbfbf" points="62.5,-292.5 110.5,-292.5 "/>
-<text text-anchor="middle" x="86.5" y="-280.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="#bfbfbf" points="62.5,-273.5 110.5,-273.5 "/>
-<text text-anchor="middle" x="86.5" y="-261.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polygon fill="white" stroke="#bfbfbf" points="57,-243.5 57,-300.5 105,-300.5 105,-243.5 57,-243.5"/>
+<text text-anchor="middle" x="81" y="-288.5" font-family="Helvetica,sans-Serif" font-size="10.00">Object</text>
+<polyline fill="none" stroke="#bfbfbf" points="57,-281.5 105,-281.5 "/>
+<text text-anchor="middle" x="81" y="-269.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="#bfbfbf" points="57,-262.5 105,-262.5 "/>
+<text text-anchor="middle" x="81" y="-250.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
 </a>
 </g>
 </g>
 <!-- Node3&#45;&gt;Node2 -->
 <g id="edge2" class="edge">
 <title>Node3&#45;&gt;Node2</title>
-<path fill="none" stroke="midnightblue" d="M86.5,-244.11C86.5,-235.75 86.5,-226.73 86.5,-217.83"/>
-<polygon fill="none" stroke="midnightblue" points="83,-244.28 86.5,-254.28 90,-244.28 83,-244.28"/>
+<path fill="none" stroke="midnightblue" d="M81,-233.35C81,-224.8 81,-215.58 81,-206.61"/>
+<polygon fill="none" stroke="midnightblue" points="77.5,-233.4 81,-243.4 84.5,-233.4 77.5,-233.4"/>
 </g>
 </g>
 </svg>
diff --git a/docs/reference/api/doxygen/classtvm_1_1Attrs__coll__graph.svg b/docs/reference/api/doxygen/classtvm_1_1Attrs__coll__graph.svg
index 0996998e09..4a1de17e17 100644
--- a/docs/reference/api/doxygen/classtvm_1_1Attrs__coll__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1Attrs__coll__graph.svg
@@ -4,22 +4,22 @@
 <!-- Generated by graphviz version 2.43.0 (0)
  -->
 <!-- Title: tvm::Attrs Pages: 1 -->
-<svg width="164pt" height="171pt"
- viewBox="0.00 0.00 164.00 171.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<svg width="167pt" height="171pt"
+ viewBox="0.00 0.00 167.00 171.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
 <g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 167)">
 <title>tvm::Attrs</title>
-<polygon fill="white" stroke="transparent" points="-4,4 -4,-167 160,-167 160,4 -4,4"/>
+<polygon fill="white" stroke="transparent" points="-4,4 -4,-167 163,-167 163,4 -4,4"/>
 <!-- Node1 -->
 <g id="node1" class="node">
 <title>Node1</title>
 <g id="a_node1"><a xlink:title="Managed reference to BaseAttrsNode.">
-<polygon fill="#bfbfbf" stroke="black" points="0,-0.5 0,-68.5 156,-68.5 156,-0.5 0,-0.5"/>
-<text text-anchor="middle" x="78" y="-56.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::Attrs</text>
-<polyline fill="none" stroke="black" points="0,-49.5 156,-49.5 "/>
-<text text-anchor="middle" x="78" y="-37.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="0,-30.5 156,-30.5 "/>
-<text text-anchor="start" x="8" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="8" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">_METHODS()</text>
+<polygon fill="#bfbfbf" stroke="black" points="0,-0.5 0,-68.5 159,-68.5 159,-0.5 0,-0.5"/>
+<text text-anchor="middle" x="79.5" y="-56.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::Attrs</text>
+<polyline fill="none" stroke="black" points="0,-49.5 159,-49.5 "/>
+<text text-anchor="middle" x="79.5" y="-37.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="0,-30.5 159,-30.5 "/>
+<text text-anchor="start" x="8" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DEFINE_OBJECT</text>
+<text text-anchor="start" x="8" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NULLABLE()</text>
 </a>
 </g>
 </g>
@@ -27,20 +27,20 @@
 <g id="node2" class="node">
 <title>Node2</title>
 <g id="a_node2"><a xlink:title=" ">
-<polygon fill="white" stroke="#bfbfbf" points="45.5,-105.5 45.5,-162.5 110.5,-162.5 110.5,-105.5 45.5,-105.5"/>
-<text text-anchor="middle" x="78" y="-150.5" font-family="Helvetica,sans-Serif" font-size="10.00">ObjectRef</text>
-<polyline fill="none" stroke="#bfbfbf" points="45.5,-143.5 110.5,-143.5 "/>
-<text text-anchor="middle" x="78" y="-131.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="#bfbfbf" points="45.5,-124.5 110.5,-124.5 "/>
-<text text-anchor="middle" x="78" y="-112.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polygon fill="white" stroke="#bfbfbf" points="47,-105.5 47,-162.5 112,-162.5 112,-105.5 47,-105.5"/>
+<text text-anchor="middle" x="79.5" y="-150.5" font-family="Helvetica,sans-Serif" font-size="10.00">ObjectRef</text>
+<polyline fill="none" stroke="#bfbfbf" points="47,-143.5 112,-143.5 "/>
+<text text-anchor="middle" x="79.5" y="-131.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="#bfbfbf" points="47,-124.5 112,-124.5 "/>
+<text text-anchor="middle" x="79.5" y="-112.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node1 -->
 <g id="edge1" class="edge">
 <title>Node2&#45;&gt;Node1</title>
-<path fill="none" stroke="midnightblue" d="M78,-95.06C78,-86.39 78,-77.24 78,-68.79"/>
-<polygon fill="none" stroke="midnightblue" points="74.5,-95.32 78,-105.32 81.5,-95.32 74.5,-95.32"/>
+<path fill="none" stroke="midnightblue" d="M79.5,-95.06C79.5,-86.39 79.5,-77.24 79.5,-68.79"/>
+<polygon fill="none" stroke="midnightblue" points="76,-95.32 79.5,-105.32 83,-95.32 76,-95.32"/>
 </g>
 </g>
 </svg>
diff --git a/docs/reference/api/doxygen/classtvm_1_1Attrs__inherit__graph.svg b/docs/reference/api/doxygen/classtvm_1_1Attrs__inherit__graph.svg
index 7eb4fb8307..075027d583 100644
--- a/docs/reference/api/doxygen/classtvm_1_1Attrs__inherit__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1Attrs__inherit__graph.svg
@@ -4,22 +4,22 @@
 <!-- Generated by graphviz version 2.43.0 (0)
  -->
 <!-- Title: tvm::Attrs Pages: 1 -->
-<svg width="180pt" height="364pt"
- viewBox="0.00 0.00 180.00 364.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<svg width="213pt" height="364pt"
+ viewBox="0.00 0.00 213.00 364.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
 <g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 360)">
 <title>tvm::Attrs</title>
-<polygon fill="white" stroke="transparent" points="-4,4 -4,-360 176,-360 176,4 -4,4"/>
+<polygon fill="white" stroke="transparent" points="-4,4 -4,-360 209,-360 209,4 -4,4"/>
 <!-- Node1 -->
 <g id="node1" class="node">
 <title>Node1</title>
 <g id="a_node1"><a xlink:title="Managed reference to BaseAttrsNode.">
-<polygon fill="#bfbfbf" stroke="black" points="8,-193.5 8,-261.5 164,-261.5 164,-193.5 8,-193.5"/>
-<text text-anchor="middle" x="86" y="-249.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::Attrs</text>
-<polyline fill="none" stroke="black" points="8,-242.5 164,-242.5 "/>
-<text text-anchor="middle" x="86" y="-230.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="8,-223.5 164,-223.5 "/>
-<text text-anchor="start" x="16" y="-211.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="16" y="-200.5" font-family="Helvetica,sans-Serif" font-size="10.00">_METHODS()</text>
+<polygon fill="#bfbfbf" stroke="black" points="23,-193.5 23,-261.5 182,-261.5 182,-193.5 23,-193.5"/>
+<text text-anchor="middle" x="102.5" y="-249.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::Attrs</text>
+<polyline fill="none" stroke="black" points="23,-242.5 182,-242.5 "/>
+<text text-anchor="middle" x="102.5" y="-230.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="23,-223.5 182,-223.5 "/>
+<text text-anchor="start" x="31" y="-211.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DEFINE_OBJECT</text>
+<text text-anchor="start" x="31" y="-200.5" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NULLABLE()</text>
 </a>
 </g>
 </g>
@@ -27,19 +27,19 @@
 <g id="node3" class="node">
 <title>Node3</title>
 <g id="a_node3"><a xlink:href="classtvm_1_1DictAttrs.html" target="_top" xlink:title="Managed reference to DictAttrsNode.">
-<polygon fill="white" stroke="black" points="0,-0.5 0,-156.5 172,-156.5 172,-0.5 0,-0.5"/>
-<text text-anchor="middle" x="86" y="-144.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::DictAttrs</text>
-<polyline fill="none" stroke="black" points="0,-137.5 172,-137.5 "/>
-<text text-anchor="middle" x="86" y="-125.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="0,-118.5 172,-118.5 "/>
+<polygon fill="white" stroke="black" points="0,-0.5 0,-156.5 205,-156.5 205,-0.5 0,-0.5"/>
+<text text-anchor="middle" x="102.5" y="-144.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::DictAttrs</text>
+<polyline fill="none" stroke="black" points="0,-137.5 205,-137.5 "/>
+<text text-anchor="middle" x="102.5" y="-125.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="0,-118.5 205,-118.5 "/>
 <text text-anchor="start" x="8" y="-106.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ DictAttrs()</text>
 <text text-anchor="start" x="8" y="-95.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ DictAttrs()</text>
 <text text-anchor="start" x="8" y="-84.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ GetAttr()</text>
 <text text-anchor="start" x="8" y="-73.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ GetAttr()</text>
 <text text-anchor="start" x="8" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ HasNonzeroAttr()</text>
-<text text-anchor="start" x="8" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="8" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00">_METHODS_WITHOUT_DEFAULT</text>
-<text text-anchor="start" x="8" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00">_CONSTRUCTOR()</text>
+<text text-anchor="start" x="8" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DEFINE_OBJECT</text>
+<text text-anchor="start" x="8" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NULLABLE</text>
+<text text-anchor="start" x="8" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00">_WITHOUT_DEFAULT_CONSTRUCTOR()</text>
 <text text-anchor="start" x="8" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DEFINE_OBJECT_REF</text>
 <text text-anchor="start" x="8" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">_COW_METHOD()</text>
 </a>
@@ -48,27 +48,27 @@
 <!-- Node1&#45;&gt;Node3 -->
 <g id="edge2" class="edge">
 <title>Node1&#45;&gt;Node3</title>
-<path fill="none" stroke="midnightblue" d="M86,-183C86,-174.7 86,-165.78 86,-156.79"/>
-<polygon fill="none" stroke="midnightblue" points="82.5,-183.14 86,-193.14 89.5,-183.14 82.5,-183.14"/>
+<path fill="none" stroke="midnightblue" d="M102.5,-183C102.5,-174.7 102.5,-165.78 102.5,-156.79"/>
+<polygon fill="none" stroke="midnightblue" points="99,-183.14 102.5,-193.14 106,-183.14 99,-183.14"/>
 </g>
 <!-- Node2 -->
 <g id="node2" class="node">
 <title>Node2</title>
 <g id="a_node2"><a xlink:title=" ">
-<polygon fill="white" stroke="#bfbfbf" points="53.5,-298.5 53.5,-355.5 118.5,-355.5 118.5,-298.5 53.5,-298.5"/>
-<text text-anchor="middle" x="86" y="-343.5" font-family="Helvetica,sans-Serif" font-size="10.00">ObjectRef</text>
-<polyline fill="none" stroke="#bfbfbf" points="53.5,-336.5 118.5,-336.5 "/>
-<text text-anchor="middle" x="86" y="-324.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="#bfbfbf" points="53.5,-317.5 118.5,-317.5 "/>
-<text text-anchor="middle" x="86" y="-305.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polygon fill="white" stroke="#bfbfbf" points="70,-298.5 70,-355.5 135,-355.5 135,-298.5 70,-298.5"/>
+<text text-anchor="middle" x="102.5" y="-343.5" font-family="Helvetica,sans-Serif" font-size="10.00">ObjectRef</text>
+<polyline fill="none" stroke="#bfbfbf" points="70,-336.5 135,-336.5 "/>
+<text text-anchor="middle" x="102.5" y="-324.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="#bfbfbf" points="70,-317.5 135,-317.5 "/>
+<text text-anchor="middle" x="102.5" y="-305.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node1 -->
 <g id="edge1" class="edge">
 <title>Node2&#45;&gt;Node1</title>
-<path fill="none" stroke="midnightblue" d="M86,-288.06C86,-279.39 86,-270.24 86,-261.79"/>
-<polygon fill="none" stroke="midnightblue" points="82.5,-288.32 86,-298.32 89.5,-288.32 82.5,-288.32"/>
+<path fill="none" stroke="midnightblue" d="M102.5,-288.06C102.5,-279.39 102.5,-270.24 102.5,-261.79"/>
+<polygon fill="none" stroke="midnightblue" points="99,-288.32 102.5,-298.32 106,-288.32 99,-288.32"/>
 </g>
 </g>
 </svg>
diff --git a/docs/reference/api/doxygen/classtvm_1_1BaseAttrsNode-members.html b/docs/reference/api/doxygen/classtvm_1_1BaseAttrsNode-members.html
index 4b25300920..47b2aaa13c 100644
--- a/docs/reference/api/doxygen/classtvm_1_1BaseAttrsNode-members.html
+++ b/docs/reference/api/doxygen/classtvm_1_1BaseAttrsNode-members.html
@@ -72,12 +72,11 @@ $(function() {
 
 <p>This is the complete list of members for <a class="el" href="classtvm_1_1BaseAttrsNode.html">tvm::BaseAttrsNode</a>, including all inherited members.</p>
 <table class="directory">
-  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1BaseAttrsNode.html#a8e4fd4e728774e0556cda84b0c2b80d6">_type_key</a></td><td class="entry"><a class="el" href="classtvm_1_1BaseAttrsNode.html">tvm::BaseAttrsNode</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classtvm_1_1BaseAttrsNode.html#a7c9d86042f7419c0cc25b7b9c1aa8695">_type_s_eq_hash_kind</a></td><td class="entry"><a class="el" href="classtvm_1_1BaseAttrsNode.html">tvm::BaseAttrsNode</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1BaseAttrsNode.html#adf84245590cf8fa64042329a24eaad54">InitByPackedArgs</a>(const ffi::PackedArgs &amp;kwargs, bool allow_unknown=false)=0</td><td class="entry"><a class="el" href="classtvm_1_1BaseAttrsNode.html">tvm::BaseAttrsNode</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
-  <tr><td class="entry"><a class="el" href="classtvm_1_1BaseAttrsNode.html#abcc04a722102d16fd4d86f9b7dcdd1e1">InitBySeq</a>(Args &amp;&amp;... args)</td><td class="entry"><a class="el" href="classtvm_1_1BaseAttrsNode.html">tvm::BaseAttrsNode</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
-  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1BaseAttrsNode.html#aaca524319f015a18a1385cfea5ba8895">TVM_DECLARE_BASE_OBJECT_INFO</a>(BaseAttrsNode, Object)</td><td class="entry"><a class="el" href="classtvm_1_1BaseAttrsNode.html">tvm::BaseAttrsNode</a></td><td class="entry"></td></tr>
-  <tr><td class="entry"><a class="el" href="classtvm_1_1BaseAttrsNode.html#a225581a40231b2de219da30fced428a2">~BaseAttrsNode</a>()</td><td class="entry"><a class="el" href="classtvm_1_1BaseAttrsNode.html">tvm::BaseAttrsNode</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1BaseAttrsNode.html#a7c9d86042f7419c0cc25b7b9c1aa8695">_type_s_eq_hash_kind</a></td><td class="entry"><a class="el" href="classtvm_1_1BaseAttrsNode.html">tvm::BaseAttrsNode</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1BaseAttrsNode.html#adf84245590cf8fa64042329a24eaad54">InitByPackedArgs</a>(const ffi::PackedArgs &amp;kwargs, bool allow_unknown=false)=0</td><td class="entry"><a class="el" href="classtvm_1_1BaseAttrsNode.html">tvm::BaseAttrsNode</a></td><td class="entry"><span class="mlabel">pure virtual</span></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1BaseAttrsNode.html#abcc04a722102d16fd4d86f9b7dcdd1e1">InitBySeq</a>(Args &amp;&amp;... args)</td><td class="entry"><a class="el" href="classtvm_1_1BaseAttrsNode.html">tvm::BaseAttrsNode</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+  <tr><td class="entry"><a class="el" href="classtvm_1_1BaseAttrsNode.html#afabaaba39bdc345410373b0e73125f2a">TVM_FFI_DECLARE_OBJECT_INFO</a>(&quot;ir.Attrs&quot;, BaseAttrsNode, Object)</td><td class="entry"><a class="el" href="classtvm_1_1BaseAttrsNode.html">tvm::BaseAttrsNode</a></td><td class="entry"></td></tr>
+  <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1BaseAttrsNode.html#a225581a40231b2de219da30fced428a2">~BaseAttrsNode</a>()</td><td class="entry"><a class="el" href="classtvm_1_1BaseAttrsNode.html">tvm::BaseAttrsNode</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
 </table></div><!-- contents -->
 <!-- start footer part -->
 <hr class="footer"/><address class="footer"><small>
diff --git a/docs/reference/api/doxygen/classtvm_1_1BaseAttrsNode.html b/docs/reference/api/doxygen/classtvm_1_1BaseAttrsNode.html
index 8b90f9bf7e..dc6bc0980f 100644
--- a/docs/reference/api/doxygen/classtvm_1_1BaseAttrsNode.html
+++ b/docs/reference/api/doxygen/classtvm_1_1BaseAttrsNode.html
@@ -81,13 +81,13 @@ $(function() {
 <div class="dynheader">
 Inheritance diagram for tvm::BaseAttrsNode:</div>
 <div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1BaseAttrsNode__inherit__graph.svg" width="16632" height="772"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
+<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1BaseAttrsNode__inherit__graph.svg" width="17070" height="728"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
 </div>
 </div>
 <div class="dynheader">
 Collaboration diagram for tvm::BaseAttrsNode:</div>
 <div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1BaseAttrsNode__coll__graph.svg" width="242" height="287"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
+<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1BaseAttrsNode__coll__graph.svg" width="227" height="272"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe>
 </div>
 </div>
 <table class="memberdecls">
@@ -103,15 +103,13 @@ Public Member Functions</h2></td></tr>
 <tr class="memitem:adf84245590cf8fa64042329a24eaad54"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1BaseAttrsNode.html#adf84245590cf8fa64042329a24eaad54">InitByPackedArgs</a> (const ffi::PackedArgs &amp;kwargs, bool allow_unknown=false)=0</td></tr>
 <tr class="memdesc:adf84245590cf8fa64042329a24eaad54"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initialize the attributes by arguments.  <a href="classtvm_1_1BaseAttrsNode.html#adf84245590cf8fa64042329a24eaad54">More...</a><br /></td></tr>
 <tr class="separator:adf84245590cf8fa64042329a24eaad54"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aaca524319f015a18a1385cfea5ba8895"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1BaseAttrsNode.html#aaca524319f015a18a1385cfea5ba8895">TVM_DECLARE_BASE_OBJECT_INFO</a> (<a class="el" href="classtvm_1_1BaseAttrsNode.html">BaseAttrsNode</a>, Object)</td></tr>
-<tr class="separator:aaca524319f015a18a1385cfea5ba8895"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:afabaaba39bdc345410373b0e73125f2a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1BaseAttrsNode.html#afabaaba39bdc345410373b0e73125f2a">TVM_FFI_DECLARE_OBJECT_INFO</a> (&quot;ir.Attrs&quot;, BaseAttrsNode, Object)</td></tr>
+<tr class="separator:afabaaba39bdc345410373b0e73125f2a"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table><table class="memberdecls">
 <tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-static-attribs"></a>
 Static Public Attributes</h2></td></tr>
 <tr class="memitem:a7c9d86042f7419c0cc25b7b9c1aa8695"><td class="memItemLeft" align="right" valign="top">static constexpr TVMFFISEqHashKind&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1BaseAttrsNode.html#a7c9d86042f7419c0cc25b7b9c1aa8695">_type_s_eq_hash_kind</a> = kTVMFFISEqHashKindTreeNode</td></tr>
 <tr class="separator:a7c9d86042f7419c0cc25b7b9c1aa8695"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a8e4fd4e728774e0556cda84b0c2b80d6"><td class="memItemLeft" align="right" valign="top">static constexpr const char *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1BaseAttrsNode.html#a8e4fd4e728774e0556cda84b0c2b80d6">_type_key</a> = &quot;ir.Attrs&quot;</td></tr>
-<tr class="separator:a8e4fd4e728774e0556cda84b0c2b80d6"><td class="memSeparator" colspan="2">&#160;</td></tr>
 </table>
 <a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
 <div class="textblock"><p>Base class of all attribute class. </p>
@@ -230,15 +228,21 @@ template&lt;typename... Args&gt; </div>
 
 </div>
 </div>
-<a id="aaca524319f015a18a1385cfea5ba8895"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#aaca524319f015a18a1385cfea5ba8895">&#9670;&nbsp;</a></span>TVM_DECLARE_BASE_OBJECT_INFO()</h2>
+<a id="afabaaba39bdc345410373b0e73125f2a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#afabaaba39bdc345410373b0e73125f2a">&#9670;&nbsp;</a></span>TVM_FFI_DECLARE_OBJECT_INFO()</h2>
 
 <div class="memitem">
 <div class="memproto">
       <table class="memname">
         <tr>
-          <td class="memname">tvm::BaseAttrsNode::TVM_DECLARE_BASE_OBJECT_INFO </td>
+          <td class="memname">tvm::BaseAttrsNode::TVM_FFI_DECLARE_OBJECT_INFO </td>
           <td>(</td>
+          <td class="paramtype">&quot;ir.Attrs&quot;&#160;</td>
+          <td class="paramname">, </td>
+        </tr>
+        <tr>
+          <td class="paramkey"></td>
+          <td></td>
           <td class="paramtype"><a class="el" href="classtvm_1_1BaseAttrsNode.html">BaseAttrsNode</a>&#160;</td>
           <td class="paramname">, </td>
         </tr>
@@ -259,28 +263,6 @@ template&lt;typename... Args&gt; </div>
 </div>
 </div>
 <h2 class="groupheader">Member Data Documentation</h2>
-<a id="a8e4fd4e728774e0556cda84b0c2b80d6"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a8e4fd4e728774e0556cda84b0c2b80d6">&#9670;&nbsp;</a></span>_type_key</h2>
-
-<div class="memitem">
-<div class="memproto">
-<table class="mlabels">
-  <tr>
-  <td class="mlabels-left">
-      <table class="memname">
-        <tr>
-          <td class="memname">constexpr const char* tvm::BaseAttrsNode::_type_key = &quot;ir.Attrs&quot;</td>
-        </tr>
-      </table>
-  </td>
-  <td class="mlabels-right">
-<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">constexpr</span></span>  </td>
-  </tr>
-</table>
-</div><div class="memdoc">
-
-</div>
-</div>
 <a id="a7c9d86042f7419c0cc25b7b9c1aa8695"></a>
 <h2 class="memtitle"><span class="permalink"><a href="#a7c9d86042f7419c0cc25b7b9c1aa8695">&#9670;&nbsp;</a></span>_type_s_eq_hash_kind</h2>
 
diff --git a/docs/reference/api/doxygen/classtvm_1_1BaseAttrsNode__coll__graph.svg b/docs/reference/api/doxygen/classtvm_1_1BaseAttrsNode__coll__graph.svg
index 2ee02e4625..17ce843330 100644
--- a/docs/reference/api/doxygen/classtvm_1_1BaseAttrsNode__coll__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1BaseAttrsNode__coll__graph.svg
@@ -4,25 +4,24 @@
 <!-- Generated by graphviz version 2.43.0 (0)
  -->
 <!-- Title: tvm::BaseAttrsNode Pages: 1 -->
-<svg width="181pt" height="215pt"
- viewBox="0.00 0.00 181.00 215.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 211)">
+<svg width="170pt" height="204pt"
+ viewBox="0.00 0.00 170.00 204.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 200)">
 <title>tvm::BaseAttrsNode</title>
-<polygon fill="white" stroke="transparent" points="-4,4 -4,-211 177,-211 177,4 -4,4"/>
+<polygon fill="white" stroke="transparent" points="-4,4 -4,-200 166,-200 166,4 -4,4"/>
 <!-- Node1 -->
 <g id="node1" class="node">
 <title>Node1</title>
 <g id="a_node1"><a xlink:title="Base class of all attribute class.">
-<polygon fill="#bfbfbf" stroke="black" points="0,-0.5 0,-112.5 173,-112.5 173,-0.5 0,-0.5"/>
-<text text-anchor="middle" x="86.5" y="-100.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::BaseAttrsNode</text>
-<polyline fill="none" stroke="black" points="0,-93.5 173,-93.5 "/>
-<text text-anchor="start" x="8" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_s_eq_hash_kind</text>
-<text text-anchor="start" x="8" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
-<polyline fill="none" stroke="black" points="0,-63.5 173,-63.5 "/>
+<polygon fill="#bfbfbf" stroke="black" points="0,-0.5 0,-101.5 162,-101.5 162,-0.5 0,-0.5"/>
+<text text-anchor="middle" x="81" y="-89.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::BaseAttrsNode</text>
+<polyline fill="none" stroke="black" points="0,-82.5 162,-82.5 "/>
+<text text-anchor="start" x="8" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_s_eq_hash_kind</text>
+<polyline fill="none" stroke="black" points="0,-63.5 162,-63.5 "/>
 <text text-anchor="start" x="8" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ~BaseAttrsNode()</text>
 <text text-anchor="start" x="8" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitBySeq()</text>
 <text text-anchor="start" x="8" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
-<text text-anchor="start" x="8" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DECLARE_BASE_OBJECT</text>
+<text text-anchor="start" x="8" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
 <text text-anchor="start" x="8" y="-7.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO()</text>
 </a>
 </g>
@@ -31,20 +30,20 @@
 <g id="node2" class="node">
 <title>Node2</title>
 <g id="a_node2"><a xlink:title=" ">
-<polygon fill="white" stroke="#bfbfbf" points="62.5,-149.5 62.5,-206.5 110.5,-206.5 110.5,-149.5 62.5,-149.5"/>
-<text text-anchor="middle" x="86.5" y="-194.5" font-family="Helvetica,sans-Serif" font-size="10.00">Object</text>
-<polyline fill="none" stroke="#bfbfbf" points="62.5,-187.5 110.5,-187.5 "/>
-<text text-anchor="middle" x="86.5" y="-175.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="#bfbfbf" points="62.5,-168.5 110.5,-168.5 "/>
-<text text-anchor="middle" x="86.5" y="-156.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polygon fill="white" stroke="#bfbfbf" points="57,-138.5 57,-195.5 105,-195.5 105,-138.5 57,-138.5"/>
+<text text-anchor="middle" x="81" y="-183.5" font-family="Helvetica,sans-Serif" font-size="10.00">Object</text>
+<polyline fill="none" stroke="#bfbfbf" points="57,-176.5 105,-176.5 "/>
+<text text-anchor="middle" x="81" y="-164.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="#bfbfbf" points="57,-157.5 105,-157.5 "/>
+<text text-anchor="middle" x="81" y="-145.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node1 -->
 <g id="edge1" class="edge">
 <title>Node2&#45;&gt;Node1</title>
-<path fill="none" stroke="midnightblue" d="M86.5,-139.11C86.5,-130.75 86.5,-121.73 86.5,-112.83"/>
-<polygon fill="none" stroke="midnightblue" points="83,-139.28 86.5,-149.28 90,-139.28 83,-139.28"/>
+<path fill="none" stroke="midnightblue" d="M81,-128.35C81,-119.8 81,-110.58 81,-101.61"/>
+<polygon fill="none" stroke="midnightblue" points="77.5,-128.4 81,-138.4 84.5,-128.4 77.5,-128.4"/>
 </g>
 </g>
 </svg>
diff --git a/docs/reference/api/doxygen/classtvm_1_1BaseAttrsNode__inherit__graph.svg b/docs/reference/api/doxygen/classtvm_1_1BaseAttrsNode__inherit__graph.svg
index b6726cb3cf..141456e1aa 100644
--- a/docs/reference/api/doxygen/classtvm_1_1BaseAttrsNode__inherit__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1BaseAttrsNode__inherit__graph.svg
@@ -4,26 +4,25 @@
 <!-- Generated by graphviz version 2.43.0 (0)
  -->
 <!-- Title: tvm::BaseAttrsNode Pages: 1 -->
-<svg width="12474pt" height="579pt"
- viewBox="0.00 0.00 12473.50 579.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 575)">
+<svg width="12802pt" height="546pt"
+ viewBox="0.00 0.00 12802.00 546.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 542)">
 <title>tvm::BaseAttrsNode</title>
-<polygon fill="white" stroke="transparent" points="-4,4 -4,-575 12469.5,-575 12469.5,4 -4,4"/>
+<polygon fill="white" stroke="transparent" points="-4,4 -4,-542 12798,-542 12798,4 -4,4"/>
 <!-- Node1 -->
 <g id="node1" class="node">
 <title>Node1</title>
 <g id="a_node1"><a xlink:title="Base class of all attribute class.">
-<polygon fill="#bfbfbf" stroke="black" points="6260,-364.5 6260,-476.5 6433,-476.5 6433,-364.5 6260,-364.5"/>
-<text text-anchor="middle" x="6346.5" y="-464.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::BaseAttrsNode</text>
-<polyline fill="none" stroke="black" points="6260,-457.5 6433,-457.5 "/>
-<text text-anchor="start" x="6268" y="-445.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_s_eq_hash_kind</text>
-<text text-anchor="start" x="6268" y="-434.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
-<polyline fill="none" stroke="black" points="6260,-427.5 6433,-427.5 "/>
-<text text-anchor="start" x="6268" y="-415.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ~BaseAttrsNode()</text>
-<text text-anchor="start" x="6268" y="-404.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitBySeq()</text>
-<text text-anchor="start" x="6268" y="-393.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
-<text text-anchor="start" x="6268" y="-382.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DECLARE_BASE_OBJECT</text>
-<text text-anchor="start" x="6268" y="-371.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO()</text>
+<polygon fill="#bfbfbf" stroke="black" points="6496,-342.5 6496,-443.5 6658,-443.5 6658,-342.5 6496,-342.5"/>
+<text text-anchor="middle" x="6577" y="-431.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::BaseAttrsNode</text>
+<polyline fill="none" stroke="black" points="6496,-424.5 6658,-424.5 "/>
+<text text-anchor="start" x="6504" y="-412.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_s_eq_hash_kind</text>
+<polyline fill="none" stroke="black" points="6496,-405.5 6658,-405.5 "/>
+<text text-anchor="start" x="6504" y="-393.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ~BaseAttrsNode()</text>
+<text text-anchor="start" x="6504" y="-382.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitBySeq()</text>
+<text text-anchor="start" x="6504" y="-371.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<text text-anchor="start" x="6504" y="-360.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="6504" y="-349.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO()</text>
 </a>
 </g>
 </g>
@@ -31,1497 +30,1495 @@
 <g id="node3" class="node">
 <title>Node3</title>
 <g id="a_node3"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="11.5,-243 11.5,-311 159.5,-311 159.5,-243 11.5,-243"/>
-<text text-anchor="start" x="19.5" y="-299" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="85.5" y="-288" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; SliceScatterAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="11.5,-281 159.5,-281 "/>
-<text text-anchor="middle" x="85.5" y="-269" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="11.5,-262 159.5,-262 "/>
-<text text-anchor="start" x="19.5" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="21,-226.5 21,-294.5 169,-294.5 169,-226.5 21,-226.5"/>
+<text text-anchor="start" x="29" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="95" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; SliceScatterAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="21,-264.5 169,-264.5 "/>
+<text text-anchor="middle" x="95" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="21,-245.5 169,-245.5 "/>
+<text text-anchor="start" x="29" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node3 -->
 <g id="edge2" class="edge">
 <title>Node1&#45;&gt;Node3</title>
-<path fill="none" stroke="midnightblue" d="M6249.71,-419.45C5487.86,-418.89 478.06,-411.98 172.5,-328 159.06,-324.31 145.53,-318.04 133.27,-311.17"/>
-<polygon fill="none" stroke="midnightblue" points="6249.81,-422.95 6259.81,-419.46 6249.82,-415.95 6249.81,-422.95"/>
+<path fill="none" stroke="midnightblue" d="M6485.96,-391.93C5729.44,-391.16 505.22,-383.12 185,-306 174.15,-303.39 163.11,-299.3 152.64,-294.64"/>
+<polygon fill="none" stroke="midnightblue" points="6485.98,-395.43 6495.98,-391.94 6485.99,-388.43 6485.98,-395.43"/>
 </g>
 <!-- Node5 -->
 <g id="node5" class="node">
 <title>Node5</title>
 <g id="a_node5"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="181.5,-243 181.5,-311 329.5,-311 329.5,-243 181.5,-243"/>
-<text text-anchor="start" x="189.5" y="-299" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="255.5" y="-288" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; ScatterCollectiveAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="181.5,-281 329.5,-281 "/>
-<text text-anchor="middle" x="255.5" y="-269" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="181.5,-262 329.5,-262 "/>
-<text text-anchor="start" x="189.5" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="194,-226.5 194,-294.5 342,-294.5 342,-226.5 194,-226.5"/>
+<text text-anchor="start" x="202" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="268" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; ScatterCollectiveAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="194,-264.5 342,-264.5 "/>
+<text text-anchor="middle" x="268" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="194,-245.5 342,-245.5 "/>
+<text text-anchor="start" x="202" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node5 -->
 <g id="edge4" class="edge">
 <title>Node1&#45;&gt;Node5</title>
-<path fill="none" stroke="midnightblue" d="M6249.51,-419.37C5499.29,-418.18 642.68,-407.43 345.5,-328 331.69,-324.31 317.72,-318.04 305.04,-311.17"/>
-<polygon fill="none" stroke="midnightblue" points="6249.72,-422.87 6259.73,-419.38 6249.73,-415.87 6249.72,-422.87"/>
+<path fill="none" stroke="midnightblue" d="M6485.65,-391.81C5740.25,-390.16 676.84,-376.38 365,-306 353.34,-303.37 341.4,-299.24 330.06,-294.53"/>
+<polygon fill="none" stroke="midnightblue" points="6485.78,-395.31 6495.79,-391.84 6485.8,-388.31 6485.78,-395.31"/>
 </g>
 <!-- Node7 -->
 <g id="node7" class="node">
 <title>Node7</title>
 <g id="a_node7"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="354.5,-243 354.5,-311 502.5,-311 502.5,-243 354.5,-243"/>
-<text text-anchor="start" x="362.5" y="-299" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="428.5" y="-288" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; HintOnDeviceAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="354.5,-281 502.5,-281 "/>
-<text text-anchor="middle" x="428.5" y="-269" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="354.5,-262 502.5,-262 "/>
-<text text-anchor="start" x="362.5" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="374,-226.5 374,-294.5 522,-294.5 522,-226.5 374,-226.5"/>
+<text text-anchor="start" x="382" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="448" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; HintOnDeviceAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="374,-264.5 522,-264.5 "/>
+<text text-anchor="middle" x="448" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="374,-245.5 522,-245.5 "/>
+<text text-anchor="start" x="382" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node7 -->
 <g id="edge6" class="edge">
 <title>Node1&#45;&gt;Node7</title>
-<path fill="none" stroke="midnightblue" d="M6249.7,-419.32C5512.54,-417.81 806.76,-405.11 518.5,-328 504.69,-324.3 490.72,-318.04 478.04,-311.16"/>
-<polygon fill="none" stroke="midnightblue" points="6249.73,-422.82 6259.74,-419.34 6249.75,-415.82 6249.73,-422.82"/>
+<path fill="none" stroke="midnightblue" d="M6485.74,-391.78C5752.97,-389.84 847.43,-374.32 545,-306 533.34,-303.37 521.4,-299.24 510.06,-294.53"/>
+<polygon fill="none" stroke="midnightblue" points="6485.95,-395.28 6495.96,-391.8 6485.97,-388.28 6485.95,-395.28"/>
 </g>
 <!-- Node9 -->
 <g id="node9" class="node">
 <title>Node9</title>
 <g id="a_node9"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="527.5,-243 527.5,-311 675.5,-311 675.5,-243 527.5,-243"/>
-<text text-anchor="start" x="535.5" y="-299" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="601.5" y="-288" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; TakeAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="527.5,-281 675.5,-281 "/>
-<text text-anchor="middle" x="601.5" y="-269" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="527.5,-262 675.5,-262 "/>
-<text text-anchor="start" x="535.5" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="554,-226.5 554,-294.5 702,-294.5 702,-226.5 554,-226.5"/>
+<text text-anchor="start" x="562" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="628" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; TakeAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="554,-264.5 702,-264.5 "/>
+<text text-anchor="middle" x="628" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="554,-245.5 702,-245.5 "/>
+<text text-anchor="start" x="562" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node9 -->
 <g id="edge8" class="edge">
 <title>Node1&#45;&gt;Node9</title>
-<path fill="none" stroke="midnightblue" d="M6249.74,-419.27C5525.34,-417.42 970.82,-402.8 691.5,-328 677.69,-324.3 663.72,-318.03 651.04,-311.16"/>
-<polygon fill="none" stroke="midnightblue" points="6249.86,-422.77 6259.87,-419.3 6249.88,-415.77 6249.86,-422.77"/>
+<path fill="none" stroke="midnightblue" d="M6485.92,-391.73C5766.32,-389.5 1018.05,-372.27 725,-306 713.34,-303.36 701.4,-299.23 690.06,-294.52"/>
+<polygon fill="none" stroke="midnightblue" points="6485.96,-395.23 6495.97,-391.76 6485.98,-388.23 6485.96,-395.23"/>
 </g>
 <!-- Node11 -->
 <g id="node11" class="node">
 <title>Node11</title>
 <g id="a_node11"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="700.5,-243 700.5,-311 848.5,-311 848.5,-243 700.5,-243"/>
-<text text-anchor="start" x="708.5" y="-299" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="774.5" y="-288" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; ScatterElementsAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="700.5,-281 848.5,-281 "/>
-<text text-anchor="middle" x="774.5" y="-269" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="700.5,-262 848.5,-262 "/>
-<text text-anchor="start" x="708.5" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="734,-226.5 734,-294.5 882,-294.5 882,-226.5 734,-226.5"/>
+<text text-anchor="start" x="742" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="808" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; ScatterElementsAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="734,-264.5 882,-264.5 "/>
+<text text-anchor="middle" x="808" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="734,-245.5 882,-245.5 "/>
+<text text-anchor="start" x="742" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node11 -->
 <g id="edge10" class="edge">
 <title>Node1&#45;&gt;Node11</title>
-<path fill="none" stroke="midnightblue" d="M6249.64,-419.22C5537.73,-417.02 1134.87,-400.47 864.5,-328 850.69,-324.3 836.72,-318.03 824.04,-311.15"/>
-<polygon fill="none" stroke="midnightblue" points="6249.84,-422.72 6259.85,-419.25 6249.86,-415.72 6249.84,-422.72"/>
+<path fill="none" stroke="midnightblue" d="M6485.69,-391.69C5778.03,-389.15 1188.61,-370.21 905,-306 893.34,-303.36 881.4,-299.23 870.06,-294.52"/>
+<polygon fill="none" stroke="midnightblue" points="6485.81,-395.19 6495.83,-391.73 6485.84,-388.19 6485.81,-395.19"/>
 </g>
 <!-- Node13 -->
 <g id="node13" class="node">
 <title>Node13</title>
 <g id="a_node13"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="873.5,-243 873.5,-311 1021.5,-311 1021.5,-243 873.5,-243"/>
-<text text-anchor="start" x="881.5" y="-299" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="947.5" y="-288" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; MeshgridAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="873.5,-281 1021.5,-281 "/>
-<text text-anchor="middle" x="947.5" y="-269" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="873.5,-262 1021.5,-262 "/>
-<text text-anchor="start" x="881.5" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="914,-226.5 914,-294.5 1062,-294.5 1062,-226.5 914,-226.5"/>
+<text text-anchor="start" x="922" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="988" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; MeshgridAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="914,-264.5 1062,-264.5 "/>
+<text text-anchor="middle" x="988" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="914,-245.5 1062,-245.5 "/>
+<text text-anchor="start" x="922" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node13 -->
 <g id="edge12" class="edge">
 <title>Node1&#45;&gt;Node13</title>
-<path fill="none" stroke="midnightblue" d="M6249.94,-419.17C5551.99,-416.61 1298.97,-398.16 1037.5,-328 1023.69,-324.29 1009.72,-318.02 997.04,-311.15"/>
-<polygon fill="none" stroke="midnightblue" points="6249.94,-422.67 6259.96,-419.21 6249.97,-415.67 6249.94,-422.67"/>
+<path fill="none" stroke="midnightblue" d="M6485.61,-391.64C5790.6,-388.78 1359.21,-368.15 1085,-306 1073.35,-303.36 1061.41,-299.22 1050.06,-294.51"/>
+<polygon fill="none" stroke="midnightblue" points="6485.8,-395.14 6495.81,-391.68 6485.82,-388.14 6485.8,-395.14"/>
 </g>
 <!-- Node15 -->
 <g id="node15" class="node">
 <title>Node15</title>
 <g id="a_node15"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="1046.5,-243 1046.5,-311 1194.5,-311 1194.5,-243 1046.5,-243"/>
-<text text-anchor="start" x="1054.5" y="-299" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="1120.5" y="-288" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; GatherElementsAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="1046.5,-281 1194.5,-281 "/>
-<text text-anchor="middle" x="1120.5" y="-269" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="1046.5,-262 1194.5,-262 "/>
-<text text-anchor="start" x="1054.5" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="1094,-226.5 1094,-294.5 1242,-294.5 1242,-226.5 1094,-226.5"/>
+<text text-anchor="start" x="1102" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="1168" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; GatherElementsAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="1094,-264.5 1242,-264.5 "/>
+<text text-anchor="middle" x="1168" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="1094,-245.5 1242,-245.5 "/>
+<text text-anchor="start" x="1102" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node15 -->
 <g id="edge14" class="edge">
 <title>Node1&#45;&gt;Node15</title>
-<path fill="none" stroke="midnightblue" d="M6249.86,-419.11C5564.9,-416.18 1463.03,-395.84 1210.5,-328 1196.69,-324.29 1182.72,-318.02 1170.04,-311.14"/>
-<polygon fill="none" stroke="midnightblue" points="6249.92,-422.61 6259.94,-419.15 6249.95,-415.61 6249.92,-422.61"/>
+<path fill="none" stroke="midnightblue" d="M6485.92,-391.59C5805.08,-388.41 1529.86,-366.1 1265,-306 1253.35,-303.36 1241.41,-299.22 1230.07,-294.51"/>
+<polygon fill="none" stroke="midnightblue" points="6485.91,-395.09 6495.92,-391.64 6485.94,-388.09 6485.91,-395.09"/>
 </g>
 <!-- Node17 -->
 <g id="node17" class="node">
 <title>Node17</title>
 <g id="a_node17"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="1219.5,-243 1219.5,-311 1367.5,-311 1367.5,-243 1219.5,-243"/>
-<text text-anchor="start" x="1227.5" y="-299" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="1293.5" y="-288" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; EinsumAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="1219.5,-281 1367.5,-281 "/>
-<text text-anchor="middle" x="1293.5" y="-269" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="1219.5,-262 1367.5,-262 "/>
-<text text-anchor="start" x="1227.5" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="1274,-226.5 1274,-294.5 1422,-294.5 1422,-226.5 1274,-226.5"/>
+<text text-anchor="start" x="1282" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="1348" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; EinsumAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="1274,-264.5 1422,-264.5 "/>
+<text text-anchor="middle" x="1348" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="1274,-245.5 1422,-245.5 "/>
+<text text-anchor="start" x="1282" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node17 -->
 <g id="edge16" class="edge">
 <title>Node1&#45;&gt;Node17</title>
-<path fill="none" stroke="midnightblue" d="M6249.71,-419.03C5577.83,-415.64 1628.2,-392.94 1384.5,-328 1370.57,-324.29 1356.45,-318.01 1343.63,-311.14"/>
-<polygon fill="none" stroke="midnightblue" points="6249.82,-422.53 6259.84,-419.09 6249.85,-415.53 6249.82,-422.53"/>
+<path fill="none" stroke="midnightblue" d="M6485.86,-391.55C5818.07,-388.11 1699.4,-364.56 1444,-306 1432.45,-303.35 1420.63,-299.21 1409.4,-294.5"/>
+<polygon fill="none" stroke="midnightblue" points="6485.89,-395.05 6495.91,-391.6 6485.92,-388.05 6485.89,-395.05"/>
 </g>
 <!-- Node19 -->
 <g id="node19" class="node">
 <title>Node19</title>
 <g id="a_node19"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="1393.5,-243 1393.5,-311 1541.5,-311 1541.5,-243 1393.5,-243"/>
-<text text-anchor="start" x="1401.5" y="-299" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="1467.5" y="-288" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; DistributionAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="1393.5,-281 1541.5,-281 "/>
-<text text-anchor="middle" x="1467.5" y="-269" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="1393.5,-262 1541.5,-262 "/>
-<text text-anchor="start" x="1401.5" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="1453,-226.5 1453,-294.5 1601,-294.5 1601,-226.5 1453,-226.5"/>
+<text text-anchor="start" x="1461" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="1527" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; DistributionAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="1453,-264.5 1601,-264.5 "/>
+<text text-anchor="middle" x="1527" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="1453,-245.5 1601,-245.5 "/>
+<text text-anchor="start" x="1461" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node19 -->
 <g id="edge18" class="edge">
 <title>Node1&#45;&gt;Node19</title>
-<path fill="none" stroke="midnightblue" d="M6249.52,-418.95C5590.97,-415.07 1794.29,-390.08 1559.5,-328 1545.44,-324.28 1531.18,-318.01 1518.23,-311.13"/>
-<polygon fill="none" stroke="midnightblue" points="6249.89,-422.45 6259.91,-419.01 6249.93,-415.46 6249.89,-422.45"/>
+<path fill="none" stroke="midnightblue" d="M6485.2,-391.49C5828.94,-387.69 1868.99,-362.49 1623,-306 1611.54,-303.37 1599.81,-299.27 1588.66,-294.61"/>
+<polygon fill="none" stroke="midnightblue" points="6485.52,-394.99 6495.54,-391.55 6485.56,-387.99 6485.52,-394.99"/>
 </g>
 <!-- Node21 -->
 <g id="node21" class="node">
 <title>Node21</title>
 <g id="a_node21"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="1568.5,-243 1568.5,-311 1718.5,-311 1718.5,-243 1568.5,-243"/>
-<text text-anchor="start" x="1576.5" y="-299" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="1643.5" y="-288" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; CallInplacePackedAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="1568.5,-281 1718.5,-281 "/>
-<text text-anchor="middle" x="1643.5" y="-269" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="1568.5,-262 1718.5,-262 "/>
-<text text-anchor="start" x="1576.5" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="1632,-226.5 1632,-294.5 1782,-294.5 1782,-226.5 1632,-226.5"/>
+<text text-anchor="start" x="1640" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="1707" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; CallInplacePackedAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="1632,-264.5 1782,-264.5 "/>
+<text text-anchor="middle" x="1707" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="1632,-245.5 1782,-245.5 "/>
+<text text-anchor="start" x="1640" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node21 -->
 <g id="edge20" class="edge">
 <title>Node1&#45;&gt;Node21</title>
-<path fill="none" stroke="midnightblue" d="M6249.51,-418.88C5605.14,-414.59 1961.22,-387.76 1735.5,-328 1721.44,-324.28 1707.19,-318 1694.23,-311.13"/>
-<polygon fill="none" stroke="midnightblue" points="6249.66,-422.38 6259.69,-418.95 6249.71,-415.38 6249.66,-422.38"/>
+<path fill="none" stroke="midnightblue" d="M6485.54,-391.41C5844.34,-387.12 2041.78,-359.48 1805,-306 1793.33,-303.37 1781.38,-299.27 1770,-294.6"/>
+<polygon fill="none" stroke="midnightblue" points="6485.63,-394.91 6495.65,-391.47 6485.67,-387.91 6485.63,-394.91"/>
 </g>
 <!-- Node23 -->
 <g id="node23" class="node">
 <title>Node23</title>
 <g id="a_node23"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="1744.5,-243 1744.5,-311 1892.5,-311 1892.5,-243 1744.5,-243"/>
-<text text-anchor="start" x="1752.5" y="-299" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="1818.5" y="-288" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; AttentionAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="1744.5,-281 1892.5,-281 "/>
-<text text-anchor="middle" x="1818.5" y="-269" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="1744.5,-262 1892.5,-262 "/>
-<text text-anchor="start" x="1752.5" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="1814,-226.5 1814,-294.5 1962,-294.5 1962,-226.5 1814,-226.5"/>
+<text text-anchor="start" x="1822" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="1888" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; AttentionAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="1814,-264.5 1962,-264.5 "/>
+<text text-anchor="middle" x="1888" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="1814,-245.5 1962,-245.5 "/>
+<text text-anchor="start" x="1822" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node23 -->
 <g id="edge22" class="edge">
 <title>Node1&#45;&gt;Node23</title>
-<path fill="none" stroke="midnightblue" d="M6249.18,-418.82C5618.11,-414.27 2125.01,-386.49 1908.5,-328 1894.7,-324.27 1880.73,-317.99 1868.05,-311.12"/>
-<polygon fill="none" stroke="midnightblue" points="6249.57,-422.33 6259.59,-418.9 6249.62,-415.33 6249.57,-422.33"/>
+<path fill="none" stroke="midnightblue" d="M6485.56,-391.35C5858.53,-386.76 2212.31,-357.89 1985,-306 1973.44,-303.36 1961.6,-299.26 1950.34,-294.59"/>
+<polygon fill="none" stroke="midnightblue" points="6485.86,-394.85 6495.89,-391.43 6485.92,-387.85 6485.86,-394.85"/>
 </g>
 <!-- Node25 -->
 <g id="node25" class="node">
 <title>Node25</title>
 <g id="a_node25"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="1917.5,-243 1917.5,-311 2065.5,-311 2065.5,-243 1917.5,-243"/>
-<text text-anchor="start" x="1925.5" y="-299" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="1991.5" y="-288" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; AllReduceAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="1917.5,-281 2065.5,-281 "/>
-<text text-anchor="middle" x="1991.5" y="-269" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="1917.5,-262 2065.5,-262 "/>
-<text text-anchor="start" x="1925.5" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="1994,-226.5 1994,-294.5 2142,-294.5 2142,-226.5 1994,-226.5"/>
+<text text-anchor="start" x="2002" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="2068" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; AllReduceAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="1994,-264.5 2142,-264.5 "/>
+<text text-anchor="middle" x="2068" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="1994,-245.5 2142,-245.5 "/>
+<text text-anchor="start" x="2002" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node25 -->
 <g id="edge24" class="edge">
 <title>Node1&#45;&gt;Node25</title>
-<path fill="none" stroke="midnightblue" d="M6249.54,-418.74C5633.97,-413.76 2289.16,-384.19 2081.5,-328 2067.7,-324.26 2053.73,-317.98 2041.05,-311.11"/>
-<polygon fill="none" stroke="midnightblue" points="6249.68,-422.24 6259.71,-418.82 6249.74,-415.24 6249.68,-422.24"/>
+<path fill="none" stroke="midnightblue" d="M6485.75,-391.28C5873.67,-386.31 2382.98,-355.84 2165,-306 2153.44,-303.36 2141.6,-299.25 2130.34,-294.59"/>
+<polygon fill="none" stroke="midnightblue" points="6485.81,-394.78 6495.84,-391.36 6485.87,-387.78 6485.81,-394.78"/>
 </g>
 <!-- Node27 -->
 <g id="node27" class="node">
 <title>Node27</title>
 <g id="a_node27"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="2090.5,-243 2090.5,-311 2238.5,-311 2238.5,-243 2090.5,-243"/>
-<text text-anchor="start" x="2098.5" y="-299" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="2164.5" y="-288" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; AdaptivePool2DAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="2090.5,-281 2238.5,-281 "/>
-<text text-anchor="middle" x="2164.5" y="-269" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="2090.5,-262 2238.5,-262 "/>
-<text text-anchor="start" x="2098.5" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="2174,-226.5 2174,-294.5 2322,-294.5 2322,-226.5 2174,-226.5"/>
+<text text-anchor="start" x="2182" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="2248" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; AdaptivePool2DAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="2174,-264.5 2322,-264.5 "/>
+<text text-anchor="middle" x="2248" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="2174,-245.5 2322,-245.5 "/>
+<text text-anchor="start" x="2182" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node27 -->
 <g id="edge26" class="edge">
 <title>Node1&#45;&gt;Node27</title>
-<path fill="none" stroke="midnightblue" d="M6249.21,-418.65C5647.58,-413.21 2453.24,-381.88 2254.5,-328 2240.7,-324.26 2226.73,-317.97 2214.06,-311.1"/>
-<polygon fill="none" stroke="midnightblue" points="6249.54,-422.15 6259.57,-418.74 6249.6,-415.15 6249.54,-422.15"/>
+<path fill="none" stroke="midnightblue" d="M6485.24,-391.2C5886.48,-385.81 2553.57,-353.78 2345,-306 2333.44,-303.35 2321.6,-299.25 2310.34,-294.58"/>
+<polygon fill="none" stroke="midnightblue" points="6485.51,-394.7 6495.55,-391.29 6485.58,-387.7 6485.51,-394.7"/>
 </g>
 <!-- Node29 -->
 <g id="node29" class="node">
 <title>Node29</title>
 <g id="a_node29"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="2263.5,-243 2263.5,-311 2411.5,-311 2411.5,-243 2263.5,-243"/>
-<text text-anchor="start" x="2271.5" y="-299" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="2337.5" y="-288" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; ScatterNDAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="2263.5,-281 2411.5,-281 "/>
-<text text-anchor="middle" x="2337.5" y="-269" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="2263.5,-262 2411.5,-262 "/>
-<text text-anchor="start" x="2271.5" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="2354,-226.5 2354,-294.5 2502,-294.5 2502,-226.5 2354,-226.5"/>
+<text text-anchor="start" x="2362" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="2428" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; ScatterNDAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="2354,-264.5 2502,-264.5 "/>
+<text text-anchor="middle" x="2428" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="2354,-245.5 2502,-245.5 "/>
+<text text-anchor="start" x="2362" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node29 -->
 <g id="edge28" class="edge">
 <title>Node1&#45;&gt;Node29</title>
-<path fill="none" stroke="midnightblue" d="M6249.58,-418.55C5664.02,-412.65 2617.41,-379.58 2427.5,-328 2413.7,-324.25 2399.74,-317.96 2387.06,-311.09"/>
-<polygon fill="none" stroke="midnightblue" points="6249.64,-422.05 6259.67,-418.65 6249.71,-415.05 6249.64,-422.05"/>
+<path fill="none" stroke="midnightblue" d="M6485.61,-392.29C5921.34,-393.76 2922.35,-397.22 2525,-306 2513.44,-303.35 2501.6,-299.24 2490.34,-294.57"/>
+<polygon fill="none" stroke="midnightblue" points="6485.74,-395.79 6495.73,-392.26 6485.72,-388.79 6485.74,-395.79"/>
 </g>
 <!-- Node31 -->
 <g id="node31" class="node">
 <title>Node31</title>
 <g id="a_node31"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="2436.5,-243 2436.5,-311 2584.5,-311 2584.5,-243 2436.5,-243"/>
-<text text-anchor="start" x="2444.5" y="-299" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="2510.5" y="-288" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; InitAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="2436.5,-281 2584.5,-281 "/>
-<text text-anchor="middle" x="2510.5" y="-269" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="2436.5,-262 2584.5,-262 "/>
-<text text-anchor="start" x="2444.5" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="2534,-226.5 2534,-294.5 2682,-294.5 2682,-226.5 2534,-226.5"/>
+<text text-anchor="start" x="2542" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="2608" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; InitAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="2534,-264.5 2682,-264.5 "/>
+<text text-anchor="middle" x="2608" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="2534,-245.5 2682,-245.5 "/>
+<text text-anchor="start" x="2542" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node31 -->
 <g id="edge30" class="edge">
 <title>Node1&#45;&gt;Node31</title>
-<path fill="none" stroke="midnightblue" d="M6249.34,-418.44C5678.65,-412.05 2781.52,-377.27 2600.5,-328 2586.7,-324.24 2572.74,-317.95 2560.06,-311.08"/>
-<polygon fill="none" stroke="midnightblue" points="6249.55,-421.94 6259.58,-418.55 6249.62,-414.94 6249.55,-421.94"/>
+<path fill="none" stroke="midnightblue" d="M6485.32,-392.19C5935.25,-393.03 3083.66,-393.13 2705,-306 2693.44,-303.34 2681.6,-299.23 2670.34,-294.56"/>
+<polygon fill="none" stroke="midnightblue" points="6485.59,-395.69 6495.58,-392.17 6485.58,-388.69 6485.59,-395.69"/>
 </g>
 <!-- Node33 -->
 <g id="node33" class="node">
 <title>Node33</title>
 <g id="a_node33"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="2609.5,-243 2609.5,-311 2757.5,-311 2757.5,-243 2609.5,-243"/>
-<text text-anchor="start" x="2617.5" y="-299" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="2683.5" y="-288" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; FlipAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="2609.5,-281 2757.5,-281 "/>
-<text text-anchor="middle" x="2683.5" y="-269" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="2609.5,-262 2757.5,-262 "/>
-<text text-anchor="start" x="2617.5" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="2714,-226.5 2714,-294.5 2862,-294.5 2862,-226.5 2714,-226.5"/>
+<text text-anchor="start" x="2722" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="2788" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; FlipAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="2714,-264.5 2862,-264.5 "/>
+<text text-anchor="middle" x="2788" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="2714,-245.5 2862,-245.5 "/>
+<text text-anchor="start" x="2722" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node33 -->
 <g id="edge32" class="edge">
 <title>Node1&#45;&gt;Node33</title>
-<path fill="none" stroke="midnightblue" d="M6249.98,-419.78C5714.12,-420.94 3116.83,-421.67 2773.5,-328 2759.7,-324.24 2745.74,-317.94 2733.06,-311.07"/>
-<polygon fill="none" stroke="midnightblue" points="6250,-423.28 6259.99,-419.75 6249.98,-416.28 6250,-423.28"/>
+<path fill="none" stroke="midnightblue" d="M6485.35,-392.08C5950.61,-392.26 3245.06,-389.05 2885,-306 2873.45,-303.33 2861.61,-299.22 2850.35,-294.55"/>
+<polygon fill="none" stroke="midnightblue" points="6485.7,-395.58 6495.7,-392.08 6485.7,-388.58 6485.7,-395.58"/>
 </g>
 <!-- Node35 -->
 <g id="node35" class="node">
 <title>Node35</title>
 <g id="a_node35"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="2782.5,-243 2782.5,-311 2930.5,-311 2930.5,-243 2782.5,-243"/>
-<text text-anchor="start" x="2790.5" y="-299" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="2856.5" y="-288" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; AllGatherAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="2782.5,-281 2930.5,-281 "/>
-<text text-anchor="middle" x="2856.5" y="-269" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="2782.5,-262 2930.5,-262 "/>
-<text text-anchor="start" x="2790.5" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="2894,-226.5 2894,-294.5 3042,-294.5 3042,-226.5 2894,-226.5"/>
+<text text-anchor="start" x="2902" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="2968" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; AllGatherAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="2894,-264.5 3042,-264.5 "/>
+<text text-anchor="middle" x="2968" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="2894,-245.5 3042,-245.5 "/>
+<text text-anchor="start" x="2902" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node35 -->
 <g id="edge34" class="edge">
 <title>Node1&#45;&gt;Node35</title>
-<path fill="none" stroke="midnightblue" d="M6249.66,-419.64C5728.82,-420.02 3272.11,-417.06 2946.5,-328 2932.71,-324.23 2918.75,-317.93 2906.07,-311.05"/>
-<polygon fill="none" stroke="midnightblue" points="6249.77,-423.14 6259.77,-419.63 6249.76,-416.14 6249.77,-423.14"/>
+<path fill="none" stroke="midnightblue" d="M6485.66,-391.96C5967.29,-391.47 3406.54,-385 3065,-306 3053.45,-303.33 3041.61,-299.21 3030.35,-294.54"/>
+<polygon fill="none" stroke="midnightblue" points="6485.7,-395.46 6495.71,-391.97 6485.71,-388.46 6485.7,-395.46"/>
 </g>
 <!-- Node37 -->
 <g id="node37" class="node">
 <title>Node37</title>
 <g id="a_node37"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="2955.5,-243 2955.5,-311 3103.5,-311 3103.5,-243 2955.5,-243"/>
-<text text-anchor="start" x="2963.5" y="-299" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="3029.5" y="-288" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; AdaptivePool3DAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="2955.5,-281 3103.5,-281 "/>
-<text text-anchor="middle" x="3029.5" y="-269" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="2955.5,-262 3103.5,-262 "/>
-<text text-anchor="start" x="2963.5" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="3074,-226.5 3074,-294.5 3222,-294.5 3222,-226.5 3074,-226.5"/>
+<text text-anchor="start" x="3082" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="3148" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; AdaptivePool3DAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="3074,-264.5 3222,-264.5 "/>
+<text text-anchor="middle" x="3148" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="3074,-245.5 3222,-245.5 "/>
+<text text-anchor="start" x="3082" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node37 -->
 <g id="edge36" class="edge">
 <title>Node1&#45;&gt;Node37</title>
-<path fill="none" stroke="midnightblue" d="M6249.73,-419.49C5745.19,-419.06 3427.49,-412.48 3119.5,-328 3105.71,-324.22 3091.75,-317.92 3079.07,-311.04"/>
-<polygon fill="none" stroke="midnightblue" points="6249.89,-422.99 6259.89,-419.5 6249.89,-415.99 6249.89,-422.99"/>
+<path fill="none" stroke="midnightblue" d="M6485.53,-391.83C5982.93,-390.62 3567.96,-380.92 3245,-306 3233.45,-303.32 3221.61,-299.2 3210.35,-294.52"/>
+<polygon fill="none" stroke="midnightblue" points="6485.63,-395.33 6495.64,-391.86 6485.65,-388.33 6485.63,-395.33"/>
 </g>
 <!-- Node39 -->
 <g id="node39" class="node">
 <title>Node39</title>
 <g id="a_node39"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="3128.5,-243 3128.5,-311 3276.5,-311 3276.5,-243 3128.5,-243"/>
-<text text-anchor="start" x="3136.5" y="-299" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="3202.5" y="-288" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; ToVDeviceAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="3128.5,-281 3276.5,-281 "/>
-<text text-anchor="middle" x="3202.5" y="-269" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="3128.5,-262 3276.5,-262 "/>
-<text text-anchor="start" x="3136.5" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="3254,-226.5 3254,-294.5 3402,-294.5 3402,-226.5 3254,-226.5"/>
+<text text-anchor="start" x="3262" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="3328" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; ToVDeviceAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="3254,-264.5 3402,-264.5 "/>
+<text text-anchor="middle" x="3328" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="3254,-245.5 3402,-245.5 "/>
+<text text-anchor="start" x="3262" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node39 -->
 <g id="edge38" class="edge">
 <title>Node1&#45;&gt;Node39</title>
-<path fill="none" stroke="midnightblue" d="M6249.46,-419.29C5761.07,-417.89 3583.92,-407.19 3293.5,-328 3279.59,-324.21 3265.48,-317.9 3252.67,-311.02"/>
-<polygon fill="none" stroke="midnightblue" points="6249.64,-422.79 6259.65,-419.32 6249.66,-415.79 6249.64,-422.79"/>
+<path fill="none" stroke="midnightblue" d="M6485.82,-391.69C6000.3,-389.74 3729.49,-376.88 3425,-306 3413.45,-303.31 3401.61,-299.19 3390.35,-294.51"/>
+<polygon fill="none" stroke="midnightblue" points="6485.92,-395.19 6495.93,-391.73 6485.94,-388.19 6485.92,-395.19"/>
 </g>
 <!-- Node41 -->
 <g id="node41" class="node">
 <title>Node41</title>
 <g id="a_node41"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="3302.5,-243 3302.5,-311 3450.5,-311 3450.5,-243 3302.5,-243"/>
-<text text-anchor="start" x="3310.5" y="-299" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="3376.5" y="-288" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; IndexPutAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="3302.5,-281 3450.5,-281 "/>
-<text text-anchor="middle" x="3376.5" y="-269" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="3302.5,-262 3450.5,-262 "/>
-<text text-anchor="start" x="3310.5" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="3434,-226.5 3434,-294.5 3582,-294.5 3582,-226.5 3434,-226.5"/>
+<text text-anchor="start" x="3442" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="3508" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; IndexPutAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="3434,-264.5 3582,-264.5 "/>
+<text text-anchor="middle" x="3508" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="3434,-245.5 3582,-245.5 "/>
+<text text-anchor="start" x="3442" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node41 -->
 <g id="edge40" class="edge">
 <title>Node1&#45;&gt;Node41</title>
-<path fill="none" stroke="midnightblue" d="M6249.71,-419.08C5779.09,-416.66 3741.35,-401.99 3468.5,-328 3454.46,-324.19 3440.22,-317.88 3427.26,-311.01"/>
-<polygon fill="none" stroke="midnightblue" points="6249.86,-422.58 6259.87,-419.13 6249.89,-415.58 6249.86,-422.58"/>
+<path fill="none" stroke="midnightblue" d="M6485.77,-391.53C6017.08,-388.8 3890.97,-372.81 3605,-306 3593.54,-303.32 3581.8,-299.24 3570.62,-294.6"/>
+<polygon fill="none" stroke="midnightblue" points="6485.85,-395.03 6495.87,-391.58 6485.89,-388.03 6485.85,-395.03"/>
 </g>
 <!-- Node43 -->
 <g id="node43" class="node">
 <title>Node43</title>
 <g id="a_node43"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="3477.5,-243 3477.5,-311 3625.5,-311 3625.5,-243 3477.5,-243"/>
-<text text-anchor="start" x="3485.5" y="-299" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="3551.5" y="-288" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; ExpandDimsAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="3477.5,-281 3625.5,-281 "/>
-<text text-anchor="middle" x="3551.5" y="-269" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="3477.5,-262 3625.5,-262 "/>
-<text text-anchor="start" x="3485.5" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="3614,-226.5 3614,-294.5 3762,-294.5 3762,-226.5 3614,-226.5"/>
+<text text-anchor="start" x="3622" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="3688" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; ExpandDimsAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="3614,-264.5 3762,-264.5 "/>
+<text text-anchor="middle" x="3688" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="3614,-245.5 3762,-245.5 "/>
+<text text-anchor="start" x="3622" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node43 -->
 <g id="edge42" class="edge">
 <title>Node1&#45;&gt;Node43</title>
-<path fill="none" stroke="midnightblue" d="M6249.69,-418.89C5796.69,-415.67 3897.52,-398.06 3642.5,-328 3628.77,-324.23 3614.85,-318.02 3602.16,-311.24"/>
-<polygon fill="none" stroke="midnightblue" points="6249.78,-422.39 6259.8,-418.96 6249.83,-415.39 6249.78,-422.39"/>
+<path fill="none" stroke="midnightblue" d="M6485.85,-391.34C6034.78,-387.8 4052.52,-368.77 3785,-306 3773.55,-303.31 3761.81,-299.22 3750.63,-294.59"/>
+<polygon fill="none" stroke="midnightblue" points="6485.87,-394.84 6495.9,-391.42 6485.93,-387.84 6485.87,-394.84"/>
 </g>
 <!-- Node45 -->
 <g id="node45" class="node">
 <title>Node45</title>
 <g id="a_node45"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="3651.5,-243 3651.5,-311 3799.5,-311 3799.5,-243 3651.5,-243"/>
-<text text-anchor="start" x="3659.5" y="-299" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="3725.5" y="-288" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; ConcatAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="3651.5,-281 3799.5,-281 "/>
-<text text-anchor="middle" x="3725.5" y="-269" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="3651.5,-262 3799.5,-262 "/>
-<text text-anchor="start" x="3659.5" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="3794,-226.5 3794,-294.5 3942,-294.5 3942,-226.5 3794,-226.5"/>
+<text text-anchor="start" x="3802" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="3868" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; ConcatAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="3794,-264.5 3942,-264.5 "/>
+<text text-anchor="middle" x="3868" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="3794,-245.5 3942,-245.5 "/>
+<text text-anchor="start" x="3802" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node45 -->
 <g id="edge44" class="edge">
 <title>Node1&#45;&gt;Node45</title>
-<path fill="none" stroke="midnightblue" d="M6249.87,-418.67C5815.31,-414.6 4052.89,-394.11 3815.5,-328 3801.9,-324.21 3788.12,-318 3775.57,-311.22"/>
-<polygon fill="none" stroke="midnightblue" points="6249.85,-422.17 6259.89,-418.77 6249.92,-415.17 6249.85,-422.17"/>
+<path fill="none" stroke="midnightblue" d="M6485.46,-391.13C6051.71,-386.72 4214.01,-364.7 3965,-306 3953.55,-303.3 3941.81,-299.2 3930.63,-294.57"/>
+<polygon fill="none" stroke="midnightblue" points="6485.71,-394.63 6495.75,-391.23 6485.78,-387.63 6485.71,-394.63"/>
 </g>
 <!-- Node47 -->
 <g id="node47" class="node">
 <title>Node47</title>
 <g id="a_node47"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="3824.5,-243 3824.5,-311 3972.5,-311 3972.5,-243 3824.5,-243"/>
-<text text-anchor="start" x="3832.5" y="-299" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="3898.5" y="-288" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; TriluAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="3824.5,-281 3972.5,-281 "/>
-<text text-anchor="middle" x="3898.5" y="-269" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="3824.5,-262 3972.5,-262 "/>
-<text text-anchor="start" x="3832.5" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="3974,-226.5 3974,-294.5 4122,-294.5 4122,-226.5 3974,-226.5"/>
+<text text-anchor="start" x="3982" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="4048" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; TriluAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="3974,-264.5 4122,-264.5 "/>
+<text text-anchor="middle" x="4048" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="3974,-245.5 4122,-245.5 "/>
+<text text-anchor="start" x="3982" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node47 -->
 <g id="edge46" class="edge">
 <title>Node1&#45;&gt;Node47</title>
-<path fill="none" stroke="midnightblue" d="M6249.72,-418.4C5833.68,-413.29 4208.39,-389.55 3988.5,-328 3974.9,-324.19 3961.13,-317.97 3948.58,-311.2"/>
-<polygon fill="none" stroke="midnightblue" points="6249.87,-421.9 6259.91,-418.52 6249.95,-414.9 6249.87,-421.9"/>
+<path fill="none" stroke="midnightblue" d="M6485.71,-390.89C6071.1,-385.58 4375.66,-360.67 4145,-306 4133.55,-303.29 4121.82,-299.18 4110.64,-294.54"/>
+<polygon fill="none" stroke="midnightblue" points="6485.81,-394.39 6495.85,-391.02 6485.9,-387.4 6485.81,-394.39"/>
 </g>
 <!-- Node49 -->
 <g id="node49" class="node">
 <title>Node49</title>
 <g id="a_node49"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="3997.5,-243 3997.5,-311 4145.5,-311 4145.5,-243 3997.5,-243"/>
-<text text-anchor="start" x="4005.5" y="-299" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="4071.5" y="-288" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; SoftmaxAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="3997.5,-281 4145.5,-281 "/>
-<text text-anchor="middle" x="4071.5" y="-269" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="3997.5,-262 4145.5,-262 "/>
-<text text-anchor="start" x="4005.5" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="4154,-226.5 4154,-294.5 4302,-294.5 4302,-226.5 4154,-226.5"/>
+<text text-anchor="start" x="4162" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="4228" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; SoftmaxAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="4154,-264.5 4302,-264.5 "/>
+<text text-anchor="middle" x="4228" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="4154,-245.5 4302,-245.5 "/>
+<text text-anchor="start" x="4162" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node49 -->
 <g id="edge48" class="edge">
 <title>Node1&#45;&gt;Node49</title>
-<path fill="none" stroke="midnightblue" d="M6249.7,-418.08C5853.12,-411.88 4363.96,-385.01 4161.5,-328 4147.91,-324.17 4134.13,-317.95 4121.58,-311.17"/>
-<polygon fill="none" stroke="midnightblue" points="6249.93,-421.58 6259.99,-418.24 6250.04,-414.58 6249.93,-421.58"/>
+<path fill="none" stroke="midnightblue" d="M6485.74,-390.62C6090.57,-384.34 4537.31,-356.64 4325,-306 4313.56,-303.27 4301.82,-299.16 4290.64,-294.51"/>
+<polygon fill="none" stroke="midnightblue" points="6485.92,-394.12 6495.98,-390.78 6486.03,-387.12 6485.92,-394.12"/>
 </g>
 <!-- Node51 -->
 <g id="node51" class="node">
 <title>Node51</title>
 <g id="a_node51"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="4170.5,-243 4170.5,-311 4318.5,-311 4318.5,-243 4170.5,-243"/>
-<text text-anchor="start" x="4178.5" y="-299" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="4244.5" y="-288" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; AdaptivePool1DAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="4170.5,-281 4318.5,-281 "/>
-<text text-anchor="middle" x="4244.5" y="-269" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="4170.5,-262 4318.5,-262 "/>
-<text text-anchor="start" x="4178.5" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="4334,-226.5 4334,-294.5 4482,-294.5 4482,-226.5 4334,-226.5"/>
+<text text-anchor="start" x="4342" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="4408" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; AdaptivePool1DAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="4334,-264.5 4482,-264.5 "/>
+<text text-anchor="middle" x="4408" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="4334,-245.5 4482,-245.5 "/>
+<text text-anchor="start" x="4342" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node51 -->
 <g id="edge50" class="edge">
 <title>Node1&#45;&gt;Node51</title>
-<path fill="none" stroke="midnightblue" d="M6249.91,-417.7C5873.91,-410.36 4519.62,-380.49 4334.5,-328 4320.91,-324.15 4307.14,-317.91 4294.59,-311.13"/>
-<polygon fill="none" stroke="midnightblue" points="6249.88,-421.2 6259.95,-417.9 6250.02,-414.21 6249.88,-421.2"/>
+<path fill="none" stroke="midnightblue" d="M6485.7,-390.29C6110.63,-382.98 4699,-352.61 4505,-306 4493.65,-303.27 4482.01,-299.19 4470.92,-294.59"/>
+<polygon fill="none" stroke="midnightblue" points="6485.89,-393.79 6495.96,-390.49 6486.03,-386.8 6485.89,-393.79"/>
 </g>
 <!-- Node53 -->
 <g id="node53" class="node">
 <title>Node53</title>
 <g id="a_node53"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="4343.5,-243 4343.5,-311 4491.5,-311 4491.5,-243 4343.5,-243"/>
-<text text-anchor="start" x="4351.5" y="-299" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="4417.5" y="-288" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; SoftplusAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="4343.5,-281 4491.5,-281 "/>
-<text text-anchor="middle" x="4417.5" y="-269" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="4343.5,-262 4491.5,-262 "/>
-<text text-anchor="start" x="4351.5" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="4514,-226.5 4514,-294.5 4662,-294.5 4662,-226.5 4514,-226.5"/>
+<text text-anchor="start" x="4522" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="4588" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; SoftplusAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="4514,-264.5 4662,-264.5 "/>
+<text text-anchor="middle" x="4588" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="4514,-245.5 4662,-245.5 "/>
+<text text-anchor="start" x="4522" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node53 -->
 <g id="edge52" class="edge">
 <title>Node1&#45;&gt;Node53</title>
-<path fill="none" stroke="midnightblue" d="M6249.74,-417.26C5894.67,-408.67 4675.28,-375.96 4507.5,-328 4493.92,-324.12 4480.15,-317.87 4467.61,-311.09"/>
-<polygon fill="none" stroke="midnightblue" points="6249.91,-420.76 6259.99,-417.5 6250.08,-413.76 6249.91,-420.76"/>
+<path fill="none" stroke="midnightblue" d="M6485.42,-392.46C6156.02,-393.41 5032.64,-390.25 4685,-306 4673.66,-303.25 4662.02,-299.16 4650.92,-294.55"/>
+<polygon fill="none" stroke="midnightblue" points="6485.87,-395.96 6495.86,-392.43 6485.85,-388.96 6485.87,-395.96"/>
 </g>
 <!-- Node55 -->
 <g id="node55" class="node">
 <title>Node55</title>
 <g id="a_node55"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="4516.5,-243 4516.5,-311 4664.5,-311 4664.5,-243 4516.5,-243"/>
-<text text-anchor="start" x="4524.5" y="-299" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="4590.5" y="-288" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; MatmulAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="4516.5,-281 4664.5,-281 "/>
-<text text-anchor="middle" x="4590.5" y="-269" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="4516.5,-262 4664.5,-262 "/>
-<text text-anchor="start" x="4524.5" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="4694,-226.5 4694,-294.5 4842,-294.5 4842,-226.5 4694,-226.5"/>
+<text text-anchor="start" x="4702" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="4768" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; MatmulAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="4694,-264.5 4842,-264.5 "/>
+<text text-anchor="middle" x="4768" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="4694,-245.5 4842,-245.5 "/>
+<text text-anchor="start" x="4702" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node55 -->
 <g id="edge54" class="edge">
 <title>Node1&#45;&gt;Node55</title>
-<path fill="none" stroke="midnightblue" d="M6249.54,-419.35C5941.31,-418.04 4986.71,-407.52 4689.5,-328 4674.81,-324.07 4659.75,-317.8 4645.96,-311.02"/>
-<polygon fill="none" stroke="midnightblue" points="6249.78,-422.85 6259.8,-419.39 6249.81,-415.85 6249.78,-422.85"/>
+<path fill="none" stroke="midnightblue" d="M6485.54,-391.63C6177.98,-389.71 5183.03,-377.96 4872,-306 4860.04,-303.23 4847.72,-299.17 4835.93,-294.6"/>
+<polygon fill="none" stroke="midnightblue" points="6485.73,-395.13 6495.75,-391.69 6485.77,-388.13 6485.73,-395.13"/>
 </g>
 <!-- Node57 -->
 <g id="node57" class="node">
 <title>Node57</title>
 <g id="a_node57"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="4698.5,-243 4698.5,-311 4846.5,-311 4846.5,-243 4698.5,-243"/>
-<text text-anchor="start" x="4706.5" y="-299" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="4772.5" y="-288" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; ArgmaxArgminAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="4698.5,-281 4846.5,-281 "/>
-<text text-anchor="middle" x="4772.5" y="-269" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="4698.5,-262 4846.5,-262 "/>
-<text text-anchor="start" x="4706.5" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="4881,-226.5 4881,-294.5 5029,-294.5 5029,-226.5 4881,-226.5"/>
+<text text-anchor="start" x="4889" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="4955" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; ArgmaxArgminAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="4881,-264.5 5029,-264.5 "/>
+<text text-anchor="middle" x="4955" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="4881,-245.5 5029,-245.5 "/>
+<text text-anchor="start" x="4889" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node57 -->
 <g id="edge56" class="edge">
 <title>Node1&#45;&gt;Node57</title>
-<path fill="none" stroke="midnightblue" d="M6249.28,-418.11C5965.33,-413.31 5140.87,-393.92 4880.5,-328 4864.78,-324.02 4848.54,-317.78 4833.59,-311.04"/>
-<polygon fill="none" stroke="midnightblue" points="6249.5,-421.61 6259.56,-418.28 6249.62,-414.61 6249.5,-421.61"/>
+<path fill="none" stroke="midnightblue" d="M6485.6,-390.63C6202.01,-385.77 5339.73,-366.28 5067,-306 5054.23,-303.18 5041.02,-299.08 5028.35,-294.5"/>
+<polygon fill="none" stroke="midnightblue" points="6485.79,-394.13 6495.85,-390.8 6485.91,-387.13 6485.79,-394.13"/>
 </g>
 <!-- Node59 -->
 <g id="node59" class="node">
 <title>Node59</title>
 <g id="a_node59"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="4889.5,-243 4889.5,-311 5037.5,-311 5037.5,-243 4889.5,-243"/>
-<text text-anchor="start" x="4897.5" y="-299" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="4963.5" y="-288" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; Resize2DAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="4889.5,-281 5037.5,-281 "/>
-<text text-anchor="middle" x="4963.5" y="-269" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="4889.5,-262 5037.5,-262 "/>
-<text text-anchor="start" x="4897.5" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="5076,-226.5 5076,-294.5 5224,-294.5 5224,-226.5 5076,-226.5"/>
+<text text-anchor="start" x="5084" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="5150" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; Resize2DAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="5076,-264.5 5224,-264.5 "/>
+<text text-anchor="middle" x="5150" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="5076,-245.5 5224,-245.5 "/>
+<text text-anchor="start" x="5084" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node59 -->
 <g id="edge58" class="edge">
 <title>Node1&#45;&gt;Node59</title>
-<path fill="none" stroke="midnightblue" d="M6249.69,-417.54C5990.61,-411.49 5285.98,-389.71 5062.5,-328 5048.02,-324 5033.18,-317.8 5019.53,-311.11"/>
-<polygon fill="none" stroke="midnightblue" points="6249.75,-421.04 6259.83,-417.77 6249.91,-414.04 6249.75,-421.04"/>
+<path fill="none" stroke="midnightblue" d="M6485.48,-390.03C6226.05,-383.81 5489.5,-361.63 5255,-306 5243.06,-303.17 5230.74,-299.1 5218.93,-294.55"/>
+<polygon fill="none" stroke="midnightblue" points="6485.54,-393.53 6495.62,-390.27 6485.7,-386.53 6485.54,-393.53"/>
 </g>
 <!-- Node61 -->
 <g id="node61" class="node">
 <title>Node61</title>
 <g id="a_node61"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="5071.5,-243 5071.5,-311 5219.5,-311 5219.5,-243 5071.5,-243"/>
-<text text-anchor="start" x="5079.5" y="-299" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="5145.5" y="-288" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; Pool3DAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="5071.5,-281 5219.5,-281 "/>
-<text text-anchor="middle" x="5145.5" y="-269" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="5071.5,-262 5219.5,-262 "/>
-<text text-anchor="start" x="5079.5" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="5264,-226.5 5264,-294.5 5412,-294.5 5412,-226.5 5264,-226.5"/>
+<text text-anchor="start" x="5272" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="5338" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; Pool3DAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="5264,-264.5 5412,-264.5 "/>
+<text text-anchor="middle" x="5338" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="5264,-245.5 5412,-245.5 "/>
+<text text-anchor="start" x="5272" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node61 -->
 <g id="edge60" class="edge">
 <title>Node1&#45;&gt;Node61</title>
-<path fill="none" stroke="midnightblue" d="M6249.6,-416.76C6015.4,-409.3 5424.03,-385.21 5235.5,-328 5222.16,-323.95 5208.59,-317.73 5196.18,-311.03"/>
-<polygon fill="none" stroke="midnightblue" points="6249.7,-420.26 6259.81,-417.08 6249.92,-413.27 6249.7,-420.26"/>
+<path fill="none" stroke="midnightblue" d="M6485.81,-389.29C6251.56,-381.67 5633.23,-357.17 5435,-306 5423.97,-303.15 5412.64,-299.1 5401.79,-294.6"/>
+<polygon fill="none" stroke="midnightblue" points="6485.89,-392.8 6496,-389.62 6486.12,-385.8 6485.89,-392.8"/>
 </g>
 <!-- Node63 -->
 <g id="node63" class="node">
 <title>Node63</title>
 <g id="a_node63"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="5244.5,-243 5244.5,-311 5392.5,-311 5392.5,-243 5244.5,-243"/>
-<text text-anchor="start" x="5252.5" y="-299" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="5318.5" y="-288" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; LayerNormAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="5244.5,-281 5392.5,-281 "/>
-<text text-anchor="middle" x="5318.5" y="-269" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="5244.5,-262 5392.5,-262 "/>
-<text text-anchor="start" x="5252.5" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="5444,-226.5 5444,-294.5 5592,-294.5 5592,-226.5 5444,-226.5"/>
+<text text-anchor="start" x="5452" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="5518" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; LayerNormAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="5444,-264.5 5592,-264.5 "/>
+<text text-anchor="middle" x="5518" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="5444,-245.5 5592,-245.5 "/>
+<text text-anchor="start" x="5452" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node63 -->
 <g id="edge62" class="edge">
 <title>Node1&#45;&gt;Node63</title>
-<path fill="none" stroke="midnightblue" d="M6249.72,-415.06C6042.81,-404.76 5563.65,-376.36 5408.5,-328 5395.36,-323.9 5381.98,-317.75 5369.7,-311.14"/>
-<polygon fill="none" stroke="midnightblue" points="6249.8,-418.57 6259.96,-415.57 6250.14,-411.58 6249.8,-418.57"/>
+<path fill="none" stroke="midnightblue" d="M6485.75,-387.8C6278.55,-377.64 5777.96,-349.29 5615,-306 5604.08,-303.1 5592.85,-299.05 5582.09,-294.57"/>
+<polygon fill="none" stroke="midnightblue" points="6485.83,-391.31 6495.99,-388.3 6486.17,-384.32 6485.83,-391.31"/>
 </g>
 <!-- Node65 -->
 <g id="node65" class="node">
 <title>Node65</title>
 <g id="a_node65"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="5417.5,-243 5417.5,-311 5565.5,-311 5565.5,-243 5417.5,-243"/>
-<text text-anchor="start" x="5425.5" y="-299" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="5491.5" y="-288" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; SqueezeAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="5417.5,-281 5565.5,-281 "/>
-<text text-anchor="middle" x="5491.5" y="-269" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="5417.5,-262 5565.5,-262 "/>
-<text text-anchor="start" x="5425.5" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="5624,-226.5 5624,-294.5 5772,-294.5 5772,-226.5 5624,-226.5"/>
+<text text-anchor="start" x="5632" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="5698" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; SqueezeAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="5624,-264.5 5772,-264.5 "/>
+<text text-anchor="middle" x="5698" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="5624,-245.5 5772,-245.5 "/>
+<text text-anchor="start" x="5632" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node65 -->
 <g id="edge64" class="edge">
 <title>Node1&#45;&gt;Node65</title>
-<path fill="none" stroke="midnightblue" d="M6249.47,-419.77C6101.69,-417.57 5812.96,-402.93 5581.5,-328 5568.58,-323.82 5555.39,-317.71 5543.24,-311.19"/>
-<polygon fill="none" stroke="midnightblue" points="6249.82,-423.28 6259.86,-419.91 6249.91,-416.28 6249.82,-423.28"/>
+<path fill="none" stroke="midnightblue" d="M6485.37,-391.35C6337.47,-388.22 6038.13,-373.24 5795,-306 5784.29,-303.04 5773.27,-299.02 5762.67,-294.6"/>
+<polygon fill="none" stroke="midnightblue" points="6485.69,-394.86 6495.76,-391.56 6485.83,-387.86 6485.69,-394.86"/>
 </g>
 <!-- Node67 -->
 <g id="node67" class="node">
 <title>Node67</title>
 <g id="a_node67"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="5590.5,-243 5590.5,-311 5738.5,-311 5738.5,-243 5590.5,-243"/>
-<text text-anchor="start" x="5598.5" y="-299" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="5664.5" y="-288" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; Pool2DAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="5590.5,-281 5738.5,-281 "/>
-<text text-anchor="middle" x="5664.5" y="-269" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="5590.5,-262 5738.5,-262 "/>
-<text text-anchor="start" x="5598.5" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="5804,-226.5 5804,-294.5 5952,-294.5 5952,-226.5 5804,-226.5"/>
+<text text-anchor="start" x="5812" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="5878" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; Pool2DAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="5804,-264.5 5952,-264.5 "/>
+<text text-anchor="middle" x="5878" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="5804,-245.5 5952,-245.5 "/>
+<text text-anchor="start" x="5812" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node67 -->
 <g id="edge66" class="edge">
 <title>Node1&#45;&gt;Node67</title>
-<path fill="none" stroke="midnightblue" d="M6249.72,-415.01C6130.39,-407.12 5922.74,-385.67 5754.5,-328 5741.82,-323.65 5728.84,-317.56 5716.83,-311.12"/>
-<polygon fill="none" stroke="midnightblue" points="6249.72,-418.52 6259.92,-415.67 6250.17,-411.53 6249.72,-418.52"/>
+<path fill="none" stroke="midnightblue" d="M6485.38,-387.12C6365.84,-378.91 6151.17,-357.81 5975,-306 5964.51,-302.92 5953.71,-298.89 5943.29,-294.52"/>
+<polygon fill="none" stroke="midnightblue" points="6485.37,-390.63 6495.58,-387.81 6485.84,-383.65 6485.37,-390.63"/>
 </g>
 <!-- Node69 -->
 <g id="node69" class="node">
 <title>Node69</title>
 <g id="a_node69"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="5763.5,-243 5763.5,-311 5911.5,-311 5911.5,-243 5763.5,-243"/>
-<text text-anchor="start" x="5771.5" y="-299" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="5837.5" y="-288" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; OneHotAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="5763.5,-281 5911.5,-281 "/>
-<text text-anchor="middle" x="5837.5" y="-269" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="5763.5,-262 5911.5,-262 "/>
-<text text-anchor="start" x="5771.5" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="5984,-226.5 5984,-294.5 6132,-294.5 6132,-226.5 5984,-226.5"/>
+<text text-anchor="start" x="5992" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="6058" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; OneHotAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="5984,-264.5 6132,-264.5 "/>
+<text text-anchor="middle" x="6058" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="5984,-245.5 6132,-245.5 "/>
+<text text-anchor="start" x="5992" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node69 -->
 <g id="edge68" class="edge">
 <title>Node1&#45;&gt;Node69</title>
-<path fill="none" stroke="midnightblue" d="M6249.67,-406.58C6163.23,-393.13 6034.2,-368.29 5927.5,-328 5915.29,-323.39 5902.73,-317.34 5891.01,-311.06"/>
-<polygon fill="none" stroke="midnightblue" points="6249.31,-410.06 6259.73,-408.12 6250.38,-403.14 6249.31,-410.06"/>
+<path fill="none" stroke="midnightblue" d="M6485.8,-379.6C6399.27,-366.39 6266.27,-342.33 6155,-306 6145.05,-302.75 6134.77,-298.77 6124.78,-294.53"/>
+<polygon fill="none" stroke="midnightblue" points="6485.45,-383.08 6495.86,-381.11 6486.49,-376.16 6485.45,-383.08"/>
 </g>
 <!-- Node71 -->
 <g id="node71" class="node">
 <title>Node71</title>
 <g id="a_node71"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="5936.5,-243 5936.5,-311 6084.5,-311 6084.5,-243 5936.5,-243"/>
-<text text-anchor="start" x="5944.5" y="-299" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="6010.5" y="-288" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; NLLLossAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="5936.5,-281 6084.5,-281 "/>
-<text text-anchor="middle" x="6010.5" y="-269" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="5936.5,-262 6084.5,-262 "/>
-<text text-anchor="start" x="5944.5" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="6164,-226.5 6164,-294.5 6312,-294.5 6312,-226.5 6164,-226.5"/>
+<text text-anchor="start" x="6172" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="6238" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; NLLLossAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="6164,-264.5 6312,-264.5 "/>
+<text text-anchor="middle" x="6238" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="6164,-245.5 6312,-245.5 "/>
+<text text-anchor="start" x="6172" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node71 -->
 <g id="edge70" class="edge">
 <title>Node1&#45;&gt;Node71</title>
-<path fill="none" stroke="midnightblue" d="M6250.22,-388.4C6203.37,-372.19 6146.69,-350.97 6097.5,-328 6086.77,-322.99 6075.6,-317.11 6064.98,-311.18"/>
-<polygon fill="none" stroke="midnightblue" points="6249.16,-391.73 6259.76,-391.67 6251.44,-385.11 6249.16,-391.73"/>
+<path fill="none" stroke="midnightblue" d="M6486.17,-363.7C6438.53,-348.09 6379.52,-327.53 6328,-306 6319.64,-302.5 6310.96,-298.59 6302.44,-294.58"/>
+<polygon fill="none" stroke="midnightblue" points="6485.26,-367.08 6495.85,-366.85 6487.43,-360.43 6485.26,-367.08"/>
 </g>
 <!-- Node73 -->
 <g id="node73" class="node">
 <title>Node73</title>
 <g id="a_node73"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="6106.5,-243 6106.5,-311 6254.5,-311 6254.5,-243 6106.5,-243"/>
-<text text-anchor="start" x="6114.5" y="-299" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="6180.5" y="-288" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; BatchNormAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="6106.5,-281 6254.5,-281 "/>
-<text text-anchor="middle" x="6180.5" y="-269" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="6106.5,-262 6254.5,-262 "/>
-<text text-anchor="start" x="6114.5" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="6337,-226.5 6337,-294.5 6485,-294.5 6485,-226.5 6337,-226.5"/>
+<text text-anchor="start" x="6345" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="6411" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; BatchNormAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="6337,-264.5 6485,-264.5 "/>
+<text text-anchor="middle" x="6411" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="6337,-245.5 6485,-245.5 "/>
+<text text-anchor="start" x="6345" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node73 -->
 <g id="edge72" class="edge">
 <title>Node1&#45;&gt;Node73</title>
-<path fill="none" stroke="midnightblue" d="M6274.11,-357.79C6255.27,-341.73 6235.68,-325.04 6219.33,-311.1"/>
-<polygon fill="none" stroke="midnightblue" points="6271.96,-360.56 6281.84,-364.39 6276.5,-355.24 6271.96,-360.56"/>
+<path fill="none" stroke="midnightblue" d="M6505.59,-335.86C6487.64,-321.75 6468.96,-307.06 6452.98,-294.51"/>
+<polygon fill="none" stroke="midnightblue" points="6503.74,-338.86 6513.77,-342.29 6508.07,-333.36 6503.74,-338.86"/>
 </g>
 <!-- Node75 -->
 <g id="node75" class="node">
 <title>Node75</title>
 <g id="a_node75"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="6272.5,-243 6272.5,-311 6420.5,-311 6420.5,-243 6272.5,-243"/>
-<text text-anchor="start" x="6280.5" y="-299" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="6346.5" y="-288" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; RepeatAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="6272.5,-281 6420.5,-281 "/>
-<text text-anchor="middle" x="6346.5" y="-269" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="6272.5,-262 6420.5,-262 "/>
-<text text-anchor="start" x="6280.5" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="6503,-226.5 6503,-294.5 6651,-294.5 6651,-226.5 6503,-226.5"/>
+<text text-anchor="start" x="6511" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="6577" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; RepeatAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="6503,-264.5 6651,-264.5 "/>
+<text text-anchor="middle" x="6577" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="6503,-245.5 6651,-245.5 "/>
+<text text-anchor="start" x="6511" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node75 -->
 <g id="edge74" class="edge">
 <title>Node1&#45;&gt;Node75</title>
-<path fill="none" stroke="midnightblue" d="M6346.5,-354.14C6346.5,-339.23 6346.5,-323.99 6346.5,-311.1"/>
-<polygon fill="none" stroke="midnightblue" points="6343,-354.39 6346.5,-364.39 6350,-354.39 6343,-354.39"/>
+<path fill="none" stroke="midnightblue" d="M6577,-332.03C6577,-319.12 6577,-305.93 6577,-294.51"/>
+<polygon fill="none" stroke="midnightblue" points="6573.5,-332.29 6577,-342.29 6580.5,-332.29 6573.5,-332.29"/>
 </g>
 <!-- Node77 -->
 <g id="node77" class="node">
 <title>Node77</title>
 <g id="a_node77"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="6438.5,-243 6438.5,-311 6586.5,-311 6586.5,-243 6438.5,-243"/>
-<text text-anchor="start" x="6446.5" y="-299" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="6512.5" y="-288" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; Pool1DAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="6438.5,-281 6586.5,-281 "/>
-<text text-anchor="middle" x="6512.5" y="-269" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="6438.5,-262 6586.5,-262 "/>
-<text text-anchor="start" x="6446.5" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="6669,-226.5 6669,-294.5 6817,-294.5 6817,-226.5 6669,-226.5"/>
+<text text-anchor="start" x="6677" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="6743" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; Pool1DAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="6669,-264.5 6817,-264.5 "/>
+<text text-anchor="middle" x="6743" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="6669,-245.5 6817,-245.5 "/>
+<text text-anchor="start" x="6677" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node77 -->
 <g id="edge76" class="edge">
 <title>Node1&#45;&gt;Node77</title>
-<path fill="none" stroke="midnightblue" d="M6418.89,-357.79C6437.73,-341.73 6457.32,-325.04 6473.67,-311.1"/>
-<polygon fill="none" stroke="midnightblue" points="6416.5,-355.24 6411.16,-364.39 6421.04,-360.56 6416.5,-355.24"/>
+<path fill="none" stroke="midnightblue" d="M6648.41,-335.86C6666.36,-321.75 6685.04,-307.06 6701.02,-294.51"/>
+<polygon fill="none" stroke="midnightblue" points="6645.93,-333.36 6640.23,-342.29 6650.26,-338.86 6645.93,-333.36"/>
 </g>
 <!-- Node79 -->
 <g id="node79" class="node">
 <title>Node79</title>
 <g id="a_node79"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="6604.5,-243 6604.5,-311 6752.5,-311 6752.5,-243 6604.5,-243"/>
-<text text-anchor="start" x="6612.5" y="-299" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="6678.5" y="-288" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; StackAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="6604.5,-281 6752.5,-281 "/>
-<text text-anchor="middle" x="6678.5" y="-269" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="6604.5,-262 6752.5,-262 "/>
-<text text-anchor="start" x="6612.5" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="6835,-226.5 6835,-294.5 6983,-294.5 6983,-226.5 6835,-226.5"/>
+<text text-anchor="start" x="6843" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="6909" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; StackAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="6835,-264.5 6983,-264.5 "/>
+<text text-anchor="middle" x="6909" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="6835,-245.5 6983,-245.5 "/>
+<text text-anchor="start" x="6843" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node79 -->
 <g id="edge78" class="edge">
 <title>Node1&#45;&gt;Node79</title>
-<path fill="none" stroke="midnightblue" d="M6442.71,-388.93C6489.66,-372.82 6546.45,-351.52 6595.5,-328 6605.97,-322.98 6616.82,-317.03 6627.09,-311.03"/>
-<polygon fill="none" stroke="midnightblue" points="6441.49,-385.65 6433.15,-392.19 6443.74,-392.28 6441.49,-385.65"/>
+<path fill="none" stroke="midnightblue" d="M6667.85,-364.48C6715.62,-349.05 6774.74,-328.42 6826,-306 6833.94,-302.53 6842.15,-298.58 6850.18,-294.52"/>
+<polygon fill="none" stroke="midnightblue" points="6666.6,-361.21 6658.15,-367.6 6668.74,-367.87 6666.6,-361.21"/>
 </g>
 <!-- Node81 -->
 <g id="node81" class="node">
 <title>Node81</title>
 <g id="a_node81"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="6770.5,-243 6770.5,-311 6918.5,-311 6918.5,-243 6770.5,-243"/>
-<text text-anchor="start" x="6778.5" y="-299" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="6844.5" y="-288" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; ScanopAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="6770.5,-281 6918.5,-281 "/>
-<text text-anchor="middle" x="6844.5" y="-269" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="6770.5,-262 6918.5,-262 "/>
-<text text-anchor="start" x="6778.5" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="7001,-226.5 7001,-294.5 7149,-294.5 7149,-226.5 7001,-226.5"/>
+<text text-anchor="start" x="7009" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="7075" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; ScanopAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="7001,-264.5 7149,-264.5 "/>
+<text text-anchor="middle" x="7075" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="7001,-245.5 7149,-245.5 "/>
+<text text-anchor="start" x="7009" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node81 -->
 <g id="edge80" class="edge">
 <title>Node1&#45;&gt;Node81</title>
-<path fill="none" stroke="midnightblue" d="M6443.16,-407.28C6528.99,-394.32 6656.69,-369.81 6761.5,-328 6772.91,-323.45 6784.56,-317.43 6795.38,-311.15"/>
-<polygon fill="none" stroke="midnightblue" points="6442.54,-403.84 6433.16,-408.77 6443.57,-410.76 6442.54,-403.84"/>
+<path fill="none" stroke="midnightblue" d="M6667.99,-380.83C6753.48,-368.56 6884.06,-345.19 6992,-306 7000.76,-302.82 7009.73,-298.85 7018.39,-294.6"/>
+<polygon fill="none" stroke="midnightblue" points="6667.47,-377.37 6658.06,-382.24 6668.45,-384.3 6667.47,-377.37"/>
 </g>
 <!-- Node83 -->
 <g id="node83" class="node">
 <title>Node83</title>
 <g id="a_node83"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="6936.5,-243 6936.5,-311 7084.5,-311 7084.5,-243 6936.5,-243"/>
-<text text-anchor="start" x="6944.5" y="-299" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="7010.5" y="-288" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; LeakyReluAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="6936.5,-281 7084.5,-281 "/>
-<text text-anchor="middle" x="7010.5" y="-269" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="6936.5,-262 7084.5,-262 "/>
-<text text-anchor="start" x="6944.5" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="7167,-226.5 7167,-294.5 7315,-294.5 7315,-226.5 7167,-226.5"/>
+<text text-anchor="start" x="7175" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="7241" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; LeakyReluAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="7167,-264.5 7315,-264.5 "/>
+<text text-anchor="middle" x="7241" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="7167,-245.5 7315,-245.5 "/>
+<text text-anchor="start" x="7175" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node83 -->
 <g id="edge82" class="edge">
 <title>Node1&#45;&gt;Node83</title>
-<path fill="none" stroke="midnightblue" d="M6443.33,-415.6C6561.02,-408.32 6764.11,-387.49 6927.5,-328 6939.36,-323.68 6951.39,-317.6 6962.48,-311.17"/>
-<polygon fill="none" stroke="midnightblue" points="6443.04,-412.12 6433.26,-416.21 6443.45,-419.1 6443.04,-412.12"/>
+<path fill="none" stroke="midnightblue" d="M6668.73,-388.16C6785.16,-381.1 6990.97,-361.27 7158,-306 7167.16,-302.97 7176.5,-298.97 7185.46,-294.62"/>
+<polygon fill="none" stroke="midnightblue" points="6668.21,-384.69 6658.43,-388.77 6668.62,-391.67 6668.21,-384.69"/>
 </g>
 <!-- Node85 -->
 <g id="node85" class="node">
 <title>Node85</title>
 <g id="a_node85"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="7102.5,-243 7102.5,-311 7250.5,-311 7250.5,-243 7102.5,-243"/>
-<text text-anchor="start" x="7110.5" y="-299" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="7176.5" y="-288" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; CallTIRWithGradAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="7102.5,-281 7250.5,-281 "/>
-<text text-anchor="middle" x="7176.5" y="-269" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="7102.5,-262 7250.5,-262 "/>
-<text text-anchor="start" x="7110.5" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="7333,-226.5 7333,-294.5 7481,-294.5 7481,-226.5 7333,-226.5"/>
+<text text-anchor="start" x="7341" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="7407" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; CallTIRWithGradAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="7333,-264.5 7481,-264.5 "/>
+<text text-anchor="middle" x="7407" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="7333,-245.5 7481,-245.5 "/>
+<text text-anchor="start" x="7341" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node85 -->
 <g id="edge84" class="edge">
 <title>Node1&#45;&gt;Node85</title>
-<path fill="none" stroke="midnightblue" d="M6443.18,-412.7C6617.06,-399.65 6975.42,-368.71 7093.5,-328 7105.59,-323.83 7117.81,-317.73 7129.03,-311.22"/>
-<polygon fill="none" stroke="midnightblue" points="6442.72,-409.23 6433.01,-413.46 6443.25,-416.21 6442.72,-409.23"/>
+<path fill="none" stroke="midnightblue" d="M6668.15,-392.43C6811.17,-390.7 7095.58,-377.51 7324,-306 7333.36,-303.07 7342.89,-299.07 7352,-294.66"/>
+<polygon fill="none" stroke="midnightblue" points="6668.06,-388.93 6658.1,-392.53 6668.13,-395.93 6668.06,-388.93"/>
 </g>
 <!-- Node87 -->
 <g id="node87" class="node">
 <title>Node87</title>
 <g id="a_node87"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="7268.5,-243 7268.5,-311 7416.5,-311 7416.5,-243 7268.5,-243"/>
-<text text-anchor="start" x="7276.5" y="-299" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="7342.5" y="-288" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; CallTIRInplaceAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="7268.5,-281 7416.5,-281 "/>
-<text text-anchor="middle" x="7342.5" y="-269" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="7268.5,-262 7416.5,-262 "/>
-<text text-anchor="start" x="7276.5" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="7499,-226.5 7499,-294.5 7647,-294.5 7647,-226.5 7499,-226.5"/>
+<text text-anchor="start" x="7507" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="7573" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; CallTIRInplaceAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="7499,-264.5 7647,-264.5 "/>
+<text text-anchor="middle" x="7573" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="7499,-245.5 7647,-245.5 "/>
+<text text-anchor="start" x="7507" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node87 -->
 <g id="edge86" class="edge">
 <title>Node1&#45;&gt;Node87</title>
-<path fill="none" stroke="midnightblue" d="M6443.09,-415.19C6645.96,-405.26 7109.92,-377.74 7259.5,-328 7271.79,-323.91 7284.2,-317.76 7295.54,-311.16"/>
-<polygon fill="none" stroke="midnightblue" points="6442.86,-411.69 6433.05,-415.68 6443.2,-418.69 6442.86,-411.69"/>
+<path fill="none" stroke="midnightblue" d="M6668.48,-387.99C6868.28,-378.49 7337.94,-351.88 7490,-306 7499.55,-303.12 7509.26,-299.08 7518.51,-294.61"/>
+<polygon fill="none" stroke="midnightblue" points="6668.13,-384.5 6658.3,-388.47 6668.46,-391.49 6668.13,-384.5"/>
 </g>
 <!-- Node89 -->
 <g id="node89" class="node">
 <title>Node89</title>
 <g id="a_node89"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="7434.5,-243 7434.5,-311 7582.5,-311 7582.5,-243 7434.5,-243"/>
-<text text-anchor="start" x="7442.5" y="-299" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="7508.5" y="-288" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; AstypeAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="7434.5,-281 7582.5,-281 "/>
-<text text-anchor="middle" x="7508.5" y="-269" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="7434.5,-262 7582.5,-262 "/>
-<text text-anchor="start" x="7442.5" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="7665,-226.5 7665,-294.5 7813,-294.5 7813,-226.5 7665,-226.5"/>
+<text text-anchor="start" x="7673" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="7739" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; AstypeAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="7665,-264.5 7813,-264.5 "/>
+<text text-anchor="middle" x="7739" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="7665,-245.5 7813,-245.5 "/>
+<text text-anchor="start" x="7673" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node89 -->
 <g id="edge88" class="edge">
 <title>Node1&#45;&gt;Node89</title>
-<path fill="none" stroke="midnightblue" d="M6443.23,-416.91C6672.66,-409.86 7244.1,-386.79 7425.5,-328 7437.98,-323.95 7450.56,-317.73 7462.02,-311.04"/>
-<polygon fill="none" stroke="midnightblue" points="6443.12,-413.41 6433.23,-417.21 6443.33,-420.41 6443.12,-413.41"/>
+<path fill="none" stroke="midnightblue" d="M6668.52,-389.52C6894.09,-382.65 7471.77,-360.14 7656,-306 7665.73,-303.14 7675.61,-299.06 7685,-294.51"/>
+<polygon fill="none" stroke="midnightblue" points="6668.26,-386.03 6658.37,-389.83 6668.47,-393.03 6668.26,-386.03"/>
 </g>
 <!-- Node91 -->
 <g id="node91" class="node">
 <title>Node91</title>
 <g id="a_node91"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="7600.5,-243 7600.5,-311 7748.5,-311 7748.5,-243 7600.5,-243"/>
-<text text-anchor="start" x="7608.5" y="-299" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="7674.5" y="-288" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; PixelShuffleAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="7600.5,-281 7748.5,-281 "/>
-<text text-anchor="middle" x="7674.5" y="-269" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="7600.5,-262 7748.5,-262 "/>
-<text text-anchor="start" x="7608.5" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="7831,-226.5 7831,-294.5 7979,-294.5 7979,-226.5 7831,-226.5"/>
+<text text-anchor="start" x="7839" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="7905" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; PixelShuffleAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="7831,-264.5 7979,-264.5 "/>
+<text text-anchor="middle" x="7905" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="7831,-245.5 7979,-245.5 "/>
+<text text-anchor="start" x="7839" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node91 -->
 <g id="edge90" class="edge">
 <title>Node1&#45;&gt;Node91</title>
-<path fill="none" stroke="midnightblue" d="M6443.72,-418.17C6698.05,-413.78 7378.1,-395.83 7591.5,-328 7604,-324.02 7616.59,-317.83 7628.06,-311.14"/>
-<polygon fill="none" stroke="midnightblue" points="6443.33,-414.68 6433.39,-418.35 6443.45,-421.68 6443.33,-414.68"/>
+<path fill="none" stroke="midnightblue" d="M6668.2,-390.66C6917.34,-386.21 7605.23,-368.46 7822,-306 7831.74,-303.19 7841.63,-299.14 7851.03,-294.6"/>
+<polygon fill="none" stroke="midnightblue" points="6668.03,-387.16 6658.1,-390.84 6668.16,-394.16 6668.03,-387.16"/>
 </g>
 <!-- Node93 -->
 <g id="node93" class="node">
 <title>Node93</title>
 <g id="a_node93"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="7766.5,-243 7766.5,-311 7914.5,-311 7914.5,-243 7766.5,-243"/>
-<text text-anchor="start" x="7774.5" y="-299" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="7840.5" y="-288" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; PadAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="7766.5,-281 7914.5,-281 "/>
-<text text-anchor="middle" x="7840.5" y="-269" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="7766.5,-262 7914.5,-262 "/>
-<text text-anchor="start" x="7774.5" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="7997,-226.5 7997,-294.5 8145,-294.5 8145,-226.5 7997,-226.5"/>
+<text text-anchor="start" x="8005" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="8071" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; PadAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="7997,-264.5 8145,-264.5 "/>
+<text text-anchor="middle" x="8071" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="7997,-245.5 8145,-245.5 "/>
+<text text-anchor="start" x="8005" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node93 -->
 <g id="edge92" class="edge">
 <title>Node1&#45;&gt;Node93</title>
-<path fill="none" stroke="midnightblue" d="M6443.35,-419.16C6720.33,-417.24 7511.63,-404.99 7757.5,-328 7770.02,-324.08 7782.62,-317.91 7794.08,-311.22"/>
-<polygon fill="none" stroke="midnightblue" points="6443.29,-415.66 6433.32,-419.22 6443.34,-422.66 6443.29,-415.66"/>
+<path fill="none" stroke="midnightblue" d="M6668.28,-391.52C6939.75,-389.31 7738.58,-376.78 7988,-306 7997.75,-303.23 8007.65,-299.2 8017.05,-294.67"/>
+<polygon fill="none" stroke="midnightblue" points="6668.05,-388.03 6658.08,-391.6 6668.1,-395.02 6668.05,-388.03"/>
 </g>
 <!-- Node95 -->
 <g id="node95" class="node">
 <title>Node95</title>
 <g id="a_node95"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="7932.5,-243 7932.5,-311 8080.5,-311 8080.5,-243 7932.5,-243"/>
-<text text-anchor="start" x="7940.5" y="-299" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="8006.5" y="-288" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; InstanceNormAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="7932.5,-281 8080.5,-281 "/>
-<text text-anchor="middle" x="8006.5" y="-269" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="7932.5,-262 8080.5,-262 "/>
-<text text-anchor="start" x="7940.5" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="8163,-226.5 8163,-294.5 8311,-294.5 8311,-226.5 8163,-226.5"/>
+<text text-anchor="start" x="8171" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="8237" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; InstanceNormAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="8163,-264.5 8311,-264.5 "/>
+<text text-anchor="middle" x="8237" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="8163,-245.5 8311,-245.5 "/>
+<text text-anchor="start" x="8171" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node95 -->
 <g id="edge94" class="edge">
 <title>Node1&#45;&gt;Node95</title>
-<path fill="none" stroke="midnightblue" d="M6443.6,-419.93C6742.47,-420.32 7645.16,-414.12 7923.5,-328 7936.2,-324.07 7948.96,-317.81 7960.54,-311.02"/>
-<polygon fill="none" stroke="midnightblue" points="6443.23,-416.43 6433.22,-419.92 6443.22,-423.43 6443.23,-416.43"/>
+<path fill="none" stroke="midnightblue" d="M6668.26,-392.21C6960.68,-392.07 7871.72,-385.13 8154,-306 8163.92,-303.22 8173.98,-299.11 8183.52,-294.5"/>
+<polygon fill="none" stroke="midnightblue" points="6668.12,-388.71 6658.12,-392.21 6668.12,-395.71 6668.12,-388.71"/>
 </g>
 <!-- Node97 -->
 <g id="node97" class="node">
 <title>Node97</title>
 <g id="a_node97"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="8098.5,-243 8098.5,-311 8246.5,-311 8246.5,-243 8098.5,-243"/>
-<text text-anchor="start" x="8106.5" y="-299" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="8172.5" y="-288" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; DropoutAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="8098.5,-281 8246.5,-281 "/>
-<text text-anchor="middle" x="8172.5" y="-269" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="8098.5,-262 8246.5,-262 "/>
-<text text-anchor="start" x="8106.5" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="8329,-226.5 8329,-294.5 8477,-294.5 8477,-226.5 8329,-226.5"/>
+<text text-anchor="start" x="8337" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="8403" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; DropoutAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="8329,-264.5 8477,-264.5 "/>
+<text text-anchor="middle" x="8403" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="8329,-245.5 8477,-245.5 "/>
+<text text-anchor="start" x="8337" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node97 -->
 <g id="edge96" class="edge">
 <title>Node1&#45;&gt;Node97</title>
-<path fill="none" stroke="midnightblue" d="M6443.44,-417.16C6786.69,-408.49 7932.15,-376.21 8089.5,-328 8102.21,-324.11 8114.97,-317.85 8126.56,-311.07"/>
-<polygon fill="none" stroke="midnightblue" points="6443.19,-413.66 6433.28,-417.41 6443.36,-420.66 6443.19,-413.66"/>
+<path fill="none" stroke="midnightblue" d="M6668.33,-389.85C7004.32,-381.59 8160.58,-350.24 8320,-306 8329.93,-303.25 8339.99,-299.15 8349.53,-294.54"/>
+<polygon fill="none" stroke="midnightblue" points="6668.06,-386.35 6658.15,-390.09 6668.23,-393.35 6668.06,-386.35"/>
 </g>
 <!-- Node99 -->
 <g id="node99" class="node">
 <title>Node99</title>
 <g id="a_node99"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="8264.5,-243 8264.5,-311 8412.5,-311 8412.5,-243 8264.5,-243"/>
-<text text-anchor="start" x="8272.5" y="-299" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="8338.5" y="-288" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; TopKAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="8264.5,-281 8412.5,-281 "/>
-<text text-anchor="middle" x="8338.5" y="-269" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="8264.5,-262 8412.5,-262 "/>
-<text text-anchor="start" x="8272.5" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="8495,-226.5 8495,-294.5 8643,-294.5 8643,-226.5 8495,-226.5"/>
+<text text-anchor="start" x="8503" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="8569" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; TopKAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="8495,-264.5 8643,-264.5 "/>
+<text text-anchor="middle" x="8569" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="8495,-245.5 8643,-245.5 "/>
+<text text-anchor="start" x="8503" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node99 -->
 <g id="edge98" class="edge">
 <title>Node1&#45;&gt;Node99</title>
-<path fill="none" stroke="midnightblue" d="M6443.31,-417.64C6807.25,-410.25 8081.62,-380.84 8255.5,-328 8268.22,-324.14 8280.99,-317.89 8292.57,-311.11"/>
-<polygon fill="none" stroke="midnightblue" points="6442.99,-414.14 6433.07,-417.84 6443.13,-421.14 6442.99,-414.14"/>
+<path fill="none" stroke="midnightblue" d="M6668.25,-390.27C7024.39,-383.18 8309.92,-354.46 8486,-306 8495.93,-303.27 8506,-299.18 8515.54,-294.58"/>
+<polygon fill="none" stroke="midnightblue" points="6668.16,-386.77 6658.24,-390.47 6668.3,-393.77 6668.16,-386.77"/>
 </g>
 <!-- Node101 -->
 <g id="node101" class="node">
 <title>Node101</title>
 <g id="a_node101"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="8431,-243 8431,-311 8616,-311 8616,-243 8431,-243"/>
-<text text-anchor="start" x="8439" y="-299" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="8523.5" y="-288" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; MultinomialFromUniformAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="8431,-281 8616,-281 "/>
-<text text-anchor="middle" x="8523.5" y="-269" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="8431,-262 8616,-262 "/>
-<text text-anchor="start" x="8439" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="8661.5,-226.5 8661.5,-294.5 8846.5,-294.5 8846.5,-226.5 8661.5,-226.5"/>
+<text text-anchor="start" x="8669.5" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="8754" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; MultinomialFromUniformAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="8661.5,-264.5 8846.5,-264.5 "/>
+<text text-anchor="middle" x="8754" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="8661.5,-245.5 8846.5,-245.5 "/>
+<text text-anchor="start" x="8669.5" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node101 -->
 <g id="edge100" class="edge">
 <title>Node1&#45;&gt;Node101</title>
-<path fill="none" stroke="midnightblue" d="M6443.43,-417.56C6827.22,-409.55 8228.8,-377.19 8421.5,-328 8436.6,-324.15 8452.09,-317.91 8466.29,-311.13"/>
-<polygon fill="none" stroke="midnightblue" points="6443.12,-414.06 6433.19,-417.77 6443.26,-421.06 6443.12,-414.06"/>
+<path fill="none" stroke="midnightblue" d="M6668.41,-390.2C7043.93,-382.51 8457.29,-350.85 8652,-306 8663.86,-303.27 8676.06,-299.19 8687.72,-294.58"/>
+<polygon fill="none" stroke="midnightblue" points="6668.06,-386.7 6658.14,-390.4 6668.21,-393.7 6668.06,-386.7"/>
 </g>
 <!-- Node103 -->
 <g id="node103" class="node">
 <title>Node103</title>
 <g id="a_node103"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="8634.5,-243 8634.5,-311 8782.5,-311 8782.5,-243 8634.5,-243"/>
-<text text-anchor="start" x="8642.5" y="-299" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="8708.5" y="-288" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; Conv3DAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="8634.5,-281 8782.5,-281 "/>
-<text text-anchor="middle" x="8708.5" y="-269" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="8634.5,-262 8782.5,-262 "/>
-<text text-anchor="start" x="8642.5" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="8865,-226.5 8865,-294.5 9013,-294.5 9013,-226.5 8865,-226.5"/>
+<text text-anchor="start" x="8873" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="8939" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; Conv3DAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="8865,-264.5 9013,-264.5 "/>
+<text text-anchor="middle" x="8939" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="8865,-245.5 9013,-245.5 "/>
+<text text-anchor="start" x="8873" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node103 -->
 <g id="edge102" class="edge">
 <title>Node1&#45;&gt;Node103</title>
-<path fill="none" stroke="midnightblue" d="M6443.39,-418.42C6850.78,-413.48 8413.59,-390.6 8624.5,-328 8637.35,-324.19 8650.27,-317.96 8661.99,-311.18"/>
-<polygon fill="none" stroke="midnightblue" points="6443.07,-414.92 6433.11,-418.54 6443.15,-421.92 6443.07,-414.92"/>
+<path fill="none" stroke="midnightblue" d="M6668.1,-390.96C7066.05,-386.09 8641.54,-363.34 8855,-306 8865.04,-303.3 8875.23,-299.24 8884.88,-294.64"/>
+<polygon fill="none" stroke="midnightblue" points="6668.03,-387.46 6658.07,-391.08 6668.11,-394.46 6668.03,-387.46"/>
 </g>
 <!-- Node105 -->
 <g id="node105" class="node">
 <title>Node105</title>
 <g id="a_node105"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="8800.5,-243 8800.5,-311 8948.5,-311 8948.5,-243 8800.5,-243"/>
-<text text-anchor="start" x="8808.5" y="-299" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="8874.5" y="-288" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; VirtualDeviceNode &gt;</text>
-<polyline fill="none" stroke="black" points="8800.5,-281 8948.5,-281 "/>
-<text text-anchor="middle" x="8874.5" y="-269" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="8800.5,-262 8948.5,-262 "/>
-<text text-anchor="start" x="8808.5" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="9031,-226.5 9031,-294.5 9179,-294.5 9179,-226.5 9031,-226.5"/>
+<text text-anchor="start" x="9039" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="9105" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; VirtualDeviceNode &gt;</text>
+<polyline fill="none" stroke="black" points="9031,-264.5 9179,-264.5 "/>
+<text text-anchor="middle" x="9105" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="9031,-245.5 9179,-245.5 "/>
+<text text-anchor="start" x="9039" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node105 -->
 <g id="edge104" class="edge">
 <title>Node1&#45;&gt;Node105</title>
-<path fill="none" stroke="midnightblue" d="M6443.38,-418.73C6869.25,-414.97 8563.99,-395.84 8791.5,-328 8804.24,-324.2 8817.01,-317.99 8828.6,-311.21"/>
-<polygon fill="none" stroke="midnightblue" points="6443.22,-415.23 6433.25,-418.82 6443.28,-422.23 6443.22,-415.23"/>
+<path fill="none" stroke="midnightblue" d="M6668.51,-391.24C7085.1,-387.43 8791.86,-368.12 9022,-306 9031.94,-303.32 9042.02,-299.26 9051.56,-294.66"/>
+<polygon fill="none" stroke="midnightblue" points="6668.29,-387.74 6658.33,-391.33 6668.36,-394.74 6668.29,-387.74"/>
 </g>
 <!-- Node107 -->
 <g id="node107" class="node">
 <title>Node107</title>
 <g id="a_node107"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="8966.5,-243 8966.5,-311 9114.5,-311 9114.5,-243 8966.5,-243"/>
-<text text-anchor="start" x="8974.5" y="-299" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="9040.5" y="-288" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; WrapParamAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="8966.5,-281 9114.5,-281 "/>
-<text text-anchor="middle" x="9040.5" y="-269" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="8966.5,-262 9114.5,-262 "/>
-<text text-anchor="start" x="8974.5" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="9197,-226.5 9197,-294.5 9345,-294.5 9345,-226.5 9197,-226.5"/>
+<text text-anchor="start" x="9205" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="9271" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; WrapParamAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="9197,-264.5 9345,-264.5 "/>
+<text text-anchor="middle" x="9271" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="9197,-245.5 9345,-245.5 "/>
+<text text-anchor="start" x="9205" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node107 -->
 <g id="edge106" class="edge">
 <title>Node1&#45;&gt;Node107</title>
-<path fill="none" stroke="midnightblue" d="M6443.28,-418.98C6886.72,-416.22 8713.28,-400.51 8957.5,-328 8970.24,-324.22 8983.02,-318.01 8994.6,-311.23"/>
-<polygon fill="none" stroke="midnightblue" points="6443.04,-415.48 6433.07,-419.04 6443.09,-422.48 6443.04,-415.48"/>
+<path fill="none" stroke="midnightblue" d="M6668.59,-391.46C7102.55,-388.55 8941.03,-372.37 9188,-306 9197.95,-303.33 9208.03,-299.27 9217.57,-294.68"/>
+<polygon fill="none" stroke="midnightblue" points="6668.27,-387.96 6658.3,-391.52 6668.32,-394.96 6668.27,-387.96"/>
 </g>
 <!-- Node109 -->
 <g id="node109" class="node">
 <title>Node109</title>
 <g id="a_node109"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="9132.5,-243 9132.5,-311 9280.5,-311 9280.5,-243 9132.5,-243"/>
-<text text-anchor="start" x="9140.5" y="-299" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="9206.5" y="-288" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; TileAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="9132.5,-281 9280.5,-281 "/>
-<text text-anchor="middle" x="9206.5" y="-269" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="9132.5,-262 9280.5,-262 "/>
-<text text-anchor="start" x="9140.5" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="9363,-226.5 9363,-294.5 9511,-294.5 9511,-226.5 9363,-226.5"/>
+<text text-anchor="start" x="9371" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="9437" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; TileAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="9363,-264.5 9511,-264.5 "/>
+<text text-anchor="middle" x="9437" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="9363,-245.5 9511,-245.5 "/>
+<text text-anchor="start" x="9371" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node109 -->
 <g id="edge108" class="edge">
 <title>Node1&#45;&gt;Node109</title>
-<path fill="none" stroke="midnightblue" d="M6443.31,-419.2C6903.98,-417.39 8862.55,-405.18 9123.5,-328 9136.24,-324.23 9149.03,-318.03 9160.61,-311.25"/>
-<polygon fill="none" stroke="midnightblue" points="6443.02,-415.7 6433.03,-419.24 6443.05,-422.7 6443.02,-415.7"/>
+<path fill="none" stroke="midnightblue" d="M6668.11,-391.65C7117.86,-389.61 9090.06,-376.65 9354,-306 9363.95,-303.34 9374.03,-299.29 9383.57,-294.7"/>
+<polygon fill="none" stroke="midnightblue" points="6668.08,-388.15 6658.09,-391.7 6668.11,-395.15 6668.08,-388.15"/>
 </g>
 <!-- Node111 -->
 <g id="node111" class="node">
 <title>Node111</title>
 <g id="a_node111"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="9298.5,-243 9298.5,-311 9446.5,-311 9446.5,-243 9298.5,-243"/>
-<text text-anchor="start" x="9306.5" y="-299" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="9372.5" y="-288" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; StridedSliceAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="9298.5,-281 9446.5,-281 "/>
-<text text-anchor="middle" x="9372.5" y="-269" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="9298.5,-262 9446.5,-262 "/>
-<text text-anchor="start" x="9306.5" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="9529,-226.5 9529,-294.5 9677,-294.5 9677,-226.5 9529,-226.5"/>
+<text text-anchor="start" x="9537" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="9603" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; StridedSliceAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="9529,-264.5 9677,-264.5 "/>
+<text text-anchor="middle" x="9603" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="9529,-245.5 9677,-245.5 "/>
+<text text-anchor="start" x="9537" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node111 -->
 <g id="edge110" class="edge">
 <title>Node1&#45;&gt;Node111</title>
-<path fill="none" stroke="midnightblue" d="M6443.57,-419.4C6921.4,-418.49 9011.83,-409.84 9289.5,-328 9302.41,-324.2 9315.36,-317.89 9327.05,-311.01"/>
-<polygon fill="none" stroke="midnightblue" points="6443.25,-415.9 6433.26,-419.41 6443.26,-422.9 6443.25,-415.9"/>
+<path fill="none" stroke="midnightblue" d="M6668.19,-391.82C7134.24,-390.6 9239.17,-380.91 9520,-306 9529.95,-303.35 9540.03,-299.3 9549.58,-294.71"/>
+<polygon fill="none" stroke="midnightblue" points="6668.13,-388.32 6658.14,-391.85 6668.15,-395.32 6668.13,-388.32"/>
 </g>
 <!-- Node113 -->
 <g id="node113" class="node">
 <title>Node113</title>
 <g id="a_node113"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="9464.5,-243 9464.5,-311 9612.5,-311 9612.5,-243 9464.5,-243"/>
-<text text-anchor="start" x="9472.5" y="-299" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="9538.5" y="-288" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; SplitAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="9464.5,-281 9612.5,-281 "/>
-<text text-anchor="middle" x="9538.5" y="-269" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="9464.5,-262 9612.5,-262 "/>
-<text text-anchor="start" x="9472.5" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="9695,-226.5 9695,-294.5 9843,-294.5 9843,-226.5 9695,-226.5"/>
+<text text-anchor="start" x="9703" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="9769" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; SplitAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="9695,-264.5 9843,-264.5 "/>
+<text text-anchor="middle" x="9769" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="9695,-245.5 9843,-245.5 "/>
+<text text-anchor="start" x="9703" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node113 -->
 <g id="edge112" class="edge">
 <title>Node1&#45;&gt;Node113</title>
-<path fill="none" stroke="midnightblue" d="M6443.35,-419.57C6936.97,-419.53 9161,-414.54 9455.5,-328 9468.41,-324.21 9481.36,-317.9 9493.06,-311.02"/>
-<polygon fill="none" stroke="midnightblue" points="6443.06,-416.07 6433.06,-419.57 6443.06,-423.07 6443.06,-416.07"/>
+<path fill="none" stroke="midnightblue" d="M6668.19,-391.98C7149.98,-391.53 9388.23,-385.18 9686,-306 9696.11,-303.31 9706.36,-299.19 9716.03,-294.51"/>
+<polygon fill="none" stroke="midnightblue" points="6668.15,-388.48 6658.16,-391.99 6668.16,-395.48 6668.15,-388.48"/>
 </g>
 <!-- Node115 -->
 <g id="node115" class="node">
 <title>Node115</title>
 <g id="a_node115"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="9630.5,-243 9630.5,-311 9778.5,-311 9778.5,-243 9630.5,-243"/>
-<text text-anchor="start" x="9638.5" y="-299" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="9704.5" y="-288" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; RMSNormAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="9630.5,-281 9778.5,-281 "/>
-<text text-anchor="middle" x="9704.5" y="-269" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="9630.5,-262 9778.5,-262 "/>
-<text text-anchor="start" x="9638.5" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="9861,-226.5 9861,-294.5 10009,-294.5 10009,-226.5 9861,-226.5"/>
+<text text-anchor="start" x="9869" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="9935" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; RMSNormAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="9861,-264.5 10009,-264.5 "/>
+<text text-anchor="middle" x="9935" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="9861,-245.5 10009,-245.5 "/>
+<text text-anchor="start" x="9869" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node115 -->
 <g id="edge114" class="edge">
 <title>Node1&#45;&gt;Node115</title>
-<path fill="none" stroke="midnightblue" d="M6443.51,-419.73C6953.24,-420.52 9310.21,-419.22 9621.5,-328 9634.41,-324.22 9647.36,-317.91 9659.06,-311.04"/>
-<polygon fill="none" stroke="midnightblue" points="6443.25,-416.23 6433.25,-419.71 6443.24,-423.23 6443.25,-416.23"/>
+<path fill="none" stroke="midnightblue" d="M6668.56,-392.12C7166.45,-392.42 9537.35,-389.43 9852,-306 9862.11,-303.32 9872.36,-299.2 9882.04,-294.52"/>
+<polygon fill="none" stroke="midnightblue" points="6668.2,-388.62 6658.19,-392.11 6668.19,-395.62 6668.2,-388.62"/>
 </g>
 <!-- Node117 -->
 <g id="node117" class="node">
 <title>Node117</title>
 <g id="a_node117"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="9796.5,-243 9796.5,-311 9944.5,-311 9944.5,-243 9796.5,-243"/>
-<text text-anchor="start" x="9804.5" y="-299" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="9870.5" y="-288" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; QuantizeAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="9796.5,-281 9944.5,-281 "/>
-<text text-anchor="middle" x="9870.5" y="-269" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="9796.5,-262 9944.5,-262 "/>
-<text text-anchor="start" x="9804.5" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="10027,-226.5 10027,-294.5 10175,-294.5 10175,-226.5 10027,-226.5"/>
+<text text-anchor="start" x="10035" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="10101" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; QuantizeAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="10027,-264.5 10175,-264.5 "/>
+<text text-anchor="middle" x="10101" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="10027,-245.5 10175,-245.5 "/>
+<text text-anchor="start" x="10035" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node117 -->
 <g id="edge116" class="edge">
 <title>Node1&#45;&gt;Node117</title>
-<path fill="none" stroke="midnightblue" d="M6443.28,-419.87C6967.92,-421.47 9459.32,-423.93 9787.5,-328 9800.42,-324.22 9813.37,-317.93 9825.07,-311.05"/>
-<polygon fill="none" stroke="midnightblue" points="6443.11,-416.37 6433.1,-419.84 6443.09,-423.37 6443.11,-416.37"/>
+<path fill="none" stroke="midnightblue" d="M6668.61,-392.24C7181.56,-393.27 9686.38,-393.71 10018,-306 10028.12,-303.32 10038.36,-299.21 10048.04,-294.53"/>
+<polygon fill="none" stroke="midnightblue" points="6668.31,-388.74 6658.3,-392.22 6668.29,-395.74 6668.31,-388.74"/>
 </g>
 <!-- Node119 -->
 <g id="node119" class="node">
 <title>Node119</title>
 <g id="a_node119"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="9962.5,-243 9962.5,-311 10110.5,-311 10110.5,-243 9962.5,-243"/>
-<text text-anchor="start" x="9970.5" y="-299" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="10036.5" y="-288" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; PReluAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="9962.5,-281 10110.5,-281 "/>
-<text text-anchor="middle" x="10036.5" y="-269" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="9962.5,-262 10110.5,-262 "/>
-<text text-anchor="start" x="9970.5" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="10193,-226.5 10193,-294.5 10341,-294.5 10341,-226.5 10193,-226.5"/>
+<text text-anchor="start" x="10201" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="10267" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; PReluAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="10193,-264.5 10341,-264.5 "/>
+<text text-anchor="middle" x="10267" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="10193,-245.5 10341,-245.5 "/>
+<text text-anchor="start" x="10201" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node119 -->
 <g id="edge118" class="edge">
 <title>Node1&#45;&gt;Node119</title>
-<path fill="none" stroke="midnightblue" d="M6443.22,-418.44C7000.25,-412.18 9780.4,-378.48 9953.5,-328 9966.42,-324.23 9979.37,-317.94 9991.07,-311.06"/>
-<polygon fill="none" stroke="midnightblue" points="6443.17,-414.94 6433.21,-418.56 6443.25,-421.94 6443.17,-414.94"/>
+<path fill="none" stroke="midnightblue" d="M6668.32,-392.36C7195.21,-394.07 9835.31,-398.01 10184,-306 10194.12,-303.33 10204.36,-299.21 10214.04,-294.54"/>
+<polygon fill="none" stroke="midnightblue" points="6668.13,-388.86 6658.11,-392.32 6668.1,-395.86 6668.13,-388.86"/>
 </g>
 <!-- Node121 -->
 <g id="node121" class="node">
 <title>Node121</title>
 <g id="a_node121"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="10128.5,-243 10128.5,-311 10276.5,-311 10276.5,-243 10128.5,-243"/>
-<text text-anchor="start" x="10136.5" y="-299" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="10202.5" y="-288" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; Conv2DAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="10128.5,-281 10276.5,-281 "/>
-<text text-anchor="middle" x="10202.5" y="-269" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="10128.5,-262 10276.5,-262 "/>
-<text text-anchor="start" x="10136.5" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="10359,-226.5 10359,-294.5 10507,-294.5 10507,-226.5 10359,-226.5"/>
+<text text-anchor="start" x="10367" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="10433" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; Conv2DAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="10359,-264.5 10507,-264.5 "/>
+<text text-anchor="middle" x="10433" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="10359,-245.5 10507,-245.5 "/>
+<text text-anchor="start" x="10367" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node121 -->
 <g id="edge120" class="edge">
 <title>Node1&#45;&gt;Node121</title>
-<path fill="none" stroke="midnightblue" d="M6443.46,-418.55C7016.19,-412.78 9937.97,-380.83 10119.5,-328 10132.42,-324.24 10145.37,-317.95 10157.07,-311.07"/>
-<polygon fill="none" stroke="midnightblue" points="6443.14,-415.06 6433.18,-418.66 6443.21,-422.06 6443.14,-415.06"/>
+<path fill="none" stroke="midnightblue" d="M6668.45,-391.12C7227.55,-385.59 10166.59,-354.29 10350,-306 10360.12,-303.34 10370.37,-299.22 10380.04,-294.55"/>
+<polygon fill="none" stroke="midnightblue" points="6668.39,-387.62 6658.42,-391.22 6668.46,-394.62 6668.39,-387.62"/>
 </g>
 <!-- Node123 -->
 <g id="node123" class="node">
 <title>Node123</title>
 <g id="a_node123"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="10294.5,-243 10294.5,-311 10442.5,-311 10442.5,-243 10294.5,-243"/>
-<text text-anchor="start" x="10302.5" y="-299" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="10368.5" y="-288" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; SortAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="10294.5,-281 10442.5,-281 "/>
-<text text-anchor="middle" x="10368.5" y="-269" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="10294.5,-262 10442.5,-262 "/>
-<text text-anchor="start" x="10302.5" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="10525,-226.5 10525,-294.5 10673,-294.5 10673,-226.5 10525,-226.5"/>
+<text text-anchor="start" x="10533" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="10599" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; SortAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="10525,-264.5 10673,-264.5 "/>
+<text text-anchor="middle" x="10599" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="10525,-245.5 10673,-245.5 "/>
+<text text-anchor="start" x="10533" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node123 -->
 <g id="edge122" class="edge">
 <title>Node1&#45;&gt;Node123</title>
-<path fill="none" stroke="midnightblue" d="M6443.47,-418.66C7031,-413.36 10095.51,-383.19 10285.5,-328 10298.42,-324.25 10311.38,-317.96 10323.08,-311.08"/>
-<polygon fill="none" stroke="midnightblue" points="6443.31,-415.16 6433.34,-418.75 6443.37,-422.16 6443.31,-415.16"/>
+<path fill="none" stroke="midnightblue" d="M6668.29,-391.21C7241.33,-386.12 10324.04,-356.45 10516,-306 10526.12,-303.34 10536.37,-299.23 10546.05,-294.56"/>
+<polygon fill="none" stroke="midnightblue" points="6667.99,-387.72 6658.02,-391.3 6668.05,-394.71 6667.99,-387.72"/>
 </g>
 <!-- Node125 -->
 <g id="node125" class="node">
 <title>Node125</title>
 <g id="a_node125"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="10460.5,-243 10460.5,-311 10608.5,-311 10608.5,-243 10460.5,-243"/>
-<text text-anchor="start" x="10468.5" y="-299" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="10534.5" y="-288" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; Conv1DAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="10460.5,-281 10608.5,-281 "/>
-<text text-anchor="middle" x="10534.5" y="-269" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="10460.5,-262 10608.5,-262 "/>
-<text text-anchor="start" x="10468.5" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="10691,-226.5 10691,-294.5 10839,-294.5 10839,-226.5 10691,-226.5"/>
+<text text-anchor="start" x="10699" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="10765" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; Conv1DAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="10691,-264.5 10839,-264.5 "/>
+<text text-anchor="middle" x="10765" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="10691,-245.5 10839,-245.5 "/>
+<text text-anchor="start" x="10699" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node125 -->
 <g id="edge124" class="edge">
 <title>Node1&#45;&gt;Node125</title>
-<path fill="none" stroke="midnightblue" d="M6443.64,-418.75C7046.11,-413.91 10253.05,-385.55 10451.5,-328 10464.43,-324.25 10477.38,-317.96 10489.08,-311.09"/>
-<polygon fill="none" stroke="midnightblue" points="6443.24,-415.25 6433.26,-418.83 6443.29,-422.25 6443.24,-415.25"/>
+<path fill="none" stroke="midnightblue" d="M6668.38,-391.3C7255.7,-386.62 10481.5,-358.6 10682,-306 10692.12,-303.34 10702.37,-299.24 10712.05,-294.57"/>
+<polygon fill="none" stroke="midnightblue" points="6668.24,-387.8 6658.27,-391.38 6668.3,-394.8 6668.24,-387.8"/>
 </g>
 <!-- Node127 -->
 <g id="node127" class="node">
 <title>Node127</title>
 <g id="a_node127"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="10626.5,-243 10626.5,-311 10774.5,-311 10774.5,-243 10626.5,-243"/>
-<text text-anchor="start" x="10634.5" y="-299" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="10700.5" y="-288" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; BucketizeAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="10626.5,-281 10774.5,-281 "/>
-<text text-anchor="middle" x="10700.5" y="-269" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="10626.5,-262 10774.5,-262 "/>
-<text text-anchor="start" x="10634.5" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="10857,-226.5 10857,-294.5 11005,-294.5 11005,-226.5 10857,-226.5"/>
+<text text-anchor="start" x="10865" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="10931" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; BucketizeAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="10857,-264.5 11005,-264.5 "/>
+<text text-anchor="middle" x="10931" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="10857,-245.5 11005,-245.5 "/>
+<text text-anchor="start" x="10865" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node127 -->
 <g id="edge126" class="edge">
 <title>Node1&#45;&gt;Node127</title>
-<path fill="none" stroke="midnightblue" d="M6443.62,-418.84C7060.22,-414.45 10410.57,-387.91 10617.5,-328 10630.43,-324.26 10643.38,-317.97 10655.08,-311.1"/>
-<polygon fill="none" stroke="midnightblue" points="6443.41,-415.34 6433.44,-418.91 6443.46,-422.34 6443.41,-415.34"/>
+<path fill="none" stroke="midnightblue" d="M6668.68,-391.37C7270.58,-387.09 10638.99,-360.74 10848,-306 10858.12,-303.35 10868.37,-299.24 10878.05,-294.57"/>
+<polygon fill="none" stroke="midnightblue" points="6668.3,-387.87 6658.32,-391.44 6668.35,-394.87 6668.3,-387.87"/>
 </g>
 <!-- Node129 -->
 <g id="node129" class="node">
 <title>Node129</title>
 <g id="a_node129"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="10792.5,-243 10792.5,-311 10940.5,-311 10940.5,-243 10792.5,-243"/>
-<text text-anchor="start" x="10800.5" y="-299" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="10866.5" y="-288" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; ArgsortAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="10792.5,-281 10940.5,-281 "/>
-<text text-anchor="middle" x="10866.5" y="-269" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="10792.5,-262 10940.5,-262 "/>
-<text text-anchor="start" x="10800.5" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="11023,-226.5 11023,-294.5 11171,-294.5 11171,-226.5 11023,-226.5"/>
+<text text-anchor="start" x="11031" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="11097" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; ArgsortAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="11023,-264.5 11171,-264.5 "/>
+<text text-anchor="middle" x="11097" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="11023,-245.5 11171,-245.5 "/>
+<text text-anchor="start" x="11031" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node129 -->
 <g id="edge128" class="edge">
 <title>Node1&#45;&gt;Node129</title>
-<path fill="none" stroke="midnightblue" d="M6443.83,-418.92C7074.92,-414.95 10568.1,-390.27 10783.5,-328 10796.43,-324.26 10809.38,-317.98 10821.08,-311.1"/>
-<polygon fill="none" stroke="midnightblue" points="6443.39,-415.42 6433.41,-418.98 6443.43,-422.42 6443.39,-415.42"/>
+<path fill="none" stroke="midnightblue" d="M6668.31,-391.44C7282.73,-387.56 10796.39,-362.9 11014,-306 11024.12,-303.35 11034.37,-299.25 11044.05,-294.58"/>
+<polygon fill="none" stroke="midnightblue" points="6668.16,-387.95 6658.18,-391.51 6668.21,-394.95 6668.16,-387.95"/>
 </g>
 <!-- Node131 -->
 <g id="node131" class="node">
 <title>Node131</title>
 <g id="a_node131"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="10958.5,-243 10958.5,-311 11106.5,-311 11106.5,-243 10958.5,-243"/>
-<text text-anchor="start" x="10966.5" y="-299" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="11032.5" y="-288" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; StatisticalAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="10958.5,-281 11106.5,-281 "/>
-<text text-anchor="middle" x="11032.5" y="-269" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="10958.5,-262 11106.5,-262 "/>
-<text text-anchor="start" x="10966.5" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="11189,-226.5 11189,-294.5 11337,-294.5 11337,-226.5 11189,-226.5"/>
+<text text-anchor="start" x="11197" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="11263" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; StatisticalAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="11189,-264.5 11337,-264.5 "/>
+<text text-anchor="middle" x="11263" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="11189,-245.5 11337,-245.5 "/>
+<text text-anchor="start" x="11197" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node131 -->
 <g id="edge130" class="edge">
 <title>Node1&#45;&gt;Node131</title>
-<path fill="none" stroke="midnightblue" d="M6443.35,-418.99C7086.82,-415.46 10725.55,-392.65 10949.5,-328 10962.43,-324.27 10975.38,-317.98 10987.08,-311.11"/>
-<polygon fill="none" stroke="midnightblue" points="6443.17,-415.5 6433.19,-419.05 6443.21,-422.5 6443.17,-415.5"/>
+<path fill="none" stroke="midnightblue" d="M6668.7,-391.51C7297.49,-387.99 10953.87,-365.05 11180,-306 11190.12,-303.36 11200.37,-299.25 11210.05,-294.59"/>
+<polygon fill="none" stroke="midnightblue" points="6668.32,-388.01 6658.34,-391.57 6668.36,-395.01 6668.32,-388.01"/>
 </g>
 <!-- Node133 -->
 <g id="node133" class="node">
 <title>Node133</title>
 <g id="a_node133"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="11124.5,-243 11124.5,-311 11272.5,-311 11272.5,-243 11124.5,-243"/>
-<text text-anchor="start" x="11132.5" y="-299" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="11198.5" y="-288" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; LayoutTransformAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="11124.5,-281 11272.5,-281 "/>
-<text text-anchor="middle" x="11198.5" y="-269" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="11124.5,-262 11272.5,-262 "/>
-<text text-anchor="start" x="11132.5" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="11355,-226.5 11355,-294.5 11503,-294.5 11503,-226.5 11355,-226.5"/>
+<text text-anchor="start" x="11363" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="11429" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; LayoutTransformAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="11355,-264.5 11503,-264.5 "/>
+<text text-anchor="middle" x="11429" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="11355,-245.5 11503,-245.5 "/>
+<text text-anchor="start" x="11363" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node133 -->
 <g id="edge132" class="edge">
 <title>Node1&#45;&gt;Node133</title>
-<path fill="none" stroke="midnightblue" d="M6443.41,-419.06C7100.45,-415.93 10883.05,-395.01 11115.5,-328 11128.43,-324.27 11141.39,-317.99 11153.09,-311.12"/>
-<polygon fill="none" stroke="midnightblue" points="6443.02,-415.57 6433.04,-419.11 6443.06,-422.57 6443.02,-415.57"/>
+<path fill="none" stroke="midnightblue" d="M6668.44,-391.57C7309.51,-388.42 11111.26,-367.21 11346,-306 11356.13,-303.36 11366.38,-299.26 11376.06,-294.59"/>
+<polygon fill="none" stroke="midnightblue" points="6668.32,-388.07 6658.33,-391.62 6668.35,-395.07 6668.32,-388.07"/>
 </g>
 <!-- Node135 -->
 <g id="node135" class="node">
 <title>Node135</title>
 <g id="a_node135"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="11291,-243 11291,-311 11440,-311 11440,-243 11291,-243"/>
-<text text-anchor="start" x="11299" y="-299" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="11365.5" y="-288" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; Conv1DTransposeAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="11291,-281 11440,-281 "/>
-<text text-anchor="middle" x="11365.5" y="-269" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="11291,-262 11440,-262 "/>
-<text text-anchor="start" x="11299" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="11521.5,-226.5 11521.5,-294.5 11670.5,-294.5 11670.5,-226.5 11521.5,-226.5"/>
+<text text-anchor="start" x="11529.5" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="11596" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; Conv1DTransposeAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="11521.5,-264.5 11670.5,-264.5 "/>
+<text text-anchor="middle" x="11596" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="11521.5,-245.5 11670.5,-245.5 "/>
+<text text-anchor="start" x="11529.5" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node135 -->
 <g id="edge134" class="edge">
 <title>Node1&#45;&gt;Node135</title>
-<path fill="none" stroke="midnightblue" d="M6443.32,-419.12C7113.27,-416.28 11040.35,-396.75 11281.5,-328 11294.56,-324.28 11307.66,-318 11319.5,-311.13"/>
-<polygon fill="none" stroke="midnightblue" points="6443.21,-415.62 6433.22,-419.16 6443.24,-422.62 6443.21,-415.62"/>
+<path fill="none" stroke="midnightblue" d="M6668.48,-391.62C7322.45,-388.73 11268.53,-368.76 11512,-306 11522.23,-303.36 11532.59,-299.26 11542.38,-294.6"/>
+<polygon fill="none" stroke="midnightblue" points="6668.16,-388.12 6658.17,-391.66 6668.19,-395.12 6668.16,-388.12"/>
 </g>
 <!-- Node137 -->
 <g id="node137" class="node">
 <title>Node137</title>
 <g id="a_node137"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="11458,-243 11458,-311 11607,-311 11607,-243 11458,-243"/>
-<text text-anchor="start" x="11466" y="-299" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="11532.5" y="-288" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; Conv2DTransposeAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="11458,-281 11607,-281 "/>
-<text text-anchor="middle" x="11532.5" y="-269" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="11458,-262 11607,-262 "/>
-<text text-anchor="start" x="11466" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="11688.5,-226.5 11688.5,-294.5 11837.5,-294.5 11837.5,-226.5 11688.5,-226.5"/>
+<text text-anchor="start" x="11696.5" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="11763" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; Conv2DTransposeAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="11688.5,-264.5 11837.5,-264.5 "/>
+<text text-anchor="middle" x="11763" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="11688.5,-245.5 11837.5,-245.5 "/>
+<text text-anchor="start" x="11696.5" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node137 -->
 <g id="edge136" class="edge">
 <title>Node1&#45;&gt;Node137</title>
-<path fill="none" stroke="midnightblue" d="M6443.06,-419.18C7125.26,-416.72 11198.74,-399.12 11448.5,-328 11461.56,-324.28 11474.66,-318 11486.5,-311.13"/>
-<polygon fill="none" stroke="midnightblue" points="6443.01,-415.68 6433.02,-419.21 6443.04,-422.68 6443.01,-415.68"/>
+<path fill="none" stroke="midnightblue" d="M6668.15,-391.67C7333.77,-389.14 11426.85,-370.93 11679,-306 11689.23,-303.37 11699.59,-299.27 11709.39,-294.6"/>
+<polygon fill="none" stroke="midnightblue" points="6668.12,-388.17 6658.13,-391.71 6668.15,-395.17 6668.12,-388.17"/>
 </g>
 <!-- Node139 -->
 <g id="node139" class="node">
 <title>Node139</title>
 <g id="a_node139"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="11625.5,-243 11625.5,-311 11773.5,-311 11773.5,-243 11625.5,-243"/>
-<text text-anchor="start" x="11633.5" y="-299" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="11699.5" y="-288" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; PermuteDimsAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="11625.5,-281 11773.5,-281 "/>
-<text text-anchor="middle" x="11699.5" y="-269" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="11625.5,-262 11773.5,-262 "/>
-<text text-anchor="start" x="11633.5" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="11856,-226.5 11856,-294.5 12004,-294.5 12004,-226.5 11856,-226.5"/>
+<text text-anchor="start" x="11864" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="11930" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; PermuteDimsAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="11856,-264.5 12004,-264.5 "/>
+<text text-anchor="middle" x="11930" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="11856,-245.5 12004,-245.5 "/>
+<text text-anchor="start" x="11864" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node139 -->
 <g id="edge138" class="edge">
 <title>Node1&#45;&gt;Node139</title>
-<path fill="none" stroke="midnightblue" d="M6443.44,-419.23C7139.59,-417.14 11357.2,-401.47 11615.5,-328 11628.56,-324.29 11641.66,-318.01 11653.5,-311.14"/>
-<polygon fill="none" stroke="midnightblue" points="6443.19,-415.73 6433.2,-419.26 6443.21,-422.73 6443.19,-415.73"/>
+<path fill="none" stroke="midnightblue" d="M6668.43,-391.72C7347.36,-389.51 11585.23,-373.07 11846,-306 11856.23,-303.37 11866.59,-299.27 11876.39,-294.61"/>
+<polygon fill="none" stroke="midnightblue" points="6668.2,-388.22 6658.21,-391.76 6668.23,-395.22 6668.2,-388.22"/>
 </g>
 <!-- Node141 -->
 <g id="node141" class="node">
 <title>Node141</title>
 <g id="a_node141"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="11791.5,-243 11791.5,-311 11939.5,-311 11939.5,-243 11791.5,-243"/>
-<text text-anchor="start" x="11799.5" y="-299" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="11865.5" y="-288" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; GroupNormAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="11791.5,-281 11939.5,-281 "/>
-<text text-anchor="middle" x="11865.5" y="-269" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="11791.5,-262 11939.5,-262 "/>
-<text text-anchor="start" x="11799.5" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="12022,-226.5 12022,-294.5 12170,-294.5 12170,-226.5 12022,-226.5"/>
+<text text-anchor="start" x="12030" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="12096" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; GroupNormAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="12022,-264.5 12170,-264.5 "/>
+<text text-anchor="middle" x="12096" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="12022,-245.5 12170,-245.5 "/>
+<text text-anchor="start" x="12030" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node141 -->
 <g id="edge140" class="edge">
 <title>Node1&#45;&gt;Node141</title>
-<path fill="none" stroke="midnightblue" d="M6443.42,-419.3C7152.16,-417.67 11515.81,-404.55 11782.5,-328 11795.44,-324.29 11808.39,-318.01 11820.09,-311.14"/>
-<polygon fill="none" stroke="midnightblue" points="6443.24,-415.8 6433.25,-419.32 6443.26,-422.8 6443.24,-415.8"/>
+<path fill="none" stroke="midnightblue" d="M6668.32,-391.78C7359.17,-389.99 11743.74,-375.9 12013,-306 12023.13,-303.37 12033.38,-299.27 12043.06,-294.61"/>
+<polygon fill="none" stroke="midnightblue" points="6668.16,-388.28 6658.17,-391.81 6668.18,-395.28 6668.16,-388.28"/>
 </g>
 <!-- Node143 -->
 <g id="node143" class="node">
 <title>Node143</title>
 <g id="a_node143"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="11957.5,-243 11957.5,-311 12105.5,-311 12105.5,-243 11957.5,-243"/>
-<text text-anchor="start" x="11965.5" y="-299" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="12031.5" y="-288" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; GatherNDAttrs &gt;</text>
-<polyline fill="none" stroke="black" points="11957.5,-281 12105.5,-281 "/>
-<text text-anchor="middle" x="12031.5" y="-269" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="11957.5,-262 12105.5,-262 "/>
-<text text-anchor="start" x="11965.5" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="12188,-226.5 12188,-294.5 12336,-294.5 12336,-226.5 12188,-226.5"/>
+<text text-anchor="start" x="12196" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="12262" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; GatherNDAttrs &gt;</text>
+<polyline fill="none" stroke="black" points="12188,-264.5 12336,-264.5 "/>
+<text text-anchor="middle" x="12262" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="12188,-245.5 12336,-245.5 "/>
+<text text-anchor="start" x="12196" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node143 -->
 <g id="edge142" class="edge">
 <title>Node1&#45;&gt;Node143</title>
-<path fill="none" stroke="midnightblue" d="M6443.23,-419.35C7163.75,-418.07 11673.26,-406.93 11948.5,-328 11961.44,-324.29 11974.39,-318.02 11986.09,-311.14"/>
-<polygon fill="none" stroke="midnightblue" points="6443.15,-415.85 6433.16,-419.37 6443.16,-422.85 6443.15,-415.85"/>
+<path fill="none" stroke="midnightblue" d="M6668.33,-391.83C7371.21,-390.35 11901.14,-378.06 12179,-306 12189.13,-303.37 12199.38,-299.28 12209.06,-294.61"/>
+<polygon fill="none" stroke="midnightblue" points="6668.25,-388.33 6658.26,-391.85 6668.27,-395.33 6668.25,-388.33"/>
 </g>
 <!-- Node145 -->
 <g id="node145" class="node">
 <title>Node145</title>
 <g id="a_node145"><a xlink:href="classtvm_1_1AttrsNodeReflAdapter.html" target="_top" xlink:title="Adapter for AttrsNode with the new reflection API.">
-<polygon fill="white" stroke="black" points="12123.5,-243 12123.5,-311 12271.5,-311 12271.5,-243 12123.5,-243"/>
-<text text-anchor="start" x="12131.5" y="-299" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
-<text text-anchor="middle" x="12197.5" y="-288" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; DerivedType &gt;</text>
-<polyline fill="none" stroke="black" points="12123.5,-281 12271.5,-281 "/>
-<text text-anchor="middle" x="12197.5" y="-269" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="12123.5,-262 12271.5,-262 "/>
-<text text-anchor="start" x="12131.5" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<polygon fill="white" stroke="black" points="12354,-226.5 12354,-294.5 12502,-294.5 12502,-226.5 12354,-226.5"/>
+<text text-anchor="start" x="12362" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::AttrsNodeReflAdapter</text>
+<text text-anchor="middle" x="12428" y="-271.5" font-family="Helvetica,sans-Serif" font-size="10.00">&lt; DerivedType &gt;</text>
+<polyline fill="none" stroke="black" points="12354,-264.5 12502,-264.5 "/>
+<text text-anchor="middle" x="12428" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="12354,-245.5 12502,-245.5 "/>
+<text text-anchor="start" x="12362" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node145 -->
 <g id="edge144" class="edge">
 <title>Node1&#45;&gt;Node145</title>
-<path fill="none" stroke="midnightblue" d="M6443.47,-419.4C7176.92,-418.46 11830.75,-409.3 12114.5,-328 12127.44,-324.29 12140.39,-318.02 12152.1,-311.15"/>
-<polygon fill="none" stroke="midnightblue" points="6443.21,-415.9 6433.22,-419.41 6443.22,-422.9 6443.21,-415.9"/>
+<path fill="none" stroke="midnightblue" d="M6668.48,-391.87C7383.68,-390.7 12058.55,-380.22 12345,-306 12355.13,-303.38 12365.38,-299.28 12375.06,-294.62"/>
+<polygon fill="none" stroke="midnightblue" points="6668.23,-388.37 6658.24,-391.89 6668.24,-395.37 6668.23,-388.37"/>
 </g>
 <!-- Node146 -->
 <g id="node146" class="node">
 <title>Node146</title>
 <g id="a_node146"><a xlink:href="classtvm_1_1DictAttrsNode.html" target="_top" xlink:title="Specialized attribute type that is backed by a map. The DictAttrsNode implements the Attrs behavior,...">
-<polygon fill="white" stroke="black" points="12289.5,-226.5 12289.5,-327.5 12465.5,-327.5 12465.5,-226.5 12289.5,-226.5"/>
-<text text-anchor="middle" x="12377.5" y="-315.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::DictAttrsNode</text>
-<polyline fill="none" stroke="black" points="12289.5,-308.5 12465.5,-308.5 "/>
-<text text-anchor="start" x="12297.5" y="-296.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ dict</text>
-<text text-anchor="start" x="12297.5" y="-285.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
-<polyline fill="none" stroke="black" points="12289.5,-278.5 12465.5,-278.5 "/>
-<text text-anchor="start" x="12297.5" y="-266.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
-<text text-anchor="start" x="12297.5" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DECLARE_FINAL_OBJECT</text>
-<text text-anchor="start" x="12297.5" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO()</text>
-<text text-anchor="start" x="12297.5" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
+<polygon fill="white" stroke="black" points="12520,-215.5 12520,-305.5 12682,-305.5 12682,-215.5 12520,-215.5"/>
+<text text-anchor="middle" x="12601" y="-293.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::DictAttrsNode</text>
+<polyline fill="none" stroke="black" points="12520,-286.5 12682,-286.5 "/>
+<text text-anchor="start" x="12528" y="-274.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ dict</text>
+<polyline fill="none" stroke="black" points="12520,-267.5 12682,-267.5 "/>
+<text text-anchor="start" x="12528" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InitByPackedArgs()</text>
+<text text-anchor="start" x="12528" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="12528" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
+<text text-anchor="start" x="12528" y="-222.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
 </a>
 </g>
 </g>
 <!-- Node1&#45;&gt;Node146 -->
 <g id="edge145" class="edge">
 <title>Node1&#45;&gt;Node146</title>
-<path fill="none" stroke="midnightblue" d="M6443.27,-419.27C7187.86,-417.32 11985.57,-401.95 12280.5,-328 12283.44,-327.26 12286.39,-326.42 12289.34,-325.49"/>
-<polygon fill="none" stroke="midnightblue" points="6443.12,-415.77 6433.12,-419.29 6443.13,-422.77 6443.12,-415.77"/>
+<path fill="none" stroke="midnightblue" d="M6668.22,-391.83C7394.13,-390.3 12214.69,-377.52 12511,-306 12513.97,-305.28 12516.95,-304.46 12519.93,-303.54"/>
+<polygon fill="none" stroke="midnightblue" points="6668.08,-388.33 6658.09,-391.85 6668.1,-395.33 6668.08,-388.33"/>
 </g>
 <!-- Node2 -->
 <g id="node2" class="node">
 <title>Node2</title>
 <g id="a_node2"><a xlink:title=" ">
-<polygon fill="white" stroke="#bfbfbf" points="6322.5,-513.5 6322.5,-570.5 6370.5,-570.5 6370.5,-513.5 6322.5,-513.5"/>
-<text text-anchor="middle" x="6346.5" y="-558.5" font-family="Helvetica,sans-Serif" font-size="10.00">Object</text>
-<polyline fill="none" stroke="#bfbfbf" points="6322.5,-551.5 6370.5,-551.5 "/>
-<text text-anchor="middle" x="6346.5" y="-539.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="#bfbfbf" points="6322.5,-532.5 6370.5,-532.5 "/>
-<text text-anchor="middle" x="6346.5" y="-520.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polygon fill="white" stroke="#bfbfbf" points="6553,-480.5 6553,-537.5 6601,-537.5 6601,-480.5 6553,-480.5"/>
+<text text-anchor="middle" x="6577" y="-525.5" font-family="Helvetica,sans-Serif" font-size="10.00">Object</text>
+<polyline fill="none" stroke="#bfbfbf" points="6553,-518.5 6601,-518.5 "/>
+<text text-anchor="middle" x="6577" y="-506.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="#bfbfbf" points="6553,-499.5 6601,-499.5 "/>
+<text text-anchor="middle" x="6577" y="-487.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
 </a>
 </g>
 </g>
 <!-- Node2&#45;&gt;Node1 -->
 <g id="edge1" class="edge">
 <title>Node2&#45;&gt;Node1</title>
-<path fill="none" stroke="midnightblue" d="M6346.5,-503.11C6346.5,-494.75 6346.5,-485.73 6346.5,-476.83"/>
-<polygon fill="none" stroke="midnightblue" points="6343,-503.28 6346.5,-513.28 6350,-503.28 6343,-503.28"/>
+<path fill="none" stroke="midnightblue" d="M6577,-470.35C6577,-461.8 6577,-452.58 6577,-443.61"/>
+<polygon fill="none" stroke="midnightblue" points="6573.5,-470.4 6577,-480.4 6580.5,-470.4 6573.5,-470.4"/>
 </g>
 <!-- Node4 -->
 <g id="node4" class="node">
 <title>Node4</title>
 <g id="a_node4"><a xlink:href="structtvm_1_1relax_1_1SliceScatterAttrs.html" target="_top" xlink:title="Attributes used in slice_scatter operator.">
-<polygon fill="white" stroke="black" points="0,-44.5 0,-145.5 155,-145.5 155,-44.5 0,-44.5"/>
-<text text-anchor="start" x="8" y="-133.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::SliceScatter</text>
-<text text-anchor="middle" x="77.5" y="-122.5" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs</text>
-<polyline fill="none" stroke="black" points="0,-115.5 155,-115.5 "/>
-<text text-anchor="start" x="8" y="-103.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ axis</text>
-<text text-anchor="start" x="8" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
-<polyline fill="none" stroke="black" points="0,-85.5 155,-85.5 "/>
-<text text-anchor="start" x="8" y="-73.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_FINAL</text>
-<text text-anchor="start" x="8" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00">_OBJECT_INFO()</text>
+<polygon fill="white" stroke="black" points="0,-44.5 0,-134.5 162,-134.5 162,-44.5 0,-44.5"/>
+<text text-anchor="start" x="8" y="-122.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::SliceScatter</text>
+<text text-anchor="middle" x="81" y="-111.5" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs</text>
+<polyline fill="none" stroke="black" points="0,-104.5 162,-104.5 "/>
+<text text-anchor="start" x="8" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ axis</text>
+<polyline fill="none" stroke="black" points="0,-85.5 162,-85.5 "/>
+<text text-anchor="start" x="8" y="-73.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="8" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
 <text text-anchor="start" x="8" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
 </a>
 </g>
@@ -1529,1696 +1526,1626 @@
 <!-- Node3&#45;&gt;Node4 -->
 <g id="edge3" class="edge">
 <title>Node3&#45;&gt;Node4</title>
-<path fill="none" stroke="midnightblue" d="M83.59,-232.97C82.42,-206.76 80.93,-173.16 79.71,-145.8"/>
-<polygon fill="none" stroke="midnightblue" points="80.09,-233.15 84.03,-242.99 87.09,-232.84 80.09,-233.15"/>
+<path fill="none" stroke="midnightblue" d="M91.38,-215.84C89.32,-190.91 86.74,-159.73 84.66,-134.71"/>
+<polygon fill="none" stroke="midnightblue" points="87.92,-216.43 92.23,-226.11 94.9,-215.86 87.92,-216.43"/>
 </g>
 <!-- Node6 -->
 <g id="node6" class="node">
 <title>Node6</title>
 <g id="a_node6"><a xlink:href="structtvm_1_1relax_1_1ScatterCollectiveAttrs.html" target="_top" xlink:title="Attributes used in scatter operators.">
-<polygon fill="white" stroke="black" points="173.5,-39 173.5,-151 329.5,-151 329.5,-39 173.5,-39"/>
-<text text-anchor="start" x="181.5" y="-139" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::ScatterCollective</text>
-<text text-anchor="middle" x="251.5" y="-128" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs</text>
-<polyline fill="none" stroke="black" points="173.5,-121 329.5,-121 "/>
-<text text-anchor="start" x="181.5" y="-109" font-family="Helvetica,sans-Serif" font-size="10.00">+ num_workers</text>
-<text text-anchor="start" x="181.5" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00">+ axis</text>
-<text text-anchor="start" x="181.5" y="-87" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
-<polyline fill="none" stroke="black" points="173.5,-80 329.5,-80 "/>
-<text text-anchor="start" x="181.5" y="-68" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_FINAL</text>
-<text text-anchor="start" x="181.5" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00">_OBJECT_INFO()</text>
-<text text-anchor="start" x="181.5" y="-46" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
+<polygon fill="white" stroke="black" points="180,-39 180,-140 342,-140 342,-39 180,-39"/>
+<text text-anchor="start" x="188" y="-128" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::ScatterCollective</text>
+<text text-anchor="middle" x="261" y="-117" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs</text>
+<polyline fill="none" stroke="black" points="180,-110 342,-110 "/>
+<text text-anchor="start" x="188" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00">+ num_workers</text>
+<text text-anchor="start" x="188" y="-87" font-family="Helvetica,sans-Serif" font-size="10.00">+ axis</text>
+<polyline fill="none" stroke="black" points="180,-80 342,-80 "/>
+<text text-anchor="start" x="188" y="-68" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="188" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
+<text text-anchor="start" x="188" y="-46" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
 </a>
 </g>
 </g>
 <!-- Node5&#45;&gt;Node6 -->
 <g id="edge5" class="edge">
 <title>Node5&#45;&gt;Node6</title>
-<path fill="none" stroke="midnightblue" d="M254.54,-232.9C254,-208.36 253.31,-177.36 252.72,-151.07"/>
-<polygon fill="none" stroke="midnightblue" points="251.04,-233.07 254.77,-242.99 258.04,-232.91 251.04,-233.07"/>
+<path fill="none" stroke="midnightblue" d="M266.19,-215.89C265.23,-192.73 264.05,-164.17 263.06,-140.16"/>
+<polygon fill="none" stroke="midnightblue" points="262.71,-216.26 266.62,-226.11 269.7,-215.97 262.71,-216.26"/>
 </g>
 <!-- Node8 -->
 <g id="node8" class="node">
 <title>Node8</title>
 <g id="a_node8"><a xlink:href="structtvm_1_1relax_1_1HintOnDeviceAttrs.html" target="_top" xlink:title="Attributes used in hint_on_device.">
-<polygon fill="white" stroke="black" points="348,-39 348,-151 503,-151 503,-39 348,-39"/>
-<text text-anchor="start" x="356" y="-139" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::HintOnDevice</text>
-<text text-anchor="middle" x="425.5" y="-128" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs</text>
-<polyline fill="none" stroke="black" points="348,-121 503,-121 "/>
-<text text-anchor="start" x="356" y="-109" font-family="Helvetica,sans-Serif" font-size="10.00">+ device_type</text>
-<text text-anchor="start" x="356" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00">+ index</text>
-<text text-anchor="start" x="356" y="-87" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
-<polyline fill="none" stroke="black" points="348,-80 503,-80 "/>
-<text text-anchor="start" x="356" y="-68" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_FINAL</text>
-<text text-anchor="start" x="356" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00">_OBJECT_INFO()</text>
-<text text-anchor="start" x="356" y="-46" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
+<polygon fill="white" stroke="black" points="360,-39 360,-140 522,-140 522,-39 360,-39"/>
+<text text-anchor="start" x="368" y="-128" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::HintOnDevice</text>
+<text text-anchor="middle" x="441" y="-117" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs</text>
+<polyline fill="none" stroke="black" points="360,-110 522,-110 "/>
+<text text-anchor="start" x="368" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00">+ device_type</text>
+<text text-anchor="start" x="368" y="-87" font-family="Helvetica,sans-Serif" font-size="10.00">+ index</text>
+<polyline fill="none" stroke="black" points="360,-80 522,-80 "/>
+<text text-anchor="start" x="368" y="-68" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="368" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
+<text text-anchor="start" x="368" y="-46" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
 </a>
 </g>
 </g>
 <!-- Node7&#45;&gt;Node8 -->
 <g id="edge7" class="edge">
 <title>Node7&#45;&gt;Node8</title>
-<path fill="none" stroke="midnightblue" d="M427.78,-232.9C427.37,-208.36 426.86,-177.36 426.42,-151.07"/>
-<polygon fill="none" stroke="midnightblue" points="424.28,-233.04 427.95,-242.99 431.28,-232.93 424.28,-233.04"/>
+<path fill="none" stroke="midnightblue" d="M446.19,-215.89C445.23,-192.73 444.05,-164.17 443.06,-140.16"/>
+<polygon fill="none" stroke="midnightblue" points="442.71,-216.26 446.62,-226.11 449.7,-215.97 442.71,-216.26"/>
 </g>
 <!-- Node10 -->
 <g id="node10" class="node">
 <title>Node10</title>
 <g id="a_node10"><a xlink:href="structtvm_1_1relax_1_1TakeAttrs.html" target="_top" xlink:title="Attributes used in take operator.">
-<polygon fill="white" stroke="black" points="521,-44.5 521,-145.5 676,-145.5 676,-44.5 521,-44.5"/>
-<text text-anchor="middle" x="598.5" y="-133.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::TakeAttrs</text>
-<polyline fill="none" stroke="black" points="521,-126.5 676,-126.5 "/>
-<text text-anchor="start" x="529" y="-114.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ axis</text>
-<text text-anchor="start" x="529" y="-103.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ mode</text>
-<text text-anchor="start" x="529" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
-<polyline fill="none" stroke="black" points="521,-85.5 676,-85.5 "/>
-<text text-anchor="start" x="529" y="-73.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_FINAL</text>
-<text text-anchor="start" x="529" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00">_OBJECT_INFO()</text>
-<text text-anchor="start" x="529" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
+<polygon fill="white" stroke="black" points="540,-44.5 540,-134.5 702,-134.5 702,-44.5 540,-44.5"/>
+<text text-anchor="middle" x="621" y="-122.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::TakeAttrs</text>
+<polyline fill="none" stroke="black" points="540,-115.5 702,-115.5 "/>
+<text text-anchor="start" x="548" y="-103.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ axis</text>
+<text text-anchor="start" x="548" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ mode</text>
+<polyline fill="none" stroke="black" points="540,-85.5 702,-85.5 "/>
+<text text-anchor="start" x="548" y="-73.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="548" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
+<text text-anchor="start" x="548" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
 </a>
 </g>
 </g>
 <!-- Node9&#45;&gt;Node10 -->
 <g id="edge9" class="edge">
 <title>Node9&#45;&gt;Node10</title>
-<path fill="none" stroke="midnightblue" d="M600.78,-232.97C600.35,-206.76 599.79,-173.16 599.33,-145.8"/>
-<polygon fill="none" stroke="midnightblue" points="597.28,-233.04 600.95,-242.99 604.28,-232.93 597.28,-233.04"/>
+<path fill="none" stroke="midnightblue" d="M626.19,-215.84C625.16,-190.91 623.87,-159.73 622.83,-134.71"/>
+<polygon fill="none" stroke="midnightblue" points="622.71,-216.26 626.62,-226.11 629.7,-215.97 622.71,-216.26"/>
 </g>
 <!-- Node12 -->
 <g id="node12" class="node">
 <title>Node12</title>
 <g id="a_node12"><a xlink:href="structtvm_1_1relax_1_1ScatterElementsAttrs.html" target="_top" xlink:title="Attributes used in scatter_elements operators.">
-<polygon fill="white" stroke="black" points="694,-39 694,-151 849,-151 849,-39 694,-39"/>
-<text text-anchor="start" x="702" y="-139" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::ScatterElements</text>
-<text text-anchor="middle" x="771.5" y="-128" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs</text>
-<polyline fill="none" stroke="black" points="694,-121 849,-121 "/>
-<text text-anchor="start" x="702" y="-109" font-family="Helvetica,sans-Serif" font-size="10.00">+ axis</text>
-<text text-anchor="start" x="702" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00">+ reduction</text>
-<text text-anchor="start" x="702" y="-87" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
-<polyline fill="none" stroke="black" points="694,-80 849,-80 "/>
-<text text-anchor="start" x="702" y="-68" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_FINAL</text>
-<text text-anchor="start" x="702" y="-57" font-family="Helvetica,sans-Serif" font-size="10.00">_OBJECT_INFO()</text>
-<text text-anchor="start" x="702" y="-46" font-family="Helvetica,sans-Serif" font-size="10.00">+ RegisterReflection()</text>
+<polygon fill="white" stroke="black" points="720,-39 720,-140 882,-140 882,-39 720,-39"/>
+<text text-anchor="start" x="728" y="-128" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::ScatterElements</text>
+<text text-anchor="middle" x="801" y="-117" font-family="Helvetica,sans-Serif" font-size="10.00">Attrs</text>
+<polyline fill="none" stroke="black" points="720,-110 882,-110 "/>
+<text text-anchor="start" x="728" y="-98" font-family="Helvetica,sans-Serif" font-size="10.00">+ axis</text>
+<text text-anchor="start" x="728" y="-87" font-family="Helvetica,sans-Serif" font-size="10.00">+ reduction</text>
+<polyline fill="none" stroke="black" points="720,-80 882,-80 "/>
+<text text-anchor="start" x="728" y="-68" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_FFI_DECLARE_OBJECT</text>
... 322609 lines suppressed ...