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"><</span><span class="n">IntImmNode</span><span class="o">></span><span class="p">().</span><span class="n">def_ro</span><span class="p">(</span><span class="s">"value"</span><span class="p">,</span><span class="w"> </span><span class="o">&</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">"ir.IntImm"</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">"ir.IntImm"</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">"forward"</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">"</span><span class="si">%g</span><span class="s2"> secs/op"</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: "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]
+ 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]
</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'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">"script.ir_builder.IRBuilderFrame"</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">"script.ir_builder.IRBuilderFrame"</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">"result"</span>, &<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">"script.ir_builder.IRBuilder"</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">"script.ir_builder.IRBuilder"</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> <<span class="keyword">typename</span> TFrame></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("script.ir_builder.IRBuilderFrame", 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< ffi::TypedFunction< void()> > 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< void()> 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< TFrame > FindFrame() const</div><div class="ttdoc">Find a frame of the given type in the stack this->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< TFrame > GetLastFrame() const</div><div class="ttdoc">Get the frame on top of the stack this->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< ObjectRef > 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< IRBuilderFrame > 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< TFrame > FindFrame() const</div><div class="ttdoc">Find a frame of the given type in the stack this->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< TFrame > GetLastFrame() const</div><div class="ttdoc">Get the frame on top of the stack this->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< ObjectRef > 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< IRBuilderFrame > 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("script.ir_builder.IRBuilder", 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 & 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< void(const ObjectRef &, ffi::String)> 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< void(const ObjectRef &, ffi::String)> 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>  <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>  </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>  <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>  <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">"arith.ConstIntBound"</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>  <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> };</div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  </div>
-<div class="line"><a name="l00114"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1ConstIntBound.html"> 114</a></span> <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>  <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>  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>  </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>  <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>  <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>  <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> };</div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  </div>
-<div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1ConstIntBoundAnalyzer.html"> 131</a></span> <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>  <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>  <span class="keyword">using</span> <a class="code" href="classtvm_1_1arith_1_1ConstIntBoundAnalyzer.html#a14736850005ba70395b09c2fb9113770">BoundMapType</a> = std::unordered_map<PrimExpr, ConstIntBound, ObjectPtrHash, ObjectPtrEqual>;</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>  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>  </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>  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>  </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>  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>& <a class="code" href="namespacetvm_1_1te.h [...]
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  </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>  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>& <a class="code" href="namespacetvm_1_1te.htm [...]
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  </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>  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>& <a class="code" href="namespacetvm_1_1te. [...]
-<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  </div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  <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>  <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>  <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>  <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>  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>  std::function<void()> EnterConstraint(<span class="keyword">const</span> <a class="code" href="classtvm_1_1PrimExpr.html">PrimExpr</a>& constraint);</div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  <span class="keyword">struct </span>Entry;</div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  <span class="keyword">class </span>Impl;</div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  Impl* impl_;</div>
-<div class="line"><a name="l00190"></a><span class="lineno"> 190</span> };</div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  </div>
-<div class="line"><a name="l00204"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1ModularSetNode.html"> 204</a></span> <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>  <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>  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>  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>  </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>  <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>  <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>  refl::ObjectDef<ModularSetNode>()</div>
-<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  .def_ro(<span class="stringliteral">"coeff"</span>, &<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>  .def_ro(<span class="stringliteral">"base"</span>, &<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>  }</div>
-<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  </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>  <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>  <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">"arith.ModularSet"</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>  <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> };</div>
-<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  </div>
-<div class="line"><a name="l00227"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1ModularSet.html"> 227</a></span> <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>  <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>  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>  </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>  <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> };</div>
-<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  </div>
-<div class="line"><a name="l00237"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1ModularSetAnalyzer.html"> 237</a></span> <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>  <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>  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>& 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>  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>& <a class="code" href="namespacetvm_1_1te.html#ae [...]
-<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  </div>
-<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  <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>  <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>  <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>  <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>  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>  std::function<void()> EnterConstraint(<span class="keyword">const</span> <a class="code" href="classtvm_1_1PrimExpr.html">PrimExpr</a>& constraint);</div>
-<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  <span class="keyword">struct </span>Entry;</div>
-<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  <span class="keyword">class </span>Impl;</div>
-<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  Impl* impl_;</div>
-<div class="line"><a name="l00270"></a><span class="lineno"> 270</span> };</div>
-<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  </div>
-<div class="line"><a name="l00275"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1RewriteSimplifier.html"> 275</a></span> <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>  <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>  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>& expr);</div>
-<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  </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>  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>& <a class="code" href="namespacetvm_1_1te.html#ae0c [...]
-<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  </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>  TVM_DLL std::function<void()> <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>& constraint);</div>
-<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  </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>  <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>  <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>  <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>  </div>
-<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  <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> <span class="comment"> *</span></div>
-<div class="line"><a name="l00319"></a><span class="lineno"> 319</span> <span class="comment"> * Example:</span></div>
-<div class="line"><a name="l00320"></a><span class="lineno"> 320</span> <span class="comment"> * if_then_else(i<j && j<k, i<k, false) => if_then_else(i<j && j<k, true, false)</span></div>
-<div class="line"><a name="l00321"></a><span class="lineno"> 321</span> <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>  <a class="code" href="classtvm_1_1arith_1_1RewriteSimplifier.html#a6705af5099418b968ded40d79102ad4ea775c43159049079d4a71cd788f4d1568">kTransitivelyProveInequalities</a> = (1 << 0),</div>
-<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  </div>
-<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  <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> <span class="comment"> * (conjunctive normal form).</span></div>
-<div class="line"><a name="l00326"></a><span class="lineno"> 326</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00327"></a><span class="lineno"> 327</span> <span class="comment"> * Example:</span></div>
-<div class="line"><a name="l00328"></a><span class="lineno"> 328</span> <span class="comment"> * (a && b) || c => (a || c) && (b || c)</span></div>
-<div class="line"><a name="l00329"></a><span class="lineno"> 329</span> <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>  <a class="code" href="classtvm_1_1arith_1_1RewriteSimplifier.html#a6705af5099418b968ded40d79102ad4eafd77a96599dad627a7c1d88292aa578e">kConvertBooleanToAndOfOrs</a> = (1 << 1),</div>
-<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>  </div>
-<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  <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> <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> <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> <span class="comment"> * (A && B) under the assumption that the other branch is true,</span></div>
-<div class="line"><a name="l00336"></a><span class="lineno"> 336</span> <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> <span class="comment"> * the other branch is false.</span></div>
-<div class="line"><a name="l00338"></a><span class="lineno"> 338</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00339"></a><span class="lineno"> 339</span> <span class="comment"> * Example:</span></div>
-<div class="line"><a name="l00340"></a><span class="lineno"> 340</span> <span class="comment"> * (n < 10) && (n < 5) => (n < 10)</span></div>
-<div class="line"><a name="l00341"></a><span class="lineno"> 341</span> <span class="comment"> * (n < 10) || (n < 5) => (n < 5)</span></div>
-<div class="line"><a name="l00342"></a><span class="lineno"> 342</span> <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>  <a class="code" href="classtvm_1_1arith_1_1RewriteSimplifier.html#a6705af5099418b968ded40d79102ad4ea254331b07f4bdf970d7f28f480da637b">kApplyConstraintsToBooleanBranches</a> = (1 << 2),</div>
-<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  </div>
-<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  <span class="comment">/* Special handling for expressions `(A+B)*C < (A*B)*D`</span></div>
-<div class="line"><a name="l00346"></a><span class="lineno"> 346</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00347"></a><span class="lineno"> 347</span> <span class="comment"> * Expressions of the form `(A+B)*C < (A*B)*D` can occur occur</span></div>
-<div class="line"><a name="l00348"></a><span class="lineno"> 348</span> <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> <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> <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> <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> <span class="comment"> * argument shapes.</span></div>
-<div class="line"><a name="l00353"></a><span class="lineno"> 353</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00354"></a><span class="lineno"> 354</span> <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> <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> <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> <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> <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> <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> <span class="comment"> * provides is looser than strictly required.</span></div>
-<div class="line"><a name="l00361"></a><span class="lineno"> 361</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00362"></a><span class="lineno"> 362</span> <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> <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> <span class="comment"> * shapes, the inequality can be written as `1/A + 1/B < D/C`. If</span></div>
-<div class="line"><a name="l00365"></a><span class="lineno"> 365</span> <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> <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> <span class="comment"> * holds for all values.</span></div>
-<div class="line"><a name="l00368"></a><span class="lineno"> 368</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00369"></a><span class="lineno"> 369</span> <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> <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> <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>  <a class="code" href="classtvm_1_1arith_1_1RewriteSimplifier.html#a6705af5099418b968ded40d79102ad4eaf2a72591e015241f111c915110ad0b23">kComparisonOfProductAndSum</a> = (1 << 3),</div>
-<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  };</div>
-<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  </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>  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>  </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>  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>  </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>  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>  </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>  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>  </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>  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>  </div>
-<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>  <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>  <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>  <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>  <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>  <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>  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>  <span class="keyword">class </span>Impl;</div>
-<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>  Impl* impl_;</div>
-<div class="line"><a name="l00415"></a><span class="lineno"> 415</span> };</div>
-<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>  </div>
-<div class="line"><a name="l00420"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1CanonicalSimplifier.html"> 420</a></span> <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>  <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>  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>& expr);</div>
-<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>  </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>  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>& <a class="code" href="namespacetvm_1_1te.html# [...]
-<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>  </div>
-<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>  <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>  <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>  <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>  <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>  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>  <span class="keyword">class </span>Impl;</div>
-<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>  Impl* impl_;</div>
-<div class="line"><a name="l00446"></a><span class="lineno"> 446</span> };</div>
-<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>  </div>
-<div class="line"><a name="l00453"></a><span class="lineno"><a class="line" href="namespacetvm_1_1arith.html#a1d555a0cc363f669a49fad7e5f7d69d0"> 453</a></span> <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>  <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>  <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>  <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>  <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>  <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>  <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>  <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>  <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> };</div>
-<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>  </div>
-<div class="line"><a name="l00464"></a><span class="lineno"><a class="line" href="namespacetvm_1_1arith.html#ae300654bf1788008de90f1e77fbaa7fe"> 464</a></span> <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&</a>(<a class="code" href="namespacetvm_1_1arith.html#a1d555a0cc363f669a49fad7e5f [...]
-<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>  <span class="keywordflow">return</span> <a class="code" href="namespacetvm_1_1arith.html#a1d555a0cc363f669a49fad7e5f7d69d0">CompareResult</a>(<span class="keyword">static_cast<</span><span class="keywordtype">int</span><span class="keyword">></span>(lhs) & <span class="keyword">static_cast<</span><span class="keywordtype">int</span><span class="keyword">></span>(rhs));</div>
-<div class="line"><a name="l00466"></a><span class="lineno"> 466</span> }</div>
-<div class="line"><a name="l00467"></a><span class="lineno"><a class="line" href="namespacetvm_1_1arith.html#a660ff1fdbb08fea19a922157cadad7a7"> 467</a></span> <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>  <span class="keywordflow">return</span> <a class="code" href="namespacetvm_1_1arith.html#a1d555a0cc363f669a49fad7e5f7d69d0">CompareResult</a>(<span class="keyword">static_cast<</span><span class="keywordtype">int</span><span class="keyword">></span>(lhs) | <span class="keyword">static_cast<</span><span class="keywordtype">int</span><span class="keyword">></span>(rhs));</div>
-<div class="line"><a name="l00469"></a><span class="lineno"> 469</span> }</div>
-<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>  </div>
-<div class="line"><a name="l00477"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1TransitiveComparisonAnalyzer.html"> 477</a></span> <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>  <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>  <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>  <a class="code" href="classtvm_1_1arith_1_1ConstIntBoundNode.html#a3aff78da3ceeb7698c9505ba692ca25d">TVM_FFI_DECLARE_OBJECT_INFO_FINAL</a>(<span class="stringliteral">"arith.ConstIntBound"</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> };</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  </div>
+<div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1ConstIntBound.html"> 113</a></span> <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>  <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>  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>  </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>  <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>  <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>  <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> };</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  </div>
+<div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1ConstIntBoundAnalyzer.html"> 130</a></span> <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>  <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>  <span class="keyword">using</span> <a class="code" href="classtvm_1_1arith_1_1ConstIntBoundAnalyzer.html#a14736850005ba70395b09c2fb9113770">BoundMapType</a> = std::unordered_map<PrimExpr, ConstIntBound, ObjectPtrHash, ObjectPtrEqual>;</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>  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>  </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>  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>  </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>  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>& <a class="code" href="namespacetvm_1_1te.h [...]
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  </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>  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>& <a class="code" href="namespacetvm_1_1te.htm [...]
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  </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>  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>& <a class="code" href="namespacetvm_1_1te. [...]
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  </div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  <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>  <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>  <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>  <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>  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>  std::function<void()> EnterConstraint(<span class="keyword">const</span> <a class="code" href="classtvm_1_1PrimExpr.html">PrimExpr</a>& constraint);</div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <span class="keyword">struct </span>Entry;</div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  <span class="keyword">class </span>Impl;</div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  Impl* impl_;</div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> };</div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  </div>
+<div class="line"><a name="l00203"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1ModularSetNode.html"> 203</a></span> <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>  <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>  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>  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>  </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>  <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>  <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>  refl::ObjectDef<ModularSetNode>()</div>
+<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  .def_ro(<span class="stringliteral">"coeff"</span>, &<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>  .def_ro(<span class="stringliteral">"base"</span>, &<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>  }</div>
+<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  </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>  <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>  <a class="code" href="classtvm_1_1arith_1_1ModularSetNode.html#acd82a1ef8c6c733378c22f16c0bf4d32">TVM_FFI_DECLARE_OBJECT_INFO_FINAL</a>(<span class="stringliteral">"arith.ModularSet"</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> };</div>
+<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  </div>
+<div class="line"><a name="l00225"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1ModularSet.html"> 225</a></span> <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>  <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>  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>  </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>  <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> };</div>
+<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  </div>
+<div class="line"><a name="l00235"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1ModularSetAnalyzer.html"> 235</a></span> <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>  <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>  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>& 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>  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>& <a class="code" href="namespacetvm_1_1te.html#ae [...]
+<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  </div>
+<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  <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>  <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>  <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>  <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>  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>  std::function<void()> EnterConstraint(<span class="keyword">const</span> <a class="code" href="classtvm_1_1PrimExpr.html">PrimExpr</a>& constraint);</div>
+<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  <span class="keyword">struct </span>Entry;</div>
+<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  <span class="keyword">class </span>Impl;</div>
+<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  Impl* impl_;</div>
+<div class="line"><a name="l00268"></a><span class="lineno"> 268</span> };</div>
+<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  </div>
+<div class="line"><a name="l00273"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1RewriteSimplifier.html"> 273</a></span> <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>  <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>  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>& expr);</div>
+<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  </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>  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>& <a class="code" href="namespacetvm_1_1te.html#ae0c [...]
+<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  </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>  TVM_DLL std::function<void()> <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>& constraint);</div>
+<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  </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>  <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>  <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>  <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>  </div>
+<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  <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> <span class="comment"> *</span></div>
+<div class="line"><a name="l00317"></a><span class="lineno"> 317</span> <span class="comment"> * Example:</span></div>
+<div class="line"><a name="l00318"></a><span class="lineno"> 318</span> <span class="comment"> * if_then_else(i<j && j<k, i<k, false) => if_then_else(i<j && j<k, true, false)</span></div>
+<div class="line"><a name="l00319"></a><span class="lineno"> 319</span> <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>  <a class="code" href="classtvm_1_1arith_1_1RewriteSimplifier.html#a6705af5099418b968ded40d79102ad4ea775c43159049079d4a71cd788f4d1568">kTransitivelyProveInequalities</a> = (1 << 0),</div>
+<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  </div>
+<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  <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> <span class="comment"> * (conjunctive normal form).</span></div>
+<div class="line"><a name="l00324"></a><span class="lineno"> 324</span> <span class="comment"> *</span></div>
+<div class="line"><a name="l00325"></a><span class="lineno"> 325</span> <span class="comment"> * Example:</span></div>
+<div class="line"><a name="l00326"></a><span class="lineno"> 326</span> <span class="comment"> * (a && b) || c => (a || c) && (b || c)</span></div>
+<div class="line"><a name="l00327"></a><span class="lineno"> 327</span> <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>  <a class="code" href="classtvm_1_1arith_1_1RewriteSimplifier.html#a6705af5099418b968ded40d79102ad4eafd77a96599dad627a7c1d88292aa578e">kConvertBooleanToAndOfOrs</a> = (1 << 1),</div>
+<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  </div>
+<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  <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> <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> <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> <span class="comment"> * (A && B) under the assumption that the other branch is true,</span></div>
+<div class="line"><a name="l00334"></a><span class="lineno"> 334</span> <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> <span class="comment"> * the other branch is false.</span></div>
+<div class="line"><a name="l00336"></a><span class="lineno"> 336</span> <span class="comment"> *</span></div>
+<div class="line"><a name="l00337"></a><span class="lineno"> 337</span> <span class="comment"> * Example:</span></div>
+<div class="line"><a name="l00338"></a><span class="lineno"> 338</span> <span class="comment"> * (n < 10) && (n < 5) => (n < 10)</span></div>
+<div class="line"><a name="l00339"></a><span class="lineno"> 339</span> <span class="comment"> * (n < 10) || (n < 5) => (n < 5)</span></div>
+<div class="line"><a name="l00340"></a><span class="lineno"> 340</span> <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>  <a class="code" href="classtvm_1_1arith_1_1RewriteSimplifier.html#a6705af5099418b968ded40d79102ad4ea254331b07f4bdf970d7f28f480da637b">kApplyConstraintsToBooleanBranches</a> = (1 << 2),</div>
+<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  </div>
+<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  <span class="comment">/* Special handling for expressions `(A+B)*C < (A*B)*D`</span></div>
+<div class="line"><a name="l00344"></a><span class="lineno"> 344</span> <span class="comment"> *</span></div>
+<div class="line"><a name="l00345"></a><span class="lineno"> 345</span> <span class="comment"> * Expressions of the form `(A+B)*C < (A*B)*D` can occur occur</span></div>
+<div class="line"><a name="l00346"></a><span class="lineno"> 346</span> <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> <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> <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> <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> <span class="comment"> * argument shapes.</span></div>
+<div class="line"><a name="l00351"></a><span class="lineno"> 351</span> <span class="comment"> *</span></div>
+<div class="line"><a name="l00352"></a><span class="lineno"> 352</span> <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> <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> <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> <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> <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> <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> <span class="comment"> * provides is looser than strictly required.</span></div>
+<div class="line"><a name="l00359"></a><span class="lineno"> 359</span> <span class="comment"> *</span></div>
+<div class="line"><a name="l00360"></a><span class="lineno"> 360</span> <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> <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> <span class="comment"> * shapes, the inequality can be written as `1/A + 1/B < D/C`. If</span></div>
+<div class="line"><a name="l00363"></a><span class="lineno"> 363</span> <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> <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> <span class="comment"> * holds for all values.</span></div>
+<div class="line"><a name="l00366"></a><span class="lineno"> 366</span> <span class="comment"> *</span></div>
+<div class="line"><a name="l00367"></a><span class="lineno"> 367</span> <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> <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> <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>  <a class="code" href="classtvm_1_1arith_1_1RewriteSimplifier.html#a6705af5099418b968ded40d79102ad4eaf2a72591e015241f111c915110ad0b23">kComparisonOfProductAndSum</a> = (1 << 3),</div>
+<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  };</div>
+<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  </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>  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>  </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>  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>  </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>  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>  </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>  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>  </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>  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>  </div>
+<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>  <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>  <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>  <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>  <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>  <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>  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>  <span class="keyword">class </span>Impl;</div>
+<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  Impl* impl_;</div>
+<div class="line"><a name="l00413"></a><span class="lineno"> 413</span> };</div>
+<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>  </div>
+<div class="line"><a name="l00418"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1CanonicalSimplifier.html"> 418</a></span> <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>  <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>  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>& expr);</div>
+<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>  </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>  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>& <a class="code" href="namespacetvm_1_1te.html# [...]
+<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>  </div>
+<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>  <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>  <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>  <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>  <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>  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>  <span class="keyword">class </span>Impl;</div>
+<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>  Impl* impl_;</div>
+<div class="line"><a name="l00444"></a><span class="lineno"> 444</span> };</div>
+<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>  </div>
+<div class="line"><a name="l00451"></a><span class="lineno"><a class="line" href="namespacetvm_1_1arith.html#a1d555a0cc363f669a49fad7e5f7d69d0"> 451</a></span> <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>  <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>  <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>  <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>  <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>  <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>  <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>  <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>  <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> };</div>
+<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>  </div>
+<div class="line"><a name="l00462"></a><span class="lineno"><a class="line" href="namespacetvm_1_1arith.html#ae300654bf1788008de90f1e77fbaa7fe"> 462</a></span> <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&</a>(<a class="code" href="namespacetvm_1_1arith.html#a1d555a0cc363f669a49fad7e5f [...]
+<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>  <span class="keywordflow">return</span> <a class="code" href="namespacetvm_1_1arith.html#a1d555a0cc363f669a49fad7e5f7d69d0">CompareResult</a>(<span class="keyword">static_cast<</span><span class="keywordtype">int</span><span class="keyword">></span>(lhs) & <span class="keyword">static_cast<</span><span class="keywordtype">int</span><span class="keyword">></span>(rhs));</div>
+<div class="line"><a name="l00464"></a><span class="lineno"> 464</span> }</div>
+<div class="line"><a name="l00465"></a><span class="lineno"><a class="line" href="namespacetvm_1_1arith.html#a660ff1fdbb08fea19a922157cadad7a7"> 465</a></span> <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>  <span class="keywordflow">return</span> <a class="code" href="namespacetvm_1_1arith.html#a1d555a0cc363f669a49fad7e5f7d69d0">CompareResult</a>(<span class="keyword">static_cast<</span><span class="keywordtype">int</span><span class="keyword">></span>(lhs) | <span class="keyword">static_cast<</span><span class="keywordtype">int</span><span class="keyword">></span>(rhs));</div>
+<div class="line"><a name="l00467"></a><span class="lineno"> 467</span> }</div>
+<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>  </div>
+<div class="line"><a name="l00475"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1TransitiveComparisonAnalyzer.html"> 475</a></span> <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>  <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>  <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> <span class="comment"> *</span></div>
+<div class="line"><a name="l00479"></a><span class="lineno"> 479</span> <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> <span class="comment"> *</span></div>
-<div class="line"><a name="l00481"></a><span class="lineno"> 481</span> <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> <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> <span class="comment"> *</span></div>
-<div class="line"><a name="l00483"></a><span class="lineno"> 483</span> <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> <span class="comment"> *</span></div>
-<div class="line"><a name="l00485"></a><span class="lineno"> 485</span> <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> <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> <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> <span class="comment"> * directly provided. Using `propagate_inequalities = false` is</span></div>
-<div class="line"><a name="l00489"></a><span class="lineno"> 489</span> <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> <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> <span class="comment"> * offsets on either side of the inequality.</span></div>
-<div class="line"><a name="l00492"></a><span class="lineno"> 492</span> <span class="comment"> *</span></div>
-<div class="line"><a name="l00493"></a><span class="lineno"> 493</span> <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> <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> <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>  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>  <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>  </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>  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>& <a class="code" href="namespac [...]
-<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>  </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>  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>& <a class="code" href="namespac [...]
-<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>  </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>  TVM_DLL std::function<void()> <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>& constraint);</div>
-<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>  </div>
-<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>  <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>  <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>  <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>  <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>  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>  <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>  std::unique_ptr<Impl> impl_;</div>
-<div class="line"><a name="l00531"></a><span class="lineno"> 531</span> };</div>
-<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>  </div>
-<div class="line"><a name="l00549"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1ConstraintContext.html"> 549</a></span> <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>  <span class="keyword">private</span>:</div>
-<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>  <span class="comment">// declare friend to enable with.</span></div>
-<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classtvm_1_1With.html">With</a><<a class="code" href="classtvm_1_1arith_1_1ConstraintContext.html">ConstraintContext</a>>;</div>
-<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>  <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>  : analyzer_(analyzer), constraint_(constraint) {}</div>
-<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>  <span class="comment">// enter the scope.</span></div>
-<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>  <span class="keywordtype">void</span> EnterWithScope();</div>
-<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>  <span class="comment">// exit the scope.</span></div>
-<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>  <span class="keywordtype">void</span> ExitWithScope();</div>
-<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>  <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>  <a class="code" href="classtvm_1_1PrimExpr.html">PrimExpr</a> constraint_;</div>
-<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>  std::vector<std::function<void()>> recovery_functions_;</div>
-<div class="line"><a name="l00570"></a><span class="lineno"> 570</span> };</div>
-<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>  </div>
-<div class="line"><a name="l00575"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1IntSetAnalyzer.html"> 575</a></span> <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>  <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>  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>& expr, <span class="k [...]
-<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>  </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>  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>& expr);</div>
-<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>  </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>  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>& <a class="code" href="namespacetvm_1_1te.html#ae0c71f847 [...]
-<div class="line"><a name="l00605"></a><span class="lineno"> 605</span>  </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>  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>& <a class="code" href="namespacetvm_1_1te.html#ae0c71f84710 [...]
+<div class="line"><a name="l00483"></a><span class="lineno"> 483</span> <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> <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> <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> <span class="comment"> * directly provided. Using `propagate_inequalities = false` is</span></div>
+<div class="line"><a name="l00487"></a><span class="lineno"> 487</span> <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> <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> <span class="comment"> * offsets on either side of the inequality.</span></div>
+<div class="line"><a name="l00490"></a><span class="lineno"> 490</span> <span class="comment"> *</span></div>
+<div class="line"><a name="l00491"></a><span class="lineno"> 491</span> <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> <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> <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>  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>  <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>  </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>  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>& <a class="code" href="namespac [...]
+<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>  </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>  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>& <a class="code" href="namespac [...]
+<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>  </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>  TVM_DLL std::function<void()> <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>& constraint);</div>
+<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>  </div>
+<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>  <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>  <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>  <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>  <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>  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>  <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>  std::unique_ptr<Impl> impl_;</div>
+<div class="line"><a name="l00529"></a><span class="lineno"> 529</span> };</div>
+<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>  </div>
+<div class="line"><a name="l00547"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1ConstraintContext.html"> 547</a></span> <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>  <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>  <span class="comment">// declare friend to enable with.</span></div>
+<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>  <span class="keyword">friend</span> <span class="keyword">class </span><a class="code" href="classtvm_1_1With.html">With</a><<a class="code" href="classtvm_1_1arith_1_1ConstraintContext.html">ConstraintContext</a>>;</div>
+<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>  <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>  : analyzer_(analyzer), constraint_(constraint) {}</div>
+<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>  <span class="comment">// enter the scope.</span></div>
+<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>  <span class="keywordtype">void</span> EnterWithScope();</div>
+<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>  <span class="comment">// exit the scope.</span></div>
+<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>  <span class="keywordtype">void</span> ExitWithScope();</div>
+<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>  <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>  <a class="code" href="classtvm_1_1PrimExpr.html">PrimExpr</a> constraint_;</div>
+<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>  std::vector<std::function<void()>> recovery_functions_;</div>
+<div class="line"><a name="l00568"></a><span class="lineno"> 568</span> };</div>
+<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>  </div>
+<div class="line"><a name="l00573"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1IntSetAnalyzer.html"> 573</a></span> <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>  <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>  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>& expr, <span class="k [...]
+<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>  </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>  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>& expr);</div>
+<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>  </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>  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>& <a class="code" href="namespacetvm_1_1te.html#ae0c71f847 [...]
+<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>  </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>  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>& <a class="code" href="namespacetvm_1_1te.html#ae0c71f84710 [...]
+<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>  </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>  std::function<void()> <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>& constraint);</div>
<div class="line"><a name="l00614"></a><span class="lineno"> 614</span>  </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>  std::function<void()> <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>& constraint);</div>
-<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>  </div>
-<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>  <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>  <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>  <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>  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>  <span class="keyword">class </span>Impl;</div>
-<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>  Impl* impl_;</div>
-<div class="line"><a name="l00624"></a><span class="lineno"> 624</span> };</div>
-<div class="line"><a name="l00625"></a><span class="lineno"> 625</span>  </div>
-<div class="line"><a name="l00636"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1Analyzer.html"> 636</a></span> <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>  <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00638"></a><span class="lineno"> 638</span>  <span class="comment">/*</span></div>
-<div class="line"><a name="l00639"></a><span class="lineno"> 639</span> <span class="comment"> * Disable copy constructor.</span></div>
-<div class="line"><a name="l00640"></a><span class="lineno"> 640</span> <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>  <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>&) = <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>  <a class="code" href="classtvm_1_1arith_1_1Analyzer.html">Analyzer</a>& <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>&) = <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>  <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>  <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>  <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>  <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>  <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>  <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>  <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>  <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>& 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>  <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>& <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>  <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>& <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>  <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<Var, Range>& 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>  <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>& 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>  <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>& 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>  <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>& 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>  <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>& 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>  <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>& cond, <a class="code" href="namespacetvm_1_1arith.html#a038b0205b1c66d2 [...]
-<div class="line"><a name="l00774"></a><span class="lineno"> 774</span>  </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>  <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>& expr, <span class="keywordtype">int</span> step [...]
-<div class="line"><a name="l00789"></a><span class="lineno"> 789</span> };</div>
-<div class="line"><a name="l00790"></a><span class="lineno"> 790</span>  </div>
-<div class="line"><a name="l00791"></a><span class="lineno"> 791</span> } <span class="comment">// namespace arith</span></div>
-<div class="line"><a name="l00792"></a><span class="lineno"> 792</span> } <span class="comment">// namespace tvm</span></div>
-<div class="line"><a name="l00793"></a><span class="lineno"> 793</span> <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>  <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>  <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>  <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>  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>  <span class="keyword">class </span>Impl;</div>
+<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>  Impl* impl_;</div>
+<div class="line"><a name="l00622"></a><span class="lineno"> 622</span> };</div>
+<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>  </div>
+<div class="line"><a name="l00634"></a><span class="lineno"><a class="line" href="classtvm_1_1arith_1_1Analyzer.html"> 634</a></span> <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>  <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00636"></a><span class="lineno"> 636</span>  <span class="comment">/*</span></div>
+<div class="line"><a name="l00637"></a><span class="lineno"> 637</span> <span class="comment"> * Disable copy constructor.</span></div>
+<div class="line"><a name="l00638"></a><span class="lineno"> 638</span> <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>  <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>&) = <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>  <a class="code" href="classtvm_1_1arith_1_1Analyzer.html">Analyzer</a>& <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>&) = <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>  <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>  <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>  <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>  <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>  <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>  <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>  <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>  <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>& 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>  <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>& <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>  <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>& <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>  <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<Var, Range>& 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>  <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>& 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>  <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>& 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>  <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>& 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>  <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>& 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>  <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>& cond, <a class="code" href="namespacetvm_1_1arith.html#a038b0205b1c66d2 [...]
+<div class="line"><a name="l00772"></a><span class="lineno"> 772</span>  </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>  <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>& expr, <span class="keywordtype">int</span> step [...]
+<div class="line"><a name="l00787"></a><span class="lineno"> 787</span> };</div>
+<div class="line"><a name="l00788"></a><span class="lineno"> 788</span>  </div>
+<div class="line"><a name="l00789"></a><span class="lineno"> 789</span> } <span class="comment">// namespace arith</span></div>
+<div class="line"><a name="l00790"></a><span class="lineno"> 790</span> } <span class="comment">// namespace tvm</span></div>
+<div class="line"><a name="l00791"></a><span class="lineno"> 791</span> <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< Var, Range > &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 &var, const Range &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 &lhs, const PrimExpr &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 &lhs, const PrimExpr &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 &expr, int64_t lower_bound)</div><div class="ttdoc">Whether can we prove expr >= 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 &var, const PrimExpr &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 &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 &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 &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 & operator=(const Analyzer &)=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 &expr, int64_t upper_bound)</div><div class="ttdoc">Whether can we prove expr < 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 &)=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 &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 &var, const PrimExpr &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 &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< PrimExpr, ConstIntBound, ObjectPtrHash, ObjectPtrEqual > 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< PrimExpr, ConstIntBound, ObjectPtrHash, ObjectPtrEqual > 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 &var, const ConstIntBound &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 &var, const Range &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 &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 &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("arith.ConstIntBound", 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< void()> EnterConstraint(const PrimExpr &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 &var, const IntSet &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 &var, const Range &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 &expr, const ffi::Map< Var, IntSet > &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 &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 &var, const ModularSet &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 &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("arith.ModularSet", 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< void()> EnterConstraint(const PrimExpr &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 &var, const PrimExpr &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 &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 &var, const Range &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< void()> EnterConstraint(const PrimExpr &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 &var, const PrimExpr &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 &lhs, const PrimExpr &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&</a></div><div class="ttdeci">constexpr CompareResult operator&(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&</a></div><div class="ttdeci">constexpr CompareResult operator&(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 &src, DataType dtype, const std::string name="T_shape", 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>  </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> <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>  <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>  <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">"meta_schedule.ArgInfo"</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>  <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>  </div>
-<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>  <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>  <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>  <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> };</div>
-<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>  </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> <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>  <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>  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& 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>  TVM_DLL <span class="keyword">static</span> ffi::Array<ArgInfo, void> <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>& 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>  TVM_DLL <span class="keyword">static</span> ffi::Array<ArgInfo, void> <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>& <a class="co [...]
-<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  </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>  <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>  </div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  <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>  <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> };</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  </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> <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>  <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>  <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>  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>  </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>  <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>  <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>  refl::ObjectDef<TensorInfoNode>()</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  .def_ro(<span class="stringliteral">"dtype"</span>, &<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>  .def_ro(<span class="stringliteral">"shape"</span>, &<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>  }</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>  <a class="code" href="classtvm_1_1meta__schedule_1_1ArgInfoNode.html#a1376ef729145345bd3bed1afc7721305">TVM_FFI_DECLARE_OBJECT_INFO</a>(<span class="stringliteral">"meta_schedule.ArgInfo"</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>  </div>
+<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>  <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>  <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>  <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> };</div>
+<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>  </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> <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>  <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>  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& 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>  TVM_DLL <span class="keyword">static</span> ffi::Array<ArgInfo, void> <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>& 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>  TVM_DLL <span class="keyword">static</span> ffi::Array<ArgInfo, void> <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>& <a class="co [...]
+<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>  </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>  <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>  </div>
+<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  <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>  <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> };</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  </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> <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>  <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>  <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>  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>  </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>  <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>  <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>  refl::ObjectDef<TensorInfoNode>()</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  .def_ro(<span class="stringliteral">"dtype"</span>, &<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>  .def_ro(<span class="stringliteral">"shape"</span>, &<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>  }</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>  <a class="code" href="classtvm_1_1meta__schedule_1_1TensorInfoNode.html#ab8b9921040113a510bde0cb514e8e0e6">TVM_FFI_DECLARE_OBJECT_INFO_FINAL</a>(<span class="stringliteral">"meta_schedule.TensorInfo"</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>  </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>  <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">"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>  <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>  </div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  <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>  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> };</div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  </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> <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>  <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>  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>  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& 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>  <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> };</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <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>  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> };</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  </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> <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>  <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>  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>  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& 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>  <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> };</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  </div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> } <span class="comment">// namespace meta_schedule</span></div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span> } <span class="comment">// namespace tvm</span></div>
<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  </div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span> } <span class="comment">// namespace meta_schedule</span></div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> } <span class="comment">// namespace tvm</span></div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  </div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> <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> <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("meta_schedule.ArgInfo", 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< ArgInfo, void > FromPrimFunc(const tir::PrimFunc &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< ArgInfo, void > FromEntryFunc(const IRModule &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 &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("meta_schedule.TensorInfo", 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 &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 &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< KeyType > &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>  .def_ro(<span class="stringliteral">"description"</span>, &<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>  }</div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  </div>
-<div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="classtvm_1_1AttrFieldInfoNode.html#afe4293c9f1aea71f845c5ed9633af2c9"> 85</a></span>  <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">"ir.AttrFieldInfo"</span>;</div>
-<div class="line"><a name="l00086"></a><span class="lineno"><a class="line" href="classtvm_1_1AttrFieldInfoNode.html#afba3081e4108c2ba2d34a6a228de5d88"> 86</a></span>  <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>  </div>
-<div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="classtvm_1_1AttrFieldInfoNode.html#a915476a2aefc4dfb342c3aa40f235b81"> 88</a></span>  <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> };</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  </div>
-<div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="classtvm_1_1AttrFieldInfo.html"> 92</a></span> <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>  <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>  <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> };</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  </div>
-<div class="line"><a name="l00103"></a><span class="lineno"><a class="line" href="classtvm_1_1BaseAttrsNode.html"> 103</a></span> <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>  <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>  <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>  <span class="keyword">template</span> <<span class="keyword">typename</span>... Args></div>
-<div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="classtvm_1_1BaseAttrsNode.html#abcc04a722102d16fd4d86f9b7dcdd1e1"> 113</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classtvm_1_1BaseAttrsNode.html#abcc04a722102d16fd4d86f9b7dcdd1e1">InitBySeq</a>(Args&&... args);</div>
-<div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="classtvm_1_1BaseAttrsNode.html#adf84245590cf8fa64042329a24eaad54"> 121</a></span>  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& kwargs,</div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <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>  </div>
-<div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="classtvm_1_1BaseAttrsNode.html#a7c9d86042f7419c0cc25b7b9c1aa8695"> 124</a></span>  <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>  </div>
-<div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="classtvm_1_1BaseAttrsNode.html#a8e4fd4e728774e0556cda84b0c2b80d6"> 126</a></span>  <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">"ir.Attrs"</span>;</div>
-<div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="classtvm_1_1BaseAttrsNode.html#aaca524319f015a18a1385cfea5ba8895"> 127</a></span>  <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> };</div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  </div>
-<div class="line"><a name="l00134"></a><span class="lineno"><a class="line" href="classtvm_1_1Attrs.html"> 134</a></span> <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>  <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>  <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> };</div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  </div>
-<div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="classtvm_1_1DictAttrsNode.html"> 145</a></span> <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>  <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>  ffi::Map<ffi::String, ffi::Any> <a class="code" href="classtvm_1_1DictAttrsNode.html#af348aa9a0f2095a34c82be2a97e6e8fc">dict</a>;</div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  </div>
-<div class="line"><a name="l00150"></a><span class="lineno"><a class="line" href="classtvm_1_1DictAttrsNode.html#a6296a6c5f7946e291181996d30b78eb3"> 150</a></span>  <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>  <span class="keyword">namespace </span>rfl = ffi::reflection;</div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  rfl::ObjectDef<DictAttrsNode>().def_ro(<span class="stringliteral">"__dict__"</span>, &<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>  }</div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  </div>
-<div class="line"><a name="l00155"></a><span class="lineno"><a class="line" href="classtvm_1_1DictAttrsNode.html#a942e6c4426178c6e8068fae60dac3311"> 155</a></span>  <span class="keywordtype">void</span> <a class="code" href="classtvm_1_1DictAttrsNode.html#a942e6c4426178c6e8068fae60dac3311">InitByPackedArgs</a>(<span class="keyword">const</span> ffi::PackedArgs& 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>  </div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <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>  <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">"ir.DictAttrs"</span>;</div>
-<div class="line"><a name="l00159"></a><span class="lineno"><a class="line" href="classtvm_1_1DictAttrsNode.html#a064a2af1c7fbe5140278e28cc5ec8c78"> 159</a></span>  <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> };</div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  </div>
-<div class="line"><a name="l00166"></a><span class="lineno"><a class="line" href="classtvm_1_1DictAttrs.html"> 166</a></span> <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>  <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>  <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>  TVM_DLL <span class="keyword">explicit</span> <a class="code" href="classtvm_1_1DictAttrs.html#aaba8e5c4c42eb8160df2e5e988174222">DictAttrs</a>(ffi::Map<ffi::String, Any> dict = {});</div>
-<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  </div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  <span class="comment">// Utils for accessing attributes</span></div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  <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>  <span class="comment">// value if DictAttrsNode is not defined.</span></div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span> <span class="comment"></span> <span class="keyword">template</span> <<span class="keyword">typename</span> TObjectRef></div>
-<div class="line"><a name="l00201"></a><span class="lineno"><a class="line" href="classtvm_1_1DictAttrs.html#ad186f731f94d6b6dcd37dacddcfc714a"> 201</a></span>  ffi::Optional<TObjectRef> <a class="code" href="classtvm_1_1DictAttrs.html#ad186f731f94d6b6dcd37dacddcfc714a">GetAttr</a>(</div>
-<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  <span class="keyword">const</span> std::string& attr_key,</div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  ffi::Optional<TObjectRef> default_value = ffi::Optional<TObjectRef>(std::nullopt))<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  <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>  <span class="keyword">const</span> <a class="code" href="classtvm_1_1DictAttrsNode.html">DictAttrsNode</a>* node = this->as<DictAttrsNode>();</div>
-<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  <span class="keyword">auto</span> it = node-><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>  <span class="keywordflow">if</span> (it != node-><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>  <span class="keywordflow">return</span> (*it).second.cast<TObjectRef>();</div>
-<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  <span class="keywordflow">return</span> default_value;</div>
-<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  }</div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  }</div>
-<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  <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>  <span class="keyword">template</span> <<span class="keyword">typename</span> TObjectRef></div>
-<div class="line"><a name="l00215"></a><span class="lineno"><a class="line" href="classtvm_1_1DictAttrs.html#af63d14a1a6ffeb1c6fc403f46df8c13a"> 215</a></span>  ffi::Optional<TObjectRef> <a class="code" href="classtvm_1_1DictAttrs.html#af63d14a1a6ffeb1c6fc403f46df8c13a">GetAttr</a>(<span class="keyword">const</span> std::string& attr_key, TObjectRef default_value)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  <span class="keywordflow">return</span> GetAttr<TObjectRef>(attr_key, ffi::Optional<TObjectRef>(default_value));</div>
-<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  }</div>
-<div class="line"><a name="l00237"></a><span class="lineno"><a class="line" href="classtvm_1_1DictAttrs.html#a45e524ce0f8ae389341ec37e468d887d"> 237</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classtvm_1_1DictAttrs.html#a45e524ce0f8ae389341ec37e468d887d">HasNonzeroAttr</a>(<span class="keyword">const</span> std::string& attr_key)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  <span class="keywordflow">return</span> GetAttr<Integer>(attr_key, 0).value_or(0).IntValue() != 0;</div>
-<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  }</div>
-<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  </div>
-<div class="line"><a name="l00241"></a><span class="lineno"><a class="line" href="classtvm_1_1DictAttrs.html#afcb5444a0a4ad51f9b2968368e17aa79"> 241</a></span>  <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>  <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> };</div>
-<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  </div>
-<div class="line"><a name="l00255"></a><span class="lineno"><a class="line" href="namespacetvm.html#a59d3cb510c04a3afbe0ec546078db2ea"> 255</a></span> <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<ffi::String, Any> new_attrs);</div>
-<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  </div>
-<div class="line"><a name="l00268"></a><span class="lineno"><a class="line" href="namespacetvm.html#ac72a699554139c2b75c8a3bd03af2bd2"> 268</a></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, ffi::String key, Any value);</div>
-<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  </div>
-<div class="line"><a name="l00270"></a><span class="lineno"><a class="line" href="namespacetvm.html#a2c089f4112b14b10d2288007d257382a"> 270</a></span> <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& key, Any value) {</div>
-<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  <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> }</div>
-<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  </div>
-<div class="line"><a name="l00283"></a><span class="lineno"><a class="line" href="namespacetvm.html#a1c16c956c043e2dd23bcaf5ff5272692"> 283</a></span> <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& key);</div>
-<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  </div>
-<div class="line"><a name="l00312"></a><span class="lineno"> 312</span> <span class="keyword">template</span> <<span class="keyword">typename</span> TFunc></div>
-<div class="line"><a name="l00313"></a><span class="lineno"><a class="line" href="namespacetvm.html#a61b12b12e74b3984360d40547aa7ab29"> 313</a></span> <span class="keyword">inline</span> TFunc <a class="code" href="namespacetvm.html#ac72a699554139c2b75c8a3bd03af2bd2">WithAttr</a>(TFunc input, <span class="keyword">const</span> std::string& attr_key, Any attr_value) {</div>
-<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  <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>  static_assert(TNode::_type_final, <span class="stringliteral">"Can only operate on the leaf nodes"</span>);</div>
-<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  TNode* node = input.CopyOnWrite();</div>
-<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  node->attrs = <a class="code" href="namespacetvm.html#ac72a699554139c2b75c8a3bd03af2bd2">WithAttr</a>(std::move(node->attrs), attr_key, attr_value);</div>
-<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  <span class="keywordflow">return</span> input;</div>
-<div class="line"><a name="l00319"></a><span class="lineno"> 319</span> }</div>
-<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  </div>
-<div class="line"><a name="l00331"></a><span class="lineno"> 331</span> <span class="keyword">template</span> <<span class="keyword">typename</span> TFunc></div>
-<div class="line"><a name="l00332"></a><span class="lineno"><a class="line" href="namespacetvm.html#a31d64ff4720a3ed13273776208ab1391"> 332</a></span> <span class="keyword">inline</span> TFunc <a class="code" href="namespacetvm.html#a59d3cb510c04a3afbe0ec546078db2ea">WithAttrs</a>(TFunc input, ffi::Map<ffi::String, Any> attrs) {</div>
-<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  <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>  static_assert(TNode::_type_final, <span class="stringliteral">"Can only operate on the leaf nodes"</span>);</div>
-<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>  TNode* node = input.CopyOnWrite();</div>
-<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  </div>
-<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  node->attrs = <a class="code" href="namespacetvm.html#a59d3cb510c04a3afbe0ec546078db2ea">WithAttrs</a>(std::move(node->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>  <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>  </div>
+<div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="classtvm_1_1AttrFieldInfoNode.html#aafcd1ccd44f6e27c3783d46bb3e774d4"> 87</a></span>  <a class="code" href="classtvm_1_1AttrFieldInfoNode.html#aafcd1ccd44f6e27c3783d46bb3e774d4">TVM_FFI_DECLARE_OBJECT_INFO_FINAL</a>(<span class="stringliteral">"ir.AttrFieldInfo"</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> };</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  </div>
+<div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="classtvm_1_1AttrFieldInfo.html"> 91</a></span> <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>  <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>  <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> };</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  </div>
+<div class="line"><a name="l00102"></a><span class="lineno"><a class="line" href="classtvm_1_1BaseAttrsNode.html"> 102</a></span> <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>  <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>  <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>  <span class="keyword">template</span> <<span class="keyword">typename</span>... Args></div>
+<div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="classtvm_1_1BaseAttrsNode.html#abcc04a722102d16fd4d86f9b7dcdd1e1"> 112</a></span>  <span class="keyword">inline</span> <span class="keywordtype">void</span> <a class="code" href="classtvm_1_1BaseAttrsNode.html#abcc04a722102d16fd4d86f9b7dcdd1e1">InitBySeq</a>(Args&&... args);</div>
+<div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="classtvm_1_1BaseAttrsNode.html#adf84245590cf8fa64042329a24eaad54"> 120</a></span>  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& kwargs,</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <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>  </div>
+<div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="classtvm_1_1BaseAttrsNode.html#a7c9d86042f7419c0cc25b7b9c1aa8695"> 123</a></span>  <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>  <a class="code" href="classtvm_1_1BaseAttrsNode.html#afabaaba39bdc345410373b0e73125f2a">TVM_FFI_DECLARE_OBJECT_INFO</a>(<span class="stringliteral">"ir.Attrs"</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> };</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  </div>
+<div class="line"><a name="l00131"></a><span class="lineno"><a class="line" href="classtvm_1_1Attrs.html"> 131</a></span> <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>  <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>  <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> };</div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  </div>
+<div class="line"><a name="l00142"></a><span class="lineno"><a class="line" href="classtvm_1_1DictAttrsNode.html"> 142</a></span> <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>  <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>  ffi::Map<ffi::String, ffi::Any> <a class="code" href="classtvm_1_1DictAttrsNode.html#af348aa9a0f2095a34c82be2a97e6e8fc">dict</a>;</div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  </div>
+<div class="line"><a name="l00147"></a><span class="lineno"><a class="line" href="classtvm_1_1DictAttrsNode.html#a6296a6c5f7946e291181996d30b78eb3"> 147</a></span>  <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>  <span class="keyword">namespace </span>rfl = ffi::reflection;</div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  rfl::ObjectDef<DictAttrsNode>().def_ro(<span class="stringliteral">"__dict__"</span>, &<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>  }</div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  </div>
+<div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="classtvm_1_1DictAttrsNode.html#a942e6c4426178c6e8068fae60dac3311"> 152</a></span>  <span class="keywordtype">void</span> <a class="code" href="classtvm_1_1DictAttrsNode.html#a942e6c4426178c6e8068fae60dac3311">InitByPackedArgs</a>(<span class="keyword">const</span> ffi::PackedArgs& 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>  </div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  <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>  <a class="code" href="classtvm_1_1DictAttrsNode.html#a4c67d6d4272cdb2a86d1e1c7dd5f7b39">TVM_FFI_DECLARE_OBJECT_INFO_FINAL</a>(<span class="stringliteral">"ir.DictAttrs"</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> };</div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  </div>
+<div class="line"><a name="l00162"></a><span class="lineno"><a class="line" href="classtvm_1_1DictAttrs.html"> 162</a></span> <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>  <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>  <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>  TVM_DLL <span class="keyword">explicit</span> <a class="code" href="classtvm_1_1DictAttrs.html#aaba8e5c4c42eb8160df2e5e988174222">DictAttrs</a>(ffi::Map<ffi::String, Any> dict = {});</div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  </div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  <span class="comment">// Utils for accessing attributes</span></div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  <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>  <span class="comment">// value if DictAttrsNode is not defined.</span></div>
+<div class="line"><a name="l00196"></a><span class="lineno"> 196</span> <span class="comment"></span> <span class="keyword">template</span> <<span class="keyword">typename</span> TObjectRef></div>
+<div class="line"><a name="l00197"></a><span class="lineno"><a class="line" href="classtvm_1_1DictAttrs.html#ad186f731f94d6b6dcd37dacddcfc714a"> 197</a></span>  ffi::Optional<TObjectRef> <a class="code" href="classtvm_1_1DictAttrs.html#ad186f731f94d6b6dcd37dacddcfc714a">GetAttr</a>(</div>
+<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  <span class="keyword">const</span> std::string& attr_key,</div>
+<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  ffi::Optional<TObjectRef> default_value = ffi::Optional<TObjectRef>(std::nullopt))<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  <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>  <span class="keyword">const</span> <a class="code" href="classtvm_1_1DictAttrsNode.html">DictAttrsNode</a>* node = this->as<DictAttrsNode>();</div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  <span class="keyword">auto</span> it = node-><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>  <span class="keywordflow">if</span> (it != node-><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>  <span class="keywordflow">return</span> (*it).second.cast<TObjectRef>();</div>
+<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  <span class="keywordflow">return</span> default_value;</div>
+<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  }</div>
+<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  }</div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  <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>  <span class="keyword">template</span> <<span class="keyword">typename</span> TObjectRef></div>
+<div class="line"><a name="l00211"></a><span class="lineno"><a class="line" href="classtvm_1_1DictAttrs.html#af63d14a1a6ffeb1c6fc403f46df8c13a"> 211</a></span>  ffi::Optional<TObjectRef> <a class="code" href="classtvm_1_1DictAttrs.html#af63d14a1a6ffeb1c6fc403f46df8c13a">GetAttr</a>(<span class="keyword">const</span> std::string& attr_key, TObjectRef default_value)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  <span class="keywordflow">return</span> GetAttr<TObjectRef>(attr_key, ffi::Optional<TObjectRef>(default_value));</div>
+<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  }</div>
+<div class="line"><a name="l00233"></a><span class="lineno"><a class="line" href="classtvm_1_1DictAttrs.html#a45e524ce0f8ae389341ec37e468d887d"> 233</a></span>  <span class="keywordtype">bool</span> <a class="code" href="classtvm_1_1DictAttrs.html#a45e524ce0f8ae389341ec37e468d887d">HasNonzeroAttr</a>(<span class="keyword">const</span> std::string& attr_key)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  <span class="keywordflow">return</span> GetAttr<Integer>(attr_key, 0).value_or(0).IntValue() != 0;</div>
+<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  }</div>
+<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  </div>
+<div class="line"><a name="l00237"></a><span class="lineno"><a class="line" href="classtvm_1_1DictAttrs.html#aedcebe6fa883eef8d0e4fdbf35909e6b"> 237</a></span>  <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>  <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>  <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> };</div>
+<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  </div>
+<div class="line"><a name="l00252"></a><span class="lineno"><a class="line" href="namespacetvm.html#a59d3cb510c04a3afbe0ec546078db2ea"> 252</a></span> <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<ffi::String, Any> new_attrs);</div>
+<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  </div>
+<div class="line"><a name="l00265"></a><span class="lineno"><a class="line" href="namespacetvm.html#ac72a699554139c2b75c8a3bd03af2bd2"> 265</a></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, ffi::String key, Any value);</div>
+<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  </div>
+<div class="line"><a name="l00267"></a><span class="lineno"><a class="line" href="namespacetvm.html#a2c089f4112b14b10d2288007d257382a"> 267</a></span> <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& key, Any value) {</div>
+<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  <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> }</div>
+<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  </div>
+<div class="line"><a name="l00280"></a><span class="lineno"><a class="line" href="namespacetvm.html#a1c16c956c043e2dd23bcaf5ff5272692"> 280</a></span> <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& key);</div>
+<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  </div>
+<div class="line"><a name="l00309"></a><span class="lineno"> 309</span> <span class="keyword">template</span> <<span class="keyword">typename</span> TFunc></div>
+<div class="line"><a name="l00310"></a><span class="lineno"><a class="line" href="namespacetvm.html#a61b12b12e74b3984360d40547aa7ab29"> 310</a></span> <span class="keyword">inline</span> TFunc <a class="code" href="namespacetvm.html#ac72a699554139c2b75c8a3bd03af2bd2">WithAttr</a>(TFunc input, <span class="keyword">const</span> std::string& attr_key, Any attr_value) {</div>
+<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  <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>  static_assert(TNode::_type_final, <span class="stringliteral">"Can only operate on the leaf nodes"</span>);</div>
+<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  TNode* node = input.CopyOnWrite();</div>
+<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  node->attrs = <a class="code" href="namespacetvm.html#ac72a699554139c2b75c8a3bd03af2bd2">WithAttr</a>(std::move(node->attrs), attr_key, attr_value);</div>
+<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  <span class="keywordflow">return</span> input;</div>
+<div class="line"><a name="l00316"></a><span class="lineno"> 316</span> }</div>
+<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  </div>
+<div class="line"><a name="l00328"></a><span class="lineno"> 328</span> <span class="keyword">template</span> <<span class="keyword">typename</span> TFunc></div>
+<div class="line"><a name="l00329"></a><span class="lineno"><a class="line" href="namespacetvm.html#a31d64ff4720a3ed13273776208ab1391"> 329</a></span> <span class="keyword">inline</span> TFunc <a class="code" href="namespacetvm.html#a59d3cb510c04a3afbe0ec546078db2ea">WithAttrs</a>(TFunc input, ffi::Map<ffi::String, Any> attrs) {</div>
+<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  <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>  static_assert(TNode::_type_final, <span class="stringliteral">"Can only operate on the leaf nodes"</span>);</div>
+<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  TNode* node = input.CopyOnWrite();</div>
+<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  </div>
+<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  node->attrs = <a class="code" href="namespacetvm.html#a59d3cb510c04a3afbe0ec546078db2ea">WithAttrs</a>(std::move(node->attrs), attrs);</div>
+<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>  </div>
+<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  <span class="keywordflow">return</span> input;</div>
+<div class="line"><a name="l00337"></a><span class="lineno"> 337</span> }</div>
<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>  </div>
-<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  <span class="keywordflow">return</span> input;</div>
-<div class="line"><a name="l00340"></a><span class="lineno"> 340</span> }</div>
-<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  </div>
-<div class="line"><a name="l00368"></a><span class="lineno"> 368</span> <span class="keyword">template</span> <<span class="keyword">typename</span> TFunc></div>
-<div class="line"><a name="l00369"></a><span class="lineno"><a class="line" href="namespacetvm.html#a7e2bc626db8be997b1562c79df3d9e11"> 369</a></span> <span class="keyword">inline</span> TFunc <a class="code" href="namespacetvm.html#a1c16c956c043e2dd23bcaf5ff5272692">WithoutAttr</a>(TFunc input, <span class="keyword">const</span> std::string& attr_key) {</div>
-<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>  <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>  static_assert(TNode::_type_final, <span class="stringliteral">"Can only operate on the leaf nodes"</span>);</div>
+<div class="line"><a name="l00365"></a><span class="lineno"> 365</span> <span class="keyword">template</span> <<span class="keyword">typename</span> TFunc></div>
+<div class="line"><a name="l00366"></a><span class="lineno"><a class="line" href="namespacetvm.html#a7e2bc626db8be997b1562c79df3d9e11"> 366</a></span> <span class="keyword">inline</span> TFunc <a class="code" href="namespacetvm.html#a1c16c956c043e2dd23bcaf5ff5272692">WithoutAttr</a>(TFunc input, <span class="keyword">const</span> std::string& attr_key) {</div>
+<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  <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>  static_assert(TNode::_type_final, <span class="stringliteral">"Can only operate on the leaf nodes"</span>);</div>
+<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  </div>
+<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>  TNode* node = input.CopyOnWrite();</div>
+<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  node->attrs = <a class="code" href="namespacetvm.html#a1c16c956c043e2dd23bcaf5ff5272692">WithoutAttr</a>(std::move(node->attrs), attr_key);</div>
<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  </div>
-<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  TNode* node = input.CopyOnWrite();</div>
-<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  node->attrs = <a class="code" href="namespacetvm.html#a1c16c956c043e2dd23bcaf5ff5272692">WithoutAttr</a>(std::move(node->attrs), attr_key);</div>
+<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  <span class="keywordflow">return</span> input;</div>
+<div class="line"><a name="l00374"></a><span class="lineno"> 374</span> }</div>
<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  </div>
-<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  <span class="keywordflow">return</span> input;</div>
-<div class="line"><a name="l00377"></a><span class="lineno"> 377</span> }</div>
-<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  </div>
-<div class="line"><a name="l00387"></a><span class="lineno"> 387</span> <span class="keyword">template</span> <<span class="keyword">typename</span> DerivedType></div>
-<div class="line"><a name="l00388"></a><span class="lineno"><a class="line" href="classtvm_1_1AttrsNodeReflAdapter.html"> 388</a></span> <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>  <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>  <span class="keywordtype">void</span> <a class="code" href="classtvm_1_1AttrsNodeReflAdapter.html#a4ecc2c9f98b17f656cbfe5755461e30c">InitByPackedArgs</a>(<span class="keyword">const</span> ffi::PackedArgs& 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>  LOG(FATAL) << <span class="stringliteral">"`"</span> << DerivedType::_type_key << <span class="stringliteral">"` uses new reflection mechanism for init"</span>;</div>
-<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  }</div>
-<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>  </div>
-<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  <span class="keyword">private</span>:</div>
-<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  DerivedType* <span class="keyword">self</span>() <span class="keyword">const</span> {</div>
-<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  <span class="keywordflow">return</span> <span class="keyword">const_cast<</span>DerivedType*<span class="keyword">></span>(<span class="keyword">static_cast<</span><span class="keyword">const </span>DerivedType*<span class="keyword">></span>(<span class="keyword">this</span>));</div>
-<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>  }</div>
-<div class="line"><a name="l00398"></a><span class="lineno"> 398</span> };</div>
-<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  </div>
-<div class="line"><a name="l00405"></a><span class="lineno"> 405</span> <span class="keyword">template</span> <<span class="keyword">typename</span> TAttrs></div>
-<div class="line"><a name="l00406"></a><span class="lineno"><a class="line" href="namespacetvm.html#a2e3193a20ee748b08d5a528275859dbe"> 406</a></span> <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>  static_assert(std::is_base_of_v<Attrs, TAttrs>, <span class="stringliteral">"Can only take attr nodes"</span>);</div>
-<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>  <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>  <span class="keywordflow">if</span> constexpr (std::is_base_of_v<<a class="code" href="classtvm_1_1AttrsNodeReflAdapter.html">AttrsNodeReflAdapter<ContainerType></a>, ContainerType>) {</div>
-<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  <span class="keyword">static</span> <span class="keyword">auto</span> finit_object = ffi::Function::GetGlobalRequired(<span class="stringliteral">"ffi.MakeObjectFromPackedArgs"</span>);</div>
-<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  AnyView packed_args[1];</div>
-<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  packed_args[0] = ContainerType::RuntimeTypeIndex();</div>
-<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>  ffi::Any rv;</div>
-<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>  finit_object.CallPacked(ffi::PackedArgs(packed_args, 1), &rv);</div>
-<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>  <span class="keywordflow">return</span> rv.cast<TAttrs>();</div>
-<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>  } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  <span class="keyword">auto</span> n = ffi::make_object<ContainerType>();</div>
-<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  n->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>  <span class="keywordflow">return</span> TAttrs(n);</div>
-<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>  }</div>
-<div class="line"><a name="l00421"></a><span class="lineno"> 421</span> }</div>
-<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>  </div>
-<div class="line"><a name="l00423"></a><span class="lineno"> 423</span> } <span class="comment">// namespace tvm</span></div>
-<div class="line"><a name="l00424"></a><span class="lineno"> 424</span> <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> <span class="keyword">template</span> <<span class="keyword">typename</span> DerivedType></div>
+<div class="line"><a name="l00385"></a><span class="lineno"><a class="line" href="classtvm_1_1AttrsNodeReflAdapter.html"> 385</a></span> <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>  <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>  <span class="keywordtype">void</span> <a class="code" href="classtvm_1_1AttrsNodeReflAdapter.html#a4ecc2c9f98b17f656cbfe5755461e30c">InitByPackedArgs</a>(<span class="keyword">const</span> ffi::PackedArgs& 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>  LOG(FATAL) << <span class="stringliteral">"`"</span> << DerivedType::_type_key << <span class="stringliteral">"` uses new reflection mechanism for init"</span>;</div>
+<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  }</div>
+<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  </div>
+<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  DerivedType* <span class="keyword">self</span>() <span class="keyword">const</span> {</div>
+<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>  <span class="keywordflow">return</span> <span class="keyword">const_cast<</span>DerivedType*<span class="keyword">></span>(<span class="keyword">static_cast<</span><span class="keyword">const </span>DerivedType*<span class="keyword">></span>(<span class="keyword">this</span>));</div>
+<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  }</div>
+<div class="line"><a name="l00395"></a><span class="lineno"> 395</span> };</div>
+<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  </div>
+<div class="line"><a name="l00402"></a><span class="lineno"> 402</span> <span class="keyword">template</span> <<span class="keyword">typename</span> TAttrs></div>
+<div class="line"><a name="l00403"></a><span class="lineno"><a class="line" href="namespacetvm.html#a2e3193a20ee748b08d5a528275859dbe"> 403</a></span> <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>  static_assert(std::is_base_of_v<Attrs, TAttrs>, <span class="stringliteral">"Can only take attr nodes"</span>);</div>
+<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>  <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>  <span class="keywordflow">if</span> constexpr (std::is_base_of_v<<a class="code" href="classtvm_1_1AttrsNodeReflAdapter.html">AttrsNodeReflAdapter<ContainerType></a>, ContainerType>) {</div>
+<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  <span class="keyword">static</span> <span class="keyword">auto</span> finit_object = ffi::Function::GetGlobalRequired(<span class="stringliteral">"ffi.MakeObjectFromPackedArgs"</span>);</div>
+<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>  AnyView packed_args[1];</div>
+<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>  packed_args[0] = ContainerType::RuntimeTypeIndex();</div>
+<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  ffi::Any rv;</div>
+<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  finit_object.CallPacked(ffi::PackedArgs(packed_args, 1), &rv);</div>
+<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  <span class="keywordflow">return</span> rv.cast<TAttrs>();</div>
+<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>  } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>  <span class="keyword">auto</span> n = ffi::make_object<ContainerType>();</div>
+<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>  n->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>  <span class="keywordflow">return</span> TAttrs(n);</div>
+<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  }</div>
+<div class="line"><a name="l00418"></a><span class="lineno"> 418</span> }</div>
+<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>  </div>
+<div class="line"><a name="l00420"></a><span class="lineno"> 420</span> } <span class="comment">// namespace tvm</span></div>
+<div class="line"><a name="l00421"></a><span class="lineno"> 421</span> <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 &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("ir.AttrFieldInfo", 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 &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 &&... 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 &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("ir.Attrs", 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("ir.DictAttrs", 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 &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< ffi::String, ffi::Any > 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 &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< ffi::String, ffi::Any > 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 &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< ffi::String, Any > 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< TObjectRef > GetAttr(const std::string &attr_key, ffi::Optional< TObjectRef > default_value=ffi::Optional< TObjectRef >(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< TObjectRef > GetAttr(const std::string &attr_key, ffi::Optional< TObjectRef > default_value=ffi::Optional< TObjectRef >(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< TObjectRef > GetAttr(const std::string &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< TObjectRef > GetAttr(const std::string &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 &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< DataType ></a></div><div class="ttdeci">DataType NullValue< DataType >()</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< ffi::String, Any > 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> } <span class="comment">// namespace tvm</span></div>
<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>  </div>
<div class="line"><a name="l00479"></a><span class="lineno"> 479</span> <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 &lhs, const AxisShardingSpec &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 &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< std::vector< TIRVarAxis > > GetTIRVarAxisGraph(const PrimFunc &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< BufferAxis, BufferAxisHash > *visited, std::vector< BufferAxis > *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 &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< Var, arith::IntSet > AsIntSet(const ffi::Map< Var, Range > &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> } <span class="comment">// namespace tvm</span></div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  </div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span> <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> } <span class="comment">// namespace tvm</span></div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span> <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 &data, const tvm::te::Tensor &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 &x, int axis, int num_newaxis=1, std::string name="T_expand_dims", 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 &a, const tvm::PrimExpr &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>  .def_ro(<span class="stringliteral">"dfb"</span>, &<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>  .def_ro(<span class="stringliteral">"root_fn"</span>, &<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>  }</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  </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>  <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">"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>  <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>  </div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <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>  <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>  </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>  <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>  ffi::Optional<Function> <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>  <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>  ffi::Map<Var, ffi::Array<Var>> <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>  ffi::Array<Var> <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>  </div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  <span class="keyword">private</span>:</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <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> };</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  </div>
-<div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="classtvm_1_1relax_1_1DataflowBlockRewrite.html"> 98</a></span> <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>  <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>  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>  </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>  <a class="code" href="classtvm_1_1relax_1_1DataflowBlockRewriteNode.html">DataflowBlockRewriteNode</a>* <a class="code" href="classtvm_1_1relax_1_1DataflowBlockRewrite.html#ae3fcaaa9b52ae31bfce13dab56d57d4a">operator-></a>() {</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  ICHECK(get() != <span class="keyword">nullptr</span>);</div>
-<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  <span class="keywordflow">return</span> <span class="keyword">static_cast<</span><a class="code" href="classtvm_1_1relax_1_1DataflowBlockRewriteNode.html">DataflowBlockRewriteNode</a>*<span class="keyword">></span>(get_mutable());</div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  }</div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  </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>  <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> };</div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  </div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> } <span class="comment">// namespace relax</span></div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span> } <span class="comment">// namespace tvm</span></div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  </div>
-<div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="binding__rewrite_8h.html#a3ce77ac22e5aa454d3803902b888f6e1"> 117</a></span> <span class="preprocessor">#define TVM_RELAX_BINDING_REWRITE_H_</span></div>
-<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> <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>  <a class="code" href="classtvm_1_1relax_1_1DataflowBlockRewriteNode.html#adf84cecd9b57015ad27acc1b0b7baf4d">TVM_FFI_DECLARE_OBJECT_INFO_FINAL</a>(<span class="stringliteral">"relax.DataflowBlockRewrite"</span>, <a class="code" href="classtvm_1_1relax_1_1DataflowBlockRewriteNode.html">Dataf [...]
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  </div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <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>  <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>  </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>  <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>  ffi::Optional<Function> <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>  <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>  ffi::Map<Var, ffi::Array<Var>> <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>  ffi::Array<Var> <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>  </div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  <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> };</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  </div>
+<div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="classtvm_1_1relax_1_1DataflowBlockRewrite.html"> 96</a></span> <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>  <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>  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>  </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>  <a class="code" href="classtvm_1_1relax_1_1DataflowBlockRewriteNode.html">DataflowBlockRewriteNode</a>* <a class="code" href="classtvm_1_1relax_1_1DataflowBlockRewrite.html#ae3fcaaa9b52ae31bfce13dab56d57d4a">operator-></a>() {</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  ICHECK(get() != <span class="keyword">nullptr</span>);</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <span class="keywordflow">return</span> <span class="keyword">static_cast<</span><a class="code" href="classtvm_1_1relax_1_1DataflowBlockRewriteNode.html">DataflowBlockRewriteNode</a>*<span class="keyword">></span>(get_mutable());</div>
+<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  }</div>
+<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  </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>  <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>  <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> };</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  </div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span> } <span class="comment">// namespace relax</span></div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span> } <span class="comment">// namespace tvm</span></div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  </div>
+<div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="binding__rewrite_8h.html#a3ce77ac22e5aa454d3803902b888f6e1"> 116</a></span> <span class="preprocessor">#define TVM_RELAX_BINDING_REWRITE_H_</span></div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span> <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< Var > 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< Var > 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< Var, ffi::Array< Var > > 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< Function > 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< Var, ffi::Array< Var > > 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< Function > 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("relax.DataflowBlockRewrite", 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-></a></div><div class="ttdeci">DataflowBlockRewriteNode * operator->()</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-></a></div><div class="ttdeci">DataflowBlockRewriteNode * operator->()</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 &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 &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>  </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>  <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>  </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>  <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">"relax.BlockBuilder"</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>  <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>  <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>  <a class="code" href="classtvm_1_1relax_1_1BlockBuilderNode.html#aea09b0082a711498dfc65c26f76163f6">TVM_FFI_DECLARE_OBJECT_INFO</a>(<span class="stringliteral">"relax.BlockBuilder"</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> };</div>
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  </div>
<div class="line"><a name="l00264"></a><span class="lineno"><a class="line" href="classtvm_1_1relax_1_1BlockBuilder.html"> 264</a></span> <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>  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<IRModule> ctx_mod,</div>
<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  <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>  </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>  <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>  <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> };</div>
<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  </div>
<div class="line"><a name="l00324"></a><span class="lineno"> 324</span> } <span class="comment">// namespace relax</span></div>
@@ -174,15 +174,15 @@ $(function() {
<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  </div>
<div class="line"><a name="l00327"></a><span class="lineno"> 327</span> <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 &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 &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 &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="")=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("relax.BlockBuilder", 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 &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< IRModule > 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< IRModule > 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>  <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>  refl::ObjectDef<BlockDependenceInfoNode>();</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  }</div>
-<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  </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>  <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">"tir.BlockDependenceInfo" [...]
-<div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1BlockDependenceInfoNode.html#a4aa800584322c87abcdae53e795c6da4"> 70</a></span>  <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>  </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>  <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>& [...]
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  <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>  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>  << <span class="stringliteral">"IndexError: Cannot find the corresponding BlockScope to the block sref:\n"</span></div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  << ffi::GetRef<Stmt>(scope_root->stmt);</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <span class="keywordflow">return</span> it->second;</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  }</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> };</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  </div>
-<div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1BlockDependenceInfo.html"> 90</a></span> <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>  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>  </div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  <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>  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>  </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>  <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>  <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> };</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  </div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> } <span class="comment">// namespace tir</span></div>
-<div class="line"><a name="l00105"></a><span class="lineno"> 105</span> } <span class="comment">// namespace tvm</span></div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span> <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>  <a class="code" href="classtvm_1_1tir_1_1BlockDependenceInfoNode.html#a6ffa5818b2ffb6cec1b1a7f5c204ad6b">TVM_FFI_DECLARE_OBJECT_INFO_FINAL</a>(<span class="stringliteral">"tir.BlockDependenceInfo"</span>, <a class="code" href="classtvm_1_1tir_1_1BlockDependenceInfoNode.html">BlockDependenceIn [...]
+<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>  </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>  <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>& [...]
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <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>  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>  << <span class="stringliteral">"IndexError: Cannot find the corresponding BlockScope to the block sref:\n"</span></div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  << ffi::GetRef<Stmt>(scope_root->stmt);</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  <span class="keywordflow">return</span> it->second;</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  }</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span> };</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  </div>
+<div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1BlockDependenceInfo.html"> 88</a></span> <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>  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>  </div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  <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>  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>  </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>  <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>  <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> };</div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  </div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> } <span class="comment">// namespace tir</span></div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> } <span class="comment">// namespace tvm</span></div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span> <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< const StmtNode *, StmtSRef > 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("tir.BlockDependenceInfo", 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< StmtSRef, BlockScope, ObjectPtrHash, ObjectPtrEqual > 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 &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 &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 &a, const tvm::PrimExpr &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>  refl::ObjectDef<StmtSRefNode>().def_ro(<span class="stringliteral">"seq_index"</span>, &<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>  }</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  </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>  <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">"tir.StmtSRef"</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>  <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>  <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>  <a class="code" href="classtvm_1_1tir_1_1StmtSRefNode.html#a91049ccd5566979c9233ef96024ff667">TVM_FFI_DECLARE_OBJECT_INFO_FINAL</a>(<span class="stringliteral">"tir.StmtSRef"</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>  </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>  <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>  this->stmt = <span class="keyword">nullptr</span>;</div>
@@ -136,166 +136,157 @@ $(function() {
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  <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>  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>  </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>  <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<</span><a class="code" hre [...]
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  </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>  <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>  </div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <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>  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>  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> };</div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  </div>
-<div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1SRefTreeCreator.html"> 149</a></span> <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>  <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>  <span class="keyword">static</span> std::unordered_map<const StmtNode*, StmtSRef> <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>  <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>  <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>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& kv : <a class="code" href="namespacetvm_1_1topi.html#aaa95d3ad68932ab206efbe0a326db6a2">mod</a>->functions) {</div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  <span class="keyword">const</span> <a class="code" href="classtvm_1_1BaseFunc.html">BaseFunc</a>& base_func = kv.second;</div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  <span class="keywordflow">if</span> (<span class="keyword">auto</span> opt = base_func.as<<a class="code" href="classtvm_1_1tir_1_1PrimFunc.html">PrimFunc</a>>()) {</div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  <span class="keyword">auto</span> func = opt.value();</div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  creator.VisitStmt(func->body);</div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  }</div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  }</div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <span class="keywordflow">return</span> std::move(creator.stmt2ref_);</div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  }</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>  <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>  </div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <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>  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>  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> };</div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  </div>
+<div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1SRefTreeCreator.html"> 146</a></span> <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>  <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>  <span class="keyword">static</span> std::unordered_map<const StmtNode*, StmtSRef> <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>  <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>  <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>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& kv : <a class="code" href="namespacetvm_1_1topi.html#aaa95d3ad68932ab206efbe0a326db6a2">mod</a>->functions) {</div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <span class="keyword">const</span> <a class="code" href="classtvm_1_1BaseFunc.html">BaseFunc</a>& base_func = kv.second;</div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <span class="keywordflow">if</span> (<span class="keyword">auto</span> opt = base_func.as<<a class="code" href="classtvm_1_1tir_1_1PrimFunc.html">PrimFunc</a>>()) {</div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <span class="keyword">auto</span> func = opt.value();</div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  creator.VisitStmt(func->body);</div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  }</div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  }</div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  <span class="keywordflow">return</span> std::move(creator.stmt2ref_);</div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  }</div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  </div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  <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>  </div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <span class="keyword">private</span>:</div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <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>  </div>
-<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  <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>  <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>  </div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  <span class="keywordtype">void</span> PopAndRecordSRef();</div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  </div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  <span class="keywordtype">void</span> PopAndRecordSRef();</div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  </div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  <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>  </div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <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>  </div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  <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>  </div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  <span class="keywordtype">bool</span> include_loops_;</div>
-<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>  std::unordered_map<const StmtNode*, StmtSRef> stmt2ref_;</div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>  std::vector<StmtSRef> srefs_;</div>
-<div class="line"><a name="l00192"></a><span class="lineno"> 192</span> };</div>
-<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  </div>
-<div class="line"><a name="l00201"></a><span class="lineno"><a class="line" href="namespacetvm_1_1tir.html#a82f5fe564edbe0dadbc4a56a82dfe12e"> 201</a></span> <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>  <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>  <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>  <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>  <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> };</div>
-<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  </div>
-<div class="line"><a name="l00213"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1DependencyNode.html"> 213</a></span> <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>  <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>  <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>  <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>  <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>  </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>  <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>  <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>  refl::ObjectDef<DependencyNode>()</div>
-<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  .def_ro(<span class="stringliteral">"src"</span>, &<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>  .def_ro(<span class="stringliteral">"dst"</span>, &<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>  .def_ro(<span class="stringliteral">"kind"</span>, &<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>  }</div>
-<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  </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>  <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">"tir.Dependency"</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>  <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> };</div>
-<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  </div>
-<div class="line"><a name="l00238"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1Dependency.html"> 238</a></span> <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>  <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>  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>  <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> };</div>
-<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  </div>
-<div class="line"><a name="l00258"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1BlockScopeNode.html"> 258</a></span> <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>  <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>  std::unordered_map<StmtSRef, ffi::Array<Dependency>, ObjectPtrHash, ObjectPtrEqual> <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>  std::unordered_map<StmtSRef, ffi::Array<Dependency>, ObjectPtrHash, ObjectPtrEqual> <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>  std::unordered_map<Buffer, ffi::Array<StmtSRef>, ObjectPtrHash, ObjectPtrEqual> <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>  <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>  </div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  <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>  </div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  <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>  </div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <span class="keywordtype">bool</span> include_loops_;</div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  std::unordered_map<const StmtNode*, StmtSRef> stmt2ref_;</div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  std::vector<StmtSRef> srefs_;</div>
+<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> };</div>
+<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  </div>
+<div class="line"><a name="l00198"></a><span class="lineno"><a class="line" href="namespacetvm_1_1tir.html#a82f5fe564edbe0dadbc4a56a82dfe12e"> 198</a></span> <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>  <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>  <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>  <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>  <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> };</div>
+<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  </div>
+<div class="line"><a name="l00210"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1DependencyNode.html"> 210</a></span> <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>  <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>  <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>  <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>  <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>  </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>  <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>  <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>  refl::ObjectDef<DependencyNode>()</div>
+<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  .def_ro(<span class="stringliteral">"src"</span>, &<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>  .def_ro(<span class="stringliteral">"dst"</span>, &<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>  .def_ro(<span class="stringliteral">"kind"</span>, &<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>  }</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>  <a class="code" href="classtvm_1_1tir_1_1DependencyNode.html#ac7050f0f8a7e551916977bce0aa80263">TVM_FFI_DECLARE_OBJECT_INFO_FINAL</a>(<span class="stringliteral">"tir.Dependency"</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> };</div>
+<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  </div>
+<div class="line"><a name="l00233"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1Dependency.html"> 233</a></span> <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>  <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>  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>  <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> };</div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  </div>
+<div class="line"><a name="l00253"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1BlockScopeNode.html"> 253</a></span> <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>  <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>  std::unordered_map<StmtSRef, ffi::Array<Dependency>, ObjectPtrHash, ObjectPtrEqual> <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>  std::unordered_map<StmtSRef, ffi::Array<Dependency>, ObjectPtrHash, ObjectPtrEqual> <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>  std::unordered_map<Buffer, ffi::Array<StmtSRef>, ObjectPtrHash, ObjectPtrEqual> <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>  </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>  <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>  <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>  }</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>  <a class="code" href="classtvm_1_1tir_1_1BlockScopeNode.html#a23b52cad8db67eb123e3a670ad9ddfc5">TVM_FFI_DECLARE_OBJECT_INFO_FINAL</a>(<span class="stringliteral">"tir.BlockScope"</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>  </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>  <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>  <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>  }</div>
-<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  </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>  <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">"tir.BlockScope"</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>  <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>  </div>
-<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00279"></a><span class="lineno"> 279</span> <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>  TVM_DLL ffi::Array<Dependency> <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>& 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>  TVM_DLL ffi::Array<Dependency> <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>& dst) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00292"></a><span class="lineno"> 292</span> };</div>
-<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  </div>
-<div class="line"><a name="l00298"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1BlockScope.html"> 298</a></span> <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>  <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>  <span class="keyword">explicit</span> <a class="code" href="classtvm_1_1tir_1_1BlockScope.html#abd4c11502a8e1d1cb7d03543aa379c07">BlockScope</a>(ObjectPtr<BlockScopeNode> data) : ObjectRef(data) {</div>
-<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  TVM_FFI_ICHECK(data != <span class="keyword">nullptr</span>);</div>
-<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  }</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>  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>  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<StmtSRef>& child_block_srefs);</div>
-<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  </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>  <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> };</div>
-<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  </div>
-<div class="line"><a name="l00320"></a><span class="lineno"> 320</span> } <span class="comment">// namespace tir</span></div>
-<div class="line"><a name="l00321"></a><span class="lineno"> 321</span> } <span class="comment">// namespace tvm</span></div>
-<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  </div>
-<div class="line"><a name="l00323"></a><span class="lineno"> 323</span> <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>  <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00272"></a><span class="lineno"> 272</span> <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>  TVM_DLL ffi::Array<Dependency> <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>& 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>  TVM_DLL ffi::Array<Dependency> <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>& dst) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00285"></a><span class="lineno"> 285</span> };</div>
+<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  </div>
+<div class="line"><a name="l00291"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1BlockScope.html"> 291</a></span> <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>  <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>  <span class="keyword">explicit</span> <a class="code" href="classtvm_1_1tir_1_1BlockScope.html#abd4c11502a8e1d1cb7d03543aa379c07">BlockScope</a>(ObjectPtr<BlockScopeNode> data) : ObjectRef(data) {</div>
+<div class="line"><a name="l00298"></a><span class="lineno"> 298</span>  TVM_FFI_ICHECK(data != <span class="keyword">nullptr</span>);</div>
+<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  }</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>  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>  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<StmtSRef>& child_block_srefs);</div>
+<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  </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>  <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> };</div>
+<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  </div>
+<div class="line"><a name="l00313"></a><span class="lineno"> 313</span> } <span class="comment">// namespace tir</span></div>
+<div class="line"><a name="l00314"></a><span class="lineno"> 314</span> } <span class="comment">// namespace tvm</span></div>
+<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  </div>
+<div class="line"><a name="l00316"></a><span class="lineno"> 316</span> <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< Dependency > GetDepsByDst(const StmtSRef &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< StmtSRef, ffi::Array< Dependency >, ObjectPtrHash, ObjectPtrEqual > 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< Buffer, ffi::Array< StmtSRef >, ObjectPtrHash, ObjectPtrEqual > 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< StmtSRef, ffi::Array< Dependency >, ObjectPtrHash, ObjectPtrEqual > 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< StmtSRef, ffi::Array< Dependency >, ObjectPtrHash, ObjectPtrEqual > 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< Buffer, ffi::Array< StmtSRef >, ObjectPtrHash, ObjectPtrEqual > 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< StmtSRef, ffi::Array< Dependency >, ObjectPtrHash, ObjectPtrEqual > 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("tir.BlockScope", 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< Dependency > GetDepsBySrc(const StmtSRef &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< BlockScopeNode > data)</div><div class="ttdoc">Constructor from ObjectPtr<BlockScopeNode>.</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< BlockScopeNode > data)</div><div class="ttdoc">Constructor from ObjectPtr<BlockScopeNode>.</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< StmtSRef > &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("tir.Dependency", 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< const StmtNode *, StmtSRef > 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< const StmtNode *, StmtSRef > 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 "sref".</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("tir.StmtSRef", 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 &a, const tvm::PrimExpr &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> } <span class="comment">// namespace tvm</span></div>
<div class="line"><a name="l00125"></a><span class="lineno"> 125</span> <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 &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="rv")</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> } <span class="comment">// namespace arith</span></div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> } <span class="comment">// namespace tvm</span></div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> <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 &body, const tir::Buffer &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< Var, IntSet > &hint_map, const ffi::Map< Var, IntSet > &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< Range > 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< Range > 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->shape, [&](const ::tvm::ffi::Array<::tvm::tir::Var>& 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< PrimExpr > shape, FCompute fcompute, std::string name="tensor", std::string tag="", ffi::Map< ffi::String, ffi::Any > 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> <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< PrimExpr > shape, FCompute fcompute, std::string name="tensor", std::string tag="", ffi::Map< ffi::String, ffi::Any > 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>  </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>  ffi::Array<PrimExpr> <a class="code" href="classtvm_1_1tir_1_1BufferNode.html#a96e275d64090dc31c9e5cac913d5cfb3">ElemOffset</a>(ffi::Array<PrimExpr> index) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  </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>  <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">"tir.Buffer"</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>  <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>  </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>  <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>  <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> };</div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  </div>
-<div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1Buffer.html"> 157</a></span> <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>  <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <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>  <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>  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<PrimExpr> <a class="code" href="namespacetvm_1_1top [...]
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  <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>  <a class="code" href="namespacetvm_1_1tir.html#a9ac05a14db42ca73da1d3945e7ce2fd1">BufferType</a> buffer_type, ffi::Array<IntImm> <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>  <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>  </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>  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>  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<PrimExpr> begins, ffi::Array<PrimExpr> 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>  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>  <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>  ffi::Optional<PrimExpr> 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>  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<PrimExpr> 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>  ffi::Optional<PrimExpr> 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>  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<PrimExpr> 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>  ffi::Optional<PrimExpr> predicate = std::nullopt) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  </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>  <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>  </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>  ffi::Array<PrimExpr> <a class="code" href="classtvm_1_1tir_1_1Buffer.html#a7fa08585fc787a950c7ae53ac195e38c">OffsetOf</a>(ffi::Array<PrimExpr> index) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  </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>  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>  </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>  <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>  <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> };</div>
-<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  </div>
-<div class="line"><a name="l00244"></a><span class="lineno"><a class="line" href="namespacetvm_1_1tir.html#ae79e5c24dfb22cc60b4da7f2d37d6e04"> 244</a></span> 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<PrimExpr> <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>  ffi::String name = <span class="stringliteral">"buffer"</span>, ffi::String storage_scope = <span class="stringliteral">""</span>,</div>
-<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  ffi::Optional<ffi::Array<IntImm>> <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>  <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>  </div>
-<div class="line"><a name="l00261"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1DataProducerNode.html"> 261</a></span> <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>  <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>  <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>  <span class="keyword">virtual</span> ffi::Array<PrimExpr> <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>  <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>  <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>  </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>  <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">"tir.DataProducer"</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>  <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> };</div>
-<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  </div>
-<div class="line"><a name="l00289"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1DataProducer.html"> 289</a></span> <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>  <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>  <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> };</div>
-<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  </div>
-<div class="line"><a name="l00307"></a><span class="lineno"><a class="line" href="namespacetvm_1_1tir.html#ada2b82fa6b780c3d3396ec300ddc1039"> 307</a></span> 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<PrimExpr> <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>  std::string name, <span class="keywordtype">int</span> data_alignment,</div>
-<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  <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>  std::string memory_scope = <span class="stringliteral">""</span>);</div>
-<div class="line"><a name="l00311"></a><span class="lineno"> 311</span> } <span class="comment">// namespace tir</span></div>
-<div class="line"><a name="l00312"></a><span class="lineno"> 312</span> } <span class="comment">// namespace tvm</span></div>
-<div class="line"><a name="l00313"></a><span class="lineno"> 313</span> <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>  <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>  </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>  <a class="code" href="classtvm_1_1tir_1_1BufferNode.html#ae8a63237f6be04fa9d29c5d8ba6f03c9">TVM_FFI_DECLARE_OBJECT_INFO_FINAL</a>(<span class="stringliteral">"tir.Buffer"</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>  <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> };</div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  </div>
+<div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1Buffer.html"> 156</a></span> <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>  <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <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>  <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>  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<PrimExpr> <a class="code" href="namespacetvm_1_1top [...]
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  <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>  <a class="code" href="namespacetvm_1_1tir.html#a9ac05a14db42ca73da1d3945e7ce2fd1">BufferType</a> buffer_type, ffi::Array<IntImm> <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>  <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>  </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>  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>  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<PrimExpr> begins, ffi::Array<PrimExpr> 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>  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>  <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>  ffi::Optional<PrimExpr> 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>  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<PrimExpr> 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>  ffi::Optional<PrimExpr> 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>  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<PrimExpr> 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>  ffi::Optional<PrimExpr> predicate = std::nullopt) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  </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>  <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>  </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>  ffi::Array<PrimExpr> <a class="code" href="classtvm_1_1tir_1_1Buffer.html#a7fa08585fc787a950c7ae53ac195e38c">OffsetOf</a>(ffi::Array<PrimExpr> index) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  </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>  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>  </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>  <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>  <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> };</div>
+<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  </div>
+<div class="line"><a name="l00243"></a><span class="lineno"><a class="line" href="namespacetvm_1_1tir.html#ae79e5c24dfb22cc60b4da7f2d37d6e04"> 243</a></span> 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<PrimExpr> <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>  ffi::String name = <span class="stringliteral">"buffer"</span>, ffi::String storage_scope = <span class="stringliteral">""</span>,</div>
+<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  ffi::Optional<ffi::Array<IntImm>> <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>  <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>  </div>
+<div class="line"><a name="l00260"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1DataProducerNode.html"> 260</a></span> <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>  <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>  <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>  <span class="keyword">virtual</span> ffi::Array<PrimExpr> <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>  <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>  <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>  <a class="code" href="classtvm_1_1tir_1_1DataProducerNode.html#a629c21d779be75da2022c7ec625ddcbf">TVM_FFI_DECLARE_OBJECT_INFO</a>(<span class="stringliteral">"tir.DataProducer"</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> };</div>
+<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  </div>
+<div class="line"><a name="l00286"></a><span class="lineno"><a class="line" href="classtvm_1_1tir_1_1DataProducer.html"> 286</a></span> <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>  <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>  <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> };</div>
+<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  </div>
+<div class="line"><a name="l00304"></a><span class="lineno"><a class="line" href="namespacetvm_1_1tir.html#ada2b82fa6b780c3d3396ec300ddc1039"> 304</a></span> 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<PrimExpr> <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>  std::string name, <span class="keywordtype">int</span> data_alignment,</div>
+<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  <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>  std::string memory_scope = <span class="stringliteral">""</span>);</div>
+<div class="line"><a name="l00308"></a><span class="lineno"> 308</span> } <span class="comment">// namespace tir</span></div>
+<div class="line"><a name="l00309"></a><span class="lineno"> 309</span> } <span class="comment">// namespace tvm</span></div>
+<div class="line"><a name="l00310"></a><span class="lineno"> 310</span> <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< PrimExpr > 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< PrimExpr > ElemOffset(ffi::Array< PrimExpr > 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< PrimExpr > 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("tir.Buffer", 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< PrimExpr > begin, DataType dtype, ffi::Optional< PrimExpr > 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< PrimExpr > shape, ffi::Array< PrimExpr > strides, PrimExpr elem_offset, ffi::String name, int data_alignment, int offset_factor, BufferType buffer_type, ffi::Array< IntImm > 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< PrimExpr > 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< PrimExpr > begins, ffi::Array< PrimExpr > 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< PrimExpr > begin, PrimExpr value, ffi::Optional< PrimExpr > 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("tir.DataProducer", 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< PrimExpr > 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>  .def_ro(<span class="stringliteral">"target"</span>, &<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>  .def_ro(<span class="stringliteral">"params"</span>, &<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>  }</div>
-<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>  </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>  <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">"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>  <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> };</div>
-<div class="line"><a name="l00057"></a><span class="lineno"> 57</span>  </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> <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>  <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>  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>  <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>  ffi::Optional<ffi::Map<ffi::String, runtime::Tensor>> 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>  <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> };</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  </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> <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>  <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>  ffi::Optional<ffi::String> <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>  ffi::Optional<ffi::String> <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>  </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>  <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>  <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>  refl::ObjectDef<BuilderResultNode>()</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  .def_ro(<span class="stringliteral">"artifact_path"</span>, &<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>  .def_ro(<span class="stringliteral">"error_msg"</span>, &<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>  }</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  </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>  <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">"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>  <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> };</div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  </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> <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>  <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>  TVM_DLL <span class="keyword">explicit</span> <a class="code" href="classtvm_1_1meta__schedule_1_1BuilderResult.html#aa0a1254f9899ac775b02d6d1bfffc783">BuilderResult</a>(ffi::Optional<ffi::String> artifact_path,</div>
-<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>  ffi::Optional<ffi::String> 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>  <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> };</div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  </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> <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>  <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>  <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>  <span class="keyword">virtual</span> ffi::Array<BuilderResult> <a class="code" href="classtvm_1_1meta__schedule_1_1BuilderNode.html#a220de0c39924fc803d62ba4ebb727cbd">Build</a>(<span class="keyword">const</span> ffi::Array<BuilderInput>& 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>  <span class="keyword">using</span> <a class="code" href="classtvm_1_1meta__schedule_1_1BuilderNode.html#a294e7e5f9f01e8d11555691bcb375502">FBuild</a> = ffi::TypedFunction<ffi::Array<BuilderResult>(<span class="keyword">const</span> ffi::Array<BuilderInput>&)>;</div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  </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>  <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">"meta_schedule.Builder"</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>  <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> };</div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  </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> <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>  <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>  <span class="keyword">explicit</span> <a class="code" href="classtvm_1_1meta__schedule_1_1Builder.html#a2a7aa2d52f0f106a9a13c9052b8a22e0">Builder</a>(ObjectPtr<BuilderNode> data) : ObjectRef(data) {</div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  TVM_FFI_ICHECK(data != <span class="keyword">nullptr</span>);</div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  }</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>  <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>  <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> };</div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  </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> <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>  <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>  <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>  </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>  <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>  <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>  refl::ObjectDef<PyBuilderNode>().def_ro(<span class="stringliteral">"f_build"</span>, &<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>  }</div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  </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>  ffi::Array<BuilderResult> <a class="code" href="classtvm_1_1meta__schedule_1_1PyBuilderNode.html#a90d4630c53de514ba47d2bf31e906db0">Build</a>(<span class="keyword">const</span> ffi::Array<BuilderInput>& build_inputs) <span class="keyword">final</span> {</div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  ICHECK(<a class="code" href="classtvm_1_1meta__schedule_1_1PyBuilderNode.html#a4ea31c8060f7921ae79135a19bb0f20e">f_build</a> != <span class="keyword">nullptr</span>) << <span class="stringliteral">"PyBuilder's Build method not implemented!"</span>;</div>
-<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  <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>  }</div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  </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>  <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">"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>  <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> };</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>  <a class="code" href="classtvm_1_1meta__schedule_1_1BuilderInputNode.html#a44eb70aab790324168dd3ce5e01fb8f0">TVM_FFI_DECLARE_OBJECT_INFO_FINAL</a>(<span class="stringliteral">"meta_schedule.BuilderInput"</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>  runtime::Object);</div>
+<div class="line"><a name="l00055"></a><span class="lineno"> 55</span> };</div>
+<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>  </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> <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>  <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>  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>  <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>  ffi::Optional<ffi::Map<ffi::String, runtime::Tensor>> 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>  <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> };</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>  </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> <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>  <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>  ffi::Optional<ffi::String> <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>  ffi::Optional<ffi::String> <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>  </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>  <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>  <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>  refl::ObjectDef<BuilderResultNode>()</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  .def_ro(<span class="stringliteral">"artifact_path"</span>, &<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>  .def_ro(<span class="stringliteral">"error_msg"</span>, &<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>  }</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>  <a class="code" href="classtvm_1_1meta__schedule_1_1BuilderResultNode.html#aa9ac191daadf670ba1da1a7b018ad590">TVM_FFI_DECLARE_OBJECT_INFO_FINAL</a>(<span class="stringliteral">"meta_schedule.BuilderResult"</span>, <a class="code" href="classtvm_1_1meta__schedule_1_1BuilderResultNode.html [...]
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  runtime::Object);</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> };</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  </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> <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>  <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>  TVM_DLL <span class="keyword">explicit</span> <a class="code" href="classtvm_1_1meta__schedule_1_1BuilderResult.html#aa0a1254f9899ac775b02d6d1bfffc783">BuilderResult</a>(ffi::Optional<ffi::String> artifact_path,</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  ffi::Optional<ffi::String> 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>  <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>  <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> };</div>
+<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>  </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> <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>  <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>  <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>  <span class="keyword">virtual</span> ffi::Array<BuilderResult> <a class="code" href="classtvm_1_1meta__schedule_1_1BuilderNode.html#a220de0c39924fc803d62ba4ebb727cbd">Build</a>(<span class="keyword">const</span> ffi::Array<BuilderInput>& 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>  <span class="keyword">using</span> <a class="code" href="classtvm_1_1meta__schedule_1_1BuilderNode.html#a294e7e5f9f01e8d11555691bcb375502">FBuild</a> = ffi::TypedFunction<ffi::Array<BuilderResult>(<span class="keyword">const</span> ffi::Array<BuilderInput>&)>;</div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  </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>  <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>  <a class="code" href="classtvm_1_1meta__schedule_1_1BuilderNode.html#a97489b6a7ac55cd9bd849b3d519fd2a0">TVM_FFI_DECLARE_OBJECT_INFO</a>(<span class="stringliteral">"meta_schedule.Builder"</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> };</div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  </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> <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>  <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>  <span class="keyword">explicit</span> <a class="code" href="classtvm_1_1meta__schedule_1_1Builder.html#a2a7aa2d52f0f106a9a13c9052b8a22e0">Builder</a>(ObjectPtr<BuilderNode> data) : ObjectRef(data) {</div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  TVM_FFI_ICHECK(data != <span class="keyword">nullptr</span>);</div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  }</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>  <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>  <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> };</div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  </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> <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>  <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>  <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>  </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>  <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>  <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>  refl::ObjectDef<PyBuilderNode>().def_ro(<span class="stringliteral">"f_build"</span>, &<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>  }</div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  </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>  ffi::Array<BuilderResult> <a class="code" href="classtvm_1_1meta__schedule_1_1PyBuilderNode.html#a90d4630c53de514ba47d2bf31e906db0">Build</a>(<span class="keyword">const</span> ffi::Array<BuilderInput>& build_inputs) <span class="keyword">final</span> {</div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  ICHECK(<a class="code" href="classtvm_1_1meta__schedule_1_1PyBuilderNode.html#a4ea31c8060f7921ae79135a19bb0f20e">f_build</a> != <span class="keyword">nullptr</span>) << <span class="stringliteral">"PyBuilder's Build method not implemented!"</span>;</div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  <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>  }</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>  <a class="code" href="classtvm_1_1meta__schedule_1_1PyBuilderNode.html#a59c0a7db2116263121247721d577c9ff">TVM_FFI_DECLARE_OBJECT_INFO_FINAL</a>(<span class="stringliteral">"meta_schedule.PyBuilder"</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> };</div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  </div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span> } <span class="comment">// namespace meta_schedule</span></div>
+<div class="line"><a name="l00173"></a><span class="lineno"> 173</span> } <span class="comment">// namespace tvm</span></div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  </div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> } <span class="comment">// namespace meta_schedule</span></div>
-<div class="line"><a name="l00176"></a><span class="lineno"> 176</span> } <span class="comment">// namespace tvm</span></div>
-<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  </div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span> <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> <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("meta_schedule.BuilderInput", 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< ffi::Map< ffi::String, runtime::Tensor > > 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< ffi::Map< ffi::String, runtime::Tensor >> 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< BuilderResult > Build(const ffi::Array< BuilderInput > &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< ffi::Array< BuilderResult >(const ffi::Array< BuilderInput > &)> 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< ffi::Array< BuilderResult >(const ffi::Array< BuilderInput > &)> 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< ffi::String > 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< ffi::String > 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("meta_schedule.Builder", 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< ffi::String > 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("meta_schedule.BuilderResult", 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< ffi::String > 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< ffi::String > artifact_path, ffi::Optional< ffi::String > 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< BuilderNode > data)</div><div class="ttdoc">Constructor from ObjectPtr<BuilderNode>.</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< BuilderNode > data)</div><div class="ttdoc">Constructor from ObjectPtr<BuilderNode>.</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< BuilderResult > Build(const ffi::Array< BuilderInput > &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("meta_schedule.PyBuilder", 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< BuilderResult > Build(const ffi::Array< BuilderInput > &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 &a, const tvm::PrimExpr &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>  <span class="stringliteral">"Whether the reduction operation performs in group or globally or in group as "</span></div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>  <span class="stringliteral">"default."</span>);</div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>  }</div>
-<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>  </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>  <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">"relax.attrs.AllReduceAttrs"</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>  <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> }; <span class="comment">// struct AllReduceAttrs</span></div>
-<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>  </div>
-<div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="structtvm_1_1relax_1_1AllGatherAttrs.html"> 54</a></span> <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><AllGatherAttrs> {</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>  <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>  <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>  </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>  <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>  <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>  refl::ObjectDef<AllGatherAttrs>()</div>
-<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  .def_ro(<span class="stringliteral">"num_workers"</span>, &<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>  <span class="stringliteral">"The number of workers, also the number of parts the given buffer should be "</span></div>
-<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>  <span class="stringliteral">"chunked into."</span>)</div>
-<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  .def_ro(<span class="stringliteral">"in_group"</span>, &<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>  <span class="stringliteral">"Whether the allgather operation performs in group or globally or in group as "</span></div>
-<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>  <span class="stringliteral">"default."</span>);</div>
-<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>  }</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>  <a class="code" href="structtvm_1_1relax_1_1AllReduceAttrs.html#ab10ac5fa354283552ccf49019505f2d2">TVM_FFI_DECLARE_OBJECT_INFO_FINAL</a>(<span class="stringliteral">"relax.attrs.AllReduceAttrs"</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> }; <span class="comment">// struct AllReduceAttrs</span></div>
+<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>  </div>
+<div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="structtvm_1_1relax_1_1AllGatherAttrs.html"> 52</a></span> <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><AllGatherAttrs> {</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>  <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>  <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>  </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>  <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>  <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>  refl::ObjectDef<AllGatherAttrs>()</div>
+<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>  .def_ro(<span class="stringliteral">"num_workers"</span>, &<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>  <span class="stringliteral">"The number of workers, also the number of parts the given buffer should be "</span></div>
+<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>  <span class="stringliteral">"chunked into."</span>)</div>
+<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>  .def_ro(<span class="stringliteral">"in_group"</span>, &<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>  <span class="stringliteral">"Whether the allgather operation performs in group or globally or in group as "</span></div>
+<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>  <span class="stringliteral">"default."</span>);</div>
+<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>  }</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>  <a class="code" href="structtvm_1_1relax_1_1AllGatherAttrs.html#ac2da1e90052714183ac9c10161fa6810">TVM_FFI_DECLARE_OBJECT_INFO_FINAL</a>(<span class="stringliteral">"relax.attrs.AllGatherAttrs"</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> }; <span class="comment">// struct AllGatherAttrs</span></div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>  </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>  <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">"relax.attrs.AllGatherAttrs"</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>  <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> }; <span class="comment">// struct AllGatherAttrs</span></div>
-<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>  </div>
-<div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="structtvm_1_1relax_1_1ScatterCollectiveAttrs.html"> 74</a></span> <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><ScatterCollectiveAttrs> {</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>  <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>  <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>  </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>  <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>  <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>  refl::ObjectDef<ScatterCollectiveAttrs>()</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  .def_ro(<span class="stringliteral">"num_workers"</span>, &<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>  <span class="stringliteral">"The number of workers, also the number of parts the given buffer should be "</span></div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <span class="stringliteral">"chunked into."</span>)</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  .def_ro(<span class="stringliteral">"axis"</span>, &<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>  <span class="stringliteral">"The axis of the tensor to be scattered. The tensor will be chunked along "</span></div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <span class="stringliteral">"this axis."</span>);</div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  }</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  </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>  <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">"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>  <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> }; <span class="comment">// struct ScatterCollectiveAttrs</span></div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  </div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span> } <span class="comment">// namespace relax</span></div>
-<div class="line"><a name="l00094"></a><span class="lineno"> 94</span> } <span class="comment">// namespace tvm</span></div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  </div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span> <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> <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><ScatterCollectiveAttrs> {</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>  <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>  <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>  </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>  <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>  <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>  refl::ObjectDef<ScatterCollectiveAttrs>()</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  .def_ro(<span class="stringliteral">"num_workers"</span>, &<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>  <span class="stringliteral">"The number of workers, also the number of parts the given buffer should be "</span></div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  <span class="stringliteral">"chunked into."</span>)</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  .def_ro(<span class="stringliteral">"axis"</span>, &<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>  <span class="stringliteral">"The axis of the tensor to be scattered. The tensor will be chunked along "</span></div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <span class="stringliteral">"this axis."</span>);</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  }</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>  <a class="code" href="structtvm_1_1relax_1_1ScatterCollectiveAttrs.html#aba988dcf4c6b5608a49e38206c91e14e">TVM_FFI_DECLARE_OBJECT_INFO_FINAL</a>(<span class="stringliteral">"relax.attrs.ScatterCollectiveAttrs"</span>, <a class="code" href="structtvm_1_1relax_1_1ScatterCollectiveAttrs.html"> [...]
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  <a class="code" href="classtvm_1_1BaseAttrsNode.html">BaseAttrsNode</a>);</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span> }; <span class="comment">// struct ScatterCollectiveAttrs</span></div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span>  </div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span> } <span class="comment">// namespace relax</span></div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> } <span class="comment">// namespace tvm</span></div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  </div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span> <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("relax.attrs.AllGatherAttrs", 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("relax.attrs.AllReduceAttrs", 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("relax.attrs.ScatterCollectiveAttrs", 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"> </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"> </td></tr>
+<tr class="memitem:a3ae31205d125508f83752ba76dcef2cd"><td class="memItemLeft" align="right" valign="top"> </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"> </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">◆ </a></span>TVM_DEFINE_OBJECT_REF_METHODS()</h2>
+<a id="a3ae31205d125508f83752ba76dcef2cd"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a3ae31205d125508f83752ba76dcef2cd">◆ </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> </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>("ir.AttrFieldInfo", 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"> </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"> </td></tr>
+<tr class="memitem:aafcd1ccd44f6e27c3783d46bb3e774d4"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1AttrFieldInfoNode.html#aafcd1ccd44f6e27c3783d46bb3e774d4">TVM_FFI_DECLARE_OBJECT_INFO_FINAL</a> ("ir.AttrFieldInfo", AttrFieldInfoNode, Object)</td></tr>
+<tr class="separator:aafcd1ccd44f6e27c3783d46bb3e774d4"><td class="memSeparator" colspan="2"> </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 * </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1AttrFieldInfoNode.html#afe4293c9f1aea71f845c5ed9633af2c9">_type_key</a> = "ir.AttrFieldInfo"</td></tr>
-<tr class="separator:afe4293c9f1aea71f845c5ed9633af2c9"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:afba3081e4108c2ba2d34a6a228de5d88"><td class="memItemLeft" align="right" valign="top">static constexpr TVMFFISEqHashKind </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"> </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">◆ </a></span>TVM_DECLARE_FINAL_OBJECT_INFO()</h2>
+<a id="aafcd1ccd44f6e27c3783d46bb3e774d4"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aafcd1ccd44f6e27c3783d46bb3e774d4">◆ </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">"ir.AttrFieldInfo" </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> </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">◆ </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 = "ir.AttrFieldInfo"</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">◆ </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->Node1 -->
<g id="edge1" class="edge">
<title>Node2->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->Node1 -->
<g id="edge1" class="edge">
<title>Node2->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->Node1 -->
<g id="edge1" class="edge">
<title>Node2->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->Node1 -->
<g id="edge1" class="edge">
<title>Node2->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"> </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"> </td></tr>
+<tr class="memitem:a329a6fb7890822cb4c09c6e84b29908f"><td class="memItemLeft" align="right" valign="top"> </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"> </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">◆ </a></span>TVM_DEFINE_OBJECT_REF_METHODS()</h2>
+<a id="a329a6fb7890822cb4c09c6e84b29908f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a329a6fb7890822cb4c09c6e84b29908f">◆ </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> </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< DerivedType ></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 &args, bool allow_unknown) final</td><td class="entry"><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html">tvm::AttrsNodeReflAdapter< DerivedType ></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 &&... 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 &args, bool allow_unknown) final</td><td class="entry"><a class="el" href="classtvm_1_1AttrsNodeReflAdapter.html">tvm::AttrsNodeReflAdapter< DerivedType ></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 &&... 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>("ir.Attrs", 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< DerivedType >:</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< DerivedType >:</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 </td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classtvm_1_1BaseAttrsNode.html#abcc04a722102d16fd4d86f9b7dcdd1e1">InitBySeq</a> (Args &&... args)</td></tr>
<tr class="memdesc:abcc04a722102d16fd4d86f9b7dcdd1e1 inherit pub_methods_classtvm_1_1BaseAttrsNode"><td class="mdescLeft"> </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"> </td></tr>
-<tr class="memitem:aaca524319f015a18a1385cfea5ba8895 inherit pub_methods_classtvm_1_1BaseAttrsNode"><td class="memItemLeft" align="right" valign="top"> </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"> </td></tr>
+<tr class="memitem:afabaaba39bdc345410373b0e73125f2a inherit pub_methods_classtvm_1_1BaseAttrsNode"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1BaseAttrsNode.html#afabaaba39bdc345410373b0e73125f2a">TVM_FFI_DECLARE_OBJECT_INFO</a> ("ir.Attrs", BaseAttrsNode, Object)</td></tr>
+<tr class="separator:afabaaba39bdc345410373b0e73125f2a inherit pub_methods_classtvm_1_1BaseAttrsNode"><td class="memSeparator" colspan="2"> </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="-"/> 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 </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"> </td></tr>
-<tr class="memitem:a8e4fd4e728774e0556cda84b0c2b80d6 inherit pub_static_attribs_classtvm_1_1BaseAttrsNode"><td class="memItemLeft" align="right" valign="top">static constexpr const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1BaseAttrsNode.html#a8e4fd4e728774e0556cda84b0c2b80d6">_type_key</a> = "ir.Attrs"</td></tr>
-<tr class="separator:a8e4fd4e728774e0556cda84b0c2b80d6 inherit pub_static_attribs_classtvm_1_1BaseAttrsNode"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template<typename DerivedType><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< DerivedType > 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< DerivedType ></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">< DerivedType ></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">< DerivedType ></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->Node1 -->
<g id="edge1" class="edge">
<title>Node2->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->Node2 -->
<g id="edge2" class="edge">
<title>Node3->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< DerivedType > 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< DerivedType ></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">< DerivedType ></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">< DerivedType ></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->Node1 -->
<g id="edge1" class="edge">
<title>Node2->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->Node2 -->
<g id="edge2" class="edge">
<title>Node3->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->Node1 -->
<g id="edge1" class="edge">
<title>Node2->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->Node3 -->
<g id="edge2" class="edge">
<title>Node1->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->Node1 -->
<g id="edge1" class="edge">
<title>Node2->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 &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 &&... 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 &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 &&... 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>("ir.Attrs", 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 </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1BaseAttrsNode.html#adf84245590cf8fa64042329a24eaad54">InitByPackedArgs</a> (const ffi::PackedArgs &kwargs, bool allow_unknown=false)=0</td></tr>
<tr class="memdesc:adf84245590cf8fa64042329a24eaad54"><td class="mdescLeft"> </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"> </td></tr>
-<tr class="memitem:aaca524319f015a18a1385cfea5ba8895"><td class="memItemLeft" align="right" valign="top"> </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"> </td></tr>
+<tr class="memitem:afabaaba39bdc345410373b0e73125f2a"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1BaseAttrsNode.html#afabaaba39bdc345410373b0e73125f2a">TVM_FFI_DECLARE_OBJECT_INFO</a> ("ir.Attrs", BaseAttrsNode, Object)</td></tr>
+<tr class="separator:afabaaba39bdc345410373b0e73125f2a"><td class="memSeparator" colspan="2"> </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 </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"> </td></tr>
-<tr class="memitem:a8e4fd4e728774e0556cda84b0c2b80d6"><td class="memItemLeft" align="right" valign="top">static constexpr const char * </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1BaseAttrsNode.html#a8e4fd4e728774e0556cda84b0c2b80d6">_type_key</a> = "ir.Attrs"</td></tr>
-<tr class="separator:a8e4fd4e728774e0556cda84b0c2b80d6"><td class="memSeparator" colspan="2"> </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<typename... Args> </div>
</div>
</div>
-<a id="aaca524319f015a18a1385cfea5ba8895"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#aaca524319f015a18a1385cfea5ba8895">◆ </a></span>TVM_DECLARE_BASE_OBJECT_INFO()</h2>
+<a id="afabaaba39bdc345410373b0e73125f2a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#afabaaba39bdc345410373b0e73125f2a">◆ </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">"ir.Attrs" </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> </td>
<td class="paramname">, </td>
</tr>
@@ -259,28 +263,6 @@ template<typename... Args> </div>
</div>
</div>
<h2 class="groupheader">Member Data Documentation</h2>
-<a id="a8e4fd4e728774e0556cda84b0c2b80d6"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a8e4fd4e728774e0556cda84b0c2b80d6">◆ </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 = "ir.Attrs"</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">◆ </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->Node1 -->
<g id="edge1" class="edge">
<title>Node2->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">< SliceScatterAttrs ></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">< SliceScatterAttrs ></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->Node3 -->
<g id="edge2" class="edge">
<title>Node1->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">< ScatterCollectiveAttrs ></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">< ScatterCollectiveAttrs ></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->Node5 -->
<g id="edge4" class="edge">
<title>Node1->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">< HintOnDeviceAttrs ></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">< HintOnDeviceAttrs ></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->Node7 -->
<g id="edge6" class="edge">
<title>Node1->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">< TakeAttrs ></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">< TakeAttrs ></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->Node9 -->
<g id="edge8" class="edge">
<title>Node1->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">< ScatterElementsAttrs ></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">< ScatterElementsAttrs ></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->Node11 -->
<g id="edge10" class="edge">
<title>Node1->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">< MeshgridAttrs ></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">< MeshgridAttrs ></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->Node13 -->
<g id="edge12" class="edge">
<title>Node1->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">< GatherElementsAttrs ></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">< GatherElementsAttrs ></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->Node15 -->
<g id="edge14" class="edge">
<title>Node1->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">< EinsumAttrs ></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">< EinsumAttrs ></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->Node17 -->
<g id="edge16" class="edge">
<title>Node1->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">< DistributionAttrs ></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">< DistributionAttrs ></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->Node19 -->
<g id="edge18" class="edge">
<title>Node1->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">< CallInplacePackedAttrs ></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">< CallInplacePackedAttrs ></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->Node21 -->
<g id="edge20" class="edge">
<title>Node1->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">< AttentionAttrs ></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">< AttentionAttrs ></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->Node23 -->
<g id="edge22" class="edge">
<title>Node1->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">< AllReduceAttrs ></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">< AllReduceAttrs ></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->Node25 -->
<g id="edge24" class="edge">
<title>Node1->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">< AdaptivePool2DAttrs ></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">< AdaptivePool2DAttrs ></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->Node27 -->
<g id="edge26" class="edge">
<title>Node1->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">< ScatterNDAttrs ></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">< ScatterNDAttrs ></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->Node29 -->
<g id="edge28" class="edge">
<title>Node1->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">< InitAttrs ></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">< InitAttrs ></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->Node31 -->
<g id="edge30" class="edge">
<title>Node1->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">< FlipAttrs ></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">< FlipAttrs ></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->Node33 -->
<g id="edge32" class="edge">
<title>Node1->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">< AllGatherAttrs ></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">< AllGatherAttrs ></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->Node35 -->
<g id="edge34" class="edge">
<title>Node1->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">< AdaptivePool3DAttrs ></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">< AdaptivePool3DAttrs ></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->Node37 -->
<g id="edge36" class="edge">
<title>Node1->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">< ToVDeviceAttrs ></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">< ToVDeviceAttrs ></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->Node39 -->
<g id="edge38" class="edge">
<title>Node1->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">< IndexPutAttrs ></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">< IndexPutAttrs ></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->Node41 -->
<g id="edge40" class="edge">
<title>Node1->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">< ExpandDimsAttrs ></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">< ExpandDimsAttrs ></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->Node43 -->
<g id="edge42" class="edge">
<title>Node1->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">< ConcatAttrs ></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">< ConcatAttrs ></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->Node45 -->
<g id="edge44" class="edge">
<title>Node1->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">< TriluAttrs ></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">< TriluAttrs ></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->Node47 -->
<g id="edge46" class="edge">
<title>Node1->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">< SoftmaxAttrs ></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">< SoftmaxAttrs ></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->Node49 -->
<g id="edge48" class="edge">
<title>Node1->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">< AdaptivePool1DAttrs ></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">< AdaptivePool1DAttrs ></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->Node51 -->
<g id="edge50" class="edge">
<title>Node1->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">< SoftplusAttrs ></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">< SoftplusAttrs ></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->Node53 -->
<g id="edge52" class="edge">
<title>Node1->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">< MatmulAttrs ></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">< MatmulAttrs ></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->Node55 -->
<g id="edge54" class="edge">
<title>Node1->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">< ArgmaxArgminAttrs ></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">< ArgmaxArgminAttrs ></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->Node57 -->
<g id="edge56" class="edge">
<title>Node1->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">< Resize2DAttrs ></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">< Resize2DAttrs ></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->Node59 -->
<g id="edge58" class="edge">
<title>Node1->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">< Pool3DAttrs ></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">< Pool3DAttrs ></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->Node61 -->
<g id="edge60" class="edge">
<title>Node1->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">< LayerNormAttrs ></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">< LayerNormAttrs ></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->Node63 -->
<g id="edge62" class="edge">
<title>Node1->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">< SqueezeAttrs ></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">< SqueezeAttrs ></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->Node65 -->
<g id="edge64" class="edge">
<title>Node1->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">< Pool2DAttrs ></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">< Pool2DAttrs ></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->Node67 -->
<g id="edge66" class="edge">
<title>Node1->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">< OneHotAttrs ></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">< OneHotAttrs ></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->Node69 -->
<g id="edge68" class="edge">
<title>Node1->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">< NLLLossAttrs ></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">< NLLLossAttrs ></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->Node71 -->
<g id="edge70" class="edge">
<title>Node1->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">< BatchNormAttrs ></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">< BatchNormAttrs ></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->Node73 -->
<g id="edge72" class="edge">
<title>Node1->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">< RepeatAttrs ></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">< RepeatAttrs ></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->Node75 -->
<g id="edge74" class="edge">
<title>Node1->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">< Pool1DAttrs ></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">< Pool1DAttrs ></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->Node77 -->
<g id="edge76" class="edge">
<title>Node1->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">< StackAttrs ></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">< StackAttrs ></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->Node79 -->
<g id="edge78" class="edge">
<title>Node1->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">< ScanopAttrs ></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">< ScanopAttrs ></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->Node81 -->
<g id="edge80" class="edge">
<title>Node1->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">< LeakyReluAttrs ></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">< LeakyReluAttrs ></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->Node83 -->
<g id="edge82" class="edge">
<title>Node1->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">< CallTIRWithGradAttrs ></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">< CallTIRWithGradAttrs ></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->Node85 -->
<g id="edge84" class="edge">
<title>Node1->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">< CallTIRInplaceAttrs ></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">< CallTIRInplaceAttrs ></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->Node87 -->
<g id="edge86" class="edge">
<title>Node1->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">< AstypeAttrs ></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">< AstypeAttrs ></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->Node89 -->
<g id="edge88" class="edge">
<title>Node1->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">< PixelShuffleAttrs ></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">< PixelShuffleAttrs ></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->Node91 -->
<g id="edge90" class="edge">
<title>Node1->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">< PadAttrs ></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">< PadAttrs ></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->Node93 -->
<g id="edge92" class="edge">
<title>Node1->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">< InstanceNormAttrs ></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">< InstanceNormAttrs ></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->Node95 -->
<g id="edge94" class="edge">
<title>Node1->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">< DropoutAttrs ></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">< DropoutAttrs ></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->Node97 -->
<g id="edge96" class="edge">
<title>Node1->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">< TopKAttrs ></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">< TopKAttrs ></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->Node99 -->
<g id="edge98" class="edge">
<title>Node1->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">< MultinomialFromUniformAttrs ></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">< MultinomialFromUniformAttrs ></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->Node101 -->
<g id="edge100" class="edge">
<title>Node1->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">< Conv3DAttrs ></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">< Conv3DAttrs ></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->Node103 -->
<g id="edge102" class="edge">
<title>Node1->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">< VirtualDeviceNode ></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">< VirtualDeviceNode ></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->Node105 -->
<g id="edge104" class="edge">
<title>Node1->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">< WrapParamAttrs ></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">< WrapParamAttrs ></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->Node107 -->
<g id="edge106" class="edge">
<title>Node1->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">< TileAttrs ></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">< TileAttrs ></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->Node109 -->
<g id="edge108" class="edge">
<title>Node1->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">< StridedSliceAttrs ></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">< StridedSliceAttrs ></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->Node111 -->
<g id="edge110" class="edge">
<title>Node1->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">< SplitAttrs ></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">< SplitAttrs ></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->Node113 -->
<g id="edge112" class="edge">
<title>Node1->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">< RMSNormAttrs ></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">< RMSNormAttrs ></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->Node115 -->
<g id="edge114" class="edge">
<title>Node1->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">< QuantizeAttrs ></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">< QuantizeAttrs ></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->Node117 -->
<g id="edge116" class="edge">
<title>Node1->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">< PReluAttrs ></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">< PReluAttrs ></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->Node119 -->
<g id="edge118" class="edge">
<title>Node1->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">< Conv2DAttrs ></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">< Conv2DAttrs ></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->Node121 -->
<g id="edge120" class="edge">
<title>Node1->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">< SortAttrs ></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">< SortAttrs ></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->Node123 -->
<g id="edge122" class="edge">
<title>Node1->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">< Conv1DAttrs ></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">< Conv1DAttrs ></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->Node125 -->
<g id="edge124" class="edge">
<title>Node1->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">< BucketizeAttrs ></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">< BucketizeAttrs ></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->Node127 -->
<g id="edge126" class="edge">
<title>Node1->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">< ArgsortAttrs ></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">< ArgsortAttrs ></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->Node129 -->
<g id="edge128" class="edge">
<title>Node1->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">< StatisticalAttrs ></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">< StatisticalAttrs ></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->Node131 -->
<g id="edge130" class="edge">
<title>Node1->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">< LayoutTransformAttrs ></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">< LayoutTransformAttrs ></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->Node133 -->
<g id="edge132" class="edge">
<title>Node1->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">< Conv1DTransposeAttrs ></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">< Conv1DTransposeAttrs ></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->Node135 -->
<g id="edge134" class="edge">
<title>Node1->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">< Conv2DTransposeAttrs ></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">< Conv2DTransposeAttrs ></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->Node137 -->
<g id="edge136" class="edge">
<title>Node1->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">< PermuteDimsAttrs ></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">< PermuteDimsAttrs ></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->Node139 -->
<g id="edge138" class="edge">
<title>Node1->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">< GroupNormAttrs ></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">< GroupNormAttrs ></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->Node141 -->
<g id="edge140" class="edge">
<title>Node1->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">< GatherNDAttrs ></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">< GatherNDAttrs ></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->Node143 -->
<g id="edge142" class="edge">
<title>Node1->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">< DerivedType ></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">< DerivedType ></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->Node145 -->
<g id="edge144" class="edge">
<title>Node1->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->Node146 -->
<g id="edge145" class="edge">
<title>Node1->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->Node1 -->
<g id="edge1" class="edge">
<title>Node2->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->Node4 -->
<g id="edge3" class="edge">
<title>Node3->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->Node6 -->
<g id="edge5" class="edge">
<title>Node5->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->Node8 -->
<g id="edge7" class="edge">
<title>Node7->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->Node10 -->
<g id="edge9" class="edge">
<title>Node9->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 ...