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/02/28 04:34:24 UTC
(tvm-site) branch asf-site updated: deploying docs (apache/tvm@7bedfeb209d89b693a51bde70344f0c7130d5abf)
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 d69d7e17ae deploying docs (apache/tvm@7bedfeb209d89b693a51bde70344f0c7130d5abf)
d69d7e17ae is described below
commit d69d7e17ae34a008ca2ba0b82582845b864ac2c3
Author: tvm-bot <95...@users.noreply.github.com>
AuthorDate: Fri Feb 28 04:34:17 2025 +0000
deploying docs (apache/tvm@7bedfeb209d89b693a51bde70344f0c7130d5abf)
---
.../11c11e53c7dace51a8be968ee169ed0d/ir_module.zip | Bin 23868 -> 23868 bytes
.../tir_transformation.zip | Bin 15571 -> 15571 bytes
.../relax_creation.zip | Bin 22392 -> 22392 bytes
.../relax_transformation.zip | Bin 11460 -> 11460 bytes
.../optimize_llm.zip | Bin 54053 -> 54053 bytes
.../e2e_opt_model.zip | Bin 11213 -> 11213 bytes
.../quick_start.zip | Bin 16274 -> 16274 bytes
.../tir_creation.zip | Bin 24339 -> 24339 bytes
.../cross_compilation_and_rpc.zip | Bin 21640 -> 21640 bytes
.../customize_opt.zip | Bin 19789 -> 19789 bytes
.../relax/tutorials/sg_execution_times.rst.txt | 6 +-
.../tensor_ir/tutorials/sg_execution_times.rst.txt | 6 +-
.../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 | 14 +-
docs/_sources/sg_execution_times.rst.txt | 30 +-
docs/commit_hash | 2 +-
docs/deep_dive/relax/tutorials/relax_creation.html | 16 +-
.../relax/tutorials/relax_transformation.html | 15 +-
.../relax/tutorials/sg_execution_times.html | 6 +-
.../tensor_ir/tutorials/sg_execution_times.html | 6 +-
.../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 | 11 +-
docs/how_to/tutorials/sg_execution_times.html | 14 +-
docs/reference/api/doxygen/attrs_8h_source.html | 2 +-
docs/reference/api/doxygen/bnn_8h_source.html | 2 +-
docs/reference/api/doxygen/buffer_8h_source.html | 6 +-
.../api/doxygen/classtvm_1_1FloatImmNode.html | 2 +-
.../classtvm_1_1FloatImmNode__coll__graph.svg | 259 +++----
.../api/doxygen/classtvm_1_1IntImmNode.html | 2 +-
.../classtvm_1_1IntImmNode__coll__graph.svg | 259 +++----
.../api/doxygen/classtvm_1_1PrimExprNode.html | 2 +-
.../classtvm_1_1PrimExprNode__coll__graph.svg | 259 +++----
.../api/doxygen/classtvm_1_1PrimTypeNode.html | 2 +-
.../classtvm_1_1PrimTypeNode__coll__graph.svg | 259 +++----
.../classtvm_1_1PrinterConfigNode__coll__graph.svg | 57 +-
.../classtvm_1_1arith_1_1IterMapExprNode.html | 2 +-
...vm_1_1arith_1_1IterMapExprNode__coll__graph.svg | 259 +++----
.../classtvm_1_1arith_1_1IterSplitExprNode.html | 2 +-
..._1_1arith_1_1IterSplitExprNode__coll__graph.svg | 305 ++++----
.../classtvm_1_1arith_1_1IterSumExprNode.html | 2 +-
...vm_1_1arith_1_1IterSumExprNode__coll__graph.svg | 309 ++++----
...asstvm_1_1meta__schedule_1_1TensorInfoNode.html | 2 +-
...ta__schedule_1_1TensorInfoNode__coll__graph.svg | 273 +++----
.../classtvm_1_1relax_1_1DataTypeImmNode.html | 2 +-
...vm_1_1relax_1_1DataTypeImmNode__coll__graph.svg | 355 ++++-----
.../classtvm_1_1relax_1_1DataTypePatternNode.html | 2 +-
..._1relax_1_1DataTypePatternNode__coll__graph.svg | 269 +++----
.../classtvm_1_1relax_1_1PrimStructInfoNode.html | 2 +-
...1_1relax_1_1PrimStructInfoNode__coll__graph.svg | 287 +++----
.../classtvm_1_1relax_1_1TensorStructInfoNode.html | 2 +-
...1relax_1_1TensorStructInfoNode__coll__graph.svg | 313 ++++----
.../classtvm_1_1relax_1_1TensorTypeNode.html | 2 +-
...tvm_1_1relax_1_1TensorTypeNode__coll__graph.svg | 257 +++----
.../classtvm_1_1runtime_1_1DataType-members.html | 28 +-
.../doxygen/classtvm_1_1runtime_1_1DataType.html | 100 ++-
...lasstvm_1_1runtime_1_1DataType__coll__graph.svg | 51 +-
...__builder_1_1tir_1_1AllocateConstFrameNode.html | 2 +-
...1tir_1_1AllocateConstFrameNode__coll__graph.svg | 487 ++++++------
...1_1ir__builder_1_1tir_1_1AllocateFrameNode.html | 2 +-
...er_1_1tir_1_1AllocateFrameNode__coll__graph.svg | 467 +++++------
.../classtvm_1_1te_1_1PlaceholderOpNode.html | 2 +-
...tvm_1_1te_1_1PlaceholderOpNode__coll__graph.svg | 301 ++++----
.../api/doxygen/classtvm_1_1te_1_1TensorNode.html | 2 +-
.../classtvm_1_1te_1_1TensorNode__coll__graph.svg | 321 ++++----
.../api/doxygen/classtvm_1_1tir_1_1AddNode.html | 2 +-
.../classtvm_1_1tir_1_1AddNode__coll__graph.svg | 259 +++----
.../classtvm_1_1tir_1_1AllocateConstNode.html | 2 +-
...vm_1_1tir_1_1AllocateConstNode__coll__graph.svg | 485 ++++++------
.../doxygen/classtvm_1_1tir_1_1AllocateNode.html | 2 +-
...lasstvm_1_1tir_1_1AllocateNode__coll__graph.svg | 431 +++++------
.../api/doxygen/classtvm_1_1tir_1_1AndNode.html | 2 +-
.../classtvm_1_1tir_1_1AndNode__coll__graph.svg | 277 +++----
.../api/doxygen/classtvm_1_1tir_1_1AnyNode.html | 2 +-
.../classtvm_1_1tir_1_1AnyNode__coll__graph.svg | 259 +++----
.../doxygen/classtvm_1_1tir_1_1BinaryOpNode.html | 2 +-
...lasstvm_1_1tir_1_1BinaryOpNode__coll__graph.svg | 277 +++----
.../doxygen/classtvm_1_1tir_1_1BroadcastNode.html | 2 +-
...asstvm_1_1tir_1_1BroadcastNode__coll__graph.svg | 277 +++----
.../doxygen/classtvm_1_1tir_1_1BufferLoadNode.html | 2 +-
...sstvm_1_1tir_1_1BufferLoadNode__coll__graph.svg | 331 ++++----
.../classtvm_1_1tir_1_1BufferNode__coll__graph.svg | 57 +-
.../api/doxygen/classtvm_1_1tir_1_1CallNode.html | 2 +-
.../classtvm_1_1tir_1_1CallNode__coll__graph.svg | 309 ++++----
.../api/doxygen/classtvm_1_1tir_1_1CastNode.html | 2 +-
.../classtvm_1_1tir_1_1CastNode__coll__graph.svg | 277 +++----
.../api/doxygen/classtvm_1_1tir_1_1CmpOpNode.html | 2 +-
.../classtvm_1_1tir_1_1CmpOpNode__coll__graph.svg | 277 +++----
.../api/doxygen/classtvm_1_1tir_1_1DivNode.html | 2 +-
.../classtvm_1_1tir_1_1DivNode__coll__graph.svg | 259 +++----
.../api/doxygen/classtvm_1_1tir_1_1EQNode.html | 2 +-
.../classtvm_1_1tir_1_1EQNode__coll__graph.svg | 259 +++----
.../doxygen/classtvm_1_1tir_1_1FloorDivNode.html | 2 +-
...lasstvm_1_1tir_1_1FloorDivNode__coll__graph.svg | 259 +++----
.../doxygen/classtvm_1_1tir_1_1FloorModNode.html | 2 +-
...lasstvm_1_1tir_1_1FloorModNode__coll__graph.svg | 259 +++----
.../api/doxygen/classtvm_1_1tir_1_1GENode.html | 2 +-
.../classtvm_1_1tir_1_1GENode__coll__graph.svg | 259 +++----
.../api/doxygen/classtvm_1_1tir_1_1GTNode.html | 2 +-
.../classtvm_1_1tir_1_1GTNode__coll__graph.svg | 259 +++----
...classtvm_1_1tir_1_1IndexDataTypeNormalizer.html | 2 +-
...tir_1_1IndexDataTypeNormalizer__coll__graph.svg | 313 ++++----
.../api/doxygen/classtvm_1_1tir_1_1LTNode.html | 2 +-
.../classtvm_1_1tir_1_1LTNode__coll__graph.svg | 259 +++----
.../api/doxygen/classtvm_1_1tir_1_1LetNode.html | 2 +-
.../classtvm_1_1tir_1_1LetNode__coll__graph.svg | 305 ++++----
.../api/doxygen/classtvm_1_1tir_1_1MaxNode.html | 2 +-
.../classtvm_1_1tir_1_1MaxNode__coll__graph.svg | 259 +++----
.../api/doxygen/classtvm_1_1tir_1_1MinNode.html | 2 +-
.../classtvm_1_1tir_1_1MinNode__coll__graph.svg | 259 +++----
.../api/doxygen/classtvm_1_1tir_1_1ModNode.html | 2 +-
.../classtvm_1_1tir_1_1ModNode__coll__graph.svg | 259 +++----
.../api/doxygen/classtvm_1_1tir_1_1MulNode.html | 2 +-
.../classtvm_1_1tir_1_1MulNode__coll__graph.svg | 259 +++----
.../api/doxygen/classtvm_1_1tir_1_1NENode.html | 2 +-
.../classtvm_1_1tir_1_1NENode__coll__graph.svg | 259 +++----
.../api/doxygen/classtvm_1_1tir_1_1NotNode.html | 2 +-
.../classtvm_1_1tir_1_1NotNode__coll__graph.svg | 277 +++----
.../api/doxygen/classtvm_1_1tir_1_1OrNode.html | 2 +-
.../classtvm_1_1tir_1_1OrNode__coll__graph.svg | 277 +++----
.../classtvm_1_1tir_1_1ProducerLoadNode.html | 2 +-
...tvm_1_1tir_1_1ProducerLoadNode__coll__graph.svg | 283 +++----
.../api/doxygen/classtvm_1_1tir_1_1RampNode.html | 2 +-
.../classtvm_1_1tir_1_1RampNode__coll__graph.svg | 277 +++----
.../api/doxygen/classtvm_1_1tir_1_1ReduceNode.html | 2 +-
.../classtvm_1_1tir_1_1ReduceNode__coll__graph.svg | 339 ++++----
.../api/doxygen/classtvm_1_1tir_1_1SelectNode.html | 2 +-
.../classtvm_1_1tir_1_1SelectNode__coll__graph.svg | 277 +++----
.../doxygen/classtvm_1_1tir_1_1ShuffleNode.html | 2 +-
...classtvm_1_1tir_1_1ShuffleNode__coll__graph.svg | 287 +++----
.../doxygen/classtvm_1_1tir_1_1SizeVarNode.html | 2 +-
...classtvm_1_1tir_1_1SizeVarNode__coll__graph.svg | 285 +++----
.../doxygen/classtvm_1_1tir_1_1StringImmNode.html | 2 +-
...asstvm_1_1tir_1_1StringImmNode__coll__graph.svg | 289 +++----
.../api/doxygen/classtvm_1_1tir_1_1SubNode.html | 2 +-
.../classtvm_1_1tir_1_1SubNode__coll__graph.svg | 259 +++----
.../api/doxygen/classtvm_1_1tir_1_1VarNode.html | 2 +-
.../classtvm_1_1tir_1_1VarNode__coll__graph.svg | 285 +++----
.../api/doxygen/data__layout_8h_source.html | 2 +-
.../api/doxygen/data__type_8h_source.html | 664 ++++++++--------
.../doxygen/data__type__rewriter_8h_source.html | 2 +-
.../api/doxygen/detail_2broadcast_8h_source.html | 2 +-
docs/reference/api/doxygen/doc_8h_source.html | 10 +-
docs/reference/api/doxygen/elemwise_8h_source.html | 2 +-
docs/reference/api/doxygen/extern_8h_source.html | 4 +-
docs/reference/api/doxygen/functions_a.html | 2 +-
docs/reference/api/doxygen/functions_eval.html | 3 +
docs/reference/api/doxygen/functions_func_a.html | 4 +-
docs/reference/api/doxygen/functions_func_i.html | 12 +-
docs/reference/api/doxygen/functions_func_n.html | 3 +
docs/reference/api/doxygen/functions_func_s.html | 8 +-
docs/reference/api/doxygen/functions_i.html | 10 +-
docs/reference/api/doxygen/functions_k.html | 3 +
docs/reference/api/doxygen/functions_l.html | 2 +-
docs/reference/api/doxygen/functions_n.html | 3 +
docs/reference/api/doxygen/functions_s.html | 2 +-
.../api/doxygen/group__norm_8h_source.html | 2 +-
docs/reference/api/doxygen/ir_2expr_8h_source.html | 4 +-
.../api/doxygen/layer__norm_8h_source.html | 2 +-
docs/reference/api/doxygen/namespacemembers_e.html | 22 +-
.../api/doxygen/namespacemembers_func_e.html | 20 +-
...mespacetvm_1_1script_1_1ir__builder_1_1tir.html | 228 ++++++
docs/reference/api/doxygen/ndarray_8h_source.html | 2 +-
.../reference/api/doxygen/operation_8h_source.html | 4 +-
.../api/doxygen/packed__func_8h_source.html | 6 +-
docs/reference/api/doxygen/pooling_8h_source.html | 2 +-
.../api/doxygen/relax_2type_8h_source.html | 2 +-
.../reference/api/doxygen/rms__norm_8h_source.html | 2 +-
docs/reference/api/doxygen/sampling_8h_source.html | 2 +-
.../api/doxygen/script__printer_8h_source.html | 6 +-
docs/reference/api/doxygen/search/all_10.js | 342 ++++-----
docs/reference/api/doxygen/search/all_11.js | 460 +++++------
docs/reference/api/doxygen/search/all_12.js | 14 +-
docs/reference/api/doxygen/search/all_13.js | 426 +++++------
docs/reference/api/doxygen/search/all_14.js | 564 +++++++-------
docs/reference/api/doxygen/search/all_15.js | 851 ++++++++++-----------
docs/reference/api/doxygen/search/all_16.js | 128 ++--
docs/reference/api/doxygen/search/all_17.js | 252 +++---
docs/reference/api/doxygen/search/all_18.js | 104 +--
docs/reference/api/doxygen/search/all_19.js | 2 +-
docs/reference/api/doxygen/search/all_1a.js | 118 +--
docs/reference/api/doxygen/search/all_2.js | 259 +++----
docs/reference/api/doxygen/search/all_3.js | 231 +++---
docs/reference/api/doxygen/search/all_4.js | 8 +-
docs/reference/api/doxygen/search/all_6.js | 337 ++++----
docs/reference/api/doxygen/search/all_7.js | 562 +++++++-------
docs/reference/api/doxygen/search/all_8.js | 306 ++++----
docs/reference/api/doxygen/search/all_9.js | 66 +-
docs/reference/api/doxygen/search/all_a.js | 606 +++++++--------
docs/reference/api/doxygen/search/all_b.js | 8 +-
docs/reference/api/doxygen/search/all_c.js | 576 +++++++-------
docs/reference/api/doxygen/search/all_d.js | 249 +++---
docs/reference/api/doxygen/search/all_e.js | 412 +++++-----
docs/reference/api/doxygen/search/all_f.js | 170 ++--
docs/reference/api/doxygen/search/classes_0.js | 380 ++++-----
docs/reference/api/doxygen/search/classes_1.js | 130 ++--
docs/reference/api/doxygen/search/classes_10.js | 74 +-
docs/reference/api/doxygen/search/classes_11.js | 234 +++---
docs/reference/api/doxygen/search/classes_12.js | 250 +++---
docs/reference/api/doxygen/search/classes_13.js | 8 +-
docs/reference/api/doxygen/search/classes_14.js | 44 +-
docs/reference/api/doxygen/search/classes_15.js | 32 +-
docs/reference/api/doxygen/search/classes_2.js | 108 +--
docs/reference/api/doxygen/search/classes_3.js | 134 ++--
docs/reference/api/doxygen/search/classes_4.js | 80 +-
docs/reference/api/doxygen/search/classes_5.js | 68 +-
docs/reference/api/doxygen/search/classes_6.js | 32 +-
docs/reference/api/doxygen/search/classes_7.js | 8 +-
docs/reference/api/doxygen/search/classes_8.js | 152 ++--
docs/reference/api/doxygen/search/classes_9.js | 4 +-
docs/reference/api/doxygen/search/classes_a.js | 58 +-
docs/reference/api/doxygen/search/classes_b.js | 122 +--
docs/reference/api/doxygen/search/classes_c.js | 36 +-
docs/reference/api/doxygen/search/classes_d.js | 166 ++--
docs/reference/api/doxygen/search/classes_e.js | 176 ++---
docs/reference/api/doxygen/search/classes_f.js | 2 +-
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 | 6 +-
docs/reference/api/doxygen/search/defines_7.js | 4 +-
docs/reference/api/doxygen/search/defines_8.js | 168 ++--
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 | 6 +-
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 | 439 +++++------
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 | 18 +-
docs/reference/api/doxygen/search/files_1.js | 32 +-
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 | 8 +-
docs/reference/api/doxygen/search/files_13.js | 4 +-
docs/reference/api/doxygen/search/files_2.js | 20 +-
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 | 24 +-
docs/reference/api/doxygen/search/files_8.js | 6 +-
docs/reference/api/doxygen/search/files_9.js | 18 +-
docs/reference/api/doxygen/search/files_a.js | 14 +-
docs/reference/api/doxygen/search/files_b.js | 12 +-
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 | 22 +-
docs/reference/api/doxygen/search/files_f.js | 50 +-
docs/reference/api/doxygen/search/functions_0.js | 12 +-
docs/reference/api/doxygen/search/functions_1.js | 279 ++++---
docs/reference/api/doxygen/search/functions_10.js | 223 +++---
docs/reference/api/doxygen/search/functions_11.js | 8 +-
docs/reference/api/doxygen/search/functions_12.js | 244 +++---
docs/reference/api/doxygen/search/functions_13.js | 417 +++++-----
docs/reference/api/doxygen/search/functions_14.js | 396 +++++-----
docs/reference/api/doxygen/search/functions_15.js | 116 +--
docs/reference/api/doxygen/search/functions_16.js | 144 ++--
docs/reference/api/doxygen/search/functions_17.js | 60 +-
docs/reference/api/doxygen/search/functions_18.js | 2 +-
docs/reference/api/doxygen/search/functions_19.js | 118 +--
docs/reference/api/doxygen/search/functions_2.js | 136 ++--
docs/reference/api/doxygen/search/functions_3.js | 298 ++++----
docs/reference/api/doxygen/search/functions_4.js | 230 +++---
docs/reference/api/doxygen/search/functions_5.js | 180 ++---
docs/reference/api/doxygen/search/functions_6.js | 266 +++----
docs/reference/api/doxygen/search/functions_7.js | 268 +++----
docs/reference/api/doxygen/search/functions_8.js | 48 +-
docs/reference/api/doxygen/search/functions_9.js | 372 ++++-----
docs/reference/api/doxygen/search/functions_a.js | 8 +-
docs/reference/api/doxygen/search/functions_b.js | 4 +-
docs/reference/api/doxygen/search/functions_c.js | 158 ++--
docs/reference/api/doxygen/search/functions_d.js | 186 ++---
docs/reference/api/doxygen/search/functions_e.js | 101 +--
docs/reference/api/doxygen/search/functions_f.js | 150 ++--
docs/reference/api/doxygen/search/namespaces_0.js | 4 +-
docs/reference/api/doxygen/search/namespaces_1.js | 62 +-
docs/reference/api/doxygen/search/related_0.js | 2 +-
docs/reference/api/doxygen/search/related_1.js | 10 +-
docs/reference/api/doxygen/search/related_10.js | 8 +-
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 | 14 +-
docs/reference/api/doxygen/search/related_5.js | 6 +-
docs/reference/api/doxygen/search/related_6.js | 6 +-
docs/reference/api/doxygen/search/related_7.js | 14 +-
docs/reference/api/doxygen/search/related_8.js | 2 +-
docs/reference/api/doxygen/search/related_9.js | 24 +-
docs/reference/api/doxygen/search/related_a.js | 2 +-
docs/reference/api/doxygen/search/related_b.js | 6 +-
docs/reference/api/doxygen/search/related_c.js | 10 +-
docs/reference/api/doxygen/search/related_d.js | 24 +-
docs/reference/api/doxygen/search/related_e.js | 2 +-
docs/reference/api/doxygen/search/related_f.js | 8 +-
docs/reference/api/doxygen/search/typedefs_0.js | 4 +-
docs/reference/api/doxygen/search/typedefs_1.js | 6 +-
docs/reference/api/doxygen/search/typedefs_2.js | 6 +-
docs/reference/api/doxygen/search/typedefs_3.js | 10 +-
docs/reference/api/doxygen/search/typedefs_4.js | 14 +-
docs/reference/api/doxygen/search/typedefs_5.js | 130 ++--
docs/reference/api/doxygen/search/typedefs_6.js | 16 +-
docs/reference/api/doxygen/search/typedefs_7.js | 4 +-
docs/reference/api/doxygen/search/typedefs_8.js | 4 +-
docs/reference/api/doxygen/search/typedefs_9.js | 4 +-
docs/reference/api/doxygen/search/typedefs_a.js | 16 +-
docs/reference/api/doxygen/search/typedefs_b.js | 14 +-
docs/reference/api/doxygen/search/typedefs_c.js | 8 +-
docs/reference/api/doxygen/search/typedefs_d.js | 58 +-
docs/reference/api/doxygen/search/typedefs_e.js | 4 +-
docs/reference/api/doxygen/search/variables_0.js | 18 +-
docs/reference/api/doxygen/search/variables_1.js | 68 +-
docs/reference/api/doxygen/search/variables_10.js | 2 +-
docs/reference/api/doxygen/search/variables_11.js | 88 +--
docs/reference/api/doxygen/search/variables_12.js | 134 ++--
docs/reference/api/doxygen/search/variables_13.js | 102 +--
docs/reference/api/doxygen/search/variables_14.js | 6 +-
docs/reference/api/doxygen/search/variables_15.js | 62 +-
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 | 86 +--
docs/reference/api/doxygen/search/variables_4.js | 110 +--
docs/reference/api/doxygen/search/variables_5.js | 62 +-
docs/reference/api/doxygen/search/variables_6.js | 116 +--
docs/reference/api/doxygen/search/variables_7.js | 12 +-
docs/reference/api/doxygen/search/variables_8.js | 10 +-
docs/reference/api/doxygen/search/variables_9.js | 92 +--
docs/reference/api/doxygen/search/variables_a.js | 132 ++--
docs/reference/api/doxygen/search/variables_b.js | 40 +-
docs/reference/api/doxygen/search/variables_c.js | 94 +--
docs/reference/api/doxygen/search/variables_d.js | 34 +-
docs/reference/api/doxygen/search/variables_e.js | 36 +-
docs/reference/api/doxygen/search/variables_f.js | 76 +-
.../api/doxygen/strided__slice_8h_source.html | 2 +-
.../api/doxygen/struct__info_8h_source.html | 2 +-
.../structtvm_1_1relax_1_1ArgsortAttrs.html | 2 +-
...cttvm_1_1relax_1_1ArgsortAttrs__coll__graph.svg | 197 ++---
.../doxygen/structtvm_1_1relax_1_1AstypeAttrs.html | 2 +-
...ucttvm_1_1relax_1_1AstypeAttrs__coll__graph.svg | 197 ++---
.../doxygen/structtvm_1_1relax_1_1Conv1DAttrs.html | 2 +-
...ucttvm_1_1relax_1_1Conv1DAttrs__coll__graph.svg | 367 ++++-----
...structtvm_1_1relax_1_1Conv1DTransposeAttrs.html | 2 +-
...1relax_1_1Conv1DTransposeAttrs__coll__graph.svg | 377 ++++-----
.../doxygen/structtvm_1_1relax_1_1Conv2DAttrs.html | 2 +-
...ucttvm_1_1relax_1_1Conv2DAttrs__coll__graph.svg | 367 ++++-----
...structtvm_1_1relax_1_1Conv2DTransposeAttrs.html | 2 +-
...1relax_1_1Conv2DTransposeAttrs__coll__graph.svg | 377 ++++-----
.../doxygen/structtvm_1_1relax_1_1Conv3DAttrs.html | 2 +-
...ucttvm_1_1relax_1_1Conv3DAttrs__coll__graph.svg | 367 ++++-----
.../doxygen/structtvm_1_1relax_1_1InitAttrs.html | 2 +-
...tructtvm_1_1relax_1_1InitAttrs__coll__graph.svg | 197 ++---
.../doxygen/structtvm_1_1relax_1_1MatmulAttrs.html | 2 +-
...ucttvm_1_1relax_1_1MatmulAttrs__coll__graph.svg | 197 ++---
...vm_1_1relax_1_1MultinomialFromUniformAttrs.html | 2 +-
...1_1MultinomialFromUniformAttrs__coll__graph.svg | 199 ++---
.../structtvm_1_1relax_1_1QuantizeAttrs.html | 2 +-
...ttvm_1_1relax_1_1QuantizeAttrs__coll__graph.svg | 199 ++---
.../structtvm_1_1relax_1_1Resize2DAttrs.html | 2 +-
...ttvm_1_1relax_1_1Resize2DAttrs__coll__graph.svg | 367 ++++-----
.../doxygen/structtvm_1_1relax_1_1ScanopAttrs.html | 2 +-
...ucttvm_1_1relax_1_1ScanopAttrs__coll__graph.svg | 389 +++++-----
.../doxygen/structtvm_1_1relax_1_1TopKAttrs.html | 2 +-
...tructtvm_1_1relax_1_1TopKAttrs__coll__graph.svg | 313 ++++----
.../structtvm_1_1relax_1_1WrapParamAttrs.html | 2 +-
...tvm_1_1relax_1_1WrapParamAttrs__coll__graph.svg | 199 ++---
...CacheMetadata_1_1FileRecord_1_1ParamRecord.html | 2 +-
...a_1_1FileRecord_1_1ParamRecord__coll__graph.svg | 175 ++---
.../api/doxygen/structtvm_1_1tir_1_1LENode.html | 2 +-
.../structtvm_1_1tir_1_1LENode__coll__graph.svg | 259 +++----
.../api/doxygen/tensor__utils_8h_source.html | 2 +-
.../reference/api/doxygen/tir_2expr_8h_source.html | 2 +-
docs/reference/api/doxygen/tir_2ir_8h.html | 12 +
docs/reference/api/doxygen/tir_2ir_8h_source.html | 44 +-
docs/reference/api/doxygen/tir_2op_8h_source.html | 33 +-
docs/reference/api/doxygen/topi_2nn_8h_source.html | 2 +-
.../api/doxygen/topi_2transform_8h_source.html | 6 +-
docs/reference/api/doxygen/var_8h_source.html | 2 +-
.../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 | 116 +--
.../classes/LinearCongruentialGenerator.html | 16 +-
docs/reference/api/typedoc/classes/Module.html | 12 +-
docs/reference/api/typedoc/classes/NDArray.html | 30 +-
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 +-
.../api/typedoc/classes/VirtualMachine.html | 10 +-
.../classes/_internal_.AsyncifyHandler.html | 12 +-
.../classes/_internal_.CachedCallStack.html | 36 +-
.../classes/_internal_.CanvasRenderManager.html | 10 +-
.../typedoc/classes/_internal_.Environment.html | 14 +-
.../api/typedoc/classes/_internal_.FFILibrary.html | 22 +-
.../api/typedoc/classes/_internal_.Memory.html | 36 +-
.../typedoc/classes/_internal_.PackedFuncCell.html | 8 +-
.../typedoc/classes/_internal_.RuntimeContext.html | 60 +-
.../api/typedoc/classes/_internal_.TVMString.html | 14 +-
.../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/deleteNDArrayCache.html | 2 +-
.../api/typedoc/functions/detectGPUDevice.html | 2 +-
.../api/typedoc/functions/hasNDArrayInCache.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_.NDArrayCacheEntry.html | 14 +-
.../interfaces/_internal_.NDArrayShardEntry.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_.FTVMWasmAllocSpace.html | 2 +-
.../types/_internal_.FTVMWasmFreeSpace.html | 2 +-
.../types/_internal_.FTVMWasmPackedCFunc.html | 2 +-
.../api/typedoc/types/_internal_.Pointer.html | 2 +-
.../typedoc/types/_internal_.TVMObjectBase.html | 2 +-
docs/searchindex.js | 2 +-
docs/sg_execution_times.html | 30 +-
461 files changed, 20092 insertions(+), 19558 deletions(-)
diff --git a/docs/_downloads/11c11e53c7dace51a8be968ee169ed0d/ir_module.zip b/docs/_downloads/11c11e53c7dace51a8be968ee169ed0d/ir_module.zip
index 9ac1767807..bd58822d68 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 471398d6c6..efa49bfd6b 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 f33dec40bf..5cb1096b6e 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 5e1ffa9c82..512c8078e2 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 ea3bb75cd0..83c8257068 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 934957159e..95a88d5403 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 79cdd51895..c3deb37143 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 25c848eabf..8c996f47d1 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 1b0650e6c8..af4a34962e 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 6beb793cef..a1a92d0082 100644
Binary files a/docs/_downloads/f69433a4a80715725df90d1386679956/customize_opt.zip and b/docs/_downloads/f69433a4a80715725df90d1386679956/customize_opt.zip differ
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 4849e72738..998a8c9f3a 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.228** total execution time for 2 files **from deep_dive/relax/tutorials**:
+**00:00.211** 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.141
+ - 00:00.130
- 0.0
* - :ref:`sphx_glr_deep_dive_relax_tutorials_relax_transformation.py` (``relax_transformation.py``)
- - 00:00.087
+ - 00:00.081
- 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 68adc1de93..f8968b085f 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.540** total execution time for 2 files **from deep_dive/tensor_ir/tutorials**:
+**00:00.510** total execution time for 2 files **from deep_dive/tensor_ir/tutorials**:
.. container::
@@ -33,8 +33,8 @@ Computation times
- Time
- Mem (MB)
* - :ref:`sphx_glr_deep_dive_tensor_ir_tutorials_tir_transformation.py` (``tir_transformation.py``)
- - 00:00.333
+ - 00:00.312
- 0.0
* - :ref:`sphx_glr_deep_dive_tensor_ir_tutorials_tir_creation.py` (``tir_creation.py``)
- - 00:00.208
+ - 00:00.198
- 0.0
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 620ec215b9..728c92dc92 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
- [[0.6048951 0.8332552 0.64227647 0.6316684 ]
- [0.8061754 1.0146263 0.846576 0.6671642 ]
- [0.5496414 0.6386821 0.5219994 0.5332326 ]
- [0.76920223 0.842742 0.77816963 0.9005356 ]]
- [[32.641006 34.733265 37.257217 ... 33.573742 35.37864 37.99303 ]
- [28.211523 31.057213 32.756565 ... 29.431728 32.44713 34.837845]
- [34.100655 32.75541 38.621235 ... 33.445644 36.532963 38.403896]
+ [[0.7075737 0.671783 0.21392027 1.0826926 ]
+ [0.51350045 0.8258244 0.2552382 0.9972646 ]
+ [0.8652253 0.7857941 0.24540707 1.3230983 ]
+ [0.9086077 0.8421607 0.26298273 1.3060048 ]]
+ [[31.535097 30.190514 31.22282 ... 30.241436 30.525349 32.05632 ]
+ [31.608185 28.877956 33.46078 ... 31.683008 33.348373 35.031105]
+ [31.394308 31.532919 33.71057 ... 31.048195 35.00653 33.666325]
...
- [27.33634 28.031103 30.813684 ... 28.68471 30.370285 32.729156]
- [33.14964 33.983696 36.879787 ... 33.20698 33.223125 37.22329 ]
- [33.432217 33.106888 37.80717 ... 34.6384 36.9344 39.960155]]
+ [33.18056 31.372297 32.82852 ... 32.57422 33.759434 34.953312]
+ [31.776302 32.431473 34.236927 ... 31.137917 35.20207 37.0131 ]
+ [30.551247 29.220753 32.18929 ... 31.202663 30.5635 31.029245]]
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 6fe93d99f9..5fbc883546 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.4193 2.4193 2.4193 2.4193 0.0000
+ 2.2345 2.2345 2.2345 2.2345 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.8770 0.8770 0.8770 0.8770 0.0000
+ 0.8540 0.8540 0.8540 0.8540 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.3311 0.3311 0.3311 0.3311 0.0000
+ 0.3200 0.3200 0.3200 0.3200 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 9c73ceafca..9364ff8765 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.01242974 0.05261653 0.03570008 0.11182915 -0.1362519 0.09701946
- -0.10081214 -0.02468546 -0.01998068 0.05081054]]
+ [[-0.11469889 0.00869831 -0.06528285 0.11756335 -0.07889138 -0.15806717
+ -0.19232336 -0.07286356 0.03696303 0.0718323 ]]
@@ -765,8 +765,8 @@ Now we can compile the IRModule on GPU, the similar way as we did on CPU.
.. code-block:: none
- [[ 0.01242973 0.0526165 0.03570002 0.11182912 -0.1362519 0.09701954
- -0.10081211 -0.02468542 -0.01998072 0.05081053]]
+ [[-0.11469884 0.00869828 -0.06528286 0.11756337 -0.0788914 -0.1580672
+ -0.19232327 -0.07286358 0.03696297 0.07183224]]
diff --git a/docs/_sources/get_started/tutorials/quick_start.rst.txt b/docs/_sources/get_started/tutorials/quick_start.rst.txt
index cc203e513b..6a413f924b 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
- [[23718.912 24969.549 22980.967 24751.588 24327.797 25121.805 24334.77
- 25317.838 25166.73 25477.658]]
+ [[24207.791 25783.451 25109.318 25743.535 25967.793 25727.24 26034.848
+ 25772.125 25595.277 27465.092]]
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 e2c690335b..0d3bfaadc3 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.557** total execution time for 2 files **from get_started/tutorials**:
+**00:08.030** 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.358
+ - 00:07.831
- 0.0
* - :ref:`sphx_glr_get_started_tutorials_quick_start.py` (``quick_start.py``)
- - 00:00.199
+ - 00:00.200
- 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 edb4f66faf..f258ed2a6e 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.243e-07 secs/op
+ 1.222e-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 7df7cc6255..e11092da3d 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
- [[24821.61 24338.82 26330.246 24724.812 24977.709 25897.275 24195.973
- 25358.967 26167.828 25329.398]]
+ [[25476.918 25802.885 26855.518 25042.059 24039.824 23236.248 24615.746
+ 25382.52 25636.926 24293.719]]
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 2d60223e9a..6098bbf417 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] 32%|███▏ | 14.5M/44.7M [00:00<00:00, 151MB/s] 76%|███████▌ | 33.9M/44.7M [00:00<00:00, 182MB/s] 100%|██████████| 44.7M/44.7M [00:00<00:00, 185MB/s]
+ 0%| | 0.00/44.7M [00:00<?, ?B/s] 11%|█ | 4.75M/44.7M [00:00<00:00, 44.6MB/s] 22%|██▏ | 10.0M/44.7M [00:00<00:00, 49.1MB/s] 33%|███▎ | 14.8M/44.7M [00:00<00:00, 43.6MB/s] 47%|████▋ | 21.1M/44.7M [00:00<00:00, 51.9MB/s] 62%|██████▏ | 27.8M/44.7M [00:00<00:00, 57.6MB/s] 75%|███████▍ | 33.4M/44.7M [00:00<00:00, 48.8MB/s] 87%|████████▋ | 38.8M/44.7M [00:00<00:00, 49.2MB/s] 100%|██████████| 44.7M/44.7M [00:00<00:00, 51.3MB/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 a3fb6cf764..2ae97a9eb5 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:58.605** total execution time for 4 files **from how_to/tutorials**:
+**00:57.674** 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:56.476
- - 0.0
- * - :ref:`sphx_glr_how_to_tutorials_customize_opt.py` (``customize_opt.py``)
- - 00:01.087
+ - 00:54.841
- 0.0
* - :ref:`sphx_glr_how_to_tutorials_e2e_opt_model.py` (``e2e_opt_model.py``)
- - 00:00.676
+ - 00:01.438
+ - 0.0
+ * - :ref:`sphx_glr_how_to_tutorials_customize_opt.py` (``customize_opt.py``)
+ - 00:01.045
- 0.0
* - :ref:`sphx_glr_how_to_tutorials_cross_compilation_and_rpc.py` (``cross_compilation_and_rpc.py``)
- - 00:00.366
+ - 00:00.350
- 0.0
diff --git a/docs/_sources/sg_execution_times.rst.txt b/docs/_sources/sg_execution_times.rst.txt
index 450c677ac3..0a958ef8a9 100644
--- a/docs/_sources/sg_execution_times.rst.txt
+++ b/docs/_sources/sg_execution_times.rst.txt
@@ -6,7 +6,7 @@
Computation times
=================
-**01:06.930** total execution time for 10 files **from all galleries**:
+**01:06.426** 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:56.476
+ - 00:54.841
- 0.0
* - :ref:`sphx_glr_get_started_tutorials_ir_module.py` (``../get_started/tutorials/ir_module.py``)
- - 00:07.358
- - 0.0
- * - :ref:`sphx_glr_how_to_tutorials_customize_opt.py` (``../how_to/tutorials/customize_opt.py``)
- - 00:01.087
+ - 00:07.831
- 0.0
* - :ref:`sphx_glr_how_to_tutorials_e2e_opt_model.py` (``../how_to/tutorials/e2e_opt_model.py``)
- - 00:00.676
+ - 00:01.438
+ - 0.0
+ * - :ref:`sphx_glr_how_to_tutorials_customize_opt.py` (``../how_to/tutorials/customize_opt.py``)
+ - 00:01.045
- 0.0
* - :ref:`sphx_glr_how_to_tutorials_cross_compilation_and_rpc.py` (``../how_to/tutorials/cross_compilation_and_rpc.py``)
- - 00:00.366
+ - 00:00.350
- 0.0
* - :ref:`sphx_glr_deep_dive_tensor_ir_tutorials_tir_transformation.py` (``../deep_dive/tensor_ir/tutorials/tir_transformation.py``)
- - 00:00.333
- - 0.0
- * - :ref:`sphx_glr_deep_dive_tensor_ir_tutorials_tir_creation.py` (``../deep_dive/tensor_ir/tutorials/tir_creation.py``)
- - 00:00.208
+ - 00:00.312
- 0.0
* - :ref:`sphx_glr_get_started_tutorials_quick_start.py` (``../get_started/tutorials/quick_start.py``)
- - 00:00.199
+ - 00:00.200
+ - 0.0
+ * - :ref:`sphx_glr_deep_dive_tensor_ir_tutorials_tir_creation.py` (``../deep_dive/tensor_ir/tutorials/tir_creation.py``)
+ - 00:00.198
- 0.0
* - :ref:`sphx_glr_deep_dive_relax_tutorials_relax_creation.py` (``../deep_dive/relax/tutorials/relax_creation.py``)
- - 00:00.141
+ - 00:00.130
- 0.0
* - :ref:`sphx_glr_deep_dive_relax_tutorials_relax_transformation.py` (``../deep_dive/relax/tutorials/relax_transformation.py``)
- - 00:00.087
+ - 00:00.081
- 0.0
diff --git a/docs/commit_hash b/docs/commit_hash
index 18d7734638..7ebcd3178d 100644
--- a/docs/commit_hash
+++ b/docs/commit_hash
@@ -1 +1 @@
-61f6e7f4288ad1bbc408226d1c0205f80a0f7899
+7bedfeb209d89b693a51bde70344f0c7130d5abf
diff --git a/docs/deep_dive/relax/tutorials/relax_creation.html b/docs/deep_dive/relax/tutorials/relax_creation.html
index 8caa71b2e8..07b79e4c71 100644
--- a/docs/deep_dive/relax/tutorials/relax_creation.html
+++ b/docs/deep_dive/relax/tutorials/relax_creation.html
@@ -197,10 +197,22 @@
<li class="toctree-l1"><a class="reference internal" href="../../../how_to/dev/index.html">Development Guides</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Deep Dive</span></p>
-<ul>
+<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../../../arch/index.html">Design and Architecture</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../tensor_ir/index.html">TensorIR</a></li>
-<li class="toctree-l1"><a class="reference internal" href="../index.html">Relax</a></li>
+<li class="toctree-l1 current"><a class="reference internal" href="../index.html">Relax</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" href="../abstraction.html">Graph Abstraction for ML Models</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../learning.html">Understand Relax Abstraction</a></li>
+<li class="toctree-l2 current"><a class="current reference internal" href="#">Relax Creation</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="#create-relax-programs-using-tvmscript">Create Relax programs using TVMScript</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#create-relax-programs-using-nnmodule-api">Create Relax programs using NNModule API</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#create-relax-programs-using-block-builder-api">Create Relax programs using Block Builder API</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#summary">Summary</a></li>
+</ul>
+</li>
+<li class="toctree-l2"><a class="reference internal" href="relax_transformation.html">Transformation</a></li>
+</ul>
+</li>
</ul>
<p class="caption" role="heading"><span class="caption-text">API Reference</span></p>
<ul>
diff --git a/docs/deep_dive/relax/tutorials/relax_transformation.html b/docs/deep_dive/relax/tutorials/relax_transformation.html
index 168be071de..2bff549466 100644
--- a/docs/deep_dive/relax/tutorials/relax_transformation.html
+++ b/docs/deep_dive/relax/tutorials/relax_transformation.html
@@ -197,10 +197,21 @@
<li class="toctree-l1"><a class="reference internal" href="../../../how_to/dev/index.html">Development Guides</a></li>
</ul>
<p class="caption" role="heading"><span class="caption-text">Deep Dive</span></p>
-<ul>
+<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../../../arch/index.html">Design and Architecture</a></li>
<li class="toctree-l1"><a class="reference internal" href="../../tensor_ir/index.html">TensorIR</a></li>
-<li class="toctree-l1"><a class="reference internal" href="../index.html">Relax</a></li>
+<li class="toctree-l1 current"><a class="reference internal" href="../index.html">Relax</a><ul class="current">
+<li class="toctree-l2"><a class="reference internal" href="../abstraction.html">Graph Abstraction for ML Models</a></li>
+<li class="toctree-l2"><a class="reference internal" href="../learning.html">Understand Relax Abstraction</a></li>
+<li class="toctree-l2"><a class="reference internal" href="relax_creation.html">Relax Creation</a></li>
+<li class="toctree-l2 current"><a class="current reference internal" href="#">Transformation</a><ul>
+<li class="toctree-l3"><a class="reference internal" href="#apply-transformations">Apply transformations</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#custom-passes">Custom Passes</a></li>
+<li class="toctree-l3"><a class="reference internal" href="#summary">Summary</a></li>
+</ul>
+</li>
+</ul>
+</li>
</ul>
<p class="caption" role="heading"><span class="caption-text">API Reference</span></p>
<ul>
diff --git a/docs/deep_dive/relax/tutorials/sg_execution_times.html b/docs/deep_dive/relax/tutorials/sg_execution_times.html
index ba61374f2e..b0cee8fcb1 100644
--- a/docs/deep_dive/relax/tutorials/sg_execution_times.html
+++ b/docs/deep_dive/relax/tutorials/sg_execution_times.html
@@ -299,7 +299,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.228</strong> total execution time for 2 files <strong>from deep_dive/relax/tutorials</strong>:</p>
+<p><strong>00:00.211</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" />
@@ -321,11 +321,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.141</p></td>
+<td><p>00:00.130</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.087</p></td>
+<td><p>00:00.081</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 dcff569284..846250e7ce 100644
--- a/docs/deep_dive/tensor_ir/tutorials/sg_execution_times.html
+++ b/docs/deep_dive/tensor_ir/tutorials/sg_execution_times.html
@@ -299,7 +299,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.540</strong> total execution time for 2 files <strong>from deep_dive/tensor_ir/tutorials</strong>:</p>
+<p><strong>00:00.510</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" />
@@ -321,11 +321,11 @@ $(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.333</p></td>
+<td><p>00:00.312</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>
-<td><p>00:00.208</p></td>
+<td><p>00:00.198</p></td>
<td><p>0.0</p></td>
</tr>
</tbody>
diff --git a/docs/deep_dive/tensor_ir/tutorials/tir_creation.html b/docs/deep_dive/tensor_ir/tutorials/tir_creation.html
index 6819750abb..172e23336f 100644
--- a/docs/deep_dive/tensor_ir/tutorials/tir_creation.html
+++ b/docs/deep_dive/tensor_ir/tutorials/tir_creation.html
@@ -517,17 +517,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>[[0.6048951 0.8332552 0.64227647 0.6316684 ]
- [0.8061754 1.0146263 0.846576 0.6671642 ]
- [0.5496414 0.6386821 0.5219994 0.5332326 ]
- [0.76920223 0.842742 0.77816963 0.9005356 ]]
-[[32.641006 34.733265 37.257217 ... 33.573742 35.37864 37.99303 ]
- [28.211523 31.057213 32.756565 ... 29.431728 32.44713 34.837845]
- [34.100655 32.75541 38.621235 ... 33.445644 36.532963 38.403896]
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>[[0.7075737 0.671783 0.21392027 1.0826926 ]
+ [0.51350045 0.8258244 0.2552382 0.9972646 ]
+ [0.8652253 0.7857941 0.24540707 1.3230983 ]
+ [0.9086077 0.8421607 0.26298273 1.3060048 ]]
+[[31.535097 30.190514 31.22282 ... 30.241436 30.525349 32.05632 ]
+ [31.608185 28.877956 33.46078 ... 31.683008 33.348373 35.031105]
+ [31.394308 31.532919 33.71057 ... 31.048195 35.00653 33.666325]
...
- [27.33634 28.031103 30.813684 ... 28.68471 30.370285 32.729156]
- [33.14964 33.983696 36.879787 ... 33.20698 33.223125 37.22329 ]
- [33.432217 33.106888 37.80717 ... 34.6384 36.9344 39.960155]]
+ [33.18056 31.372297 32.82852 ... 32.57422 33.759434 34.953312]
+ [31.776302 32.431473 34.236927 ... 31.137917 35.20207 37.0131 ]
+ [30.551247 29.220753 32.18929 ... 31.202663 30.5635 31.029245]]
</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 7ec340b235..7ef004bdf5 100644
--- a/docs/deep_dive/tensor_ir/tutorials/tir_transformation.html
+++ b/docs/deep_dive/tensor_ir/tutorials/tir_transformation.html
@@ -389,7 +389,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.4193 2.4193 2.4193 2.4193 0.0000
+ 2.2345 2.2345 2.2345 2.2345 0.0000
</pre></div>
</div>
<section id="initialization-schedule">
@@ -485,7 +485,7 @@ class Module:
Execution time summary:
mean (ms) median (ms) max (ms) min (ms) std (ms)
- 0.8770 0.8770 0.8770 0.8770 0.0000
+ 0.8540 0.8540 0.8540 0.8540 0.0000
</pre></div>
</div>
</section>
@@ -579,7 +579,7 @@ class Module:
Execution time summary:
mean (ms) median (ms) max (ms) min (ms) std (ms)
- 0.3311 0.3311 0.3311 0.3311 0.0000
+ 0.3200 0.3200 0.3200 0.3200 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 f767e96800..a5e45eb803 100644
--- a/docs/get_started/tutorials/ir_module.html
+++ b/docs/get_started/tutorials/ir_module.html
@@ -819,8 +819,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.01242974 0.05261653 0.03570008 0.11182915 -0.1362519 0.09701946
- -0.10081214 -0.02468546 -0.01998068 0.05081054]]
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>[[-0.11469889 0.00869831 -0.06528285 0.11756335 -0.07889138 -0.15806717
+ -0.19232336 -0.07286356 0.03696303 0.0718323 ]]
</pre></div>
</div>
</section>
@@ -854,8 +854,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.01242973 0.0526165 0.03570002 0.11182912 -0.1362519 0.09701954
- -0.10081211 -0.02468542 -0.01998072 0.05081053]]
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>[[-0.11469884 0.00869828 -0.06528286 0.11756337 -0.0788914 -0.1580672
+ -0.19232327 -0.07286358 0.03696297 0.07183224]]
</pre></div>
</div>
</section>
diff --git a/docs/get_started/tutorials/quick_start.html b/docs/get_started/tutorials/quick_start.html
index fd0b5c9b40..920621d003 100644
--- a/docs/get_started/tutorials/quick_start.html
+++ b/docs/get_started/tutorials/quick_start.html
@@ -465,8 +465,8 @@ different devices.</p>
<span class="nb">print</span><span class="p">(</span><a href="../../reference/api/python/runtime/relax_vm.html#tvm.runtime.relax_vm.VirtualMachine" title="tvm.runtime.relax_vm.VirtualMachine" class="sphx-glr-backref-module-tvm-runtime-relax_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=" [...]
</pre></div>
</div>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>[[23718.912 24969.549 22980.967 24751.588 24327.797 25121.805 24334.77
- 25317.838 25166.73 25477.658]]
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>[[24207.791 25783.451 25109.318 25743.535 25967.793 25727.24 26034.848
+ 25772.125 25595.277 27465.092]]
</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 23acca18e7..8984a50ab9 100644
--- a/docs/get_started/tutorials/sg_execution_times.html
+++ b/docs/get_started/tutorials/sg_execution_times.html
@@ -299,7 +299,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.557</strong> total execution time for 2 files <strong>from get_started/tutorials</strong>:</p>
+<p><strong>00:08.030</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" />
@@ -321,11 +321,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.358</p></td>
+<td><p>00:07.831</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.199</p></td>
+<td><p>00:00.200</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 a13ff5f31b..06a08f0501 100644
--- a/docs/how_to/tutorials/cross_compilation_and_rpc.html
+++ b/docs/how_to/tutorials/cross_compilation_and_rpc.html
@@ -480,7 +480,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.243e-07 secs/op
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>1.222e-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 542959c8d6..af7c6fa421 100644
--- a/docs/how_to/tutorials/customize_opt.html
+++ b/docs/how_to/tutorials/customize_opt.html
@@ -614,8 +614,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>[[24821.61 24338.82 26330.246 24724.812 24977.709 25897.275 24195.973
- 25358.967 26167.828 25329.398]]
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>[[25476.918 25802.885 26855.518 25042.059 24039.824 23236.248 24615.746
+ 25382.52 25636.926 24293.719]]
</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 f0aae814d7..3753ebf7e7 100644
--- a/docs/how_to/tutorials/e2e_opt_model.html
+++ b/docs/how_to/tutorials/e2e_opt_model.html
@@ -336,9 +336,14 @@ 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]
- 32%|███▏ | 14.5M/44.7M [00:00<00:00, 151MB/s]
- 76%|███████▌ | 33.9M/44.7M [00:00<00:00, 182MB/s]
-100%|██████████| 44.7M/44.7M [00:00<00:00, 185MB/s]
+ 11%|█ | 4.75M/44.7M [00:00<00:00, 44.6MB/s]
+ 22%|██▏ | 10.0M/44.7M [00:00<00:00, 49.1MB/s]
+ 33%|███▎ | 14.8M/44.7M [00:00<00:00, 43.6MB/s]
+ 47%|████▋ | 21.1M/44.7M [00:00<00:00, 51.9MB/s]
+ 62%|██████▏ | 27.8M/44.7M [00:00<00:00, 57.6MB/s]
+ 75%|███████▍ | 33.4M/44.7M [00:00<00:00, 48.8MB/s]
+ 87%|████████▋ | 38.8M/44.7M [00:00<00:00, 49.2MB/s]
+100%|██████████| 44.7M/44.7M [00:00<00:00, 51.3MB/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 5311fb283e..cf3472b593 100644
--- a/docs/how_to/tutorials/sg_execution_times.html
+++ b/docs/how_to/tutorials/sg_execution_times.html
@@ -299,7 +299,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:58.605</strong> total execution time for 4 files <strong>from how_to/tutorials</strong>:</p>
+<p><strong>00:57.674</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" />
@@ -321,19 +321,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:56.476</p></td>
+<td><p>00:54.841</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:01.087</p></td>
+<tr class="row-odd"><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:01.438</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.676</p></td>
+<tr class="row-even"><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:01.045</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.366</p></td>
+<td><p>00:00.350</p></td>
<td><p>0.0</p></td>
</tr>
</tbody>
diff --git a/docs/reference/api/doxygen/attrs_8h_source.html b/docs/reference/api/doxygen/attrs_8h_source.html
index 76f52acba1..d04a3f444a 100644
--- a/docs/reference/api/doxygen/attrs_8h_source.html
+++ b/docs/reference/api/doxygen/attrs_8h_source.html
@@ -923,7 +923,7 @@ $(function() {
<div class="ttc" id="anamespacetvm_html_a1c4f14382b85bcfa57d9a3460db2354a"><div class="ttname"><a href="namespacetvm.html#a1c4f14382b85bcfa57d9a3460db2354a">tvm::equal</a></div><div class="ttdeci">PrimExpr equal(PrimExpr a, PrimExpr b, Span span=Span())</div><div class="ttdoc">equal</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:90</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:320</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:493</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:513</div></div>
<div class="ttc" id="anamespacetvm_html_a44992575b05d0bd33965b471bff7ecb6"><div class="ttname"><a href="namespacetvm.html#a44992575b05d0bd33965b471bff7ecb6">tvm::WithAttrs</a></div><div class="ttdeci">DictAttrs WithAttrs(DictAttrs attrs, Map< String, ObjectRef > 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:84</div></div>
<div class="ttc" id="apacked__func_8h_html"><div class="ttname"><a href="packed__func_8h.html">packed_func.h</a></div><div class="ttdoc">Type-erased function used across TVM API.</div></div>
diff --git a/docs/reference/api/doxygen/bnn_8h_source.html b/docs/reference/api/doxygen/bnn_8h_source.html
index fa2a10f16b..f3733ce651 100644
--- a/docs/reference/api/doxygen/bnn_8h_source.html
+++ b/docs/reference/api/doxygen/bnn_8h_source.html
@@ -178,7 +178,7 @@ $(function() {
<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_1Array_html"><div class="ttname"><a href="classtvm_1_1runtime_1_1Array.html">tvm::runtime::Array</a></div><div class="ttdoc">Array, container representing a contiguous sequence of ObjectRefs.</div><div class="ttdef"><b>Definition:</b> array.h:289</div></div>
<div class="ttc" id="aclasstvm_1_1runtime_1_1Array_html_aa026b914ee05f81b6c20130b8905f257"><div class="ttname"><a href="classtvm_1_1runtime_1_1Array.html#aa026b914ee05f81b6c20130b8905f257">tvm::runtime::Array::push_back</a></div><div class="ttdeci">void push_back(const T &item)</div><div class="ttdoc">push a new item to the back of the list</div><div class="ttdef"><b>Definition:</b> array.h:457</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:227</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:235</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:102</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:89</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>
diff --git a/docs/reference/api/doxygen/buffer_8h_source.html b/docs/reference/api/doxygen/buffer_8h_source.html
index e44374de77..6f1b7190ef 100644
--- a/docs/reference/api/doxygen/buffer_8h_source.html
+++ b/docs/reference/api/doxygen/buffer_8h_source.html
@@ -261,9 +261,9 @@ $(function() {
<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:120</div></div>
<div class="ttc" id="aclasstvm_1_1runtime_1_1Array_html"><div class="ttname"><a href="classtvm_1_1runtime_1_1Array.html">tvm::runtime::Array</a></div><div class="ttdoc">Array, container representing a contiguous sequence of ObjectRefs.</div><div class="ttdef"><b>Definition:</b> array.h:289</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:43</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:236</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:219</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:271</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:244</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:227</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:285</div></div>
<div class="ttc" id="aclasstvm_1_1runtime_1_1ObjectRef_html"><div class="ttname"><a href="classtvm_1_1runtime_1_1ObjectRef.html">tvm::runtime::ObjectRef</a></div><div class="ttdoc">Base class of all object reference.</div><div class="ttdef"><b>Definition:</b> object.h:519</div></div>
<div class="ttc" id="aclasstvm_1_1runtime_1_1Object_html"><div class="ttname"><a href="classtvm_1_1runtime_1_1Object.html">tvm::runtime::Object</a></div><div class="ttdoc">base class of all object containers.</div><div class="ttdef"><b>Definition:</b> object.h:171</div></div>
<div class="ttc" id="aclasstvm_1_1runtime_1_1Optional_html"><div class="ttname"><a href="classtvm_1_1runtime_1_1Optional.html">tvm::runtime::Optional</a></div><div class="ttdoc">Optional container that to represent to a Nullable variant of T.</div><div class="ttdef"><b>Definition:</b> optional.h:51</div></div>
diff --git a/docs/reference/api/doxygen/classtvm_1_1FloatImmNode.html b/docs/reference/api/doxygen/classtvm_1_1FloatImmNode.html
index f2ffbb3057..11fbcd7153 100644
--- a/docs/reference/api/doxygen/classtvm_1_1FloatImmNode.html
+++ b/docs/reference/api/doxygen/classtvm_1_1FloatImmNode.html
@@ -88,7 +88,7 @@ Inheritance diagram for tvm::FloatImmNode:</div>
<div class="dynheader">
Collaboration diagram for tvm::FloatImmNode:</div>
<div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1FloatImmNode__coll__graph.svg" width="620" height="2038"><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_1FloatImmNode__coll__graph.svg" width="620" height="2052"><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">
diff --git a/docs/reference/api/doxygen/classtvm_1_1FloatImmNode__coll__graph.svg b/docs/reference/api/doxygen/classtvm_1_1FloatImmNode__coll__graph.svg
index 652f413f14..94863cadd1 100644
--- a/docs/reference/api/doxygen/classtvm_1_1FloatImmNode__coll__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1FloatImmNode__coll__graph.svg
@@ -4,11 +4,11 @@
<!-- Generated by graphviz version 2.43.0 (0)
-->
<!-- Title: tvm::FloatImmNode Pages: 1 -->
-<svg width="465pt" height="1528pt"
- viewBox="0.00 0.00 465.00 1528.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 1524)">
+<svg width="465pt" height="1539pt"
+ viewBox="0.00 0.00 465.00 1539.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 1535)">
<title>tvm::FloatImmNode</title>
-<polygon fill="white" stroke="transparent" points="-4,4 -4,-1524 461,-1524 461,4 -4,4"/>
+<polygon fill="white" stroke="transparent" points="-4,4 -4,-1535 461,-1535 461,4 -4,4"/>
<!-- Node1 -->
<g id="node1" class="node">
<title>Node1</title>
@@ -54,199 +54,200 @@
<g id="node3" class="node">
<title>Node3</title>
<g id="a_node3"><a xlink:href="classtvm_1_1BaseExprNode.html" target="_top" xlink:title="Base type of all the expressions.">
-<polygon fill="white" stroke="black" points="133.5,-382 133.5,-505 306.5,-505 306.5,-382 133.5,-382"/>
-<text text-anchor="middle" x="220" y="-493" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::BaseExprNode</text>
-<polyline fill="none" stroke="black" points="133.5,-486 306.5,-486 "/>
-<text text-anchor="start" x="141.5" y="-474" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
-<text text-anchor="start" x="141.5" y="-463" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_sequal</text>
-<text text-anchor="start" x="141.5" y="-452" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
-<text text-anchor="start" x="141.5" y="-441" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_shash</text>
-<text text-anchor="start" x="141.5" y="-430" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
-<text text-anchor="start" x="141.5" y="-419" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots</text>
-<polyline fill="none" stroke="black" points="133.5,-412 306.5,-412 "/>
-<text text-anchor="start" x="141.5" y="-400" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DECLARE_BASE_OBJECT</text>
-<text text-anchor="start" x="141.5" y="-389" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO()</text>
+<polygon fill="white" stroke="black" points="133.5,-387.5 133.5,-510.5 306.5,-510.5 306.5,-387.5 133.5,-387.5"/>
+<text text-anchor="middle" x="220" y="-498.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::BaseExprNode</text>
+<polyline fill="none" stroke="black" points="133.5,-491.5 306.5,-491.5 "/>
+<text text-anchor="start" x="141.5" y="-479.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
+<text text-anchor="start" x="141.5" y="-468.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_sequal</text>
+<text text-anchor="start" x="141.5" y="-457.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
+<text text-anchor="start" x="141.5" y="-446.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_shash</text>
+<text text-anchor="start" x="141.5" y="-435.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
+<text text-anchor="start" x="141.5" y="-424.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots</text>
+<polyline fill="none" stroke="black" points="133.5,-417.5 306.5,-417.5 "/>
+<text text-anchor="start" x="141.5" y="-405.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DECLARE_BASE_OBJECT</text>
+<text text-anchor="start" x="141.5" y="-394.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO()</text>
</a>
</g>
</g>
<!-- Node3->Node2 -->
<g id="edge2" class="edge">
<title>Node3->Node2</title>
-<path fill="none" stroke="midnightblue" d="M244.85,-372.18C258.51,-333.54 275.12,-286.54 287.42,-251.73"/>
-<polygon fill="none" stroke="midnightblue" points="241.48,-371.22 241.45,-381.81 248.08,-373.55 241.48,-371.22"/>
+<path fill="none" stroke="midnightblue" d="M244.29,-377.71C258.19,-337.48 275.29,-287.98 287.8,-251.78"/>
+<polygon fill="none" stroke="midnightblue" points="240.97,-376.6 241.01,-387.19 247.59,-378.88 240.97,-376.6"/>
</g>
<!-- Node4 -->
<g id="node4" class="node">
<title>Node4</title>
<g id="a_node4"><a xlink:href="classtvm_1_1runtime_1_1Object.html" target="_top" xlink:title="base class of all object containers.">
-<polygon fill="white" stroke="black" points="0,-635.5 0,-1022.5 184,-1022.5 184,-635.5 0,-635.5"/>
-<text text-anchor="middle" x="92" y="-1010.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::Object</text>
-<polyline fill="none" stroke="black" points="0,-1003.5 184,-1003.5 "/>
-<text text-anchor="start" x="8" y="-991.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
-<text text-anchor="start" x="8" y="-980.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_final</text>
-<text text-anchor="start" x="8" y="-969.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots</text>
-<text text-anchor="start" x="8" y="-958.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots_can</text>
-<text text-anchor="start" x="8" y="-947.5" font-family="Helvetica,sans-Serif" font-size="10.00">_overflow</text>
-<text text-anchor="start" x="8" y="-936.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_visit</text>
-<text text-anchor="start" x="8" y="-925.5" font-family="Helvetica,sans-Serif" font-size="10.00">_attrs</text>
-<text text-anchor="start" x="8" y="-914.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_sequal</text>
-<text text-anchor="start" x="8" y="-903.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
-<text text-anchor="start" x="8" y="-892.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_shash</text>
-<text text-anchor="start" x="8" y="-881.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
-<text text-anchor="start" x="8" y="-870.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_index</text>
-<text text-anchor="start" x="8" y="-859.5" font-family="Helvetica,sans-Serif" font-size="10.00"># type_index_</text>
-<text text-anchor="start" x="8" y="-848.5" font-family="Helvetica,sans-Serif" font-size="10.00"># ref_counter_</text>
-<polyline fill="none" stroke="black" points="0,-841.5 184,-841.5 "/>
-<text text-anchor="start" x="8" y="-829.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ type_index()</text>
-<text text-anchor="start" x="8" y="-818.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ GetTypeKey()</text>
-<text text-anchor="start" x="8" y="-807.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ GetTypeKeyHash()</text>
-<text text-anchor="start" x="8" y="-796.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ IsInstance()</text>
-<text text-anchor="start" x="8" y="-785.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ unique()</text>
+<polygon fill="white" stroke="black" points="0,-646.5 0,-1033.5 184,-1033.5 184,-646.5 0,-646.5"/>
+<text text-anchor="middle" x="92" y="-1021.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::Object</text>
+<polyline fill="none" stroke="black" points="0,-1014.5 184,-1014.5 "/>
+<text text-anchor="start" x="8" y="-1002.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
+<text text-anchor="start" x="8" y="-991.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_final</text>
+<text text-anchor="start" x="8" y="-980.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots</text>
+<text text-anchor="start" x="8" y="-969.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots_can</text>
+<text text-anchor="start" x="8" y="-958.5" font-family="Helvetica,sans-Serif" font-size="10.00">_overflow</text>
+<text text-anchor="start" x="8" y="-947.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_visit</text>
+<text text-anchor="start" x="8" y="-936.5" font-family="Helvetica,sans-Serif" font-size="10.00">_attrs</text>
+<text text-anchor="start" x="8" y="-925.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_sequal</text>
+<text text-anchor="start" x="8" y="-914.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
+<text text-anchor="start" x="8" y="-903.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_shash</text>
+<text text-anchor="start" x="8" y="-892.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
+<text text-anchor="start" x="8" y="-881.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_index</text>
+<text text-anchor="start" x="8" y="-870.5" font-family="Helvetica,sans-Serif" font-size="10.00"># type_index_</text>
+<text text-anchor="start" x="8" y="-859.5" font-family="Helvetica,sans-Serif" font-size="10.00"># ref_counter_</text>
+<polyline fill="none" stroke="black" points="0,-852.5 184,-852.5 "/>
+<text text-anchor="start" x="8" y="-840.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ type_index()</text>
+<text text-anchor="start" x="8" y="-829.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ GetTypeKey()</text>
+<text text-anchor="start" x="8" y="-818.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ GetTypeKeyHash()</text>
+<text text-anchor="start" x="8" y="-807.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ IsInstance()</text>
+<text text-anchor="start" x="8" y="-796.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ unique()</text>
+<text text-anchor="start" x="8" y="-785.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Object()</text>
<text text-anchor="start" x="8" y="-774.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Object()</text>
<text text-anchor="start" x="8" y="-763.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Object()</text>
-<text text-anchor="start" x="8" y="-752.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Object()</text>
+<text text-anchor="start" x="8" y="-752.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
<text text-anchor="start" x="8" y="-741.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
-<text text-anchor="start" x="8" y="-730.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
-<text text-anchor="start" x="8" y="-719.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeIndex2Key()</text>
-<text text-anchor="start" x="8" y="-708.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeIndex2KeyHash()</text>
-<text text-anchor="start" x="8" y="-697.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeKey2Index()</text>
-<text text-anchor="start" x="8" y="-686.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _GetOrAllocRuntimeTypeIndex()</text>
-<text text-anchor="start" x="8" y="-675.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RuntimeTypeIndex()</text>
-<text text-anchor="start" x="8" y="-664.5" font-family="Helvetica,sans-Serif" font-size="10.00"># IncRef()</text>
-<text text-anchor="start" x="8" y="-653.5" font-family="Helvetica,sans-Serif" font-size="10.00"># DecRef()</text>
-<text text-anchor="start" x="8" y="-642.5" font-family="Helvetica,sans-Serif" font-size="10.00"># GetOrAllocRuntimeTypeIndex()</text>
+<text text-anchor="start" x="8" y="-730.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeIndex2Key()</text>
+<text text-anchor="start" x="8" y="-719.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeIndex2KeyHash()</text>
+<text text-anchor="start" x="8" y="-708.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeKey2Index()</text>
+<text text-anchor="start" x="8" y="-697.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _GetOrAllocRuntimeTypeIndex()</text>
+<text text-anchor="start" x="8" y="-686.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RuntimeTypeIndex()</text>
+<text text-anchor="start" x="8" y="-675.5" font-family="Helvetica,sans-Serif" font-size="10.00"># IncRef()</text>
+<text text-anchor="start" x="8" y="-664.5" font-family="Helvetica,sans-Serif" font-size="10.00"># DecRef()</text>
+<text text-anchor="start" x="8" y="-653.5" font-family="Helvetica,sans-Serif" font-size="10.00"># GetOrAllocRuntimeTypeIndex()</text>
</a>
</g>
</g>
<!-- Node4->Node3 -->
<g id="edge3" class="edge">
<title>Node4->Node3</title>
-<path fill="none" stroke="midnightblue" d="M159.51,-625.72C174.18,-581.78 188.6,-538.57 199.68,-505.37"/>
-<polygon fill="none" stroke="midnightblue" points="156.13,-624.81 156.28,-635.41 162.77,-627.03 156.13,-624.81"/>
+<path fill="none" stroke="midnightblue" d="M158.48,-636.96C173.66,-590.83 188.65,-545.26 200.04,-510.67"/>
+<polygon fill="none" stroke="midnightblue" points="155.14,-635.9 155.34,-646.49 161.79,-638.09 155.14,-635.9"/>
</g>
<!-- Node4->Node4 -->
<g id="edge4" class="edge">
<title>Node4->Node4</title>
-<path fill="none" stroke="#404040" d="M184.28,-862.92C195.02,-856.66 202,-845.36 202,-829 202,-818.01 198.85,-809.3 193.52,-802.87"/>
-<polygon fill="none" stroke="#404040" points="193.46,-802.81 186.29,-802 184.28,-795.08 191.45,-795.89 193.46,-802.81"/>
-<text text-anchor="middle" x="228" y="-826.5" font-family="Helvetica,sans-Serif" font-size="10.00"> #deleter_</text>
+<path fill="none" stroke="#404040" d="M184.28,-873.92C195.02,-867.66 202,-856.36 202,-840 202,-829.01 198.85,-820.3 193.52,-813.87"/>
+<polygon fill="none" stroke="#404040" points="193.46,-813.81 186.29,-813 184.28,-806.08 191.45,-806.89 193.46,-813.81"/>
+<text text-anchor="middle" x="228" y="-837.5" font-family="Helvetica,sans-Serif" font-size="10.00"> #deleter_</text>
</g>
<!-- Node5 -->
<g id="node5" class="node">
<title>Node5</title>
<g id="a_node5"><a xlink:href="classtvm_1_1Span.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="272,-784 272,-874 428,-874 428,-784 272,-784"/>
-<text text-anchor="middle" x="350" y="-862" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::Span</text>
-<polyline fill="none" stroke="black" points="272,-855 428,-855 "/>
-<text text-anchor="middle" x="350" y="-843" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="272,-836 428,-836 "/>
-<text text-anchor="start" x="280" y="-824" font-family="Helvetica,sans-Serif" font-size="10.00">+ Span()</text>
-<text text-anchor="start" x="280" y="-813" font-family="Helvetica,sans-Serif" font-size="10.00">+ Merge()</text>
-<text text-anchor="start" x="280" y="-802" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="280" y="-791" font-family="Helvetica,sans-Serif" font-size="10.00">_METHODS()</text>
+<polygon fill="white" stroke="black" points="272,-795 272,-885 428,-885 428,-795 272,-795"/>
+<text text-anchor="middle" x="350" y="-873" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::Span</text>
+<polyline fill="none" stroke="black" points="272,-866 428,-866 "/>
+<text text-anchor="middle" x="350" y="-854" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="272,-847 428,-847 "/>
+<text text-anchor="start" x="280" y="-835" font-family="Helvetica,sans-Serif" font-size="10.00">+ Span()</text>
+<text text-anchor="start" x="280" y="-824" font-family="Helvetica,sans-Serif" font-size="10.00">+ Merge()</text>
+<text text-anchor="start" x="280" y="-813" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="280" y="-802" font-family="Helvetica,sans-Serif" font-size="10.00">_METHODS()</text>
</a>
</g>
</g>
<!-- Node5->Node3 -->
<g id="edge5" class="edge">
<title>Node5->Node3</title>
-<path fill="none" stroke="#404040" d="M334.96,-783.63C312.81,-718.28 271.15,-595.39 244.53,-516.87"/>
-<polygon fill="none" stroke="#404040" points="244.41,-516.51 238.69,-512.11 240.56,-505.14 246.27,-509.54 244.41,-516.51"/>
-<text text-anchor="middle" x="295.5" y="-609" font-family="Helvetica,sans-Serif" font-size="10.00"> +span</text>
+<path fill="none" stroke="#404040" d="M335.21,-794.76C313.01,-728.33 270.83,-602.11 244.13,-522.21"/>
+<polygon fill="none" stroke="#404040" points="244.11,-522.15 238.42,-517.73 240.31,-510.77 246,-515.19 244.11,-522.15"/>
+<text text-anchor="middle" x="295.5" y="-620" font-family="Helvetica,sans-Serif" font-size="10.00"> +span</text>
</g>
<!-- Node6 -->
<g id="node6" class="node">
<title>Node6</title>
<g id="a_node6"><a xlink:href="classtvm_1_1runtime_1_1ObjectRef.html" target="_top" xlink:title="Base class of all object reference.">
-<polygon fill="white" stroke="black" points="283,-1060.5 283,-1293.5 417,-1293.5 417,-1060.5 283,-1060.5"/>
-<text text-anchor="middle" x="350" y="-1281.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::ObjectRef</text>
-<polyline fill="none" stroke="black" points="283,-1274.5 417,-1274.5 "/>
-<text text-anchor="start" x="291" y="-1262.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_is_nullable</text>
-<polyline fill="none" stroke="black" points="283,-1255.5 417,-1255.5 "/>
+<polygon fill="white" stroke="black" points="283,-1071.5 283,-1304.5 417,-1304.5 417,-1071.5 283,-1071.5"/>
+<text text-anchor="middle" x="350" y="-1292.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::ObjectRef</text>
+<polyline fill="none" stroke="black" points="283,-1285.5 417,-1285.5 "/>
+<text text-anchor="start" x="291" y="-1273.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_is_nullable</text>
+<polyline fill="none" stroke="black" points="283,-1266.5 417,-1266.5 "/>
+<text text-anchor="start" x="291" y="-1254.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectRef()</text>
<text text-anchor="start" x="291" y="-1243.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectRef()</text>
-<text text-anchor="start" x="291" y="-1232.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectRef()</text>
-<text text-anchor="start" x="291" y="-1221.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ same_as()</text>
-<text text-anchor="start" x="291" y="-1210.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator==()</text>
-<text text-anchor="start" x="291" y="-1199.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator!=()</text>
-<text text-anchor="start" x="291" y="-1188.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator<()</text>
-<text text-anchor="start" x="291" y="-1177.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ defined()</text>
-<text text-anchor="start" x="291" y="-1166.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get()</text>
-<text text-anchor="start" x="291" y="-1155.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator->()</text>
-<text text-anchor="start" x="291" y="-1144.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ unique()</text>
-<text text-anchor="start" x="291" y="-1133.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ use_count()</text>
+<text text-anchor="start" x="291" y="-1232.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ same_as()</text>
+<text text-anchor="start" x="291" y="-1221.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator==()</text>
+<text text-anchor="start" x="291" y="-1210.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator!=()</text>
+<text text-anchor="start" x="291" y="-1199.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator<()</text>
+<text text-anchor="start" x="291" y="-1188.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ defined()</text>
+<text text-anchor="start" x="291" y="-1177.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get()</text>
+<text text-anchor="start" x="291" y="-1166.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator->()</text>
+<text text-anchor="start" x="291" y="-1155.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ unique()</text>
+<text text-anchor="start" x="291" y="-1144.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ use_count()</text>
+<text text-anchor="start" x="291" y="-1133.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ as()</text>
<text text-anchor="start" x="291" y="-1122.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ as()</text>
-<text text-anchor="start" x="291" y="-1111.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ as()</text>
-<text text-anchor="start" x="291" y="-1100.5" font-family="Helvetica,sans-Serif" font-size="10.00"># get_mutable()</text>
-<text text-anchor="start" x="291" y="-1089.5" font-family="Helvetica,sans-Serif" font-size="10.00"># DowncastNoCheck()</text>
-<text text-anchor="start" x="291" y="-1078.5" font-family="Helvetica,sans-Serif" font-size="10.00"># FFIClearAfterMove()</text>
-<text text-anchor="start" x="291" y="-1067.5" font-family="Helvetica,sans-Serif" font-size="10.00"># GetDataPtr()</text>
+<text text-anchor="start" x="291" y="-1111.5" font-family="Helvetica,sans-Serif" font-size="10.00"># get_mutable()</text>
+<text text-anchor="start" x="291" y="-1100.5" font-family="Helvetica,sans-Serif" font-size="10.00"># DowncastNoCheck()</text>
+<text text-anchor="start" x="291" y="-1089.5" font-family="Helvetica,sans-Serif" font-size="10.00"># FFIClearAfterMove()</text>
+<text text-anchor="start" x="291" y="-1078.5" font-family="Helvetica,sans-Serif" font-size="10.00"># GetDataPtr()</text>
</a>
</g>
</g>
<!-- Node6->Node5 -->
<g id="edge6" class="edge">
<title>Node6->Node5</title>
-<path fill="none" stroke="midnightblue" d="M350,-1050.11C350,-988.57 350,-918.41 350,-874.17"/>
-<polygon fill="none" stroke="midnightblue" points="346.5,-1050.31 350,-1060.31 353.5,-1050.31 346.5,-1050.31"/>
+<path fill="none" stroke="midnightblue" d="M350,-1061.11C350,-999.57 350,-929.41 350,-885.17"/>
+<polygon fill="none" stroke="midnightblue" points="346.5,-1061.31 350,-1071.31 353.5,-1061.31 346.5,-1061.31"/>
</g>
<!-- Node7 -->
<g id="node7" class="node">
<title>Node7</title>
<g id="a_node7"><a xlink:href="classtvm_1_1runtime_1_1ObjectPtr.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="280,-1341.5 280,-1519.5 420,-1519.5 420,-1341.5 280,-1341.5"/>
-<text text-anchor="start" x="288" y="-1507.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::ObjectPtr</text>
-<text text-anchor="middle" x="350" y="-1496.5" font-family="Helvetica,sans-Serif" font-size="10.00">< tvm::runtime::Object ></text>
-<polyline fill="none" stroke="black" points="280,-1489.5 420,-1489.5 "/>
-<text text-anchor="middle" x="350" y="-1477.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="280,-1470.5 420,-1470.5 "/>
+<polygon fill="white" stroke="black" points="280,-1352.5 280,-1530.5 420,-1530.5 420,-1352.5 280,-1352.5"/>
+<text text-anchor="start" x="288" y="-1518.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::ObjectPtr</text>
+<text text-anchor="middle" x="350" y="-1507.5" font-family="Helvetica,sans-Serif" font-size="10.00">< tvm::runtime::Object ></text>
+<polyline fill="none" stroke="black" points="280,-1500.5 420,-1500.5 "/>
+<text text-anchor="middle" x="350" y="-1488.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="280,-1481.5 420,-1481.5 "/>
+<text text-anchor="start" x="288" y="-1469.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="288" y="-1458.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="288" y="-1447.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="288" y="-1436.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="288" y="-1425.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="288" y="-1414.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
-<text text-anchor="start" x="288" y="-1403.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
-<text text-anchor="start" x="288" y="-1392.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ~ObjectPtr()</text>
-<text text-anchor="start" x="288" y="-1381.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ swap()</text>
-<text text-anchor="start" x="288" y="-1370.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get()</text>
-<text text-anchor="start" x="288" y="-1359.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator->()</text>
-<text text-anchor="start" x="288" y="-1348.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 11 more...</text>
+<text text-anchor="start" x="288" y="-1403.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ~ObjectPtr()</text>
+<text text-anchor="start" x="288" y="-1392.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ swap()</text>
+<text text-anchor="start" x="288" y="-1381.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get()</text>
+<text text-anchor="start" x="288" y="-1370.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator->()</text>
+<text text-anchor="start" x="288" y="-1359.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 11 more...</text>
</a>
</g>
</g>
<!-- Node7->Node6 -->
<g id="edge7" class="edge">
<title>Node7->Node6</title>
-<path fill="none" stroke="#404040" d="M350,-1341.18C350,-1329.84 350,-1318.05 350,-1306.23"/>
-<polygon fill="none" stroke="#404040" points="350,-1305.91 346,-1299.91 350,-1293.91 354,-1299.91 350,-1305.91"/>
-<text text-anchor="middle" x="369.5" y="-1315" font-family="Helvetica,sans-Serif" font-size="10.00"> #data_</text>
+<path fill="none" stroke="#404040" d="M350,-1352.18C350,-1340.84 350,-1329.05 350,-1317.23"/>
+<polygon fill="none" stroke="#404040" points="350,-1316.91 346,-1310.91 350,-1304.91 354,-1310.91 350,-1316.91"/>
+<text text-anchor="middle" x="369.5" y="-1326" font-family="Helvetica,sans-Serif" font-size="10.00"> #data_</text>
</g>
<!-- Node8 -->
<g id="node8" class="node">
<title>Node8</title>
<g id="a_node8"><a xlink:href="classtvm_1_1runtime_1_1DataType.html" target="_top" xlink:title="Runtime primitive data type.">
-<polygon fill="white" stroke="black" points="325,-299.5 325,-587.5 457,-587.5 457,-299.5 325,-299.5"/>
-<text text-anchor="middle" x="391" y="-575.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::DataType</text>
-<polyline fill="none" stroke="black" points="325,-568.5 457,-568.5 "/>
-<text text-anchor="middle" x="391" y="-556.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="325,-549.5 457,-549.5 "/>
+<polygon fill="white" stroke="black" points="325,-299.5 325,-598.5 457,-598.5 457,-299.5 325,-299.5"/>
+<text text-anchor="middle" x="391" y="-586.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::DataType</text>
+<polyline fill="none" stroke="black" points="325,-579.5 457,-579.5 "/>
+<text text-anchor="middle" x="391" y="-567.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="325,-560.5 457,-560.5 "/>
+<text text-anchor="start" x="333" y="-548.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ DataType()</text>
<text text-anchor="start" x="333" y="-537.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ DataType()</text>
<text text-anchor="start" x="333" y="-526.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ DataType()</text>
-<text text-anchor="start" x="333" y="-515.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ DataType()</text>
-<text text-anchor="start" x="333" y="-504.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ code()</text>
-<text text-anchor="start" x="333" y="-493.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ bits()</text>
-<text text-anchor="start" x="333" y="-482.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ bytes()</text>
-<text text-anchor="start" x="333" y="-471.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ lanes()</text>
-<text text-anchor="start" x="333" y="-460.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ vscale_factor()</text>
-<text text-anchor="start" x="333" y="-449.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get_lanes_or_vscale</text>
-<text text-anchor="start" x="333" y="-438.5" font-family="Helvetica,sans-Serif" font-size="10.00">_factor()</text>
-<text text-anchor="start" x="333" y="-427.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ is_scalar()</text>
-<text text-anchor="start" x="333" y="-416.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 24 more...</text>
-<text text-anchor="start" x="333" y="-405.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Int()</text>
-<text text-anchor="start" x="333" y="-394.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ UInt()</text>
-<text text-anchor="start" x="333" y="-383.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Float()</text>
-<text text-anchor="start" x="333" y="-372.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ BFloat()</text>
-<text text-anchor="start" x="333" y="-361.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat8E4M3()</text>
-<text text-anchor="start" x="333" y="-350.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat8E5M2()</text>
+<text text-anchor="start" x="333" y="-515.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ code()</text>
+<text text-anchor="start" x="333" y="-504.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ bits()</text>
+<text text-anchor="start" x="333" y="-493.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ bytes()</text>
+<text text-anchor="start" x="333" y="-482.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ lanes()</text>
+<text text-anchor="start" x="333" y="-471.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ vscale_factor()</text>
+<text text-anchor="start" x="333" y="-460.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get_lanes_or_vscale</text>
+<text text-anchor="start" x="333" y="-449.5" font-family="Helvetica,sans-Serif" font-size="10.00">_factor()</text>
+<text text-anchor="start" x="333" y="-438.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ is_scalar()</text>
+<text text-anchor="start" x="333" y="-427.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 26 more...</text>
+<text text-anchor="start" x="333" y="-416.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Int()</text>
+<text text-anchor="start" x="333" y="-405.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ UInt()</text>
+<text text-anchor="start" x="333" y="-394.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Float()</text>
+<text text-anchor="start" x="333" y="-383.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ BFloat()</text>
+<text text-anchor="start" x="333" y="-372.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat8E4M3()</text>
+<text text-anchor="start" x="333" y="-361.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat8E5M2()</text>
+<text text-anchor="start" x="333" y="-350.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat4E2M1()</text>
<text text-anchor="start" x="333" y="-339.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Bool()</text>
<text text-anchor="start" x="333" y="-328.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Handle()</text>
<text text-anchor="start" x="333" y="-317.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Void()</text>
@@ -257,9 +258,9 @@
<!-- Node8->Node2 -->
<g id="edge8" class="edge">
<title>Node8->Node2</title>
-<path fill="none" stroke="#404040" d="M339.86,-299.47C335.33,-286.82 330.93,-274.52 326.87,-263.15"/>
-<polygon fill="none" stroke="#404040" points="326.8,-262.97 321.02,-258.67 322.76,-251.67 328.55,-255.98 326.8,-262.97"/>
-<text text-anchor="middle" x="353" y="-273" font-family="Helvetica,sans-Serif" font-size="10.00"> +dtype</text>
+<path fill="none" stroke="#404040" d="M338.99,-299.23C334.58,-286.61 330.3,-274.37 326.35,-263.08"/>
+<polygon fill="none" stroke="#404040" points="326.32,-263 320.57,-258.65 322.36,-251.67 328.12,-256.01 326.32,-263"/>
+<text text-anchor="middle" x="351" y="-273" font-family="Helvetica,sans-Serif" font-size="10.00"> +dtype</text>
</g>
</g>
</svg>
diff --git a/docs/reference/api/doxygen/classtvm_1_1IntImmNode.html b/docs/reference/api/doxygen/classtvm_1_1IntImmNode.html
index c8136e329a..d51c8e3758 100644
--- a/docs/reference/api/doxygen/classtvm_1_1IntImmNode.html
+++ b/docs/reference/api/doxygen/classtvm_1_1IntImmNode.html
@@ -88,7 +88,7 @@ Inheritance diagram for tvm::IntImmNode:</div>
<div class="dynheader">
Collaboration diagram for tvm::IntImmNode:</div>
<div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1IntImmNode__coll__graph.svg" width="620" height="2038"><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_1IntImmNode__coll__graph.svg" width="620" height="2052"><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">
diff --git a/docs/reference/api/doxygen/classtvm_1_1IntImmNode__coll__graph.svg b/docs/reference/api/doxygen/classtvm_1_1IntImmNode__coll__graph.svg
index 328020cc60..c130d10f29 100644
--- a/docs/reference/api/doxygen/classtvm_1_1IntImmNode__coll__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1IntImmNode__coll__graph.svg
@@ -4,11 +4,11 @@
<!-- Generated by graphviz version 2.43.0 (0)
-->
<!-- Title: tvm::IntImmNode Pages: 1 -->
-<svg width="465pt" height="1528pt"
- viewBox="0.00 0.00 465.00 1528.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 1524)">
+<svg width="465pt" height="1539pt"
+ viewBox="0.00 0.00 465.00 1539.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 1535)">
<title>tvm::IntImmNode</title>
-<polygon fill="white" stroke="transparent" points="-4,4 -4,-1524 461,-1524 461,4 -4,4"/>
+<polygon fill="white" stroke="transparent" points="-4,4 -4,-1535 461,-1535 461,4 -4,4"/>
<!-- Node1 -->
<g id="node1" class="node">
<title>Node1</title>
@@ -54,199 +54,200 @@
<g id="node3" class="node">
<title>Node3</title>
<g id="a_node3"><a xlink:href="classtvm_1_1BaseExprNode.html" target="_top" xlink:title="Base type of all the expressions.">
-<polygon fill="white" stroke="black" points="133.5,-382 133.5,-505 306.5,-505 306.5,-382 133.5,-382"/>
-<text text-anchor="middle" x="220" y="-493" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::BaseExprNode</text>
-<polyline fill="none" stroke="black" points="133.5,-486 306.5,-486 "/>
-<text text-anchor="start" x="141.5" y="-474" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
-<text text-anchor="start" x="141.5" y="-463" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_sequal</text>
-<text text-anchor="start" x="141.5" y="-452" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
-<text text-anchor="start" x="141.5" y="-441" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_shash</text>
-<text text-anchor="start" x="141.5" y="-430" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
-<text text-anchor="start" x="141.5" y="-419" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots</text>
-<polyline fill="none" stroke="black" points="133.5,-412 306.5,-412 "/>
-<text text-anchor="start" x="141.5" y="-400" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DECLARE_BASE_OBJECT</text>
-<text text-anchor="start" x="141.5" y="-389" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO()</text>
+<polygon fill="white" stroke="black" points="133.5,-387.5 133.5,-510.5 306.5,-510.5 306.5,-387.5 133.5,-387.5"/>
+<text text-anchor="middle" x="220" y="-498.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::BaseExprNode</text>
+<polyline fill="none" stroke="black" points="133.5,-491.5 306.5,-491.5 "/>
+<text text-anchor="start" x="141.5" y="-479.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
+<text text-anchor="start" x="141.5" y="-468.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_sequal</text>
+<text text-anchor="start" x="141.5" y="-457.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
+<text text-anchor="start" x="141.5" y="-446.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_shash</text>
+<text text-anchor="start" x="141.5" y="-435.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
+<text text-anchor="start" x="141.5" y="-424.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots</text>
+<polyline fill="none" stroke="black" points="133.5,-417.5 306.5,-417.5 "/>
+<text text-anchor="start" x="141.5" y="-405.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DECLARE_BASE_OBJECT</text>
+<text text-anchor="start" x="141.5" y="-394.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO()</text>
</a>
</g>
</g>
<!-- Node3->Node2 -->
<g id="edge2" class="edge">
<title>Node3->Node2</title>
-<path fill="none" stroke="midnightblue" d="M244.85,-372.18C258.51,-333.54 275.12,-286.54 287.42,-251.73"/>
-<polygon fill="none" stroke="midnightblue" points="241.48,-371.22 241.45,-381.81 248.08,-373.55 241.48,-371.22"/>
+<path fill="none" stroke="midnightblue" d="M244.29,-377.71C258.19,-337.48 275.29,-287.98 287.8,-251.78"/>
+<polygon fill="none" stroke="midnightblue" points="240.97,-376.6 241.01,-387.19 247.59,-378.88 240.97,-376.6"/>
</g>
<!-- Node4 -->
<g id="node4" class="node">
<title>Node4</title>
<g id="a_node4"><a xlink:href="classtvm_1_1runtime_1_1Object.html" target="_top" xlink:title="base class of all object containers.">
-<polygon fill="white" stroke="black" points="0,-635.5 0,-1022.5 184,-1022.5 184,-635.5 0,-635.5"/>
-<text text-anchor="middle" x="92" y="-1010.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::Object</text>
-<polyline fill="none" stroke="black" points="0,-1003.5 184,-1003.5 "/>
-<text text-anchor="start" x="8" y="-991.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
-<text text-anchor="start" x="8" y="-980.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_final</text>
-<text text-anchor="start" x="8" y="-969.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots</text>
-<text text-anchor="start" x="8" y="-958.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots_can</text>
-<text text-anchor="start" x="8" y="-947.5" font-family="Helvetica,sans-Serif" font-size="10.00">_overflow</text>
-<text text-anchor="start" x="8" y="-936.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_visit</text>
-<text text-anchor="start" x="8" y="-925.5" font-family="Helvetica,sans-Serif" font-size="10.00">_attrs</text>
-<text text-anchor="start" x="8" y="-914.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_sequal</text>
-<text text-anchor="start" x="8" y="-903.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
-<text text-anchor="start" x="8" y="-892.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_shash</text>
-<text text-anchor="start" x="8" y="-881.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
-<text text-anchor="start" x="8" y="-870.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_index</text>
-<text text-anchor="start" x="8" y="-859.5" font-family="Helvetica,sans-Serif" font-size="10.00"># type_index_</text>
-<text text-anchor="start" x="8" y="-848.5" font-family="Helvetica,sans-Serif" font-size="10.00"># ref_counter_</text>
-<polyline fill="none" stroke="black" points="0,-841.5 184,-841.5 "/>
-<text text-anchor="start" x="8" y="-829.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ type_index()</text>
-<text text-anchor="start" x="8" y="-818.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ GetTypeKey()</text>
-<text text-anchor="start" x="8" y="-807.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ GetTypeKeyHash()</text>
-<text text-anchor="start" x="8" y="-796.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ IsInstance()</text>
-<text text-anchor="start" x="8" y="-785.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ unique()</text>
+<polygon fill="white" stroke="black" points="0,-646.5 0,-1033.5 184,-1033.5 184,-646.5 0,-646.5"/>
+<text text-anchor="middle" x="92" y="-1021.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::Object</text>
+<polyline fill="none" stroke="black" points="0,-1014.5 184,-1014.5 "/>
+<text text-anchor="start" x="8" y="-1002.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
+<text text-anchor="start" x="8" y="-991.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_final</text>
+<text text-anchor="start" x="8" y="-980.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots</text>
+<text text-anchor="start" x="8" y="-969.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots_can</text>
+<text text-anchor="start" x="8" y="-958.5" font-family="Helvetica,sans-Serif" font-size="10.00">_overflow</text>
+<text text-anchor="start" x="8" y="-947.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_visit</text>
+<text text-anchor="start" x="8" y="-936.5" font-family="Helvetica,sans-Serif" font-size="10.00">_attrs</text>
+<text text-anchor="start" x="8" y="-925.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_sequal</text>
+<text text-anchor="start" x="8" y="-914.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
+<text text-anchor="start" x="8" y="-903.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_shash</text>
+<text text-anchor="start" x="8" y="-892.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
+<text text-anchor="start" x="8" y="-881.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_index</text>
+<text text-anchor="start" x="8" y="-870.5" font-family="Helvetica,sans-Serif" font-size="10.00"># type_index_</text>
+<text text-anchor="start" x="8" y="-859.5" font-family="Helvetica,sans-Serif" font-size="10.00"># ref_counter_</text>
+<polyline fill="none" stroke="black" points="0,-852.5 184,-852.5 "/>
+<text text-anchor="start" x="8" y="-840.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ type_index()</text>
+<text text-anchor="start" x="8" y="-829.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ GetTypeKey()</text>
+<text text-anchor="start" x="8" y="-818.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ GetTypeKeyHash()</text>
+<text text-anchor="start" x="8" y="-807.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ IsInstance()</text>
+<text text-anchor="start" x="8" y="-796.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ unique()</text>
+<text text-anchor="start" x="8" y="-785.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Object()</text>
<text text-anchor="start" x="8" y="-774.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Object()</text>
<text text-anchor="start" x="8" y="-763.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Object()</text>
-<text text-anchor="start" x="8" y="-752.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Object()</text>
+<text text-anchor="start" x="8" y="-752.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
<text text-anchor="start" x="8" y="-741.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
-<text text-anchor="start" x="8" y="-730.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
-<text text-anchor="start" x="8" y="-719.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeIndex2Key()</text>
-<text text-anchor="start" x="8" y="-708.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeIndex2KeyHash()</text>
-<text text-anchor="start" x="8" y="-697.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeKey2Index()</text>
-<text text-anchor="start" x="8" y="-686.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _GetOrAllocRuntimeTypeIndex()</text>
-<text text-anchor="start" x="8" y="-675.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RuntimeTypeIndex()</text>
-<text text-anchor="start" x="8" y="-664.5" font-family="Helvetica,sans-Serif" font-size="10.00"># IncRef()</text>
-<text text-anchor="start" x="8" y="-653.5" font-family="Helvetica,sans-Serif" font-size="10.00"># DecRef()</text>
-<text text-anchor="start" x="8" y="-642.5" font-family="Helvetica,sans-Serif" font-size="10.00"># GetOrAllocRuntimeTypeIndex()</text>
+<text text-anchor="start" x="8" y="-730.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeIndex2Key()</text>
+<text text-anchor="start" x="8" y="-719.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeIndex2KeyHash()</text>
+<text text-anchor="start" x="8" y="-708.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeKey2Index()</text>
+<text text-anchor="start" x="8" y="-697.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _GetOrAllocRuntimeTypeIndex()</text>
+<text text-anchor="start" x="8" y="-686.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RuntimeTypeIndex()</text>
+<text text-anchor="start" x="8" y="-675.5" font-family="Helvetica,sans-Serif" font-size="10.00"># IncRef()</text>
+<text text-anchor="start" x="8" y="-664.5" font-family="Helvetica,sans-Serif" font-size="10.00"># DecRef()</text>
+<text text-anchor="start" x="8" y="-653.5" font-family="Helvetica,sans-Serif" font-size="10.00"># GetOrAllocRuntimeTypeIndex()</text>
</a>
</g>
</g>
<!-- Node4->Node3 -->
<g id="edge3" class="edge">
<title>Node4->Node3</title>
-<path fill="none" stroke="midnightblue" d="M159.51,-625.72C174.18,-581.78 188.6,-538.57 199.68,-505.37"/>
-<polygon fill="none" stroke="midnightblue" points="156.13,-624.81 156.28,-635.41 162.77,-627.03 156.13,-624.81"/>
+<path fill="none" stroke="midnightblue" d="M158.48,-636.96C173.66,-590.83 188.65,-545.26 200.04,-510.67"/>
+<polygon fill="none" stroke="midnightblue" points="155.14,-635.9 155.34,-646.49 161.79,-638.09 155.14,-635.9"/>
</g>
<!-- Node4->Node4 -->
<g id="edge4" class="edge">
<title>Node4->Node4</title>
-<path fill="none" stroke="#404040" d="M184.28,-862.92C195.02,-856.66 202,-845.36 202,-829 202,-818.01 198.85,-809.3 193.52,-802.87"/>
-<polygon fill="none" stroke="#404040" points="193.46,-802.81 186.29,-802 184.28,-795.08 191.45,-795.89 193.46,-802.81"/>
-<text text-anchor="middle" x="228" y="-826.5" font-family="Helvetica,sans-Serif" font-size="10.00"> #deleter_</text>
+<path fill="none" stroke="#404040" d="M184.28,-873.92C195.02,-867.66 202,-856.36 202,-840 202,-829.01 198.85,-820.3 193.52,-813.87"/>
+<polygon fill="none" stroke="#404040" points="193.46,-813.81 186.29,-813 184.28,-806.08 191.45,-806.89 193.46,-813.81"/>
+<text text-anchor="middle" x="228" y="-837.5" font-family="Helvetica,sans-Serif" font-size="10.00"> #deleter_</text>
</g>
<!-- Node5 -->
<g id="node5" class="node">
<title>Node5</title>
<g id="a_node5"><a xlink:href="classtvm_1_1Span.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="272,-784 272,-874 428,-874 428,-784 272,-784"/>
-<text text-anchor="middle" x="350" y="-862" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::Span</text>
-<polyline fill="none" stroke="black" points="272,-855 428,-855 "/>
-<text text-anchor="middle" x="350" y="-843" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="272,-836 428,-836 "/>
-<text text-anchor="start" x="280" y="-824" font-family="Helvetica,sans-Serif" font-size="10.00">+ Span()</text>
-<text text-anchor="start" x="280" y="-813" font-family="Helvetica,sans-Serif" font-size="10.00">+ Merge()</text>
-<text text-anchor="start" x="280" y="-802" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="280" y="-791" font-family="Helvetica,sans-Serif" font-size="10.00">_METHODS()</text>
+<polygon fill="white" stroke="black" points="272,-795 272,-885 428,-885 428,-795 272,-795"/>
+<text text-anchor="middle" x="350" y="-873" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::Span</text>
+<polyline fill="none" stroke="black" points="272,-866 428,-866 "/>
+<text text-anchor="middle" x="350" y="-854" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="272,-847 428,-847 "/>
+<text text-anchor="start" x="280" y="-835" font-family="Helvetica,sans-Serif" font-size="10.00">+ Span()</text>
+<text text-anchor="start" x="280" y="-824" font-family="Helvetica,sans-Serif" font-size="10.00">+ Merge()</text>
+<text text-anchor="start" x="280" y="-813" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="280" y="-802" font-family="Helvetica,sans-Serif" font-size="10.00">_METHODS()</text>
</a>
</g>
</g>
<!-- Node5->Node3 -->
<g id="edge5" class="edge">
<title>Node5->Node3</title>
-<path fill="none" stroke="#404040" d="M334.96,-783.63C312.81,-718.28 271.15,-595.39 244.53,-516.87"/>
-<polygon fill="none" stroke="#404040" points="244.41,-516.51 238.69,-512.11 240.56,-505.14 246.27,-509.54 244.41,-516.51"/>
-<text text-anchor="middle" x="295.5" y="-609" font-family="Helvetica,sans-Serif" font-size="10.00"> +span</text>
+<path fill="none" stroke="#404040" d="M335.21,-794.76C313.01,-728.33 270.83,-602.11 244.13,-522.21"/>
+<polygon fill="none" stroke="#404040" points="244.11,-522.15 238.42,-517.73 240.31,-510.77 246,-515.19 244.11,-522.15"/>
+<text text-anchor="middle" x="295.5" y="-620" font-family="Helvetica,sans-Serif" font-size="10.00"> +span</text>
</g>
<!-- Node6 -->
<g id="node6" class="node">
<title>Node6</title>
<g id="a_node6"><a xlink:href="classtvm_1_1runtime_1_1ObjectRef.html" target="_top" xlink:title="Base class of all object reference.">
-<polygon fill="white" stroke="black" points="283,-1060.5 283,-1293.5 417,-1293.5 417,-1060.5 283,-1060.5"/>
-<text text-anchor="middle" x="350" y="-1281.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::ObjectRef</text>
-<polyline fill="none" stroke="black" points="283,-1274.5 417,-1274.5 "/>
-<text text-anchor="start" x="291" y="-1262.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_is_nullable</text>
-<polyline fill="none" stroke="black" points="283,-1255.5 417,-1255.5 "/>
+<polygon fill="white" stroke="black" points="283,-1071.5 283,-1304.5 417,-1304.5 417,-1071.5 283,-1071.5"/>
+<text text-anchor="middle" x="350" y="-1292.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::ObjectRef</text>
+<polyline fill="none" stroke="black" points="283,-1285.5 417,-1285.5 "/>
+<text text-anchor="start" x="291" y="-1273.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_is_nullable</text>
+<polyline fill="none" stroke="black" points="283,-1266.5 417,-1266.5 "/>
+<text text-anchor="start" x="291" y="-1254.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectRef()</text>
<text text-anchor="start" x="291" y="-1243.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectRef()</text>
-<text text-anchor="start" x="291" y="-1232.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectRef()</text>
-<text text-anchor="start" x="291" y="-1221.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ same_as()</text>
-<text text-anchor="start" x="291" y="-1210.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator==()</text>
-<text text-anchor="start" x="291" y="-1199.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator!=()</text>
-<text text-anchor="start" x="291" y="-1188.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator<()</text>
-<text text-anchor="start" x="291" y="-1177.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ defined()</text>
-<text text-anchor="start" x="291" y="-1166.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get()</text>
-<text text-anchor="start" x="291" y="-1155.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator->()</text>
-<text text-anchor="start" x="291" y="-1144.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ unique()</text>
-<text text-anchor="start" x="291" y="-1133.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ use_count()</text>
+<text text-anchor="start" x="291" y="-1232.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ same_as()</text>
+<text text-anchor="start" x="291" y="-1221.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator==()</text>
+<text text-anchor="start" x="291" y="-1210.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator!=()</text>
+<text text-anchor="start" x="291" y="-1199.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator<()</text>
+<text text-anchor="start" x="291" y="-1188.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ defined()</text>
+<text text-anchor="start" x="291" y="-1177.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get()</text>
+<text text-anchor="start" x="291" y="-1166.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator->()</text>
+<text text-anchor="start" x="291" y="-1155.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ unique()</text>
+<text text-anchor="start" x="291" y="-1144.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ use_count()</text>
+<text text-anchor="start" x="291" y="-1133.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ as()</text>
<text text-anchor="start" x="291" y="-1122.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ as()</text>
-<text text-anchor="start" x="291" y="-1111.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ as()</text>
-<text text-anchor="start" x="291" y="-1100.5" font-family="Helvetica,sans-Serif" font-size="10.00"># get_mutable()</text>
-<text text-anchor="start" x="291" y="-1089.5" font-family="Helvetica,sans-Serif" font-size="10.00"># DowncastNoCheck()</text>
-<text text-anchor="start" x="291" y="-1078.5" font-family="Helvetica,sans-Serif" font-size="10.00"># FFIClearAfterMove()</text>
-<text text-anchor="start" x="291" y="-1067.5" font-family="Helvetica,sans-Serif" font-size="10.00"># GetDataPtr()</text>
+<text text-anchor="start" x="291" y="-1111.5" font-family="Helvetica,sans-Serif" font-size="10.00"># get_mutable()</text>
+<text text-anchor="start" x="291" y="-1100.5" font-family="Helvetica,sans-Serif" font-size="10.00"># DowncastNoCheck()</text>
+<text text-anchor="start" x="291" y="-1089.5" font-family="Helvetica,sans-Serif" font-size="10.00"># FFIClearAfterMove()</text>
+<text text-anchor="start" x="291" y="-1078.5" font-family="Helvetica,sans-Serif" font-size="10.00"># GetDataPtr()</text>
</a>
</g>
</g>
<!-- Node6->Node5 -->
<g id="edge6" class="edge">
<title>Node6->Node5</title>
-<path fill="none" stroke="midnightblue" d="M350,-1050.11C350,-988.57 350,-918.41 350,-874.17"/>
-<polygon fill="none" stroke="midnightblue" points="346.5,-1050.31 350,-1060.31 353.5,-1050.31 346.5,-1050.31"/>
+<path fill="none" stroke="midnightblue" d="M350,-1061.11C350,-999.57 350,-929.41 350,-885.17"/>
+<polygon fill="none" stroke="midnightblue" points="346.5,-1061.31 350,-1071.31 353.5,-1061.31 346.5,-1061.31"/>
</g>
<!-- Node7 -->
<g id="node7" class="node">
<title>Node7</title>
<g id="a_node7"><a xlink:href="classtvm_1_1runtime_1_1ObjectPtr.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="280,-1341.5 280,-1519.5 420,-1519.5 420,-1341.5 280,-1341.5"/>
-<text text-anchor="start" x="288" y="-1507.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::ObjectPtr</text>
-<text text-anchor="middle" x="350" y="-1496.5" font-family="Helvetica,sans-Serif" font-size="10.00">< tvm::runtime::Object ></text>
-<polyline fill="none" stroke="black" points="280,-1489.5 420,-1489.5 "/>
-<text text-anchor="middle" x="350" y="-1477.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="280,-1470.5 420,-1470.5 "/>
+<polygon fill="white" stroke="black" points="280,-1352.5 280,-1530.5 420,-1530.5 420,-1352.5 280,-1352.5"/>
+<text text-anchor="start" x="288" y="-1518.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::ObjectPtr</text>
+<text text-anchor="middle" x="350" y="-1507.5" font-family="Helvetica,sans-Serif" font-size="10.00">< tvm::runtime::Object ></text>
+<polyline fill="none" stroke="black" points="280,-1500.5 420,-1500.5 "/>
+<text text-anchor="middle" x="350" y="-1488.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="280,-1481.5 420,-1481.5 "/>
+<text text-anchor="start" x="288" y="-1469.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="288" y="-1458.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="288" y="-1447.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="288" y="-1436.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="288" y="-1425.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="288" y="-1414.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
-<text text-anchor="start" x="288" y="-1403.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
-<text text-anchor="start" x="288" y="-1392.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ~ObjectPtr()</text>
-<text text-anchor="start" x="288" y="-1381.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ swap()</text>
-<text text-anchor="start" x="288" y="-1370.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get()</text>
-<text text-anchor="start" x="288" y="-1359.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator->()</text>
-<text text-anchor="start" x="288" y="-1348.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 11 more...</text>
+<text text-anchor="start" x="288" y="-1403.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ~ObjectPtr()</text>
+<text text-anchor="start" x="288" y="-1392.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ swap()</text>
+<text text-anchor="start" x="288" y="-1381.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get()</text>
+<text text-anchor="start" x="288" y="-1370.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator->()</text>
+<text text-anchor="start" x="288" y="-1359.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 11 more...</text>
</a>
</g>
</g>
<!-- Node7->Node6 -->
<g id="edge7" class="edge">
<title>Node7->Node6</title>
-<path fill="none" stroke="#404040" d="M350,-1341.18C350,-1329.84 350,-1318.05 350,-1306.23"/>
-<polygon fill="none" stroke="#404040" points="350,-1305.91 346,-1299.91 350,-1293.91 354,-1299.91 350,-1305.91"/>
-<text text-anchor="middle" x="369.5" y="-1315" font-family="Helvetica,sans-Serif" font-size="10.00"> #data_</text>
+<path fill="none" stroke="#404040" d="M350,-1352.18C350,-1340.84 350,-1329.05 350,-1317.23"/>
+<polygon fill="none" stroke="#404040" points="350,-1316.91 346,-1310.91 350,-1304.91 354,-1310.91 350,-1316.91"/>
+<text text-anchor="middle" x="369.5" y="-1326" font-family="Helvetica,sans-Serif" font-size="10.00"> #data_</text>
</g>
<!-- Node8 -->
<g id="node8" class="node">
<title>Node8</title>
<g id="a_node8"><a xlink:href="classtvm_1_1runtime_1_1DataType.html" target="_top" xlink:title="Runtime primitive data type.">
-<polygon fill="white" stroke="black" points="325,-299.5 325,-587.5 457,-587.5 457,-299.5 325,-299.5"/>
-<text text-anchor="middle" x="391" y="-575.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::DataType</text>
-<polyline fill="none" stroke="black" points="325,-568.5 457,-568.5 "/>
-<text text-anchor="middle" x="391" y="-556.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="325,-549.5 457,-549.5 "/>
+<polygon fill="white" stroke="black" points="325,-299.5 325,-598.5 457,-598.5 457,-299.5 325,-299.5"/>
+<text text-anchor="middle" x="391" y="-586.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::DataType</text>
+<polyline fill="none" stroke="black" points="325,-579.5 457,-579.5 "/>
+<text text-anchor="middle" x="391" y="-567.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="325,-560.5 457,-560.5 "/>
+<text text-anchor="start" x="333" y="-548.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ DataType()</text>
<text text-anchor="start" x="333" y="-537.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ DataType()</text>
<text text-anchor="start" x="333" y="-526.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ DataType()</text>
-<text text-anchor="start" x="333" y="-515.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ DataType()</text>
-<text text-anchor="start" x="333" y="-504.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ code()</text>
-<text text-anchor="start" x="333" y="-493.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ bits()</text>
-<text text-anchor="start" x="333" y="-482.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ bytes()</text>
-<text text-anchor="start" x="333" y="-471.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ lanes()</text>
-<text text-anchor="start" x="333" y="-460.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ vscale_factor()</text>
-<text text-anchor="start" x="333" y="-449.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get_lanes_or_vscale</text>
-<text text-anchor="start" x="333" y="-438.5" font-family="Helvetica,sans-Serif" font-size="10.00">_factor()</text>
-<text text-anchor="start" x="333" y="-427.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ is_scalar()</text>
-<text text-anchor="start" x="333" y="-416.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 24 more...</text>
-<text text-anchor="start" x="333" y="-405.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Int()</text>
-<text text-anchor="start" x="333" y="-394.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ UInt()</text>
-<text text-anchor="start" x="333" y="-383.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Float()</text>
-<text text-anchor="start" x="333" y="-372.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ BFloat()</text>
-<text text-anchor="start" x="333" y="-361.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat8E4M3()</text>
-<text text-anchor="start" x="333" y="-350.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat8E5M2()</text>
+<text text-anchor="start" x="333" y="-515.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ code()</text>
+<text text-anchor="start" x="333" y="-504.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ bits()</text>
+<text text-anchor="start" x="333" y="-493.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ bytes()</text>
+<text text-anchor="start" x="333" y="-482.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ lanes()</text>
+<text text-anchor="start" x="333" y="-471.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ vscale_factor()</text>
+<text text-anchor="start" x="333" y="-460.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get_lanes_or_vscale</text>
+<text text-anchor="start" x="333" y="-449.5" font-family="Helvetica,sans-Serif" font-size="10.00">_factor()</text>
+<text text-anchor="start" x="333" y="-438.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ is_scalar()</text>
+<text text-anchor="start" x="333" y="-427.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 26 more...</text>
+<text text-anchor="start" x="333" y="-416.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Int()</text>
+<text text-anchor="start" x="333" y="-405.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ UInt()</text>
+<text text-anchor="start" x="333" y="-394.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Float()</text>
+<text text-anchor="start" x="333" y="-383.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ BFloat()</text>
+<text text-anchor="start" x="333" y="-372.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat8E4M3()</text>
+<text text-anchor="start" x="333" y="-361.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat8E5M2()</text>
+<text text-anchor="start" x="333" y="-350.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat4E2M1()</text>
<text text-anchor="start" x="333" y="-339.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Bool()</text>
<text text-anchor="start" x="333" y="-328.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Handle()</text>
<text text-anchor="start" x="333" y="-317.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Void()</text>
@@ -257,9 +258,9 @@
<!-- Node8->Node2 -->
<g id="edge8" class="edge">
<title>Node8->Node2</title>
-<path fill="none" stroke="#404040" d="M339.86,-299.47C335.33,-286.82 330.93,-274.52 326.87,-263.15"/>
-<polygon fill="none" stroke="#404040" points="326.8,-262.97 321.02,-258.67 322.76,-251.67 328.55,-255.98 326.8,-262.97"/>
-<text text-anchor="middle" x="353" y="-273" font-family="Helvetica,sans-Serif" font-size="10.00"> +dtype</text>
+<path fill="none" stroke="#404040" d="M338.99,-299.23C334.58,-286.61 330.3,-274.37 326.35,-263.08"/>
+<polygon fill="none" stroke="#404040" points="326.32,-263 320.57,-258.65 322.36,-251.67 328.12,-256.01 326.32,-263"/>
+<text text-anchor="middle" x="351" y="-273" font-family="Helvetica,sans-Serif" font-size="10.00"> +dtype</text>
</g>
</g>
</svg>
diff --git a/docs/reference/api/doxygen/classtvm_1_1PrimExprNode.html b/docs/reference/api/doxygen/classtvm_1_1PrimExprNode.html
index 472c33e522..4b889b2297 100644
--- a/docs/reference/api/doxygen/classtvm_1_1PrimExprNode.html
+++ b/docs/reference/api/doxygen/classtvm_1_1PrimExprNode.html
@@ -88,7 +88,7 @@ Inheritance diagram for tvm::PrimExprNode:</div>
<div class="dynheader">
Collaboration diagram for tvm::PrimExprNode:</div>
<div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1PrimExprNode__coll__graph.svg" width="620" height="1838"><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_1PrimExprNode__coll__graph.svg" width="620" height="1852"><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">
diff --git a/docs/reference/api/doxygen/classtvm_1_1PrimExprNode__coll__graph.svg b/docs/reference/api/doxygen/classtvm_1_1PrimExprNode__coll__graph.svg
index 1653a3b83c..3d02aa1097 100644
--- a/docs/reference/api/doxygen/classtvm_1_1PrimExprNode__coll__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1PrimExprNode__coll__graph.svg
@@ -4,11 +4,11 @@
<!-- Generated by graphviz version 2.43.0 (0)
-->
<!-- Title: tvm::PrimExprNode Pages: 1 -->
-<svg width="465pt" height="1378pt"
- viewBox="0.00 0.00 465.00 1378.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 1374)">
+<svg width="465pt" height="1389pt"
+ viewBox="0.00 0.00 465.00 1389.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 1385)">
<title>tvm::PrimExprNode</title>
-<polygon fill="white" stroke="transparent" points="-4,4 -4,-1374 461,-1374 461,4 -4,4"/>
+<polygon fill="white" stroke="transparent" points="-4,4 -4,-1385 461,-1385 461,4 -4,4"/>
<!-- Node1 -->
<g id="node1" class="node">
<title>Node1</title>
@@ -30,199 +30,200 @@
<g id="node2" class="node">
<title>Node2</title>
<g id="a_node2"><a xlink:href="classtvm_1_1BaseExprNode.html" target="_top" xlink:title="Base type of all the expressions.">
-<polygon fill="white" stroke="black" points="133.5,-232 133.5,-355 306.5,-355 306.5,-232 133.5,-232"/>
-<text text-anchor="middle" x="220" y="-343" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::BaseExprNode</text>
-<polyline fill="none" stroke="black" points="133.5,-336 306.5,-336 "/>
-<text text-anchor="start" x="141.5" y="-324" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
-<text text-anchor="start" x="141.5" y="-313" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_sequal</text>
-<text text-anchor="start" x="141.5" y="-302" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
-<text text-anchor="start" x="141.5" y="-291" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_shash</text>
-<text text-anchor="start" x="141.5" y="-280" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
-<text text-anchor="start" x="141.5" y="-269" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots</text>
-<polyline fill="none" stroke="black" points="133.5,-262 306.5,-262 "/>
-<text text-anchor="start" x="141.5" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DECLARE_BASE_OBJECT</text>
-<text text-anchor="start" x="141.5" y="-239" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO()</text>
+<polygon fill="white" stroke="black" points="133.5,-237.5 133.5,-360.5 306.5,-360.5 306.5,-237.5 133.5,-237.5"/>
+<text text-anchor="middle" x="220" y="-348.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::BaseExprNode</text>
+<polyline fill="none" stroke="black" points="133.5,-341.5 306.5,-341.5 "/>
+<text text-anchor="start" x="141.5" y="-329.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
+<text text-anchor="start" x="141.5" y="-318.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_sequal</text>
+<text text-anchor="start" x="141.5" y="-307.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
+<text text-anchor="start" x="141.5" y="-296.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_shash</text>
+<text text-anchor="start" x="141.5" y="-285.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
+<text text-anchor="start" x="141.5" y="-274.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots</text>
+<polyline fill="none" stroke="black" points="133.5,-267.5 306.5,-267.5 "/>
+<text text-anchor="start" x="141.5" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DECLARE_BASE_OBJECT</text>
+<text text-anchor="start" x="141.5" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO()</text>
</a>
</g>
</g>
<!-- Node2->Node1 -->
<g id="edge1" class="edge">
<title>Node2->Node1</title>
-<path fill="none" stroke="midnightblue" d="M244.85,-222.18C258.51,-183.54 275.12,-136.54 287.42,-101.73"/>
-<polygon fill="none" stroke="midnightblue" points="241.48,-221.22 241.45,-231.81 248.08,-223.55 241.48,-221.22"/>
+<path fill="none" stroke="midnightblue" d="M244.29,-227.71C258.19,-187.48 275.29,-137.98 287.8,-101.78"/>
+<polygon fill="none" stroke="midnightblue" points="240.97,-226.6 241.01,-237.19 247.59,-228.88 240.97,-226.6"/>
</g>
<!-- Node3 -->
<g id="node3" class="node">
<title>Node3</title>
<g id="a_node3"><a xlink:href="classtvm_1_1runtime_1_1Object.html" target="_top" xlink:title="base class of all object containers.">
-<polygon fill="white" stroke="black" points="0,-485.5 0,-872.5 184,-872.5 184,-485.5 0,-485.5"/>
-<text text-anchor="middle" x="92" y="-860.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::Object</text>
-<polyline fill="none" stroke="black" points="0,-853.5 184,-853.5 "/>
-<text text-anchor="start" x="8" y="-841.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
-<text text-anchor="start" x="8" y="-830.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_final</text>
-<text text-anchor="start" x="8" y="-819.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots</text>
-<text text-anchor="start" x="8" y="-808.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots_can</text>
-<text text-anchor="start" x="8" y="-797.5" font-family="Helvetica,sans-Serif" font-size="10.00">_overflow</text>
-<text text-anchor="start" x="8" y="-786.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_visit</text>
-<text text-anchor="start" x="8" y="-775.5" font-family="Helvetica,sans-Serif" font-size="10.00">_attrs</text>
-<text text-anchor="start" x="8" y="-764.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_sequal</text>
-<text text-anchor="start" x="8" y="-753.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
-<text text-anchor="start" x="8" y="-742.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_shash</text>
-<text text-anchor="start" x="8" y="-731.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
-<text text-anchor="start" x="8" y="-720.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_index</text>
-<text text-anchor="start" x="8" y="-709.5" font-family="Helvetica,sans-Serif" font-size="10.00"># type_index_</text>
-<text text-anchor="start" x="8" y="-698.5" font-family="Helvetica,sans-Serif" font-size="10.00"># ref_counter_</text>
-<polyline fill="none" stroke="black" points="0,-691.5 184,-691.5 "/>
-<text text-anchor="start" x="8" y="-679.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ type_index()</text>
-<text text-anchor="start" x="8" y="-668.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ GetTypeKey()</text>
-<text text-anchor="start" x="8" y="-657.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ GetTypeKeyHash()</text>
-<text text-anchor="start" x="8" y="-646.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ IsInstance()</text>
-<text text-anchor="start" x="8" y="-635.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ unique()</text>
+<polygon fill="white" stroke="black" points="0,-496.5 0,-883.5 184,-883.5 184,-496.5 0,-496.5"/>
+<text text-anchor="middle" x="92" y="-871.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::Object</text>
+<polyline fill="none" stroke="black" points="0,-864.5 184,-864.5 "/>
+<text text-anchor="start" x="8" y="-852.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
+<text text-anchor="start" x="8" y="-841.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_final</text>
+<text text-anchor="start" x="8" y="-830.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots</text>
+<text text-anchor="start" x="8" y="-819.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots_can</text>
+<text text-anchor="start" x="8" y="-808.5" font-family="Helvetica,sans-Serif" font-size="10.00">_overflow</text>
+<text text-anchor="start" x="8" y="-797.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_visit</text>
+<text text-anchor="start" x="8" y="-786.5" font-family="Helvetica,sans-Serif" font-size="10.00">_attrs</text>
+<text text-anchor="start" x="8" y="-775.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_sequal</text>
+<text text-anchor="start" x="8" y="-764.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
+<text text-anchor="start" x="8" y="-753.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_shash</text>
+<text text-anchor="start" x="8" y="-742.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
+<text text-anchor="start" x="8" y="-731.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_index</text>
+<text text-anchor="start" x="8" y="-720.5" font-family="Helvetica,sans-Serif" font-size="10.00"># type_index_</text>
+<text text-anchor="start" x="8" y="-709.5" font-family="Helvetica,sans-Serif" font-size="10.00"># ref_counter_</text>
+<polyline fill="none" stroke="black" points="0,-702.5 184,-702.5 "/>
+<text text-anchor="start" x="8" y="-690.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ type_index()</text>
+<text text-anchor="start" x="8" y="-679.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ GetTypeKey()</text>
+<text text-anchor="start" x="8" y="-668.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ GetTypeKeyHash()</text>
+<text text-anchor="start" x="8" y="-657.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ IsInstance()</text>
+<text text-anchor="start" x="8" y="-646.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ unique()</text>
+<text text-anchor="start" x="8" y="-635.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Object()</text>
<text text-anchor="start" x="8" y="-624.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Object()</text>
<text text-anchor="start" x="8" y="-613.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Object()</text>
-<text text-anchor="start" x="8" y="-602.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Object()</text>
+<text text-anchor="start" x="8" y="-602.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
<text text-anchor="start" x="8" y="-591.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
-<text text-anchor="start" x="8" y="-580.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
-<text text-anchor="start" x="8" y="-569.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeIndex2Key()</text>
-<text text-anchor="start" x="8" y="-558.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeIndex2KeyHash()</text>
-<text text-anchor="start" x="8" y="-547.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeKey2Index()</text>
-<text text-anchor="start" x="8" y="-536.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _GetOrAllocRuntimeTypeIndex()</text>
-<text text-anchor="start" x="8" y="-525.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RuntimeTypeIndex()</text>
-<text text-anchor="start" x="8" y="-514.5" font-family="Helvetica,sans-Serif" font-size="10.00"># IncRef()</text>
-<text text-anchor="start" x="8" y="-503.5" font-family="Helvetica,sans-Serif" font-size="10.00"># DecRef()</text>
-<text text-anchor="start" x="8" y="-492.5" font-family="Helvetica,sans-Serif" font-size="10.00"># GetOrAllocRuntimeTypeIndex()</text>
+<text text-anchor="start" x="8" y="-580.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeIndex2Key()</text>
+<text text-anchor="start" x="8" y="-569.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeIndex2KeyHash()</text>
+<text text-anchor="start" x="8" y="-558.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeKey2Index()</text>
+<text text-anchor="start" x="8" y="-547.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _GetOrAllocRuntimeTypeIndex()</text>
+<text text-anchor="start" x="8" y="-536.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RuntimeTypeIndex()</text>
+<text text-anchor="start" x="8" y="-525.5" font-family="Helvetica,sans-Serif" font-size="10.00"># IncRef()</text>
+<text text-anchor="start" x="8" y="-514.5" font-family="Helvetica,sans-Serif" font-size="10.00"># DecRef()</text>
+<text text-anchor="start" x="8" y="-503.5" font-family="Helvetica,sans-Serif" font-size="10.00"># GetOrAllocRuntimeTypeIndex()</text>
</a>
</g>
</g>
<!-- Node3->Node2 -->
<g id="edge2" class="edge">
<title>Node3->Node2</title>
-<path fill="none" stroke="midnightblue" d="M159.51,-475.72C174.18,-431.78 188.6,-388.57 199.68,-355.37"/>
-<polygon fill="none" stroke="midnightblue" points="156.13,-474.81 156.28,-485.41 162.77,-477.03 156.13,-474.81"/>
+<path fill="none" stroke="midnightblue" d="M158.48,-486.96C173.66,-440.83 188.65,-395.26 200.04,-360.67"/>
+<polygon fill="none" stroke="midnightblue" points="155.14,-485.9 155.34,-496.49 161.79,-488.09 155.14,-485.9"/>
</g>
<!-- Node3->Node3 -->
<g id="edge3" class="edge">
<title>Node3->Node3</title>
-<path fill="none" stroke="#404040" d="M184.28,-712.92C195.02,-706.66 202,-695.36 202,-679 202,-668.01 198.85,-659.3 193.52,-652.87"/>
-<polygon fill="none" stroke="#404040" points="193.46,-652.81 186.29,-652 184.28,-645.08 191.45,-645.89 193.46,-652.81"/>
-<text text-anchor="middle" x="228" y="-676.5" font-family="Helvetica,sans-Serif" font-size="10.00"> #deleter_</text>
+<path fill="none" stroke="#404040" d="M184.28,-723.92C195.02,-717.66 202,-706.36 202,-690 202,-679.01 198.85,-670.3 193.52,-663.87"/>
+<polygon fill="none" stroke="#404040" points="193.46,-663.81 186.29,-663 184.28,-656.08 191.45,-656.89 193.46,-663.81"/>
+<text text-anchor="middle" x="228" y="-687.5" font-family="Helvetica,sans-Serif" font-size="10.00"> #deleter_</text>
</g>
<!-- Node4 -->
<g id="node4" class="node">
<title>Node4</title>
<g id="a_node4"><a xlink:href="classtvm_1_1Span.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="272,-634 272,-724 428,-724 428,-634 272,-634"/>
-<text text-anchor="middle" x="350" y="-712" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::Span</text>
-<polyline fill="none" stroke="black" points="272,-705 428,-705 "/>
-<text text-anchor="middle" x="350" y="-693" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="272,-686 428,-686 "/>
-<text text-anchor="start" x="280" y="-674" font-family="Helvetica,sans-Serif" font-size="10.00">+ Span()</text>
-<text text-anchor="start" x="280" y="-663" font-family="Helvetica,sans-Serif" font-size="10.00">+ Merge()</text>
-<text text-anchor="start" x="280" y="-652" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="280" y="-641" font-family="Helvetica,sans-Serif" font-size="10.00">_METHODS()</text>
+<polygon fill="white" stroke="black" points="272,-645 272,-735 428,-735 428,-645 272,-645"/>
+<text text-anchor="middle" x="350" y="-723" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::Span</text>
+<polyline fill="none" stroke="black" points="272,-716 428,-716 "/>
+<text text-anchor="middle" x="350" y="-704" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="272,-697 428,-697 "/>
+<text text-anchor="start" x="280" y="-685" font-family="Helvetica,sans-Serif" font-size="10.00">+ Span()</text>
+<text text-anchor="start" x="280" y="-674" font-family="Helvetica,sans-Serif" font-size="10.00">+ Merge()</text>
+<text text-anchor="start" x="280" y="-663" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="280" y="-652" font-family="Helvetica,sans-Serif" font-size="10.00">_METHODS()</text>
</a>
</g>
</g>
<!-- Node4->Node2 -->
<g id="edge4" class="edge">
<title>Node4->Node2</title>
-<path fill="none" stroke="#404040" d="M334.96,-633.63C312.81,-568.28 271.15,-445.39 244.53,-366.87"/>
-<polygon fill="none" stroke="#404040" points="244.41,-366.51 238.69,-362.11 240.56,-355.14 246.27,-359.54 244.41,-366.51"/>
-<text text-anchor="middle" x="295.5" y="-459" font-family="Helvetica,sans-Serif" font-size="10.00"> +span</text>
+<path fill="none" stroke="#404040" d="M335.21,-644.76C313.01,-578.33 270.83,-452.11 244.13,-372.21"/>
+<polygon fill="none" stroke="#404040" points="244.11,-372.15 238.42,-367.73 240.31,-360.77 246,-365.19 244.11,-372.15"/>
+<text text-anchor="middle" x="295.5" y="-470" font-family="Helvetica,sans-Serif" font-size="10.00"> +span</text>
</g>
<!-- Node5 -->
<g id="node5" class="node">
<title>Node5</title>
<g id="a_node5"><a xlink:href="classtvm_1_1runtime_1_1ObjectRef.html" target="_top" xlink:title="Base class of all object reference.">
-<polygon fill="white" stroke="black" points="283,-910.5 283,-1143.5 417,-1143.5 417,-910.5 283,-910.5"/>
-<text text-anchor="middle" x="350" y="-1131.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::ObjectRef</text>
-<polyline fill="none" stroke="black" points="283,-1124.5 417,-1124.5 "/>
-<text text-anchor="start" x="291" y="-1112.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_is_nullable</text>
-<polyline fill="none" stroke="black" points="283,-1105.5 417,-1105.5 "/>
+<polygon fill="white" stroke="black" points="283,-921.5 283,-1154.5 417,-1154.5 417,-921.5 283,-921.5"/>
+<text text-anchor="middle" x="350" y="-1142.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::ObjectRef</text>
+<polyline fill="none" stroke="black" points="283,-1135.5 417,-1135.5 "/>
+<text text-anchor="start" x="291" y="-1123.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_is_nullable</text>
+<polyline fill="none" stroke="black" points="283,-1116.5 417,-1116.5 "/>
+<text text-anchor="start" x="291" y="-1104.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectRef()</text>
<text text-anchor="start" x="291" y="-1093.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectRef()</text>
-<text text-anchor="start" x="291" y="-1082.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectRef()</text>
-<text text-anchor="start" x="291" y="-1071.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ same_as()</text>
-<text text-anchor="start" x="291" y="-1060.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator==()</text>
-<text text-anchor="start" x="291" y="-1049.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator!=()</text>
-<text text-anchor="start" x="291" y="-1038.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator<()</text>
-<text text-anchor="start" x="291" y="-1027.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ defined()</text>
-<text text-anchor="start" x="291" y="-1016.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get()</text>
-<text text-anchor="start" x="291" y="-1005.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator->()</text>
-<text text-anchor="start" x="291" y="-994.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ unique()</text>
-<text text-anchor="start" x="291" y="-983.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ use_count()</text>
+<text text-anchor="start" x="291" y="-1082.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ same_as()</text>
+<text text-anchor="start" x="291" y="-1071.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator==()</text>
+<text text-anchor="start" x="291" y="-1060.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator!=()</text>
+<text text-anchor="start" x="291" y="-1049.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator<()</text>
+<text text-anchor="start" x="291" y="-1038.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ defined()</text>
+<text text-anchor="start" x="291" y="-1027.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get()</text>
+<text text-anchor="start" x="291" y="-1016.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator->()</text>
+<text text-anchor="start" x="291" y="-1005.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ unique()</text>
+<text text-anchor="start" x="291" y="-994.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ use_count()</text>
+<text text-anchor="start" x="291" y="-983.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ as()</text>
<text text-anchor="start" x="291" y="-972.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ as()</text>
-<text text-anchor="start" x="291" y="-961.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ as()</text>
-<text text-anchor="start" x="291" y="-950.5" font-family="Helvetica,sans-Serif" font-size="10.00"># get_mutable()</text>
-<text text-anchor="start" x="291" y="-939.5" font-family="Helvetica,sans-Serif" font-size="10.00"># DowncastNoCheck()</text>
-<text text-anchor="start" x="291" y="-928.5" font-family="Helvetica,sans-Serif" font-size="10.00"># FFIClearAfterMove()</text>
-<text text-anchor="start" x="291" y="-917.5" font-family="Helvetica,sans-Serif" font-size="10.00"># GetDataPtr()</text>
+<text text-anchor="start" x="291" y="-961.5" font-family="Helvetica,sans-Serif" font-size="10.00"># get_mutable()</text>
+<text text-anchor="start" x="291" y="-950.5" font-family="Helvetica,sans-Serif" font-size="10.00"># DowncastNoCheck()</text>
+<text text-anchor="start" x="291" y="-939.5" font-family="Helvetica,sans-Serif" font-size="10.00"># FFIClearAfterMove()</text>
+<text text-anchor="start" x="291" y="-928.5" font-family="Helvetica,sans-Serif" font-size="10.00"># GetDataPtr()</text>
</a>
</g>
</g>
<!-- Node5->Node4 -->
<g id="edge5" class="edge">
<title>Node5->Node4</title>
-<path fill="none" stroke="midnightblue" d="M350,-900.11C350,-838.57 350,-768.41 350,-724.17"/>
-<polygon fill="none" stroke="midnightblue" points="346.5,-900.31 350,-910.31 353.5,-900.31 346.5,-900.31"/>
+<path fill="none" stroke="midnightblue" d="M350,-911.11C350,-849.57 350,-779.41 350,-735.17"/>
+<polygon fill="none" stroke="midnightblue" points="346.5,-911.31 350,-921.31 353.5,-911.31 346.5,-911.31"/>
</g>
<!-- Node6 -->
<g id="node6" class="node">
<title>Node6</title>
<g id="a_node6"><a xlink:href="classtvm_1_1runtime_1_1ObjectPtr.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="280,-1191.5 280,-1369.5 420,-1369.5 420,-1191.5 280,-1191.5"/>
-<text text-anchor="start" x="288" y="-1357.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::ObjectPtr</text>
-<text text-anchor="middle" x="350" y="-1346.5" font-family="Helvetica,sans-Serif" font-size="10.00">< tvm::runtime::Object ></text>
-<polyline fill="none" stroke="black" points="280,-1339.5 420,-1339.5 "/>
-<text text-anchor="middle" x="350" y="-1327.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="280,-1320.5 420,-1320.5 "/>
+<polygon fill="white" stroke="black" points="280,-1202.5 280,-1380.5 420,-1380.5 420,-1202.5 280,-1202.5"/>
+<text text-anchor="start" x="288" y="-1368.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::ObjectPtr</text>
+<text text-anchor="middle" x="350" y="-1357.5" font-family="Helvetica,sans-Serif" font-size="10.00">< tvm::runtime::Object ></text>
+<polyline fill="none" stroke="black" points="280,-1350.5 420,-1350.5 "/>
+<text text-anchor="middle" x="350" y="-1338.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="280,-1331.5 420,-1331.5 "/>
+<text text-anchor="start" x="288" y="-1319.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="288" y="-1308.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="288" y="-1297.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="288" y="-1286.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="288" y="-1275.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="288" y="-1264.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
-<text text-anchor="start" x="288" y="-1253.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
-<text text-anchor="start" x="288" y="-1242.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ~ObjectPtr()</text>
-<text text-anchor="start" x="288" y="-1231.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ swap()</text>
-<text text-anchor="start" x="288" y="-1220.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get()</text>
-<text text-anchor="start" x="288" y="-1209.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator->()</text>
-<text text-anchor="start" x="288" y="-1198.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 11 more...</text>
+<text text-anchor="start" x="288" y="-1253.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ~ObjectPtr()</text>
+<text text-anchor="start" x="288" y="-1242.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ swap()</text>
+<text text-anchor="start" x="288" y="-1231.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get()</text>
+<text text-anchor="start" x="288" y="-1220.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator->()</text>
+<text text-anchor="start" x="288" y="-1209.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 11 more...</text>
</a>
</g>
</g>
<!-- Node6->Node5 -->
<g id="edge6" class="edge">
<title>Node6->Node5</title>
-<path fill="none" stroke="#404040" d="M350,-1191.18C350,-1179.84 350,-1168.05 350,-1156.23"/>
-<polygon fill="none" stroke="#404040" points="350,-1155.91 346,-1149.91 350,-1143.91 354,-1149.91 350,-1155.91"/>
-<text text-anchor="middle" x="369.5" y="-1165" font-family="Helvetica,sans-Serif" font-size="10.00"> #data_</text>
+<path fill="none" stroke="#404040" d="M350,-1202.18C350,-1190.84 350,-1179.05 350,-1167.23"/>
+<polygon fill="none" stroke="#404040" points="350,-1166.91 346,-1160.91 350,-1154.91 354,-1160.91 350,-1166.91"/>
+<text text-anchor="middle" x="369.5" y="-1176" font-family="Helvetica,sans-Serif" font-size="10.00"> #data_</text>
</g>
<!-- Node7 -->
<g id="node7" class="node">
<title>Node7</title>
<g id="a_node7"><a xlink:href="classtvm_1_1runtime_1_1DataType.html" target="_top" xlink:title="Runtime primitive data type.">
-<polygon fill="white" stroke="black" points="325,-149.5 325,-437.5 457,-437.5 457,-149.5 325,-149.5"/>
-<text text-anchor="middle" x="391" y="-425.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::DataType</text>
-<polyline fill="none" stroke="black" points="325,-418.5 457,-418.5 "/>
-<text text-anchor="middle" x="391" y="-406.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="325,-399.5 457,-399.5 "/>
+<polygon fill="white" stroke="black" points="325,-149.5 325,-448.5 457,-448.5 457,-149.5 325,-149.5"/>
+<text text-anchor="middle" x="391" y="-436.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::DataType</text>
+<polyline fill="none" stroke="black" points="325,-429.5 457,-429.5 "/>
+<text text-anchor="middle" x="391" y="-417.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="325,-410.5 457,-410.5 "/>
+<text text-anchor="start" x="333" y="-398.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ DataType()</text>
<text text-anchor="start" x="333" y="-387.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ DataType()</text>
<text text-anchor="start" x="333" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ DataType()</text>
-<text text-anchor="start" x="333" y="-365.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ DataType()</text>
-<text text-anchor="start" x="333" y="-354.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ code()</text>
-<text text-anchor="start" x="333" y="-343.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ bits()</text>
-<text text-anchor="start" x="333" y="-332.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ bytes()</text>
-<text text-anchor="start" x="333" y="-321.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ lanes()</text>
-<text text-anchor="start" x="333" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ vscale_factor()</text>
-<text text-anchor="start" x="333" y="-299.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get_lanes_or_vscale</text>
-<text text-anchor="start" x="333" y="-288.5" font-family="Helvetica,sans-Serif" font-size="10.00">_factor()</text>
-<text text-anchor="start" x="333" y="-277.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ is_scalar()</text>
-<text text-anchor="start" x="333" y="-266.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 24 more...</text>
-<text text-anchor="start" x="333" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Int()</text>
-<text text-anchor="start" x="333" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ UInt()</text>
-<text text-anchor="start" x="333" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Float()</text>
-<text text-anchor="start" x="333" y="-222.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ BFloat()</text>
-<text text-anchor="start" x="333" y="-211.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat8E4M3()</text>
-<text text-anchor="start" x="333" y="-200.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat8E5M2()</text>
+<text text-anchor="start" x="333" y="-365.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ code()</text>
+<text text-anchor="start" x="333" y="-354.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ bits()</text>
+<text text-anchor="start" x="333" y="-343.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ bytes()</text>
+<text text-anchor="start" x="333" y="-332.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ lanes()</text>
+<text text-anchor="start" x="333" y="-321.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ vscale_factor()</text>
+<text text-anchor="start" x="333" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get_lanes_or_vscale</text>
+<text text-anchor="start" x="333" y="-299.5" font-family="Helvetica,sans-Serif" font-size="10.00">_factor()</text>
+<text text-anchor="start" x="333" y="-288.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ is_scalar()</text>
+<text text-anchor="start" x="333" y="-277.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 26 more...</text>
+<text text-anchor="start" x="333" y="-266.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Int()</text>
+<text text-anchor="start" x="333" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ UInt()</text>
+<text text-anchor="start" x="333" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Float()</text>
+<text text-anchor="start" x="333" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ BFloat()</text>
+<text text-anchor="start" x="333" y="-222.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat8E4M3()</text>
+<text text-anchor="start" x="333" y="-211.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat8E5M2()</text>
+<text text-anchor="start" x="333" y="-200.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat4E2M1()</text>
<text text-anchor="start" x="333" y="-189.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Bool()</text>
<text text-anchor="start" x="333" y="-178.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Handle()</text>
<text text-anchor="start" x="333" y="-167.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Void()</text>
@@ -233,9 +234,9 @@
<!-- Node7->Node1 -->
<g id="edge7" class="edge">
<title>Node7->Node1</title>
-<path fill="none" stroke="#404040" d="M339.86,-149.47C335.33,-136.82 330.93,-124.52 326.87,-113.15"/>
-<polygon fill="none" stroke="#404040" points="326.8,-112.97 321.02,-108.67 322.76,-101.67 328.55,-105.98 326.8,-112.97"/>
-<text text-anchor="middle" x="353" y="-123" font-family="Helvetica,sans-Serif" font-size="10.00"> +dtype</text>
+<path fill="none" stroke="#404040" d="M338.99,-149.23C334.58,-136.61 330.3,-124.37 326.35,-113.08"/>
+<polygon fill="none" stroke="#404040" points="326.32,-113 320.57,-108.65 322.36,-101.67 328.12,-106.01 326.32,-113"/>
+<text text-anchor="middle" x="351" y="-123" font-family="Helvetica,sans-Serif" font-size="10.00"> +dtype</text>
</g>
</g>
</svg>
diff --git a/docs/reference/api/doxygen/classtvm_1_1PrimTypeNode.html b/docs/reference/api/doxygen/classtvm_1_1PrimTypeNode.html
index a8c54bbc80..58243c1fed 100644
--- a/docs/reference/api/doxygen/classtvm_1_1PrimTypeNode.html
+++ b/docs/reference/api/doxygen/classtvm_1_1PrimTypeNode.html
@@ -88,7 +88,7 @@ Inheritance diagram for tvm::PrimTypeNode:</div>
<div class="dynheader">
Collaboration diagram for tvm::PrimTypeNode:</div>
<div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1PrimTypeNode__coll__graph.svg" width="620" height="1838"><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_1PrimTypeNode__coll__graph.svg" width="620" height="1852"><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">
diff --git a/docs/reference/api/doxygen/classtvm_1_1PrimTypeNode__coll__graph.svg b/docs/reference/api/doxygen/classtvm_1_1PrimTypeNode__coll__graph.svg
index 65c04cfee2..c35b95eff7 100644
--- a/docs/reference/api/doxygen/classtvm_1_1PrimTypeNode__coll__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1PrimTypeNode__coll__graph.svg
@@ -4,11 +4,11 @@
<!-- Generated by graphviz version 2.43.0 (0)
-->
<!-- Title: tvm::PrimTypeNode Pages: 1 -->
-<svg width="465pt" height="1378pt"
- viewBox="0.00 0.00 465.00 1378.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 1374)">
+<svg width="465pt" height="1389pt"
+ viewBox="0.00 0.00 465.00 1389.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 1385)">
<title>tvm::PrimTypeNode</title>
-<polygon fill="white" stroke="transparent" points="-4,4 -4,-1374 461,-1374 461,4 -4,4"/>
+<polygon fill="white" stroke="transparent" points="-4,4 -4,-1385 461,-1385 461,4 -4,4"/>
<!-- Node1 -->
<g id="node1" class="node">
<title>Node1</title>
@@ -30,199 +30,200 @@
<g id="node2" class="node">
<title>Node2</title>
<g id="a_node2"><a xlink:href="classtvm_1_1TypeNode.html" target="_top" xlink:title="Type is the base type of all types.">
-<polygon fill="white" stroke="black" points="133.5,-232 133.5,-355 306.5,-355 306.5,-232 133.5,-232"/>
-<text text-anchor="middle" x="220" y="-343" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::TypeNode</text>
-<polyline fill="none" stroke="black" points="133.5,-336 306.5,-336 "/>
-<text text-anchor="start" x="141.5" y="-324" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
-<text text-anchor="start" x="141.5" y="-313" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_sequal</text>
-<text text-anchor="start" x="141.5" y="-302" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
-<text text-anchor="start" x="141.5" y="-291" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_shash</text>
-<text text-anchor="start" x="141.5" y="-280" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
-<text text-anchor="start" x="141.5" y="-269" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots</text>
-<polyline fill="none" stroke="black" points="133.5,-262 306.5,-262 "/>
-<text text-anchor="start" x="141.5" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DECLARE_BASE_OBJECT</text>
-<text text-anchor="start" x="141.5" y="-239" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO()</text>
+<polygon fill="white" stroke="black" points="133.5,-237.5 133.5,-360.5 306.5,-360.5 306.5,-237.5 133.5,-237.5"/>
+<text text-anchor="middle" x="220" y="-348.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::TypeNode</text>
+<polyline fill="none" stroke="black" points="133.5,-341.5 306.5,-341.5 "/>
+<text text-anchor="start" x="141.5" y="-329.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
+<text text-anchor="start" x="141.5" y="-318.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_sequal</text>
+<text text-anchor="start" x="141.5" y="-307.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
+<text text-anchor="start" x="141.5" y="-296.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_shash</text>
+<text text-anchor="start" x="141.5" y="-285.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
+<text text-anchor="start" x="141.5" y="-274.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots</text>
+<polyline fill="none" stroke="black" points="133.5,-267.5 306.5,-267.5 "/>
+<text text-anchor="start" x="141.5" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DECLARE_BASE_OBJECT</text>
+<text text-anchor="start" x="141.5" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO()</text>
</a>
</g>
</g>
<!-- Node2->Node1 -->
<g id="edge1" class="edge">
<title>Node2->Node1</title>
-<path fill="none" stroke="midnightblue" d="M244.85,-222.18C258.51,-183.54 275.12,-136.54 287.42,-101.73"/>
-<polygon fill="none" stroke="midnightblue" points="241.48,-221.22 241.45,-231.81 248.08,-223.55 241.48,-221.22"/>
+<path fill="none" stroke="midnightblue" d="M244.29,-227.71C258.19,-187.48 275.29,-137.98 287.8,-101.78"/>
+<polygon fill="none" stroke="midnightblue" points="240.97,-226.6 241.01,-237.19 247.59,-228.88 240.97,-226.6"/>
</g>
<!-- Node3 -->
<g id="node3" class="node">
<title>Node3</title>
<g id="a_node3"><a xlink:href="classtvm_1_1runtime_1_1Object.html" target="_top" xlink:title="base class of all object containers.">
-<polygon fill="white" stroke="black" points="0,-485.5 0,-872.5 184,-872.5 184,-485.5 0,-485.5"/>
-<text text-anchor="middle" x="92" y="-860.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::Object</text>
-<polyline fill="none" stroke="black" points="0,-853.5 184,-853.5 "/>
-<text text-anchor="start" x="8" y="-841.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
-<text text-anchor="start" x="8" y="-830.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_final</text>
-<text text-anchor="start" x="8" y="-819.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots</text>
-<text text-anchor="start" x="8" y="-808.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots_can</text>
-<text text-anchor="start" x="8" y="-797.5" font-family="Helvetica,sans-Serif" font-size="10.00">_overflow</text>
-<text text-anchor="start" x="8" y="-786.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_visit</text>
-<text text-anchor="start" x="8" y="-775.5" font-family="Helvetica,sans-Serif" font-size="10.00">_attrs</text>
-<text text-anchor="start" x="8" y="-764.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_sequal</text>
-<text text-anchor="start" x="8" y="-753.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
-<text text-anchor="start" x="8" y="-742.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_shash</text>
-<text text-anchor="start" x="8" y="-731.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
-<text text-anchor="start" x="8" y="-720.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_index</text>
-<text text-anchor="start" x="8" y="-709.5" font-family="Helvetica,sans-Serif" font-size="10.00"># type_index_</text>
-<text text-anchor="start" x="8" y="-698.5" font-family="Helvetica,sans-Serif" font-size="10.00"># ref_counter_</text>
-<polyline fill="none" stroke="black" points="0,-691.5 184,-691.5 "/>
-<text text-anchor="start" x="8" y="-679.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ type_index()</text>
-<text text-anchor="start" x="8" y="-668.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ GetTypeKey()</text>
-<text text-anchor="start" x="8" y="-657.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ GetTypeKeyHash()</text>
-<text text-anchor="start" x="8" y="-646.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ IsInstance()</text>
-<text text-anchor="start" x="8" y="-635.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ unique()</text>
+<polygon fill="white" stroke="black" points="0,-496.5 0,-883.5 184,-883.5 184,-496.5 0,-496.5"/>
+<text text-anchor="middle" x="92" y="-871.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::Object</text>
+<polyline fill="none" stroke="black" points="0,-864.5 184,-864.5 "/>
+<text text-anchor="start" x="8" y="-852.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
+<text text-anchor="start" x="8" y="-841.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_final</text>
+<text text-anchor="start" x="8" y="-830.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots</text>
+<text text-anchor="start" x="8" y="-819.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots_can</text>
+<text text-anchor="start" x="8" y="-808.5" font-family="Helvetica,sans-Serif" font-size="10.00">_overflow</text>
+<text text-anchor="start" x="8" y="-797.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_visit</text>
+<text text-anchor="start" x="8" y="-786.5" font-family="Helvetica,sans-Serif" font-size="10.00">_attrs</text>
+<text text-anchor="start" x="8" y="-775.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_sequal</text>
+<text text-anchor="start" x="8" y="-764.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
+<text text-anchor="start" x="8" y="-753.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_shash</text>
+<text text-anchor="start" x="8" y="-742.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
+<text text-anchor="start" x="8" y="-731.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_index</text>
+<text text-anchor="start" x="8" y="-720.5" font-family="Helvetica,sans-Serif" font-size="10.00"># type_index_</text>
+<text text-anchor="start" x="8" y="-709.5" font-family="Helvetica,sans-Serif" font-size="10.00"># ref_counter_</text>
+<polyline fill="none" stroke="black" points="0,-702.5 184,-702.5 "/>
+<text text-anchor="start" x="8" y="-690.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ type_index()</text>
+<text text-anchor="start" x="8" y="-679.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ GetTypeKey()</text>
+<text text-anchor="start" x="8" y="-668.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ GetTypeKeyHash()</text>
+<text text-anchor="start" x="8" y="-657.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ IsInstance()</text>
+<text text-anchor="start" x="8" y="-646.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ unique()</text>
+<text text-anchor="start" x="8" y="-635.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Object()</text>
<text text-anchor="start" x="8" y="-624.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Object()</text>
<text text-anchor="start" x="8" y="-613.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Object()</text>
-<text text-anchor="start" x="8" y="-602.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Object()</text>
+<text text-anchor="start" x="8" y="-602.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
<text text-anchor="start" x="8" y="-591.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
-<text text-anchor="start" x="8" y="-580.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
-<text text-anchor="start" x="8" y="-569.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeIndex2Key()</text>
-<text text-anchor="start" x="8" y="-558.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeIndex2KeyHash()</text>
-<text text-anchor="start" x="8" y="-547.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeKey2Index()</text>
-<text text-anchor="start" x="8" y="-536.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _GetOrAllocRuntimeTypeIndex()</text>
-<text text-anchor="start" x="8" y="-525.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RuntimeTypeIndex()</text>
-<text text-anchor="start" x="8" y="-514.5" font-family="Helvetica,sans-Serif" font-size="10.00"># IncRef()</text>
-<text text-anchor="start" x="8" y="-503.5" font-family="Helvetica,sans-Serif" font-size="10.00"># DecRef()</text>
-<text text-anchor="start" x="8" y="-492.5" font-family="Helvetica,sans-Serif" font-size="10.00"># GetOrAllocRuntimeTypeIndex()</text>
+<text text-anchor="start" x="8" y="-580.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeIndex2Key()</text>
+<text text-anchor="start" x="8" y="-569.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeIndex2KeyHash()</text>
+<text text-anchor="start" x="8" y="-558.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeKey2Index()</text>
+<text text-anchor="start" x="8" y="-547.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _GetOrAllocRuntimeTypeIndex()</text>
+<text text-anchor="start" x="8" y="-536.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RuntimeTypeIndex()</text>
+<text text-anchor="start" x="8" y="-525.5" font-family="Helvetica,sans-Serif" font-size="10.00"># IncRef()</text>
+<text text-anchor="start" x="8" y="-514.5" font-family="Helvetica,sans-Serif" font-size="10.00"># DecRef()</text>
+<text text-anchor="start" x="8" y="-503.5" font-family="Helvetica,sans-Serif" font-size="10.00"># GetOrAllocRuntimeTypeIndex()</text>
</a>
</g>
</g>
<!-- Node3->Node2 -->
<g id="edge2" class="edge">
<title>Node3->Node2</title>
-<path fill="none" stroke="midnightblue" d="M159.51,-475.72C174.18,-431.78 188.6,-388.57 199.68,-355.37"/>
-<polygon fill="none" stroke="midnightblue" points="156.13,-474.81 156.28,-485.41 162.77,-477.03 156.13,-474.81"/>
+<path fill="none" stroke="midnightblue" d="M158.48,-486.96C173.66,-440.83 188.65,-395.26 200.04,-360.67"/>
+<polygon fill="none" stroke="midnightblue" points="155.14,-485.9 155.34,-496.49 161.79,-488.09 155.14,-485.9"/>
</g>
<!-- Node3->Node3 -->
<g id="edge3" class="edge">
<title>Node3->Node3</title>
-<path fill="none" stroke="#404040" d="M184.28,-712.92C195.02,-706.66 202,-695.36 202,-679 202,-668.01 198.85,-659.3 193.52,-652.87"/>
-<polygon fill="none" stroke="#404040" points="193.46,-652.81 186.29,-652 184.28,-645.08 191.45,-645.89 193.46,-652.81"/>
-<text text-anchor="middle" x="228" y="-676.5" font-family="Helvetica,sans-Serif" font-size="10.00"> #deleter_</text>
+<path fill="none" stroke="#404040" d="M184.28,-723.92C195.02,-717.66 202,-706.36 202,-690 202,-679.01 198.85,-670.3 193.52,-663.87"/>
+<polygon fill="none" stroke="#404040" points="193.46,-663.81 186.29,-663 184.28,-656.08 191.45,-656.89 193.46,-663.81"/>
+<text text-anchor="middle" x="228" y="-687.5" font-family="Helvetica,sans-Serif" font-size="10.00"> #deleter_</text>
</g>
<!-- Node4 -->
<g id="node4" class="node">
<title>Node4</title>
<g id="a_node4"><a xlink:href="classtvm_1_1Span.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="272,-634 272,-724 428,-724 428,-634 272,-634"/>
-<text text-anchor="middle" x="350" y="-712" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::Span</text>
-<polyline fill="none" stroke="black" points="272,-705 428,-705 "/>
-<text text-anchor="middle" x="350" y="-693" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="272,-686 428,-686 "/>
-<text text-anchor="start" x="280" y="-674" font-family="Helvetica,sans-Serif" font-size="10.00">+ Span()</text>
-<text text-anchor="start" x="280" y="-663" font-family="Helvetica,sans-Serif" font-size="10.00">+ Merge()</text>
-<text text-anchor="start" x="280" y="-652" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="280" y="-641" font-family="Helvetica,sans-Serif" font-size="10.00">_METHODS()</text>
+<polygon fill="white" stroke="black" points="272,-645 272,-735 428,-735 428,-645 272,-645"/>
+<text text-anchor="middle" x="350" y="-723" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::Span</text>
+<polyline fill="none" stroke="black" points="272,-716 428,-716 "/>
+<text text-anchor="middle" x="350" y="-704" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="272,-697 428,-697 "/>
+<text text-anchor="start" x="280" y="-685" font-family="Helvetica,sans-Serif" font-size="10.00">+ Span()</text>
+<text text-anchor="start" x="280" y="-674" font-family="Helvetica,sans-Serif" font-size="10.00">+ Merge()</text>
+<text text-anchor="start" x="280" y="-663" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="280" y="-652" font-family="Helvetica,sans-Serif" font-size="10.00">_METHODS()</text>
</a>
</g>
</g>
<!-- Node4->Node2 -->
<g id="edge4" class="edge">
<title>Node4->Node2</title>
-<path fill="none" stroke="#404040" d="M334.96,-633.63C312.81,-568.28 271.15,-445.39 244.53,-366.87"/>
-<polygon fill="none" stroke="#404040" points="244.41,-366.51 238.69,-362.11 240.56,-355.14 246.27,-359.54 244.41,-366.51"/>
-<text text-anchor="middle" x="295.5" y="-459" font-family="Helvetica,sans-Serif" font-size="10.00"> +span</text>
+<path fill="none" stroke="#404040" d="M335.21,-644.76C313.01,-578.33 270.83,-452.11 244.13,-372.21"/>
+<polygon fill="none" stroke="#404040" points="244.11,-372.15 238.42,-367.73 240.31,-360.77 246,-365.19 244.11,-372.15"/>
+<text text-anchor="middle" x="295.5" y="-470" font-family="Helvetica,sans-Serif" font-size="10.00"> +span</text>
</g>
<!-- Node5 -->
<g id="node5" class="node">
<title>Node5</title>
<g id="a_node5"><a xlink:href="classtvm_1_1runtime_1_1ObjectRef.html" target="_top" xlink:title="Base class of all object reference.">
-<polygon fill="white" stroke="black" points="283,-910.5 283,-1143.5 417,-1143.5 417,-910.5 283,-910.5"/>
-<text text-anchor="middle" x="350" y="-1131.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::ObjectRef</text>
-<polyline fill="none" stroke="black" points="283,-1124.5 417,-1124.5 "/>
-<text text-anchor="start" x="291" y="-1112.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_is_nullable</text>
-<polyline fill="none" stroke="black" points="283,-1105.5 417,-1105.5 "/>
+<polygon fill="white" stroke="black" points="283,-921.5 283,-1154.5 417,-1154.5 417,-921.5 283,-921.5"/>
+<text text-anchor="middle" x="350" y="-1142.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::ObjectRef</text>
+<polyline fill="none" stroke="black" points="283,-1135.5 417,-1135.5 "/>
+<text text-anchor="start" x="291" y="-1123.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_is_nullable</text>
+<polyline fill="none" stroke="black" points="283,-1116.5 417,-1116.5 "/>
+<text text-anchor="start" x="291" y="-1104.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectRef()</text>
<text text-anchor="start" x="291" y="-1093.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectRef()</text>
-<text text-anchor="start" x="291" y="-1082.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectRef()</text>
-<text text-anchor="start" x="291" y="-1071.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ same_as()</text>
-<text text-anchor="start" x="291" y="-1060.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator==()</text>
-<text text-anchor="start" x="291" y="-1049.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator!=()</text>
-<text text-anchor="start" x="291" y="-1038.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator<()</text>
-<text text-anchor="start" x="291" y="-1027.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ defined()</text>
-<text text-anchor="start" x="291" y="-1016.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get()</text>
-<text text-anchor="start" x="291" y="-1005.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator->()</text>
-<text text-anchor="start" x="291" y="-994.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ unique()</text>
-<text text-anchor="start" x="291" y="-983.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ use_count()</text>
+<text text-anchor="start" x="291" y="-1082.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ same_as()</text>
+<text text-anchor="start" x="291" y="-1071.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator==()</text>
+<text text-anchor="start" x="291" y="-1060.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator!=()</text>
+<text text-anchor="start" x="291" y="-1049.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator<()</text>
+<text text-anchor="start" x="291" y="-1038.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ defined()</text>
+<text text-anchor="start" x="291" y="-1027.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get()</text>
+<text text-anchor="start" x="291" y="-1016.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator->()</text>
+<text text-anchor="start" x="291" y="-1005.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ unique()</text>
+<text text-anchor="start" x="291" y="-994.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ use_count()</text>
+<text text-anchor="start" x="291" y="-983.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ as()</text>
<text text-anchor="start" x="291" y="-972.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ as()</text>
-<text text-anchor="start" x="291" y="-961.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ as()</text>
-<text text-anchor="start" x="291" y="-950.5" font-family="Helvetica,sans-Serif" font-size="10.00"># get_mutable()</text>
-<text text-anchor="start" x="291" y="-939.5" font-family="Helvetica,sans-Serif" font-size="10.00"># DowncastNoCheck()</text>
-<text text-anchor="start" x="291" y="-928.5" font-family="Helvetica,sans-Serif" font-size="10.00"># FFIClearAfterMove()</text>
-<text text-anchor="start" x="291" y="-917.5" font-family="Helvetica,sans-Serif" font-size="10.00"># GetDataPtr()</text>
+<text text-anchor="start" x="291" y="-961.5" font-family="Helvetica,sans-Serif" font-size="10.00"># get_mutable()</text>
+<text text-anchor="start" x="291" y="-950.5" font-family="Helvetica,sans-Serif" font-size="10.00"># DowncastNoCheck()</text>
+<text text-anchor="start" x="291" y="-939.5" font-family="Helvetica,sans-Serif" font-size="10.00"># FFIClearAfterMove()</text>
+<text text-anchor="start" x="291" y="-928.5" font-family="Helvetica,sans-Serif" font-size="10.00"># GetDataPtr()</text>
</a>
</g>
</g>
<!-- Node5->Node4 -->
<g id="edge5" class="edge">
<title>Node5->Node4</title>
-<path fill="none" stroke="midnightblue" d="M350,-900.11C350,-838.57 350,-768.41 350,-724.17"/>
-<polygon fill="none" stroke="midnightblue" points="346.5,-900.31 350,-910.31 353.5,-900.31 346.5,-900.31"/>
+<path fill="none" stroke="midnightblue" d="M350,-911.11C350,-849.57 350,-779.41 350,-735.17"/>
+<polygon fill="none" stroke="midnightblue" points="346.5,-911.31 350,-921.31 353.5,-911.31 346.5,-911.31"/>
</g>
<!-- Node6 -->
<g id="node6" class="node">
<title>Node6</title>
<g id="a_node6"><a xlink:href="classtvm_1_1runtime_1_1ObjectPtr.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="280,-1191.5 280,-1369.5 420,-1369.5 420,-1191.5 280,-1191.5"/>
-<text text-anchor="start" x="288" y="-1357.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::ObjectPtr</text>
-<text text-anchor="middle" x="350" y="-1346.5" font-family="Helvetica,sans-Serif" font-size="10.00">< tvm::runtime::Object ></text>
-<polyline fill="none" stroke="black" points="280,-1339.5 420,-1339.5 "/>
-<text text-anchor="middle" x="350" y="-1327.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="280,-1320.5 420,-1320.5 "/>
+<polygon fill="white" stroke="black" points="280,-1202.5 280,-1380.5 420,-1380.5 420,-1202.5 280,-1202.5"/>
+<text text-anchor="start" x="288" y="-1368.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::ObjectPtr</text>
+<text text-anchor="middle" x="350" y="-1357.5" font-family="Helvetica,sans-Serif" font-size="10.00">< tvm::runtime::Object ></text>
+<polyline fill="none" stroke="black" points="280,-1350.5 420,-1350.5 "/>
+<text text-anchor="middle" x="350" y="-1338.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="280,-1331.5 420,-1331.5 "/>
+<text text-anchor="start" x="288" y="-1319.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="288" y="-1308.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="288" y="-1297.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="288" y="-1286.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="288" y="-1275.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="288" y="-1264.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
-<text text-anchor="start" x="288" y="-1253.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
-<text text-anchor="start" x="288" y="-1242.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ~ObjectPtr()</text>
-<text text-anchor="start" x="288" y="-1231.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ swap()</text>
-<text text-anchor="start" x="288" y="-1220.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get()</text>
-<text text-anchor="start" x="288" y="-1209.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator->()</text>
-<text text-anchor="start" x="288" y="-1198.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 11 more...</text>
+<text text-anchor="start" x="288" y="-1253.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ~ObjectPtr()</text>
+<text text-anchor="start" x="288" y="-1242.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ swap()</text>
+<text text-anchor="start" x="288" y="-1231.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get()</text>
+<text text-anchor="start" x="288" y="-1220.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator->()</text>
+<text text-anchor="start" x="288" y="-1209.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 11 more...</text>
</a>
</g>
</g>
<!-- Node6->Node5 -->
<g id="edge6" class="edge">
<title>Node6->Node5</title>
-<path fill="none" stroke="#404040" d="M350,-1191.18C350,-1179.84 350,-1168.05 350,-1156.23"/>
-<polygon fill="none" stroke="#404040" points="350,-1155.91 346,-1149.91 350,-1143.91 354,-1149.91 350,-1155.91"/>
-<text text-anchor="middle" x="369.5" y="-1165" font-family="Helvetica,sans-Serif" font-size="10.00"> #data_</text>
+<path fill="none" stroke="#404040" d="M350,-1202.18C350,-1190.84 350,-1179.05 350,-1167.23"/>
+<polygon fill="none" stroke="#404040" points="350,-1166.91 346,-1160.91 350,-1154.91 354,-1160.91 350,-1166.91"/>
+<text text-anchor="middle" x="369.5" y="-1176" font-family="Helvetica,sans-Serif" font-size="10.00"> #data_</text>
</g>
<!-- Node7 -->
<g id="node7" class="node">
<title>Node7</title>
<g id="a_node7"><a xlink:href="classtvm_1_1runtime_1_1DataType.html" target="_top" xlink:title="Runtime primitive data type.">
-<polygon fill="white" stroke="black" points="325,-149.5 325,-437.5 457,-437.5 457,-149.5 325,-149.5"/>
-<text text-anchor="middle" x="391" y="-425.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::DataType</text>
-<polyline fill="none" stroke="black" points="325,-418.5 457,-418.5 "/>
-<text text-anchor="middle" x="391" y="-406.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="325,-399.5 457,-399.5 "/>
+<polygon fill="white" stroke="black" points="325,-149.5 325,-448.5 457,-448.5 457,-149.5 325,-149.5"/>
+<text text-anchor="middle" x="391" y="-436.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::DataType</text>
+<polyline fill="none" stroke="black" points="325,-429.5 457,-429.5 "/>
+<text text-anchor="middle" x="391" y="-417.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="325,-410.5 457,-410.5 "/>
+<text text-anchor="start" x="333" y="-398.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ DataType()</text>
<text text-anchor="start" x="333" y="-387.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ DataType()</text>
<text text-anchor="start" x="333" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ DataType()</text>
-<text text-anchor="start" x="333" y="-365.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ DataType()</text>
-<text text-anchor="start" x="333" y="-354.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ code()</text>
-<text text-anchor="start" x="333" y="-343.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ bits()</text>
-<text text-anchor="start" x="333" y="-332.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ bytes()</text>
-<text text-anchor="start" x="333" y="-321.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ lanes()</text>
-<text text-anchor="start" x="333" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ vscale_factor()</text>
-<text text-anchor="start" x="333" y="-299.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get_lanes_or_vscale</text>
-<text text-anchor="start" x="333" y="-288.5" font-family="Helvetica,sans-Serif" font-size="10.00">_factor()</text>
-<text text-anchor="start" x="333" y="-277.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ is_scalar()</text>
-<text text-anchor="start" x="333" y="-266.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 24 more...</text>
-<text text-anchor="start" x="333" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Int()</text>
-<text text-anchor="start" x="333" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ UInt()</text>
-<text text-anchor="start" x="333" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Float()</text>
-<text text-anchor="start" x="333" y="-222.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ BFloat()</text>
-<text text-anchor="start" x="333" y="-211.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat8E4M3()</text>
-<text text-anchor="start" x="333" y="-200.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat8E5M2()</text>
+<text text-anchor="start" x="333" y="-365.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ code()</text>
+<text text-anchor="start" x="333" y="-354.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ bits()</text>
+<text text-anchor="start" x="333" y="-343.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ bytes()</text>
+<text text-anchor="start" x="333" y="-332.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ lanes()</text>
+<text text-anchor="start" x="333" y="-321.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ vscale_factor()</text>
+<text text-anchor="start" x="333" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get_lanes_or_vscale</text>
+<text text-anchor="start" x="333" y="-299.5" font-family="Helvetica,sans-Serif" font-size="10.00">_factor()</text>
+<text text-anchor="start" x="333" y="-288.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ is_scalar()</text>
+<text text-anchor="start" x="333" y="-277.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 26 more...</text>
+<text text-anchor="start" x="333" y="-266.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Int()</text>
+<text text-anchor="start" x="333" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ UInt()</text>
+<text text-anchor="start" x="333" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Float()</text>
+<text text-anchor="start" x="333" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ BFloat()</text>
+<text text-anchor="start" x="333" y="-222.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat8E4M3()</text>
+<text text-anchor="start" x="333" y="-211.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat8E5M2()</text>
+<text text-anchor="start" x="333" y="-200.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat4E2M1()</text>
<text text-anchor="start" x="333" y="-189.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Bool()</text>
<text text-anchor="start" x="333" y="-178.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Handle()</text>
<text text-anchor="start" x="333" y="-167.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Void()</text>
@@ -233,9 +234,9 @@
<!-- Node7->Node1 -->
<g id="edge7" class="edge">
<title>Node7->Node1</title>
-<path fill="none" stroke="#404040" d="M339.86,-149.47C335.33,-136.82 330.93,-124.52 326.87,-113.15"/>
-<polygon fill="none" stroke="#404040" points="326.8,-112.97 321.02,-108.67 322.76,-101.67 328.55,-105.98 326.8,-112.97"/>
-<text text-anchor="middle" x="353" y="-123" font-family="Helvetica,sans-Serif" font-size="10.00"> +dtype</text>
+<path fill="none" stroke="#404040" d="M338.99,-149.23C334.58,-136.61 330.3,-124.37 326.35,-113.08"/>
+<polygon fill="none" stroke="#404040" points="326.32,-113 320.57,-108.65 322.36,-101.67 328.12,-106.01 326.32,-113"/>
+<text text-anchor="middle" x="351" y="-123" font-family="Helvetica,sans-Serif" font-size="10.00"> +dtype</text>
</g>
</g>
</svg>
diff --git a/docs/reference/api/doxygen/classtvm_1_1PrinterConfigNode__coll__graph.svg b/docs/reference/api/doxygen/classtvm_1_1PrinterConfigNode__coll__graph.svg
index af1912bf04..76257dca10 100644
--- a/docs/reference/api/doxygen/classtvm_1_1PrinterConfigNode__coll__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1PrinterConfigNode__coll__graph.svg
@@ -365,40 +365,41 @@
<g id="node10" class="node">
<title>Node10</title>
<g id="a_node10"><a xlink:href="classtvm_1_1runtime_1_1DataType.html" target="_top" xlink:title="Runtime primitive data type.">
-<polygon fill="white" stroke="black" points="1042,-342 1042,-630 1174,-630 1174,-342 1042,-342"/>
-<text text-anchor="middle" x="1108" y="-618" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::DataType</text>
-<polyline fill="none" stroke="black" points="1042,-611 1174,-611 "/>
-<text text-anchor="middle" x="1108" y="-599" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="1042,-592 1174,-592 "/>
-<text text-anchor="start" x="1050" y="-580" font-family="Helvetica,sans-Serif" font-size="10.00">+ DataType()</text>
-<text text-anchor="start" x="1050" y="-569" font-family="Helvetica,sans-Serif" font-size="10.00">+ DataType()</text>
-<text text-anchor="start" x="1050" y="-558" font-family="Helvetica,sans-Serif" font-size="10.00">+ DataType()</text>
-<text text-anchor="start" x="1050" y="-547" font-family="Helvetica,sans-Serif" font-size="10.00">+ code()</text>
-<text text-anchor="start" x="1050" y="-536" font-family="Helvetica,sans-Serif" font-size="10.00">+ bits()</text>
-<text text-anchor="start" x="1050" y="-525" font-family="Helvetica,sans-Serif" font-size="10.00">+ bytes()</text>
-<text text-anchor="start" x="1050" y="-514" font-family="Helvetica,sans-Serif" font-size="10.00">+ lanes()</text>
-<text text-anchor="start" x="1050" y="-503" font-family="Helvetica,sans-Serif" font-size="10.00">+ vscale_factor()</text>
-<text text-anchor="start" x="1050" y="-492" font-family="Helvetica,sans-Serif" font-size="10.00">+ get_lanes_or_vscale</text>
-<text text-anchor="start" x="1050" y="-481" font-family="Helvetica,sans-Serif" font-size="10.00">_factor()</text>
-<text text-anchor="start" x="1050" y="-470" font-family="Helvetica,sans-Serif" font-size="10.00">+ is_scalar()</text>
-<text text-anchor="start" x="1050" y="-459" font-family="Helvetica,sans-Serif" font-size="10.00">and 24 more...</text>
-<text text-anchor="start" x="1050" y="-448" font-family="Helvetica,sans-Serif" font-size="10.00">+ Int()</text>
-<text text-anchor="start" x="1050" y="-437" font-family="Helvetica,sans-Serif" font-size="10.00">+ UInt()</text>
-<text text-anchor="start" x="1050" y="-426" font-family="Helvetica,sans-Serif" font-size="10.00">+ Float()</text>
-<text text-anchor="start" x="1050" y="-415" font-family="Helvetica,sans-Serif" font-size="10.00">+ BFloat()</text>
-<text text-anchor="start" x="1050" y="-404" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat8E4M3()</text>
-<text text-anchor="start" x="1050" y="-393" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat8E5M2()</text>
-<text text-anchor="start" x="1050" y="-382" font-family="Helvetica,sans-Serif" font-size="10.00">+ Bool()</text>
-<text text-anchor="start" x="1050" y="-371" font-family="Helvetica,sans-Serif" font-size="10.00">+ Handle()</text>
-<text text-anchor="start" x="1050" y="-360" font-family="Helvetica,sans-Serif" font-size="10.00">+ Void()</text>
-<text text-anchor="start" x="1050" y="-349" font-family="Helvetica,sans-Serif" font-size="10.00">+ ShapeIndex()</text>
+<polygon fill="white" stroke="black" points="1042,-336.5 1042,-635.5 1174,-635.5 1174,-336.5 1042,-336.5"/>
+<text text-anchor="middle" x="1108" y="-623.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::DataType</text>
+<polyline fill="none" stroke="black" points="1042,-616.5 1174,-616.5 "/>
+<text text-anchor="middle" x="1108" y="-604.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="1042,-597.5 1174,-597.5 "/>
+<text text-anchor="start" x="1050" y="-585.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ DataType()</text>
+<text text-anchor="start" x="1050" y="-574.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ DataType()</text>
+<text text-anchor="start" x="1050" y="-563.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ DataType()</text>
+<text text-anchor="start" x="1050" y="-552.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ code()</text>
+<text text-anchor="start" x="1050" y="-541.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ bits()</text>
+<text text-anchor="start" x="1050" y="-530.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ bytes()</text>
+<text text-anchor="start" x="1050" y="-519.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ lanes()</text>
+<text text-anchor="start" x="1050" y="-508.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ vscale_factor()</text>
+<text text-anchor="start" x="1050" y="-497.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get_lanes_or_vscale</text>
+<text text-anchor="start" x="1050" y="-486.5" font-family="Helvetica,sans-Serif" font-size="10.00">_factor()</text>
+<text text-anchor="start" x="1050" y="-475.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ is_scalar()</text>
+<text text-anchor="start" x="1050" y="-464.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 26 more...</text>
+<text text-anchor="start" x="1050" y="-453.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Int()</text>
+<text text-anchor="start" x="1050" y="-442.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ UInt()</text>
+<text text-anchor="start" x="1050" y="-431.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Float()</text>
+<text text-anchor="start" x="1050" y="-420.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ BFloat()</text>
+<text text-anchor="start" x="1050" y="-409.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat8E4M3()</text>
+<text text-anchor="start" x="1050" y="-398.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat8E5M2()</text>
+<text text-anchor="start" x="1050" y="-387.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat4E2M1()</text>
+<text text-anchor="start" x="1050" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Bool()</text>
+<text text-anchor="start" x="1050" y="-365.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Handle()</text>
+<text text-anchor="start" x="1050" y="-354.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Void()</text>
+<text text-anchor="start" x="1050" y="-343.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ShapeIndex()</text>
</a>
</g>
</g>
<!-- Node10->Node1 -->
<g id="edge14" class="edge">
<title>Node10->Node1</title>
-<path fill="none" stroke="#404040" d="M1067.46,-342C1049.91,-303.66 1025.27,-265.97 991,-241 923.39,-191.73 834.31,-158.2 766.67,-137.78"/>
+<path fill="none" stroke="#404040" d="M1064.79,-336.27C1047.43,-299.93 1023.56,-264.72 991,-241 923.39,-191.73 834.31,-158.2 766.67,-137.78"/>
<polygon fill="none" stroke="#404040" points="766.66,-137.77 759.77,-139.9 755.15,-134.36 762.04,-132.23 766.66,-137.77"/>
<text text-anchor="middle" x="1058.5" y="-266" font-family="Helvetica,sans-Serif" font-size="10.00"> +buffer_dtype</text>
<text text-anchor="middle" x="1058.5" y="-255" font-family="Helvetica,sans-Serif" font-size="10.00">+float_dtype</text>
diff --git a/docs/reference/api/doxygen/classtvm_1_1arith_1_1IterMapExprNode.html b/docs/reference/api/doxygen/classtvm_1_1arith_1_1IterMapExprNode.html
index 67ede4bff0..7084159367 100644
--- a/docs/reference/api/doxygen/classtvm_1_1arith_1_1IterMapExprNode.html
+++ b/docs/reference/api/doxygen/classtvm_1_1arith_1_1IterMapExprNode.html
@@ -87,7 +87,7 @@ Inheritance diagram for tvm::arith::IterMapExprNode:</div>
<div class="dynheader">
Collaboration diagram for tvm::arith::IterMapExprNode:</div>
<div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1arith_1_1IterMapExprNode__coll__graph.svg" width="620" height="2008"><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_1arith_1_1IterMapExprNode__coll__graph.svg" width="620" height="2023"><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">
diff --git a/docs/reference/api/doxygen/classtvm_1_1arith_1_1IterMapExprNode__coll__graph.svg b/docs/reference/api/doxygen/classtvm_1_1arith_1_1IterMapExprNode__coll__graph.svg
index 6f0e4face6..9b6f374a40 100644
--- a/docs/reference/api/doxygen/classtvm_1_1arith_1_1IterMapExprNode__coll__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1arith_1_1IterMapExprNode__coll__graph.svg
@@ -4,11 +4,11 @@
<!-- Generated by graphviz version 2.43.0 (0)
-->
<!-- Title: tvm::arith::IterMapExprNode Pages: 1 -->
-<svg width="465pt" height="1506pt"
- viewBox="0.00 0.00 465.00 1506.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 1502)">
+<svg width="465pt" height="1517pt"
+ viewBox="0.00 0.00 465.00 1517.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 1513)">
<title>tvm::arith::IterMapExprNode</title>
-<polygon fill="white" stroke="transparent" points="-4,4 -4,-1502 461,-1502 461,4 -4,4"/>
+<polygon fill="white" stroke="transparent" points="-4,4 -4,-1513 461,-1513 461,4 -4,4"/>
<!-- Node1 -->
<g id="node1" class="node">
<title>Node1</title>
@@ -52,199 +52,200 @@
<g id="node3" class="node">
<title>Node3</title>
<g id="a_node3"><a xlink:href="classtvm_1_1BaseExprNode.html" target="_top" xlink:title="Base type of all the expressions.">
-<polygon fill="white" stroke="black" points="133.5,-360 133.5,-483 306.5,-483 306.5,-360 133.5,-360"/>
-<text text-anchor="middle" x="220" y="-471" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::BaseExprNode</text>
-<polyline fill="none" stroke="black" points="133.5,-464 306.5,-464 "/>
-<text text-anchor="start" x="141.5" y="-452" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
-<text text-anchor="start" x="141.5" y="-441" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_sequal</text>
-<text text-anchor="start" x="141.5" y="-430" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
-<text text-anchor="start" x="141.5" y="-419" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_shash</text>
-<text text-anchor="start" x="141.5" y="-408" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
-<text text-anchor="start" x="141.5" y="-397" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots</text>
-<polyline fill="none" stroke="black" points="133.5,-390 306.5,-390 "/>
-<text text-anchor="start" x="141.5" y="-378" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DECLARE_BASE_OBJECT</text>
-<text text-anchor="start" x="141.5" y="-367" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO()</text>
+<polygon fill="white" stroke="black" points="133.5,-365.5 133.5,-488.5 306.5,-488.5 306.5,-365.5 133.5,-365.5"/>
+<text text-anchor="middle" x="220" y="-476.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::BaseExprNode</text>
+<polyline fill="none" stroke="black" points="133.5,-469.5 306.5,-469.5 "/>
+<text text-anchor="start" x="141.5" y="-457.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
+<text text-anchor="start" x="141.5" y="-446.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_sequal</text>
+<text text-anchor="start" x="141.5" y="-435.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
+<text text-anchor="start" x="141.5" y="-424.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_shash</text>
+<text text-anchor="start" x="141.5" y="-413.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
+<text text-anchor="start" x="141.5" y="-402.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots</text>
+<polyline fill="none" stroke="black" points="133.5,-395.5 306.5,-395.5 "/>
+<text text-anchor="start" x="141.5" y="-383.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DECLARE_BASE_OBJECT</text>
+<text text-anchor="start" x="141.5" y="-372.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO()</text>
</a>
</g>
</g>
<!-- Node3->Node2 -->
<g id="edge2" class="edge">
<title>Node3->Node2</title>
-<path fill="none" stroke="midnightblue" d="M244.85,-350.18C258.51,-311.54 275.12,-264.54 287.42,-229.73"/>
-<polygon fill="none" stroke="midnightblue" points="241.48,-349.22 241.45,-359.81 248.08,-351.55 241.48,-349.22"/>
+<path fill="none" stroke="midnightblue" d="M244.29,-355.71C258.19,-315.48 275.29,-265.98 287.8,-229.78"/>
+<polygon fill="none" stroke="midnightblue" points="240.97,-354.6 241.01,-365.19 247.59,-356.88 240.97,-354.6"/>
</g>
<!-- Node4 -->
<g id="node4" class="node">
<title>Node4</title>
<g id="a_node4"><a xlink:href="classtvm_1_1runtime_1_1Object.html" target="_top" xlink:title="base class of all object containers.">
-<polygon fill="white" stroke="black" points="0,-613.5 0,-1000.5 184,-1000.5 184,-613.5 0,-613.5"/>
-<text text-anchor="middle" x="92" y="-988.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::Object</text>
-<polyline fill="none" stroke="black" points="0,-981.5 184,-981.5 "/>
-<text text-anchor="start" x="8" y="-969.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
-<text text-anchor="start" x="8" y="-958.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_final</text>
-<text text-anchor="start" x="8" y="-947.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots</text>
-<text text-anchor="start" x="8" y="-936.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots_can</text>
-<text text-anchor="start" x="8" y="-925.5" font-family="Helvetica,sans-Serif" font-size="10.00">_overflow</text>
-<text text-anchor="start" x="8" y="-914.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_visit</text>
-<text text-anchor="start" x="8" y="-903.5" font-family="Helvetica,sans-Serif" font-size="10.00">_attrs</text>
-<text text-anchor="start" x="8" y="-892.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_sequal</text>
-<text text-anchor="start" x="8" y="-881.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
-<text text-anchor="start" x="8" y="-870.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_shash</text>
-<text text-anchor="start" x="8" y="-859.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
-<text text-anchor="start" x="8" y="-848.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_index</text>
-<text text-anchor="start" x="8" y="-837.5" font-family="Helvetica,sans-Serif" font-size="10.00"># type_index_</text>
-<text text-anchor="start" x="8" y="-826.5" font-family="Helvetica,sans-Serif" font-size="10.00"># ref_counter_</text>
-<polyline fill="none" stroke="black" points="0,-819.5 184,-819.5 "/>
-<text text-anchor="start" x="8" y="-807.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ type_index()</text>
-<text text-anchor="start" x="8" y="-796.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ GetTypeKey()</text>
-<text text-anchor="start" x="8" y="-785.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ GetTypeKeyHash()</text>
-<text text-anchor="start" x="8" y="-774.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ IsInstance()</text>
-<text text-anchor="start" x="8" y="-763.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ unique()</text>
+<polygon fill="white" stroke="black" points="0,-624.5 0,-1011.5 184,-1011.5 184,-624.5 0,-624.5"/>
+<text text-anchor="middle" x="92" y="-999.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::Object</text>
+<polyline fill="none" stroke="black" points="0,-992.5 184,-992.5 "/>
+<text text-anchor="start" x="8" y="-980.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
+<text text-anchor="start" x="8" y="-969.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_final</text>
+<text text-anchor="start" x="8" y="-958.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots</text>
+<text text-anchor="start" x="8" y="-947.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots_can</text>
+<text text-anchor="start" x="8" y="-936.5" font-family="Helvetica,sans-Serif" font-size="10.00">_overflow</text>
+<text text-anchor="start" x="8" y="-925.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_visit</text>
+<text text-anchor="start" x="8" y="-914.5" font-family="Helvetica,sans-Serif" font-size="10.00">_attrs</text>
+<text text-anchor="start" x="8" y="-903.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_sequal</text>
+<text text-anchor="start" x="8" y="-892.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
+<text text-anchor="start" x="8" y="-881.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_shash</text>
+<text text-anchor="start" x="8" y="-870.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
+<text text-anchor="start" x="8" y="-859.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_index</text>
+<text text-anchor="start" x="8" y="-848.5" font-family="Helvetica,sans-Serif" font-size="10.00"># type_index_</text>
+<text text-anchor="start" x="8" y="-837.5" font-family="Helvetica,sans-Serif" font-size="10.00"># ref_counter_</text>
+<polyline fill="none" stroke="black" points="0,-830.5 184,-830.5 "/>
+<text text-anchor="start" x="8" y="-818.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ type_index()</text>
+<text text-anchor="start" x="8" y="-807.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ GetTypeKey()</text>
+<text text-anchor="start" x="8" y="-796.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ GetTypeKeyHash()</text>
+<text text-anchor="start" x="8" y="-785.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ IsInstance()</text>
+<text text-anchor="start" x="8" y="-774.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ unique()</text>
+<text text-anchor="start" x="8" y="-763.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Object()</text>
<text text-anchor="start" x="8" y="-752.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Object()</text>
<text text-anchor="start" x="8" y="-741.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Object()</text>
-<text text-anchor="start" x="8" y="-730.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Object()</text>
+<text text-anchor="start" x="8" y="-730.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
<text text-anchor="start" x="8" y="-719.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
-<text text-anchor="start" x="8" y="-708.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
-<text text-anchor="start" x="8" y="-697.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeIndex2Key()</text>
-<text text-anchor="start" x="8" y="-686.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeIndex2KeyHash()</text>
-<text text-anchor="start" x="8" y="-675.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeKey2Index()</text>
-<text text-anchor="start" x="8" y="-664.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _GetOrAllocRuntimeTypeIndex()</text>
-<text text-anchor="start" x="8" y="-653.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RuntimeTypeIndex()</text>
-<text text-anchor="start" x="8" y="-642.5" font-family="Helvetica,sans-Serif" font-size="10.00"># IncRef()</text>
-<text text-anchor="start" x="8" y="-631.5" font-family="Helvetica,sans-Serif" font-size="10.00"># DecRef()</text>
-<text text-anchor="start" x="8" y="-620.5" font-family="Helvetica,sans-Serif" font-size="10.00"># GetOrAllocRuntimeTypeIndex()</text>
+<text text-anchor="start" x="8" y="-708.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeIndex2Key()</text>
+<text text-anchor="start" x="8" y="-697.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeIndex2KeyHash()</text>
+<text text-anchor="start" x="8" y="-686.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeKey2Index()</text>
+<text text-anchor="start" x="8" y="-675.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _GetOrAllocRuntimeTypeIndex()</text>
+<text text-anchor="start" x="8" y="-664.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RuntimeTypeIndex()</text>
+<text text-anchor="start" x="8" y="-653.5" font-family="Helvetica,sans-Serif" font-size="10.00"># IncRef()</text>
+<text text-anchor="start" x="8" y="-642.5" font-family="Helvetica,sans-Serif" font-size="10.00"># DecRef()</text>
+<text text-anchor="start" x="8" y="-631.5" font-family="Helvetica,sans-Serif" font-size="10.00"># GetOrAllocRuntimeTypeIndex()</text>
</a>
</g>
</g>
<!-- Node4->Node3 -->
<g id="edge3" class="edge">
<title>Node4->Node3</title>
-<path fill="none" stroke="midnightblue" d="M159.51,-603.72C174.18,-559.78 188.6,-516.57 199.68,-483.37"/>
-<polygon fill="none" stroke="midnightblue" points="156.13,-602.81 156.28,-613.41 162.77,-605.03 156.13,-602.81"/>
+<path fill="none" stroke="midnightblue" d="M158.48,-614.96C173.66,-568.83 188.65,-523.26 200.04,-488.67"/>
+<polygon fill="none" stroke="midnightblue" points="155.14,-613.9 155.34,-624.49 161.79,-616.09 155.14,-613.9"/>
</g>
<!-- Node4->Node4 -->
<g id="edge4" class="edge">
<title>Node4->Node4</title>
-<path fill="none" stroke="#404040" d="M184.28,-840.92C195.02,-834.66 202,-823.36 202,-807 202,-796.01 198.85,-787.3 193.52,-780.87"/>
-<polygon fill="none" stroke="#404040" points="193.46,-780.81 186.29,-780 184.28,-773.08 191.45,-773.89 193.46,-780.81"/>
-<text text-anchor="middle" x="228" y="-804.5" font-family="Helvetica,sans-Serif" font-size="10.00"> #deleter_</text>
+<path fill="none" stroke="#404040" d="M184.28,-851.92C195.02,-845.66 202,-834.36 202,-818 202,-807.01 198.85,-798.3 193.52,-791.87"/>
+<polygon fill="none" stroke="#404040" points="193.46,-791.81 186.29,-791 184.28,-784.08 191.45,-784.89 193.46,-791.81"/>
+<text text-anchor="middle" x="228" y="-815.5" font-family="Helvetica,sans-Serif" font-size="10.00"> #deleter_</text>
</g>
<!-- Node5 -->
<g id="node5" class="node">
<title>Node5</title>
<g id="a_node5"><a xlink:href="classtvm_1_1Span.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="272,-762 272,-852 428,-852 428,-762 272,-762"/>
-<text text-anchor="middle" x="350" y="-840" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::Span</text>
-<polyline fill="none" stroke="black" points="272,-833 428,-833 "/>
-<text text-anchor="middle" x="350" y="-821" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="272,-814 428,-814 "/>
-<text text-anchor="start" x="280" y="-802" font-family="Helvetica,sans-Serif" font-size="10.00">+ Span()</text>
-<text text-anchor="start" x="280" y="-791" font-family="Helvetica,sans-Serif" font-size="10.00">+ Merge()</text>
-<text text-anchor="start" x="280" y="-780" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="280" y="-769" font-family="Helvetica,sans-Serif" font-size="10.00">_METHODS()</text>
+<polygon fill="white" stroke="black" points="272,-773 272,-863 428,-863 428,-773 272,-773"/>
+<text text-anchor="middle" x="350" y="-851" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::Span</text>
+<polyline fill="none" stroke="black" points="272,-844 428,-844 "/>
+<text text-anchor="middle" x="350" y="-832" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="272,-825 428,-825 "/>
+<text text-anchor="start" x="280" y="-813" font-family="Helvetica,sans-Serif" font-size="10.00">+ Span()</text>
+<text text-anchor="start" x="280" y="-802" font-family="Helvetica,sans-Serif" font-size="10.00">+ Merge()</text>
+<text text-anchor="start" x="280" y="-791" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="280" y="-780" font-family="Helvetica,sans-Serif" font-size="10.00">_METHODS()</text>
</a>
</g>
</g>
<!-- Node5->Node3 -->
<g id="edge5" class="edge">
<title>Node5->Node3</title>
-<path fill="none" stroke="#404040" d="M334.96,-761.63C312.81,-696.28 271.15,-573.39 244.53,-494.87"/>
-<polygon fill="none" stroke="#404040" points="244.41,-494.51 238.69,-490.11 240.56,-483.14 246.27,-487.54 244.41,-494.51"/>
-<text text-anchor="middle" x="295.5" y="-587" font-family="Helvetica,sans-Serif" font-size="10.00"> +span</text>
+<path fill="none" stroke="#404040" d="M335.21,-772.76C313.01,-706.33 270.83,-580.11 244.13,-500.21"/>
+<polygon fill="none" stroke="#404040" points="244.11,-500.15 238.42,-495.73 240.31,-488.77 246,-493.19 244.11,-500.15"/>
+<text text-anchor="middle" x="295.5" y="-598" font-family="Helvetica,sans-Serif" font-size="10.00"> +span</text>
</g>
<!-- Node6 -->
<g id="node6" class="node">
<title>Node6</title>
<g id="a_node6"><a xlink:href="classtvm_1_1runtime_1_1ObjectRef.html" target="_top" xlink:title="Base class of all object reference.">
-<polygon fill="white" stroke="black" points="283,-1038.5 283,-1271.5 417,-1271.5 417,-1038.5 283,-1038.5"/>
-<text text-anchor="middle" x="350" y="-1259.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::ObjectRef</text>
-<polyline fill="none" stroke="black" points="283,-1252.5 417,-1252.5 "/>
-<text text-anchor="start" x="291" y="-1240.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_is_nullable</text>
-<polyline fill="none" stroke="black" points="283,-1233.5 417,-1233.5 "/>
+<polygon fill="white" stroke="black" points="283,-1049.5 283,-1282.5 417,-1282.5 417,-1049.5 283,-1049.5"/>
+<text text-anchor="middle" x="350" y="-1270.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::ObjectRef</text>
+<polyline fill="none" stroke="black" points="283,-1263.5 417,-1263.5 "/>
+<text text-anchor="start" x="291" y="-1251.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_is_nullable</text>
+<polyline fill="none" stroke="black" points="283,-1244.5 417,-1244.5 "/>
+<text text-anchor="start" x="291" y="-1232.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectRef()</text>
<text text-anchor="start" x="291" y="-1221.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectRef()</text>
-<text text-anchor="start" x="291" y="-1210.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectRef()</text>
-<text text-anchor="start" x="291" y="-1199.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ same_as()</text>
-<text text-anchor="start" x="291" y="-1188.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator==()</text>
-<text text-anchor="start" x="291" y="-1177.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator!=()</text>
-<text text-anchor="start" x="291" y="-1166.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator<()</text>
-<text text-anchor="start" x="291" y="-1155.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ defined()</text>
-<text text-anchor="start" x="291" y="-1144.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get()</text>
-<text text-anchor="start" x="291" y="-1133.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator->()</text>
-<text text-anchor="start" x="291" y="-1122.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ unique()</text>
-<text text-anchor="start" x="291" y="-1111.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ use_count()</text>
+<text text-anchor="start" x="291" y="-1210.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ same_as()</text>
+<text text-anchor="start" x="291" y="-1199.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator==()</text>
+<text text-anchor="start" x="291" y="-1188.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator!=()</text>
+<text text-anchor="start" x="291" y="-1177.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator<()</text>
+<text text-anchor="start" x="291" y="-1166.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ defined()</text>
+<text text-anchor="start" x="291" y="-1155.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get()</text>
+<text text-anchor="start" x="291" y="-1144.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator->()</text>
+<text text-anchor="start" x="291" y="-1133.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ unique()</text>
+<text text-anchor="start" x="291" y="-1122.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ use_count()</text>
+<text text-anchor="start" x="291" y="-1111.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ as()</text>
<text text-anchor="start" x="291" y="-1100.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ as()</text>
-<text text-anchor="start" x="291" y="-1089.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ as()</text>
-<text text-anchor="start" x="291" y="-1078.5" font-family="Helvetica,sans-Serif" font-size="10.00"># get_mutable()</text>
-<text text-anchor="start" x="291" y="-1067.5" font-family="Helvetica,sans-Serif" font-size="10.00"># DowncastNoCheck()</text>
-<text text-anchor="start" x="291" y="-1056.5" font-family="Helvetica,sans-Serif" font-size="10.00"># FFIClearAfterMove()</text>
-<text text-anchor="start" x="291" y="-1045.5" font-family="Helvetica,sans-Serif" font-size="10.00"># GetDataPtr()</text>
+<text text-anchor="start" x="291" y="-1089.5" font-family="Helvetica,sans-Serif" font-size="10.00"># get_mutable()</text>
+<text text-anchor="start" x="291" y="-1078.5" font-family="Helvetica,sans-Serif" font-size="10.00"># DowncastNoCheck()</text>
+<text text-anchor="start" x="291" y="-1067.5" font-family="Helvetica,sans-Serif" font-size="10.00"># FFIClearAfterMove()</text>
+<text text-anchor="start" x="291" y="-1056.5" font-family="Helvetica,sans-Serif" font-size="10.00"># GetDataPtr()</text>
</a>
</g>
</g>
<!-- Node6->Node5 -->
<g id="edge6" class="edge">
<title>Node6->Node5</title>
-<path fill="none" stroke="midnightblue" d="M350,-1028.11C350,-966.57 350,-896.41 350,-852.17"/>
-<polygon fill="none" stroke="midnightblue" points="346.5,-1028.31 350,-1038.31 353.5,-1028.31 346.5,-1028.31"/>
+<path fill="none" stroke="midnightblue" d="M350,-1039.11C350,-977.57 350,-907.41 350,-863.17"/>
+<polygon fill="none" stroke="midnightblue" points="346.5,-1039.31 350,-1049.31 353.5,-1039.31 346.5,-1039.31"/>
</g>
<!-- Node7 -->
<g id="node7" class="node">
<title>Node7</title>
<g id="a_node7"><a xlink:href="classtvm_1_1runtime_1_1ObjectPtr.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="280,-1319.5 280,-1497.5 420,-1497.5 420,-1319.5 280,-1319.5"/>
-<text text-anchor="start" x="288" y="-1485.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::ObjectPtr</text>
-<text text-anchor="middle" x="350" y="-1474.5" font-family="Helvetica,sans-Serif" font-size="10.00">< tvm::runtime::Object ></text>
-<polyline fill="none" stroke="black" points="280,-1467.5 420,-1467.5 "/>
-<text text-anchor="middle" x="350" y="-1455.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="280,-1448.5 420,-1448.5 "/>
+<polygon fill="white" stroke="black" points="280,-1330.5 280,-1508.5 420,-1508.5 420,-1330.5 280,-1330.5"/>
+<text text-anchor="start" x="288" y="-1496.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::ObjectPtr</text>
+<text text-anchor="middle" x="350" y="-1485.5" font-family="Helvetica,sans-Serif" font-size="10.00">< tvm::runtime::Object ></text>
+<polyline fill="none" stroke="black" points="280,-1478.5 420,-1478.5 "/>
+<text text-anchor="middle" x="350" y="-1466.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="280,-1459.5 420,-1459.5 "/>
+<text text-anchor="start" x="288" y="-1447.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="288" y="-1436.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="288" y="-1425.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="288" y="-1414.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="288" y="-1403.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="288" y="-1392.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
-<text text-anchor="start" x="288" y="-1381.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
-<text text-anchor="start" x="288" y="-1370.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ~ObjectPtr()</text>
-<text text-anchor="start" x="288" y="-1359.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ swap()</text>
-<text text-anchor="start" x="288" y="-1348.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get()</text>
-<text text-anchor="start" x="288" y="-1337.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator->()</text>
-<text text-anchor="start" x="288" y="-1326.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 11 more...</text>
+<text text-anchor="start" x="288" y="-1381.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ~ObjectPtr()</text>
+<text text-anchor="start" x="288" y="-1370.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ swap()</text>
+<text text-anchor="start" x="288" y="-1359.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get()</text>
+<text text-anchor="start" x="288" y="-1348.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator->()</text>
+<text text-anchor="start" x="288" y="-1337.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 11 more...</text>
</a>
</g>
</g>
<!-- Node7->Node6 -->
<g id="edge7" class="edge">
<title>Node7->Node6</title>
-<path fill="none" stroke="#404040" d="M350,-1319.18C350,-1307.84 350,-1296.05 350,-1284.23"/>
-<polygon fill="none" stroke="#404040" points="350,-1283.91 346,-1277.91 350,-1271.91 354,-1277.91 350,-1283.91"/>
-<text text-anchor="middle" x="369.5" y="-1293" font-family="Helvetica,sans-Serif" font-size="10.00"> #data_</text>
+<path fill="none" stroke="#404040" d="M350,-1330.18C350,-1318.84 350,-1307.05 350,-1295.23"/>
+<polygon fill="none" stroke="#404040" points="350,-1294.91 346,-1288.91 350,-1282.91 354,-1288.91 350,-1294.91"/>
+<text text-anchor="middle" x="369.5" y="-1304" font-family="Helvetica,sans-Serif" font-size="10.00"> #data_</text>
</g>
<!-- Node8 -->
<g id="node8" class="node">
<title>Node8</title>
<g id="a_node8"><a xlink:href="classtvm_1_1runtime_1_1DataType.html" target="_top" xlink:title="Runtime primitive data type.">
-<polygon fill="white" stroke="black" points="325,-277.5 325,-565.5 457,-565.5 457,-277.5 325,-277.5"/>
-<text text-anchor="middle" x="391" y="-553.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::DataType</text>
-<polyline fill="none" stroke="black" points="325,-546.5 457,-546.5 "/>
-<text text-anchor="middle" x="391" y="-534.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="325,-527.5 457,-527.5 "/>
+<polygon fill="white" stroke="black" points="325,-277.5 325,-576.5 457,-576.5 457,-277.5 325,-277.5"/>
+<text text-anchor="middle" x="391" y="-564.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::DataType</text>
+<polyline fill="none" stroke="black" points="325,-557.5 457,-557.5 "/>
+<text text-anchor="middle" x="391" y="-545.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="325,-538.5 457,-538.5 "/>
+<text text-anchor="start" x="333" y="-526.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ DataType()</text>
<text text-anchor="start" x="333" y="-515.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ DataType()</text>
<text text-anchor="start" x="333" y="-504.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ DataType()</text>
-<text text-anchor="start" x="333" y="-493.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ DataType()</text>
-<text text-anchor="start" x="333" y="-482.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ code()</text>
-<text text-anchor="start" x="333" y="-471.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ bits()</text>
-<text text-anchor="start" x="333" y="-460.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ bytes()</text>
-<text text-anchor="start" x="333" y="-449.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ lanes()</text>
-<text text-anchor="start" x="333" y="-438.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ vscale_factor()</text>
-<text text-anchor="start" x="333" y="-427.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get_lanes_or_vscale</text>
-<text text-anchor="start" x="333" y="-416.5" font-family="Helvetica,sans-Serif" font-size="10.00">_factor()</text>
-<text text-anchor="start" x="333" y="-405.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ is_scalar()</text>
-<text text-anchor="start" x="333" y="-394.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 24 more...</text>
-<text text-anchor="start" x="333" y="-383.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Int()</text>
-<text text-anchor="start" x="333" y="-372.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ UInt()</text>
-<text text-anchor="start" x="333" y="-361.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Float()</text>
-<text text-anchor="start" x="333" y="-350.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ BFloat()</text>
-<text text-anchor="start" x="333" y="-339.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat8E4M3()</text>
-<text text-anchor="start" x="333" y="-328.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat8E5M2()</text>
+<text text-anchor="start" x="333" y="-493.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ code()</text>
+<text text-anchor="start" x="333" y="-482.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ bits()</text>
+<text text-anchor="start" x="333" y="-471.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ bytes()</text>
+<text text-anchor="start" x="333" y="-460.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ lanes()</text>
+<text text-anchor="start" x="333" y="-449.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ vscale_factor()</text>
+<text text-anchor="start" x="333" y="-438.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get_lanes_or_vscale</text>
+<text text-anchor="start" x="333" y="-427.5" font-family="Helvetica,sans-Serif" font-size="10.00">_factor()</text>
+<text text-anchor="start" x="333" y="-416.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ is_scalar()</text>
+<text text-anchor="start" x="333" y="-405.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 26 more...</text>
+<text text-anchor="start" x="333" y="-394.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Int()</text>
+<text text-anchor="start" x="333" y="-383.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ UInt()</text>
+<text text-anchor="start" x="333" y="-372.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Float()</text>
+<text text-anchor="start" x="333" y="-361.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ BFloat()</text>
+<text text-anchor="start" x="333" y="-350.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat8E4M3()</text>
+<text text-anchor="start" x="333" y="-339.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat8E5M2()</text>
+<text text-anchor="start" x="333" y="-328.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat4E2M1()</text>
<text text-anchor="start" x="333" y="-317.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Bool()</text>
<text text-anchor="start" x="333" y="-306.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Handle()</text>
<text text-anchor="start" x="333" y="-295.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Void()</text>
@@ -255,9 +256,9 @@
<!-- Node8->Node2 -->
<g id="edge8" class="edge">
<title>Node8->Node2</title>
-<path fill="none" stroke="#404040" d="M339.86,-277.47C335.33,-264.82 330.93,-252.52 326.87,-241.15"/>
-<polygon fill="none" stroke="#404040" points="326.8,-240.97 321.02,-236.67 322.76,-229.67 328.55,-233.98 326.8,-240.97"/>
-<text text-anchor="middle" x="353" y="-251" font-family="Helvetica,sans-Serif" font-size="10.00"> +dtype</text>
+<path fill="none" stroke="#404040" d="M338.99,-277.23C334.58,-264.61 330.3,-252.37 326.35,-241.08"/>
+<polygon fill="none" stroke="#404040" points="326.32,-241 320.57,-236.65 322.36,-229.67 328.12,-234.01 326.32,-241"/>
+<text text-anchor="middle" x="351" y="-251" font-family="Helvetica,sans-Serif" font-size="10.00"> +dtype</text>
</g>
</g>
</svg>
diff --git a/docs/reference/api/doxygen/classtvm_1_1arith_1_1IterSplitExprNode.html b/docs/reference/api/doxygen/classtvm_1_1arith_1_1IterSplitExprNode.html
index e098931c15..fe05d437d4 100644
--- a/docs/reference/api/doxygen/classtvm_1_1arith_1_1IterSplitExprNode.html
+++ b/docs/reference/api/doxygen/classtvm_1_1arith_1_1IterSplitExprNode.html
@@ -88,7 +88,7 @@ Inheritance diagram for tvm::arith::IterSplitExprNode:</div>
<div class="dynheader">
Collaboration diagram for tvm::arith::IterSplitExprNode:</div>
<div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1arith_1_1IterSplitExprNode__coll__graph.svg" width="938" height="2479"><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_1arith_1_1IterSplitExprNode__coll__graph.svg" width="938" height="2494"><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">
diff --git a/docs/reference/api/doxygen/classtvm_1_1arith_1_1IterSplitExprNode__coll__graph.svg b/docs/reference/api/doxygen/classtvm_1_1arith_1_1IterSplitExprNode__coll__graph.svg
index 1f3bdec363..58a22da585 100644
--- a/docs/reference/api/doxygen/classtvm_1_1arith_1_1IterSplitExprNode__coll__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1arith_1_1IterSplitExprNode__coll__graph.svg
@@ -4,11 +4,11 @@
<!-- Generated by graphviz version 2.43.0 (0)
-->
<!-- Title: tvm::arith::IterSplitExprNode Pages: 1 -->
-<svg width="703pt" height="1859pt"
- viewBox="0.00 0.00 703.00 1859.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 1855)">
+<svg width="703pt" height="1870pt"
+ viewBox="0.00 0.00 703.00 1870.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 1866)">
<title>tvm::arith::IterSplitExprNode</title>
-<polygon fill="white" stroke="transparent" points="-4,4 -4,-1855 699,-1855 699,4 -4,4"/>
+<polygon fill="white" stroke="transparent" points="-4,4 -4,-1866 699,-1866 699,4 -4,4"/>
<!-- Node1 -->
<g id="node1" class="node">
<title>Node1</title>
@@ -75,242 +75,243 @@
<g id="node4" class="node">
<title>Node4</title>
<g id="a_node4"><a xlink:href="classtvm_1_1BaseExprNode.html" target="_top" xlink:title="Base type of all the expressions.">
-<polygon fill="white" stroke="black" points="320.5,-622 320.5,-745 493.5,-745 493.5,-622 320.5,-622"/>
-<text text-anchor="middle" x="407" y="-733" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::BaseExprNode</text>
-<polyline fill="none" stroke="black" points="320.5,-726 493.5,-726 "/>
-<text text-anchor="start" x="328.5" y="-714" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
-<text text-anchor="start" x="328.5" y="-703" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_sequal</text>
-<text text-anchor="start" x="328.5" y="-692" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
-<text text-anchor="start" x="328.5" y="-681" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_shash</text>
-<text text-anchor="start" x="328.5" y="-670" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
-<text text-anchor="start" x="328.5" y="-659" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots</text>
-<polyline fill="none" stroke="black" points="320.5,-652 493.5,-652 "/>
-<text text-anchor="start" x="328.5" y="-640" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DECLARE_BASE_OBJECT</text>
-<text text-anchor="start" x="328.5" y="-629" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO()</text>
+<polygon fill="white" stroke="black" points="320.5,-627.5 320.5,-750.5 493.5,-750.5 493.5,-627.5 320.5,-627.5"/>
+<text text-anchor="middle" x="407" y="-738.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::BaseExprNode</text>
+<polyline fill="none" stroke="black" points="320.5,-731.5 493.5,-731.5 "/>
+<text text-anchor="start" x="328.5" y="-719.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
+<text text-anchor="start" x="328.5" y="-708.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_sequal</text>
+<text text-anchor="start" x="328.5" y="-697.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
+<text text-anchor="start" x="328.5" y="-686.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_shash</text>
+<text text-anchor="start" x="328.5" y="-675.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
+<text text-anchor="start" x="328.5" y="-664.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots</text>
+<polyline fill="none" stroke="black" points="320.5,-657.5 493.5,-657.5 "/>
+<text text-anchor="start" x="328.5" y="-645.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DECLARE_BASE_OBJECT</text>
+<text text-anchor="start" x="328.5" y="-634.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO()</text>
</a>
</g>
</g>
<!-- Node4->Node3 -->
<g id="edge3" class="edge">
<title>Node4->Node3</title>
-<path fill="none" stroke="midnightblue" d="M388.78,-612.16C374.53,-558.78 353.56,-483.79 332,-419 330,-413 327.8,-406.76 325.54,-400.58"/>
-<polygon fill="none" stroke="midnightblue" points="385.41,-613.1 391.37,-621.86 392.18,-611.3 385.41,-613.1"/>
+<path fill="none" stroke="midnightblue" d="M389.27,-617.5C375.08,-562.92 353.98,-485.64 332,-419 330.02,-413 327.82,-406.75 325.57,-400.57"/>
+<polygon fill="none" stroke="midnightblue" points="385.94,-618.62 391.84,-627.42 392.72,-616.86 385.94,-618.62"/>
</g>
<!-- Node5 -->
<g id="node5" class="node">
<title>Node5</title>
<g id="a_node5"><a xlink:href="classtvm_1_1runtime_1_1Object.html" target="_top" xlink:title="base class of all object containers.">
-<polygon fill="white" stroke="black" points="93,-966.5 93,-1353.5 277,-1353.5 277,-966.5 93,-966.5"/>
-<text text-anchor="middle" x="185" y="-1341.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::Object</text>
-<polyline fill="none" stroke="black" points="93,-1334.5 277,-1334.5 "/>
-<text text-anchor="start" x="101" y="-1322.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
-<text text-anchor="start" x="101" y="-1311.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_final</text>
-<text text-anchor="start" x="101" y="-1300.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots</text>
-<text text-anchor="start" x="101" y="-1289.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots_can</text>
-<text text-anchor="start" x="101" y="-1278.5" font-family="Helvetica,sans-Serif" font-size="10.00">_overflow</text>
-<text text-anchor="start" x="101" y="-1267.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_visit</text>
-<text text-anchor="start" x="101" y="-1256.5" font-family="Helvetica,sans-Serif" font-size="10.00">_attrs</text>
-<text text-anchor="start" x="101" y="-1245.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_sequal</text>
-<text text-anchor="start" x="101" y="-1234.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
-<text text-anchor="start" x="101" y="-1223.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_shash</text>
-<text text-anchor="start" x="101" y="-1212.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
-<text text-anchor="start" x="101" y="-1201.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_index</text>
-<text text-anchor="start" x="101" y="-1190.5" font-family="Helvetica,sans-Serif" font-size="10.00"># type_index_</text>
-<text text-anchor="start" x="101" y="-1179.5" font-family="Helvetica,sans-Serif" font-size="10.00"># ref_counter_</text>
-<polyline fill="none" stroke="black" points="93,-1172.5 277,-1172.5 "/>
-<text text-anchor="start" x="101" y="-1160.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ type_index()</text>
-<text text-anchor="start" x="101" y="-1149.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ GetTypeKey()</text>
-<text text-anchor="start" x="101" y="-1138.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ GetTypeKeyHash()</text>
-<text text-anchor="start" x="101" y="-1127.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ IsInstance()</text>
-<text text-anchor="start" x="101" y="-1116.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ unique()</text>
+<polygon fill="white" stroke="black" points="93,-977.5 93,-1364.5 277,-1364.5 277,-977.5 93,-977.5"/>
+<text text-anchor="middle" x="185" y="-1352.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::Object</text>
+<polyline fill="none" stroke="black" points="93,-1345.5 277,-1345.5 "/>
+<text text-anchor="start" x="101" y="-1333.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
+<text text-anchor="start" x="101" y="-1322.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_final</text>
+<text text-anchor="start" x="101" y="-1311.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots</text>
+<text text-anchor="start" x="101" y="-1300.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots_can</text>
+<text text-anchor="start" x="101" y="-1289.5" font-family="Helvetica,sans-Serif" font-size="10.00">_overflow</text>
+<text text-anchor="start" x="101" y="-1278.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_visit</text>
+<text text-anchor="start" x="101" y="-1267.5" font-family="Helvetica,sans-Serif" font-size="10.00">_attrs</text>
+<text text-anchor="start" x="101" y="-1256.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_sequal</text>
+<text text-anchor="start" x="101" y="-1245.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
+<text text-anchor="start" x="101" y="-1234.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_shash</text>
+<text text-anchor="start" x="101" y="-1223.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
+<text text-anchor="start" x="101" y="-1212.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_index</text>
+<text text-anchor="start" x="101" y="-1201.5" font-family="Helvetica,sans-Serif" font-size="10.00"># type_index_</text>
+<text text-anchor="start" x="101" y="-1190.5" font-family="Helvetica,sans-Serif" font-size="10.00"># ref_counter_</text>
+<polyline fill="none" stroke="black" points="93,-1183.5 277,-1183.5 "/>
+<text text-anchor="start" x="101" y="-1171.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ type_index()</text>
+<text text-anchor="start" x="101" y="-1160.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ GetTypeKey()</text>
+<text text-anchor="start" x="101" y="-1149.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ GetTypeKeyHash()</text>
+<text text-anchor="start" x="101" y="-1138.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ IsInstance()</text>
+<text text-anchor="start" x="101" y="-1127.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ unique()</text>
+<text text-anchor="start" x="101" y="-1116.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Object()</text>
<text text-anchor="start" x="101" y="-1105.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Object()</text>
<text text-anchor="start" x="101" y="-1094.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Object()</text>
-<text text-anchor="start" x="101" y="-1083.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Object()</text>
+<text text-anchor="start" x="101" y="-1083.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
<text text-anchor="start" x="101" y="-1072.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
-<text text-anchor="start" x="101" y="-1061.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
-<text text-anchor="start" x="101" y="-1050.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeIndex2Key()</text>
-<text text-anchor="start" x="101" y="-1039.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeIndex2KeyHash()</text>
-<text text-anchor="start" x="101" y="-1028.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeKey2Index()</text>
-<text text-anchor="start" x="101" y="-1017.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _GetOrAllocRuntimeTypeIndex()</text>
-<text text-anchor="start" x="101" y="-1006.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RuntimeTypeIndex()</text>
-<text text-anchor="start" x="101" y="-995.5" font-family="Helvetica,sans-Serif" font-size="10.00"># IncRef()</text>
-<text text-anchor="start" x="101" y="-984.5" font-family="Helvetica,sans-Serif" font-size="10.00"># DecRef()</text>
-<text text-anchor="start" x="101" y="-973.5" font-family="Helvetica,sans-Serif" font-size="10.00"># GetOrAllocRuntimeTypeIndex()</text>
+<text text-anchor="start" x="101" y="-1061.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeIndex2Key()</text>
+<text text-anchor="start" x="101" y="-1050.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeIndex2KeyHash()</text>
+<text text-anchor="start" x="101" y="-1039.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeKey2Index()</text>
+<text text-anchor="start" x="101" y="-1028.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _GetOrAllocRuntimeTypeIndex()</text>
+<text text-anchor="start" x="101" y="-1017.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RuntimeTypeIndex()</text>
+<text text-anchor="start" x="101" y="-1006.5" font-family="Helvetica,sans-Serif" font-size="10.00"># IncRef()</text>
+<text text-anchor="start" x="101" y="-995.5" font-family="Helvetica,sans-Serif" font-size="10.00"># DecRef()</text>
+<text text-anchor="start" x="101" y="-984.5" font-family="Helvetica,sans-Serif" font-size="10.00"># GetOrAllocRuntimeTypeIndex()</text>
</a>
</g>
</g>
<!-- Node5->Node4 -->
<g id="edge4" class="edge">
<title>Node5->Node4</title>
-<path fill="none" stroke="midnightblue" d="M279.49,-957.03C315.32,-880.46 353.49,-798.88 378.63,-745.14"/>
-<polygon fill="none" stroke="midnightblue" points="276.2,-955.8 275.14,-966.34 282.54,-958.77 276.2,-955.8"/>
+<path fill="none" stroke="midnightblue" d="M278.58,-967.65C314.85,-889.25 353.65,-805.35 379,-750.55"/>
+<polygon fill="none" stroke="midnightblue" points="275.2,-966.64 274.18,-977.19 281.55,-969.58 275.2,-966.64"/>
</g>
<!-- Node5->Node5 -->
<g id="edge5" class="edge">
<title>Node5->Node5</title>
-<path fill="none" stroke="#404040" d="M277.28,-1193.92C288.02,-1187.66 295,-1176.36 295,-1160 295,-1149.01 291.85,-1140.3 286.52,-1133.87"/>
-<polygon fill="none" stroke="#404040" points="286.46,-1133.81 279.29,-1133 277.28,-1126.08 284.45,-1126.89 286.46,-1133.81"/>
-<text text-anchor="middle" x="321" y="-1157.5" font-family="Helvetica,sans-Serif" font-size="10.00"> #deleter_</text>
+<path fill="none" stroke="#404040" d="M277.28,-1204.92C288.02,-1198.66 295,-1187.36 295,-1171 295,-1160.01 291.85,-1151.3 286.52,-1144.87"/>
+<polygon fill="none" stroke="#404040" points="286.46,-1144.81 279.29,-1144 277.28,-1137.08 284.45,-1137.89 286.46,-1144.81"/>
+<text text-anchor="middle" x="321" y="-1168.5" font-family="Helvetica,sans-Serif" font-size="10.00"> #deleter_</text>
</g>
<!-- Node6 -->
<g id="node6" class="node">
<title>Node6</title>
<g id="a_node6"><a xlink:href="classtvm_1_1Span.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="365,-1115 365,-1205 521,-1205 521,-1115 365,-1115"/>
-<text text-anchor="middle" x="443" y="-1193" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::Span</text>
-<polyline fill="none" stroke="black" points="365,-1186 521,-1186 "/>
-<text text-anchor="middle" x="443" y="-1174" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="365,-1167 521,-1167 "/>
-<text text-anchor="start" x="373" y="-1155" font-family="Helvetica,sans-Serif" font-size="10.00">+ Span()</text>
-<text text-anchor="start" x="373" y="-1144" font-family="Helvetica,sans-Serif" font-size="10.00">+ Merge()</text>
-<text text-anchor="start" x="373" y="-1133" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="373" y="-1122" font-family="Helvetica,sans-Serif" font-size="10.00">_METHODS()</text>
+<polygon fill="white" stroke="black" points="365,-1126 365,-1216 521,-1216 521,-1126 365,-1126"/>
+<text text-anchor="middle" x="443" y="-1204" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::Span</text>
+<polyline fill="none" stroke="black" points="365,-1197 521,-1197 "/>
+<text text-anchor="middle" x="443" y="-1185" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="365,-1178 521,-1178 "/>
+<text text-anchor="start" x="373" y="-1166" font-family="Helvetica,sans-Serif" font-size="10.00">+ Span()</text>
+<text text-anchor="start" x="373" y="-1155" font-family="Helvetica,sans-Serif" font-size="10.00">+ Merge()</text>
+<text text-anchor="start" x="373" y="-1144" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="373" y="-1133" font-family="Helvetica,sans-Serif" font-size="10.00">_METHODS()</text>
</a>
</g>
</g>
<!-- Node6->Node4 -->
<g id="edge6" class="edge">
<title>Node6->Node4</title>
-<path fill="none" stroke="#404040" d="M439.65,-1114.79C433.43,-1032.85 420.07,-856.71 412.51,-757.06"/>
-<polygon fill="none" stroke="#404040" points="412.5,-756.97 408.06,-751.29 411.59,-745.01 416.03,-750.69 412.5,-756.97"/>
-<text text-anchor="middle" x="443.5" y="-894.5" font-family="Helvetica,sans-Serif" font-size="10.00"> +span</text>
+<path fill="none" stroke="#404040" d="M439.68,-1125.7C433.46,-1042.82 420.02,-863.6 412.46,-762.75"/>
+<polygon fill="none" stroke="#404040" points="412.44,-762.52 408,-756.83 411.54,-750.55 415.98,-756.23 412.44,-762.52"/>
+<text text-anchor="middle" x="444.5" y="-905.5" font-family="Helvetica,sans-Serif" font-size="10.00"> +span</text>
</g>
<!-- Node7 -->
<g id="node7" class="node">
<title>Node7</title>
<g id="a_node7"><a xlink:href="classtvm_1_1runtime_1_1ObjectRef.html" target="_top" xlink:title="Base class of all object reference.">
-<polygon fill="white" stroke="black" points="376,-1391.5 376,-1624.5 510,-1624.5 510,-1391.5 376,-1391.5"/>
-<text text-anchor="middle" x="443" y="-1612.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::ObjectRef</text>
-<polyline fill="none" stroke="black" points="376,-1605.5 510,-1605.5 "/>
-<text text-anchor="start" x="384" y="-1593.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_is_nullable</text>
-<polyline fill="none" stroke="black" points="376,-1586.5 510,-1586.5 "/>
+<polygon fill="white" stroke="black" points="376,-1402.5 376,-1635.5 510,-1635.5 510,-1402.5 376,-1402.5"/>
+<text text-anchor="middle" x="443" y="-1623.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::ObjectRef</text>
+<polyline fill="none" stroke="black" points="376,-1616.5 510,-1616.5 "/>
+<text text-anchor="start" x="384" y="-1604.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_is_nullable</text>
+<polyline fill="none" stroke="black" points="376,-1597.5 510,-1597.5 "/>
+<text text-anchor="start" x="384" y="-1585.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectRef()</text>
<text text-anchor="start" x="384" y="-1574.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectRef()</text>
-<text text-anchor="start" x="384" y="-1563.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectRef()</text>
-<text text-anchor="start" x="384" y="-1552.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ same_as()</text>
-<text text-anchor="start" x="384" y="-1541.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator==()</text>
-<text text-anchor="start" x="384" y="-1530.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator!=()</text>
-<text text-anchor="start" x="384" y="-1519.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator<()</text>
-<text text-anchor="start" x="384" y="-1508.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ defined()</text>
-<text text-anchor="start" x="384" y="-1497.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get()</text>
-<text text-anchor="start" x="384" y="-1486.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator->()</text>
-<text text-anchor="start" x="384" y="-1475.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ unique()</text>
-<text text-anchor="start" x="384" y="-1464.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ use_count()</text>
+<text text-anchor="start" x="384" y="-1563.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ same_as()</text>
+<text text-anchor="start" x="384" y="-1552.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator==()</text>
+<text text-anchor="start" x="384" y="-1541.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator!=()</text>
+<text text-anchor="start" x="384" y="-1530.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator<()</text>
+<text text-anchor="start" x="384" y="-1519.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ defined()</text>
+<text text-anchor="start" x="384" y="-1508.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get()</text>
+<text text-anchor="start" x="384" y="-1497.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator->()</text>
+<text text-anchor="start" x="384" y="-1486.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ unique()</text>
+<text text-anchor="start" x="384" y="-1475.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ use_count()</text>
+<text text-anchor="start" x="384" y="-1464.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ as()</text>
<text text-anchor="start" x="384" y="-1453.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ as()</text>
-<text text-anchor="start" x="384" y="-1442.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ as()</text>
-<text text-anchor="start" x="384" y="-1431.5" font-family="Helvetica,sans-Serif" font-size="10.00"># get_mutable()</text>
-<text text-anchor="start" x="384" y="-1420.5" font-family="Helvetica,sans-Serif" font-size="10.00"># DowncastNoCheck()</text>
-<text text-anchor="start" x="384" y="-1409.5" font-family="Helvetica,sans-Serif" font-size="10.00"># FFIClearAfterMove()</text>
-<text text-anchor="start" x="384" y="-1398.5" font-family="Helvetica,sans-Serif" font-size="10.00"># GetDataPtr()</text>
+<text text-anchor="start" x="384" y="-1442.5" font-family="Helvetica,sans-Serif" font-size="10.00"># get_mutable()</text>
+<text text-anchor="start" x="384" y="-1431.5" font-family="Helvetica,sans-Serif" font-size="10.00"># DowncastNoCheck()</text>
+<text text-anchor="start" x="384" y="-1420.5" font-family="Helvetica,sans-Serif" font-size="10.00"># FFIClearAfterMove()</text>
+<text text-anchor="start" x="384" y="-1409.5" font-family="Helvetica,sans-Serif" font-size="10.00"># GetDataPtr()</text>
</a>
</g>
</g>
<!-- Node7->Node6 -->
<g id="edge7" class="edge">
<title>Node7->Node6</title>
-<path fill="none" stroke="midnightblue" d="M443,-1381.11C443,-1319.57 443,-1249.41 443,-1205.17"/>
-<polygon fill="none" stroke="midnightblue" points="439.5,-1381.31 443,-1391.31 446.5,-1381.31 439.5,-1381.31"/>
+<path fill="none" stroke="midnightblue" d="M443,-1392.11C443,-1330.57 443,-1260.41 443,-1216.17"/>
+<polygon fill="none" stroke="midnightblue" points="439.5,-1392.31 443,-1402.31 446.5,-1392.31 439.5,-1392.31"/>
</g>
<!-- Node10 -->
<g id="node10" class="node">
<title>Node10</title>
<g id="a_node10"><a xlink:href="classtvm_1_1arith_1_1IterMark.html" target="_top" xlink:title="Managed reference to IterMarkExprNode.">
-<polygon fill="white" stroke="black" points="0,-846.5 0,-947.5 156,-947.5 156,-846.5 0,-846.5"/>
-<text text-anchor="middle" x="78" y="-935.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::arith::IterMark</text>
-<polyline fill="none" stroke="black" points="0,-928.5 156,-928.5 "/>
-<text text-anchor="middle" x="78" y="-916.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="0,-909.5 156,-909.5 "/>
-<text text-anchor="start" x="8" y="-897.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ IterMark()</text>
-<text text-anchor="start" x="8" y="-886.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="8" y="-875.5" font-family="Helvetica,sans-Serif" font-size="10.00">_METHODS()</text>
-<text text-anchor="start" x="8" y="-864.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="8" y="-853.5" font-family="Helvetica,sans-Serif" font-size="10.00">_COW_METHOD()</text>
+<polygon fill="white" stroke="black" points="0,-857.5 0,-958.5 156,-958.5 156,-857.5 0,-857.5"/>
+<text text-anchor="middle" x="78" y="-946.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::arith::IterMark</text>
+<polyline fill="none" stroke="black" points="0,-939.5 156,-939.5 "/>
+<text text-anchor="middle" x="78" y="-927.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="0,-920.5 156,-920.5 "/>
+<text text-anchor="start" x="8" y="-908.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ IterMark()</text>
+<text text-anchor="start" x="8" y="-897.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="8" y="-886.5" font-family="Helvetica,sans-Serif" font-size="10.00">_METHODS()</text>
+<text text-anchor="start" x="8" y="-875.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="8" y="-864.5" font-family="Helvetica,sans-Serif" font-size="10.00">_COW_METHOD()</text>
</a>
</g>
</g>
<!-- Node7->Node10 -->
<g id="edge11" class="edge">
<title>Node7->Node10</title>
-<path fill="none" stroke="midnightblue" d="M366.04,-1498.49C280.79,-1484.51 147.05,-1448.06 84,-1354 0.02,-1228.72 37.7,-1037.38 62.48,-947.67"/>
-<polygon fill="none" stroke="midnightblue" points="365.51,-1501.95 375.94,-1500.05 366.6,-1495.04 365.51,-1501.95"/>
+<path fill="none" stroke="midnightblue" d="M366.04,-1509.49C280.79,-1495.51 147.05,-1459.06 84,-1365 0.02,-1239.72 37.7,-1048.38 62.48,-958.67"/>
+<polygon fill="none" stroke="midnightblue" points="365.51,-1512.95 375.94,-1511.05 366.6,-1506.04 365.51,-1512.95"/>
</g>
<!-- Node12 -->
<g id="node12" class="node">
<title>Node12</title>
<g id="a_node12"><a xlink:href="classtvm_1_1BaseExpr.html" target="_top" xlink:title="Managed reference to BaseExprNode.">
-<polygon fill="white" stroke="black" points="539,-1126 539,-1194 695,-1194 695,-1126 539,-1126"/>
-<text text-anchor="middle" x="617" y="-1182" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::BaseExpr</text>
-<polyline fill="none" stroke="black" points="539,-1175 695,-1175 "/>
-<text text-anchor="middle" x="617" y="-1163" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="539,-1156 695,-1156 "/>
-<text text-anchor="start" x="547" y="-1144" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="547" y="-1133" font-family="Helvetica,sans-Serif" font-size="10.00">_METHODS()</text>
+<polygon fill="white" stroke="black" points="539,-1137 539,-1205 695,-1205 695,-1137 539,-1137"/>
+<text text-anchor="middle" x="617" y="-1193" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::BaseExpr</text>
+<polyline fill="none" stroke="black" points="539,-1186 695,-1186 "/>
+<text text-anchor="middle" x="617" y="-1174" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="539,-1167 695,-1167 "/>
+<text text-anchor="start" x="547" y="-1155" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="547" y="-1144" font-family="Helvetica,sans-Serif" font-size="10.00">_METHODS()</text>
</a>
</g>
</g>
<!-- Node7->Node12 -->
<g id="edge14" class="edge">
<title>Node7->Node12</title>
-<path fill="none" stroke="midnightblue" d="M514.98,-1382.65C520.17,-1373.01 525.23,-1363.38 530,-1354 557.98,-1298.96 586.7,-1233.04 603.15,-1194.23"/>
-<polygon fill="none" stroke="midnightblue" points="511.87,-1381.04 510.18,-1391.5 518.02,-1384.38 511.87,-1381.04"/>
+<path fill="none" stroke="midnightblue" d="M514.98,-1393.65C520.17,-1384.01 525.23,-1374.38 530,-1365 557.98,-1309.96 586.7,-1244.04 603.15,-1205.23"/>
+<polygon fill="none" stroke="midnightblue" points="511.87,-1392.04 510.18,-1402.5 518.02,-1395.38 511.87,-1392.04"/>
</g>
<!-- Node8 -->
<g id="node8" class="node">
<title>Node8</title>
<g id="a_node8"><a xlink:href="classtvm_1_1runtime_1_1ObjectPtr.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="373,-1672.5 373,-1850.5 513,-1850.5 513,-1672.5 373,-1672.5"/>
-<text text-anchor="start" x="381" y="-1838.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::ObjectPtr</text>
-<text text-anchor="middle" x="443" y="-1827.5" font-family="Helvetica,sans-Serif" font-size="10.00">< tvm::runtime::Object ></text>
-<polyline fill="none" stroke="black" points="373,-1820.5 513,-1820.5 "/>
-<text text-anchor="middle" x="443" y="-1808.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="373,-1801.5 513,-1801.5 "/>
+<polygon fill="white" stroke="black" points="373,-1683.5 373,-1861.5 513,-1861.5 513,-1683.5 373,-1683.5"/>
+<text text-anchor="start" x="381" y="-1849.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::ObjectPtr</text>
+<text text-anchor="middle" x="443" y="-1838.5" font-family="Helvetica,sans-Serif" font-size="10.00">< tvm::runtime::Object ></text>
+<polyline fill="none" stroke="black" points="373,-1831.5 513,-1831.5 "/>
+<text text-anchor="middle" x="443" y="-1819.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="373,-1812.5 513,-1812.5 "/>
+<text text-anchor="start" x="381" y="-1800.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="381" y="-1789.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="381" y="-1778.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="381" y="-1767.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="381" y="-1756.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="381" y="-1745.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
-<text text-anchor="start" x="381" y="-1734.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
-<text text-anchor="start" x="381" y="-1723.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ~ObjectPtr()</text>
-<text text-anchor="start" x="381" y="-1712.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ swap()</text>
-<text text-anchor="start" x="381" y="-1701.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get()</text>
-<text text-anchor="start" x="381" y="-1690.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator->()</text>
-<text text-anchor="start" x="381" y="-1679.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 11 more...</text>
+<text text-anchor="start" x="381" y="-1734.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ~ObjectPtr()</text>
+<text text-anchor="start" x="381" y="-1723.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ swap()</text>
+<text text-anchor="start" x="381" y="-1712.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get()</text>
+<text text-anchor="start" x="381" y="-1701.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator->()</text>
+<text text-anchor="start" x="381" y="-1690.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 11 more...</text>
</a>
</g>
</g>
<!-- Node8->Node7 -->
<g id="edge8" class="edge">
<title>Node8->Node7</title>
-<path fill="none" stroke="#404040" d="M443,-1672.18C443,-1660.84 443,-1649.05 443,-1637.23"/>
-<polygon fill="none" stroke="#404040" points="443,-1636.91 439,-1630.91 443,-1624.91 447,-1630.91 443,-1636.91"/>
-<text text-anchor="middle" x="462.5" y="-1646" font-family="Helvetica,sans-Serif" font-size="10.00"> #data_</text>
+<path fill="none" stroke="#404040" d="M443,-1683.18C443,-1671.84 443,-1660.05 443,-1648.23"/>
+<polygon fill="none" stroke="#404040" points="443,-1647.91 439,-1641.91 443,-1635.91 447,-1641.91 443,-1647.91"/>
+<text text-anchor="middle" x="462.5" y="-1657" font-family="Helvetica,sans-Serif" font-size="10.00"> #data_</text>
</g>
<!-- Node9 -->
<g id="node9" class="node">
<title>Node9</title>
<g id="a_node9"><a xlink:href="classtvm_1_1runtime_1_1DataType.html" target="_top" xlink:title="Runtime primitive data type.">
-<polygon fill="white" stroke="black" points="170,-539.5 170,-827.5 302,-827.5 302,-539.5 170,-539.5"/>
-<text text-anchor="middle" x="236" y="-815.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::DataType</text>
-<polyline fill="none" stroke="black" points="170,-808.5 302,-808.5 "/>
-<text text-anchor="middle" x="236" y="-796.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="170,-789.5 302,-789.5 "/>
+<polygon fill="white" stroke="black" points="170,-539.5 170,-838.5 302,-838.5 302,-539.5 170,-539.5"/>
+<text text-anchor="middle" x="236" y="-826.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::DataType</text>
+<polyline fill="none" stroke="black" points="170,-819.5 302,-819.5 "/>
+<text text-anchor="middle" x="236" y="-807.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="170,-800.5 302,-800.5 "/>
+<text text-anchor="start" x="178" y="-788.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ DataType()</text>
<text text-anchor="start" x="178" y="-777.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ DataType()</text>
<text text-anchor="start" x="178" y="-766.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ DataType()</text>
-<text text-anchor="start" x="178" y="-755.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ DataType()</text>
-<text text-anchor="start" x="178" y="-744.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ code()</text>
-<text text-anchor="start" x="178" y="-733.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ bits()</text>
-<text text-anchor="start" x="178" y="-722.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ bytes()</text>
-<text text-anchor="start" x="178" y="-711.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ lanes()</text>
-<text text-anchor="start" x="178" y="-700.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ vscale_factor()</text>
-<text text-anchor="start" x="178" y="-689.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get_lanes_or_vscale</text>
-<text text-anchor="start" x="178" y="-678.5" font-family="Helvetica,sans-Serif" font-size="10.00">_factor()</text>
-<text text-anchor="start" x="178" y="-667.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ is_scalar()</text>
-<text text-anchor="start" x="178" y="-656.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 24 more...</text>
-<text text-anchor="start" x="178" y="-645.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Int()</text>
-<text text-anchor="start" x="178" y="-634.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ UInt()</text>
-<text text-anchor="start" x="178" y="-623.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Float()</text>
-<text text-anchor="start" x="178" y="-612.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ BFloat()</text>
-<text text-anchor="start" x="178" y="-601.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat8E4M3()</text>
-<text text-anchor="start" x="178" y="-590.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat8E5M2()</text>
+<text text-anchor="start" x="178" y="-755.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ code()</text>
+<text text-anchor="start" x="178" y="-744.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ bits()</text>
+<text text-anchor="start" x="178" y="-733.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ bytes()</text>
+<text text-anchor="start" x="178" y="-722.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ lanes()</text>
+<text text-anchor="start" x="178" y="-711.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ vscale_factor()</text>
+<text text-anchor="start" x="178" y="-700.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get_lanes_or_vscale</text>
+<text text-anchor="start" x="178" y="-689.5" font-family="Helvetica,sans-Serif" font-size="10.00">_factor()</text>
+<text text-anchor="start" x="178" y="-678.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ is_scalar()</text>
+<text text-anchor="start" x="178" y="-667.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 26 more...</text>
+<text text-anchor="start" x="178" y="-656.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Int()</text>
+<text text-anchor="start" x="178" y="-645.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ UInt()</text>
+<text text-anchor="start" x="178" y="-634.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Float()</text>
+<text text-anchor="start" x="178" y="-623.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ BFloat()</text>
+<text text-anchor="start" x="178" y="-612.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat8E4M3()</text>
+<text text-anchor="start" x="178" y="-601.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat8E5M2()</text>
+<text text-anchor="start" x="178" y="-590.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat4E2M1()</text>
<text text-anchor="start" x="178" y="-579.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Bool()</text>
<text text-anchor="start" x="178" y="-568.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Handle()</text>
<text text-anchor="start" x="178" y="-557.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Void()</text>
@@ -321,14 +322,14 @@
<!-- Node9->Node3 -->
<g id="edge9" class="edge">
<title>Node9->Node3</title>
-<path fill="none" stroke="#404040" d="M266.3,-539.03C275.62,-494.89 285.39,-448.6 292.91,-412.99"/>
-<polygon fill="none" stroke="#404040" points="292.99,-412.61 290.32,-405.91 295.47,-400.87 298.14,-407.56 292.99,-412.61"/>
+<path fill="none" stroke="#404040" d="M266.91,-539.21C276.15,-494.73 285.77,-448.39 293.16,-412.82"/>
+<polygon fill="none" stroke="#404040" points="293.23,-412.46 290.54,-405.78 295.67,-400.71 298.37,-407.4 293.23,-412.46"/>
<text text-anchor="middle" x="310" y="-467.5" font-family="Helvetica,sans-Serif" font-size="10.00"> +dtype</text>
</g>
<!-- Node10->Node1 -->
<g id="edge10" class="edge">
<title>Node10->Node1</title>
-<path fill="none" stroke="#404040" d="M87.64,-846.5C102.17,-767.45 128,-607.7 128,-471 128,-471 128,-471 128,-183.5 128,-138.09 165.94,-106.58 206.79,-85.82"/>
+<path fill="none" stroke="#404040" d="M87.46,-857.19C101.96,-776.43 128,-611.76 128,-471 128,-471 128,-471 128,-183.5 128,-138.09 165.94,-106.58 206.79,-85.82"/>
<polygon fill="none" stroke="#404040" points="206.98,-85.73 210.64,-79.51 217.78,-80.51 214.12,-86.72 206.98,-85.73"/>
<text text-anchor="middle" x="150" y="-347.5" font-family="Helvetica,sans-Serif" font-size="10.00"> +source</text>
</g>
@@ -361,8 +362,8 @@
<!-- Node12->Node11 -->
<g id="edge13" class="edge">
<title>Node12->Node11</title>
-<path fill="none" stroke="midnightblue" d="M611.16,-1115.76C594.72,-994.16 548.15,-649.64 530.71,-520.61"/>
-<polygon fill="none" stroke="midnightblue" points="607.71,-1116.38 612.51,-1125.82 614.64,-1115.44 607.71,-1116.38"/>
+<path fill="none" stroke="midnightblue" d="M611.22,-1126.56C594.8,-1003.18 547.96,-651.12 530.59,-520.54"/>
+<polygon fill="none" stroke="midnightblue" points="607.79,-1127.3 612.58,-1136.76 614.73,-1126.38 607.79,-1127.3"/>
</g>
</g>
</svg>
diff --git a/docs/reference/api/doxygen/classtvm_1_1arith_1_1IterSumExprNode.html b/docs/reference/api/doxygen/classtvm_1_1arith_1_1IterSumExprNode.html
index 63ad692908..62101eb9a6 100644
--- a/docs/reference/api/doxygen/classtvm_1_1arith_1_1IterSumExprNode.html
+++ b/docs/reference/api/doxygen/classtvm_1_1arith_1_1IterSumExprNode.html
@@ -88,7 +88,7 @@ Inheritance diagram for tvm::arith::IterSumExprNode:</div>
<div class="dynheader">
Collaboration diagram for tvm::arith::IterSumExprNode:</div>
<div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1arith_1_1IterSumExprNode__coll__graph.svg" width="946" height="2655"><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_1arith_1_1IterSumExprNode__coll__graph.svg" width="946" height="2670"><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">
diff --git a/docs/reference/api/doxygen/classtvm_1_1arith_1_1IterSumExprNode__coll__graph.svg b/docs/reference/api/doxygen/classtvm_1_1arith_1_1IterSumExprNode__coll__graph.svg
index adfebf582c..8b845a262d 100644
--- a/docs/reference/api/doxygen/classtvm_1_1arith_1_1IterSumExprNode__coll__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1arith_1_1IterSumExprNode__coll__graph.svg
@@ -4,11 +4,11 @@
<!-- Generated by graphviz version 2.43.0 (0)
-->
<!-- Title: tvm::arith::IterSumExprNode Pages: 1 -->
-<svg width="709pt" height="1991pt"
- viewBox="0.00 0.00 708.50 1991.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 1987)">
+<svg width="709pt" height="2002pt"
+ viewBox="0.00 0.00 708.50 2002.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 1998)">
<title>tvm::arith::IterSumExprNode</title>
-<polygon fill="white" stroke="transparent" points="-4,4 -4,-1987 704.5,-1987 704.5,4 -4,4"/>
+<polygon fill="white" stroke="transparent" points="-4,4 -4,-1998 704.5,-1998 704.5,4 -4,4"/>
<!-- Node1 -->
<g id="node1" class="node">
<title>Node1</title>
@@ -75,171 +75,172 @@
<g id="node4" class="node">
<title>Node4</title>
<g id="a_node4"><a xlink:href="classtvm_1_1BaseExprNode.html" target="_top" xlink:title="Base type of all the expressions.">
-<polygon fill="white" stroke="black" points="405.5,-600 405.5,-723 578.5,-723 578.5,-600 405.5,-600"/>
-<text text-anchor="middle" x="492" y="-711" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::BaseExprNode</text>
-<polyline fill="none" stroke="black" points="405.5,-704 578.5,-704 "/>
-<text text-anchor="start" x="413.5" y="-692" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
-<text text-anchor="start" x="413.5" y="-681" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_sequal</text>
-<text text-anchor="start" x="413.5" y="-670" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
-<text text-anchor="start" x="413.5" y="-659" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_shash</text>
-<text text-anchor="start" x="413.5" y="-648" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
-<text text-anchor="start" x="413.5" y="-637" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots</text>
-<polyline fill="none" stroke="black" points="405.5,-630 578.5,-630 "/>
-<text text-anchor="start" x="413.5" y="-618" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DECLARE_BASE_OBJECT</text>
-<text text-anchor="start" x="413.5" y="-607" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO()</text>
+<polygon fill="white" stroke="black" points="405.5,-605.5 405.5,-728.5 578.5,-728.5 578.5,-605.5 405.5,-605.5"/>
+<text text-anchor="middle" x="492" y="-716.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::BaseExprNode</text>
+<polyline fill="none" stroke="black" points="405.5,-709.5 578.5,-709.5 "/>
+<text text-anchor="start" x="413.5" y="-697.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
+<text text-anchor="start" x="413.5" y="-686.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_sequal</text>
+<text text-anchor="start" x="413.5" y="-675.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
+<text text-anchor="start" x="413.5" y="-664.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_shash</text>
+<text text-anchor="start" x="413.5" y="-653.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
+<text text-anchor="start" x="413.5" y="-642.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots</text>
+<polyline fill="none" stroke="black" points="405.5,-635.5 578.5,-635.5 "/>
+<text text-anchor="start" x="413.5" y="-623.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DECLARE_BASE_OBJECT</text>
+<text text-anchor="start" x="413.5" y="-612.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO()</text>
</a>
</g>
</g>
<!-- Node4->Node3 -->
<g id="edge3" class="edge">
<title>Node4->Node3</title>
-<path fill="none" stroke="midnightblue" d="M484.1,-589.76C477.01,-526.24 466.79,-434.63 460.54,-378.61"/>
-<polygon fill="none" stroke="midnightblue" points="480.63,-590.15 485.21,-599.7 487.58,-589.37 480.63,-590.15"/>
+<path fill="none" stroke="midnightblue" d="M484.23,-595.21C477.11,-530.35 466.74,-435.96 460.46,-378.74"/>
+<polygon fill="none" stroke="midnightblue" points="480.77,-595.8 485.34,-605.36 487.73,-595.04 480.77,-595.8"/>
</g>
<!-- Node5 -->
<g id="node5" class="node">
<title>Node5</title>
<g id="a_node5"><a xlink:href="classtvm_1_1runtime_1_1Object.html" target="_top" xlink:title="base class of all object containers.">
-<polygon fill="white" stroke="black" points="174,-1098.5 174,-1485.5 358,-1485.5 358,-1098.5 174,-1098.5"/>
-<text text-anchor="middle" x="266" y="-1473.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::Object</text>
-<polyline fill="none" stroke="black" points="174,-1466.5 358,-1466.5 "/>
-<text text-anchor="start" x="182" y="-1454.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
-<text text-anchor="start" x="182" y="-1443.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_final</text>
-<text text-anchor="start" x="182" y="-1432.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots</text>
-<text text-anchor="start" x="182" y="-1421.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots_can</text>
-<text text-anchor="start" x="182" y="-1410.5" font-family="Helvetica,sans-Serif" font-size="10.00">_overflow</text>
-<text text-anchor="start" x="182" y="-1399.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_visit</text>
-<text text-anchor="start" x="182" y="-1388.5" font-family="Helvetica,sans-Serif" font-size="10.00">_attrs</text>
-<text text-anchor="start" x="182" y="-1377.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_sequal</text>
-<text text-anchor="start" x="182" y="-1366.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
-<text text-anchor="start" x="182" y="-1355.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_shash</text>
-<text text-anchor="start" x="182" y="-1344.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
-<text text-anchor="start" x="182" y="-1333.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_index</text>
-<text text-anchor="start" x="182" y="-1322.5" font-family="Helvetica,sans-Serif" font-size="10.00"># type_index_</text>
-<text text-anchor="start" x="182" y="-1311.5" font-family="Helvetica,sans-Serif" font-size="10.00"># ref_counter_</text>
-<polyline fill="none" stroke="black" points="174,-1304.5 358,-1304.5 "/>
-<text text-anchor="start" x="182" y="-1292.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ type_index()</text>
-<text text-anchor="start" x="182" y="-1281.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ GetTypeKey()</text>
-<text text-anchor="start" x="182" y="-1270.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ GetTypeKeyHash()</text>
-<text text-anchor="start" x="182" y="-1259.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ IsInstance()</text>
-<text text-anchor="start" x="182" y="-1248.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ unique()</text>
+<polygon fill="white" stroke="black" points="174,-1109.5 174,-1496.5 358,-1496.5 358,-1109.5 174,-1109.5"/>
+<text text-anchor="middle" x="266" y="-1484.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::Object</text>
+<polyline fill="none" stroke="black" points="174,-1477.5 358,-1477.5 "/>
+<text text-anchor="start" x="182" y="-1465.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
+<text text-anchor="start" x="182" y="-1454.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_final</text>
+<text text-anchor="start" x="182" y="-1443.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots</text>
+<text text-anchor="start" x="182" y="-1432.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots_can</text>
+<text text-anchor="start" x="182" y="-1421.5" font-family="Helvetica,sans-Serif" font-size="10.00">_overflow</text>
+<text text-anchor="start" x="182" y="-1410.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_visit</text>
+<text text-anchor="start" x="182" y="-1399.5" font-family="Helvetica,sans-Serif" font-size="10.00">_attrs</text>
+<text text-anchor="start" x="182" y="-1388.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_sequal</text>
+<text text-anchor="start" x="182" y="-1377.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
+<text text-anchor="start" x="182" y="-1366.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_shash</text>
+<text text-anchor="start" x="182" y="-1355.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
+<text text-anchor="start" x="182" y="-1344.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_index</text>
+<text text-anchor="start" x="182" y="-1333.5" font-family="Helvetica,sans-Serif" font-size="10.00"># type_index_</text>
+<text text-anchor="start" x="182" y="-1322.5" font-family="Helvetica,sans-Serif" font-size="10.00"># ref_counter_</text>
+<polyline fill="none" stroke="black" points="174,-1315.5 358,-1315.5 "/>
+<text text-anchor="start" x="182" y="-1303.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ type_index()</text>
+<text text-anchor="start" x="182" y="-1292.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ GetTypeKey()</text>
+<text text-anchor="start" x="182" y="-1281.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ GetTypeKeyHash()</text>
+<text text-anchor="start" x="182" y="-1270.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ IsInstance()</text>
+<text text-anchor="start" x="182" y="-1259.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ unique()</text>
+<text text-anchor="start" x="182" y="-1248.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Object()</text>
<text text-anchor="start" x="182" y="-1237.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Object()</text>
<text text-anchor="start" x="182" y="-1226.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Object()</text>
-<text text-anchor="start" x="182" y="-1215.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Object()</text>
+<text text-anchor="start" x="182" y="-1215.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
<text text-anchor="start" x="182" y="-1204.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
-<text text-anchor="start" x="182" y="-1193.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
-<text text-anchor="start" x="182" y="-1182.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeIndex2Key()</text>
-<text text-anchor="start" x="182" y="-1171.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeIndex2KeyHash()</text>
-<text text-anchor="start" x="182" y="-1160.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeKey2Index()</text>
-<text text-anchor="start" x="182" y="-1149.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _GetOrAllocRuntimeTypeIndex()</text>
-<text text-anchor="start" x="182" y="-1138.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RuntimeTypeIndex()</text>
-<text text-anchor="start" x="182" y="-1127.5" font-family="Helvetica,sans-Serif" font-size="10.00"># IncRef()</text>
-<text text-anchor="start" x="182" y="-1116.5" font-family="Helvetica,sans-Serif" font-size="10.00"># DecRef()</text>
-<text text-anchor="start" x="182" y="-1105.5" font-family="Helvetica,sans-Serif" font-size="10.00"># GetOrAllocRuntimeTypeIndex()</text>
+<text text-anchor="start" x="182" y="-1193.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeIndex2Key()</text>
+<text text-anchor="start" x="182" y="-1182.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeIndex2KeyHash()</text>
+<text text-anchor="start" x="182" y="-1171.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeKey2Index()</text>
+<text text-anchor="start" x="182" y="-1160.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _GetOrAllocRuntimeTypeIndex()</text>
+<text text-anchor="start" x="182" y="-1149.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RuntimeTypeIndex()</text>
+<text text-anchor="start" x="182" y="-1138.5" font-family="Helvetica,sans-Serif" font-size="10.00"># IncRef()</text>
+<text text-anchor="start" x="182" y="-1127.5" font-family="Helvetica,sans-Serif" font-size="10.00"># DecRef()</text>
+<text text-anchor="start" x="182" y="-1116.5" font-family="Helvetica,sans-Serif" font-size="10.00"># GetOrAllocRuntimeTypeIndex()</text>
</a>
</g>
</g>
<!-- Node5->Node4 -->
<g id="edge4" class="edge">
<title>Node5->Node4</title>
-<path fill="none" stroke="midnightblue" d="M338.75,-1088.68C384.41,-961.72 440.14,-806.71 470.23,-723.05"/>
-<polygon fill="none" stroke="midnightblue" points="335.43,-1087.56 335.34,-1098.16 342.02,-1089.93 335.43,-1087.56"/>
+<path fill="none" stroke="midnightblue" d="M338.15,-1099.6C383.98,-971.02 440.18,-813.37 470.36,-728.7"/>
+<polygon fill="none" stroke="midnightblue" points="334.79,-1098.6 334.73,-1109.2 341.38,-1100.95 334.79,-1098.6"/>
</g>
<!-- Node5->Node5 -->
<g id="edge5" class="edge">
<title>Node5->Node5</title>
-<path fill="none" stroke="#404040" d="M358.28,-1325.92C369.02,-1319.66 376,-1308.36 376,-1292 376,-1281.01 372.85,-1272.3 367.52,-1265.87"/>
-<polygon fill="none" stroke="#404040" points="367.46,-1265.81 360.29,-1265 358.28,-1258.08 365.45,-1258.89 367.46,-1265.81"/>
-<text text-anchor="middle" x="402" y="-1289.5" font-family="Helvetica,sans-Serif" font-size="10.00"> #deleter_</text>
+<path fill="none" stroke="#404040" d="M358.28,-1336.92C369.02,-1330.66 376,-1319.36 376,-1303 376,-1292.01 372.85,-1283.3 367.52,-1276.87"/>
+<polygon fill="none" stroke="#404040" points="367.46,-1276.81 360.29,-1276 358.28,-1269.08 365.45,-1269.89 367.46,-1276.81"/>
+<text text-anchor="middle" x="402" y="-1300.5" font-family="Helvetica,sans-Serif" font-size="10.00"> #deleter_</text>
</g>
<!-- Node6 -->
<g id="node6" class="node">
<title>Node6</title>
<g id="a_node6"><a xlink:href="classtvm_1_1Span.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="446,-1247 446,-1337 602,-1337 602,-1247 446,-1247"/>
-<text text-anchor="middle" x="524" y="-1325" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::Span</text>
-<polyline fill="none" stroke="black" points="446,-1318 602,-1318 "/>
-<text text-anchor="middle" x="524" y="-1306" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="446,-1299 602,-1299 "/>
-<text text-anchor="start" x="454" y="-1287" font-family="Helvetica,sans-Serif" font-size="10.00">+ Span()</text>
-<text text-anchor="start" x="454" y="-1276" font-family="Helvetica,sans-Serif" font-size="10.00">+ Merge()</text>
-<text text-anchor="start" x="454" y="-1265" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="454" y="-1254" font-family="Helvetica,sans-Serif" font-size="10.00">_METHODS()</text>
+<polygon fill="white" stroke="black" points="446,-1258 446,-1348 602,-1348 602,-1258 446,-1258"/>
+<text text-anchor="middle" x="524" y="-1336" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::Span</text>
+<polyline fill="none" stroke="black" points="446,-1329 602,-1329 "/>
+<text text-anchor="middle" x="524" y="-1317" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="446,-1310 602,-1310 "/>
+<text text-anchor="start" x="454" y="-1298" font-family="Helvetica,sans-Serif" font-size="10.00">+ Span()</text>
+<text text-anchor="start" x="454" y="-1287" font-family="Helvetica,sans-Serif" font-size="10.00">+ Merge()</text>
+<text text-anchor="start" x="454" y="-1276" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="454" y="-1265" font-family="Helvetica,sans-Serif" font-size="10.00">_METHODS()</text>
</a>
</g>
</g>
<!-- Node6->Node4 -->
<g id="edge6" class="edge">
<title>Node6->Node4</title>
-<path fill="none" stroke="#404040" d="M518.94,-1246.61C514.27,-1203.96 507.56,-1137.66 504,-1080 496.55,-959.23 493.71,-818.52 492.64,-735.18"/>
-<polygon fill="none" stroke="#404040" points="492.64,-735.05 488.57,-729.1 492.49,-723.05 496.57,-729 492.64,-735.05"/>
-<text text-anchor="middle" x="521.5" y="-949.5" font-family="Helvetica,sans-Serif" font-size="10.00"> +span</text>
+<path fill="none" stroke="#404040" d="M518.93,-1257.61C514.27,-1214.96 507.55,-1148.66 504,-1091 496.44,-968.17 493.64,-824.97 492.6,-740.65"/>
+<polygon fill="none" stroke="#404040" points="492.6,-740.65 488.53,-734.69 492.46,-728.65 496.53,-734.6 492.6,-740.65"/>
+<text text-anchor="middle" x="521.5" y="-960.5" font-family="Helvetica,sans-Serif" font-size="10.00"> +span</text>
</g>
<!-- Node7 -->
<g id="node7" class="node">
<title>Node7</title>
<g id="a_node7"><a xlink:href="classtvm_1_1runtime_1_1ObjectRef.html" target="_top" xlink:title="Base class of all object reference.">
-<polygon fill="white" stroke="black" points="457,-1523.5 457,-1756.5 591,-1756.5 591,-1523.5 457,-1523.5"/>
-<text text-anchor="middle" x="524" y="-1744.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::ObjectRef</text>
-<polyline fill="none" stroke="black" points="457,-1737.5 591,-1737.5 "/>
-<text text-anchor="start" x="465" y="-1725.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_is_nullable</text>
-<polyline fill="none" stroke="black" points="457,-1718.5 591,-1718.5 "/>
+<polygon fill="white" stroke="black" points="457,-1534.5 457,-1767.5 591,-1767.5 591,-1534.5 457,-1534.5"/>
+<text text-anchor="middle" x="524" y="-1755.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::ObjectRef</text>
+<polyline fill="none" stroke="black" points="457,-1748.5 591,-1748.5 "/>
+<text text-anchor="start" x="465" y="-1736.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_is_nullable</text>
+<polyline fill="none" stroke="black" points="457,-1729.5 591,-1729.5 "/>
+<text text-anchor="start" x="465" y="-1717.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectRef()</text>
<text text-anchor="start" x="465" y="-1706.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectRef()</text>
-<text text-anchor="start" x="465" y="-1695.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectRef()</text>
-<text text-anchor="start" x="465" y="-1684.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ same_as()</text>
-<text text-anchor="start" x="465" y="-1673.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator==()</text>
-<text text-anchor="start" x="465" y="-1662.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator!=()</text>
-<text text-anchor="start" x="465" y="-1651.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator<()</text>
-<text text-anchor="start" x="465" y="-1640.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ defined()</text>
-<text text-anchor="start" x="465" y="-1629.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get()</text>
-<text text-anchor="start" x="465" y="-1618.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator->()</text>
-<text text-anchor="start" x="465" y="-1607.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ unique()</text>
-<text text-anchor="start" x="465" y="-1596.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ use_count()</text>
+<text text-anchor="start" x="465" y="-1695.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ same_as()</text>
+<text text-anchor="start" x="465" y="-1684.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator==()</text>
+<text text-anchor="start" x="465" y="-1673.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator!=()</text>
+<text text-anchor="start" x="465" y="-1662.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator<()</text>
+<text text-anchor="start" x="465" y="-1651.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ defined()</text>
+<text text-anchor="start" x="465" y="-1640.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get()</text>
+<text text-anchor="start" x="465" y="-1629.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator->()</text>
+<text text-anchor="start" x="465" y="-1618.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ unique()</text>
+<text text-anchor="start" x="465" y="-1607.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ use_count()</text>
+<text text-anchor="start" x="465" y="-1596.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ as()</text>
<text text-anchor="start" x="465" y="-1585.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ as()</text>
-<text text-anchor="start" x="465" y="-1574.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ as()</text>
-<text text-anchor="start" x="465" y="-1563.5" font-family="Helvetica,sans-Serif" font-size="10.00"># get_mutable()</text>
-<text text-anchor="start" x="465" y="-1552.5" font-family="Helvetica,sans-Serif" font-size="10.00"># DowncastNoCheck()</text>
-<text text-anchor="start" x="465" y="-1541.5" font-family="Helvetica,sans-Serif" font-size="10.00"># FFIClearAfterMove()</text>
-<text text-anchor="start" x="465" y="-1530.5" font-family="Helvetica,sans-Serif" font-size="10.00"># GetDataPtr()</text>
+<text text-anchor="start" x="465" y="-1574.5" font-family="Helvetica,sans-Serif" font-size="10.00"># get_mutable()</text>
+<text text-anchor="start" x="465" y="-1563.5" font-family="Helvetica,sans-Serif" font-size="10.00"># DowncastNoCheck()</text>
+<text text-anchor="start" x="465" y="-1552.5" font-family="Helvetica,sans-Serif" font-size="10.00"># FFIClearAfterMove()</text>
+<text text-anchor="start" x="465" y="-1541.5" font-family="Helvetica,sans-Serif" font-size="10.00"># GetDataPtr()</text>
</a>
</g>
</g>
<!-- Node7->Node6 -->
<g id="edge7" class="edge">
<title>Node7->Node6</title>
-<path fill="none" stroke="midnightblue" d="M524,-1513.11C524,-1451.57 524,-1381.41 524,-1337.17"/>
-<polygon fill="none" stroke="midnightblue" points="520.5,-1513.31 524,-1523.31 527.5,-1513.31 520.5,-1513.31"/>
+<path fill="none" stroke="midnightblue" d="M524,-1524.11C524,-1462.57 524,-1392.41 524,-1348.17"/>
+<polygon fill="none" stroke="midnightblue" points="520.5,-1524.31 524,-1534.31 527.5,-1524.31 520.5,-1524.31"/>
</g>
<!-- Node11 -->
<g id="node11" class="node">
<title>Node11</title>
<g id="a_node11"><a xlink:href="classtvm_1_1BaseExpr.html" target="_top" xlink:title="Managed reference to BaseExprNode.">
-<polygon fill="white" stroke="black" points="0,-1258 0,-1326 156,-1326 156,-1258 0,-1258"/>
-<text text-anchor="middle" x="78" y="-1314" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::BaseExpr</text>
-<polyline fill="none" stroke="black" points="0,-1307 156,-1307 "/>
-<text text-anchor="middle" x="78" y="-1295" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="0,-1288 156,-1288 "/>
-<text text-anchor="start" x="8" y="-1276" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="8" y="-1265" font-family="Helvetica,sans-Serif" font-size="10.00">_METHODS()</text>
+<polygon fill="white" stroke="black" points="0,-1269 0,-1337 156,-1337 156,-1269 0,-1269"/>
+<text text-anchor="middle" x="78" y="-1325" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::BaseExpr</text>
+<polyline fill="none" stroke="black" points="0,-1318 156,-1318 "/>
+<text text-anchor="middle" x="78" y="-1306" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="0,-1299 156,-1299 "/>
+<text text-anchor="start" x="8" y="-1287" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="8" y="-1276" font-family="Helvetica,sans-Serif" font-size="10.00">_METHODS()</text>
</a>
</g>
</g>
<!-- Node7->Node11 -->
<g id="edge12" class="edge">
<title>Node7->Node11</title>
-<path fill="none" stroke="midnightblue" d="M446.86,-1623.53C367.17,-1603.95 243.67,-1563.06 165,-1486 119.45,-1441.38 95.68,-1368.59 85.09,-1326.31"/>
-<polygon fill="none" stroke="midnightblue" points="446.29,-1626.99 456.84,-1625.92 447.93,-1620.19 446.29,-1626.99"/>
+<path fill="none" stroke="midnightblue" d="M446.86,-1634.53C367.17,-1614.95 243.67,-1574.06 165,-1497 119.45,-1452.38 95.68,-1379.59 85.09,-1337.31"/>
+<polygon fill="none" stroke="midnightblue" points="446.29,-1637.99 456.84,-1636.92 447.93,-1631.19 446.29,-1637.99"/>
</g>
<!-- Node12 -->
<g id="node12" class="node">
<title>Node12</title>
<g id="a_node12"><a xlink:href="classtvm_1_1runtime_1_1Array.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="547.5,-824.5 547.5,-1079.5 700.5,-1079.5 700.5,-824.5 547.5,-824.5"/>
-<text text-anchor="start" x="555.5" y="-1067.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::Array</text>
-<text text-anchor="middle" x="624" y="-1056.5" font-family="Helvetica,sans-Serif" font-size="10.00">< tvm::arith::IterSplitExpr ></text>
-<polyline fill="none" stroke="black" points="547.5,-1049.5 700.5,-1049.5 "/>
-<text text-anchor="middle" x="624" y="-1037.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="547.5,-1030.5 700.5,-1030.5 "/>
+<polygon fill="white" stroke="black" points="547.5,-835.5 547.5,-1090.5 700.5,-1090.5 700.5,-835.5 547.5,-835.5"/>
+<text text-anchor="start" x="555.5" y="-1078.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::Array</text>
+<text text-anchor="middle" x="624" y="-1067.5" font-family="Helvetica,sans-Serif" font-size="10.00">< tvm::arith::IterSplitExpr ></text>
+<polyline fill="none" stroke="black" points="547.5,-1060.5 700.5,-1060.5 "/>
+<text text-anchor="middle" x="624" y="-1048.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="547.5,-1041.5 700.5,-1041.5 "/>
+<text text-anchor="start" x="555.5" y="-1029.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Array()</text>
<text text-anchor="start" x="555.5" y="-1018.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Array()</text>
<text text-anchor="start" x="555.5" y="-1007.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Array()</text>
<text text-anchor="start" x="555.5" y="-996.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Array()</text>
@@ -247,84 +248,84 @@
<text text-anchor="start" x="555.5" y="-974.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Array()</text>
<text text-anchor="start" x="555.5" y="-963.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Array()</text>
<text text-anchor="start" x="555.5" y="-952.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Array()</text>
-<text text-anchor="start" x="555.5" y="-941.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Array()</text>
+<text text-anchor="start" x="555.5" y="-941.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
<text text-anchor="start" x="555.5" y="-930.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
-<text text-anchor="start" x="555.5" y="-919.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
-<text text-anchor="start" x="555.5" y="-908.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 25 more...</text>
+<text text-anchor="start" x="555.5" y="-919.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 25 more...</text>
+<text text-anchor="start" x="555.5" y="-908.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ CalcCapacityImpl()</text>
<text text-anchor="start" x="555.5" y="-897.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ CalcCapacityImpl()</text>
<text text-anchor="start" x="555.5" y="-886.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ CalcCapacityImpl()</text>
-<text text-anchor="start" x="555.5" y="-875.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ CalcCapacityImpl()</text>
+<text text-anchor="start" x="555.5" y="-875.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ AgregateImpl()</text>
<text text-anchor="start" x="555.5" y="-864.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ AgregateImpl()</text>
<text text-anchor="start" x="555.5" y="-853.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ AgregateImpl()</text>
-<text text-anchor="start" x="555.5" y="-842.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ AgregateImpl()</text>
-<text text-anchor="start" x="555.5" y="-831.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Agregate()</text>
+<text text-anchor="start" x="555.5" y="-842.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Agregate()</text>
</a>
</g>
</g>
<!-- Node7->Node12 -->
<g id="edge14" class="edge">
<title>Node7->Node12</title>
-<path fill="none" stroke="midnightblue" d="M595.55,-1527.36C601.77,-1513.83 607.15,-1499.88 611,-1486 648.47,-1350.99 646.17,-1189.28 638.04,-1079.66"/>
-<polygon fill="none" stroke="midnightblue" points="592.26,-1526.12 591.12,-1536.65 598.58,-1529.13 592.26,-1526.12"/>
+<path fill="none" stroke="midnightblue" d="M595.55,-1538.36C601.77,-1524.83 607.15,-1510.88 611,-1497 648.47,-1361.99 646.17,-1200.28 638.04,-1090.66"/>
+<polygon fill="none" stroke="midnightblue" points="592.26,-1537.12 591.12,-1547.65 598.58,-1540.13 592.26,-1537.12"/>
</g>
<!-- Node8 -->
<g id="node8" class="node">
<title>Node8</title>
<g id="a_node8"><a xlink:href="classtvm_1_1runtime_1_1ObjectPtr.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="454,-1804.5 454,-1982.5 594,-1982.5 594,-1804.5 454,-1804.5"/>
-<text text-anchor="start" x="462" y="-1970.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::ObjectPtr</text>
-<text text-anchor="middle" x="524" y="-1959.5" font-family="Helvetica,sans-Serif" font-size="10.00">< tvm::runtime::Object ></text>
-<polyline fill="none" stroke="black" points="454,-1952.5 594,-1952.5 "/>
-<text text-anchor="middle" x="524" y="-1940.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="454,-1933.5 594,-1933.5 "/>
+<polygon fill="white" stroke="black" points="454,-1815.5 454,-1993.5 594,-1993.5 594,-1815.5 454,-1815.5"/>
+<text text-anchor="start" x="462" y="-1981.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::ObjectPtr</text>
+<text text-anchor="middle" x="524" y="-1970.5" font-family="Helvetica,sans-Serif" font-size="10.00">< tvm::runtime::Object ></text>
+<polyline fill="none" stroke="black" points="454,-1963.5 594,-1963.5 "/>
+<text text-anchor="middle" x="524" y="-1951.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="454,-1944.5 594,-1944.5 "/>
+<text text-anchor="start" x="462" y="-1932.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="462" y="-1921.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="462" y="-1910.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="462" y="-1899.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="462" y="-1888.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="462" y="-1877.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
-<text text-anchor="start" x="462" y="-1866.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
-<text text-anchor="start" x="462" y="-1855.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ~ObjectPtr()</text>
-<text text-anchor="start" x="462" y="-1844.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ swap()</text>
-<text text-anchor="start" x="462" y="-1833.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get()</text>
-<text text-anchor="start" x="462" y="-1822.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator->()</text>
-<text text-anchor="start" x="462" y="-1811.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 11 more...</text>
+<text text-anchor="start" x="462" y="-1866.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ~ObjectPtr()</text>
+<text text-anchor="start" x="462" y="-1855.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ swap()</text>
+<text text-anchor="start" x="462" y="-1844.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get()</text>
+<text text-anchor="start" x="462" y="-1833.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator->()</text>
+<text text-anchor="start" x="462" y="-1822.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 11 more...</text>
</a>
</g>
</g>
<!-- Node8->Node7 -->
<g id="edge8" class="edge">
<title>Node8->Node7</title>
-<path fill="none" stroke="#404040" d="M524,-1804.18C524,-1792.84 524,-1781.05 524,-1769.23"/>
-<polygon fill="none" stroke="#404040" points="524,-1768.91 520,-1762.91 524,-1756.91 528,-1762.91 524,-1768.91"/>
-<text text-anchor="middle" x="543.5" y="-1778" font-family="Helvetica,sans-Serif" font-size="10.00"> #data_</text>
+<path fill="none" stroke="#404040" d="M524,-1815.18C524,-1803.84 524,-1792.05 524,-1780.23"/>
+<polygon fill="none" stroke="#404040" points="524,-1779.91 520,-1773.91 524,-1767.91 528,-1773.91 524,-1779.91"/>
+<text text-anchor="middle" x="543.5" y="-1789" font-family="Helvetica,sans-Serif" font-size="10.00"> #data_</text>
</g>
<!-- Node9 -->
<g id="node9" class="node">
<title>Node9</title>
<g id="a_node9"><a xlink:href="classtvm_1_1runtime_1_1DataType.html" target="_top" xlink:title="Runtime primitive data type.">
-<polygon fill="white" stroke="black" points="255,-517.5 255,-805.5 387,-805.5 387,-517.5 255,-517.5"/>
-<text text-anchor="middle" x="321" y="-793.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::DataType</text>
-<polyline fill="none" stroke="black" points="255,-786.5 387,-786.5 "/>
-<text text-anchor="middle" x="321" y="-774.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="255,-767.5 387,-767.5 "/>
+<polygon fill="white" stroke="black" points="255,-517.5 255,-816.5 387,-816.5 387,-517.5 255,-517.5"/>
+<text text-anchor="middle" x="321" y="-804.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::DataType</text>
+<polyline fill="none" stroke="black" points="255,-797.5 387,-797.5 "/>
+<text text-anchor="middle" x="321" y="-785.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="255,-778.5 387,-778.5 "/>
+<text text-anchor="start" x="263" y="-766.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ DataType()</text>
<text text-anchor="start" x="263" y="-755.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ DataType()</text>
<text text-anchor="start" x="263" y="-744.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ DataType()</text>
-<text text-anchor="start" x="263" y="-733.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ DataType()</text>
-<text text-anchor="start" x="263" y="-722.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ code()</text>
-<text text-anchor="start" x="263" y="-711.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ bits()</text>
-<text text-anchor="start" x="263" y="-700.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ bytes()</text>
-<text text-anchor="start" x="263" y="-689.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ lanes()</text>
-<text text-anchor="start" x="263" y="-678.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ vscale_factor()</text>
-<text text-anchor="start" x="263" y="-667.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get_lanes_or_vscale</text>
-<text text-anchor="start" x="263" y="-656.5" font-family="Helvetica,sans-Serif" font-size="10.00">_factor()</text>
-<text text-anchor="start" x="263" y="-645.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ is_scalar()</text>
-<text text-anchor="start" x="263" y="-634.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 24 more...</text>
-<text text-anchor="start" x="263" y="-623.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Int()</text>
-<text text-anchor="start" x="263" y="-612.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ UInt()</text>
-<text text-anchor="start" x="263" y="-601.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Float()</text>
-<text text-anchor="start" x="263" y="-590.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ BFloat()</text>
-<text text-anchor="start" x="263" y="-579.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat8E4M3()</text>
-<text text-anchor="start" x="263" y="-568.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat8E5M2()</text>
+<text text-anchor="start" x="263" y="-733.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ code()</text>
+<text text-anchor="start" x="263" y="-722.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ bits()</text>
+<text text-anchor="start" x="263" y="-711.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ bytes()</text>
+<text text-anchor="start" x="263" y="-700.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ lanes()</text>
+<text text-anchor="start" x="263" y="-689.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ vscale_factor()</text>
+<text text-anchor="start" x="263" y="-678.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get_lanes_or_vscale</text>
+<text text-anchor="start" x="263" y="-667.5" font-family="Helvetica,sans-Serif" font-size="10.00">_factor()</text>
+<text text-anchor="start" x="263" y="-656.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ is_scalar()</text>
+<text text-anchor="start" x="263" y="-645.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 26 more...</text>
+<text text-anchor="start" x="263" y="-634.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Int()</text>
+<text text-anchor="start" x="263" y="-623.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ UInt()</text>
+<text text-anchor="start" x="263" y="-612.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Float()</text>
+<text text-anchor="start" x="263" y="-601.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ BFloat()</text>
+<text text-anchor="start" x="263" y="-590.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat8E4M3()</text>
+<text text-anchor="start" x="263" y="-579.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat8E5M2()</text>
+<text text-anchor="start" x="263" y="-568.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat4E2M1()</text>
<text text-anchor="start" x="263" y="-557.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Bool()</text>
<text text-anchor="start" x="263" y="-546.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Handle()</text>
<text text-anchor="start" x="263" y="-535.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Void()</text>
@@ -335,8 +336,8 @@
<!-- Node9->Node3 -->
<g id="edge9" class="edge">
<title>Node9->Node3</title>
-<path fill="none" stroke="#404040" d="M369.37,-517.43C383.88,-477.94 400.59,-435.41 418,-397 419.1,-394.56 420.26,-392.09 421.45,-389.61"/>
-<polygon fill="none" stroke="#404040" points="421.53,-389.46 420.63,-382.3 426.88,-378.71 427.79,-385.87 421.53,-389.46"/>
+<path fill="none" stroke="#404040" d="M370,-517.45C384.3,-477.83 400.76,-435.38 418,-397 419.1,-394.56 420.25,-392.09 421.43,-389.6"/>
+<polygon fill="none" stroke="#404040" points="421.51,-389.45 420.59,-382.3 426.84,-378.7 427.76,-385.85 421.51,-389.45"/>
<text text-anchor="middle" x="438" y="-445.5" font-family="Helvetica,sans-Serif" font-size="10.00"> +dtype</text>
</g>
<!-- Node10 -->
@@ -366,13 +367,13 @@
<!-- Node11->Node10 -->
<g id="edge11" class="edge">
<title>Node11->Node10</title>
-<path fill="none" stroke="midnightblue" d="M84.25,-1247.89C104.89,-1105.41 170.86,-650.09 192.82,-498.57"/>
-<polygon fill="none" stroke="midnightblue" points="80.75,-1247.59 82.78,-1257.99 87.68,-1248.6 80.75,-1247.59"/>
+<path fill="none" stroke="midnightblue" d="M84.21,-1258.61C104.83,-1114.42 170.99,-651.81 192.89,-498.72"/>
+<polygon fill="none" stroke="midnightblue" points="80.7,-1258.43 82.75,-1268.82 87.63,-1259.42 80.7,-1258.43"/>
</g>
<!-- Node12->Node1 -->
<g id="edge13" class="edge">
<title>Node12->Node1</title>
-<path fill="none" stroke="#404040" d="M620.87,-824.38C618.62,-722.89 616,-576.8 616,-449 616,-449 616,-449 616,-183.5 616,-144.25 586.95,-114.62 553.52,-93.52"/>
+<path fill="none" stroke="#404040" d="M620.92,-835.25C618.67,-731.43 616,-580.72 616,-449 616,-449 616,-449 616,-183.5 616,-144.25 586.95,-114.62 553.52,-93.52"/>
<polygon fill="none" stroke="#404040" points="553.33,-93.4 546.13,-93.75 543.04,-87.24 550.24,-86.89 553.33,-93.4"/>
<text text-anchor="middle" x="632.5" y="-325.5" font-family="Helvetica,sans-Serif" font-size="10.00"> +args</text>
</g>
diff --git a/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1TensorInfoNode.html b/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1TensorInfoNode.html
index 60180f9d10..b22de9b70d 100644
--- a/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1TensorInfoNode.html
+++ b/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1TensorInfoNode.html
@@ -88,7 +88,7 @@ Inheritance diagram for tvm::meta_schedule::TensorInfoNode:</div>
<div class="dynheader">
Collaboration diagram for tvm::meta_schedule::TensorInfoNode:</div>
<div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1meta__schedule_1_1TensorInfoNode__coll__graph.svg" width="764" height="1463"><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_1meta__schedule_1_1TensorInfoNode__coll__graph.svg" width="764" height="1478"><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">
diff --git a/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1TensorInfoNode__coll__graph.svg b/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1TensorInfoNode__coll__graph.svg
index b2f08f1430..946fc13764 100644
--- a/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1TensorInfoNode__coll__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1meta__schedule_1_1TensorInfoNode__coll__graph.svg
@@ -4,11 +4,11 @@
<!-- Generated by graphviz version 2.43.0 (0)
-->
<!-- Title: tvm::meta_schedule::TensorInfoNode Pages: 1 -->
-<svg width="573pt" height="1097pt"
- viewBox="0.00 0.00 573.00 1097.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 1093)">
+<svg width="573pt" height="1108pt"
+ viewBox="0.00 0.00 573.00 1108.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 1104)">
<title>tvm::meta_schedule::TensorInfoNode</title>
-<polygon fill="white" stroke="transparent" points="-4,4 -4,-1093 569,-1093 569,4 -4,4"/>
+<polygon fill="white" stroke="transparent" points="-4,4 -4,-1104 569,-1104 569,4 -4,4"/>
<!-- Node1 -->
<g id="node1" class="node">
<title>Node1</title>
@@ -30,208 +30,209 @@
<g id="node2" class="node">
<title>Node2</title>
<g id="a_node2"><a xlink:href="classtvm_1_1meta__schedule_1_1ArgInfoNode.html" target="_top" xlink:title="The argument information.">
-<polygon fill="white" stroke="black" points="48.5,-243 48.5,-344 221.5,-344 221.5,-243 48.5,-243"/>
-<text text-anchor="start" x="56.5" y="-332" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::meta_schedule</text>
-<text text-anchor="middle" x="135" y="-321" font-family="Helvetica,sans-Serif" font-size="10.00">::ArgInfoNode</text>
-<polyline fill="none" stroke="black" points="48.5,-314 221.5,-314 "/>
-<text text-anchor="start" x="56.5" y="-302" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
-<polyline fill="none" stroke="black" points="48.5,-295 221.5,-295 "/>
-<text text-anchor="start" x="56.5" y="-283" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DECLARE_BASE_OBJECT</text>
-<text text-anchor="start" x="56.5" y="-272" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO()</text>
-<text text-anchor="start" x="56.5" y="-261" font-family="Helvetica,sans-Serif" font-size="10.00">+ ~ArgInfoNode()</text>
-<text text-anchor="start" x="56.5" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00">+ AsJSON()</text>
+<polygon fill="white" stroke="black" points="48.5,-248.5 48.5,-349.5 221.5,-349.5 221.5,-248.5 48.5,-248.5"/>
+<text text-anchor="start" x="56.5" y="-337.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::meta_schedule</text>
+<text text-anchor="middle" x="135" y="-326.5" font-family="Helvetica,sans-Serif" font-size="10.00">::ArgInfoNode</text>
+<polyline fill="none" stroke="black" points="48.5,-319.5 221.5,-319.5 "/>
+<text text-anchor="start" x="56.5" y="-307.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
+<polyline fill="none" stroke="black" points="48.5,-300.5 221.5,-300.5 "/>
+<text text-anchor="start" x="56.5" y="-288.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DECLARE_BASE_OBJECT</text>
+<text text-anchor="start" x="56.5" y="-277.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO()</text>
+<text text-anchor="start" x="56.5" y="-266.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ~ArgInfoNode()</text>
+<text text-anchor="start" x="56.5" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ AsJSON()</text>
</a>
</g>
</g>
<!-- Node2->Node1 -->
<g id="edge1" class="edge">
<title>Node2->Node1</title>
-<path fill="none" stroke="midnightblue" d="M174,-234.26C192.54,-207.61 215.54,-176.03 238,-149 251.27,-133.03 266.56,-116.44 280.85,-101.59"/>
-<polygon fill="none" stroke="midnightblue" points="170.95,-232.51 168.14,-242.73 176.71,-236.49 170.95,-232.51"/>
+<path fill="none" stroke="midnightblue" d="M172.16,-239.71C190.89,-211.54 214.57,-177.7 238,-149 250.98,-133.1 266.03,-116.66 280.19,-101.95"/>
+<polygon fill="none" stroke="midnightblue" points="169.1,-237.99 166.51,-248.26 174.94,-241.85 169.1,-237.99"/>
</g>
<!-- Node3 -->
<g id="node3" class="node">
<title>Node3</title>
<g id="a_node3"><a xlink:href="classtvm_1_1runtime_1_1Object.html" target="_top" xlink:title="base class of all object containers.">
-<polygon fill="white" stroke="black" points="0,-475.5 0,-862.5 184,-862.5 184,-475.5 0,-475.5"/>
-<text text-anchor="middle" x="92" y="-850.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::Object</text>
-<polyline fill="none" stroke="black" points="0,-843.5 184,-843.5 "/>
-<text text-anchor="start" x="8" y="-831.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
-<text text-anchor="start" x="8" y="-820.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_final</text>
-<text text-anchor="start" x="8" y="-809.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots</text>
-<text text-anchor="start" x="8" y="-798.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots_can</text>
-<text text-anchor="start" x="8" y="-787.5" font-family="Helvetica,sans-Serif" font-size="10.00">_overflow</text>
-<text text-anchor="start" x="8" y="-776.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_visit</text>
-<text text-anchor="start" x="8" y="-765.5" font-family="Helvetica,sans-Serif" font-size="10.00">_attrs</text>
-<text text-anchor="start" x="8" y="-754.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_sequal</text>
-<text text-anchor="start" x="8" y="-743.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
-<text text-anchor="start" x="8" y="-732.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_shash</text>
-<text text-anchor="start" x="8" y="-721.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
-<text text-anchor="start" x="8" y="-710.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_index</text>
-<text text-anchor="start" x="8" y="-699.5" font-family="Helvetica,sans-Serif" font-size="10.00"># type_index_</text>
-<text text-anchor="start" x="8" y="-688.5" font-family="Helvetica,sans-Serif" font-size="10.00"># ref_counter_</text>
-<polyline fill="none" stroke="black" points="0,-681.5 184,-681.5 "/>
-<text text-anchor="start" x="8" y="-669.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ type_index()</text>
-<text text-anchor="start" x="8" y="-658.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ GetTypeKey()</text>
-<text text-anchor="start" x="8" y="-647.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ GetTypeKeyHash()</text>
-<text text-anchor="start" x="8" y="-636.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ IsInstance()</text>
-<text text-anchor="start" x="8" y="-625.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ unique()</text>
+<polygon fill="white" stroke="black" points="0,-486.5 0,-873.5 184,-873.5 184,-486.5 0,-486.5"/>
+<text text-anchor="middle" x="92" y="-861.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::Object</text>
+<polyline fill="none" stroke="black" points="0,-854.5 184,-854.5 "/>
+<text text-anchor="start" x="8" y="-842.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
+<text text-anchor="start" x="8" y="-831.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_final</text>
+<text text-anchor="start" x="8" y="-820.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots</text>
+<text text-anchor="start" x="8" y="-809.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots_can</text>
+<text text-anchor="start" x="8" y="-798.5" font-family="Helvetica,sans-Serif" font-size="10.00">_overflow</text>
+<text text-anchor="start" x="8" y="-787.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_visit</text>
+<text text-anchor="start" x="8" y="-776.5" font-family="Helvetica,sans-Serif" font-size="10.00">_attrs</text>
+<text text-anchor="start" x="8" y="-765.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_sequal</text>
+<text text-anchor="start" x="8" y="-754.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
+<text text-anchor="start" x="8" y="-743.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_shash</text>
+<text text-anchor="start" x="8" y="-732.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
+<text text-anchor="start" x="8" y="-721.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_index</text>
+<text text-anchor="start" x="8" y="-710.5" font-family="Helvetica,sans-Serif" font-size="10.00"># type_index_</text>
+<text text-anchor="start" x="8" y="-699.5" font-family="Helvetica,sans-Serif" font-size="10.00"># ref_counter_</text>
+<polyline fill="none" stroke="black" points="0,-692.5 184,-692.5 "/>
+<text text-anchor="start" x="8" y="-680.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ type_index()</text>
+<text text-anchor="start" x="8" y="-669.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ GetTypeKey()</text>
+<text text-anchor="start" x="8" y="-658.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ GetTypeKeyHash()</text>
+<text text-anchor="start" x="8" y="-647.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ IsInstance()</text>
+<text text-anchor="start" x="8" y="-636.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ unique()</text>
+<text text-anchor="start" x="8" y="-625.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Object()</text>
<text text-anchor="start" x="8" y="-614.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Object()</text>
<text text-anchor="start" x="8" y="-603.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Object()</text>
-<text text-anchor="start" x="8" y="-592.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Object()</text>
+<text text-anchor="start" x="8" y="-592.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
<text text-anchor="start" x="8" y="-581.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
-<text text-anchor="start" x="8" y="-570.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
-<text text-anchor="start" x="8" y="-559.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeIndex2Key()</text>
-<text text-anchor="start" x="8" y="-548.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeIndex2KeyHash()</text>
-<text text-anchor="start" x="8" y="-537.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeKey2Index()</text>
-<text text-anchor="start" x="8" y="-526.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _GetOrAllocRuntimeTypeIndex()</text>
-<text text-anchor="start" x="8" y="-515.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RuntimeTypeIndex()</text>
-<text text-anchor="start" x="8" y="-504.5" font-family="Helvetica,sans-Serif" font-size="10.00"># IncRef()</text>
-<text text-anchor="start" x="8" y="-493.5" font-family="Helvetica,sans-Serif" font-size="10.00"># DecRef()</text>
-<text text-anchor="start" x="8" y="-482.5" font-family="Helvetica,sans-Serif" font-size="10.00"># GetOrAllocRuntimeTypeIndex()</text>
+<text text-anchor="start" x="8" y="-570.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeIndex2Key()</text>
+<text text-anchor="start" x="8" y="-559.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeIndex2KeyHash()</text>
+<text text-anchor="start" x="8" y="-548.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeKey2Index()</text>
+<text text-anchor="start" x="8" y="-537.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _GetOrAllocRuntimeTypeIndex()</text>
+<text text-anchor="start" x="8" y="-526.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RuntimeTypeIndex()</text>
+<text text-anchor="start" x="8" y="-515.5" font-family="Helvetica,sans-Serif" font-size="10.00"># IncRef()</text>
+<text text-anchor="start" x="8" y="-504.5" font-family="Helvetica,sans-Serif" font-size="10.00"># DecRef()</text>
+<text text-anchor="start" x="8" y="-493.5" font-family="Helvetica,sans-Serif" font-size="10.00"># GetOrAllocRuntimeTypeIndex()</text>
</a>
</g>
</g>
<!-- Node3->Node2 -->
<g id="edge2" class="edge">
<title>Node3->Node2</title>
-<path fill="none" stroke="midnightblue" d="M115.34,-465.26C120.55,-420.02 125.61,-376.04 129.3,-344.05"/>
-<polygon fill="none" stroke="midnightblue" points="111.86,-464.9 114.19,-475.23 118.81,-465.7 111.86,-464.9"/>
+<path fill="none" stroke="midnightblue" d="M114.99,-476.35C120.35,-429.11 125.59,-382.96 129.36,-349.73"/>
+<polygon fill="none" stroke="midnightblue" points="111.5,-476.12 113.85,-486.45 118.45,-476.9 111.5,-476.12"/>
</g>
<!-- Node3->Node3 -->
<g id="edge3" class="edge">
<title>Node3->Node3</title>
-<path fill="none" stroke="#404040" d="M184.28,-702.92C195.02,-696.66 202,-685.36 202,-669 202,-658.01 198.85,-649.3 193.52,-642.87"/>
-<polygon fill="none" stroke="#404040" points="193.46,-642.81 186.29,-642 184.28,-635.08 191.45,-635.89 193.46,-642.81"/>
-<text text-anchor="middle" x="228" y="-666.5" font-family="Helvetica,sans-Serif" font-size="10.00"> #deleter_</text>
+<path fill="none" stroke="#404040" d="M184.28,-713.92C195.02,-707.66 202,-696.36 202,-680 202,-669.01 198.85,-660.3 193.52,-653.87"/>
+<polygon fill="none" stroke="#404040" points="193.46,-653.81 186.29,-653 184.28,-646.08 191.45,-646.89 193.46,-653.81"/>
+<text text-anchor="middle" x="228" y="-677.5" font-family="Helvetica,sans-Serif" font-size="10.00"> #deleter_</text>
</g>
<!-- Node4 -->
<g id="node4" class="node">
<title>Node4</title>
<g id="a_node4"><a xlink:href="classtvm_1_1runtime_1_1ShapeTuple.html" target="_top" xlink:title="Reference to shape tuple objects.">
-<polygon fill="white" stroke="black" points="247,-188 247,-399 415,-399 415,-188 247,-188"/>
-<text text-anchor="middle" x="331" y="-387" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::ShapeTuple</text>
-<polyline fill="none" stroke="black" points="247,-380 415,-380 "/>
-<text text-anchor="middle" x="331" y="-368" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="247,-361 415,-361 "/>
-<text text-anchor="start" x="255" y="-349" font-family="Helvetica,sans-Serif" font-size="10.00">+ ShapeTuple()</text>
-<text text-anchor="start" x="255" y="-338" font-family="Helvetica,sans-Serif" font-size="10.00">+ ShapeTuple()</text>
-<text text-anchor="start" x="255" y="-327" font-family="Helvetica,sans-Serif" font-size="10.00">+ ShapeTuple()</text>
-<text text-anchor="start" x="255" y="-316" font-family="Helvetica,sans-Serif" font-size="10.00">+ ShapeTuple()</text>
-<text text-anchor="start" x="255" y="-305" font-family="Helvetica,sans-Serif" font-size="10.00">+ data()</text>
-<text text-anchor="start" x="255" y="-294" font-family="Helvetica,sans-Serif" font-size="10.00">+ size()</text>
-<text text-anchor="start" x="255" y="-283" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator[]()</text>
-<text text-anchor="start" x="255" y="-272" font-family="Helvetica,sans-Serif" font-size="10.00">+ at()</text>
-<text text-anchor="start" x="255" y="-261" font-family="Helvetica,sans-Serif" font-size="10.00">+ empty()</text>
-<text text-anchor="start" x="255" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00">+ front()</text>
-<text text-anchor="start" x="255" y="-239" font-family="Helvetica,sans-Serif" font-size="10.00">+ back()</text>
-<text text-anchor="start" x="255" y="-228" font-family="Helvetica,sans-Serif" font-size="10.00">+ begin()</text>
-<text text-anchor="start" x="255" y="-217" font-family="Helvetica,sans-Serif" font-size="10.00">+ end()</text>
-<text text-anchor="start" x="255" y="-206" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DEFINE_NOTNULLABLE</text>
-<text text-anchor="start" x="255" y="-195" font-family="Helvetica,sans-Serif" font-size="10.00">_OBJECT_REF_METHODS()</text>
+<polygon fill="white" stroke="black" points="247,-193.5 247,-404.5 415,-404.5 415,-193.5 247,-193.5"/>
+<text text-anchor="middle" x="331" y="-392.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::ShapeTuple</text>
+<polyline fill="none" stroke="black" points="247,-385.5 415,-385.5 "/>
+<text text-anchor="middle" x="331" y="-373.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="247,-366.5 415,-366.5 "/>
+<text text-anchor="start" x="255" y="-354.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ShapeTuple()</text>
+<text text-anchor="start" x="255" y="-343.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ShapeTuple()</text>
+<text text-anchor="start" x="255" y="-332.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ShapeTuple()</text>
+<text text-anchor="start" x="255" y="-321.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ShapeTuple()</text>
+<text text-anchor="start" x="255" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ data()</text>
+<text text-anchor="start" x="255" y="-299.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ size()</text>
+<text text-anchor="start" x="255" y="-288.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator[]()</text>
+<text text-anchor="start" x="255" y="-277.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ at()</text>
+<text text-anchor="start" x="255" y="-266.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ empty()</text>
+<text text-anchor="start" x="255" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ front()</text>
+<text text-anchor="start" x="255" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ back()</text>
+<text text-anchor="start" x="255" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ begin()</text>
+<text text-anchor="start" x="255" y="-222.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ end()</text>
+<text text-anchor="start" x="255" y="-211.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DEFINE_NOTNULLABLE</text>
+<text text-anchor="start" x="255" y="-200.5" font-family="Helvetica,sans-Serif" font-size="10.00">_OBJECT_REF_METHODS()</text>
</a>
</g>
</g>
<!-- Node4->Node1 -->
<g id="edge4" class="edge">
<title>Node4->Node1</title>
-<path fill="none" stroke="#404040" d="M331,-187.71C331,-162.51 331,-136.38 331,-113.86"/>
-<polygon fill="none" stroke="#404040" points="331,-113.75 327,-107.75 331,-101.75 335,-107.75 331,-113.75"/>
+<path fill="none" stroke="#404040" d="M331,-193.32C331,-166.26 331,-137.99 331,-113.9"/>
+<polygon fill="none" stroke="#404040" points="331,-113.72 327,-107.72 331,-101.72 335,-107.72 331,-113.72"/>
<text text-anchor="middle" x="351.5" y="-123" font-family="Helvetica,sans-Serif" font-size="10.00"> +shape</text>
</g>
<!-- Node5 -->
<g id="node5" class="node">
<title>Node5</title>
<g id="a_node5"><a xlink:href="classtvm_1_1runtime_1_1ObjectRef.html" target="_top" xlink:title="Base class of all object reference.">
-<polygon fill="white" stroke="black" points="272,-552.5 272,-785.5 406,-785.5 406,-552.5 272,-552.5"/>
-<text text-anchor="middle" x="339" y="-773.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::ObjectRef</text>
-<polyline fill="none" stroke="black" points="272,-766.5 406,-766.5 "/>
-<text text-anchor="start" x="280" y="-754.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_is_nullable</text>
-<polyline fill="none" stroke="black" points="272,-747.5 406,-747.5 "/>
+<polygon fill="white" stroke="black" points="272,-563.5 272,-796.5 406,-796.5 406,-563.5 272,-563.5"/>
+<text text-anchor="middle" x="339" y="-784.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::ObjectRef</text>
+<polyline fill="none" stroke="black" points="272,-777.5 406,-777.5 "/>
+<text text-anchor="start" x="280" y="-765.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_is_nullable</text>
+<polyline fill="none" stroke="black" points="272,-758.5 406,-758.5 "/>
+<text text-anchor="start" x="280" y="-746.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectRef()</text>
<text text-anchor="start" x="280" y="-735.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectRef()</text>
-<text text-anchor="start" x="280" y="-724.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectRef()</text>
-<text text-anchor="start" x="280" y="-713.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ same_as()</text>
-<text text-anchor="start" x="280" y="-702.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator==()</text>
-<text text-anchor="start" x="280" y="-691.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator!=()</text>
-<text text-anchor="start" x="280" y="-680.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator<()</text>
-<text text-anchor="start" x="280" y="-669.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ defined()</text>
-<text text-anchor="start" x="280" y="-658.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get()</text>
-<text text-anchor="start" x="280" y="-647.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator->()</text>
-<text text-anchor="start" x="280" y="-636.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ unique()</text>
-<text text-anchor="start" x="280" y="-625.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ use_count()</text>
+<text text-anchor="start" x="280" y="-724.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ same_as()</text>
+<text text-anchor="start" x="280" y="-713.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator==()</text>
+<text text-anchor="start" x="280" y="-702.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator!=()</text>
+<text text-anchor="start" x="280" y="-691.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator<()</text>
+<text text-anchor="start" x="280" y="-680.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ defined()</text>
+<text text-anchor="start" x="280" y="-669.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get()</text>
+<text text-anchor="start" x="280" y="-658.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator->()</text>
+<text text-anchor="start" x="280" y="-647.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ unique()</text>
+<text text-anchor="start" x="280" y="-636.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ use_count()</text>
+<text text-anchor="start" x="280" y="-625.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ as()</text>
<text text-anchor="start" x="280" y="-614.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ as()</text>
-<text text-anchor="start" x="280" y="-603.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ as()</text>
-<text text-anchor="start" x="280" y="-592.5" font-family="Helvetica,sans-Serif" font-size="10.00"># get_mutable()</text>
-<text text-anchor="start" x="280" y="-581.5" font-family="Helvetica,sans-Serif" font-size="10.00"># DowncastNoCheck()</text>
-<text text-anchor="start" x="280" y="-570.5" font-family="Helvetica,sans-Serif" font-size="10.00"># FFIClearAfterMove()</text>
-<text text-anchor="start" x="280" y="-559.5" font-family="Helvetica,sans-Serif" font-size="10.00"># GetDataPtr()</text>
+<text text-anchor="start" x="280" y="-603.5" font-family="Helvetica,sans-Serif" font-size="10.00"># get_mutable()</text>
+<text text-anchor="start" x="280" y="-592.5" font-family="Helvetica,sans-Serif" font-size="10.00"># DowncastNoCheck()</text>
+<text text-anchor="start" x="280" y="-581.5" font-family="Helvetica,sans-Serif" font-size="10.00"># FFIClearAfterMove()</text>
+<text text-anchor="start" x="280" y="-570.5" font-family="Helvetica,sans-Serif" font-size="10.00"># GetDataPtr()</text>
</a>
</g>
</g>
<!-- Node5->Node4 -->
<g id="edge5" class="edge">
<title>Node5->Node4</title>
-<path fill="none" stroke="midnightblue" d="M336.31,-542.24C335.31,-495.73 334.19,-443.54 333.24,-399.11"/>
-<polygon fill="none" stroke="midnightblue" points="332.81,-542.46 336.52,-552.38 339.81,-542.31 332.81,-542.46"/>
+<path fill="none" stroke="midnightblue" d="M336.35,-553.3C335.33,-505.07 334.18,-450.61 333.21,-404.57"/>
+<polygon fill="none" stroke="midnightblue" points="332.85,-553.56 336.56,-563.49 339.85,-553.41 332.85,-553.56"/>
</g>
<!-- Node6 -->
<g id="node6" class="node">
<title>Node6</title>
<g id="a_node6"><a xlink:href="classtvm_1_1runtime_1_1ObjectPtr.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="269,-910.5 269,-1088.5 409,-1088.5 409,-910.5 269,-910.5"/>
-<text text-anchor="start" x="277" y="-1076.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::ObjectPtr</text>
-<text text-anchor="middle" x="339" y="-1065.5" font-family="Helvetica,sans-Serif" font-size="10.00">< tvm::runtime::Object ></text>
-<polyline fill="none" stroke="black" points="269,-1058.5 409,-1058.5 "/>
-<text text-anchor="middle" x="339" y="-1046.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="269,-1039.5 409,-1039.5 "/>
+<polygon fill="white" stroke="black" points="269,-921.5 269,-1099.5 409,-1099.5 409,-921.5 269,-921.5"/>
+<text text-anchor="start" x="277" y="-1087.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::ObjectPtr</text>
+<text text-anchor="middle" x="339" y="-1076.5" font-family="Helvetica,sans-Serif" font-size="10.00">< tvm::runtime::Object ></text>
+<polyline fill="none" stroke="black" points="269,-1069.5 409,-1069.5 "/>
+<text text-anchor="middle" x="339" y="-1057.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="269,-1050.5 409,-1050.5 "/>
+<text text-anchor="start" x="277" y="-1038.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="277" y="-1027.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="277" y="-1016.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="277" y="-1005.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="277" y="-994.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="277" y="-983.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
-<text text-anchor="start" x="277" y="-972.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
-<text text-anchor="start" x="277" y="-961.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ~ObjectPtr()</text>
-<text text-anchor="start" x="277" y="-950.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ swap()</text>
-<text text-anchor="start" x="277" y="-939.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get()</text>
-<text text-anchor="start" x="277" y="-928.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator->()</text>
-<text text-anchor="start" x="277" y="-917.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 11 more...</text>
+<text text-anchor="start" x="277" y="-972.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ~ObjectPtr()</text>
+<text text-anchor="start" x="277" y="-961.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ swap()</text>
+<text text-anchor="start" x="277" y="-950.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get()</text>
+<text text-anchor="start" x="277" y="-939.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator->()</text>
+<text text-anchor="start" x="277" y="-928.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 11 more...</text>
</a>
</g>
</g>
<!-- Node6->Node5 -->
<g id="edge6" class="edge">
<title>Node6->Node5</title>
-<path fill="none" stroke="#404040" d="M339,-910.47C339,-875.91 339,-835.57 339,-797.92"/>
-<polygon fill="none" stroke="#404040" points="339,-797.8 335,-791.8 339,-785.8 343,-791.8 339,-797.8"/>
-<text text-anchor="middle" x="358.5" y="-884" font-family="Helvetica,sans-Serif" font-size="10.00"> #data_</text>
+<path fill="none" stroke="#404040" d="M339,-921.47C339,-886.91 339,-846.57 339,-808.92"/>
+<polygon fill="none" stroke="#404040" points="339,-808.8 335,-802.8 339,-796.8 343,-802.8 339,-808.8"/>
+<text text-anchor="middle" x="358.5" y="-895" font-family="Helvetica,sans-Serif" font-size="10.00"> #data_</text>
</g>
<!-- Node7 -->
<g id="node7" class="node">
<title>Node7</title>
<g id="a_node7"><a xlink:href="classtvm_1_1runtime_1_1DataType.html" target="_top" xlink:title="Runtime primitive data type.">
-<polygon fill="white" stroke="black" points="433,-149.5 433,-437.5 565,-437.5 565,-149.5 433,-149.5"/>
-<text text-anchor="middle" x="499" y="-425.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::DataType</text>
-<polyline fill="none" stroke="black" points="433,-418.5 565,-418.5 "/>
-<text text-anchor="middle" x="499" y="-406.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="433,-399.5 565,-399.5 "/>
+<polygon fill="white" stroke="black" points="433,-149.5 433,-448.5 565,-448.5 565,-149.5 433,-149.5"/>
+<text text-anchor="middle" x="499" y="-436.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::DataType</text>
+<polyline fill="none" stroke="black" points="433,-429.5 565,-429.5 "/>
+<text text-anchor="middle" x="499" y="-417.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="433,-410.5 565,-410.5 "/>
+<text text-anchor="start" x="441" y="-398.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ DataType()</text>
<text text-anchor="start" x="441" y="-387.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ DataType()</text>
<text text-anchor="start" x="441" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ DataType()</text>
-<text text-anchor="start" x="441" y="-365.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ DataType()</text>
-<text text-anchor="start" x="441" y="-354.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ code()</text>
-<text text-anchor="start" x="441" y="-343.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ bits()</text>
-<text text-anchor="start" x="441" y="-332.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ bytes()</text>
-<text text-anchor="start" x="441" y="-321.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ lanes()</text>
-<text text-anchor="start" x="441" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ vscale_factor()</text>
-<text text-anchor="start" x="441" y="-299.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get_lanes_or_vscale</text>
-<text text-anchor="start" x="441" y="-288.5" font-family="Helvetica,sans-Serif" font-size="10.00">_factor()</text>
-<text text-anchor="start" x="441" y="-277.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ is_scalar()</text>
-<text text-anchor="start" x="441" y="-266.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 24 more...</text>
-<text text-anchor="start" x="441" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Int()</text>
-<text text-anchor="start" x="441" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ UInt()</text>
-<text text-anchor="start" x="441" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Float()</text>
-<text text-anchor="start" x="441" y="-222.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ BFloat()</text>
-<text text-anchor="start" x="441" y="-211.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat8E4M3()</text>
-<text text-anchor="start" x="441" y="-200.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat8E5M2()</text>
+<text text-anchor="start" x="441" y="-365.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ code()</text>
+<text text-anchor="start" x="441" y="-354.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ bits()</text>
+<text text-anchor="start" x="441" y="-343.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ bytes()</text>
+<text text-anchor="start" x="441" y="-332.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ lanes()</text>
+<text text-anchor="start" x="441" y="-321.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ vscale_factor()</text>
+<text text-anchor="start" x="441" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get_lanes_or_vscale</text>
+<text text-anchor="start" x="441" y="-299.5" font-family="Helvetica,sans-Serif" font-size="10.00">_factor()</text>
+<text text-anchor="start" x="441" y="-288.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ is_scalar()</text>
+<text text-anchor="start" x="441" y="-277.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 26 more...</text>
+<text text-anchor="start" x="441" y="-266.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Int()</text>
+<text text-anchor="start" x="441" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ UInt()</text>
+<text text-anchor="start" x="441" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Float()</text>
+<text text-anchor="start" x="441" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ BFloat()</text>
+<text text-anchor="start" x="441" y="-222.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat8E4M3()</text>
+<text text-anchor="start" x="441" y="-211.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat8E5M2()</text>
+<text text-anchor="start" x="441" y="-200.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat4E2M1()</text>
<text text-anchor="start" x="441" y="-189.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Bool()</text>
<text text-anchor="start" x="441" y="-178.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Handle()</text>
<text text-anchor="start" x="441" y="-167.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Void()</text>
@@ -242,8 +243,8 @@
<!-- Node7->Node1 -->
<g id="edge7" class="edge">
<title>Node7->Node1</title>
-<path fill="none" stroke="#404040" d="M432.95,-162.05C430.02,-157.59 427.03,-153.22 424,-149 414.62,-135.94 403.54,-122.88 392.37,-110.77"/>
-<polygon fill="none" stroke="#404040" points="392.06,-110.44 385.04,-108.82 383.84,-101.71 390.86,-103.33 392.06,-110.44"/>
+<path fill="none" stroke="#404040" d="M432.86,-162.14C429.97,-157.65 427.01,-153.26 424,-149 414.72,-135.87 403.69,-122.78 392.53,-110.65"/>
+<polygon fill="none" stroke="#404040" points="392.23,-110.33 385.2,-108.7 384,-101.59 391.03,-103.22 392.23,-110.33"/>
<text text-anchor="middle" x="428" y="-123" font-family="Helvetica,sans-Serif" font-size="10.00"> +dtype</text>
</g>
</g>
diff --git a/docs/reference/api/doxygen/classtvm_1_1relax_1_1DataTypeImmNode.html b/docs/reference/api/doxygen/classtvm_1_1relax_1_1DataTypeImmNode.html
index bae70d7b00..a33bb1cb92 100644
--- a/docs/reference/api/doxygen/classtvm_1_1relax_1_1DataTypeImmNode.html
+++ b/docs/reference/api/doxygen/classtvm_1_1relax_1_1DataTypeImmNode.html
@@ -88,7 +88,7 @@ Inheritance diagram for tvm::relax::DataTypeImmNode:</div>
<div class="dynheader">
Collaboration diagram for tvm::relax::DataTypeImmNode:</div>
<div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1relax_1_1DataTypeImmNode__coll__graph.svg" width="899" height="2462"><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_1relax_1_1DataTypeImmNode__coll__graph.svg" width="899" height="2476"><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">
diff --git a/docs/reference/api/doxygen/classtvm_1_1relax_1_1DataTypeImmNode__coll__graph.svg b/docs/reference/api/doxygen/classtvm_1_1relax_1_1DataTypeImmNode__coll__graph.svg
index c0728dce7d..2c2b6f2dc5 100644
--- a/docs/reference/api/doxygen/classtvm_1_1relax_1_1DataTypeImmNode__coll__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1relax_1_1DataTypeImmNode__coll__graph.svg
@@ -4,11 +4,11 @@
<!-- Generated by graphviz version 2.43.0 (0)
-->
<!-- Title: tvm::relax::DataTypeImmNode Pages: 1 -->
-<svg width="674pt" height="1846pt"
- viewBox="0.00 0.00 673.50 1846.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 1842)">
+<svg width="674pt" height="1857pt"
+ viewBox="0.00 0.00 673.50 1857.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 1853)">
<title>tvm::relax::DataTypeImmNode</title>
-<polygon fill="white" stroke="transparent" points="-4,4 -4,-1842 669.5,-1842 669.5,4 -4,4"/>
+<polygon fill="white" stroke="transparent" points="-4,4 -4,-1853 669.5,-1853 669.5,4 -4,4"/>
<!-- Node1 -->
<g id="node1" class="node">
<title>Node1</title>
@@ -30,215 +30,216 @@
<g id="node2" class="node">
<title>Node2</title>
<g id="a_node2"><a xlink:href="classtvm_1_1relax_1_1LeafExprNode.html" target="_top" xlink:title="Base type of all (non-function) leaf Exprs.">
-<polygon fill="white" stroke="black" points="339.5,-254 339.5,-333 512.5,-333 512.5,-254 339.5,-254"/>
-<text text-anchor="middle" x="426" y="-321" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::LeafExprNode</text>
-<polyline fill="none" stroke="black" points="339.5,-314 512.5,-314 "/>
-<text text-anchor="start" x="347.5" y="-302" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
-<text text-anchor="start" x="347.5" y="-291" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots</text>
-<polyline fill="none" stroke="black" points="339.5,-284 512.5,-284 "/>
-<text text-anchor="start" x="347.5" y="-272" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DECLARE_BASE_OBJECT</text>
-<text text-anchor="start" x="347.5" y="-261" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO()</text>
+<polygon fill="white" stroke="black" points="339.5,-259.5 339.5,-338.5 512.5,-338.5 512.5,-259.5 339.5,-259.5"/>
+<text text-anchor="middle" x="426" y="-326.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::LeafExprNode</text>
+<polyline fill="none" stroke="black" points="339.5,-319.5 512.5,-319.5 "/>
+<text text-anchor="start" x="347.5" y="-307.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
+<text text-anchor="start" x="347.5" y="-296.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots</text>
+<polyline fill="none" stroke="black" points="339.5,-289.5 512.5,-289.5 "/>
+<text text-anchor="start" x="347.5" y="-277.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DECLARE_BASE_OBJECT</text>
+<text text-anchor="start" x="347.5" y="-266.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO()</text>
</a>
</g>
</g>
<!-- Node2->Node1 -->
<g id="edge1" class="edge">
<title>Node2->Node1</title>
-<path fill="none" stroke="midnightblue" d="M443.04,-244.28C457.65,-202.94 478.62,-143.61 493.4,-101.81"/>
-<polygon fill="none" stroke="midnightblue" points="439.69,-243.26 439.66,-253.86 446.29,-245.6 439.69,-243.26"/>
+<path fill="none" stroke="midnightblue" d="M442.7,-249.66C457.49,-206.87 478.98,-144.67 493.89,-101.52"/>
+<polygon fill="none" stroke="midnightblue" points="439.33,-248.7 439.37,-259.29 445.95,-250.98 439.33,-248.7"/>
</g>
<!-- Node3 -->
<g id="node3" class="node">
<title>Node3</title>
<g id="a_node3"><a xlink:href="classtvm_1_1RelaxExprNode.html" target="_top" xlink:title="Base node of all non-primitive expressions.">
-<polygon fill="white" stroke="black" points="339.5,-475.5 339.5,-576.5 512.5,-576.5 512.5,-475.5 339.5,-475.5"/>
-<text text-anchor="middle" x="426" y="-564.5" font-family="Helvetica,sans-Serif" font-size="10.00">ExprNode</text>
-<polyline fill="none" stroke="black" points="339.5,-557.5 512.5,-557.5 "/>
-<text text-anchor="start" x="347.5" y="-545.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
-<text text-anchor="start" x="347.5" y="-534.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots</text>
-<polyline fill="none" stroke="black" points="339.5,-527.5 512.5,-527.5 "/>
-<text text-anchor="start" x="347.5" y="-515.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ checked_type()</text>
-<text text-anchor="start" x="347.5" y="-504.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ type_as()</text>
-<text text-anchor="start" x="347.5" y="-493.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DECLARE_BASE_OBJECT</text>
-<text text-anchor="start" x="347.5" y="-482.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO()</text>
+<polygon fill="white" stroke="black" points="339.5,-486.5 339.5,-587.5 512.5,-587.5 512.5,-486.5 339.5,-486.5"/>
+<text text-anchor="middle" x="426" y="-575.5" font-family="Helvetica,sans-Serif" font-size="10.00">ExprNode</text>
+<polyline fill="none" stroke="black" points="339.5,-568.5 512.5,-568.5 "/>
+<text text-anchor="start" x="347.5" y="-556.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
+<text text-anchor="start" x="347.5" y="-545.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots</text>
+<polyline fill="none" stroke="black" points="339.5,-538.5 512.5,-538.5 "/>
+<text text-anchor="start" x="347.5" y="-526.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ checked_type()</text>
+<text text-anchor="start" x="347.5" y="-515.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ type_as()</text>
+<text text-anchor="start" x="347.5" y="-504.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DECLARE_BASE_OBJECT</text>
+<text text-anchor="start" x="347.5" y="-493.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO()</text>
</a>
</g>
</g>
<!-- Node3->Node2 -->
<g id="edge2" class="edge">
<title>Node3->Node2</title>
-<path fill="none" stroke="midnightblue" d="M426,-465.24C426,-423.56 426,-369.17 426,-333.1"/>
-<polygon fill="none" stroke="midnightblue" points="422.5,-465.27 426,-475.27 429.5,-465.27 422.5,-465.27"/>
+<path fill="none" stroke="midnightblue" d="M426,-476.15C426,-433.03 426,-376.1 426,-338.79"/>
+<polygon fill="none" stroke="midnightblue" points="422.5,-476.24 426,-486.24 429.5,-476.24 422.5,-476.24"/>
</g>
<!-- Node4 -->
<g id="node4" class="node">
<title>Node4</title>
<g id="a_node4"><a xlink:href="classtvm_1_1BaseExprNode.html" target="_top" xlink:title="Base type of all the expressions.">
-<polygon fill="white" stroke="black" points="216.5,-614.5 216.5,-737.5 389.5,-737.5 389.5,-614.5 216.5,-614.5"/>
-<text text-anchor="middle" x="303" y="-725.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::BaseExprNode</text>
-<polyline fill="none" stroke="black" points="216.5,-718.5 389.5,-718.5 "/>
-<text text-anchor="start" x="224.5" y="-706.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
-<text text-anchor="start" x="224.5" y="-695.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_sequal</text>
-<text text-anchor="start" x="224.5" y="-684.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
-<text text-anchor="start" x="224.5" y="-673.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_shash</text>
-<text text-anchor="start" x="224.5" y="-662.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
-<text text-anchor="start" x="224.5" y="-651.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots</text>
-<polyline fill="none" stroke="black" points="216.5,-644.5 389.5,-644.5 "/>
-<text text-anchor="start" x="224.5" y="-632.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DECLARE_BASE_OBJECT</text>
-<text text-anchor="start" x="224.5" y="-621.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO()</text>
+<polygon fill="white" stroke="black" points="216.5,-625.5 216.5,-748.5 389.5,-748.5 389.5,-625.5 216.5,-625.5"/>
+<text text-anchor="middle" x="303" y="-736.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::BaseExprNode</text>
+<polyline fill="none" stroke="black" points="216.5,-729.5 389.5,-729.5 "/>
+<text text-anchor="start" x="224.5" y="-717.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
+<text text-anchor="start" x="224.5" y="-706.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_sequal</text>
+<text text-anchor="start" x="224.5" y="-695.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
+<text text-anchor="start" x="224.5" y="-684.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_shash</text>
+<text text-anchor="start" x="224.5" y="-673.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
+<text text-anchor="start" x="224.5" y="-662.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots</text>
+<polyline fill="none" stroke="black" points="216.5,-655.5 389.5,-655.5 "/>
+<text text-anchor="start" x="224.5" y="-643.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DECLARE_BASE_OBJECT</text>
+<text text-anchor="start" x="224.5" y="-632.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO()</text>
</a>
</g>
</g>
<!-- Node4->Node3 -->
<g id="edge3" class="edge">
<title>Node4->Node3</title>
-<path fill="none" stroke="midnightblue" d="M359.98,-606.44C368.25,-596.49 376.63,-586.41 384.51,-576.92"/>
-<polygon fill="none" stroke="midnightblue" points="357.08,-604.45 353.38,-614.38 362.47,-608.92 357.08,-604.45"/>
+<path fill="none" stroke="midnightblue" d="M359.98,-617.44C368.25,-607.49 376.63,-597.41 384.51,-587.92"/>
+<polygon fill="none" stroke="midnightblue" points="357.08,-615.45 353.38,-625.38 362.47,-619.92 357.08,-615.45"/>
</g>
<!-- Node5 -->
<g id="node5" class="node">
<title>Node5</title>
<g id="a_node5"><a xlink:href="classtvm_1_1runtime_1_1Object.html" target="_top" xlink:title="base class of all object containers.">
-<polygon fill="white" stroke="black" points="0,-953.5 0,-1340.5 184,-1340.5 184,-953.5 0,-953.5"/>
-<text text-anchor="middle" x="92" y="-1328.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::Object</text>
-<polyline fill="none" stroke="black" points="0,-1321.5 184,-1321.5 "/>
-<text text-anchor="start" x="8" y="-1309.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
-<text text-anchor="start" x="8" y="-1298.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_final</text>
-<text text-anchor="start" x="8" y="-1287.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots</text>
-<text text-anchor="start" x="8" y="-1276.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots_can</text>
-<text text-anchor="start" x="8" y="-1265.5" font-family="Helvetica,sans-Serif" font-size="10.00">_overflow</text>
-<text text-anchor="start" x="8" y="-1254.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_visit</text>
-<text text-anchor="start" x="8" y="-1243.5" font-family="Helvetica,sans-Serif" font-size="10.00">_attrs</text>
-<text text-anchor="start" x="8" y="-1232.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_sequal</text>
-<text text-anchor="start" x="8" y="-1221.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
-<text text-anchor="start" x="8" y="-1210.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_shash</text>
-<text text-anchor="start" x="8" y="-1199.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
-<text text-anchor="start" x="8" y="-1188.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_index</text>
-<text text-anchor="start" x="8" y="-1177.5" font-family="Helvetica,sans-Serif" font-size="10.00"># type_index_</text>
-<text text-anchor="start" x="8" y="-1166.5" font-family="Helvetica,sans-Serif" font-size="10.00"># ref_counter_</text>
-<polyline fill="none" stroke="black" points="0,-1159.5 184,-1159.5 "/>
-<text text-anchor="start" x="8" y="-1147.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ type_index()</text>
-<text text-anchor="start" x="8" y="-1136.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ GetTypeKey()</text>
-<text text-anchor="start" x="8" y="-1125.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ GetTypeKeyHash()</text>
-<text text-anchor="start" x="8" y="-1114.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ IsInstance()</text>
-<text text-anchor="start" x="8" y="-1103.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ unique()</text>
+<polygon fill="white" stroke="black" points="0,-964.5 0,-1351.5 184,-1351.5 184,-964.5 0,-964.5"/>
+<text text-anchor="middle" x="92" y="-1339.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::Object</text>
+<polyline fill="none" stroke="black" points="0,-1332.5 184,-1332.5 "/>
+<text text-anchor="start" x="8" y="-1320.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
+<text text-anchor="start" x="8" y="-1309.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_final</text>
+<text text-anchor="start" x="8" y="-1298.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots</text>
+<text text-anchor="start" x="8" y="-1287.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots_can</text>
+<text text-anchor="start" x="8" y="-1276.5" font-family="Helvetica,sans-Serif" font-size="10.00">_overflow</text>
+<text text-anchor="start" x="8" y="-1265.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_visit</text>
+<text text-anchor="start" x="8" y="-1254.5" font-family="Helvetica,sans-Serif" font-size="10.00">_attrs</text>
+<text text-anchor="start" x="8" y="-1243.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_sequal</text>
+<text text-anchor="start" x="8" y="-1232.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
+<text text-anchor="start" x="8" y="-1221.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_shash</text>
+<text text-anchor="start" x="8" y="-1210.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
+<text text-anchor="start" x="8" y="-1199.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_index</text>
+<text text-anchor="start" x="8" y="-1188.5" font-family="Helvetica,sans-Serif" font-size="10.00"># type_index_</text>
+<text text-anchor="start" x="8" y="-1177.5" font-family="Helvetica,sans-Serif" font-size="10.00"># ref_counter_</text>
+<polyline fill="none" stroke="black" points="0,-1170.5 184,-1170.5 "/>
+<text text-anchor="start" x="8" y="-1158.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ type_index()</text>
+<text text-anchor="start" x="8" y="-1147.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ GetTypeKey()</text>
+<text text-anchor="start" x="8" y="-1136.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ GetTypeKeyHash()</text>
+<text text-anchor="start" x="8" y="-1125.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ IsInstance()</text>
+<text text-anchor="start" x="8" y="-1114.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ unique()</text>
+<text text-anchor="start" x="8" y="-1103.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Object()</text>
<text text-anchor="start" x="8" y="-1092.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Object()</text>
<text text-anchor="start" x="8" y="-1081.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Object()</text>
-<text text-anchor="start" x="8" y="-1070.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Object()</text>
+<text text-anchor="start" x="8" y="-1070.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
<text text-anchor="start" x="8" y="-1059.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
-<text text-anchor="start" x="8" y="-1048.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
-<text text-anchor="start" x="8" y="-1037.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeIndex2Key()</text>
-<text text-anchor="start" x="8" y="-1026.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeIndex2KeyHash()</text>
-<text text-anchor="start" x="8" y="-1015.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeKey2Index()</text>
-<text text-anchor="start" x="8" y="-1004.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _GetOrAllocRuntimeTypeIndex()</text>
-<text text-anchor="start" x="8" y="-993.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RuntimeTypeIndex()</text>
-<text text-anchor="start" x="8" y="-982.5" font-family="Helvetica,sans-Serif" font-size="10.00"># IncRef()</text>
-<text text-anchor="start" x="8" y="-971.5" font-family="Helvetica,sans-Serif" font-size="10.00"># DecRef()</text>
-<text text-anchor="start" x="8" y="-960.5" font-family="Helvetica,sans-Serif" font-size="10.00"># GetOrAllocRuntimeTypeIndex()</text>
+<text text-anchor="start" x="8" y="-1048.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeIndex2Key()</text>
+<text text-anchor="start" x="8" y="-1037.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeIndex2KeyHash()</text>
+<text text-anchor="start" x="8" y="-1026.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeKey2Index()</text>
+<text text-anchor="start" x="8" y="-1015.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _GetOrAllocRuntimeTypeIndex()</text>
+<text text-anchor="start" x="8" y="-1004.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RuntimeTypeIndex()</text>
+<text text-anchor="start" x="8" y="-993.5" font-family="Helvetica,sans-Serif" font-size="10.00"># IncRef()</text>
+<text text-anchor="start" x="8" y="-982.5" font-family="Helvetica,sans-Serif" font-size="10.00"># DecRef()</text>
+<text text-anchor="start" x="8" y="-971.5" font-family="Helvetica,sans-Serif" font-size="10.00"># GetOrAllocRuntimeTypeIndex()</text>
</a>
</g>
</g>
<!-- Node5->Node4 -->
<g id="edge4" class="edge">
<title>Node5->Node4</title>
-<path fill="none" stroke="midnightblue" d="M183.03,-943.67C216.58,-869.09 252.12,-790.09 275.73,-737.61"/>
-<polygon fill="none" stroke="midnightblue" points="179.65,-942.65 178.74,-953.21 186.03,-945.53 179.65,-942.65"/>
+<path fill="none" stroke="midnightblue" d="M183.03,-954.67C216.58,-880.09 252.12,-801.09 275.73,-748.61"/>
+<polygon fill="none" stroke="midnightblue" points="179.65,-953.65 178.74,-964.21 186.03,-956.53 179.65,-953.65"/>
</g>
<!-- Node5->Node5 -->
<g id="edge5" class="edge">
<title>Node5->Node5</title>
-<path fill="none" stroke="#404040" d="M184.28,-1180.92C195.02,-1174.66 202,-1163.36 202,-1147 202,-1136.01 198.85,-1127.3 193.52,-1120.87"/>
-<polygon fill="none" stroke="#404040" points="193.46,-1120.81 186.29,-1120 184.28,-1113.08 191.45,-1113.89 193.46,-1120.81"/>
-<text text-anchor="middle" x="228" y="-1144.5" font-family="Helvetica,sans-Serif" font-size="10.00"> #deleter_</text>
+<path fill="none" stroke="#404040" d="M184.28,-1191.92C195.02,-1185.66 202,-1174.36 202,-1158 202,-1147.01 198.85,-1138.3 193.52,-1131.87"/>
+<polygon fill="none" stroke="#404040" points="193.46,-1131.81 186.29,-1131 184.28,-1124.08 191.45,-1124.89 193.46,-1131.81"/>
+<text text-anchor="middle" x="228" y="-1155.5" font-family="Helvetica,sans-Serif" font-size="10.00"> #deleter_</text>
</g>
<!-- Node6 -->
<g id="node6" class="node">
<title>Node6</title>
<g id="a_node6"><a xlink:href="classtvm_1_1Span.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="272,-1102 272,-1192 428,-1192 428,-1102 272,-1102"/>
-<text text-anchor="middle" x="350" y="-1180" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::Span</text>
-<polyline fill="none" stroke="black" points="272,-1173 428,-1173 "/>
-<text text-anchor="middle" x="350" y="-1161" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="272,-1154 428,-1154 "/>
-<text text-anchor="start" x="280" y="-1142" font-family="Helvetica,sans-Serif" font-size="10.00">+ Span()</text>
-<text text-anchor="start" x="280" y="-1131" font-family="Helvetica,sans-Serif" font-size="10.00">+ Merge()</text>
-<text text-anchor="start" x="280" y="-1120" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="280" y="-1109" font-family="Helvetica,sans-Serif" font-size="10.00">_METHODS()</text>
+<polygon fill="white" stroke="black" points="272,-1113 272,-1203 428,-1203 428,-1113 272,-1113"/>
+<text text-anchor="middle" x="350" y="-1191" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::Span</text>
+<polyline fill="none" stroke="black" points="272,-1184 428,-1184 "/>
+<text text-anchor="middle" x="350" y="-1172" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="272,-1165 428,-1165 "/>
+<text text-anchor="start" x="280" y="-1153" font-family="Helvetica,sans-Serif" font-size="10.00">+ Span()</text>
+<text text-anchor="start" x="280" y="-1142" font-family="Helvetica,sans-Serif" font-size="10.00">+ Merge()</text>
+<text text-anchor="start" x="280" y="-1131" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="280" y="-1120" font-family="Helvetica,sans-Serif" font-size="10.00">_METHODS()</text>
</a>
</g>
</g>
<!-- Node6->Node4 -->
<g id="edge6" class="edge">
<title>Node6->Node4</title>
-<path fill="none" stroke="#404040" d="M337.13,-1101.61C325.56,-1059.24 309.42,-993.38 303,-935 296.15,-872.76 296.78,-801.56 298.77,-749.75"/>
-<polygon fill="none" stroke="#404040" points="298.77,-749.66 295.02,-743.5 299.27,-737.67 303.02,-743.84 298.77,-749.66"/>
-<text text-anchor="middle" x="320.5" y="-843" font-family="Helvetica,sans-Serif" font-size="10.00"> +span</text>
+<path fill="none" stroke="#404040" d="M337.13,-1112.61C325.56,-1070.24 309.42,-1004.38 303,-946 296.15,-883.76 296.78,-812.56 298.77,-760.75"/>
+<polygon fill="none" stroke="#404040" points="298.77,-760.66 295.02,-754.5 299.27,-748.67 303.02,-754.84 298.77,-760.66"/>
+<text text-anchor="middle" x="320.5" y="-854" font-family="Helvetica,sans-Serif" font-size="10.00"> +span</text>
</g>
<!-- Node7 -->
<g id="node7" class="node">
<title>Node7</title>
<g id="a_node7"><a xlink:href="classtvm_1_1runtime_1_1ObjectRef.html" target="_top" xlink:title="Base class of all object reference.">
-<polygon fill="white" stroke="black" points="389,-1378.5 389,-1611.5 523,-1611.5 523,-1378.5 389,-1378.5"/>
-<text text-anchor="middle" x="456" y="-1599.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::ObjectRef</text>
-<polyline fill="none" stroke="black" points="389,-1592.5 523,-1592.5 "/>
-<text text-anchor="start" x="397" y="-1580.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_is_nullable</text>
-<polyline fill="none" stroke="black" points="389,-1573.5 523,-1573.5 "/>
+<polygon fill="white" stroke="black" points="389,-1389.5 389,-1622.5 523,-1622.5 523,-1389.5 389,-1389.5"/>
+<text text-anchor="middle" x="456" y="-1610.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::ObjectRef</text>
+<polyline fill="none" stroke="black" points="389,-1603.5 523,-1603.5 "/>
+<text text-anchor="start" x="397" y="-1591.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_is_nullable</text>
+<polyline fill="none" stroke="black" points="389,-1584.5 523,-1584.5 "/>
+<text text-anchor="start" x="397" y="-1572.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectRef()</text>
<text text-anchor="start" x="397" y="-1561.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectRef()</text>
-<text text-anchor="start" x="397" y="-1550.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectRef()</text>
-<text text-anchor="start" x="397" y="-1539.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ same_as()</text>
-<text text-anchor="start" x="397" y="-1528.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator==()</text>
-<text text-anchor="start" x="397" y="-1517.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator!=()</text>
-<text text-anchor="start" x="397" y="-1506.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator<()</text>
-<text text-anchor="start" x="397" y="-1495.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ defined()</text>
-<text text-anchor="start" x="397" y="-1484.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get()</text>
-<text text-anchor="start" x="397" y="-1473.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator->()</text>
-<text text-anchor="start" x="397" y="-1462.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ unique()</text>
-<text text-anchor="start" x="397" y="-1451.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ use_count()</text>
+<text text-anchor="start" x="397" y="-1550.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ same_as()</text>
+<text text-anchor="start" x="397" y="-1539.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator==()</text>
+<text text-anchor="start" x="397" y="-1528.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator!=()</text>
+<text text-anchor="start" x="397" y="-1517.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator<()</text>
+<text text-anchor="start" x="397" y="-1506.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ defined()</text>
+<text text-anchor="start" x="397" y="-1495.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get()</text>
+<text text-anchor="start" x="397" y="-1484.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator->()</text>
+<text text-anchor="start" x="397" y="-1473.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ unique()</text>
+<text text-anchor="start" x="397" y="-1462.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ use_count()</text>
+<text text-anchor="start" x="397" y="-1451.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ as()</text>
<text text-anchor="start" x="397" y="-1440.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ as()</text>
-<text text-anchor="start" x="397" y="-1429.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ as()</text>
-<text text-anchor="start" x="397" y="-1418.5" font-family="Helvetica,sans-Serif" font-size="10.00"># get_mutable()</text>
-<text text-anchor="start" x="397" y="-1407.5" font-family="Helvetica,sans-Serif" font-size="10.00"># DowncastNoCheck()</text>
-<text text-anchor="start" x="397" y="-1396.5" font-family="Helvetica,sans-Serif" font-size="10.00"># FFIClearAfterMove()</text>
-<text text-anchor="start" x="397" y="-1385.5" font-family="Helvetica,sans-Serif" font-size="10.00"># GetDataPtr()</text>
+<text text-anchor="start" x="397" y="-1429.5" font-family="Helvetica,sans-Serif" font-size="10.00"># get_mutable()</text>
+<text text-anchor="start" x="397" y="-1418.5" font-family="Helvetica,sans-Serif" font-size="10.00"># DowncastNoCheck()</text>
+<text text-anchor="start" x="397" y="-1407.5" font-family="Helvetica,sans-Serif" font-size="10.00"># FFIClearAfterMove()</text>
+<text text-anchor="start" x="397" y="-1396.5" font-family="Helvetica,sans-Serif" font-size="10.00"># GetDataPtr()</text>
</a>
</g>
</g>
<!-- Node7->Node6 -->
<g id="edge7" class="edge">
<title>Node7->Node6</title>
-<path fill="none" stroke="midnightblue" d="M417.55,-1368.49C398.67,-1306.86 377.11,-1236.5 363.53,-1192.17"/>
-<polygon fill="none" stroke="midnightblue" points="414.28,-1369.77 420.56,-1378.31 420.97,-1367.72 414.28,-1369.77"/>
+<path fill="none" stroke="midnightblue" d="M417.55,-1379.49C398.67,-1317.86 377.11,-1247.5 363.53,-1203.17"/>
+<polygon fill="none" stroke="midnightblue" points="414.28,-1380.77 420.56,-1389.31 420.97,-1378.72 414.28,-1380.77"/>
</g>
<!-- Node9 -->
<g id="node9" class="node">
<title>Node9</title>
<g id="a_node9"><a xlink:href="classtvm_1_1Type.html" target="_top" xlink:title="Managed reference to TypeNode.">
-<polygon fill="white" stroke="black" points="347,-811.5 347,-879.5 503,-879.5 503,-811.5 347,-811.5"/>
-<text text-anchor="middle" x="425" y="-867.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::Type</text>
-<polyline fill="none" stroke="black" points="347,-860.5 503,-860.5 "/>
-<text text-anchor="middle" x="425" y="-848.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="347,-841.5 503,-841.5 "/>
-<text text-anchor="start" x="355" y="-829.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="355" y="-818.5" font-family="Helvetica,sans-Serif" font-size="10.00">_METHODS()</text>
+<polygon fill="white" stroke="black" points="347,-822.5 347,-890.5 503,-890.5 503,-822.5 347,-822.5"/>
+<text text-anchor="middle" x="425" y="-878.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::Type</text>
+<polyline fill="none" stroke="black" points="347,-871.5 503,-871.5 "/>
+<text text-anchor="middle" x="425" y="-859.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="347,-852.5 503,-852.5 "/>
+<text text-anchor="start" x="355" y="-840.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="355" y="-829.5" font-family="Helvetica,sans-Serif" font-size="10.00">_METHODS()</text>
</a>
</g>
</g>
<!-- Node7->Node9 -->
<g id="edge10" class="edge">
<title>Node7->Node9</title>
-<path fill="none" stroke="midnightblue" d="M454.33,-1368.18C452.21,-1258.44 447.48,-1095.01 437,-953 435.18,-928.32 432.01,-900.54 429.39,-879.54"/>
-<polygon fill="none" stroke="midnightblue" points="450.83,-1368.37 454.52,-1378.3 457.83,-1368.24 450.83,-1368.37"/>
+<path fill="none" stroke="midnightblue" d="M454.33,-1379.18C452.21,-1269.44 447.48,-1106.01 437,-964 435.18,-939.32 432.01,-911.54 429.39,-890.54"/>
+<polygon fill="none" stroke="midnightblue" points="450.83,-1379.37 454.52,-1389.3 457.83,-1379.24 450.83,-1379.37"/>
</g>
<!-- Node10 -->
<g id="node10" class="node">
<title>Node10</title>
<g id="a_node10"><a xlink:href="classtvm_1_1runtime_1_1Optional.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="508.5,-756.5 508.5,-934.5 665.5,-934.5 665.5,-756.5 508.5,-756.5"/>
-<text text-anchor="start" x="516.5" y="-922.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::Optional</text>
-<text text-anchor="middle" x="587" y="-911.5" font-family="Helvetica,sans-Serif" font-size="10.00">< tvm::runtime::ObjectRef ></text>
-<polyline fill="none" stroke="black" points="508.5,-904.5 665.5,-904.5 "/>
-<text text-anchor="start" x="516.5" y="-892.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_is_nullable</text>
-<polyline fill="none" stroke="black" points="508.5,-885.5 665.5,-885.5 "/>
+<polygon fill="white" stroke="black" points="508.5,-767.5 508.5,-945.5 665.5,-945.5 665.5,-767.5 508.5,-767.5"/>
+<text text-anchor="start" x="516.5" y="-933.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::Optional</text>
+<text text-anchor="middle" x="587" y="-922.5" font-family="Helvetica,sans-Serif" font-size="10.00">< tvm::runtime::ObjectRef ></text>
+<polyline fill="none" stroke="black" points="508.5,-915.5 665.5,-915.5 "/>
+<text text-anchor="start" x="516.5" y="-903.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_is_nullable</text>
+<polyline fill="none" stroke="black" points="508.5,-896.5 665.5,-896.5 "/>
+<text text-anchor="start" x="516.5" y="-884.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Optional()</text>
<text text-anchor="start" x="516.5" y="-873.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Optional()</text>
<text text-anchor="start" x="516.5" y="-862.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Optional()</text>
<text text-anchor="start" x="516.5" y="-851.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Optional()</text>
@@ -246,91 +247,91 @@
<text text-anchor="start" x="516.5" y="-829.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Optional()</text>
<text text-anchor="start" x="516.5" y="-818.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Optional()</text>
<text text-anchor="start" x="516.5" y="-807.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Optional()</text>
-<text text-anchor="start" x="516.5" y="-796.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Optional()</text>
+<text text-anchor="start" x="516.5" y="-796.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
<text text-anchor="start" x="516.5" y="-785.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
-<text text-anchor="start" x="516.5" y="-774.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
-<text text-anchor="start" x="516.5" y="-763.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 15 more...</text>
+<text text-anchor="start" x="516.5" y="-774.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 15 more...</text>
</a>
</g>
</g>
<!-- Node7->Node10 -->
<g id="edge12" class="edge">
<title>Node7->Node10</title>
-<path fill="none" stroke="midnightblue" d="M481.41,-1368.42C507.2,-1240.94 546.47,-1046.85 569.14,-934.77"/>
-<polygon fill="none" stroke="midnightblue" points="477.97,-1367.74 479.42,-1378.24 484.83,-1369.13 477.97,-1367.74"/>
+<path fill="none" stroke="midnightblue" d="M481.41,-1379.42C507.2,-1251.94 546.47,-1057.85 569.14,-945.77"/>
+<polygon fill="none" stroke="midnightblue" points="477.97,-1378.74 479.42,-1389.24 484.83,-1380.13 477.97,-1378.74"/>
</g>
<!-- Node8 -->
<g id="node8" class="node">
<title>Node8</title>
<g id="a_node8"><a xlink:href="classtvm_1_1runtime_1_1ObjectPtr.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="386,-1659.5 386,-1837.5 526,-1837.5 526,-1659.5 386,-1659.5"/>
-<text text-anchor="start" x="394" y="-1825.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::ObjectPtr</text>
-<text text-anchor="middle" x="456" y="-1814.5" font-family="Helvetica,sans-Serif" font-size="10.00">< tvm::runtime::Object ></text>
-<polyline fill="none" stroke="black" points="386,-1807.5 526,-1807.5 "/>
-<text text-anchor="middle" x="456" y="-1795.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="386,-1788.5 526,-1788.5 "/>
+<polygon fill="white" stroke="black" points="386,-1670.5 386,-1848.5 526,-1848.5 526,-1670.5 386,-1670.5"/>
+<text text-anchor="start" x="394" y="-1836.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::ObjectPtr</text>
+<text text-anchor="middle" x="456" y="-1825.5" font-family="Helvetica,sans-Serif" font-size="10.00">< tvm::runtime::Object ></text>
+<polyline fill="none" stroke="black" points="386,-1818.5 526,-1818.5 "/>
+<text text-anchor="middle" x="456" y="-1806.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="386,-1799.5 526,-1799.5 "/>
+<text text-anchor="start" x="394" y="-1787.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="394" y="-1776.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="394" y="-1765.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="394" y="-1754.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="394" y="-1743.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="394" y="-1732.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
-<text text-anchor="start" x="394" y="-1721.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
-<text text-anchor="start" x="394" y="-1710.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ~ObjectPtr()</text>
-<text text-anchor="start" x="394" y="-1699.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ swap()</text>
-<text text-anchor="start" x="394" y="-1688.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get()</text>
-<text text-anchor="start" x="394" y="-1677.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator->()</text>
-<text text-anchor="start" x="394" y="-1666.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 11 more...</text>
+<text text-anchor="start" x="394" y="-1721.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ~ObjectPtr()</text>
+<text text-anchor="start" x="394" y="-1710.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ swap()</text>
+<text text-anchor="start" x="394" y="-1699.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get()</text>
+<text text-anchor="start" x="394" y="-1688.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator->()</text>
+<text text-anchor="start" x="394" y="-1677.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 11 more...</text>
</a>
</g>
</g>
<!-- Node8->Node7 -->
<g id="edge8" class="edge">
<title>Node8->Node7</title>
-<path fill="none" stroke="#404040" d="M456,-1659.18C456,-1647.84 456,-1636.05 456,-1624.23"/>
-<polygon fill="none" stroke="#404040" points="456,-1623.91 452,-1617.91 456,-1611.91 460,-1617.91 456,-1623.91"/>
-<text text-anchor="middle" x="475.5" y="-1633" font-family="Helvetica,sans-Serif" font-size="10.00"> #data_</text>
+<path fill="none" stroke="#404040" d="M456,-1670.18C456,-1658.84 456,-1647.05 456,-1635.23"/>
+<polygon fill="none" stroke="#404040" points="456,-1634.91 452,-1628.91 456,-1622.91 460,-1628.91 456,-1634.91"/>
+<text text-anchor="middle" x="475.5" y="-1644" font-family="Helvetica,sans-Serif" font-size="10.00"> #data_</text>
</g>
<!-- Node9->Node3 -->
<g id="edge9" class="edge">
<title>Node9->Node3</title>
-<path fill="none" stroke="#404040" d="M425.1,-811.42C425.27,-758.9 425.6,-655.57 425.8,-588.98"/>
-<polygon fill="none" stroke="#404040" points="425.81,-588.59 421.82,-582.57 425.84,-576.59 429.82,-582.6 425.81,-588.59"/>
-<text text-anchor="middle" x="468" y="-673.5" font-family="Helvetica,sans-Serif" font-size="10.00"> +checked_type_</text>
+<path fill="none" stroke="#404040" d="M425.1,-822.42C425.27,-769.9 425.6,-666.57 425.8,-599.98"/>
+<polygon fill="none" stroke="#404040" points="425.81,-599.59 421.82,-593.57 425.84,-587.59 429.82,-593.6 425.81,-599.59"/>
+<text text-anchor="middle" x="468" y="-684.5" font-family="Helvetica,sans-Serif" font-size="10.00"> +checked_type_</text>
</g>
<!-- Node10->Node3 -->
<g id="edge11" class="edge">
<title>Node10->Node3</title>
-<path fill="none" stroke="#404040" d="M569.69,-756.23C558.33,-711.42 540.56,-657.42 514,-614 508.01,-604.21 500.69,-594.71 492.85,-585.81"/>
-<polygon fill="none" stroke="#404040" points="492.65,-585.6 485.65,-583.9 484.52,-576.77 491.53,-578.48 492.65,-585.6"/>
-<text text-anchor="middle" x="598.5" y="-673.5" font-family="Helvetica,sans-Serif" font-size="10.00"> +struct_info_</text>
+<path fill="none" stroke="#404040" d="M569.69,-767.23C558.33,-722.42 540.56,-668.42 514,-625 508.01,-615.21 500.69,-605.71 492.85,-596.81"/>
+<polygon fill="none" stroke="#404040" points="492.65,-596.6 485.65,-594.9 484.52,-587.77 491.53,-589.48 492.65,-596.6"/>
+<text text-anchor="middle" x="598.5" y="-684.5" font-family="Helvetica,sans-Serif" font-size="10.00"> +struct_info_</text>
</g>
<!-- Node11 -->
<g id="node11" class="node">
<title>Node11</title>
<g id="a_node11"><a xlink:href="classtvm_1_1runtime_1_1DataType.html" target="_top" xlink:title="Runtime primitive data type.">
-<polygon fill="white" stroke="black" points="531,-149.5 531,-437.5 663,-437.5 663,-149.5 531,-149.5"/>
-<text text-anchor="middle" x="597" y="-425.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::DataType</text>
-<polyline fill="none" stroke="black" points="531,-418.5 663,-418.5 "/>
-<text text-anchor="middle" x="597" y="-406.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="531,-399.5 663,-399.5 "/>
+<polygon fill="white" stroke="black" points="531,-149.5 531,-448.5 663,-448.5 663,-149.5 531,-149.5"/>
+<text text-anchor="middle" x="597" y="-436.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::DataType</text>
+<polyline fill="none" stroke="black" points="531,-429.5 663,-429.5 "/>
+<text text-anchor="middle" x="597" y="-417.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="531,-410.5 663,-410.5 "/>
+<text text-anchor="start" x="539" y="-398.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ DataType()</text>
<text text-anchor="start" x="539" y="-387.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ DataType()</text>
<text text-anchor="start" x="539" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ DataType()</text>
-<text text-anchor="start" x="539" y="-365.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ DataType()</text>
-<text text-anchor="start" x="539" y="-354.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ code()</text>
-<text text-anchor="start" x="539" y="-343.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ bits()</text>
-<text text-anchor="start" x="539" y="-332.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ bytes()</text>
-<text text-anchor="start" x="539" y="-321.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ lanes()</text>
-<text text-anchor="start" x="539" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ vscale_factor()</text>
-<text text-anchor="start" x="539" y="-299.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get_lanes_or_vscale</text>
-<text text-anchor="start" x="539" y="-288.5" font-family="Helvetica,sans-Serif" font-size="10.00">_factor()</text>
-<text text-anchor="start" x="539" y="-277.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ is_scalar()</text>
-<text text-anchor="start" x="539" y="-266.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 24 more...</text>
-<text text-anchor="start" x="539" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Int()</text>
-<text text-anchor="start" x="539" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ UInt()</text>
-<text text-anchor="start" x="539" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Float()</text>
-<text text-anchor="start" x="539" y="-222.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ BFloat()</text>
-<text text-anchor="start" x="539" y="-211.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat8E4M3()</text>
-<text text-anchor="start" x="539" y="-200.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat8E5M2()</text>
+<text text-anchor="start" x="539" y="-365.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ code()</text>
+<text text-anchor="start" x="539" y="-354.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ bits()</text>
+<text text-anchor="start" x="539" y="-343.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ bytes()</text>
+<text text-anchor="start" x="539" y="-332.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ lanes()</text>
+<text text-anchor="start" x="539" y="-321.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ vscale_factor()</text>
+<text text-anchor="start" x="539" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get_lanes_or_vscale</text>
+<text text-anchor="start" x="539" y="-299.5" font-family="Helvetica,sans-Serif" font-size="10.00">_factor()</text>
+<text text-anchor="start" x="539" y="-288.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ is_scalar()</text>
+<text text-anchor="start" x="539" y="-277.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 26 more...</text>
+<text text-anchor="start" x="539" y="-266.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Int()</text>
+<text text-anchor="start" x="539" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ UInt()</text>
+<text text-anchor="start" x="539" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Float()</text>
+<text text-anchor="start" x="539" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ BFloat()</text>
+<text text-anchor="start" x="539" y="-222.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat8E4M3()</text>
+<text text-anchor="start" x="539" y="-211.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat8E5M2()</text>
+<text text-anchor="start" x="539" y="-200.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat4E2M1()</text>
<text text-anchor="start" x="539" y="-189.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Bool()</text>
<text text-anchor="start" x="539" y="-178.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Handle()</text>
<text text-anchor="start" x="539" y="-167.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Void()</text>
@@ -341,9 +342,9 @@
<!-- Node11->Node1 -->
<g id="edge13" class="edge">
<title>Node11->Node1</title>
-<path fill="none" stroke="#404040" d="M545.86,-149.47C541.33,-136.82 536.93,-124.52 532.87,-113.15"/>
-<polygon fill="none" stroke="#404040" points="532.8,-112.97 527.02,-108.67 528.76,-101.67 534.55,-105.98 532.8,-112.97"/>
-<text text-anchor="middle" x="558.5" y="-123" font-family="Helvetica,sans-Serif" font-size="10.00"> +value</text>
+<path fill="none" stroke="#404040" d="M544.99,-149.23C540.58,-136.61 536.3,-124.37 532.35,-113.08"/>
+<polygon fill="none" stroke="#404040" points="532.32,-113 526.57,-108.65 528.36,-101.67 534.12,-106.01 532.32,-113"/>
+<text text-anchor="middle" x="556.5" y="-123" font-family="Helvetica,sans-Serif" font-size="10.00"> +value</text>
</g>
</g>
</svg>
diff --git a/docs/reference/api/doxygen/classtvm_1_1relax_1_1DataTypePatternNode.html b/docs/reference/api/doxygen/classtvm_1_1relax_1_1DataTypePatternNode.html
index 3fa8fb3292..8dc88a6501 100644
--- a/docs/reference/api/doxygen/classtvm_1_1relax_1_1DataTypePatternNode.html
+++ b/docs/reference/api/doxygen/classtvm_1_1relax_1_1DataTypePatternNode.html
@@ -88,7 +88,7 @@ Inheritance diagram for tvm::relax::DataTypePatternNode:</div>
<div class="dynheader">
Collaboration diagram for tvm::relax::DataTypePatternNode:</div>
<div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1relax_1_1DataTypePatternNode__coll__graph.svg" width="756" height="1434"><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_1relax_1_1DataTypePatternNode__coll__graph.svg" width="756" height="1448"><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">
diff --git a/docs/reference/api/doxygen/classtvm_1_1relax_1_1DataTypePatternNode__coll__graph.svg b/docs/reference/api/doxygen/classtvm_1_1relax_1_1DataTypePatternNode__coll__graph.svg
index a4f98745f9..df00c33930 100644
--- a/docs/reference/api/doxygen/classtvm_1_1relax_1_1DataTypePatternNode__coll__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1relax_1_1DataTypePatternNode__coll__graph.svg
@@ -4,11 +4,11 @@
<!-- Generated by graphviz version 2.43.0 (0)
-->
<!-- Title: tvm::relax::DataTypePatternNode Pages: 1 -->
-<svg width="567pt" height="1075pt"
- viewBox="0.00 0.00 567.00 1075.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 1071)">
+<svg width="567pt" height="1086pt"
+ viewBox="0.00 0.00 567.00 1086.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 1082)">
<title>tvm::relax::DataTypePatternNode</title>
-<polygon fill="white" stroke="transparent" points="-4,4 -4,-1071 563,-1071 563,4 -4,4"/>
+<polygon fill="white" stroke="transparent" points="-4,4 -4,-1082 563,-1082 563,4 -4,4"/>
<!-- Node1 -->
<g id="node1" class="node">
<title>Node1</title>
@@ -28,206 +28,207 @@
<g id="node2" class="node">
<title>Node2</title>
<g id="a_node2"><a xlink:href="classtvm_1_1relax_1_1DFPatternNode.html" target="_top" xlink:title="Base type of all dataflow patterns.">
-<polygon fill="white" stroke="black" points="53.5,-237.5 53.5,-305.5 226.5,-305.5 226.5,-237.5 53.5,-237.5"/>
-<text text-anchor="middle" x="140" y="-293.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::DFPatternNode</text>
-<polyline fill="none" stroke="black" points="53.5,-286.5 226.5,-286.5 "/>
-<text text-anchor="start" x="61.5" y="-274.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
-<polyline fill="none" stroke="black" points="53.5,-267.5 226.5,-267.5 "/>
-<text text-anchor="start" x="61.5" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DECLARE_BASE_OBJECT</text>
-<text text-anchor="start" x="61.5" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO()</text>
+<polygon fill="white" stroke="black" points="53.5,-243 53.5,-311 226.5,-311 226.5,-243 53.5,-243"/>
+<text text-anchor="middle" x="140" y="-299" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::DFPatternNode</text>
+<polyline fill="none" stroke="black" points="53.5,-292 226.5,-292 "/>
+<text text-anchor="start" x="61.5" y="-280" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
+<polyline fill="none" stroke="black" points="53.5,-273 226.5,-273 "/>
+<text text-anchor="start" x="61.5" y="-261" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DECLARE_BASE_OBJECT</text>
+<text text-anchor="start" x="61.5" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO()</text>
</a>
</g>
</g>
<!-- Node2->Node1 -->
<g id="edge1" class="edge">
<title>Node2->Node1</title>
-<path fill="none" stroke="midnightblue" d="M167.36,-229.05C187.41,-199.64 215.92,-159.73 244,-127 257.97,-110.72 274.46,-93.9 289.3,-79.5"/>
-<polygon fill="none" stroke="midnightblue" points="164.39,-227.19 161.68,-237.44 170.19,-231.12 164.39,-227.19"/>
+<path fill="none" stroke="midnightblue" d="M166.34,-234.04C186.3,-203.34 215.14,-161.25 244,-127 257.69,-110.76 273.96,-94.08 288.7,-79.79"/>
+<polygon fill="none" stroke="midnightblue" points="163.18,-232.48 160.69,-242.78 169.06,-236.28 163.18,-232.48"/>
</g>
<!-- Node3 -->
<g id="node3" class="node">
<title>Node3</title>
<g id="a_node3"><a xlink:href="classtvm_1_1runtime_1_1Object.html" target="_top" xlink:title="base class of all object containers.">
-<polygon fill="white" stroke="black" points="0,-453.5 0,-840.5 184,-840.5 184,-453.5 0,-453.5"/>
-<text text-anchor="middle" x="92" y="-828.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::Object</text>
-<polyline fill="none" stroke="black" points="0,-821.5 184,-821.5 "/>
-<text text-anchor="start" x="8" y="-809.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
-<text text-anchor="start" x="8" y="-798.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_final</text>
-<text text-anchor="start" x="8" y="-787.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots</text>
-<text text-anchor="start" x="8" y="-776.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots_can</text>
-<text text-anchor="start" x="8" y="-765.5" font-family="Helvetica,sans-Serif" font-size="10.00">_overflow</text>
-<text text-anchor="start" x="8" y="-754.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_visit</text>
-<text text-anchor="start" x="8" y="-743.5" font-family="Helvetica,sans-Serif" font-size="10.00">_attrs</text>
-<text text-anchor="start" x="8" y="-732.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_sequal</text>
-<text text-anchor="start" x="8" y="-721.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
-<text text-anchor="start" x="8" y="-710.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_shash</text>
-<text text-anchor="start" x="8" y="-699.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
-<text text-anchor="start" x="8" y="-688.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_index</text>
-<text text-anchor="start" x="8" y="-677.5" font-family="Helvetica,sans-Serif" font-size="10.00"># type_index_</text>
-<text text-anchor="start" x="8" y="-666.5" font-family="Helvetica,sans-Serif" font-size="10.00"># ref_counter_</text>
-<polyline fill="none" stroke="black" points="0,-659.5 184,-659.5 "/>
-<text text-anchor="start" x="8" y="-647.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ type_index()</text>
-<text text-anchor="start" x="8" y="-636.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ GetTypeKey()</text>
-<text text-anchor="start" x="8" y="-625.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ GetTypeKeyHash()</text>
-<text text-anchor="start" x="8" y="-614.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ IsInstance()</text>
-<text text-anchor="start" x="8" y="-603.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ unique()</text>
+<polygon fill="white" stroke="black" points="0,-464.5 0,-851.5 184,-851.5 184,-464.5 0,-464.5"/>
+<text text-anchor="middle" x="92" y="-839.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::Object</text>
+<polyline fill="none" stroke="black" points="0,-832.5 184,-832.5 "/>
+<text text-anchor="start" x="8" y="-820.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
+<text text-anchor="start" x="8" y="-809.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_final</text>
+<text text-anchor="start" x="8" y="-798.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots</text>
+<text text-anchor="start" x="8" y="-787.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots_can</text>
+<text text-anchor="start" x="8" y="-776.5" font-family="Helvetica,sans-Serif" font-size="10.00">_overflow</text>
+<text text-anchor="start" x="8" y="-765.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_visit</text>
+<text text-anchor="start" x="8" y="-754.5" font-family="Helvetica,sans-Serif" font-size="10.00">_attrs</text>
+<text text-anchor="start" x="8" y="-743.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_sequal</text>
+<text text-anchor="start" x="8" y="-732.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
+<text text-anchor="start" x="8" y="-721.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_shash</text>
+<text text-anchor="start" x="8" y="-710.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
+<text text-anchor="start" x="8" y="-699.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_index</text>
+<text text-anchor="start" x="8" y="-688.5" font-family="Helvetica,sans-Serif" font-size="10.00"># type_index_</text>
+<text text-anchor="start" x="8" y="-677.5" font-family="Helvetica,sans-Serif" font-size="10.00"># ref_counter_</text>
+<polyline fill="none" stroke="black" points="0,-670.5 184,-670.5 "/>
+<text text-anchor="start" x="8" y="-658.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ type_index()</text>
+<text text-anchor="start" x="8" y="-647.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ GetTypeKey()</text>
+<text text-anchor="start" x="8" y="-636.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ GetTypeKeyHash()</text>
+<text text-anchor="start" x="8" y="-625.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ IsInstance()</text>
+<text text-anchor="start" x="8" y="-614.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ unique()</text>
+<text text-anchor="start" x="8" y="-603.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Object()</text>
<text text-anchor="start" x="8" y="-592.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Object()</text>
<text text-anchor="start" x="8" y="-581.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Object()</text>
-<text text-anchor="start" x="8" y="-570.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Object()</text>
+<text text-anchor="start" x="8" y="-570.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
<text text-anchor="start" x="8" y="-559.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
-<text text-anchor="start" x="8" y="-548.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
-<text text-anchor="start" x="8" y="-537.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeIndex2Key()</text>
-<text text-anchor="start" x="8" y="-526.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeIndex2KeyHash()</text>
-<text text-anchor="start" x="8" y="-515.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeKey2Index()</text>
-<text text-anchor="start" x="8" y="-504.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _GetOrAllocRuntimeTypeIndex()</text>
-<text text-anchor="start" x="8" y="-493.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RuntimeTypeIndex()</text>
-<text text-anchor="start" x="8" y="-482.5" font-family="Helvetica,sans-Serif" font-size="10.00"># IncRef()</text>
-<text text-anchor="start" x="8" y="-471.5" font-family="Helvetica,sans-Serif" font-size="10.00"># DecRef()</text>
-<text text-anchor="start" x="8" y="-460.5" font-family="Helvetica,sans-Serif" font-size="10.00"># GetOrAllocRuntimeTypeIndex()</text>
+<text text-anchor="start" x="8" y="-548.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeIndex2Key()</text>
+<text text-anchor="start" x="8" y="-537.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeIndex2KeyHash()</text>
+<text text-anchor="start" x="8" y="-526.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeKey2Index()</text>
+<text text-anchor="start" x="8" y="-515.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _GetOrAllocRuntimeTypeIndex()</text>
+<text text-anchor="start" x="8" y="-504.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RuntimeTypeIndex()</text>
+<text text-anchor="start" x="8" y="-493.5" font-family="Helvetica,sans-Serif" font-size="10.00"># IncRef()</text>
+<text text-anchor="start" x="8" y="-482.5" font-family="Helvetica,sans-Serif" font-size="10.00"># DecRef()</text>
+<text text-anchor="start" x="8" y="-471.5" font-family="Helvetica,sans-Serif" font-size="10.00"># GetOrAllocRuntimeTypeIndex()</text>
</a>
</g>
</g>
<!-- Node3->Node2 -->
<g id="edge2" class="edge">
<title>Node3->Node2</title>
-<path fill="none" stroke="midnightblue" d="M118.06,-443.21C124.95,-389.63 131.61,-337.82 135.75,-305.6"/>
-<polygon fill="none" stroke="midnightblue" points="114.58,-442.87 116.77,-453.23 121.52,-443.76 114.58,-442.87"/>
+<path fill="none" stroke="midnightblue" d="M117.66,-454.41C124.71,-398.74 131.57,-344.59 135.78,-311.29"/>
+<polygon fill="none" stroke="midnightblue" points="114.17,-454.09 116.39,-464.45 121.12,-454.97 114.17,-454.09"/>
</g>
<!-- Node3->Node3 -->
<g id="edge3" class="edge">
<title>Node3->Node3</title>
-<path fill="none" stroke="#404040" d="M184.28,-680.92C195.02,-674.66 202,-663.36 202,-647 202,-636.01 198.85,-627.3 193.52,-620.87"/>
-<polygon fill="none" stroke="#404040" points="193.46,-620.81 186.29,-620 184.28,-613.08 191.45,-613.89 193.46,-620.81"/>
-<text text-anchor="middle" x="228" y="-644.5" font-family="Helvetica,sans-Serif" font-size="10.00"> #deleter_</text>
+<path fill="none" stroke="#404040" d="M184.28,-691.92C195.02,-685.66 202,-674.36 202,-658 202,-647.01 198.85,-638.3 193.52,-631.87"/>
+<polygon fill="none" stroke="#404040" points="193.46,-631.81 186.29,-631 184.28,-624.08 191.45,-624.89 193.46,-631.81"/>
+<text text-anchor="middle" x="228" y="-655.5" font-family="Helvetica,sans-Serif" font-size="10.00"> #deleter_</text>
</g>
<!-- Node4 -->
<g id="node4" class="node">
<title>Node4</title>
<g id="a_node4"><a xlink:href="classtvm_1_1relax_1_1DFPattern.html" target="_top" xlink:title="Managed reference to dataflow patterns.">
-<polygon fill="white" stroke="black" points="253,-160.5 253,-382.5 409,-382.5 409,-160.5 253,-160.5"/>
-<text text-anchor="middle" x="331" y="-370.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::DFPattern</text>
-<polyline fill="none" stroke="black" points="253,-363.5 409,-363.5 "/>
-<text text-anchor="middle" x="331" y="-351.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="253,-344.5 409,-344.5 "/>
-<text text-anchor="start" x="261" y="-332.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator()()</text>
-<text text-anchor="start" x="261" y="-321.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator()()</text>
-<text text-anchor="start" x="261" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator|()</text>
-<text text-anchor="start" x="261" y="-299.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator&()</text>
-<text text-anchor="start" x="261" y="-288.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator~()</text>
-<text text-anchor="start" x="261" y="-277.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ HasAttr()</text>
-<text text-anchor="start" x="261" y="-266.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ HasStructInfo()</text>
-<text text-anchor="start" x="261" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ HasType()</text>
-<text text-anchor="start" x="261" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ HasDtype()</text>
-<text text-anchor="start" x="261" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ HasDtype()</text>
-<text text-anchor="start" x="261" y="-222.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ HasShape()</text>
-<text text-anchor="start" x="261" y="-211.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ HasSameShapeAs()</text>
-<text text-anchor="start" x="261" y="-200.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ dup()</text>
-<text text-anchor="start" x="261" y="-189.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator PatternSeq()</text>
-<text text-anchor="start" x="261" y="-178.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="261" y="-167.5" font-family="Helvetica,sans-Serif" font-size="10.00">_METHODS()</text>
+<polygon fill="white" stroke="black" points="253,-166 253,-388 409,-388 409,-166 253,-166"/>
+<text text-anchor="middle" x="331" y="-376" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::DFPattern</text>
+<polyline fill="none" stroke="black" points="253,-369 409,-369 "/>
+<text text-anchor="middle" x="331" y="-357" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="253,-350 409,-350 "/>
+<text text-anchor="start" x="261" y="-338" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator()()</text>
+<text text-anchor="start" x="261" y="-327" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator()()</text>
+<text text-anchor="start" x="261" y="-316" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator|()</text>
+<text text-anchor="start" x="261" y="-305" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator&()</text>
+<text text-anchor="start" x="261" y="-294" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator~()</text>
+<text text-anchor="start" x="261" y="-283" font-family="Helvetica,sans-Serif" font-size="10.00">+ HasAttr()</text>
+<text text-anchor="start" x="261" y="-272" font-family="Helvetica,sans-Serif" font-size="10.00">+ HasStructInfo()</text>
+<text text-anchor="start" x="261" y="-261" font-family="Helvetica,sans-Serif" font-size="10.00">+ HasType()</text>
+<text text-anchor="start" x="261" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00">+ HasDtype()</text>
+<text text-anchor="start" x="261" y="-239" font-family="Helvetica,sans-Serif" font-size="10.00">+ HasDtype()</text>
+<text text-anchor="start" x="261" y="-228" font-family="Helvetica,sans-Serif" font-size="10.00">+ HasShape()</text>
+<text text-anchor="start" x="261" y="-217" font-family="Helvetica,sans-Serif" font-size="10.00">+ HasSameShapeAs()</text>
+<text text-anchor="start" x="261" y="-206" font-family="Helvetica,sans-Serif" font-size="10.00">+ dup()</text>
+<text text-anchor="start" x="261" y="-195" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator PatternSeq()</text>
+<text text-anchor="start" x="261" y="-184" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="261" y="-173" font-family="Helvetica,sans-Serif" font-size="10.00">_METHODS()</text>
</a>
</g>
</g>
<!-- Node4->Node1 -->
<g id="edge4" class="edge">
<title>Node4->Node1</title>
-<path fill="none" stroke="#404040" d="M331,-160.46C331,-136.45 331,-112.17 331,-91.82"/>
-<polygon fill="none" stroke="#404040" points="331,-91.7 327,-85.7 331,-79.7 335,-85.7 331,-91.7"/>
+<path fill="none" stroke="#404040" d="M331,-165.72C331,-139.91 331,-113.62 331,-91.88"/>
+<polygon fill="none" stroke="#404040" points="331,-91.64 327,-85.64 331,-79.64 335,-85.64 331,-91.64"/>
<text text-anchor="middle" x="354.5" y="-101" font-family="Helvetica,sans-Serif" font-size="10.00"> +pattern</text>
</g>
<!-- Node5 -->
<g id="node5" class="node">
<title>Node5</title>
<g id="a_node5"><a xlink:href="classtvm_1_1runtime_1_1ObjectRef.html" target="_top" xlink:title="Base class of all object reference.">
-<polygon fill="white" stroke="black" points="272,-530.5 272,-763.5 406,-763.5 406,-530.5 272,-530.5"/>
-<text text-anchor="middle" x="339" y="-751.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::ObjectRef</text>
-<polyline fill="none" stroke="black" points="272,-744.5 406,-744.5 "/>
-<text text-anchor="start" x="280" y="-732.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_is_nullable</text>
-<polyline fill="none" stroke="black" points="272,-725.5 406,-725.5 "/>
+<polygon fill="white" stroke="black" points="272,-541.5 272,-774.5 406,-774.5 406,-541.5 272,-541.5"/>
+<text text-anchor="middle" x="339" y="-762.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::ObjectRef</text>
+<polyline fill="none" stroke="black" points="272,-755.5 406,-755.5 "/>
+<text text-anchor="start" x="280" y="-743.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_is_nullable</text>
+<polyline fill="none" stroke="black" points="272,-736.5 406,-736.5 "/>
+<text text-anchor="start" x="280" y="-724.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectRef()</text>
<text text-anchor="start" x="280" y="-713.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectRef()</text>
-<text text-anchor="start" x="280" y="-702.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectRef()</text>
-<text text-anchor="start" x="280" y="-691.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ same_as()</text>
-<text text-anchor="start" x="280" y="-680.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator==()</text>
-<text text-anchor="start" x="280" y="-669.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator!=()</text>
-<text text-anchor="start" x="280" y="-658.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator<()</text>
-<text text-anchor="start" x="280" y="-647.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ defined()</text>
-<text text-anchor="start" x="280" y="-636.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get()</text>
-<text text-anchor="start" x="280" y="-625.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator->()</text>
-<text text-anchor="start" x="280" y="-614.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ unique()</text>
-<text text-anchor="start" x="280" y="-603.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ use_count()</text>
+<text text-anchor="start" x="280" y="-702.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ same_as()</text>
+<text text-anchor="start" x="280" y="-691.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator==()</text>
+<text text-anchor="start" x="280" y="-680.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator!=()</text>
+<text text-anchor="start" x="280" y="-669.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator<()</text>
+<text text-anchor="start" x="280" y="-658.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ defined()</text>
+<text text-anchor="start" x="280" y="-647.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get()</text>
+<text text-anchor="start" x="280" y="-636.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator->()</text>
+<text text-anchor="start" x="280" y="-625.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ unique()</text>
+<text text-anchor="start" x="280" y="-614.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ use_count()</text>
+<text text-anchor="start" x="280" y="-603.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ as()</text>
<text text-anchor="start" x="280" y="-592.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ as()</text>
-<text text-anchor="start" x="280" y="-581.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ as()</text>
-<text text-anchor="start" x="280" y="-570.5" font-family="Helvetica,sans-Serif" font-size="10.00"># get_mutable()</text>
-<text text-anchor="start" x="280" y="-559.5" font-family="Helvetica,sans-Serif" font-size="10.00"># DowncastNoCheck()</text>
-<text text-anchor="start" x="280" y="-548.5" font-family="Helvetica,sans-Serif" font-size="10.00"># FFIClearAfterMove()</text>
-<text text-anchor="start" x="280" y="-537.5" font-family="Helvetica,sans-Serif" font-size="10.00"># GetDataPtr()</text>
+<text text-anchor="start" x="280" y="-581.5" font-family="Helvetica,sans-Serif" font-size="10.00"># get_mutable()</text>
+<text text-anchor="start" x="280" y="-570.5" font-family="Helvetica,sans-Serif" font-size="10.00"># DowncastNoCheck()</text>
+<text text-anchor="start" x="280" y="-559.5" font-family="Helvetica,sans-Serif" font-size="10.00"># FFIClearAfterMove()</text>
+<text text-anchor="start" x="280" y="-548.5" font-family="Helvetica,sans-Serif" font-size="10.00"># GetDataPtr()</text>
</a>
</g>
</g>
<!-- Node5->Node4 -->
<g id="edge5" class="edge">
<title>Node5->Node4</title>
-<path fill="none" stroke="midnightblue" d="M336.31,-520.36C335.35,-475.78 334.29,-425.98 333.36,-382.78"/>
-<polygon fill="none" stroke="midnightblue" points="332.81,-520.46 336.52,-530.38 339.81,-520.31 332.81,-520.46"/>
+<path fill="none" stroke="midnightblue" d="M336.35,-531.38C335.37,-485.02 334.27,-432.89 333.32,-388.02"/>
+<polygon fill="none" stroke="midnightblue" points="332.85,-531.56 336.56,-541.49 339.85,-531.41 332.85,-531.56"/>
</g>
<!-- Node6 -->
<g id="node6" class="node">
<title>Node6</title>
<g id="a_node6"><a xlink:href="classtvm_1_1runtime_1_1ObjectPtr.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="269,-888.5 269,-1066.5 409,-1066.5 409,-888.5 269,-888.5"/>
-<text text-anchor="start" x="277" y="-1054.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::ObjectPtr</text>
-<text text-anchor="middle" x="339" y="-1043.5" font-family="Helvetica,sans-Serif" font-size="10.00">< tvm::runtime::Object ></text>
-<polyline fill="none" stroke="black" points="269,-1036.5 409,-1036.5 "/>
-<text text-anchor="middle" x="339" y="-1024.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="269,-1017.5 409,-1017.5 "/>
+<polygon fill="white" stroke="black" points="269,-899.5 269,-1077.5 409,-1077.5 409,-899.5 269,-899.5"/>
+<text text-anchor="start" x="277" y="-1065.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::ObjectPtr</text>
+<text text-anchor="middle" x="339" y="-1054.5" font-family="Helvetica,sans-Serif" font-size="10.00">< tvm::runtime::Object ></text>
+<polyline fill="none" stroke="black" points="269,-1047.5 409,-1047.5 "/>
+<text text-anchor="middle" x="339" y="-1035.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="269,-1028.5 409,-1028.5 "/>
+<text text-anchor="start" x="277" y="-1016.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="277" y="-1005.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="277" y="-994.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="277" y="-983.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="277" y="-972.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="277" y="-961.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
-<text text-anchor="start" x="277" y="-950.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
-<text text-anchor="start" x="277" y="-939.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ~ObjectPtr()</text>
-<text text-anchor="start" x="277" y="-928.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ swap()</text>
-<text text-anchor="start" x="277" y="-917.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get()</text>
-<text text-anchor="start" x="277" y="-906.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator->()</text>
-<text text-anchor="start" x="277" y="-895.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 11 more...</text>
+<text text-anchor="start" x="277" y="-950.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ~ObjectPtr()</text>
+<text text-anchor="start" x="277" y="-939.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ swap()</text>
+<text text-anchor="start" x="277" y="-928.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get()</text>
+<text text-anchor="start" x="277" y="-917.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator->()</text>
+<text text-anchor="start" x="277" y="-906.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 11 more...</text>
</a>
</g>
</g>
<!-- Node6->Node5 -->
<g id="edge6" class="edge">
<title>Node6->Node5</title>
-<path fill="none" stroke="#404040" d="M339,-888.47C339,-853.91 339,-813.57 339,-775.92"/>
-<polygon fill="none" stroke="#404040" points="339,-775.8 335,-769.8 339,-763.8 343,-769.8 339,-775.8"/>
-<text text-anchor="middle" x="358.5" y="-862" font-family="Helvetica,sans-Serif" font-size="10.00"> #data_</text>
+<path fill="none" stroke="#404040" d="M339,-899.47C339,-864.91 339,-824.57 339,-786.92"/>
+<polygon fill="none" stroke="#404040" points="339,-786.8 335,-780.8 339,-774.8 343,-780.8 339,-786.8"/>
+<text text-anchor="middle" x="358.5" y="-873" font-family="Helvetica,sans-Serif" font-size="10.00"> #data_</text>
</g>
<!-- Node7 -->
<g id="node7" class="node">
<title>Node7</title>
<g id="a_node7"><a xlink:href="classtvm_1_1runtime_1_1DataType.html" target="_top" xlink:title="Runtime primitive data type.">
-<polygon fill="white" stroke="black" points="427,-127.5 427,-415.5 559,-415.5 559,-127.5 427,-127.5"/>
-<text text-anchor="middle" x="493" y="-403.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::DataType</text>
-<polyline fill="none" stroke="black" points="427,-396.5 559,-396.5 "/>
-<text text-anchor="middle" x="493" y="-384.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="427,-377.5 559,-377.5 "/>
+<polygon fill="white" stroke="black" points="427,-127.5 427,-426.5 559,-426.5 559,-127.5 427,-127.5"/>
+<text text-anchor="middle" x="493" y="-414.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::DataType</text>
+<polyline fill="none" stroke="black" points="427,-407.5 559,-407.5 "/>
+<text text-anchor="middle" x="493" y="-395.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="427,-388.5 559,-388.5 "/>
+<text text-anchor="start" x="435" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ DataType()</text>
<text text-anchor="start" x="435" y="-365.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ DataType()</text>
<text text-anchor="start" x="435" y="-354.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ DataType()</text>
-<text text-anchor="start" x="435" y="-343.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ DataType()</text>
-<text text-anchor="start" x="435" y="-332.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ code()</text>
-<text text-anchor="start" x="435" y="-321.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ bits()</text>
-<text text-anchor="start" x="435" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ bytes()</text>
-<text text-anchor="start" x="435" y="-299.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ lanes()</text>
-<text text-anchor="start" x="435" y="-288.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ vscale_factor()</text>
-<text text-anchor="start" x="435" y="-277.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get_lanes_or_vscale</text>
-<text text-anchor="start" x="435" y="-266.5" font-family="Helvetica,sans-Serif" font-size="10.00">_factor()</text>
-<text text-anchor="start" x="435" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ is_scalar()</text>
-<text text-anchor="start" x="435" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 24 more...</text>
-<text text-anchor="start" x="435" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Int()</text>
-<text text-anchor="start" x="435" y="-222.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ UInt()</text>
-<text text-anchor="start" x="435" y="-211.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Float()</text>
-<text text-anchor="start" x="435" y="-200.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ BFloat()</text>
-<text text-anchor="start" x="435" y="-189.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat8E4M3()</text>
-<text text-anchor="start" x="435" y="-178.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat8E5M2()</text>
+<text text-anchor="start" x="435" y="-343.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ code()</text>
+<text text-anchor="start" x="435" y="-332.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ bits()</text>
+<text text-anchor="start" x="435" y="-321.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ bytes()</text>
+<text text-anchor="start" x="435" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ lanes()</text>
+<text text-anchor="start" x="435" y="-299.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ vscale_factor()</text>
+<text text-anchor="start" x="435" y="-288.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get_lanes_or_vscale</text>
+<text text-anchor="start" x="435" y="-277.5" font-family="Helvetica,sans-Serif" font-size="10.00">_factor()</text>
+<text text-anchor="start" x="435" y="-266.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ is_scalar()</text>
+<text text-anchor="start" x="435" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 26 more...</text>
+<text text-anchor="start" x="435" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Int()</text>
+<text text-anchor="start" x="435" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ UInt()</text>
+<text text-anchor="start" x="435" y="-222.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Float()</text>
+<text text-anchor="start" x="435" y="-211.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ BFloat()</text>
+<text text-anchor="start" x="435" y="-200.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat8E4M3()</text>
+<text text-anchor="start" x="435" y="-189.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat8E5M2()</text>
+<text text-anchor="start" x="435" y="-178.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat4E2M1()</text>
<text text-anchor="start" x="435" y="-167.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Bool()</text>
<text text-anchor="start" x="435" y="-156.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Handle()</text>
<text text-anchor="start" x="435" y="-145.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Void()</text>
@@ -238,8 +239,8 @@
<!-- Node7->Node1 -->
<g id="edge7" class="edge">
<title>Node7->Node1</title>
-<path fill="none" stroke="#404040" d="M426.86,-139.58C423.96,-135.28 421.01,-131.07 418,-127 408.05,-113.53 395.97,-100.2 384.02,-88.2"/>
-<polygon fill="none" stroke="#404040" points="383.94,-88.12 376.86,-86.77 375.38,-79.71 382.46,-81.06 383.94,-88.12"/>
+<path fill="none" stroke="#404040" d="M426.76,-139.67C423.9,-135.33 420.98,-131.1 418,-127 408.15,-113.45 396.11,-100.09 384.17,-88.09"/>
+<polygon fill="none" stroke="#404040" points="384.09,-88.01 377.01,-86.66 375.52,-79.6 382.61,-80.95 384.09,-88.01"/>
<text text-anchor="middle" x="423" y="-101" font-family="Helvetica,sans-Serif" font-size="10.00"> +dtype</text>
</g>
</g>
diff --git a/docs/reference/api/doxygen/classtvm_1_1relax_1_1PrimStructInfoNode.html b/docs/reference/api/doxygen/classtvm_1_1relax_1_1PrimStructInfoNode.html
index 0aa03860f3..860b2ad24d 100644
--- a/docs/reference/api/doxygen/classtvm_1_1relax_1_1PrimStructInfoNode.html
+++ b/docs/reference/api/doxygen/classtvm_1_1relax_1_1PrimStructInfoNode.html
@@ -88,7 +88,7 @@ Inheritance diagram for tvm::relax::PrimStructInfoNode:</div>
<div class="dynheader">
Collaboration diagram for tvm::relax::PrimStructInfoNode:</div>
<div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1relax_1_1PrimStructInfoNode__coll__graph.svg" width="871" height="2062"><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_1relax_1_1PrimStructInfoNode__coll__graph.svg" width="871" height="2076"><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">
diff --git a/docs/reference/api/doxygen/classtvm_1_1relax_1_1PrimStructInfoNode__coll__graph.svg b/docs/reference/api/doxygen/classtvm_1_1relax_1_1PrimStructInfoNode__coll__graph.svg
index 8861606b2d..bfacc35622 100644
--- a/docs/reference/api/doxygen/classtvm_1_1relax_1_1PrimStructInfoNode__coll__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1relax_1_1PrimStructInfoNode__coll__graph.svg
@@ -4,11 +4,11 @@
<!-- Generated by graphviz version 2.43.0 (0)
-->
<!-- Title: tvm::relax::PrimStructInfoNode Pages: 1 -->
-<svg width="653pt" height="1546pt"
- viewBox="0.00 0.00 653.00 1546.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 1542)">
+<svg width="653pt" height="1557pt"
+ viewBox="0.00 0.00 653.00 1557.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 1553)">
<title>tvm::relax::PrimStructInfoNode</title>
-<polygon fill="white" stroke="transparent" points="-4,4 -4,-1542 649,-1542 649,4 -4,4"/>
+<polygon fill="white" stroke="transparent" points="-4,4 -4,-1553 649,-1553 649,4 -4,4"/>
<!-- Node1 -->
<g id="node1" class="node">
<title>Node1</title>
@@ -30,151 +30,152 @@
<g id="node2" class="node">
<title>Node2</title>
<g id="a_node2"><a xlink:href="classtvm_1_1relax_1_1StructInfoNode.html" target="_top" xlink:title="Base type of all structure information.">
-<polygon fill="white" stroke="black" points="246.5,-232 246.5,-355 419.5,-355 419.5,-232 246.5,-232"/>
-<text text-anchor="middle" x="333" y="-343" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::StructInfoNode</text>
-<polyline fill="none" stroke="black" points="246.5,-336 419.5,-336 "/>
-<text text-anchor="start" x="254.5" y="-324" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
-<text text-anchor="start" x="254.5" y="-313" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_sequal</text>
-<text text-anchor="start" x="254.5" y="-302" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
-<text text-anchor="start" x="254.5" y="-291" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_shash</text>
-<text text-anchor="start" x="254.5" y="-280" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
-<text text-anchor="start" x="254.5" y="-269" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots</text>
-<polyline fill="none" stroke="black" points="246.5,-262 419.5,-262 "/>
-<text text-anchor="start" x="254.5" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DECLARE_BASE_OBJECT</text>
-<text text-anchor="start" x="254.5" y="-239" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO()</text>
+<polygon fill="white" stroke="black" points="246.5,-237.5 246.5,-360.5 419.5,-360.5 419.5,-237.5 246.5,-237.5"/>
+<text text-anchor="middle" x="333" y="-348.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::StructInfoNode</text>
+<polyline fill="none" stroke="black" points="246.5,-341.5 419.5,-341.5 "/>
+<text text-anchor="start" x="254.5" y="-329.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
+<text text-anchor="start" x="254.5" y="-318.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_sequal</text>
+<text text-anchor="start" x="254.5" y="-307.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
+<text text-anchor="start" x="254.5" y="-296.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_shash</text>
+<text text-anchor="start" x="254.5" y="-285.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
+<text text-anchor="start" x="254.5" y="-274.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots</text>
+<polyline fill="none" stroke="black" points="246.5,-267.5 419.5,-267.5 "/>
+<text text-anchor="start" x="254.5" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DECLARE_BASE_OBJECT</text>
+<text text-anchor="start" x="254.5" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO()</text>
</a>
</g>
</g>
<!-- Node2->Node1 -->
<g id="edge1" class="edge">
<title>Node2->Node1</title>
-<path fill="none" stroke="midnightblue" d="M368.71,-222.67C388.52,-183.94 412.69,-136.69 430.57,-101.73"/>
-<polygon fill="none" stroke="midnightblue" points="365.48,-221.31 364.04,-231.81 371.71,-224.5 365.48,-221.31"/>
+<path fill="none" stroke="midnightblue" d="M367.89,-228.22C388.05,-187.9 412.93,-138.13 431.11,-101.78"/>
+<polygon fill="none" stroke="midnightblue" points="364.75,-226.68 363.4,-237.19 371.01,-229.81 364.75,-226.68"/>
</g>
<!-- Node3 -->
<g id="node3" class="node">
<title>Node3</title>
<g id="a_node3"><a xlink:href="classtvm_1_1runtime_1_1Object.html" target="_top" xlink:title="base class of all object containers.">
-<polygon fill="white" stroke="black" points="0,-653.5 0,-1040.5 184,-1040.5 184,-653.5 0,-653.5"/>
-<text text-anchor="middle" x="92" y="-1028.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::Object</text>
-<polyline fill="none" stroke="black" points="0,-1021.5 184,-1021.5 "/>
-<text text-anchor="start" x="8" y="-1009.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
-<text text-anchor="start" x="8" y="-998.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_final</text>
-<text text-anchor="start" x="8" y="-987.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots</text>
-<text text-anchor="start" x="8" y="-976.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots_can</text>
-<text text-anchor="start" x="8" y="-965.5" font-family="Helvetica,sans-Serif" font-size="10.00">_overflow</text>
-<text text-anchor="start" x="8" y="-954.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_visit</text>
-<text text-anchor="start" x="8" y="-943.5" font-family="Helvetica,sans-Serif" font-size="10.00">_attrs</text>
-<text text-anchor="start" x="8" y="-932.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_sequal</text>
-<text text-anchor="start" x="8" y="-921.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
-<text text-anchor="start" x="8" y="-910.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_shash</text>
-<text text-anchor="start" x="8" y="-899.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
-<text text-anchor="start" x="8" y="-888.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_index</text>
-<text text-anchor="start" x="8" y="-877.5" font-family="Helvetica,sans-Serif" font-size="10.00"># type_index_</text>
-<text text-anchor="start" x="8" y="-866.5" font-family="Helvetica,sans-Serif" font-size="10.00"># ref_counter_</text>
-<polyline fill="none" stroke="black" points="0,-859.5 184,-859.5 "/>
-<text text-anchor="start" x="8" y="-847.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ type_index()</text>
-<text text-anchor="start" x="8" y="-836.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ GetTypeKey()</text>
-<text text-anchor="start" x="8" y="-825.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ GetTypeKeyHash()</text>
-<text text-anchor="start" x="8" y="-814.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ IsInstance()</text>
-<text text-anchor="start" x="8" y="-803.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ unique()</text>
+<polygon fill="white" stroke="black" points="0,-664.5 0,-1051.5 184,-1051.5 184,-664.5 0,-664.5"/>
+<text text-anchor="middle" x="92" y="-1039.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::Object</text>
+<polyline fill="none" stroke="black" points="0,-1032.5 184,-1032.5 "/>
+<text text-anchor="start" x="8" y="-1020.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
+<text text-anchor="start" x="8" y="-1009.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_final</text>
+<text text-anchor="start" x="8" y="-998.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots</text>
+<text text-anchor="start" x="8" y="-987.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots_can</text>
+<text text-anchor="start" x="8" y="-976.5" font-family="Helvetica,sans-Serif" font-size="10.00">_overflow</text>
+<text text-anchor="start" x="8" y="-965.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_visit</text>
+<text text-anchor="start" x="8" y="-954.5" font-family="Helvetica,sans-Serif" font-size="10.00">_attrs</text>
+<text text-anchor="start" x="8" y="-943.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_sequal</text>
+<text text-anchor="start" x="8" y="-932.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
+<text text-anchor="start" x="8" y="-921.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_shash</text>
+<text text-anchor="start" x="8" y="-910.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
+<text text-anchor="start" x="8" y="-899.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_index</text>
+<text text-anchor="start" x="8" y="-888.5" font-family="Helvetica,sans-Serif" font-size="10.00"># type_index_</text>
+<text text-anchor="start" x="8" y="-877.5" font-family="Helvetica,sans-Serif" font-size="10.00"># ref_counter_</text>
+<polyline fill="none" stroke="black" points="0,-870.5 184,-870.5 "/>
+<text text-anchor="start" x="8" y="-858.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ type_index()</text>
+<text text-anchor="start" x="8" y="-847.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ GetTypeKey()</text>
+<text text-anchor="start" x="8" y="-836.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ GetTypeKeyHash()</text>
+<text text-anchor="start" x="8" y="-825.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ IsInstance()</text>
+<text text-anchor="start" x="8" y="-814.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ unique()</text>
+<text text-anchor="start" x="8" y="-803.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Object()</text>
<text text-anchor="start" x="8" y="-792.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Object()</text>
<text text-anchor="start" x="8" y="-781.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Object()</text>
-<text text-anchor="start" x="8" y="-770.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Object()</text>
+<text text-anchor="start" x="8" y="-770.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
<text text-anchor="start" x="8" y="-759.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
-<text text-anchor="start" x="8" y="-748.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
-<text text-anchor="start" x="8" y="-737.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeIndex2Key()</text>
-<text text-anchor="start" x="8" y="-726.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeIndex2KeyHash()</text>
-<text text-anchor="start" x="8" y="-715.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeKey2Index()</text>
-<text text-anchor="start" x="8" y="-704.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _GetOrAllocRuntimeTypeIndex()</text>
-<text text-anchor="start" x="8" y="-693.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RuntimeTypeIndex()</text>
-<text text-anchor="start" x="8" y="-682.5" font-family="Helvetica,sans-Serif" font-size="10.00"># IncRef()</text>
-<text text-anchor="start" x="8" y="-671.5" font-family="Helvetica,sans-Serif" font-size="10.00"># DecRef()</text>
-<text text-anchor="start" x="8" y="-660.5" font-family="Helvetica,sans-Serif" font-size="10.00"># GetOrAllocRuntimeTypeIndex()</text>
+<text text-anchor="start" x="8" y="-748.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeIndex2Key()</text>
+<text text-anchor="start" x="8" y="-737.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeIndex2KeyHash()</text>
+<text text-anchor="start" x="8" y="-726.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeKey2Index()</text>
+<text text-anchor="start" x="8" y="-715.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _GetOrAllocRuntimeTypeIndex()</text>
+<text text-anchor="start" x="8" y="-704.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RuntimeTypeIndex()</text>
+<text text-anchor="start" x="8" y="-693.5" font-family="Helvetica,sans-Serif" font-size="10.00"># IncRef()</text>
+<text text-anchor="start" x="8" y="-682.5" font-family="Helvetica,sans-Serif" font-size="10.00"># DecRef()</text>
+<text text-anchor="start" x="8" y="-671.5" font-family="Helvetica,sans-Serif" font-size="10.00"># GetOrAllocRuntimeTypeIndex()</text>
</a>
</g>
</g>
<!-- Node3->Node2 -->
<g id="edge2" class="edge">
<title>Node3->Node2</title>
-<path fill="none" stroke="midnightblue" d="M180.16,-644.27C224.92,-541.82 276.12,-424.65 306.45,-355.27"/>
-<polygon fill="none" stroke="midnightblue" points="176.92,-642.93 176.12,-653.5 183.33,-645.74 176.92,-642.93"/>
+<path fill="none" stroke="midnightblue" d="M179.5,-654.76C224.55,-550.64 276.27,-431.11 306.71,-360.77"/>
+<polygon fill="none" stroke="midnightblue" points="176.2,-653.57 175.44,-664.14 182.63,-656.35 176.2,-653.57"/>
</g>
<!-- Node3->Node3 -->
<g id="edge3" class="edge">
<title>Node3->Node3</title>
-<path fill="none" stroke="#404040" d="M184.28,-880.92C195.02,-874.66 202,-863.36 202,-847 202,-836.01 198.85,-827.3 193.52,-820.87"/>
-<polygon fill="none" stroke="#404040" points="193.46,-820.81 186.29,-820 184.28,-813.08 191.45,-813.89 193.46,-820.81"/>
-<text text-anchor="middle" x="228" y="-844.5" font-family="Helvetica,sans-Serif" font-size="10.00"> #deleter_</text>
+<path fill="none" stroke="#404040" d="M184.28,-891.92C195.02,-885.66 202,-874.36 202,-858 202,-847.01 198.85,-838.3 193.52,-831.87"/>
+<polygon fill="none" stroke="#404040" points="193.46,-831.81 186.29,-831 184.28,-824.08 191.45,-824.89 193.46,-831.81"/>
+<text text-anchor="middle" x="228" y="-855.5" font-family="Helvetica,sans-Serif" font-size="10.00"> #deleter_</text>
</g>
<!-- Node4 -->
<g id="node4" class="node">
<title>Node4</title>
<g id="a_node4"><a xlink:href="classtvm_1_1Span.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="272,-802 272,-892 428,-892 428,-802 272,-802"/>
-<text text-anchor="middle" x="350" y="-880" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::Span</text>
-<polyline fill="none" stroke="black" points="272,-873 428,-873 "/>
-<text text-anchor="middle" x="350" y="-861" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="272,-854 428,-854 "/>
-<text text-anchor="start" x="280" y="-842" font-family="Helvetica,sans-Serif" font-size="10.00">+ Span()</text>
-<text text-anchor="start" x="280" y="-831" font-family="Helvetica,sans-Serif" font-size="10.00">+ Merge()</text>
-<text text-anchor="start" x="280" y="-820" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="280" y="-809" font-family="Helvetica,sans-Serif" font-size="10.00">_METHODS()</text>
+<polygon fill="white" stroke="black" points="272,-813 272,-903 428,-903 428,-813 272,-813"/>
+<text text-anchor="middle" x="350" y="-891" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::Span</text>
+<polyline fill="none" stroke="black" points="272,-884 428,-884 "/>
+<text text-anchor="middle" x="350" y="-872" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="272,-865 428,-865 "/>
+<text text-anchor="start" x="280" y="-853" font-family="Helvetica,sans-Serif" font-size="10.00">+ Span()</text>
+<text text-anchor="start" x="280" y="-842" font-family="Helvetica,sans-Serif" font-size="10.00">+ Merge()</text>
+<text text-anchor="start" x="280" y="-831" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="280" y="-820" font-family="Helvetica,sans-Serif" font-size="10.00">_METHODS()</text>
</a>
</g>
</g>
<!-- Node4->Node2 -->
<g id="edge4" class="edge">
<title>Node4->Node2</title>
-<path fill="none" stroke="#404040" d="M348.64,-801.8C345.72,-707.1 338.84,-483.81 335.25,-367.62"/>
-<polygon fill="none" stroke="#404040" points="335.25,-367.36 331.06,-361.48 334.88,-355.36 339.06,-361.24 335.25,-367.36"/>
-<text text-anchor="middle" x="361.5" y="-543" font-family="Helvetica,sans-Serif" font-size="10.00"> +span</text>
+<path fill="none" stroke="#404040" d="M348.65,-812.83C345.73,-717.15 338.8,-489.96 335.22,-372.74"/>
+<polygon fill="none" stroke="#404040" points="335.22,-372.71 331.04,-366.84 334.85,-360.72 339.03,-366.6 335.22,-372.71"/>
+<text text-anchor="middle" x="361.5" y="-554" font-family="Helvetica,sans-Serif" font-size="10.00"> +span</text>
</g>
<!-- Node5 -->
<g id="node5" class="node">
<title>Node5</title>
<g id="a_node5"><a xlink:href="classtvm_1_1runtime_1_1ObjectRef.html" target="_top" xlink:title="Base class of all object reference.">
-<polygon fill="white" stroke="black" points="336,-1078.5 336,-1311.5 470,-1311.5 470,-1078.5 336,-1078.5"/>
-<text text-anchor="middle" x="403" y="-1299.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::ObjectRef</text>
-<polyline fill="none" stroke="black" points="336,-1292.5 470,-1292.5 "/>
-<text text-anchor="start" x="344" y="-1280.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_is_nullable</text>
-<polyline fill="none" stroke="black" points="336,-1273.5 470,-1273.5 "/>
+<polygon fill="white" stroke="black" points="336,-1089.5 336,-1322.5 470,-1322.5 470,-1089.5 336,-1089.5"/>
+<text text-anchor="middle" x="403" y="-1310.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::ObjectRef</text>
+<polyline fill="none" stroke="black" points="336,-1303.5 470,-1303.5 "/>
+<text text-anchor="start" x="344" y="-1291.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_is_nullable</text>
+<polyline fill="none" stroke="black" points="336,-1284.5 470,-1284.5 "/>
+<text text-anchor="start" x="344" y="-1272.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectRef()</text>
<text text-anchor="start" x="344" y="-1261.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectRef()</text>
-<text text-anchor="start" x="344" y="-1250.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectRef()</text>
-<text text-anchor="start" x="344" y="-1239.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ same_as()</text>
-<text text-anchor="start" x="344" y="-1228.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator==()</text>
-<text text-anchor="start" x="344" y="-1217.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator!=()</text>
-<text text-anchor="start" x="344" y="-1206.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator<()</text>
-<text text-anchor="start" x="344" y="-1195.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ defined()</text>
-<text text-anchor="start" x="344" y="-1184.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get()</text>
-<text text-anchor="start" x="344" y="-1173.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator->()</text>
-<text text-anchor="start" x="344" y="-1162.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ unique()</text>
-<text text-anchor="start" x="344" y="-1151.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ use_count()</text>
+<text text-anchor="start" x="344" y="-1250.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ same_as()</text>
+<text text-anchor="start" x="344" y="-1239.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator==()</text>
+<text text-anchor="start" x="344" y="-1228.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator!=()</text>
+<text text-anchor="start" x="344" y="-1217.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator<()</text>
+<text text-anchor="start" x="344" y="-1206.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ defined()</text>
+<text text-anchor="start" x="344" y="-1195.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get()</text>
+<text text-anchor="start" x="344" y="-1184.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator->()</text>
+<text text-anchor="start" x="344" y="-1173.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ unique()</text>
+<text text-anchor="start" x="344" y="-1162.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ use_count()</text>
+<text text-anchor="start" x="344" y="-1151.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ as()</text>
<text text-anchor="start" x="344" y="-1140.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ as()</text>
-<text text-anchor="start" x="344" y="-1129.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ as()</text>
-<text text-anchor="start" x="344" y="-1118.5" font-family="Helvetica,sans-Serif" font-size="10.00"># get_mutable()</text>
-<text text-anchor="start" x="344" y="-1107.5" font-family="Helvetica,sans-Serif" font-size="10.00"># DowncastNoCheck()</text>
-<text text-anchor="start" x="344" y="-1096.5" font-family="Helvetica,sans-Serif" font-size="10.00"># FFIClearAfterMove()</text>
-<text text-anchor="start" x="344" y="-1085.5" font-family="Helvetica,sans-Serif" font-size="10.00"># GetDataPtr()</text>
+<text text-anchor="start" x="344" y="-1129.5" font-family="Helvetica,sans-Serif" font-size="10.00"># get_mutable()</text>
+<text text-anchor="start" x="344" y="-1118.5" font-family="Helvetica,sans-Serif" font-size="10.00"># DowncastNoCheck()</text>
+<text text-anchor="start" x="344" y="-1107.5" font-family="Helvetica,sans-Serif" font-size="10.00"># FFIClearAfterMove()</text>
+<text text-anchor="start" x="344" y="-1096.5" font-family="Helvetica,sans-Serif" font-size="10.00"># GetDataPtr()</text>
</a>
</g>
</g>
<!-- Node5->Node4 -->
<g id="edge5" class="edge">
<title>Node5->Node4</title>
-<path fill="none" stroke="midnightblue" d="M383.72,-1068.11C374.29,-1006.57 363.54,-936.41 356.77,-892.17"/>
-<polygon fill="none" stroke="midnightblue" points="380.3,-1068.95 385.28,-1078.31 387.22,-1067.89 380.3,-1068.95"/>
+<path fill="none" stroke="midnightblue" d="M383.72,-1079.11C374.29,-1017.57 363.54,-947.41 356.77,-903.17"/>
+<polygon fill="none" stroke="midnightblue" points="380.3,-1079.95 385.28,-1089.31 387.22,-1078.89 380.3,-1079.95"/>
</g>
<!-- Node7 -->
<g id="node7" class="node">
<title>Node7</title>
<g id="a_node7"><a xlink:href="classtvm_1_1runtime_1_1Optional.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="392,-456.5 392,-634.5 520,-634.5 520,-456.5 392,-456.5"/>
-<text text-anchor="start" x="400" y="-622.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::Optional</text>
-<text text-anchor="middle" x="456" y="-611.5" font-family="Helvetica,sans-Serif" font-size="10.00">< tvm::PrimExpr ></text>
-<polyline fill="none" stroke="black" points="392,-604.5 520,-604.5 "/>
-<text text-anchor="start" x="400" y="-592.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_is_nullable</text>
-<polyline fill="none" stroke="black" points="392,-585.5 520,-585.5 "/>
+<polygon fill="white" stroke="black" points="392,-467.5 392,-645.5 520,-645.5 520,-467.5 392,-467.5"/>
+<text text-anchor="start" x="400" y="-633.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::Optional</text>
+<text text-anchor="middle" x="456" y="-622.5" font-family="Helvetica,sans-Serif" font-size="10.00">< tvm::PrimExpr ></text>
+<polyline fill="none" stroke="black" points="392,-615.5 520,-615.5 "/>
+<text text-anchor="start" x="400" y="-603.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_is_nullable</text>
+<polyline fill="none" stroke="black" points="392,-596.5 520,-596.5 "/>
+<text text-anchor="start" x="400" y="-584.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Optional()</text>
<text text-anchor="start" x="400" y="-573.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Optional()</text>
<text text-anchor="start" x="400" y="-562.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Optional()</text>
<text text-anchor="start" x="400" y="-551.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Optional()</text>
@@ -182,84 +183,84 @@
<text text-anchor="start" x="400" y="-529.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Optional()</text>
<text text-anchor="start" x="400" y="-518.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Optional()</text>
<text text-anchor="start" x="400" y="-507.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Optional()</text>
-<text text-anchor="start" x="400" y="-496.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Optional()</text>
+<text text-anchor="start" x="400" y="-496.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
<text text-anchor="start" x="400" y="-485.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
-<text text-anchor="start" x="400" y="-474.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
-<text text-anchor="start" x="400" y="-463.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 15 more...</text>
+<text text-anchor="start" x="400" y="-474.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 15 more...</text>
</a>
</g>
</g>
<!-- Node5->Node7 -->
<g id="edge8" class="edge">
<title>Node5->Node7</title>
-<path fill="none" stroke="midnightblue" d="M432.82,-1068.28C434.43,-1059.08 435.85,-1049.92 437,-1041 455.25,-899.77 457.84,-734.13 457.39,-634.89"/>
-<polygon fill="none" stroke="midnightblue" points="429.35,-1067.81 431.02,-1078.27 436.24,-1069.05 429.35,-1067.81"/>
+<path fill="none" stroke="midnightblue" d="M432.82,-1079.28C434.43,-1070.08 435.85,-1060.92 437,-1052 455.25,-910.77 457.84,-745.13 457.39,-645.89"/>
+<polygon fill="none" stroke="midnightblue" points="429.35,-1078.81 431.02,-1089.27 436.24,-1080.05 429.35,-1078.81"/>
</g>
<!-- Node6 -->
<g id="node6" class="node">
<title>Node6</title>
<g id="a_node6"><a xlink:href="classtvm_1_1runtime_1_1ObjectPtr.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="333,-1359.5 333,-1537.5 473,-1537.5 473,-1359.5 333,-1359.5"/>
-<text text-anchor="start" x="341" y="-1525.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::ObjectPtr</text>
-<text text-anchor="middle" x="403" y="-1514.5" font-family="Helvetica,sans-Serif" font-size="10.00">< tvm::runtime::Object ></text>
-<polyline fill="none" stroke="black" points="333,-1507.5 473,-1507.5 "/>
-<text text-anchor="middle" x="403" y="-1495.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="333,-1488.5 473,-1488.5 "/>
+<polygon fill="white" stroke="black" points="333,-1370.5 333,-1548.5 473,-1548.5 473,-1370.5 333,-1370.5"/>
+<text text-anchor="start" x="341" y="-1536.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::ObjectPtr</text>
+<text text-anchor="middle" x="403" y="-1525.5" font-family="Helvetica,sans-Serif" font-size="10.00">< tvm::runtime::Object ></text>
+<polyline fill="none" stroke="black" points="333,-1518.5 473,-1518.5 "/>
+<text text-anchor="middle" x="403" y="-1506.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="333,-1499.5 473,-1499.5 "/>
+<text text-anchor="start" x="341" y="-1487.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="341" y="-1476.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="341" y="-1465.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="341" y="-1454.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="341" y="-1443.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="341" y="-1432.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
-<text text-anchor="start" x="341" y="-1421.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
-<text text-anchor="start" x="341" y="-1410.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ~ObjectPtr()</text>
-<text text-anchor="start" x="341" y="-1399.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ swap()</text>
-<text text-anchor="start" x="341" y="-1388.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get()</text>
-<text text-anchor="start" x="341" y="-1377.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator->()</text>
-<text text-anchor="start" x="341" y="-1366.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 11 more...</text>
+<text text-anchor="start" x="341" y="-1421.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ~ObjectPtr()</text>
+<text text-anchor="start" x="341" y="-1410.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ swap()</text>
+<text text-anchor="start" x="341" y="-1399.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get()</text>
+<text text-anchor="start" x="341" y="-1388.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator->()</text>
+<text text-anchor="start" x="341" y="-1377.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 11 more...</text>
</a>
</g>
</g>
<!-- Node6->Node5 -->
<g id="edge6" class="edge">
<title>Node6->Node5</title>
-<path fill="none" stroke="#404040" d="M403,-1359.18C403,-1347.84 403,-1336.05 403,-1324.23"/>
-<polygon fill="none" stroke="#404040" points="403,-1323.91 399,-1317.91 403,-1311.91 407,-1317.91 403,-1323.91"/>
-<text text-anchor="middle" x="422.5" y="-1333" font-family="Helvetica,sans-Serif" font-size="10.00"> #data_</text>
+<path fill="none" stroke="#404040" d="M403,-1370.18C403,-1358.84 403,-1347.05 403,-1335.23"/>
+<polygon fill="none" stroke="#404040" points="403,-1334.91 399,-1328.91 403,-1322.91 407,-1328.91 403,-1334.91"/>
+<text text-anchor="middle" x="422.5" y="-1344" font-family="Helvetica,sans-Serif" font-size="10.00"> #data_</text>
</g>
<!-- Node7->Node1 -->
<g id="edge7" class="edge">
<title>Node7->Node1</title>
-<path fill="none" stroke="#404040" d="M456,-456.45C456,-357.82 456,-200.48 456,-113.99"/>
-<polygon fill="none" stroke="#404040" points="456,-113.76 452,-107.76 456,-101.76 460,-107.76 456,-113.76"/>
-<text text-anchor="middle" x="475.5" y="-291" font-family="Helvetica,sans-Serif" font-size="10.00"> +value</text>
+<path fill="none" stroke="#404040" d="M456,-467.22C456,-365.91 456,-202.37 456,-113.79"/>
+<polygon fill="none" stroke="#404040" points="456,-113.54 452,-107.54 456,-101.54 460,-107.54 456,-113.54"/>
+<text text-anchor="middle" x="475.5" y="-296.5" font-family="Helvetica,sans-Serif" font-size="10.00"> +value</text>
</g>
<!-- Node8 -->
<g id="node8" class="node">
<title>Node8</title>
<g id="a_node8"><a xlink:href="classtvm_1_1runtime_1_1DataType.html" target="_top" xlink:title="Runtime primitive data type.">
-<polygon fill="white" stroke="black" points="513,-149.5 513,-437.5 645,-437.5 645,-149.5 513,-149.5"/>
-<text text-anchor="middle" x="579" y="-425.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::DataType</text>
-<polyline fill="none" stroke="black" points="513,-418.5 645,-418.5 "/>
-<text text-anchor="middle" x="579" y="-406.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="513,-399.5 645,-399.5 "/>
+<polygon fill="white" stroke="black" points="513,-149.5 513,-448.5 645,-448.5 645,-149.5 513,-149.5"/>
+<text text-anchor="middle" x="579" y="-436.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::DataType</text>
+<polyline fill="none" stroke="black" points="513,-429.5 645,-429.5 "/>
+<text text-anchor="middle" x="579" y="-417.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="513,-410.5 645,-410.5 "/>
+<text text-anchor="start" x="521" y="-398.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ DataType()</text>
<text text-anchor="start" x="521" y="-387.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ DataType()</text>
<text text-anchor="start" x="521" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ DataType()</text>
-<text text-anchor="start" x="521" y="-365.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ DataType()</text>
-<text text-anchor="start" x="521" y="-354.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ code()</text>
-<text text-anchor="start" x="521" y="-343.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ bits()</text>
-<text text-anchor="start" x="521" y="-332.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ bytes()</text>
-<text text-anchor="start" x="521" y="-321.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ lanes()</text>
-<text text-anchor="start" x="521" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ vscale_factor()</text>
-<text text-anchor="start" x="521" y="-299.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get_lanes_or_vscale</text>
-<text text-anchor="start" x="521" y="-288.5" font-family="Helvetica,sans-Serif" font-size="10.00">_factor()</text>
-<text text-anchor="start" x="521" y="-277.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ is_scalar()</text>
-<text text-anchor="start" x="521" y="-266.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 24 more...</text>
-<text text-anchor="start" x="521" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Int()</text>
-<text text-anchor="start" x="521" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ UInt()</text>
-<text text-anchor="start" x="521" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Float()</text>
-<text text-anchor="start" x="521" y="-222.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ BFloat()</text>
-<text text-anchor="start" x="521" y="-211.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat8E4M3()</text>
-<text text-anchor="start" x="521" y="-200.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat8E5M2()</text>
+<text text-anchor="start" x="521" y="-365.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ code()</text>
+<text text-anchor="start" x="521" y="-354.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ bits()</text>
+<text text-anchor="start" x="521" y="-343.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ bytes()</text>
+<text text-anchor="start" x="521" y="-332.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ lanes()</text>
+<text text-anchor="start" x="521" y="-321.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ vscale_factor()</text>
+<text text-anchor="start" x="521" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get_lanes_or_vscale</text>
+<text text-anchor="start" x="521" y="-299.5" font-family="Helvetica,sans-Serif" font-size="10.00">_factor()</text>
+<text text-anchor="start" x="521" y="-288.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ is_scalar()</text>
+<text text-anchor="start" x="521" y="-277.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 26 more...</text>
+<text text-anchor="start" x="521" y="-266.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Int()</text>
+<text text-anchor="start" x="521" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ UInt()</text>
+<text text-anchor="start" x="521" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Float()</text>
+<text text-anchor="start" x="521" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ BFloat()</text>
+<text text-anchor="start" x="521" y="-222.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat8E4M3()</text>
+<text text-anchor="start" x="521" y="-211.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat8E5M2()</text>
+<text text-anchor="start" x="521" y="-200.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat4E2M1()</text>
<text text-anchor="start" x="521" y="-189.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Bool()</text>
<text text-anchor="start" x="521" y="-178.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Handle()</text>
<text text-anchor="start" x="521" y="-167.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Void()</text>
@@ -270,9 +271,9 @@
<!-- Node8->Node1 -->
<g id="edge9" class="edge">
<title>Node8->Node1</title>
-<path fill="none" stroke="#404040" d="M513,-163.45C503.96,-145.79 495.06,-128.38 487.07,-112.76"/>
-<polygon fill="none" stroke="#404040" points="486.89,-112.4 480.6,-108.88 481.43,-101.72 487.72,-105.24 486.89,-112.4"/>
-<text text-anchor="middle" x="516" y="-123" font-family="Helvetica,sans-Serif" font-size="10.00"> +dtype</text>
+<path fill="none" stroke="#404040" d="M513,-166C503.69,-147.38 494.52,-129.05 486.35,-112.7"/>
+<polygon fill="none" stroke="#404040" points="486.23,-112.46 479.97,-108.88 480.86,-101.73 487.12,-105.3 486.23,-112.46"/>
+<text text-anchor="middle" x="513" y="-123" font-family="Helvetica,sans-Serif" font-size="10.00"> +dtype</text>
</g>
</g>
</svg>
diff --git a/docs/reference/api/doxygen/classtvm_1_1relax_1_1TensorStructInfoNode.html b/docs/reference/api/doxygen/classtvm_1_1relax_1_1TensorStructInfoNode.html
index 8e84b5fe63..92512b5787 100644
--- a/docs/reference/api/doxygen/classtvm_1_1relax_1_1TensorStructInfoNode.html
+++ b/docs/reference/api/doxygen/classtvm_1_1relax_1_1TensorStructInfoNode.html
@@ -88,7 +88,7 @@ Inheritance diagram for tvm::relax::TensorStructInfoNode:</div>
<div class="dynheader">
Collaboration diagram for tvm::relax::TensorStructInfoNode:</div>
<div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1relax_1_1TensorStructInfoNode__coll__graph.svg" width="962" height="2135"><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_1relax_1_1TensorStructInfoNode__coll__graph.svg" width="962" height="2150"><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">
diff --git a/docs/reference/api/doxygen/classtvm_1_1relax_1_1TensorStructInfoNode__coll__graph.svg b/docs/reference/api/doxygen/classtvm_1_1relax_1_1TensorStructInfoNode__coll__graph.svg
index e913c5146c..8e791df79b 100644
--- a/docs/reference/api/doxygen/classtvm_1_1relax_1_1TensorStructInfoNode__coll__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1relax_1_1TensorStructInfoNode__coll__graph.svg
@@ -4,11 +4,11 @@
<!-- Generated by graphviz version 2.43.0 (0)
-->
<!-- Title: tvm::relax::TensorStructInfoNode Pages: 1 -->
-<svg width="721pt" height="1601pt"
- viewBox="0.00 0.00 721.00 1601.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 1597)">
+<svg width="721pt" height="1612pt"
+ viewBox="0.00 0.00 721.00 1612.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 1608)">
<title>tvm::relax::TensorStructInfoNode</title>
-<polygon fill="white" stroke="transparent" points="-4,4 -4,-1597 717,-1597 717,4 -4,4"/>
+<polygon fill="white" stroke="transparent" points="-4,4 -4,-1608 717,-1608 717,4 -4,4"/>
<!-- Node1 -->
<g id="node1" class="node">
<title>Node1</title>
@@ -35,151 +35,152 @@
<g id="node2" class="node">
<title>Node2</title>
<g id="a_node2"><a xlink:href="classtvm_1_1relax_1_1StructInfoNode.html" target="_top" xlink:title="Base type of all structure information.">
-<polygon fill="white" stroke="black" points="226.5,-287 226.5,-410 399.5,-410 399.5,-287 226.5,-287"/>
-<text text-anchor="middle" x="313" y="-398" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::StructInfoNode</text>
-<polyline fill="none" stroke="black" points="226.5,-391 399.5,-391 "/>
-<text text-anchor="start" x="234.5" y="-379" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
-<text text-anchor="start" x="234.5" y="-368" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_sequal</text>
-<text text-anchor="start" x="234.5" y="-357" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
-<text text-anchor="start" x="234.5" y="-346" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_shash</text>
-<text text-anchor="start" x="234.5" y="-335" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
-<text text-anchor="start" x="234.5" y="-324" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots</text>
-<polyline fill="none" stroke="black" points="226.5,-317 399.5,-317 "/>
-<text text-anchor="start" x="234.5" y="-305" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DECLARE_BASE_OBJECT</text>
-<text text-anchor="start" x="234.5" y="-294" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO()</text>
+<polygon fill="white" stroke="black" points="226.5,-292.5 226.5,-415.5 399.5,-415.5 399.5,-292.5 226.5,-292.5"/>
+<text text-anchor="middle" x="313" y="-403.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::StructInfoNode</text>
+<polyline fill="none" stroke="black" points="226.5,-396.5 399.5,-396.5 "/>
+<text text-anchor="start" x="234.5" y="-384.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
+<text text-anchor="start" x="234.5" y="-373.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_sequal</text>
+<text text-anchor="start" x="234.5" y="-362.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
+<text text-anchor="start" x="234.5" y="-351.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_shash</text>
+<text text-anchor="start" x="234.5" y="-340.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
+<text text-anchor="start" x="234.5" y="-329.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots</text>
+<polyline fill="none" stroke="black" points="226.5,-322.5 399.5,-322.5 "/>
+<text text-anchor="start" x="234.5" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DECLARE_BASE_OBJECT</text>
+<text text-anchor="start" x="234.5" y="-299.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO()</text>
</a>
</g>
</g>
<!-- Node2->Node1 -->
<g id="edge1" class="edge">
<title>Node2->Node1</title>
-<path fill="none" stroke="midnightblue" d="M354.79,-277.94C377.07,-240.85 404.55,-195.11 427.5,-156.9"/>
-<polygon fill="none" stroke="midnightblue" points="351.68,-276.31 349.53,-286.69 357.68,-279.92 351.68,-276.31"/>
+<path fill="none" stroke="midnightblue" d="M354.09,-283.2C376.83,-244.56 405.15,-196.46 428.56,-156.7"/>
+<polygon fill="none" stroke="midnightblue" points="350.79,-281.91 348.73,-292.3 356.82,-285.46 350.79,-281.91"/>
</g>
<!-- Node3 -->
<g id="node3" class="node">
<title>Node3</title>
<g id="a_node3"><a xlink:href="classtvm_1_1runtime_1_1Object.html" target="_top" xlink:title="base class of all object containers.">
-<polygon fill="white" stroke="black" points="0,-708.5 0,-1095.5 184,-1095.5 184,-708.5 0,-708.5"/>
-<text text-anchor="middle" x="92" y="-1083.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::Object</text>
-<polyline fill="none" stroke="black" points="0,-1076.5 184,-1076.5 "/>
-<text text-anchor="start" x="8" y="-1064.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
-<text text-anchor="start" x="8" y="-1053.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_final</text>
-<text text-anchor="start" x="8" y="-1042.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots</text>
-<text text-anchor="start" x="8" y="-1031.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots_can</text>
-<text text-anchor="start" x="8" y="-1020.5" font-family="Helvetica,sans-Serif" font-size="10.00">_overflow</text>
-<text text-anchor="start" x="8" y="-1009.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_visit</text>
-<text text-anchor="start" x="8" y="-998.5" font-family="Helvetica,sans-Serif" font-size="10.00">_attrs</text>
-<text text-anchor="start" x="8" y="-987.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_sequal</text>
-<text text-anchor="start" x="8" y="-976.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
-<text text-anchor="start" x="8" y="-965.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_shash</text>
-<text text-anchor="start" x="8" y="-954.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
-<text text-anchor="start" x="8" y="-943.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_index</text>
-<text text-anchor="start" x="8" y="-932.5" font-family="Helvetica,sans-Serif" font-size="10.00"># type_index_</text>
-<text text-anchor="start" x="8" y="-921.5" font-family="Helvetica,sans-Serif" font-size="10.00"># ref_counter_</text>
-<polyline fill="none" stroke="black" points="0,-914.5 184,-914.5 "/>
-<text text-anchor="start" x="8" y="-902.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ type_index()</text>
-<text text-anchor="start" x="8" y="-891.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ GetTypeKey()</text>
-<text text-anchor="start" x="8" y="-880.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ GetTypeKeyHash()</text>
-<text text-anchor="start" x="8" y="-869.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ IsInstance()</text>
-<text text-anchor="start" x="8" y="-858.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ unique()</text>
+<polygon fill="white" stroke="black" points="0,-719.5 0,-1106.5 184,-1106.5 184,-719.5 0,-719.5"/>
+<text text-anchor="middle" x="92" y="-1094.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::Object</text>
+<polyline fill="none" stroke="black" points="0,-1087.5 184,-1087.5 "/>
+<text text-anchor="start" x="8" y="-1075.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
+<text text-anchor="start" x="8" y="-1064.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_final</text>
+<text text-anchor="start" x="8" y="-1053.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots</text>
+<text text-anchor="start" x="8" y="-1042.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots_can</text>
+<text text-anchor="start" x="8" y="-1031.5" font-family="Helvetica,sans-Serif" font-size="10.00">_overflow</text>
+<text text-anchor="start" x="8" y="-1020.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_visit</text>
+<text text-anchor="start" x="8" y="-1009.5" font-family="Helvetica,sans-Serif" font-size="10.00">_attrs</text>
+<text text-anchor="start" x="8" y="-998.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_sequal</text>
+<text text-anchor="start" x="8" y="-987.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
+<text text-anchor="start" x="8" y="-976.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_shash</text>
+<text text-anchor="start" x="8" y="-965.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
+<text text-anchor="start" x="8" y="-954.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_index</text>
+<text text-anchor="start" x="8" y="-943.5" font-family="Helvetica,sans-Serif" font-size="10.00"># type_index_</text>
+<text text-anchor="start" x="8" y="-932.5" font-family="Helvetica,sans-Serif" font-size="10.00"># ref_counter_</text>
+<polyline fill="none" stroke="black" points="0,-925.5 184,-925.5 "/>
+<text text-anchor="start" x="8" y="-913.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ type_index()</text>
+<text text-anchor="start" x="8" y="-902.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ GetTypeKey()</text>
+<text text-anchor="start" x="8" y="-891.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ GetTypeKeyHash()</text>
+<text text-anchor="start" x="8" y="-880.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ IsInstance()</text>
+<text text-anchor="start" x="8" y="-869.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ unique()</text>
+<text text-anchor="start" x="8" y="-858.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Object()</text>
<text text-anchor="start" x="8" y="-847.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Object()</text>
<text text-anchor="start" x="8" y="-836.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Object()</text>
-<text text-anchor="start" x="8" y="-825.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Object()</text>
+<text text-anchor="start" x="8" y="-825.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
<text text-anchor="start" x="8" y="-814.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
-<text text-anchor="start" x="8" y="-803.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
-<text text-anchor="start" x="8" y="-792.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeIndex2Key()</text>
-<text text-anchor="start" x="8" y="-781.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeIndex2KeyHash()</text>
-<text text-anchor="start" x="8" y="-770.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeKey2Index()</text>
-<text text-anchor="start" x="8" y="-759.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _GetOrAllocRuntimeTypeIndex()</text>
-<text text-anchor="start" x="8" y="-748.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RuntimeTypeIndex()</text>
-<text text-anchor="start" x="8" y="-737.5" font-family="Helvetica,sans-Serif" font-size="10.00"># IncRef()</text>
-<text text-anchor="start" x="8" y="-726.5" font-family="Helvetica,sans-Serif" font-size="10.00"># DecRef()</text>
-<text text-anchor="start" x="8" y="-715.5" font-family="Helvetica,sans-Serif" font-size="10.00"># GetOrAllocRuntimeTypeIndex()</text>
+<text text-anchor="start" x="8" y="-803.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeIndex2Key()</text>
+<text text-anchor="start" x="8" y="-792.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeIndex2KeyHash()</text>
+<text text-anchor="start" x="8" y="-781.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeKey2Index()</text>
+<text text-anchor="start" x="8" y="-770.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _GetOrAllocRuntimeTypeIndex()</text>
+<text text-anchor="start" x="8" y="-759.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RuntimeTypeIndex()</text>
+<text text-anchor="start" x="8" y="-748.5" font-family="Helvetica,sans-Serif" font-size="10.00"># IncRef()</text>
+<text text-anchor="start" x="8" y="-737.5" font-family="Helvetica,sans-Serif" font-size="10.00"># DecRef()</text>
+<text text-anchor="start" x="8" y="-726.5" font-family="Helvetica,sans-Serif" font-size="10.00"># GetOrAllocRuntimeTypeIndex()</text>
</a>
</g>
</g>
<!-- Node3->Node2 -->
<g id="edge2" class="edge">
<title>Node3->Node2</title>
-<path fill="none" stroke="midnightblue" d="M172.96,-698.96C213.99,-596.58 260.87,-479.58 288.65,-410.27"/>
-<polygon fill="none" stroke="midnightblue" points="169.61,-697.91 169.14,-708.5 176.11,-700.52 169.61,-697.91"/>
+<path fill="none" stroke="midnightblue" d="M172.24,-709.76C213.55,-605.64 260.98,-486.11 288.89,-415.77"/>
+<polygon fill="none" stroke="midnightblue" points="168.95,-708.56 168.52,-719.14 175.46,-711.14 168.95,-708.56"/>
</g>
<!-- Node3->Node3 -->
<g id="edge3" class="edge">
<title>Node3->Node3</title>
-<path fill="none" stroke="#404040" d="M184.28,-935.92C195.02,-929.66 202,-918.36 202,-902 202,-891.01 198.85,-882.3 193.52,-875.87"/>
-<polygon fill="none" stroke="#404040" points="193.46,-875.81 186.29,-875 184.28,-868.08 191.45,-868.89 193.46,-875.81"/>
-<text text-anchor="middle" x="228" y="-899.5" font-family="Helvetica,sans-Serif" font-size="10.00"> #deleter_</text>
+<path fill="none" stroke="#404040" d="M184.28,-946.92C195.02,-940.66 202,-929.36 202,-913 202,-902.01 198.85,-893.3 193.52,-886.87"/>
+<polygon fill="none" stroke="#404040" points="193.46,-886.81 186.29,-886 184.28,-879.08 191.45,-879.89 193.46,-886.81"/>
+<text text-anchor="middle" x="228" y="-910.5" font-family="Helvetica,sans-Serif" font-size="10.00"> #deleter_</text>
</g>
<!-- Node4 -->
<g id="node4" class="node">
<title>Node4</title>
<g id="a_node4"><a xlink:href="classtvm_1_1Span.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="272,-857 272,-947 428,-947 428,-857 272,-857"/>
-<text text-anchor="middle" x="350" y="-935" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::Span</text>
-<polyline fill="none" stroke="black" points="272,-928 428,-928 "/>
-<text text-anchor="middle" x="350" y="-916" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="272,-909 428,-909 "/>
-<text text-anchor="start" x="280" y="-897" font-family="Helvetica,sans-Serif" font-size="10.00">+ Span()</text>
-<text text-anchor="start" x="280" y="-886" font-family="Helvetica,sans-Serif" font-size="10.00">+ Merge()</text>
-<text text-anchor="start" x="280" y="-875" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="280" y="-864" font-family="Helvetica,sans-Serif" font-size="10.00">_METHODS()</text>
+<polygon fill="white" stroke="black" points="272,-868 272,-958 428,-958 428,-868 272,-868"/>
+<text text-anchor="middle" x="350" y="-946" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::Span</text>
+<polyline fill="none" stroke="black" points="272,-939 428,-939 "/>
+<text text-anchor="middle" x="350" y="-927" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="272,-920 428,-920 "/>
+<text text-anchor="start" x="280" y="-908" font-family="Helvetica,sans-Serif" font-size="10.00">+ Span()</text>
+<text text-anchor="start" x="280" y="-897" font-family="Helvetica,sans-Serif" font-size="10.00">+ Merge()</text>
+<text text-anchor="start" x="280" y="-886" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="280" y="-875" font-family="Helvetica,sans-Serif" font-size="10.00">_METHODS()</text>
</a>
</g>
</g>
<!-- Node4->Node2 -->
<g id="edge4" class="edge">
<title>Node4->Node2</title>
-<path fill="none" stroke="#404040" d="M343.04,-856.67C336.66,-814.07 327.54,-747.8 323,-690 315.77,-597.81 313.64,-491.21 313.08,-422.19"/>
-<polygon fill="none" stroke="#404040" points="313.08,-422.18 309.04,-416.21 312.99,-410.18 317.04,-416.15 313.08,-422.18"/>
-<text text-anchor="middle" x="340.5" y="-598" font-family="Helvetica,sans-Serif" font-size="10.00"> +span</text>
+<path fill="none" stroke="#404040" d="M343.04,-867.67C336.65,-825.07 327.52,-758.8 323,-701 315.64,-606.9 313.54,-498.02 313.03,-427.92"/>
+<polygon fill="none" stroke="#404040" points="313.03,-427.72 308.99,-421.75 312.95,-415.72 316.99,-421.7 313.03,-427.72"/>
+<text text-anchor="middle" x="340.5" y="-609" font-family="Helvetica,sans-Serif" font-size="10.00"> +span</text>
</g>
<!-- Node5 -->
<g id="node5" class="node">
<title>Node5</title>
<g id="a_node5"><a xlink:href="classtvm_1_1runtime_1_1ObjectRef.html" target="_top" xlink:title="Base class of all object reference.">
-<polygon fill="white" stroke="black" points="389,-1133.5 389,-1366.5 523,-1366.5 523,-1133.5 389,-1133.5"/>
-<text text-anchor="middle" x="456" y="-1354.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::ObjectRef</text>
-<polyline fill="none" stroke="black" points="389,-1347.5 523,-1347.5 "/>
-<text text-anchor="start" x="397" y="-1335.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_is_nullable</text>
-<polyline fill="none" stroke="black" points="389,-1328.5 523,-1328.5 "/>
+<polygon fill="white" stroke="black" points="389,-1144.5 389,-1377.5 523,-1377.5 523,-1144.5 389,-1144.5"/>
+<text text-anchor="middle" x="456" y="-1365.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::ObjectRef</text>
+<polyline fill="none" stroke="black" points="389,-1358.5 523,-1358.5 "/>
+<text text-anchor="start" x="397" y="-1346.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_is_nullable</text>
+<polyline fill="none" stroke="black" points="389,-1339.5 523,-1339.5 "/>
+<text text-anchor="start" x="397" y="-1327.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectRef()</text>
<text text-anchor="start" x="397" y="-1316.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectRef()</text>
-<text text-anchor="start" x="397" y="-1305.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectRef()</text>
-<text text-anchor="start" x="397" y="-1294.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ same_as()</text>
-<text text-anchor="start" x="397" y="-1283.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator==()</text>
-<text text-anchor="start" x="397" y="-1272.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator!=()</text>
-<text text-anchor="start" x="397" y="-1261.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator<()</text>
-<text text-anchor="start" x="397" y="-1250.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ defined()</text>
-<text text-anchor="start" x="397" y="-1239.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get()</text>
-<text text-anchor="start" x="397" y="-1228.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator->()</text>
-<text text-anchor="start" x="397" y="-1217.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ unique()</text>
-<text text-anchor="start" x="397" y="-1206.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ use_count()</text>
+<text text-anchor="start" x="397" y="-1305.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ same_as()</text>
+<text text-anchor="start" x="397" y="-1294.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator==()</text>
+<text text-anchor="start" x="397" y="-1283.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator!=()</text>
+<text text-anchor="start" x="397" y="-1272.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator<()</text>
+<text text-anchor="start" x="397" y="-1261.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ defined()</text>
+<text text-anchor="start" x="397" y="-1250.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get()</text>
+<text text-anchor="start" x="397" y="-1239.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator->()</text>
+<text text-anchor="start" x="397" y="-1228.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ unique()</text>
+<text text-anchor="start" x="397" y="-1217.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ use_count()</text>
+<text text-anchor="start" x="397" y="-1206.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ as()</text>
<text text-anchor="start" x="397" y="-1195.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ as()</text>
-<text text-anchor="start" x="397" y="-1184.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ as()</text>
-<text text-anchor="start" x="397" y="-1173.5" font-family="Helvetica,sans-Serif" font-size="10.00"># get_mutable()</text>
-<text text-anchor="start" x="397" y="-1162.5" font-family="Helvetica,sans-Serif" font-size="10.00"># DowncastNoCheck()</text>
-<text text-anchor="start" x="397" y="-1151.5" font-family="Helvetica,sans-Serif" font-size="10.00"># FFIClearAfterMove()</text>
-<text text-anchor="start" x="397" y="-1140.5" font-family="Helvetica,sans-Serif" font-size="10.00"># GetDataPtr()</text>
+<text text-anchor="start" x="397" y="-1184.5" font-family="Helvetica,sans-Serif" font-size="10.00"># get_mutable()</text>
+<text text-anchor="start" x="397" y="-1173.5" font-family="Helvetica,sans-Serif" font-size="10.00"># DowncastNoCheck()</text>
+<text text-anchor="start" x="397" y="-1162.5" font-family="Helvetica,sans-Serif" font-size="10.00"># FFIClearAfterMove()</text>
+<text text-anchor="start" x="397" y="-1151.5" font-family="Helvetica,sans-Serif" font-size="10.00"># GetDataPtr()</text>
</a>
</g>
</g>
<!-- Node5->Node4 -->
<g id="edge5" class="edge">
<title>Node5->Node4</title>
-<path fill="none" stroke="midnightblue" d="M417.55,-1123.49C398.67,-1061.86 377.11,-991.5 363.53,-947.17"/>
-<polygon fill="none" stroke="midnightblue" points="414.28,-1124.77 420.56,-1133.31 420.97,-1122.72 414.28,-1124.77"/>
+<path fill="none" stroke="midnightblue" d="M417.55,-1134.49C398.67,-1072.86 377.11,-1002.5 363.53,-958.17"/>
+<polygon fill="none" stroke="midnightblue" points="414.28,-1135.77 420.56,-1144.31 420.97,-1133.72 414.28,-1135.77"/>
</g>
<!-- Node7 -->
<g id="node7" class="node">
<title>Node7</title>
<g id="a_node7"><a xlink:href="classtvm_1_1runtime_1_1Optional.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="367,-511.5 367,-689.5 495,-689.5 495,-511.5 367,-511.5"/>
-<text text-anchor="start" x="375" y="-677.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::Optional</text>
-<text text-anchor="middle" x="431" y="-666.5" font-family="Helvetica,sans-Serif" font-size="10.00">< tvm::RelaxExpr ></text>
-<polyline fill="none" stroke="black" points="367,-659.5 495,-659.5 "/>
-<text text-anchor="start" x="375" y="-647.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_is_nullable</text>
-<polyline fill="none" stroke="black" points="367,-640.5 495,-640.5 "/>
+<polygon fill="white" stroke="black" points="367,-522.5 367,-700.5 495,-700.5 495,-522.5 367,-522.5"/>
+<text text-anchor="start" x="375" y="-688.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::Optional</text>
+<text text-anchor="middle" x="431" y="-677.5" font-family="Helvetica,sans-Serif" font-size="10.00">< tvm::RelaxExpr ></text>
+<polyline fill="none" stroke="black" points="367,-670.5 495,-670.5 "/>
+<text text-anchor="start" x="375" y="-658.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_is_nullable</text>
+<polyline fill="none" stroke="black" points="367,-651.5 495,-651.5 "/>
+<text text-anchor="start" x="375" y="-639.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Optional()</text>
<text text-anchor="start" x="375" y="-628.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Optional()</text>
<text text-anchor="start" x="375" y="-617.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Optional()</text>
<text text-anchor="start" x="375" y="-606.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Optional()</text>
@@ -187,29 +188,29 @@
<text text-anchor="start" x="375" y="-584.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Optional()</text>
<text text-anchor="start" x="375" y="-573.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Optional()</text>
<text text-anchor="start" x="375" y="-562.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Optional()</text>
-<text text-anchor="start" x="375" y="-551.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Optional()</text>
+<text text-anchor="start" x="375" y="-551.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
<text text-anchor="start" x="375" y="-540.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
-<text text-anchor="start" x="375" y="-529.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
-<text text-anchor="start" x="375" y="-518.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 15 more...</text>
+<text text-anchor="start" x="375" y="-529.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 15 more...</text>
</a>
</g>
</g>
<!-- Node5->Node7 -->
<g id="edge8" class="edge">
<title>Node5->Node7</title>
-<path fill="none" stroke="midnightblue" d="M452.34,-1123.3C448.97,-1013.63 443.5,-850.25 437,-708 436.73,-701.99 436.42,-695.79 436.11,-689.54"/>
-<polygon fill="none" stroke="midnightblue" points="448.84,-1123.52 452.65,-1133.41 455.84,-1123.31 448.84,-1123.52"/>
+<path fill="none" stroke="midnightblue" d="M452.34,-1134.3C448.97,-1024.63 443.5,-861.25 437,-719 436.73,-712.99 436.42,-706.79 436.11,-700.54"/>
+<polygon fill="none" stroke="midnightblue" points="448.84,-1134.52 452.65,-1144.41 455.84,-1134.31 448.84,-1134.52"/>
</g>
<!-- Node9 -->
<g id="node9" class="node">
<title>Node9</title>
<g id="a_node9"><a xlink:href="classtvm_1_1runtime_1_1Optional.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="500,-511.5 500,-689.5 628,-689.5 628,-511.5 500,-511.5"/>
-<text text-anchor="start" x="508" y="-677.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::Optional</text>
-<text text-anchor="middle" x="564" y="-666.5" font-family="Helvetica,sans-Serif" font-size="10.00">< tvm::VDevice ></text>
-<polyline fill="none" stroke="black" points="500,-659.5 628,-659.5 "/>
-<text text-anchor="start" x="508" y="-647.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_is_nullable</text>
-<polyline fill="none" stroke="black" points="500,-640.5 628,-640.5 "/>
+<polygon fill="white" stroke="black" points="500,-522.5 500,-700.5 628,-700.5 628,-522.5 500,-522.5"/>
+<text text-anchor="start" x="508" y="-688.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::Optional</text>
+<text text-anchor="middle" x="564" y="-677.5" font-family="Helvetica,sans-Serif" font-size="10.00">< tvm::VDevice ></text>
+<polyline fill="none" stroke="black" points="500,-670.5 628,-670.5 "/>
+<text text-anchor="start" x="508" y="-658.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_is_nullable</text>
+<polyline fill="none" stroke="black" points="500,-651.5 628,-651.5 "/>
+<text text-anchor="start" x="508" y="-639.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Optional()</text>
<text text-anchor="start" x="508" y="-628.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Optional()</text>
<text text-anchor="start" x="508" y="-617.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Optional()</text>
<text text-anchor="start" x="508" y="-606.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Optional()</text>
@@ -217,84 +218,84 @@
<text text-anchor="start" x="508" y="-584.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Optional()</text>
<text text-anchor="start" x="508" y="-573.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Optional()</text>
<text text-anchor="start" x="508" y="-562.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Optional()</text>
-<text text-anchor="start" x="508" y="-551.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Optional()</text>
+<text text-anchor="start" x="508" y="-551.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
<text text-anchor="start" x="508" y="-540.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
-<text text-anchor="start" x="508" y="-529.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
-<text text-anchor="start" x="508" y="-518.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 15 more...</text>
+<text text-anchor="start" x="508" y="-529.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 15 more...</text>
</a>
</g>
</g>
<!-- Node5->Node9 -->
<g id="edge11" class="edge">
<title>Node5->Node9</title>
-<path fill="none" stroke="midnightblue" d="M477.01,-1123.03C498.27,-995.55 530.6,-801.74 549.28,-689.77"/>
-<polygon fill="none" stroke="midnightblue" points="473.5,-1122.8 475.31,-1133.24 480.41,-1123.95 473.5,-1122.8"/>
+<path fill="none" stroke="midnightblue" d="M477.01,-1134.03C498.27,-1006.55 530.6,-812.74 549.28,-700.77"/>
+<polygon fill="none" stroke="midnightblue" points="473.5,-1133.8 475.31,-1144.24 480.41,-1134.95 473.5,-1133.8"/>
</g>
<!-- Node6 -->
<g id="node6" class="node">
<title>Node6</title>
<g id="a_node6"><a xlink:href="classtvm_1_1runtime_1_1ObjectPtr.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="386,-1414.5 386,-1592.5 526,-1592.5 526,-1414.5 386,-1414.5"/>
-<text text-anchor="start" x="394" y="-1580.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::ObjectPtr</text>
-<text text-anchor="middle" x="456" y="-1569.5" font-family="Helvetica,sans-Serif" font-size="10.00">< tvm::runtime::Object ></text>
-<polyline fill="none" stroke="black" points="386,-1562.5 526,-1562.5 "/>
-<text text-anchor="middle" x="456" y="-1550.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="386,-1543.5 526,-1543.5 "/>
+<polygon fill="white" stroke="black" points="386,-1425.5 386,-1603.5 526,-1603.5 526,-1425.5 386,-1425.5"/>
+<text text-anchor="start" x="394" y="-1591.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::ObjectPtr</text>
+<text text-anchor="middle" x="456" y="-1580.5" font-family="Helvetica,sans-Serif" font-size="10.00">< tvm::runtime::Object ></text>
+<polyline fill="none" stroke="black" points="386,-1573.5 526,-1573.5 "/>
+<text text-anchor="middle" x="456" y="-1561.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="386,-1554.5 526,-1554.5 "/>
+<text text-anchor="start" x="394" y="-1542.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="394" y="-1531.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="394" y="-1520.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="394" y="-1509.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="394" y="-1498.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="394" y="-1487.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
-<text text-anchor="start" x="394" y="-1476.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
-<text text-anchor="start" x="394" y="-1465.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ~ObjectPtr()</text>
-<text text-anchor="start" x="394" y="-1454.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ swap()</text>
-<text text-anchor="start" x="394" y="-1443.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get()</text>
-<text text-anchor="start" x="394" y="-1432.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator->()</text>
-<text text-anchor="start" x="394" y="-1421.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 11 more...</text>
+<text text-anchor="start" x="394" y="-1476.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ~ObjectPtr()</text>
+<text text-anchor="start" x="394" y="-1465.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ swap()</text>
+<text text-anchor="start" x="394" y="-1454.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get()</text>
+<text text-anchor="start" x="394" y="-1443.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator->()</text>
+<text text-anchor="start" x="394" y="-1432.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 11 more...</text>
</a>
</g>
</g>
<!-- Node6->Node5 -->
<g id="edge6" class="edge">
<title>Node6->Node5</title>
-<path fill="none" stroke="#404040" d="M456,-1414.18C456,-1402.84 456,-1391.05 456,-1379.23"/>
-<polygon fill="none" stroke="#404040" points="456,-1378.91 452,-1372.91 456,-1366.91 460,-1372.91 456,-1378.91"/>
-<text text-anchor="middle" x="475.5" y="-1388" font-family="Helvetica,sans-Serif" font-size="10.00"> #data_</text>
+<path fill="none" stroke="#404040" d="M456,-1425.18C456,-1413.84 456,-1402.05 456,-1390.23"/>
+<polygon fill="none" stroke="#404040" points="456,-1389.91 452,-1383.91 456,-1377.91 460,-1383.91 456,-1389.91"/>
+<text text-anchor="middle" x="475.5" y="-1399" font-family="Helvetica,sans-Serif" font-size="10.00"> #data_</text>
</g>
<!-- Node7->Node1 -->
<g id="edge7" class="edge">
<title>Node7->Node1</title>
-<path fill="none" stroke="#404040" d="M431.65,-511.23C433.09,-430.88 437.41,-309.11 450,-204 451.38,-192.44 453.22,-180.35 455.26,-168.43"/>
-<polygon fill="none" stroke="#404040" points="455.27,-168.42 452.38,-161.81 457.37,-156.6 460.25,-163.21 455.27,-168.42"/>
-<text text-anchor="middle" x="470.5" y="-346" font-family="Helvetica,sans-Serif" font-size="10.00"> +shape</text>
+<path fill="none" stroke="#404040" d="M431.48,-522.18C432.79,-439.63 437,-313.09 450,-204 451.38,-192.44 453.21,-180.35 455.25,-168.43"/>
+<polygon fill="none" stroke="#404040" points="455.25,-168.42 452.36,-161.81 457.35,-156.6 460.24,-163.21 455.25,-168.42"/>
+<text text-anchor="middle" x="470.5" y="-351.5" font-family="Helvetica,sans-Serif" font-size="10.00"> +shape</text>
</g>
<!-- Node8 -->
<g id="node8" class="node">
<title>Node8</title>
<g id="a_node8"><a xlink:href="classtvm_1_1runtime_1_1DataType.html" target="_top" xlink:title="Runtime primitive data type.">
-<polygon fill="white" stroke="black" points="581,-204.5 581,-492.5 713,-492.5 713,-204.5 581,-204.5"/>
-<text text-anchor="middle" x="647" y="-480.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::DataType</text>
-<polyline fill="none" stroke="black" points="581,-473.5 713,-473.5 "/>
-<text text-anchor="middle" x="647" y="-461.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="581,-454.5 713,-454.5 "/>
+<polygon fill="white" stroke="black" points="581,-204.5 581,-503.5 713,-503.5 713,-204.5 581,-204.5"/>
+<text text-anchor="middle" x="647" y="-491.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::DataType</text>
+<polyline fill="none" stroke="black" points="581,-484.5 713,-484.5 "/>
+<text text-anchor="middle" x="647" y="-472.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="581,-465.5 713,-465.5 "/>
+<text text-anchor="start" x="589" y="-453.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ DataType()</text>
<text text-anchor="start" x="589" y="-442.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ DataType()</text>
<text text-anchor="start" x="589" y="-431.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ DataType()</text>
-<text text-anchor="start" x="589" y="-420.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ DataType()</text>
-<text text-anchor="start" x="589" y="-409.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ code()</text>
-<text text-anchor="start" x="589" y="-398.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ bits()</text>
-<text text-anchor="start" x="589" y="-387.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ bytes()</text>
-<text text-anchor="start" x="589" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ lanes()</text>
-<text text-anchor="start" x="589" y="-365.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ vscale_factor()</text>
-<text text-anchor="start" x="589" y="-354.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get_lanes_or_vscale</text>
-<text text-anchor="start" x="589" y="-343.5" font-family="Helvetica,sans-Serif" font-size="10.00">_factor()</text>
-<text text-anchor="start" x="589" y="-332.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ is_scalar()</text>
-<text text-anchor="start" x="589" y="-321.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 24 more...</text>
-<text text-anchor="start" x="589" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Int()</text>
-<text text-anchor="start" x="589" y="-299.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ UInt()</text>
-<text text-anchor="start" x="589" y="-288.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Float()</text>
-<text text-anchor="start" x="589" y="-277.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ BFloat()</text>
-<text text-anchor="start" x="589" y="-266.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat8E4M3()</text>
-<text text-anchor="start" x="589" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat8E5M2()</text>
+<text text-anchor="start" x="589" y="-420.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ code()</text>
+<text text-anchor="start" x="589" y="-409.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ bits()</text>
+<text text-anchor="start" x="589" y="-398.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ bytes()</text>
+<text text-anchor="start" x="589" y="-387.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ lanes()</text>
+<text text-anchor="start" x="589" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ vscale_factor()</text>
+<text text-anchor="start" x="589" y="-365.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get_lanes_or_vscale</text>
+<text text-anchor="start" x="589" y="-354.5" font-family="Helvetica,sans-Serif" font-size="10.00">_factor()</text>
+<text text-anchor="start" x="589" y="-343.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ is_scalar()</text>
+<text text-anchor="start" x="589" y="-332.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 26 more...</text>
+<text text-anchor="start" x="589" y="-321.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Int()</text>
+<text text-anchor="start" x="589" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ UInt()</text>
+<text text-anchor="start" x="589" y="-299.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Float()</text>
+<text text-anchor="start" x="589" y="-288.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ BFloat()</text>
+<text text-anchor="start" x="589" y="-277.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat8E4M3()</text>
+<text text-anchor="start" x="589" y="-266.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat8E5M2()</text>
+<text text-anchor="start" x="589" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat4E2M1()</text>
<text text-anchor="start" x="589" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Bool()</text>
<text text-anchor="start" x="589" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Handle()</text>
<text text-anchor="start" x="589" y="-222.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Void()</text>
@@ -305,16 +306,16 @@
<!-- Node8->Node1 -->
<g id="edge9" class="edge">
<title>Node8->Node1</title>
-<path fill="none" stroke="#404040" d="M580.92,-226.24C576.32,-218.65 571.65,-211.18 567,-204 559.01,-191.67 550.21,-178.96 541.31,-166.58"/>
-<polygon fill="none" stroke="#404040" points="541.22,-166.45 534.45,-163.94 534.17,-156.74 540.93,-159.24 541.22,-166.45"/>
+<path fill="none" stroke="#404040" d="M580.87,-226.64C576.3,-218.91 571.65,-211.31 567,-204 559.11,-191.61 550.37,-178.86 541.49,-166.46"/>
+<polygon fill="none" stroke="#404040" points="541.4,-166.33 534.64,-163.81 534.36,-156.61 541.12,-159.12 541.4,-166.33"/>
<text text-anchor="middle" x="573" y="-178" font-family="Helvetica,sans-Serif" font-size="10.00"> +dtype</text>
</g>
<!-- Node9->Node1 -->
<g id="edge10" class="edge">
<title>Node9->Node1</title>
-<path fill="none" stroke="#404040" d="M527.2,-511.47C525.26,-505.28 523.5,-499.08 522,-493 491.14,-367.56 506.63,-332.23 491,-204 489.62,-192.67 488.09,-180.77 486.54,-169.01"/>
-<polygon fill="none" stroke="#404040" points="486.5,-168.72 481.74,-163.3 484.91,-156.83 489.67,-162.24 486.5,-168.72"/>
-<text text-anchor="middle" x="547" y="-346" font-family="Helvetica,sans-Serif" font-size="10.00"> +vdevice</text>
+<path fill="none" stroke="#404040" d="M527.17,-522.47C525.24,-516.28 523.48,-510.08 522,-504 490.23,-373.78 506.96,-337.09 491,-204 489.64,-192.67 488.13,-180.76 486.58,-169"/>
+<polygon fill="none" stroke="#404040" points="486.54,-168.72 481.78,-163.3 484.96,-156.82 489.71,-162.24 486.54,-168.72"/>
+<text text-anchor="middle" x="547" y="-351.5" font-family="Helvetica,sans-Serif" font-size="10.00"> +vdevice</text>
</g>
</g>
</svg>
diff --git a/docs/reference/api/doxygen/classtvm_1_1relax_1_1TensorTypeNode.html b/docs/reference/api/doxygen/classtvm_1_1relax_1_1TensorTypeNode.html
index 068899f4f2..75f1dd3627 100644
--- a/docs/reference/api/doxygen/classtvm_1_1relax_1_1TensorTypeNode.html
+++ b/docs/reference/api/doxygen/classtvm_1_1relax_1_1TensorTypeNode.html
@@ -88,7 +88,7 @@ Inheritance diagram for tvm::relax::TensorTypeNode:</div>
<div class="dynheader">
Collaboration diagram for tvm::relax::TensorTypeNode:</div>
<div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1relax_1_1TensorTypeNode__coll__graph.svg" width="620" height="1882"><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_1relax_1_1TensorTypeNode__coll__graph.svg" width="620" height="1896"><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">
diff --git a/docs/reference/api/doxygen/classtvm_1_1relax_1_1TensorTypeNode__coll__graph.svg b/docs/reference/api/doxygen/classtvm_1_1relax_1_1TensorTypeNode__coll__graph.svg
index f12af7a241..7370b1d133 100644
--- a/docs/reference/api/doxygen/classtvm_1_1relax_1_1TensorTypeNode__coll__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1relax_1_1TensorTypeNode__coll__graph.svg
@@ -4,11 +4,11 @@
<!-- Generated by graphviz version 2.43.0 (0)
-->
<!-- Title: tvm::relax::TensorTypeNode Pages: 1 -->
-<svg width="465pt" height="1411pt"
- viewBox="0.00 0.00 465.00 1411.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 1407)">
+<svg width="465pt" height="1422pt"
+ viewBox="0.00 0.00 465.00 1422.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 1418)">
<title>tvm::relax::TensorTypeNode</title>
-<polygon fill="white" stroke="transparent" points="-4,4 -4,-1407 461,-1407 461,4 -4,4"/>
+<polygon fill="white" stroke="transparent" points="-4,4 -4,-1418 461,-1418 461,4 -4,4"/>
<!-- Node1 -->
<g id="node1" class="node">
<title>Node1</title>
@@ -33,199 +33,200 @@
<g id="node2" class="node">
<title>Node2</title>
<g id="a_node2"><a xlink:href="classtvm_1_1TypeNode.html" target="_top" xlink:title="Type is the base type of all types.">
-<polygon fill="white" stroke="black" points="133.5,-265 133.5,-388 306.5,-388 306.5,-265 133.5,-265"/>
-<text text-anchor="middle" x="220" y="-376" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::TypeNode</text>
-<polyline fill="none" stroke="black" points="133.5,-369 306.5,-369 "/>
-<text text-anchor="start" x="141.5" y="-357" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
-<text text-anchor="start" x="141.5" y="-346" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_sequal</text>
-<text text-anchor="start" x="141.5" y="-335" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
-<text text-anchor="start" x="141.5" y="-324" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_shash</text>
-<text text-anchor="start" x="141.5" y="-313" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
-<text text-anchor="start" x="141.5" y="-302" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots</text>
-<polyline fill="none" stroke="black" points="133.5,-295 306.5,-295 "/>
-<text text-anchor="start" x="141.5" y="-283" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DECLARE_BASE_OBJECT</text>
-<text text-anchor="start" x="141.5" y="-272" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO()</text>
+<polygon fill="white" stroke="black" points="133.5,-270.5 133.5,-393.5 306.5,-393.5 306.5,-270.5 133.5,-270.5"/>
+<text text-anchor="middle" x="220" y="-381.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::TypeNode</text>
+<polyline fill="none" stroke="black" points="133.5,-374.5 306.5,-374.5 "/>
+<text text-anchor="start" x="141.5" y="-362.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
+<text text-anchor="start" x="141.5" y="-351.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_sequal</text>
+<text text-anchor="start" x="141.5" y="-340.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
+<text text-anchor="start" x="141.5" y="-329.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_shash</text>
+<text text-anchor="start" x="141.5" y="-318.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
+<text text-anchor="start" x="141.5" y="-307.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots</text>
+<polyline fill="none" stroke="black" points="133.5,-300.5 306.5,-300.5 "/>
+<text text-anchor="start" x="141.5" y="-288.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DECLARE_BASE_OBJECT</text>
+<text text-anchor="start" x="141.5" y="-277.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO()</text>
</a>
</g>
</g>
<!-- Node2->Node1 -->
<g id="edge1" class="edge">
<title>Node2->Node1</title>
-<path fill="none" stroke="midnightblue" d="M243.3,-255.05C255.74,-217.45 270.95,-171.45 283.16,-134.53"/>
-<polygon fill="none" stroke="midnightblue" points="239.85,-254.33 240.04,-264.92 246.5,-256.52 239.85,-254.33"/>
+<path fill="none" stroke="midnightblue" d="M242.76,-260.71C255.43,-221.59 271.1,-173.18 283.55,-134.73"/>
+<polygon fill="none" stroke="midnightblue" points="239.36,-259.86 239.61,-270.45 246.02,-262.01 239.36,-259.86"/>
</g>
<!-- Node3 -->
<g id="node3" class="node">
<title>Node3</title>
<g id="a_node3"><a xlink:href="classtvm_1_1runtime_1_1Object.html" target="_top" xlink:title="base class of all object containers.">
-<polygon fill="white" stroke="black" points="0,-518.5 0,-905.5 184,-905.5 184,-518.5 0,-518.5"/>
-<text text-anchor="middle" x="92" y="-893.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::Object</text>
-<polyline fill="none" stroke="black" points="0,-886.5 184,-886.5 "/>
-<text text-anchor="start" x="8" y="-874.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
-<text text-anchor="start" x="8" y="-863.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_final</text>
-<text text-anchor="start" x="8" y="-852.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots</text>
-<text text-anchor="start" x="8" y="-841.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots_can</text>
-<text text-anchor="start" x="8" y="-830.5" font-family="Helvetica,sans-Serif" font-size="10.00">_overflow</text>
-<text text-anchor="start" x="8" y="-819.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_visit</text>
-<text text-anchor="start" x="8" y="-808.5" font-family="Helvetica,sans-Serif" font-size="10.00">_attrs</text>
-<text text-anchor="start" x="8" y="-797.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_sequal</text>
-<text text-anchor="start" x="8" y="-786.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
-<text text-anchor="start" x="8" y="-775.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_shash</text>
-<text text-anchor="start" x="8" y="-764.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
-<text text-anchor="start" x="8" y="-753.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_index</text>
-<text text-anchor="start" x="8" y="-742.5" font-family="Helvetica,sans-Serif" font-size="10.00"># type_index_</text>
-<text text-anchor="start" x="8" y="-731.5" font-family="Helvetica,sans-Serif" font-size="10.00"># ref_counter_</text>
-<polyline fill="none" stroke="black" points="0,-724.5 184,-724.5 "/>
-<text text-anchor="start" x="8" y="-712.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ type_index()</text>
-<text text-anchor="start" x="8" y="-701.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ GetTypeKey()</text>
-<text text-anchor="start" x="8" y="-690.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ GetTypeKeyHash()</text>
-<text text-anchor="start" x="8" y="-679.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ IsInstance()</text>
-<text text-anchor="start" x="8" y="-668.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ unique()</text>
+<polygon fill="white" stroke="black" points="0,-529.5 0,-916.5 184,-916.5 184,-529.5 0,-529.5"/>
+<text text-anchor="middle" x="92" y="-904.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::Object</text>
+<polyline fill="none" stroke="black" points="0,-897.5 184,-897.5 "/>
+<text text-anchor="start" x="8" y="-885.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
+<text text-anchor="start" x="8" y="-874.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_final</text>
+<text text-anchor="start" x="8" y="-863.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots</text>
+<text text-anchor="start" x="8" y="-852.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots_can</text>
+<text text-anchor="start" x="8" y="-841.5" font-family="Helvetica,sans-Serif" font-size="10.00">_overflow</text>
+<text text-anchor="start" x="8" y="-830.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_visit</text>
+<text text-anchor="start" x="8" y="-819.5" font-family="Helvetica,sans-Serif" font-size="10.00">_attrs</text>
+<text text-anchor="start" x="8" y="-808.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_sequal</text>
+<text text-anchor="start" x="8" y="-797.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
+<text text-anchor="start" x="8" y="-786.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_shash</text>
+<text text-anchor="start" x="8" y="-775.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
+<text text-anchor="start" x="8" y="-764.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_index</text>
+<text text-anchor="start" x="8" y="-753.5" font-family="Helvetica,sans-Serif" font-size="10.00"># type_index_</text>
+<text text-anchor="start" x="8" y="-742.5" font-family="Helvetica,sans-Serif" font-size="10.00"># ref_counter_</text>
+<polyline fill="none" stroke="black" points="0,-735.5 184,-735.5 "/>
+<text text-anchor="start" x="8" y="-723.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ type_index()</text>
+<text text-anchor="start" x="8" y="-712.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ GetTypeKey()</text>
+<text text-anchor="start" x="8" y="-701.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ GetTypeKeyHash()</text>
+<text text-anchor="start" x="8" y="-690.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ IsInstance()</text>
+<text text-anchor="start" x="8" y="-679.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ unique()</text>
+<text text-anchor="start" x="8" y="-668.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Object()</text>
<text text-anchor="start" x="8" y="-657.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Object()</text>
<text text-anchor="start" x="8" y="-646.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Object()</text>
-<text text-anchor="start" x="8" y="-635.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Object()</text>
+<text text-anchor="start" x="8" y="-635.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
<text text-anchor="start" x="8" y="-624.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
-<text text-anchor="start" x="8" y="-613.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
-<text text-anchor="start" x="8" y="-602.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeIndex2Key()</text>
-<text text-anchor="start" x="8" y="-591.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeIndex2KeyHash()</text>
-<text text-anchor="start" x="8" y="-580.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeKey2Index()</text>
-<text text-anchor="start" x="8" y="-569.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _GetOrAllocRuntimeTypeIndex()</text>
-<text text-anchor="start" x="8" y="-558.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RuntimeTypeIndex()</text>
-<text text-anchor="start" x="8" y="-547.5" font-family="Helvetica,sans-Serif" font-size="10.00"># IncRef()</text>
-<text text-anchor="start" x="8" y="-536.5" font-family="Helvetica,sans-Serif" font-size="10.00"># DecRef()</text>
-<text text-anchor="start" x="8" y="-525.5" font-family="Helvetica,sans-Serif" font-size="10.00"># GetOrAllocRuntimeTypeIndex()</text>
+<text text-anchor="start" x="8" y="-613.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeIndex2Key()</text>
+<text text-anchor="start" x="8" y="-602.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeIndex2KeyHash()</text>
+<text text-anchor="start" x="8" y="-591.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeKey2Index()</text>
+<text text-anchor="start" x="8" y="-580.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _GetOrAllocRuntimeTypeIndex()</text>
+<text text-anchor="start" x="8" y="-569.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RuntimeTypeIndex()</text>
+<text text-anchor="start" x="8" y="-558.5" font-family="Helvetica,sans-Serif" font-size="10.00"># IncRef()</text>
+<text text-anchor="start" x="8" y="-547.5" font-family="Helvetica,sans-Serif" font-size="10.00"># DecRef()</text>
+<text text-anchor="start" x="8" y="-536.5" font-family="Helvetica,sans-Serif" font-size="10.00"># GetOrAllocRuntimeTypeIndex()</text>
</a>
</g>
</g>
<!-- Node3->Node2 -->
<g id="edge2" class="edge">
<title>Node3->Node2</title>
-<path fill="none" stroke="midnightblue" d="M159.51,-508.72C174.18,-464.78 188.6,-421.57 199.68,-388.37"/>
-<polygon fill="none" stroke="midnightblue" points="156.13,-507.81 156.28,-518.41 162.77,-510.03 156.13,-507.81"/>
+<path fill="none" stroke="midnightblue" d="M158.48,-519.96C173.66,-473.83 188.65,-428.26 200.04,-393.67"/>
+<polygon fill="none" stroke="midnightblue" points="155.14,-518.9 155.34,-529.49 161.79,-521.09 155.14,-518.9"/>
</g>
<!-- Node3->Node3 -->
<g id="edge3" class="edge">
<title>Node3->Node3</title>
-<path fill="none" stroke="#404040" d="M184.28,-745.92C195.02,-739.66 202,-728.36 202,-712 202,-701.01 198.85,-692.3 193.52,-685.87"/>
-<polygon fill="none" stroke="#404040" points="193.46,-685.81 186.29,-685 184.28,-678.08 191.45,-678.89 193.46,-685.81"/>
-<text text-anchor="middle" x="228" y="-709.5" font-family="Helvetica,sans-Serif" font-size="10.00"> #deleter_</text>
+<path fill="none" stroke="#404040" d="M184.28,-756.92C195.02,-750.66 202,-739.36 202,-723 202,-712.01 198.85,-703.3 193.52,-696.87"/>
+<polygon fill="none" stroke="#404040" points="193.46,-696.81 186.29,-696 184.28,-689.08 191.45,-689.89 193.46,-696.81"/>
+<text text-anchor="middle" x="228" y="-720.5" font-family="Helvetica,sans-Serif" font-size="10.00"> #deleter_</text>
</g>
<!-- Node4 -->
<g id="node4" class="node">
<title>Node4</title>
<g id="a_node4"><a xlink:href="classtvm_1_1Span.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="272,-667 272,-757 428,-757 428,-667 272,-667"/>
-<text text-anchor="middle" x="350" y="-745" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::Span</text>
-<polyline fill="none" stroke="black" points="272,-738 428,-738 "/>
-<text text-anchor="middle" x="350" y="-726" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="272,-719 428,-719 "/>
-<text text-anchor="start" x="280" y="-707" font-family="Helvetica,sans-Serif" font-size="10.00">+ Span()</text>
-<text text-anchor="start" x="280" y="-696" font-family="Helvetica,sans-Serif" font-size="10.00">+ Merge()</text>
-<text text-anchor="start" x="280" y="-685" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="280" y="-674" font-family="Helvetica,sans-Serif" font-size="10.00">_METHODS()</text>
+<polygon fill="white" stroke="black" points="272,-678 272,-768 428,-768 428,-678 272,-678"/>
+<text text-anchor="middle" x="350" y="-756" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::Span</text>
+<polyline fill="none" stroke="black" points="272,-749 428,-749 "/>
+<text text-anchor="middle" x="350" y="-737" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="272,-730 428,-730 "/>
+<text text-anchor="start" x="280" y="-718" font-family="Helvetica,sans-Serif" font-size="10.00">+ Span()</text>
+<text text-anchor="start" x="280" y="-707" font-family="Helvetica,sans-Serif" font-size="10.00">+ Merge()</text>
+<text text-anchor="start" x="280" y="-696" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="280" y="-685" font-family="Helvetica,sans-Serif" font-size="10.00">_METHODS()</text>
</a>
</g>
</g>
<!-- Node4->Node2 -->
<g id="edge4" class="edge">
<title>Node4->Node2</title>
-<path fill="none" stroke="#404040" d="M334.96,-666.63C312.81,-601.28 271.15,-478.39 244.53,-399.87"/>
-<polygon fill="none" stroke="#404040" points="244.41,-399.51 238.69,-395.11 240.56,-388.14 246.27,-392.54 244.41,-399.51"/>
-<text text-anchor="middle" x="295.5" y="-492" font-family="Helvetica,sans-Serif" font-size="10.00"> +span</text>
+<path fill="none" stroke="#404040" d="M335.21,-677.76C313.01,-611.33 270.83,-485.11 244.13,-405.21"/>
+<polygon fill="none" stroke="#404040" points="244.11,-405.15 238.42,-400.73 240.31,-393.77 246,-398.19 244.11,-405.15"/>
+<text text-anchor="middle" x="295.5" y="-503" font-family="Helvetica,sans-Serif" font-size="10.00"> +span</text>
</g>
<!-- Node5 -->
<g id="node5" class="node">
<title>Node5</title>
<g id="a_node5"><a xlink:href="classtvm_1_1runtime_1_1ObjectRef.html" target="_top" xlink:title="Base class of all object reference.">
-<polygon fill="white" stroke="black" points="283,-943.5 283,-1176.5 417,-1176.5 417,-943.5 283,-943.5"/>
-<text text-anchor="middle" x="350" y="-1164.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::ObjectRef</text>
-<polyline fill="none" stroke="black" points="283,-1157.5 417,-1157.5 "/>
-<text text-anchor="start" x="291" y="-1145.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_is_nullable</text>
-<polyline fill="none" stroke="black" points="283,-1138.5 417,-1138.5 "/>
+<polygon fill="white" stroke="black" points="283,-954.5 283,-1187.5 417,-1187.5 417,-954.5 283,-954.5"/>
+<text text-anchor="middle" x="350" y="-1175.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::ObjectRef</text>
+<polyline fill="none" stroke="black" points="283,-1168.5 417,-1168.5 "/>
+<text text-anchor="start" x="291" y="-1156.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_is_nullable</text>
+<polyline fill="none" stroke="black" points="283,-1149.5 417,-1149.5 "/>
+<text text-anchor="start" x="291" y="-1137.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectRef()</text>
<text text-anchor="start" x="291" y="-1126.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectRef()</text>
-<text text-anchor="start" x="291" y="-1115.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectRef()</text>
-<text text-anchor="start" x="291" y="-1104.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ same_as()</text>
-<text text-anchor="start" x="291" y="-1093.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator==()</text>
-<text text-anchor="start" x="291" y="-1082.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator!=()</text>
-<text text-anchor="start" x="291" y="-1071.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator<()</text>
-<text text-anchor="start" x="291" y="-1060.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ defined()</text>
-<text text-anchor="start" x="291" y="-1049.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get()</text>
-<text text-anchor="start" x="291" y="-1038.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator->()</text>
-<text text-anchor="start" x="291" y="-1027.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ unique()</text>
-<text text-anchor="start" x="291" y="-1016.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ use_count()</text>
+<text text-anchor="start" x="291" y="-1115.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ same_as()</text>
+<text text-anchor="start" x="291" y="-1104.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator==()</text>
+<text text-anchor="start" x="291" y="-1093.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator!=()</text>
+<text text-anchor="start" x="291" y="-1082.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator<()</text>
+<text text-anchor="start" x="291" y="-1071.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ defined()</text>
+<text text-anchor="start" x="291" y="-1060.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get()</text>
+<text text-anchor="start" x="291" y="-1049.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator->()</text>
+<text text-anchor="start" x="291" y="-1038.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ unique()</text>
+<text text-anchor="start" x="291" y="-1027.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ use_count()</text>
+<text text-anchor="start" x="291" y="-1016.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ as()</text>
<text text-anchor="start" x="291" y="-1005.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ as()</text>
-<text text-anchor="start" x="291" y="-994.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ as()</text>
-<text text-anchor="start" x="291" y="-983.5" font-family="Helvetica,sans-Serif" font-size="10.00"># get_mutable()</text>
-<text text-anchor="start" x="291" y="-972.5" font-family="Helvetica,sans-Serif" font-size="10.00"># DowncastNoCheck()</text>
-<text text-anchor="start" x="291" y="-961.5" font-family="Helvetica,sans-Serif" font-size="10.00"># FFIClearAfterMove()</text>
-<text text-anchor="start" x="291" y="-950.5" font-family="Helvetica,sans-Serif" font-size="10.00"># GetDataPtr()</text>
+<text text-anchor="start" x="291" y="-994.5" font-family="Helvetica,sans-Serif" font-size="10.00"># get_mutable()</text>
+<text text-anchor="start" x="291" y="-983.5" font-family="Helvetica,sans-Serif" font-size="10.00"># DowncastNoCheck()</text>
+<text text-anchor="start" x="291" y="-972.5" font-family="Helvetica,sans-Serif" font-size="10.00"># FFIClearAfterMove()</text>
+<text text-anchor="start" x="291" y="-961.5" font-family="Helvetica,sans-Serif" font-size="10.00"># GetDataPtr()</text>
</a>
</g>
</g>
<!-- Node5->Node4 -->
<g id="edge5" class="edge">
<title>Node5->Node4</title>
-<path fill="none" stroke="midnightblue" d="M350,-933.11C350,-871.57 350,-801.41 350,-757.17"/>
-<polygon fill="none" stroke="midnightblue" points="346.5,-933.31 350,-943.31 353.5,-933.31 346.5,-933.31"/>
+<path fill="none" stroke="midnightblue" d="M350,-944.11C350,-882.57 350,-812.41 350,-768.17"/>
+<polygon fill="none" stroke="midnightblue" points="346.5,-944.31 350,-954.31 353.5,-944.31 346.5,-944.31"/>
</g>
<!-- Node6 -->
<g id="node6" class="node">
<title>Node6</title>
<g id="a_node6"><a xlink:href="classtvm_1_1runtime_1_1ObjectPtr.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="280,-1224.5 280,-1402.5 420,-1402.5 420,-1224.5 280,-1224.5"/>
-<text text-anchor="start" x="288" y="-1390.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::ObjectPtr</text>
-<text text-anchor="middle" x="350" y="-1379.5" font-family="Helvetica,sans-Serif" font-size="10.00">< tvm::runtime::Object ></text>
-<polyline fill="none" stroke="black" points="280,-1372.5 420,-1372.5 "/>
-<text text-anchor="middle" x="350" y="-1360.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="280,-1353.5 420,-1353.5 "/>
+<polygon fill="white" stroke="black" points="280,-1235.5 280,-1413.5 420,-1413.5 420,-1235.5 280,-1235.5"/>
+<text text-anchor="start" x="288" y="-1401.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::ObjectPtr</text>
+<text text-anchor="middle" x="350" y="-1390.5" font-family="Helvetica,sans-Serif" font-size="10.00">< tvm::runtime::Object ></text>
+<polyline fill="none" stroke="black" points="280,-1383.5 420,-1383.5 "/>
+<text text-anchor="middle" x="350" y="-1371.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="280,-1364.5 420,-1364.5 "/>
+<text text-anchor="start" x="288" y="-1352.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="288" y="-1341.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="288" y="-1330.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="288" y="-1319.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="288" y="-1308.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="288" y="-1297.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
-<text text-anchor="start" x="288" y="-1286.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
-<text text-anchor="start" x="288" y="-1275.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ~ObjectPtr()</text>
-<text text-anchor="start" x="288" y="-1264.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ swap()</text>
-<text text-anchor="start" x="288" y="-1253.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get()</text>
-<text text-anchor="start" x="288" y="-1242.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator->()</text>
-<text text-anchor="start" x="288" y="-1231.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 11 more...</text>
+<text text-anchor="start" x="288" y="-1286.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ~ObjectPtr()</text>
+<text text-anchor="start" x="288" y="-1275.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ swap()</text>
+<text text-anchor="start" x="288" y="-1264.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get()</text>
+<text text-anchor="start" x="288" y="-1253.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator->()</text>
+<text text-anchor="start" x="288" y="-1242.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 11 more...</text>
</a>
</g>
</g>
<!-- Node6->Node5 -->
<g id="edge6" class="edge">
<title>Node6->Node5</title>
-<path fill="none" stroke="#404040" d="M350,-1224.18C350,-1212.84 350,-1201.05 350,-1189.23"/>
-<polygon fill="none" stroke="#404040" points="350,-1188.91 346,-1182.91 350,-1176.91 354,-1182.91 350,-1188.91"/>
-<text text-anchor="middle" x="369.5" y="-1198" font-family="Helvetica,sans-Serif" font-size="10.00"> #data_</text>
+<path fill="none" stroke="#404040" d="M350,-1235.18C350,-1223.84 350,-1212.05 350,-1200.23"/>
+<polygon fill="none" stroke="#404040" points="350,-1199.91 346,-1193.91 350,-1187.91 354,-1193.91 350,-1199.91"/>
+<text text-anchor="middle" x="369.5" y="-1209" font-family="Helvetica,sans-Serif" font-size="10.00"> #data_</text>
</g>
<!-- Node7 -->
<g id="node7" class="node">
<title>Node7</title>
<g id="a_node7"><a xlink:href="classtvm_1_1runtime_1_1DataType.html" target="_top" xlink:title="Runtime primitive data type.">
-<polygon fill="white" stroke="black" points="325,-182.5 325,-470.5 457,-470.5 457,-182.5 325,-182.5"/>
-<text text-anchor="middle" x="391" y="-458.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::DataType</text>
-<polyline fill="none" stroke="black" points="325,-451.5 457,-451.5 "/>
-<text text-anchor="middle" x="391" y="-439.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="325,-432.5 457,-432.5 "/>
+<polygon fill="white" stroke="black" points="325,-182.5 325,-481.5 457,-481.5 457,-182.5 325,-182.5"/>
+<text text-anchor="middle" x="391" y="-469.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::DataType</text>
+<polyline fill="none" stroke="black" points="325,-462.5 457,-462.5 "/>
+<text text-anchor="middle" x="391" y="-450.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="325,-443.5 457,-443.5 "/>
+<text text-anchor="start" x="333" y="-431.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ DataType()</text>
<text text-anchor="start" x="333" y="-420.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ DataType()</text>
<text text-anchor="start" x="333" y="-409.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ DataType()</text>
-<text text-anchor="start" x="333" y="-398.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ DataType()</text>
-<text text-anchor="start" x="333" y="-387.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ code()</text>
-<text text-anchor="start" x="333" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ bits()</text>
-<text text-anchor="start" x="333" y="-365.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ bytes()</text>
-<text text-anchor="start" x="333" y="-354.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ lanes()</text>
-<text text-anchor="start" x="333" y="-343.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ vscale_factor()</text>
-<text text-anchor="start" x="333" y="-332.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get_lanes_or_vscale</text>
-<text text-anchor="start" x="333" y="-321.5" font-family="Helvetica,sans-Serif" font-size="10.00">_factor()</text>
-<text text-anchor="start" x="333" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ is_scalar()</text>
-<text text-anchor="start" x="333" y="-299.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 24 more...</text>
-<text text-anchor="start" x="333" y="-288.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Int()</text>
-<text text-anchor="start" x="333" y="-277.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ UInt()</text>
-<text text-anchor="start" x="333" y="-266.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Float()</text>
-<text text-anchor="start" x="333" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ BFloat()</text>
-<text text-anchor="start" x="333" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat8E4M3()</text>
-<text text-anchor="start" x="333" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat8E5M2()</text>
+<text text-anchor="start" x="333" y="-398.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ code()</text>
+<text text-anchor="start" x="333" y="-387.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ bits()</text>
+<text text-anchor="start" x="333" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ bytes()</text>
+<text text-anchor="start" x="333" y="-365.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ lanes()</text>
+<text text-anchor="start" x="333" y="-354.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ vscale_factor()</text>
+<text text-anchor="start" x="333" y="-343.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get_lanes_or_vscale</text>
+<text text-anchor="start" x="333" y="-332.5" font-family="Helvetica,sans-Serif" font-size="10.00">_factor()</text>
+<text text-anchor="start" x="333" y="-321.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ is_scalar()</text>
+<text text-anchor="start" x="333" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 26 more...</text>
+<text text-anchor="start" x="333" y="-299.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Int()</text>
+<text text-anchor="start" x="333" y="-288.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ UInt()</text>
+<text text-anchor="start" x="333" y="-277.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Float()</text>
+<text text-anchor="start" x="333" y="-266.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ BFloat()</text>
+<text text-anchor="start" x="333" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat8E4M3()</text>
+<text text-anchor="start" x="333" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat8E5M2()</text>
+<text text-anchor="start" x="333" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat4E2M1()</text>
<text text-anchor="start" x="333" y="-222.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Bool()</text>
<text text-anchor="start" x="333" y="-211.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Handle()</text>
<text text-anchor="start" x="333" y="-200.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Void()</text>
@@ -236,8 +237,8 @@
<!-- Node7->Node1 -->
<g id="edge7" class="edge">
<title>Node7->Node1</title>
-<path fill="none" stroke="#404040" d="M343.1,-182.35C338.97,-170.03 334.91,-157.89 331.07,-146.4"/>
-<polygon fill="none" stroke="#404040" points="330.95,-146.05 325.25,-141.63 327.14,-134.67 332.84,-139.09 330.95,-146.05"/>
+<path fill="none" stroke="#404040" d="M342.35,-182.49C338.28,-170.09 334.29,-157.9 330.51,-146.38"/>
+<polygon fill="none" stroke="#404040" points="330.4,-146.03 324.73,-141.57 326.66,-134.62 332.33,-139.08 330.4,-146.03"/>
<text text-anchor="middle" x="356" y="-156" font-family="Helvetica,sans-Serif" font-size="10.00"> +dtype</text>
</g>
</g>
diff --git a/docs/reference/api/doxygen/classtvm_1_1runtime_1_1DataType-members.html b/docs/reference/api/doxygen/classtvm_1_1runtime_1_1DataType-members.html
index e395f0d288..9e0e03dd32 100644
--- a/docs/reference/api/doxygen/classtvm_1_1runtime_1_1DataType-members.html
+++ b/docs/reference/api/doxygen/classtvm_1_1runtime_1_1DataType-members.html
@@ -87,11 +87,13 @@ $(function() {
<tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1DataType.html#ab45f13dd70d982d9f977c79b6f7fac98">Int</a>(int bits, int lanes=1)</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1DataType.html">tvm::runtime::DataType</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_1runtime_1_1DataType.html#acfe8fe9c3873fdec74c9a7b03161766f">is_bfloat16</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1DataType.html">tvm::runtime::DataType</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1DataType.html#a4c97717c5e85a305b9cded0dc4fb5d97">is_bool</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1DataType.html">tvm::runtime::DataType</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1DataType.html#a5458c51972b9df63455b77001a06ab1a">is_e4m3_float8</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1DataType.html">tvm::runtime::DataType</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1DataType.html#aa6e355f6eabb51d2ce41ba396d4a81d4">is_e5m2_float8</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1DataType.html">tvm::runtime::DataType</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1DataType.html#aa8d27a9667acd6089c7b91abe288f0fa">is_fixed_length_vector</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1DataType.html">tvm::runtime::DataType</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1DataType.html#afe559720046f6e10d188f5df80d4a0fc">is_float</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1DataType.html">tvm::runtime::DataType</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1DataType.html#a83095169a6537b1ccd3098e3aab86530">is_float16</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1DataType.html">tvm::runtime::DataType</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1DataType.html#ae10ac110386b5845e25c0b8290b58fb7">is_e2m1_float4</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1DataType.html">tvm::runtime::DataType</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1DataType.html#a5458c51972b9df63455b77001a06ab1a">is_e4m3_float8</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1DataType.html">tvm::runtime::DataType</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1DataType.html#aa6e355f6eabb51d2ce41ba396d4a81d4">is_e5m2_float8</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1DataType.html">tvm::runtime::DataType</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1DataType.html#aa8d27a9667acd6089c7b91abe288f0fa">is_fixed_length_vector</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1DataType.html">tvm::runtime::DataType</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1DataType.html#afe559720046f6e10d188f5df80d4a0fc">is_float</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1DataType.html">tvm::runtime::DataType</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1DataType.html#a83095169a6537b1ccd3098e3aab86530">is_float16</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1DataType.html">tvm::runtime::DataType</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1DataType.html#ae8be0355d40cfca2c6f12d5b7b733eec">is_float4</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1DataType.html">tvm::runtime::DataType</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1DataType.html#ace6c372fb51a9a6aca9d19e211f0994f">is_float8</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1DataType.html">tvm::runtime::DataType</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1DataType.html#a052732be4d88e9d67dc2cbe83ba6a310">is_handle</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1DataType.html">tvm::runtime::DataType</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1DataType.html#a4f3c849cf79c0812a50fdbb9ad175648">is_int</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1DataType.html">tvm::runtime::DataType</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
@@ -104,13 +106,15 @@ $(function() {
<tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1DataType.html#af630b65babe38dc86eaee56f29c5429e">is_void</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1DataType.html">tvm::runtime::DataType</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1DataType.html#a3c9ce1627be2550f656cd37b6c698c7da49fcc75a28c5a539665c55001897f286">kBFloat</a> enum value</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1DataType.html">tvm::runtime::DataType</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1DataType.html#a3c9ce1627be2550f656cd37b6c698c7da92916e0b7138b26e222f4b85618bd5b4">kCustomBegin</a> enum value</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1DataType.html">tvm::runtime::DataType</a></td><td class="entry"></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1DataType.html#a3c9ce1627be2550f656cd37b6c698c7da6ea7f4408e5a06d2e1bc3757a3c2bd0f">kE4M3Float</a> enum value</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1DataType.html">tvm::runtime::DataType</a></td><td class="entry"></td></tr>
- <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1DataType.html#a3c9ce1627be2550f656cd37b6c698c7daaaeeb523a1904d272c9e28ae00cc50e3">kE5M2Float</a> enum value</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1DataType.html">tvm::runtime::DataType</a></td><td class="entry"></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1DataType.html#a3c9ce1627be2550f656cd37b6c698c7da6622631a910a54272097f7f4b6373e9d">kFloat</a> enum value</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1DataType.html">tvm::runtime::DataType</a></td><td class="entry"></td></tr>
- <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1DataType.html#a3c9ce1627be2550f656cd37b6c698c7da2a59b355bef5ebc40bd78833666197cb">kHandle</a> enum value</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1DataType.html">tvm::runtime::DataType</a></td><td class="entry"></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1DataType.html#a3c9ce1627be2550f656cd37b6c698c7daba80c33310f753ce7578ba71f8b19450">kInt</a> enum value</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1DataType.html">tvm::runtime::DataType</a></td><td class="entry"></td></tr>
- <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1DataType.html#a3c9ce1627be2550f656cd37b6c698c7da2c35d4ea9e95ede0b5a1909a87cbc9f2">kUInt</a> enum value</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1DataType.html">tvm::runtime::DataType</a></td><td class="entry"></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1DataType.html#a7a67295643b82bbe37cf36e6f69e8323">lanes</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1DataType.html">tvm::runtime::DataType</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1DataType.html#a3c9ce1627be2550f656cd37b6c698c7da45eb581b18657c1120cf19d8167d945e">kE2M1Float</a> enum value</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1DataType.html">tvm::runtime::DataType</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1DataType.html#a3c9ce1627be2550f656cd37b6c698c7da6ea7f4408e5a06d2e1bc3757a3c2bd0f">kE4M3Float</a> enum value</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1DataType.html">tvm::runtime::DataType</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1DataType.html#a3c9ce1627be2550f656cd37b6c698c7daaaeeb523a1904d272c9e28ae00cc50e3">kE5M2Float</a> enum value</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1DataType.html">tvm::runtime::DataType</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1DataType.html#a3c9ce1627be2550f656cd37b6c698c7da6622631a910a54272097f7f4b6373e9d">kFloat</a> enum value</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1DataType.html">tvm::runtime::DataType</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1DataType.html#a3c9ce1627be2550f656cd37b6c698c7da2a59b355bef5ebc40bd78833666197cb">kHandle</a> enum value</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1DataType.html">tvm::runtime::DataType</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1DataType.html#a3c9ce1627be2550f656cd37b6c698c7daba80c33310f753ce7578ba71f8b19450">kInt</a> enum value</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1DataType.html">tvm::runtime::DataType</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1DataType.html#a3c9ce1627be2550f656cd37b6c698c7da2c35d4ea9e95ede0b5a1909a87cbc9f2">kUInt</a> enum value</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1DataType.html">tvm::runtime::DataType</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1DataType.html#a7a67295643b82bbe37cf36e6f69e8323">lanes</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1DataType.html">tvm::runtime::DataType</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1DataType.html#a7f7c346d21c4a87c0d9c7ca110fdfaf9">NVFloat4E2M1</a>(int lanes=1)</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1DataType.html">tvm::runtime::DataType</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_1runtime_1_1DataType.html#a3e9a5d2ccb035e181a75d7b3cde9bb72">NVFloat8E4M3</a>(int lanes=1)</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1DataType.html">tvm::runtime::DataType</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_1runtime_1_1DataType.html#a697e883986ad3084581dd42c9bbf693a">NVFloat8E5M2</a>(int lanes=1)</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1DataType.html">tvm::runtime::DataType</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_1runtime_1_1DataType.html#a0fc533410505b4d0ecc7ceaa731a5ad2">operator DLDataType</a>() const</td><td class="entry"><a class="el" href="classtvm_1_1runtime_1_1DataType.html">tvm::runtime::DataType</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
diff --git a/docs/reference/api/doxygen/classtvm_1_1runtime_1_1DataType.html b/docs/reference/api/doxygen/classtvm_1_1runtime_1_1DataType.html
index 9572afe1b7..25ae726211 100644
--- a/docs/reference/api/doxygen/classtvm_1_1runtime_1_1DataType.html
+++ b/docs/reference/api/doxygen/classtvm_1_1runtime_1_1DataType.html
@@ -82,7 +82,7 @@ $(function() {
<div class="dynheader">
Collaboration diagram for tvm::runtime::DataType:</div>
<div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1runtime_1_1DataType__coll__graph.svg" width="187" height="396"><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_1runtime_1_1DataType__coll__graph.svg" width="187" height="411"><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">
@@ -97,7 +97,9 @@ Public Types</h2></td></tr>
  <a class="el" href="classtvm_1_1runtime_1_1DataType.html#a3c9ce1627be2550f656cd37b6c698c7da49fcc75a28c5a539665c55001897f286">kBFloat</a> = kDLBfloat
, <a class="el" href="classtvm_1_1runtime_1_1DataType.html#a3c9ce1627be2550f656cd37b6c698c7da6ea7f4408e5a06d2e1bc3757a3c2bd0f">kE4M3Float</a> = 6U
, <a class="el" href="classtvm_1_1runtime_1_1DataType.html#a3c9ce1627be2550f656cd37b6c698c7daaaeeb523a1904d272c9e28ae00cc50e3">kE5M2Float</a> = 7U
-, <a class="el" href="classtvm_1_1runtime_1_1DataType.html#a3c9ce1627be2550f656cd37b6c698c7da92916e0b7138b26e222f4b85618bd5b4">kCustomBegin</a> = 129
+, <a class="el" href="classtvm_1_1runtime_1_1DataType.html#a3c9ce1627be2550f656cd37b6c698c7da45eb581b18657c1120cf19d8167d945e">kE2M1Float</a> = 8U
+, <br />
+  <a class="el" href="classtvm_1_1runtime_1_1DataType.html#a3c9ce1627be2550f656cd37b6c698c7da92916e0b7138b26e222f4b85618bd5b4">kCustomBegin</a> = 129
<br />
}</td></tr>
<tr class="memdesc:a3c9ce1627be2550f656cd37b6c698c7d"><td class="mdescLeft"> </td><td class="mdescRight"><a class="el" href="classtvm_1_1Type.html" title="Managed reference to TypeNode.">Type</a> code for the <a class="el" href="classtvm_1_1runtime_1_1DataType.html" title="Runtime primitive data type.">DataType</a>. <a href="classtvm_1_1runtime_1_1DataType.html#a3c9ce1627be2550f656cd37b6c698c7d">More...</a><br /></td></tr>
@@ -134,10 +136,14 @@ Public Member Functions</h2></td></tr>
<tr class="separator:afe559720046f6e10d188f5df80d4a0fc"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ace6c372fb51a9a6aca9d19e211f0994f"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1runtime_1_1DataType.html#ace6c372fb51a9a6aca9d19e211f0994f">is_float8</a> () const</td></tr>
<tr class="separator:ace6c372fb51a9a6aca9d19e211f0994f"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ae8be0355d40cfca2c6f12d5b7b733eec"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1runtime_1_1DataType.html#ae8be0355d40cfca2c6f12d5b7b733eec">is_float4</a> () const</td></tr>
+<tr class="separator:ae8be0355d40cfca2c6f12d5b7b733eec"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a5458c51972b9df63455b77001a06ab1a"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1runtime_1_1DataType.html#a5458c51972b9df63455b77001a06ab1a">is_e4m3_float8</a> () const</td></tr>
<tr class="separator:a5458c51972b9df63455b77001a06ab1a"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:aa6e355f6eabb51d2ce41ba396d4a81d4"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1runtime_1_1DataType.html#aa6e355f6eabb51d2ce41ba396d4a81d4">is_e5m2_float8</a> () const</td></tr>
<tr class="separator:aa6e355f6eabb51d2ce41ba396d4a81d4"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ae10ac110386b5845e25c0b8290b58fb7"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1runtime_1_1DataType.html#ae10ac110386b5845e25c0b8290b58fb7">is_e2m1_float4</a> () const</td></tr>
+<tr class="separator:ae10ac110386b5845e25c0b8290b58fb7"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a83095169a6537b1ccd3098e3aab86530"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1runtime_1_1DataType.html#a83095169a6537b1ccd3098e3aab86530">is_float16</a> () const</td></tr>
<tr class="separator:a83095169a6537b1ccd3098e3aab86530"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:acfe8fe9c3873fdec74c9a7b03161766f"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1runtime_1_1DataType.html#acfe8fe9c3873fdec74c9a7b03161766f">is_bfloat16</a> () const</td></tr>
@@ -205,6 +211,9 @@ Static Public Member Functions</h2></td></tr>
<tr class="memitem:a697e883986ad3084581dd42c9bbf693a"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classtvm_1_1runtime_1_1DataType.html">DataType</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1runtime_1_1DataType.html#a697e883986ad3084581dd42c9bbf693a">NVFloat8E5M2</a> (int <a class="el" href="classtvm_1_1runtime_1_1DataType.html#a7a67295643b82bbe37cf36e6f69e8323">lanes</a>=1)</td></tr>
<tr class="memdesc:a697e883986ad3084581dd42c9bbf693a"><td class="mdescLeft"> </td><td class="mdescRight">Construct NV float8 e5m2 datatype. <a href="classtvm_1_1runtime_1_1DataType.html#a697e883986ad3084581dd42c9bbf693a">More...</a><br /></td></tr>
<tr class="separator:a697e883986ad3084581dd42c9bbf693a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a7f7c346d21c4a87c0d9c7ca110fdfaf9"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classtvm_1_1runtime_1_1DataType.html">DataType</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1runtime_1_1DataType.html#a7f7c346d21c4a87c0d9c7ca110fdfaf9">NVFloat4E2M1</a> (int <a class="el" href="classtvm_1_1runtime_1_1DataType.html#a7a67295643b82bbe37cf36e6f69e8323">lanes</a>=1)</td></tr>
+<tr class="memdesc:a7f7c346d21c4a87c0d9c7ca110fdfaf9"><td class="mdescLeft"> </td><td class="mdescRight">Construct NV float4 e2m1 datatype. <a href="classtvm_1_1runtime_1_1DataType.html#a7f7c346d21c4a87c0d9c7ca110fdfaf9">More...</a><br /></td></tr>
+<tr class="separator:a7f7c346d21c4a87c0d9c7ca110fdfaf9"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a847b0dfac51f051678f4df417b2b54ab"><td class="memItemLeft" align="right" valign="top">static <a class="el" href="classtvm_1_1runtime_1_1DataType.html">DataType</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1runtime_1_1DataType.html#a847b0dfac51f051678f4df417b2b54ab">Bool</a> (int <a class="el" href="classtvm_1_1runtime_1_1DataType.html#a7a67295643b82bbe37cf36e6f69e8323">lanes</a>=1, bool is_scalable=false)</td></tr>
<tr class="memdesc:a847b0dfac51f051678f4df417b2b54ab"><td class="mdescLeft"> </td><td class="mdescRight">Construct a bool type. <a href="classtvm_1_1runtime_1_1DataType.html#a847b0dfac51f051678f4df417b2b54ab">More...</a><br /></td></tr>
<tr class="separator:a847b0dfac51f051678f4df417b2b54ab"><td class="memSeparator" colspan="2"> </td></tr>
@@ -244,6 +253,7 @@ Static Public Member Functions</h2></td></tr>
<tr><td class="fieldname"><a id="a3c9ce1627be2550f656cd37b6c698c7da49fcc75a28c5a539665c55001897f286"></a>kBFloat </td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="a3c9ce1627be2550f656cd37b6c698c7da6ea7f4408e5a06d2e1bc3757a3c2bd0f"></a>kE4M3Float </td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="a3c9ce1627be2550f656cd37b6c698c7daaaeeb523a1904d272c9e28ae00cc50e3"></a>kE5M2Float </td><td class="fielddoc"></td></tr>
+<tr><td class="fieldname"><a id="a3c9ce1627be2550f656cd37b6c698c7da45eb581b18657c1120cf19d8167d945e"></a>kE2M1Float </td><td class="fielddoc"></td></tr>
<tr><td class="fieldname"><a id="a3c9ce1627be2550f656cd37b6c698c7da92916e0b7138b26e222f4b85618bd5b4"></a>kCustomBegin </td><td class="fielddoc"></td></tr>
</table>
@@ -783,6 +793,31 @@ Static Public Member Functions</h2></td></tr>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>whether type is a scalar type. </dd></dl>
+</div>
+</div>
+<a id="ae10ac110386b5845e25c0b8290b58fb7"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ae10ac110386b5845e25c0b8290b58fb7">◆ </a></span>is_e2m1_float4()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool tvm::runtime::DataType::is_e2m1_float4 </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
</div>
</div>
<a id="a5458c51972b9df63455b77001a06ab1a"></a>
@@ -911,6 +946,32 @@ Static Public Member Functions</h2></td></tr>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>whether type is a float16 type. </dd></dl>
+</div>
+</div>
+<a id="ae8be0355d40cfca2c6f12d5b7b733eec"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ae8be0355d40cfca2c6f12d5b7b733eec">◆ </a></span>is_float4()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool tvm::runtime::DataType::is_float4 </td>
+ <td>(</td>
+ <td class="paramname"></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+<dl class="section return"><dt>Returns</dt><dd>whether type is a float4 type. </dd></dl>
+
</div>
</div>
<a id="ace6c372fb51a9a6aca9d19e211f0994f"></a>
@@ -1197,6 +1258,41 @@ Static Public Member Functions</h2></td></tr>
</div><div class="memdoc">
<dl class="section return"><dt>Returns</dt><dd>number of lanes in the data. </dd></dl>
+</div>
+</div>
+<a id="a7f7c346d21c4a87c0d9c7ca110fdfaf9"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7f7c346d21c4a87c0d9c7ca110fdfaf9">◆ </a></span>NVFloat4E2M1()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">static <a class="el" href="classtvm_1_1runtime_1_1DataType.html">DataType</a> tvm::runtime::DataType::NVFloat4E2M1 </td>
+ <td>(</td>
+ <td class="paramtype">int </td>
+ <td class="paramname"><em>lanes</em> = <code>1</code></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">static</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Construct NV float4 e2m1 datatype. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">lanes</td><td>The number of lanes </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>The constructed data type. </dd></dl>
+
</div>
</div>
<a id="a3e9a5d2ccb035e181a75d7b3cde9bb72"></a>
diff --git a/docs/reference/api/doxygen/classtvm_1_1runtime_1_1DataType__coll__graph.svg b/docs/reference/api/doxygen/classtvm_1_1runtime_1_1DataType__coll__graph.svg
index 67ce5d54b6..fd939af8ef 100644
--- a/docs/reference/api/doxygen/classtvm_1_1runtime_1_1DataType__coll__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1runtime_1_1DataType__coll__graph.svg
@@ -4,38 +4,39 @@
<!-- Generated by graphviz version 2.43.0 (0)
-->
<!-- Title: tvm::runtime::DataType Pages: 1 -->
-<svg width="140pt" height="297pt"
- viewBox="0.00 0.00 140.00 297.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 293)">
+<svg width="140pt" height="308pt"
+ viewBox="0.00 0.00 140.00 308.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 304)">
<title>tvm::runtime::DataType</title>
-<polygon fill="white" stroke="transparent" points="-4,4 -4,-293 136,-293 136,4 -4,4"/>
+<polygon fill="white" stroke="transparent" points="-4,4 -4,-304 136,-304 136,4 -4,4"/>
<!-- Node1 -->
<g id="node1" class="node">
<title>Node1</title>
<g id="a_node1"><a xlink:title="Runtime primitive data type.">
-<polygon fill="#bfbfbf" stroke="black" points="0,-0.5 0,-288.5 132,-288.5 132,-0.5 0,-0.5"/>
-<text text-anchor="middle" x="66" y="-276.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::DataType</text>
-<polyline fill="none" stroke="black" points="0,-269.5 132,-269.5 "/>
-<text text-anchor="middle" x="66" y="-257.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="0,-250.5 132,-250.5 "/>
+<polygon fill="#bfbfbf" stroke="black" points="0,-0.5 0,-299.5 132,-299.5 132,-0.5 0,-0.5"/>
+<text text-anchor="middle" x="66" y="-287.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::DataType</text>
+<polyline fill="none" stroke="black" points="0,-280.5 132,-280.5 "/>
+<text text-anchor="middle" x="66" y="-268.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="0,-261.5 132,-261.5 "/>
+<text text-anchor="start" x="8" y="-249.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ DataType()</text>
<text text-anchor="start" x="8" y="-238.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ DataType()</text>
<text text-anchor="start" x="8" y="-227.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ DataType()</text>
-<text text-anchor="start" x="8" y="-216.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ DataType()</text>
-<text text-anchor="start" x="8" y="-205.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ code()</text>
-<text text-anchor="start" x="8" y="-194.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ bits()</text>
-<text text-anchor="start" x="8" y="-183.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ bytes()</text>
-<text text-anchor="start" x="8" y="-172.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ lanes()</text>
-<text text-anchor="start" x="8" y="-161.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ vscale_factor()</text>
-<text text-anchor="start" x="8" y="-150.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get_lanes_or_vscale</text>
-<text text-anchor="start" x="8" y="-139.5" font-family="Helvetica,sans-Serif" font-size="10.00">_factor()</text>
-<text text-anchor="start" x="8" y="-128.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ is_scalar()</text>
-<text text-anchor="start" x="8" y="-117.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 24 more...</text>
-<text text-anchor="start" x="8" y="-106.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Int()</text>
-<text text-anchor="start" x="8" y="-95.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ UInt()</text>
-<text text-anchor="start" x="8" y="-84.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Float()</text>
-<text text-anchor="start" x="8" y="-73.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ BFloat()</text>
-<text text-anchor="start" x="8" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat8E4M3()</text>
-<text text-anchor="start" x="8" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat8E5M2()</text>
+<text text-anchor="start" x="8" y="-216.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ code()</text>
+<text text-anchor="start" x="8" y="-205.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ bits()</text>
+<text text-anchor="start" x="8" y="-194.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ bytes()</text>
+<text text-anchor="start" x="8" y="-183.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ lanes()</text>
+<text text-anchor="start" x="8" y="-172.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ vscale_factor()</text>
+<text text-anchor="start" x="8" y="-161.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get_lanes_or_vscale</text>
+<text text-anchor="start" x="8" y="-150.5" font-family="Helvetica,sans-Serif" font-size="10.00">_factor()</text>
+<text text-anchor="start" x="8" y="-139.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ is_scalar()</text>
+<text text-anchor="start" x="8" y="-128.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 26 more...</text>
+<text text-anchor="start" x="8" y="-117.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Int()</text>
+<text text-anchor="start" x="8" y="-106.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ UInt()</text>
+<text text-anchor="start" x="8" y="-95.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Float()</text>
+<text text-anchor="start" x="8" y="-84.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ BFloat()</text>
+<text text-anchor="start" x="8" y="-73.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat8E4M3()</text>
+<text text-anchor="start" x="8" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat8E5M2()</text>
+<text text-anchor="start" x="8" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat4E2M1()</text>
<text text-anchor="start" x="8" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Bool()</text>
<text text-anchor="start" x="8" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Handle()</text>
<text text-anchor="start" x="8" y="-18.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Void()</text>
diff --git a/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1tir_1_1AllocateConstFrameNode.html b/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1tir_1_1AllocateConstFrameNode.html
index 736a3a0420..79e2abf6f6 100644
--- a/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1tir_1_1AllocateConstFrameNode.html
+++ b/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1tir_1_1AllocateConstFrameNode.html
@@ -88,7 +88,7 @@ Inheritance diagram for tvm::script::ir_builder::tir::AllocateConstFrameNode:</d
<div class="dynheader">
Collaboration diagram for tvm::script::ir_builder::tir::AllocateConstFrameNode:</div>
<div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1script_1_1ir__builder_1_1tir_1_1AllocateConstFrameNode__coll__graph.svg" width="1107" height="2748"><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_1script_1_1ir__builder_1_1tir_1_1AllocateConstFrameNode__coll__graph.svg" width="1107" height="2763"><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">
diff --git a/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1tir_1_1AllocateConstFrameNode__coll__graph.svg b/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1tir_1_1AllocateConstFrameNode__coll__graph.svg
index babb9464f5..aa36550c2f 100644
--- a/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1tir_1_1AllocateConstFrameNode__coll__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1tir_1_1AllocateConstFrameNode__coll__graph.svg
@@ -4,11 +4,11 @@
<!-- Generated by graphviz version 2.43.0 (0)
-->
<!-- Title: tvm::script::ir_builder::tir::AllocateConstFrameNode Pages: 1 -->
-<svg width="830pt" height="2061pt"
- viewBox="0.00 0.00 830.00 2061.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 2057)">
+<svg width="830pt" height="2072pt"
+ viewBox="0.00 0.00 830.00 2072.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 2068)">
<title>tvm::script::ir_builder::tir::AllocateConstFrameNode</title>
-<polygon fill="white" stroke="transparent" points="-4,4 -4,-2057 826,-2057 826,4 -4,4"/>
+<polygon fill="white" stroke="transparent" points="-4,4 -4,-2068 826,-2068 826,4 -4,4"/>
<!-- Node1 -->
<g id="node1" class="node">
<title>Node1</title>
@@ -30,117 +30,118 @@
<g id="node2" class="node">
<title>Node2</title>
<g id="a_node2"><a xlink:href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrameNode.html" target="_top" xlink:title="A base frame that represents the TIR fame with body of statements.">
-<polygon fill="white" stroke="black" points="102.5,-736 102.5,-826 275.5,-826 275.5,-736 102.5,-736"/>
-<text text-anchor="start" x="110.5" y="-814" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::script::ir_builder</text>
-<text text-anchor="middle" x="189" y="-803" font-family="Helvetica,sans-Serif" font-size="10.00">::tir::TIRFrameNode</text>
-<polyline fill="none" stroke="black" points="102.5,-796 275.5,-796 "/>
-<text text-anchor="start" x="110.5" y="-784" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
-<polyline fill="none" stroke="black" points="102.5,-777 275.5,-777 "/>
-<text text-anchor="start" x="110.5" y="-765" font-family="Helvetica,sans-Serif" font-size="10.00">+ VisitAttrs()</text>
-<text text-anchor="start" x="110.5" y="-754" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DECLARE_BASE_OBJECT</text>
-<text text-anchor="start" x="110.5" y="-743" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO()</text>
+<polygon fill="white" stroke="black" points="102.5,-747 102.5,-837 275.5,-837 275.5,-747 102.5,-747"/>
+<text text-anchor="start" x="110.5" y="-825" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::script::ir_builder</text>
+<text text-anchor="middle" x="189" y="-814" font-family="Helvetica,sans-Serif" font-size="10.00">::tir::TIRFrameNode</text>
+<polyline fill="none" stroke="black" points="102.5,-807 275.5,-807 "/>
+<text text-anchor="start" x="110.5" y="-795" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
+<polyline fill="none" stroke="black" points="102.5,-788 275.5,-788 "/>
+<text text-anchor="start" x="110.5" y="-776" font-family="Helvetica,sans-Serif" font-size="10.00">+ VisitAttrs()</text>
+<text text-anchor="start" x="110.5" y="-765" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DECLARE_BASE_OBJECT</text>
+<text text-anchor="start" x="110.5" y="-754" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO()</text>
</a>
</g>
</g>
<!-- Node2->Node1 -->
<g id="edge1" class="edge">
<title>Node2->Node1</title>
-<path fill="none" stroke="midnightblue" d="M184.59,-725.37C178,-607.23 178.54,-324.49 314,-149 341.65,-113.18 385.92,-89.83 425.8,-75.03"/>
-<polygon fill="none" stroke="midnightblue" points="181.11,-725.84 185.2,-735.61 188.09,-725.42 181.11,-725.84"/>
+<path fill="none" stroke="midnightblue" d="M184.36,-736.68C177.11,-617.26 176.08,-328.27 314,-149 341.59,-113.14 385.86,-89.78 425.75,-74.99"/>
+<polygon fill="none" stroke="midnightblue" points="180.87,-736.93 185.01,-746.68 187.85,-736.48 180.87,-736.93"/>
</g>
<!-- Node3 -->
<g id="node3" class="node">
<title>Node3</title>
<g id="a_node3"><a xlink:href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrameNode.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="5.5,-1201.5 5.5,-1346.5 178.5,-1346.5 178.5,-1201.5 5.5,-1201.5"/>
-<text text-anchor="start" x="13.5" y="-1334.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::script::ir_builder</text>
-<text text-anchor="middle" x="92" y="-1323.5" font-family="Helvetica,sans-Serif" font-size="10.00">::IRBuilderFrameNode</text>
-<polyline fill="none" stroke="black" points="5.5,-1316.5 178.5,-1316.5 "/>
-<text text-anchor="start" x="13.5" y="-1304.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ callbacks</text>
-<text text-anchor="start" x="13.5" y="-1293.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
-<polyline fill="none" stroke="black" points="5.5,-1286.5 178.5,-1286.5 "/>
-<text text-anchor="start" x="13.5" y="-1274.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ VisitAttrs()</text>
-<text text-anchor="start" x="13.5" y="-1263.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DECLARE_BASE_OBJECT</text>
-<text text-anchor="start" x="13.5" y="-1252.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO()</text>
-<text text-anchor="start" x="13.5" y="-1241.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ~IRBuilderFrameNode()</text>
-<text text-anchor="start" x="13.5" y="-1230.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ EnterWithScope()</text>
-<text text-anchor="start" x="13.5" y="-1219.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ExitWithScope()</text>
-<text text-anchor="start" x="13.5" y="-1208.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ AddCallback()</text>
+<polygon fill="white" stroke="black" points="5.5,-1212.5 5.5,-1357.5 178.5,-1357.5 178.5,-1212.5 5.5,-1212.5"/>
+<text text-anchor="start" x="13.5" y="-1345.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::script::ir_builder</text>
+<text text-anchor="middle" x="92" y="-1334.5" font-family="Helvetica,sans-Serif" font-size="10.00">::IRBuilderFrameNode</text>
+<polyline fill="none" stroke="black" points="5.5,-1327.5 178.5,-1327.5 "/>
+<text text-anchor="start" x="13.5" y="-1315.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ callbacks</text>
+<text text-anchor="start" x="13.5" y="-1304.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
+<polyline fill="none" stroke="black" points="5.5,-1297.5 178.5,-1297.5 "/>
+<text text-anchor="start" x="13.5" y="-1285.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ VisitAttrs()</text>
+<text text-anchor="start" x="13.5" y="-1274.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DECLARE_BASE_OBJECT</text>
+<text text-anchor="start" x="13.5" y="-1263.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO()</text>
+<text text-anchor="start" x="13.5" y="-1252.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ~IRBuilderFrameNode()</text>
+<text text-anchor="start" x="13.5" y="-1241.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ EnterWithScope()</text>
+<text text-anchor="start" x="13.5" y="-1230.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ExitWithScope()</text>
+<text text-anchor="start" x="13.5" y="-1219.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ AddCallback()</text>
</a>
</g>
</g>
<!-- Node3->Node2 -->
<g id="edge2" class="edge">
<title>Node3->Node2</title>
-<path fill="none" stroke="midnightblue" d="M108.11,-1191.43C128.82,-1086.6 164.04,-908.33 180.3,-826.03"/>
-<polygon fill="none" stroke="midnightblue" points="104.66,-1190.85 106.16,-1201.34 111.53,-1192.21 104.66,-1190.85"/>
+<path fill="none" stroke="midnightblue" d="M108.11,-1202.43C128.82,-1097.6 164.04,-919.33 180.3,-837.03"/>
+<polygon fill="none" stroke="midnightblue" points="104.66,-1201.85 106.16,-1212.34 111.53,-1203.21 104.66,-1201.85"/>
</g>
<!-- Node4 -->
<g id="node4" class="node">
<title>Node4</title>
<g id="a_node4"><a xlink:href="classtvm_1_1runtime_1_1Object.html" target="_top" xlink:title="base class of all object containers.">
-<polygon fill="white" stroke="black" points="0,-1439.5 0,-1826.5 184,-1826.5 184,-1439.5 0,-1439.5"/>
-<text text-anchor="middle" x="92" y="-1814.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::Object</text>
-<polyline fill="none" stroke="black" points="0,-1807.5 184,-1807.5 "/>
-<text text-anchor="start" x="8" y="-1795.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
-<text text-anchor="start" x="8" y="-1784.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_final</text>
-<text text-anchor="start" x="8" y="-1773.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots</text>
-<text text-anchor="start" x="8" y="-1762.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots_can</text>
-<text text-anchor="start" x="8" y="-1751.5" font-family="Helvetica,sans-Serif" font-size="10.00">_overflow</text>
-<text text-anchor="start" x="8" y="-1740.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_visit</text>
-<text text-anchor="start" x="8" y="-1729.5" font-family="Helvetica,sans-Serif" font-size="10.00">_attrs</text>
-<text text-anchor="start" x="8" y="-1718.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_sequal</text>
-<text text-anchor="start" x="8" y="-1707.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
-<text text-anchor="start" x="8" y="-1696.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_shash</text>
-<text text-anchor="start" x="8" y="-1685.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
-<text text-anchor="start" x="8" y="-1674.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_index</text>
-<text text-anchor="start" x="8" y="-1663.5" font-family="Helvetica,sans-Serif" font-size="10.00"># type_index_</text>
-<text text-anchor="start" x="8" y="-1652.5" font-family="Helvetica,sans-Serif" font-size="10.00"># ref_counter_</text>
-<polyline fill="none" stroke="black" points="0,-1645.5 184,-1645.5 "/>
-<text text-anchor="start" x="8" y="-1633.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ type_index()</text>
-<text text-anchor="start" x="8" y="-1622.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ GetTypeKey()</text>
-<text text-anchor="start" x="8" y="-1611.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ GetTypeKeyHash()</text>
-<text text-anchor="start" x="8" y="-1600.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ IsInstance()</text>
-<text text-anchor="start" x="8" y="-1589.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ unique()</text>
+<polygon fill="white" stroke="black" points="0,-1450.5 0,-1837.5 184,-1837.5 184,-1450.5 0,-1450.5"/>
+<text text-anchor="middle" x="92" y="-1825.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::Object</text>
+<polyline fill="none" stroke="black" points="0,-1818.5 184,-1818.5 "/>
+<text text-anchor="start" x="8" y="-1806.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
+<text text-anchor="start" x="8" y="-1795.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_final</text>
+<text text-anchor="start" x="8" y="-1784.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots</text>
+<text text-anchor="start" x="8" y="-1773.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots_can</text>
+<text text-anchor="start" x="8" y="-1762.5" font-family="Helvetica,sans-Serif" font-size="10.00">_overflow</text>
+<text text-anchor="start" x="8" y="-1751.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_visit</text>
+<text text-anchor="start" x="8" y="-1740.5" font-family="Helvetica,sans-Serif" font-size="10.00">_attrs</text>
+<text text-anchor="start" x="8" y="-1729.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_sequal</text>
+<text text-anchor="start" x="8" y="-1718.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
+<text text-anchor="start" x="8" y="-1707.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_shash</text>
+<text text-anchor="start" x="8" y="-1696.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
+<text text-anchor="start" x="8" y="-1685.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_index</text>
+<text text-anchor="start" x="8" y="-1674.5" font-family="Helvetica,sans-Serif" font-size="10.00"># type_index_</text>
+<text text-anchor="start" x="8" y="-1663.5" font-family="Helvetica,sans-Serif" font-size="10.00"># ref_counter_</text>
+<polyline fill="none" stroke="black" points="0,-1656.5 184,-1656.5 "/>
+<text text-anchor="start" x="8" y="-1644.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ type_index()</text>
+<text text-anchor="start" x="8" y="-1633.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ GetTypeKey()</text>
+<text text-anchor="start" x="8" y="-1622.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ GetTypeKeyHash()</text>
+<text text-anchor="start" x="8" y="-1611.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ IsInstance()</text>
+<text text-anchor="start" x="8" y="-1600.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ unique()</text>
+<text text-anchor="start" x="8" y="-1589.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Object()</text>
<text text-anchor="start" x="8" y="-1578.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Object()</text>
<text text-anchor="start" x="8" y="-1567.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Object()</text>
-<text text-anchor="start" x="8" y="-1556.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Object()</text>
+<text text-anchor="start" x="8" y="-1556.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
<text text-anchor="start" x="8" y="-1545.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
-<text text-anchor="start" x="8" y="-1534.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
-<text text-anchor="start" x="8" y="-1523.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeIndex2Key()</text>
-<text text-anchor="start" x="8" y="-1512.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeIndex2KeyHash()</text>
-<text text-anchor="start" x="8" y="-1501.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeKey2Index()</text>
-<text text-anchor="start" x="8" y="-1490.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _GetOrAllocRuntimeTypeIndex()</text>
-<text text-anchor="start" x="8" y="-1479.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RuntimeTypeIndex()</text>
-<text text-anchor="start" x="8" y="-1468.5" font-family="Helvetica,sans-Serif" font-size="10.00"># IncRef()</text>
-<text text-anchor="start" x="8" y="-1457.5" font-family="Helvetica,sans-Serif" font-size="10.00"># DecRef()</text>
-<text text-anchor="start" x="8" y="-1446.5" font-family="Helvetica,sans-Serif" font-size="10.00"># GetOrAllocRuntimeTypeIndex()</text>
+<text text-anchor="start" x="8" y="-1534.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeIndex2Key()</text>
+<text text-anchor="start" x="8" y="-1523.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeIndex2KeyHash()</text>
+<text text-anchor="start" x="8" y="-1512.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeKey2Index()</text>
+<text text-anchor="start" x="8" y="-1501.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _GetOrAllocRuntimeTypeIndex()</text>
+<text text-anchor="start" x="8" y="-1490.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RuntimeTypeIndex()</text>
+<text text-anchor="start" x="8" y="-1479.5" font-family="Helvetica,sans-Serif" font-size="10.00"># IncRef()</text>
+<text text-anchor="start" x="8" y="-1468.5" font-family="Helvetica,sans-Serif" font-size="10.00"># DecRef()</text>
+<text text-anchor="start" x="8" y="-1457.5" font-family="Helvetica,sans-Serif" font-size="10.00"># GetOrAllocRuntimeTypeIndex()</text>
</a>
</g>
</g>
<!-- Node4->Node3 -->
<g id="edge3" class="edge">
<title>Node4->Node3</title>
-<path fill="none" stroke="midnightblue" d="M92,-1429.33C92,-1399.76 92,-1371.09 92,-1346.64"/>
-<polygon fill="none" stroke="midnightblue" points="88.5,-1429.39 92,-1439.39 95.5,-1429.39 88.5,-1429.39"/>
+<path fill="none" stroke="midnightblue" d="M92,-1440.33C92,-1410.76 92,-1382.09 92,-1357.64"/>
+<polygon fill="none" stroke="midnightblue" points="88.5,-1440.39 92,-1450.39 95.5,-1440.39 88.5,-1440.39"/>
</g>
<!-- Node4->Node4 -->
<g id="edge4" class="edge">
<title>Node4->Node4</title>
-<path fill="none" stroke="#404040" d="M184.28,-1666.92C195.02,-1660.66 202,-1649.36 202,-1633 202,-1622.01 198.85,-1613.3 193.52,-1606.87"/>
-<polygon fill="none" stroke="#404040" points="193.46,-1606.81 186.29,-1606 184.28,-1599.08 191.45,-1599.89 193.46,-1606.81"/>
-<text text-anchor="middle" x="228" y="-1630.5" font-family="Helvetica,sans-Serif" font-size="10.00"> #deleter_</text>
+<path fill="none" stroke="#404040" d="M184.28,-1677.92C195.02,-1671.66 202,-1660.36 202,-1644 202,-1633.01 198.85,-1624.3 193.52,-1617.87"/>
+<polygon fill="none" stroke="#404040" points="193.46,-1617.81 186.29,-1617 184.28,-1610.08 191.45,-1610.89 193.46,-1617.81"/>
+<text text-anchor="middle" x="228" y="-1641.5" font-family="Helvetica,sans-Serif" font-size="10.00"> #deleter_</text>
</g>
<!-- Node5 -->
<g id="node5" class="node">
<title>Node5</title>
<g id="a_node5"><a xlink:href="classtvm_1_1runtime_1_1Array.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="196.5,-1146.5 196.5,-1401.5 317.5,-1401.5 317.5,-1146.5 196.5,-1146.5"/>
-<text text-anchor="start" x="204.5" y="-1389.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::Array</text>
-<text text-anchor="middle" x="257" y="-1378.5" font-family="Helvetica,sans-Serif" font-size="10.00">< tvm::tir::Stmt ></text>
-<polyline fill="none" stroke="black" points="196.5,-1371.5 317.5,-1371.5 "/>
-<text text-anchor="middle" x="257" y="-1359.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="196.5,-1352.5 317.5,-1352.5 "/>
+<polygon fill="white" stroke="black" points="196.5,-1157.5 196.5,-1412.5 317.5,-1412.5 317.5,-1157.5 196.5,-1157.5"/>
+<text text-anchor="start" x="204.5" y="-1400.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::Array</text>
+<text text-anchor="middle" x="257" y="-1389.5" font-family="Helvetica,sans-Serif" font-size="10.00">< tvm::tir::Stmt ></text>
+<polyline fill="none" stroke="black" points="196.5,-1382.5 317.5,-1382.5 "/>
+<text text-anchor="middle" x="257" y="-1370.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="196.5,-1363.5 317.5,-1363.5 "/>
+<text text-anchor="start" x="204.5" y="-1351.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Array()</text>
<text text-anchor="start" x="204.5" y="-1340.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Array()</text>
<text text-anchor="start" x="204.5" y="-1329.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Array()</text>
<text text-anchor="start" x="204.5" y="-1318.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Array()</text>
@@ -148,131 +149,131 @@
<text text-anchor="start" x="204.5" y="-1296.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Array()</text>
<text text-anchor="start" x="204.5" y="-1285.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Array()</text>
<text text-anchor="start" x="204.5" y="-1274.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Array()</text>
-<text text-anchor="start" x="204.5" y="-1263.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Array()</text>
+<text text-anchor="start" x="204.5" y="-1263.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
<text text-anchor="start" x="204.5" y="-1252.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
-<text text-anchor="start" x="204.5" y="-1241.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
-<text text-anchor="start" x="204.5" y="-1230.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 25 more...</text>
+<text text-anchor="start" x="204.5" y="-1241.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 25 more...</text>
+<text text-anchor="start" x="204.5" y="-1230.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ CalcCapacityImpl()</text>
<text text-anchor="start" x="204.5" y="-1219.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ CalcCapacityImpl()</text>
<text text-anchor="start" x="204.5" y="-1208.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ CalcCapacityImpl()</text>
-<text text-anchor="start" x="204.5" y="-1197.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ CalcCapacityImpl()</text>
+<text text-anchor="start" x="204.5" y="-1197.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ AgregateImpl()</text>
<text text-anchor="start" x="204.5" y="-1186.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ AgregateImpl()</text>
<text text-anchor="start" x="204.5" y="-1175.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ AgregateImpl()</text>
-<text text-anchor="start" x="204.5" y="-1164.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ AgregateImpl()</text>
-<text text-anchor="start" x="204.5" y="-1153.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Agregate()</text>
+<text text-anchor="start" x="204.5" y="-1164.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Agregate()</text>
</a>
</g>
</g>
<!-- Node5->Node2 -->
<g id="edge5" class="edge">
<title>Node5->Node2</title>
-<path fill="none" stroke="#404040" d="M239.44,-1146.24C225.65,-1046.65 207.1,-912.72 196.77,-838.14"/>
-<polygon fill="none" stroke="#404040" points="196.77,-838.14 191.99,-832.74 195.13,-826.25 199.91,-831.64 196.77,-838.14"/>
-<text text-anchor="middle" x="257" y="-986.5" font-family="Helvetica,sans-Serif" font-size="10.00"> +stmts</text>
+<path fill="none" stroke="#404040" d="M239.44,-1157.24C225.65,-1057.65 207.1,-923.72 196.77,-849.14"/>
+<polygon fill="none" stroke="#404040" points="196.77,-849.14 191.99,-843.74 195.13,-837.25 199.91,-842.64 196.77,-849.14"/>
+<text text-anchor="middle" x="257" y="-997.5" font-family="Helvetica,sans-Serif" font-size="10.00"> +stmts</text>
</g>
<!-- Node6 -->
<g id="node6" class="node">
<title>Node6</title>
<g id="a_node6"><a xlink:href="classtvm_1_1runtime_1_1ObjectRef.html" target="_top" xlink:title="Base class of all object reference.">
-<polygon fill="white" stroke="black" points="453,-1516.5 453,-1749.5 587,-1749.5 587,-1516.5 453,-1516.5"/>
-<text text-anchor="middle" x="520" y="-1737.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::ObjectRef</text>
-<polyline fill="none" stroke="black" points="453,-1730.5 587,-1730.5 "/>
-<text text-anchor="start" x="461" y="-1718.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_is_nullable</text>
-<polyline fill="none" stroke="black" points="453,-1711.5 587,-1711.5 "/>
+<polygon fill="white" stroke="black" points="453,-1527.5 453,-1760.5 587,-1760.5 587,-1527.5 453,-1527.5"/>
+<text text-anchor="middle" x="520" y="-1748.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::ObjectRef</text>
+<polyline fill="none" stroke="black" points="453,-1741.5 587,-1741.5 "/>
+<text text-anchor="start" x="461" y="-1729.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_is_nullable</text>
+<polyline fill="none" stroke="black" points="453,-1722.5 587,-1722.5 "/>
+<text text-anchor="start" x="461" y="-1710.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectRef()</text>
<text text-anchor="start" x="461" y="-1699.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectRef()</text>
-<text text-anchor="start" x="461" y="-1688.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectRef()</text>
-<text text-anchor="start" x="461" y="-1677.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ same_as()</text>
-<text text-anchor="start" x="461" y="-1666.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator==()</text>
-<text text-anchor="start" x="461" y="-1655.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator!=()</text>
-<text text-anchor="start" x="461" y="-1644.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator<()</text>
-<text text-anchor="start" x="461" y="-1633.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ defined()</text>
-<text text-anchor="start" x="461" y="-1622.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get()</text>
-<text text-anchor="start" x="461" y="-1611.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator->()</text>
-<text text-anchor="start" x="461" y="-1600.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ unique()</text>
-<text text-anchor="start" x="461" y="-1589.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ use_count()</text>
+<text text-anchor="start" x="461" y="-1688.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ same_as()</text>
+<text text-anchor="start" x="461" y="-1677.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator==()</text>
+<text text-anchor="start" x="461" y="-1666.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator!=()</text>
+<text text-anchor="start" x="461" y="-1655.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator<()</text>
+<text text-anchor="start" x="461" y="-1644.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ defined()</text>
+<text text-anchor="start" x="461" y="-1633.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get()</text>
+<text text-anchor="start" x="461" y="-1622.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator->()</text>
+<text text-anchor="start" x="461" y="-1611.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ unique()</text>
+<text text-anchor="start" x="461" y="-1600.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ use_count()</text>
+<text text-anchor="start" x="461" y="-1589.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ as()</text>
<text text-anchor="start" x="461" y="-1578.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ as()</text>
-<text text-anchor="start" x="461" y="-1567.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ as()</text>
-<text text-anchor="start" x="461" y="-1556.5" font-family="Helvetica,sans-Serif" font-size="10.00"># get_mutable()</text>
-<text text-anchor="start" x="461" y="-1545.5" font-family="Helvetica,sans-Serif" font-size="10.00"># DowncastNoCheck()</text>
-<text text-anchor="start" x="461" y="-1534.5" font-family="Helvetica,sans-Serif" font-size="10.00"># FFIClearAfterMove()</text>
-<text text-anchor="start" x="461" y="-1523.5" font-family="Helvetica,sans-Serif" font-size="10.00"># GetDataPtr()</text>
+<text text-anchor="start" x="461" y="-1567.5" font-family="Helvetica,sans-Serif" font-size="10.00"># get_mutable()</text>
+<text text-anchor="start" x="461" y="-1556.5" font-family="Helvetica,sans-Serif" font-size="10.00"># DowncastNoCheck()</text>
+<text text-anchor="start" x="461" y="-1545.5" font-family="Helvetica,sans-Serif" font-size="10.00"># FFIClearAfterMove()</text>
+<text text-anchor="start" x="461" y="-1534.5" font-family="Helvetica,sans-Serif" font-size="10.00"># GetDataPtr()</text>
</a>
</g>
</g>
<!-- Node6->Node5 -->
<g id="edge6" class="edge">
<title>Node6->Node5</title>
-<path fill="none" stroke="midnightblue" d="M446.21,-1551.96C408.42,-1509.08 362.94,-1454.42 327,-1402 323.87,-1397.43 320.76,-1392.71 317.69,-1387.9"/>
-<polygon fill="none" stroke="midnightblue" points="443.68,-1554.38 452.93,-1559.55 448.92,-1549.74 443.68,-1554.38"/>
+<path fill="none" stroke="midnightblue" d="M446.21,-1562.96C408.42,-1520.08 362.94,-1465.42 327,-1413 323.87,-1408.43 320.76,-1403.71 317.69,-1398.9"/>
+<polygon fill="none" stroke="midnightblue" points="443.68,-1565.38 452.93,-1570.55 448.92,-1560.74 443.68,-1565.38"/>
</g>
<!-- Node10 -->
<g id="node10" class="node">
<title>Node10</title>
<g id="a_node10"><a xlink:href="classtvm_1_1BaseExpr.html" target="_top" xlink:title="Managed reference to BaseExprNode.">
-<polygon fill="white" stroke="black" points="336,-1240 336,-1308 492,-1308 492,-1240 336,-1240"/>
-<text text-anchor="middle" x="414" y="-1296" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::BaseExpr</text>
-<polyline fill="none" stroke="black" points="336,-1289 492,-1289 "/>
-<text text-anchor="middle" x="414" y="-1277" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="336,-1270 492,-1270 "/>
-<text text-anchor="start" x="344" y="-1258" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="344" y="-1247" font-family="Helvetica,sans-Serif" font-size="10.00">_METHODS()</text>
+<polygon fill="white" stroke="black" points="336,-1251 336,-1319 492,-1319 492,-1251 336,-1251"/>
+<text text-anchor="middle" x="414" y="-1307" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::BaseExpr</text>
+<polyline fill="none" stroke="black" points="336,-1300 492,-1300 "/>
+<text text-anchor="middle" x="414" y="-1288" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="336,-1281 492,-1281 "/>
+<text text-anchor="start" x="344" y="-1269" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="344" y="-1258" font-family="Helvetica,sans-Serif" font-size="10.00">_METHODS()</text>
</a>
</g>
</g>
<!-- Node6->Node10 -->
<g id="edge11" class="edge">
<title>Node6->Node10</title>
-<path fill="none" stroke="midnightblue" d="M482.66,-1506.23C461.73,-1435.77 437.23,-1353.25 423.89,-1308.32"/>
-<polygon fill="none" stroke="midnightblue" points="479.38,-1507.5 485.58,-1516.09 486.09,-1505.51 479.38,-1507.5"/>
+<path fill="none" stroke="midnightblue" d="M482.66,-1517.23C461.73,-1446.77 437.23,-1364.25 423.89,-1319.32"/>
+<polygon fill="none" stroke="midnightblue" points="479.38,-1518.5 485.58,-1527.09 486.09,-1516.51 479.38,-1518.5"/>
</g>
<!-- Node11 -->
<g id="node11" class="node">
<title>Node11</title>
<g id="a_node11"><a xlink:href="classtvm_1_1runtime_1_1NDArray.html" target="_top" xlink:title="Managed NDArray. The array is backed by reference counted blocks.">
-<polygon fill="white" stroke="black" points="383,-850.5 383,-1127.5 567,-1127.5 567,-850.5 383,-850.5"/>
-<text text-anchor="middle" x="475" y="-1115.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::NDArray</text>
-<polyline fill="none" stroke="black" points="383,-1108.5 567,-1108.5 "/>
-<text text-anchor="middle" x="475" y="-1096.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="383,-1089.5 567,-1089.5 "/>
+<polygon fill="white" stroke="black" points="383,-861.5 383,-1138.5 567,-1138.5 567,-861.5 383,-861.5"/>
+<text text-anchor="middle" x="475" y="-1126.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::NDArray</text>
+<polyline fill="none" stroke="black" points="383,-1119.5 567,-1119.5 "/>
+<text text-anchor="middle" x="475" y="-1107.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="383,-1100.5 567,-1100.5 "/>
+<text text-anchor="start" x="391" y="-1088.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NDArray()</text>
<text text-anchor="start" x="391" y="-1077.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NDArray()</text>
-<text text-anchor="start" x="391" y="-1066.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NDArray()</text>
-<text text-anchor="start" x="391" y="-1055.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ reset()</text>
-<text text-anchor="start" x="391" y="-1044.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ use_count()</text>
-<text text-anchor="start" x="391" y="-1033.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator->()</text>
-<text text-anchor="start" x="391" y="-1022.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ IsContiguous()</text>
+<text text-anchor="start" x="391" y="-1066.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ reset()</text>
+<text text-anchor="start" x="391" y="-1055.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ use_count()</text>
+<text text-anchor="start" x="391" y="-1044.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator->()</text>
+<text text-anchor="start" x="391" y="-1033.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ IsContiguous()</text>
+<text text-anchor="start" x="391" y="-1022.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ CopyFrom()</text>
<text text-anchor="start" x="391" y="-1011.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ CopyFrom()</text>
-<text text-anchor="start" x="391" y="-1000.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ CopyFrom()</text>
-<text text-anchor="start" x="391" y="-989.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ CopyFromBytes()</text>
-<text text-anchor="start" x="391" y="-978.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ CopyTo()</text>
-<text text-anchor="start" x="391" y="-967.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 9 more...</text>
-<text text-anchor="start" x="391" y="-956.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Empty()</text>
-<text text-anchor="start" x="391" y="-945.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ FromExternalDLTensor()</text>
-<text text-anchor="start" x="391" y="-934.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NewFromDLTensor()</text>
-<text text-anchor="start" x="391" y="-923.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ FromDLPack()</text>
-<text text-anchor="start" x="391" y="-912.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ CopyFromTo()</text>
-<text text-anchor="start" x="391" y="-901.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ AbilityOfZeroCopyForDLTensor()</text>
-<text text-anchor="start" x="391" y="-890.5" font-family="Helvetica,sans-Serif" font-size="10.00"># get_mutable()</text>
-<text text-anchor="start" x="391" y="-879.5" font-family="Helvetica,sans-Serif" font-size="10.00"># FFIDataFromHandle()</text>
-<text text-anchor="start" x="391" y="-868.5" font-family="Helvetica,sans-Serif" font-size="10.00"># FFIDecRef()</text>
-<text text-anchor="start" x="391" y="-857.5" font-family="Helvetica,sans-Serif" font-size="10.00"># FFIGetHandle()</text>
+<text text-anchor="start" x="391" y="-1000.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ CopyFromBytes()</text>
+<text text-anchor="start" x="391" y="-989.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ CopyTo()</text>
+<text text-anchor="start" x="391" y="-978.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 9 more...</text>
+<text text-anchor="start" x="391" y="-967.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Empty()</text>
+<text text-anchor="start" x="391" y="-956.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ FromExternalDLTensor()</text>
+<text text-anchor="start" x="391" y="-945.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NewFromDLTensor()</text>
+<text text-anchor="start" x="391" y="-934.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ FromDLPack()</text>
+<text text-anchor="start" x="391" y="-923.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ CopyFromTo()</text>
+<text text-anchor="start" x="391" y="-912.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ AbilityOfZeroCopyForDLTensor()</text>
+<text text-anchor="start" x="391" y="-901.5" font-family="Helvetica,sans-Serif" font-size="10.00"># get_mutable()</text>
+<text text-anchor="start" x="391" y="-890.5" font-family="Helvetica,sans-Serif" font-size="10.00"># FFIDataFromHandle()</text>
+<text text-anchor="start" x="391" y="-879.5" font-family="Helvetica,sans-Serif" font-size="10.00"># FFIDecRef()</text>
+<text text-anchor="start" x="391" y="-868.5" font-family="Helvetica,sans-Serif" font-size="10.00"># FFIGetHandle()</text>
</a>
</g>
</g>
<!-- Node6->Node11 -->
<g id="edge13" class="edge">
<title>Node6->Node11</title>
-<path fill="none" stroke="midnightblue" d="M519.42,-1506.05C517.93,-1407.76 513.49,-1267.9 501,-1146 500.38,-1139.99 499.68,-1133.86 498.91,-1127.68"/>
-<polygon fill="none" stroke="midnightblue" points="515.93,-1506.38 519.57,-1516.33 522.93,-1506.28 515.93,-1506.38"/>
+<path fill="none" stroke="midnightblue" d="M519.42,-1517.05C517.93,-1418.76 513.49,-1278.9 501,-1157 500.38,-1150.99 499.68,-1144.86 498.91,-1138.68"/>
+<polygon fill="none" stroke="midnightblue" points="515.93,-1517.38 519.57,-1527.33 522.93,-1517.28 515.93,-1517.38"/>
</g>
<!-- Node12 -->
<g id="node12" class="node">
<title>Node12</title>
<g id="a_node12"><a xlink:href="classtvm_1_1runtime_1_1Array.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="517.5,-456.5 517.5,-711.5 638.5,-711.5 638.5,-456.5 517.5,-456.5"/>
-<text text-anchor="start" x="525.5" y="-699.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::Array</text>
-<text text-anchor="middle" x="578" y="-688.5" font-family="Helvetica,sans-Serif" font-size="10.00">< tvm::PrimExpr ></text>
-<polyline fill="none" stroke="black" points="517.5,-681.5 638.5,-681.5 "/>
-<text text-anchor="middle" x="578" y="-669.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="517.5,-662.5 638.5,-662.5 "/>
+<polygon fill="white" stroke="black" points="517.5,-467.5 517.5,-722.5 638.5,-722.5 638.5,-467.5 517.5,-467.5"/>
+<text text-anchor="start" x="525.5" y="-710.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::Array</text>
+<text text-anchor="middle" x="578" y="-699.5" font-family="Helvetica,sans-Serif" font-size="10.00">< tvm::PrimExpr ></text>
+<polyline fill="none" stroke="black" points="517.5,-692.5 638.5,-692.5 "/>
+<text text-anchor="middle" x="578" y="-680.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="517.5,-673.5 638.5,-673.5 "/>
+<text text-anchor="start" x="525.5" y="-661.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Array()</text>
<text text-anchor="start" x="525.5" y="-650.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Array()</text>
<text text-anchor="start" x="525.5" y="-639.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Array()</text>
<text text-anchor="start" x="525.5" y="-628.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Array()</text>
@@ -280,192 +281,192 @@
<text text-anchor="start" x="525.5" y="-606.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Array()</text>
<text text-anchor="start" x="525.5" y="-595.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Array()</text>
<text text-anchor="start" x="525.5" y="-584.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Array()</text>
-<text text-anchor="start" x="525.5" y="-573.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Array()</text>
+<text text-anchor="start" x="525.5" y="-573.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
<text text-anchor="start" x="525.5" y="-562.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
-<text text-anchor="start" x="525.5" y="-551.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
-<text text-anchor="start" x="525.5" y="-540.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 25 more...</text>
+<text text-anchor="start" x="525.5" y="-551.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 25 more...</text>
+<text text-anchor="start" x="525.5" y="-540.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ CalcCapacityImpl()</text>
<text text-anchor="start" x="525.5" y="-529.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ CalcCapacityImpl()</text>
<text text-anchor="start" x="525.5" y="-518.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ CalcCapacityImpl()</text>
-<text text-anchor="start" x="525.5" y="-507.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ CalcCapacityImpl()</text>
+<text text-anchor="start" x="525.5" y="-507.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ AgregateImpl()</text>
<text text-anchor="start" x="525.5" y="-496.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ AgregateImpl()</text>
<text text-anchor="start" x="525.5" y="-485.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ AgregateImpl()</text>
-<text text-anchor="start" x="525.5" y="-474.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ AgregateImpl()</text>
-<text text-anchor="start" x="525.5" y="-463.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Agregate()</text>
+<text text-anchor="start" x="525.5" y="-474.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Agregate()</text>
</a>
</g>
</g>
<!-- Node6->Node12 -->
<g id="edge15" class="edge">
<title>Node6->Node12</title>
-<path fill="none" stroke="midnightblue" d="M534.66,-1506.32C545.9,-1404.48 560.67,-1257.19 568,-1128 576.09,-985.5 578.11,-821.67 578.41,-711.55"/>
-<polygon fill="none" stroke="midnightblue" points="531.18,-1506.01 533.55,-1516.34 538.13,-1506.78 531.18,-1506.01"/>
+<path fill="none" stroke="midnightblue" d="M534.66,-1517.32C545.9,-1415.48 560.67,-1268.19 568,-1139 576.09,-996.5 578.11,-832.67 578.41,-722.55"/>
+<polygon fill="none" stroke="midnightblue" points="531.18,-1517.01 533.55,-1527.34 538.13,-1517.78 531.18,-1517.01"/>
</g>
<!-- Node13 -->
<g id="node13" class="node">
<title>Node13</title>
<g id="a_node13"><a xlink:href="classtvm_1_1runtime_1_1Map.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="596.5,-894.5 596.5,-1083.5 745.5,-1083.5 745.5,-894.5 596.5,-894.5"/>
-<text text-anchor="start" x="604.5" y="-1071.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::Map<</text>
-<text text-anchor="start" x="604.5" y="-1060.5" font-family="Helvetica,sans-Serif" font-size="10.00"> tvm::runtime::String,</text>
-<text text-anchor="middle" x="671" y="-1049.5" font-family="Helvetica,sans-Serif" font-size="10.00"> tvm::runtime::ObjectRef ></text>
-<polyline fill="none" stroke="black" points="596.5,-1042.5 745.5,-1042.5 "/>
-<text text-anchor="middle" x="671" y="-1030.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="596.5,-1023.5 745.5,-1023.5 "/>
+<polygon fill="white" stroke="black" points="596.5,-905.5 596.5,-1094.5 745.5,-1094.5 745.5,-905.5 596.5,-905.5"/>
+<text text-anchor="start" x="604.5" y="-1082.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::Map<</text>
+<text text-anchor="start" x="604.5" y="-1071.5" font-family="Helvetica,sans-Serif" font-size="10.00"> tvm::runtime::String,</text>
+<text text-anchor="middle" x="671" y="-1060.5" font-family="Helvetica,sans-Serif" font-size="10.00"> tvm::runtime::ObjectRef ></text>
+<polyline fill="none" stroke="black" points="596.5,-1053.5 745.5,-1053.5 "/>
+<text text-anchor="middle" x="671" y="-1041.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="596.5,-1034.5 745.5,-1034.5 "/>
+<text text-anchor="start" x="604.5" y="-1022.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Map()</text>
<text text-anchor="start" x="604.5" y="-1011.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Map()</text>
<text text-anchor="start" x="604.5" y="-1000.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Map()</text>
<text text-anchor="start" x="604.5" y="-989.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Map()</text>
<text text-anchor="start" x="604.5" y="-978.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Map()</text>
<text text-anchor="start" x="604.5" y="-967.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Map()</text>
<text text-anchor="start" x="604.5" y="-956.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Map()</text>
-<text text-anchor="start" x="604.5" y="-945.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Map()</text>
+<text text-anchor="start" x="604.5" y="-945.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
<text text-anchor="start" x="604.5" y="-934.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
-<text text-anchor="start" x="604.5" y="-923.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
-<text text-anchor="start" x="604.5" y="-912.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ at()</text>
-<text text-anchor="start" x="604.5" y="-901.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 12 more...</text>
+<text text-anchor="start" x="604.5" y="-923.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ at()</text>
+<text text-anchor="start" x="604.5" y="-912.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 12 more...</text>
</a>
</g>
</g>
<!-- Node6->Node13 -->
<g id="edge17" class="edge">
<title>Node6->Node13</title>
-<path fill="none" stroke="midnightblue" d="M569.25,-1506.46C579.04,-1478.6 588.57,-1449.03 596,-1421 626.3,-1306.65 647.49,-1171.91 659.44,-1083.91"/>
-<polygon fill="none" stroke="midnightblue" points="565.82,-1505.64 565.77,-1516.23 572.42,-1507.98 565.82,-1505.64"/>
+<path fill="none" stroke="midnightblue" d="M569.25,-1517.46C579.04,-1489.6 588.57,-1460.03 596,-1432 626.3,-1317.65 647.49,-1182.91 659.44,-1094.91"/>
+<polygon fill="none" stroke="midnightblue" points="565.82,-1516.64 565.77,-1527.23 572.42,-1518.98 565.82,-1516.64"/>
</g>
<!-- Node7 -->
<g id="node7" class="node">
<title>Node7</title>
<g id="a_node7"><a xlink:href="classtvm_1_1runtime_1_1ObjectPtr.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="450,-1874.5 450,-2052.5 590,-2052.5 590,-1874.5 450,-1874.5"/>
-<text text-anchor="start" x="458" y="-2040.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::ObjectPtr</text>
-<text text-anchor="middle" x="520" y="-2029.5" font-family="Helvetica,sans-Serif" font-size="10.00">< tvm::runtime::Object ></text>
-<polyline fill="none" stroke="black" points="450,-2022.5 590,-2022.5 "/>
-<text text-anchor="middle" x="520" y="-2010.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="450,-2003.5 590,-2003.5 "/>
+<polygon fill="white" stroke="black" points="450,-1885.5 450,-2063.5 590,-2063.5 590,-1885.5 450,-1885.5"/>
+<text text-anchor="start" x="458" y="-2051.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::ObjectPtr</text>
+<text text-anchor="middle" x="520" y="-2040.5" font-family="Helvetica,sans-Serif" font-size="10.00">< tvm::runtime::Object ></text>
+<polyline fill="none" stroke="black" points="450,-2033.5 590,-2033.5 "/>
+<text text-anchor="middle" x="520" y="-2021.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="450,-2014.5 590,-2014.5 "/>
+<text text-anchor="start" x="458" y="-2002.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="458" y="-1991.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="458" y="-1980.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="458" y="-1969.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="458" y="-1958.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="458" y="-1947.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
-<text text-anchor="start" x="458" y="-1936.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
-<text text-anchor="start" x="458" y="-1925.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ~ObjectPtr()</text>
-<text text-anchor="start" x="458" y="-1914.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ swap()</text>
-<text text-anchor="start" x="458" y="-1903.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get()</text>
-<text text-anchor="start" x="458" y="-1892.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator->()</text>
-<text text-anchor="start" x="458" y="-1881.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 11 more...</text>
+<text text-anchor="start" x="458" y="-1936.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ~ObjectPtr()</text>
+<text text-anchor="start" x="458" y="-1925.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ swap()</text>
+<text text-anchor="start" x="458" y="-1914.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get()</text>
+<text text-anchor="start" x="458" y="-1903.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator->()</text>
+<text text-anchor="start" x="458" y="-1892.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 11 more...</text>
</a>
</g>
</g>
<!-- Node7->Node6 -->
<g id="edge7" class="edge">
<title>Node7->Node6</title>
-<path fill="none" stroke="#404040" d="M520,-1874.47C520,-1839.91 520,-1799.57 520,-1761.92"/>
-<polygon fill="none" stroke="#404040" points="520,-1761.8 516,-1755.8 520,-1749.8 524,-1755.8 520,-1761.8"/>
-<text text-anchor="middle" x="539.5" y="-1848" font-family="Helvetica,sans-Serif" font-size="10.00"> #data_</text>
+<path fill="none" stroke="#404040" d="M520,-1885.47C520,-1850.91 520,-1810.57 520,-1772.92"/>
+<polygon fill="none" stroke="#404040" points="520,-1772.8 516,-1766.8 520,-1760.8 524,-1766.8 520,-1772.8"/>
+<text text-anchor="middle" x="539.5" y="-1859" font-family="Helvetica,sans-Serif" font-size="10.00"> #data_</text>
</g>
<!-- Node8 -->
<g id="node8" class="node">
<title>Node8</title>
<g id="a_node8"><a xlink:href="classtvm_1_1tir_1_1Var.html" target="_top" xlink:title="a named variable in TIR">
-<polygon fill="white" stroke="black" points="323,-226.5 323,-360.5 441,-360.5 441,-226.5 323,-226.5"/>
-<text text-anchor="middle" x="382" y="-348.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::tir::Var</text>
-<polyline fill="none" stroke="black" points="323,-341.5 441,-341.5 "/>
-<text text-anchor="middle" x="382" y="-329.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="323,-322.5 441,-322.5 "/>
-<text text-anchor="start" x="331" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Var()</text>
-<text text-anchor="start" x="331" y="-299.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Var()</text>
-<text text-anchor="start" x="331" y="-288.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Var()</text>
-<text text-anchor="start" x="331" y="-277.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ copy_with_name()</text>
-<text text-anchor="start" x="331" y="-266.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ copy_with_suffix()</text>
-<text text-anchor="start" x="331" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ copy_with_dtype()</text>
-<text text-anchor="start" x="331" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator->()</text>
-<text text-anchor="start" x="331" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get()</text>
+<polygon fill="white" stroke="black" points="323,-232 323,-366 441,-366 441,-232 323,-232"/>
+<text text-anchor="middle" x="382" y="-354" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::tir::Var</text>
+<polyline fill="none" stroke="black" points="323,-347 441,-347 "/>
+<text text-anchor="middle" x="382" y="-335" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="323,-328 441,-328 "/>
+<text text-anchor="start" x="331" y="-316" font-family="Helvetica,sans-Serif" font-size="10.00">+ Var()</text>
+<text text-anchor="start" x="331" y="-305" font-family="Helvetica,sans-Serif" font-size="10.00">+ Var()</text>
+<text text-anchor="start" x="331" y="-294" font-family="Helvetica,sans-Serif" font-size="10.00">+ Var()</text>
+<text text-anchor="start" x="331" y="-283" font-family="Helvetica,sans-Serif" font-size="10.00">+ copy_with_name()</text>
+<text text-anchor="start" x="331" y="-272" font-family="Helvetica,sans-Serif" font-size="10.00">+ copy_with_suffix()</text>
+<text text-anchor="start" x="331" y="-261" font-family="Helvetica,sans-Serif" font-size="10.00">+ copy_with_dtype()</text>
+<text text-anchor="start" x="331" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator->()</text>
+<text text-anchor="start" x="331" y="-239" font-family="Helvetica,sans-Serif" font-size="10.00">+ get()</text>
</a>
</g>
</g>
<!-- Node8->Node1 -->
<g id="edge8" class="edge">
<title>Node8->Node1</title>
-<path fill="none" stroke="#404040" d="M376.87,-226.48C377.31,-192.26 382.94,-151.22 403,-120 406.91,-113.91 411.59,-108.28 416.76,-103.09"/>
-<polygon fill="none" stroke="#404040" points="417.04,-102.84 418.79,-95.84 425.92,-94.76 424.17,-101.76 417.04,-102.84"/>
+<path fill="none" stroke="#404040" d="M376.4,-231.61C376.54,-195.97 382.03,-152.76 403,-120 406.9,-113.9 411.57,-108.27 416.74,-103.07"/>
+<polygon fill="none" stroke="#404040" points="417.01,-102.82 418.75,-95.83 425.88,-94.74 424.14,-101.74 417.01,-102.82"/>
<text text-anchor="middle" x="433.5" y="-123" font-family="Helvetica,sans-Serif" font-size="10.00"> +buffer_var</text>
</g>
<!-- Node9 -->
<g id="node9" class="node">
<title>Node9</title>
<g id="a_node9"><a xlink:href="classtvm_1_1PrimExpr.html" target="_top" xlink:title="Reference to PrimExprNode.">
-<polygon fill="white" stroke="black" points="294,-730.5 294,-831.5 450,-831.5 450,-730.5 294,-730.5"/>
-<text text-anchor="middle" x="372" y="-819.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::PrimExpr</text>
-<polyline fill="none" stroke="black" points="294,-812.5 450,-812.5 "/>
-<text text-anchor="middle" x="372" y="-800.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="294,-793.5 450,-793.5 "/>
+<polygon fill="white" stroke="black" points="294,-741.5 294,-842.5 450,-842.5 450,-741.5 294,-741.5"/>
+<text text-anchor="middle" x="372" y="-830.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::PrimExpr</text>
+<polyline fill="none" stroke="black" points="294,-823.5 450,-823.5 "/>
+<text text-anchor="middle" x="372" y="-811.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="294,-804.5 450,-804.5 "/>
+<text text-anchor="start" x="302" y="-792.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ PrimExpr()</text>
<text text-anchor="start" x="302" y="-781.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ PrimExpr()</text>
-<text text-anchor="start" x="302" y="-770.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ PrimExpr()</text>
-<text text-anchor="start" x="302" y="-759.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ dtype()</text>
-<text text-anchor="start" x="302" y="-748.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="302" y="-737.5" font-family="Helvetica,sans-Serif" font-size="10.00">_METHODS()</text>
+<text text-anchor="start" x="302" y="-770.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ dtype()</text>
+<text text-anchor="start" x="302" y="-759.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="302" y="-748.5" font-family="Helvetica,sans-Serif" font-size="10.00">_METHODS()</text>
</a>
</g>
</g>
<!-- Node9->Node8 -->
<g id="edge9" class="edge">
<title>Node9->Node8</title>
-<path fill="none" stroke="midnightblue" d="M373.23,-720.15C375.11,-628.88 378.68,-455.53 380.64,-360.64"/>
-<polygon fill="none" stroke="midnightblue" points="369.73,-720.25 373.02,-730.32 376.73,-720.4 369.73,-720.25"/>
+<path fill="none" stroke="midnightblue" d="M373.22,-731.2C375.1,-638.88 378.69,-462.29 380.65,-366.22"/>
+<polygon fill="none" stroke="midnightblue" points="369.72,-731.15 373.01,-741.22 376.72,-731.29 369.72,-731.15"/>
</g>
<!-- Node10->Node9 -->
<g id="edge10" class="edge">
<title>Node10->Node9</title>
-<path fill="none" stroke="midnightblue" d="M402.33,-1230.2C395.06,-1201.53 386.3,-1162.79 382,-1128 369.04,-1023.18 369.16,-899.21 370.51,-831.78"/>
-<polygon fill="none" stroke="midnightblue" points="398.94,-1231.1 404.83,-1239.91 405.72,-1229.35 398.94,-1231.1"/>
+<path fill="none" stroke="midnightblue" d="M402.33,-1241.2C395.06,-1212.53 386.3,-1173.79 382,-1139 369.04,-1034.18 369.16,-910.21 370.51,-842.78"/>
+<polygon fill="none" stroke="midnightblue" points="398.94,-1242.1 404.83,-1250.91 405.72,-1240.35 398.94,-1242.1"/>
</g>
<!-- Node11->Node1 -->
<g id="edge12" class="edge">
<title>Node11->Node1</title>
-<path fill="none" stroke="#404040" d="M471.37,-850.41C469.42,-742.94 468.55,-589.88 475,-456 480.86,-334.41 496.57,-192.94 506.17,-113.8"/>
-<polygon fill="none" stroke="#404040" points="506.2,-113.56 502.96,-107.12 507.65,-101.64 510.9,-108.09 506.2,-113.56"/>
-<text text-anchor="middle" x="492" y="-581.5" font-family="Helvetica,sans-Serif" font-size="10.00"> +data</text>
+<path fill="none" stroke="#404040" d="M471.47,-861.41C469.56,-753.95 468.72,-600.89 475,-467 480.9,-341.17 496.81,-194.59 506.38,-113.66"/>
+<polygon fill="none" stroke="#404040" points="506.39,-113.64 503.13,-107.21 507.81,-101.72 511.07,-108.15 506.39,-113.64"/>
+<text text-anchor="middle" x="492" y="-592.5" font-family="Helvetica,sans-Serif" font-size="10.00"> +data</text>
</g>
<!-- Node12->Node1 -->
<g id="edge14" class="edge">
<title>Node12->Node1</title>
-<path fill="none" stroke="#404040" d="M562.75,-456.49C549.71,-348.27 531.5,-197.16 521.43,-113.63"/>
-<polygon fill="none" stroke="#404040" points="521.41,-113.48 516.72,-108 519.97,-101.56 524.66,-107.04 521.41,-113.48"/>
-<text text-anchor="middle" x="584.5" y="-291" font-family="Helvetica,sans-Serif" font-size="10.00"> +extents</text>
+<path fill="none" stroke="#404040" d="M563.04,-467.27C549.92,-356.19 531.41,-199.48 521.3,-113.84"/>
+<polygon fill="none" stroke="#404040" points="521.28,-113.65 516.6,-108.16 519.87,-101.73 524.55,-107.22 521.28,-113.65"/>
+<text text-anchor="middle" x="585.5" y="-296.5" font-family="Helvetica,sans-Serif" font-size="10.00"> +extents</text>
</g>
<!-- Node13->Node1 -->
<g id="edge16" class="edge">
<title>Node13->Node1</title>
-<path fill="none" stroke="#404040" d="M672.99,-894.48C675.68,-704.14 674.36,-278.77 613,-149 606.47,-135.18 597.08,-122.25 586.66,-110.61"/>
-<polygon fill="none" stroke="#404040" points="586.36,-110.29 579.33,-108.68 578.12,-101.57 585.14,-103.18 586.36,-110.29"/>
-<text text-anchor="middle" x="708" y="-581.5" font-family="Helvetica,sans-Serif" font-size="10.00"> +annotations</text>
+<path fill="none" stroke="#404040" d="M673.22,-905.36C676.42,-713.07 676.2,-280.74 614,-149 607.48,-135.19 598.1,-122.3 587.66,-110.7"/>
+<polygon fill="none" stroke="#404040" points="587.36,-110.39 580.33,-108.8 579.09,-101.69 586.13,-103.29 587.36,-110.39"/>
+<text text-anchor="middle" x="709" y="-592.5" font-family="Helvetica,sans-Serif" font-size="10.00"> +annotations</text>
</g>
<!-- Node14 -->
<g id="node14" class="node">
<title>Node14</title>
<g id="a_node14"><a xlink:href="classtvm_1_1runtime_1_1DataType.html" target="_top" xlink:title="Runtime primitive data type.">
-<polygon fill="white" stroke="black" points="690,-149.5 690,-437.5 822,-437.5 822,-149.5 690,-149.5"/>
-<text text-anchor="middle" x="756" y="-425.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::DataType</text>
-<polyline fill="none" stroke="black" points="690,-418.5 822,-418.5 "/>
-<text text-anchor="middle" x="756" y="-406.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="690,-399.5 822,-399.5 "/>
+<polygon fill="white" stroke="black" points="690,-149.5 690,-448.5 822,-448.5 822,-149.5 690,-149.5"/>
+<text text-anchor="middle" x="756" y="-436.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::DataType</text>
+<polyline fill="none" stroke="black" points="690,-429.5 822,-429.5 "/>
+<text text-anchor="middle" x="756" y="-417.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="690,-410.5 822,-410.5 "/>
+<text text-anchor="start" x="698" y="-398.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ DataType()</text>
<text text-anchor="start" x="698" y="-387.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ DataType()</text>
<text text-anchor="start" x="698" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ DataType()</text>
-<text text-anchor="start" x="698" y="-365.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ DataType()</text>
-<text text-anchor="start" x="698" y="-354.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ code()</text>
-<text text-anchor="start" x="698" y="-343.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ bits()</text>
-<text text-anchor="start" x="698" y="-332.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ bytes()</text>
-<text text-anchor="start" x="698" y="-321.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ lanes()</text>
-<text text-anchor="start" x="698" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ vscale_factor()</text>
-<text text-anchor="start" x="698" y="-299.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get_lanes_or_vscale</text>
-<text text-anchor="start" x="698" y="-288.5" font-family="Helvetica,sans-Serif" font-size="10.00">_factor()</text>
-<text text-anchor="start" x="698" y="-277.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ is_scalar()</text>
-<text text-anchor="start" x="698" y="-266.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 24 more...</text>
-<text text-anchor="start" x="698" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Int()</text>
-<text text-anchor="start" x="698" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ UInt()</text>
-<text text-anchor="start" x="698" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Float()</text>
-<text text-anchor="start" x="698" y="-222.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ BFloat()</text>
-<text text-anchor="start" x="698" y="-211.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat8E4M3()</text>
-<text text-anchor="start" x="698" y="-200.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat8E5M2()</text>
+<text text-anchor="start" x="698" y="-365.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ code()</text>
+<text text-anchor="start" x="698" y="-354.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ bits()</text>
+<text text-anchor="start" x="698" y="-343.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ bytes()</text>
+<text text-anchor="start" x="698" y="-332.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ lanes()</text>
+<text text-anchor="start" x="698" y="-321.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ vscale_factor()</text>
+<text text-anchor="start" x="698" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get_lanes_or_vscale</text>
+<text text-anchor="start" x="698" y="-299.5" font-family="Helvetica,sans-Serif" font-size="10.00">_factor()</text>
+<text text-anchor="start" x="698" y="-288.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ is_scalar()</text>
+<text text-anchor="start" x="698" y="-277.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 26 more...</text>
+<text text-anchor="start" x="698" y="-266.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Int()</text>
+<text text-anchor="start" x="698" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ UInt()</text>
+<text text-anchor="start" x="698" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Float()</text>
+<text text-anchor="start" x="698" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ BFloat()</text>
+<text text-anchor="start" x="698" y="-222.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat8E4M3()</text>
+<text text-anchor="start" x="698" y="-211.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat8E5M2()</text>
+<text text-anchor="start" x="698" y="-200.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat4E2M1()</text>
<text text-anchor="start" x="698" y="-189.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Bool()</text>
<text text-anchor="start" x="698" y="-178.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Handle()</text>
<text text-anchor="start" x="698" y="-167.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Void()</text>
@@ -476,8 +477,8 @@
<!-- Node14->Node1 -->
<g id="edge18" class="edge">
<title>Node14->Node1</title>
-<path fill="none" stroke="#404040" d="M700.41,-149.21C693.15,-138.63 685.03,-128.71 676,-120 658.43,-103.07 636.03,-90.08 613.53,-80.22"/>
-<polygon fill="none" stroke="#404040" points="613.22,-80.09 606.14,-81.49 602.13,-75.49 609.21,-74.1 613.22,-80.09"/>
+<path fill="none" stroke="#404040" d="M700.23,-149.3C693.03,-138.69 684.97,-128.75 676,-120 658.53,-102.96 636.17,-89.94 613.67,-80.07"/>
+<polygon fill="none" stroke="#404040" points="613.36,-79.95 606.28,-81.34 602.28,-75.34 609.35,-73.95 613.36,-79.95"/>
<text text-anchor="middle" x="703" y="-123" font-family="Helvetica,sans-Serif" font-size="10.00"> +dtype</text>
</g>
</g>
diff --git a/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1tir_1_1AllocateFrameNode.html b/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1tir_1_1AllocateFrameNode.html
index 2c2daec7b1..0b8e8a1ffa 100644
--- a/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1tir_1_1AllocateFrameNode.html
+++ b/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1tir_1_1AllocateFrameNode.html
@@ -88,7 +88,7 @@ Inheritance diagram for tvm::script::ir_builder::tir::AllocateFrameNode:</div>
<div class="dynheader">
Collaboration diagram for tvm::script::ir_builder::tir::AllocateFrameNode:</div>
<div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1script_1_1ir__builder_1_1tir_1_1AllocateFrameNode__coll__graph.svg" width="1154" height="2631"><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_1script_1_1ir__builder_1_1tir_1_1AllocateFrameNode__coll__graph.svg" width="1154" height="2646"><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">
diff --git a/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1tir_1_1AllocateFrameNode__coll__graph.svg b/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1tir_1_1AllocateFrameNode__coll__graph.svg
index 70035dd4fe..a620567b69 100644
--- a/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1tir_1_1AllocateFrameNode__coll__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1script_1_1ir__builder_1_1tir_1_1AllocateFrameNode__coll__graph.svg
@@ -4,11 +4,11 @@
<!-- Generated by graphviz version 2.43.0 (0)
-->
<!-- Title: tvm::script::ir_builder::tir::AllocateFrameNode Pages: 1 -->
-<svg width="865pt" height="1973pt"
- viewBox="0.00 0.00 865.00 1973.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 1969)">
+<svg width="865pt" height="1984pt"
+ viewBox="0.00 0.00 865.00 1984.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 1980)">
<title>tvm::script::ir_builder::tir::AllocateFrameNode</title>
-<polygon fill="white" stroke="transparent" points="-4,4 -4,-1969 861,-1969 861,4 -4,4"/>
+<polygon fill="white" stroke="transparent" points="-4,4 -4,-1980 861,-1980 861,4 -4,4"/>
<!-- Node1 -->
<g id="node1" class="node">
<title>Node1</title>
@@ -30,117 +30,118 @@
<g id="node2" class="node">
<title>Node2</title>
<g id="a_node2"><a xlink:href="classtvm_1_1script_1_1ir__builder_1_1tir_1_1TIRFrameNode.html" target="_top" xlink:title="A base frame that represents the TIR fame with body of statements.">
-<polygon fill="white" stroke="black" points="95.5,-670 95.5,-760 268.5,-760 268.5,-670 95.5,-670"/>
-<text text-anchor="start" x="103.5" y="-748" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::script::ir_builder</text>
-<text text-anchor="middle" x="182" y="-737" font-family="Helvetica,sans-Serif" font-size="10.00">::tir::TIRFrameNode</text>
-<polyline fill="none" stroke="black" points="95.5,-730 268.5,-730 "/>
-<text text-anchor="start" x="103.5" y="-718" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
-<polyline fill="none" stroke="black" points="95.5,-711 268.5,-711 "/>
-<text text-anchor="start" x="103.5" y="-699" font-family="Helvetica,sans-Serif" font-size="10.00">+ VisitAttrs()</text>
-<text text-anchor="start" x="103.5" y="-688" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DECLARE_BASE_OBJECT</text>
-<text text-anchor="start" x="103.5" y="-677" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO()</text>
+<polygon fill="white" stroke="black" points="95.5,-681 95.5,-771 268.5,-771 268.5,-681 95.5,-681"/>
+<text text-anchor="start" x="103.5" y="-759" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::script::ir_builder</text>
+<text text-anchor="middle" x="182" y="-748" font-family="Helvetica,sans-Serif" font-size="10.00">::tir::TIRFrameNode</text>
+<polyline fill="none" stroke="black" points="95.5,-741 268.5,-741 "/>
+<text text-anchor="start" x="103.5" y="-729" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
+<polyline fill="none" stroke="black" points="95.5,-722 268.5,-722 "/>
+<text text-anchor="start" x="103.5" y="-710" font-family="Helvetica,sans-Serif" font-size="10.00">+ VisitAttrs()</text>
+<text text-anchor="start" x="103.5" y="-699" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DECLARE_BASE_OBJECT</text>
+<text text-anchor="start" x="103.5" y="-688" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO()</text>
</a>
</g>
</g>
<!-- Node2->Node1 -->
<g id="edge1" class="edge">
<title>Node2->Node1</title>
-<path fill="none" stroke="midnightblue" d="M168.53,-659.92C145.07,-552.61 108.57,-309.27 213,-149 249.64,-92.77 323.57,-69.04 382.93,-59.07"/>
-<polygon fill="none" stroke="midnightblue" points="165.15,-660.88 170.75,-669.88 171.99,-659.35 165.15,-660.88"/>
+<path fill="none" stroke="midnightblue" d="M168.23,-670.97C143.79,-562.08 104.84,-312.71 212,-149 248.95,-92.56 323.35,-68.85 382.97,-58.95"/>
+<polygon fill="none" stroke="midnightblue" points="164.83,-671.79 170.47,-680.75 171.65,-670.22 164.83,-671.79"/>
</g>
<!-- Node3 -->
<g id="node3" class="node">
<title>Node3</title>
<g id="a_node3"><a xlink:href="classtvm_1_1script_1_1ir__builder_1_1IRBuilderFrameNode.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="5.5,-1113.5 5.5,-1258.5 178.5,-1258.5 178.5,-1113.5 5.5,-1113.5"/>
-<text text-anchor="start" x="13.5" y="-1246.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::script::ir_builder</text>
-<text text-anchor="middle" x="92" y="-1235.5" font-family="Helvetica,sans-Serif" font-size="10.00">::IRBuilderFrameNode</text>
-<polyline fill="none" stroke="black" points="5.5,-1228.5 178.5,-1228.5 "/>
-<text text-anchor="start" x="13.5" y="-1216.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ callbacks</text>
-<text text-anchor="start" x="13.5" y="-1205.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
-<polyline fill="none" stroke="black" points="5.5,-1198.5 178.5,-1198.5 "/>
-<text text-anchor="start" x="13.5" y="-1186.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ VisitAttrs()</text>
-<text text-anchor="start" x="13.5" y="-1175.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DECLARE_BASE_OBJECT</text>
-<text text-anchor="start" x="13.5" y="-1164.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO()</text>
-<text text-anchor="start" x="13.5" y="-1153.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ~IRBuilderFrameNode()</text>
-<text text-anchor="start" x="13.5" y="-1142.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ EnterWithScope()</text>
-<text text-anchor="start" x="13.5" y="-1131.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ExitWithScope()</text>
-<text text-anchor="start" x="13.5" y="-1120.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ AddCallback()</text>
+<polygon fill="white" stroke="black" points="5.5,-1124.5 5.5,-1269.5 178.5,-1269.5 178.5,-1124.5 5.5,-1124.5"/>
+<text text-anchor="start" x="13.5" y="-1257.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::script::ir_builder</text>
+<text text-anchor="middle" x="92" y="-1246.5" font-family="Helvetica,sans-Serif" font-size="10.00">::IRBuilderFrameNode</text>
+<polyline fill="none" stroke="black" points="5.5,-1239.5 178.5,-1239.5 "/>
+<text text-anchor="start" x="13.5" y="-1227.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ callbacks</text>
+<text text-anchor="start" x="13.5" y="-1216.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
+<polyline fill="none" stroke="black" points="5.5,-1209.5 178.5,-1209.5 "/>
+<text text-anchor="start" x="13.5" y="-1197.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ VisitAttrs()</text>
+<text text-anchor="start" x="13.5" y="-1186.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DECLARE_BASE_OBJECT</text>
+<text text-anchor="start" x="13.5" y="-1175.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO()</text>
+<text text-anchor="start" x="13.5" y="-1164.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ~IRBuilderFrameNode()</text>
+<text text-anchor="start" x="13.5" y="-1153.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ EnterWithScope()</text>
+<text text-anchor="start" x="13.5" y="-1142.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ExitWithScope()</text>
+<text text-anchor="start" x="13.5" y="-1131.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ AddCallback()</text>
</a>
</g>
</g>
<!-- Node3->Node2 -->
<g id="edge2" class="edge">
<title>Node3->Node2</title>
-<path fill="none" stroke="midnightblue" d="M107.69,-1103.23C126.82,-1003.56 158.45,-838.74 173.51,-760.23"/>
-<polygon fill="none" stroke="midnightblue" points="104.21,-1102.78 105.77,-1113.26 111.09,-1104.1 104.21,-1102.78"/>
+<path fill="none" stroke="midnightblue" d="M107.69,-1114.23C126.82,-1014.56 158.45,-849.74 173.51,-771.23"/>
+<polygon fill="none" stroke="midnightblue" points="104.21,-1113.78 105.77,-1124.26 111.09,-1115.1 104.21,-1113.78"/>
</g>
<!-- Node4 -->
<g id="node4" class="node">
<title>Node4</title>
<g id="a_node4"><a xlink:href="classtvm_1_1runtime_1_1Object.html" target="_top" xlink:title="base class of all object containers.">
-<polygon fill="white" stroke="black" points="0,-1351.5 0,-1738.5 184,-1738.5 184,-1351.5 0,-1351.5"/>
-<text text-anchor="middle" x="92" y="-1726.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::Object</text>
-<polyline fill="none" stroke="black" points="0,-1719.5 184,-1719.5 "/>
-<text text-anchor="start" x="8" y="-1707.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
-<text text-anchor="start" x="8" y="-1696.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_final</text>
-<text text-anchor="start" x="8" y="-1685.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots</text>
-<text text-anchor="start" x="8" y="-1674.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots_can</text>
-<text text-anchor="start" x="8" y="-1663.5" font-family="Helvetica,sans-Serif" font-size="10.00">_overflow</text>
-<text text-anchor="start" x="8" y="-1652.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_visit</text>
-<text text-anchor="start" x="8" y="-1641.5" font-family="Helvetica,sans-Serif" font-size="10.00">_attrs</text>
-<text text-anchor="start" x="8" y="-1630.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_sequal</text>
-<text text-anchor="start" x="8" y="-1619.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
-<text text-anchor="start" x="8" y="-1608.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_shash</text>
-<text text-anchor="start" x="8" y="-1597.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
-<text text-anchor="start" x="8" y="-1586.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_index</text>
-<text text-anchor="start" x="8" y="-1575.5" font-family="Helvetica,sans-Serif" font-size="10.00"># type_index_</text>
-<text text-anchor="start" x="8" y="-1564.5" font-family="Helvetica,sans-Serif" font-size="10.00"># ref_counter_</text>
-<polyline fill="none" stroke="black" points="0,-1557.5 184,-1557.5 "/>
-<text text-anchor="start" x="8" y="-1545.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ type_index()</text>
-<text text-anchor="start" x="8" y="-1534.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ GetTypeKey()</text>
-<text text-anchor="start" x="8" y="-1523.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ GetTypeKeyHash()</text>
-<text text-anchor="start" x="8" y="-1512.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ IsInstance()</text>
-<text text-anchor="start" x="8" y="-1501.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ unique()</text>
+<polygon fill="white" stroke="black" points="0,-1362.5 0,-1749.5 184,-1749.5 184,-1362.5 0,-1362.5"/>
+<text text-anchor="middle" x="92" y="-1737.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::Object</text>
+<polyline fill="none" stroke="black" points="0,-1730.5 184,-1730.5 "/>
+<text text-anchor="start" x="8" y="-1718.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
+<text text-anchor="start" x="8" y="-1707.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_final</text>
+<text text-anchor="start" x="8" y="-1696.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots</text>
+<text text-anchor="start" x="8" y="-1685.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots_can</text>
+<text text-anchor="start" x="8" y="-1674.5" font-family="Helvetica,sans-Serif" font-size="10.00">_overflow</text>
+<text text-anchor="start" x="8" y="-1663.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_visit</text>
+<text text-anchor="start" x="8" y="-1652.5" font-family="Helvetica,sans-Serif" font-size="10.00">_attrs</text>
+<text text-anchor="start" x="8" y="-1641.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_sequal</text>
+<text text-anchor="start" x="8" y="-1630.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
+<text text-anchor="start" x="8" y="-1619.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_shash</text>
+<text text-anchor="start" x="8" y="-1608.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
+<text text-anchor="start" x="8" y="-1597.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_index</text>
+<text text-anchor="start" x="8" y="-1586.5" font-family="Helvetica,sans-Serif" font-size="10.00"># type_index_</text>
+<text text-anchor="start" x="8" y="-1575.5" font-family="Helvetica,sans-Serif" font-size="10.00"># ref_counter_</text>
+<polyline fill="none" stroke="black" points="0,-1568.5 184,-1568.5 "/>
+<text text-anchor="start" x="8" y="-1556.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ type_index()</text>
+<text text-anchor="start" x="8" y="-1545.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ GetTypeKey()</text>
+<text text-anchor="start" x="8" y="-1534.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ GetTypeKeyHash()</text>
+<text text-anchor="start" x="8" y="-1523.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ IsInstance()</text>
+<text text-anchor="start" x="8" y="-1512.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ unique()</text>
+<text text-anchor="start" x="8" y="-1501.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Object()</text>
<text text-anchor="start" x="8" y="-1490.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Object()</text>
<text text-anchor="start" x="8" y="-1479.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Object()</text>
-<text text-anchor="start" x="8" y="-1468.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Object()</text>
+<text text-anchor="start" x="8" y="-1468.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
<text text-anchor="start" x="8" y="-1457.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
-<text text-anchor="start" x="8" y="-1446.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
-<text text-anchor="start" x="8" y="-1435.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeIndex2Key()</text>
-<text text-anchor="start" x="8" y="-1424.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeIndex2KeyHash()</text>
-<text text-anchor="start" x="8" y="-1413.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeKey2Index()</text>
-<text text-anchor="start" x="8" y="-1402.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _GetOrAllocRuntimeTypeIndex()</text>
-<text text-anchor="start" x="8" y="-1391.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RuntimeTypeIndex()</text>
-<text text-anchor="start" x="8" y="-1380.5" font-family="Helvetica,sans-Serif" font-size="10.00"># IncRef()</text>
-<text text-anchor="start" x="8" y="-1369.5" font-family="Helvetica,sans-Serif" font-size="10.00"># DecRef()</text>
-<text text-anchor="start" x="8" y="-1358.5" font-family="Helvetica,sans-Serif" font-size="10.00"># GetOrAllocRuntimeTypeIndex()</text>
+<text text-anchor="start" x="8" y="-1446.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeIndex2Key()</text>
+<text text-anchor="start" x="8" y="-1435.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeIndex2KeyHash()</text>
+<text text-anchor="start" x="8" y="-1424.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeKey2Index()</text>
+<text text-anchor="start" x="8" y="-1413.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _GetOrAllocRuntimeTypeIndex()</text>
+<text text-anchor="start" x="8" y="-1402.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RuntimeTypeIndex()</text>
+<text text-anchor="start" x="8" y="-1391.5" font-family="Helvetica,sans-Serif" font-size="10.00"># IncRef()</text>
+<text text-anchor="start" x="8" y="-1380.5" font-family="Helvetica,sans-Serif" font-size="10.00"># DecRef()</text>
+<text text-anchor="start" x="8" y="-1369.5" font-family="Helvetica,sans-Serif" font-size="10.00"># GetOrAllocRuntimeTypeIndex()</text>
</a>
</g>
</g>
<!-- Node4->Node3 -->
<g id="edge3" class="edge">
<title>Node4->Node3</title>
-<path fill="none" stroke="midnightblue" d="M92,-1341.33C92,-1311.76 92,-1283.09 92,-1258.64"/>
-<polygon fill="none" stroke="midnightblue" points="88.5,-1341.39 92,-1351.39 95.5,-1341.39 88.5,-1341.39"/>
+<path fill="none" stroke="midnightblue" d="M92,-1352.33C92,-1322.76 92,-1294.09 92,-1269.64"/>
+<polygon fill="none" stroke="midnightblue" points="88.5,-1352.39 92,-1362.39 95.5,-1352.39 88.5,-1352.39"/>
</g>
<!-- Node4->Node4 -->
<g id="edge4" class="edge">
<title>Node4->Node4</title>
-<path fill="none" stroke="#404040" d="M184.28,-1578.92C195.02,-1572.66 202,-1561.36 202,-1545 202,-1534.01 198.85,-1525.3 193.52,-1518.87"/>
-<polygon fill="none" stroke="#404040" points="193.46,-1518.81 186.29,-1518 184.28,-1511.08 191.45,-1511.89 193.46,-1518.81"/>
-<text text-anchor="middle" x="228" y="-1542.5" font-family="Helvetica,sans-Serif" font-size="10.00"> #deleter_</text>
+<path fill="none" stroke="#404040" d="M184.28,-1589.92C195.02,-1583.66 202,-1572.36 202,-1556 202,-1545.01 198.85,-1536.3 193.52,-1529.87"/>
+<polygon fill="none" stroke="#404040" points="193.46,-1529.81 186.29,-1529 184.28,-1522.08 191.45,-1522.89 193.46,-1529.81"/>
+<text text-anchor="middle" x="228" y="-1553.5" font-family="Helvetica,sans-Serif" font-size="10.00"> #deleter_</text>
</g>
<!-- Node5 -->
<g id="node5" class="node">
<title>Node5</title>
<g id="a_node5"><a xlink:href="classtvm_1_1runtime_1_1Array.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="196.5,-1058.5 196.5,-1313.5 317.5,-1313.5 317.5,-1058.5 196.5,-1058.5"/>
-<text text-anchor="start" x="204.5" y="-1301.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::Array</text>
-<text text-anchor="middle" x="257" y="-1290.5" font-family="Helvetica,sans-Serif" font-size="10.00">< tvm::tir::Stmt ></text>
-<polyline fill="none" stroke="black" points="196.5,-1283.5 317.5,-1283.5 "/>
-<text text-anchor="middle" x="257" y="-1271.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="196.5,-1264.5 317.5,-1264.5 "/>
+<polygon fill="white" stroke="black" points="196.5,-1069.5 196.5,-1324.5 317.5,-1324.5 317.5,-1069.5 196.5,-1069.5"/>
+<text text-anchor="start" x="204.5" y="-1312.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::Array</text>
+<text text-anchor="middle" x="257" y="-1301.5" font-family="Helvetica,sans-Serif" font-size="10.00">< tvm::tir::Stmt ></text>
+<polyline fill="none" stroke="black" points="196.5,-1294.5 317.5,-1294.5 "/>
+<text text-anchor="middle" x="257" y="-1282.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="196.5,-1275.5 317.5,-1275.5 "/>
+<text text-anchor="start" x="204.5" y="-1263.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Array()</text>
<text text-anchor="start" x="204.5" y="-1252.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Array()</text>
<text text-anchor="start" x="204.5" y="-1241.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Array()</text>
<text text-anchor="start" x="204.5" y="-1230.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Array()</text>
@@ -148,92 +149,92 @@
<text text-anchor="start" x="204.5" y="-1208.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Array()</text>
<text text-anchor="start" x="204.5" y="-1197.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Array()</text>
<text text-anchor="start" x="204.5" y="-1186.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Array()</text>
-<text text-anchor="start" x="204.5" y="-1175.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Array()</text>
+<text text-anchor="start" x="204.5" y="-1175.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
<text text-anchor="start" x="204.5" y="-1164.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
-<text text-anchor="start" x="204.5" y="-1153.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
-<text text-anchor="start" x="204.5" y="-1142.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 25 more...</text>
+<text text-anchor="start" x="204.5" y="-1153.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 25 more...</text>
+<text text-anchor="start" x="204.5" y="-1142.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ CalcCapacityImpl()</text>
<text text-anchor="start" x="204.5" y="-1131.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ CalcCapacityImpl()</text>
<text text-anchor="start" x="204.5" y="-1120.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ CalcCapacityImpl()</text>
-<text text-anchor="start" x="204.5" y="-1109.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ CalcCapacityImpl()</text>
+<text text-anchor="start" x="204.5" y="-1109.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ AgregateImpl()</text>
<text text-anchor="start" x="204.5" y="-1098.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ AgregateImpl()</text>
<text text-anchor="start" x="204.5" y="-1087.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ AgregateImpl()</text>
-<text text-anchor="start" x="204.5" y="-1076.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ AgregateImpl()</text>
-<text text-anchor="start" x="204.5" y="-1065.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Agregate()</text>
+<text text-anchor="start" x="204.5" y="-1076.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Agregate()</text>
</a>
</g>
</g>
<!-- Node5->Node2 -->
<g id="edge5" class="edge">
<title>Node5->Node2</title>
-<path fill="none" stroke="#404040" d="M236.75,-1058.39C221.84,-965.1 202.26,-842.69 191.01,-772.34"/>
-<polygon fill="none" stroke="#404040" points="190.97,-772.1 186.07,-766.81 189.08,-760.25 193.97,-765.55 190.97,-772.1"/>
-<text text-anchor="middle" x="253" y="-909.5" font-family="Helvetica,sans-Serif" font-size="10.00"> +stmts</text>
+<path fill="none" stroke="#404040" d="M236.75,-1069.39C221.84,-976.1 202.26,-853.69 191.01,-783.34"/>
+<polygon fill="none" stroke="#404040" points="190.97,-783.1 186.07,-777.81 189.08,-771.25 193.97,-776.55 190.97,-783.1"/>
+<text text-anchor="middle" x="253" y="-920.5" font-family="Helvetica,sans-Serif" font-size="10.00"> +stmts</text>
</g>
<!-- Node6 -->
<g id="node6" class="node">
<title>Node6</title>
<g id="a_node6"><a xlink:href="classtvm_1_1runtime_1_1ObjectRef.html" target="_top" xlink:title="Base class of all object reference.">
-<polygon fill="white" stroke="black" points="453,-1428.5 453,-1661.5 587,-1661.5 587,-1428.5 453,-1428.5"/>
-<text text-anchor="middle" x="520" y="-1649.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::ObjectRef</text>
-<polyline fill="none" stroke="black" points="453,-1642.5 587,-1642.5 "/>
-<text text-anchor="start" x="461" y="-1630.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_is_nullable</text>
-<polyline fill="none" stroke="black" points="453,-1623.5 587,-1623.5 "/>
+<polygon fill="white" stroke="black" points="453,-1439.5 453,-1672.5 587,-1672.5 587,-1439.5 453,-1439.5"/>
+<text text-anchor="middle" x="520" y="-1660.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::ObjectRef</text>
+<polyline fill="none" stroke="black" points="453,-1653.5 587,-1653.5 "/>
+<text text-anchor="start" x="461" y="-1641.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_is_nullable</text>
+<polyline fill="none" stroke="black" points="453,-1634.5 587,-1634.5 "/>
+<text text-anchor="start" x="461" y="-1622.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectRef()</text>
<text text-anchor="start" x="461" y="-1611.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectRef()</text>
-<text text-anchor="start" x="461" y="-1600.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectRef()</text>
-<text text-anchor="start" x="461" y="-1589.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ same_as()</text>
-<text text-anchor="start" x="461" y="-1578.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator==()</text>
-<text text-anchor="start" x="461" y="-1567.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator!=()</text>
-<text text-anchor="start" x="461" y="-1556.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator<()</text>
-<text text-anchor="start" x="461" y="-1545.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ defined()</text>
-<text text-anchor="start" x="461" y="-1534.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get()</text>
-<text text-anchor="start" x="461" y="-1523.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator->()</text>
-<text text-anchor="start" x="461" y="-1512.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ unique()</text>
-<text text-anchor="start" x="461" y="-1501.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ use_count()</text>
+<text text-anchor="start" x="461" y="-1600.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ same_as()</text>
+<text text-anchor="start" x="461" y="-1589.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator==()</text>
+<text text-anchor="start" x="461" y="-1578.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator!=()</text>
+<text text-anchor="start" x="461" y="-1567.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator<()</text>
+<text text-anchor="start" x="461" y="-1556.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ defined()</text>
+<text text-anchor="start" x="461" y="-1545.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get()</text>
+<text text-anchor="start" x="461" y="-1534.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator->()</text>
+<text text-anchor="start" x="461" y="-1523.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ unique()</text>
+<text text-anchor="start" x="461" y="-1512.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ use_count()</text>
+<text text-anchor="start" x="461" y="-1501.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ as()</text>
<text text-anchor="start" x="461" y="-1490.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ as()</text>
-<text text-anchor="start" x="461" y="-1479.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ as()</text>
-<text text-anchor="start" x="461" y="-1468.5" font-family="Helvetica,sans-Serif" font-size="10.00"># get_mutable()</text>
-<text text-anchor="start" x="461" y="-1457.5" font-family="Helvetica,sans-Serif" font-size="10.00"># DowncastNoCheck()</text>
-<text text-anchor="start" x="461" y="-1446.5" font-family="Helvetica,sans-Serif" font-size="10.00"># FFIClearAfterMove()</text>
-<text text-anchor="start" x="461" y="-1435.5" font-family="Helvetica,sans-Serif" font-size="10.00"># GetDataPtr()</text>
+<text text-anchor="start" x="461" y="-1479.5" font-family="Helvetica,sans-Serif" font-size="10.00"># get_mutable()</text>
+<text text-anchor="start" x="461" y="-1468.5" font-family="Helvetica,sans-Serif" font-size="10.00"># DowncastNoCheck()</text>
+<text text-anchor="start" x="461" y="-1457.5" font-family="Helvetica,sans-Serif" font-size="10.00"># FFIClearAfterMove()</text>
+<text text-anchor="start" x="461" y="-1446.5" font-family="Helvetica,sans-Serif" font-size="10.00"># GetDataPtr()</text>
</a>
</g>
</g>
<!-- Node6->Node5 -->
<g id="edge6" class="edge">
<title>Node6->Node5</title>
-<path fill="none" stroke="midnightblue" d="M446.21,-1463.96C408.42,-1421.08 362.94,-1366.42 327,-1314 323.87,-1309.43 320.76,-1304.71 317.69,-1299.9"/>
-<polygon fill="none" stroke="midnightblue" points="443.68,-1466.38 452.93,-1471.55 448.92,-1461.74 443.68,-1466.38"/>
+<path fill="none" stroke="midnightblue" d="M446.21,-1474.96C408.42,-1432.08 362.94,-1377.42 327,-1325 323.87,-1320.43 320.76,-1315.71 317.69,-1310.9"/>
+<polygon fill="none" stroke="midnightblue" points="443.68,-1477.38 452.93,-1482.55 448.92,-1472.74 443.68,-1477.38"/>
</g>
<!-- Node10 -->
<g id="node10" class="node">
<title>Node10</title>
<g id="a_node10"><a xlink:href="classtvm_1_1BaseExpr.html" target="_top" xlink:title="Managed reference to BaseExprNode.">
-<polygon fill="white" stroke="black" points="336,-1152 336,-1220 492,-1220 492,-1152 336,-1152"/>
-<text text-anchor="middle" x="414" y="-1208" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::BaseExpr</text>
-<polyline fill="none" stroke="black" points="336,-1201 492,-1201 "/>
-<text text-anchor="middle" x="414" y="-1189" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="336,-1182 492,-1182 "/>
-<text text-anchor="start" x="344" y="-1170" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="344" y="-1159" font-family="Helvetica,sans-Serif" font-size="10.00">_METHODS()</text>
+<polygon fill="white" stroke="black" points="336,-1163 336,-1231 492,-1231 492,-1163 336,-1163"/>
+<text text-anchor="middle" x="414" y="-1219" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::BaseExpr</text>
+<polyline fill="none" stroke="black" points="336,-1212 492,-1212 "/>
+<text text-anchor="middle" x="414" y="-1200" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="336,-1193 492,-1193 "/>
+<text text-anchor="start" x="344" y="-1181" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="344" y="-1170" font-family="Helvetica,sans-Serif" font-size="10.00">_METHODS()</text>
</a>
</g>
</g>
<!-- Node6->Node10 -->
<g id="edge11" class="edge">
<title>Node6->Node10</title>
-<path fill="none" stroke="midnightblue" d="M482.66,-1418.23C461.73,-1347.77 437.23,-1265.25 423.89,-1220.32"/>
-<polygon fill="none" stroke="midnightblue" points="479.38,-1419.5 485.58,-1428.09 486.09,-1417.51 479.38,-1419.5"/>
+<path fill="none" stroke="midnightblue" d="M482.66,-1429.23C461.73,-1358.77 437.23,-1276.25 423.89,-1231.32"/>
+<polygon fill="none" stroke="midnightblue" points="479.38,-1430.5 485.58,-1439.09 486.09,-1428.51 479.38,-1430.5"/>
</g>
<!-- Node11 -->
<g id="node11" class="node">
<title>Node11</title>
<g id="a_node11"><a xlink:href="classtvm_1_1runtime_1_1Array.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="436.5,-784.5 436.5,-1039.5 557.5,-1039.5 557.5,-784.5 436.5,-784.5"/>
-<text text-anchor="start" x="444.5" y="-1027.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::Array</text>
-<text text-anchor="middle" x="497" y="-1016.5" font-family="Helvetica,sans-Serif" font-size="10.00">< tvm::PrimExpr ></text>
-<polyline fill="none" stroke="black" points="436.5,-1009.5 557.5,-1009.5 "/>
-<text text-anchor="middle" x="497" y="-997.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="436.5,-990.5 557.5,-990.5 "/>
+<polygon fill="white" stroke="black" points="436.5,-795.5 436.5,-1050.5 557.5,-1050.5 557.5,-795.5 436.5,-795.5"/>
+<text text-anchor="start" x="444.5" y="-1038.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::Array</text>
+<text text-anchor="middle" x="497" y="-1027.5" font-family="Helvetica,sans-Serif" font-size="10.00">< tvm::PrimExpr ></text>
+<polyline fill="none" stroke="black" points="436.5,-1020.5 557.5,-1020.5 "/>
+<text text-anchor="middle" x="497" y="-1008.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="436.5,-1001.5 557.5,-1001.5 "/>
+<text text-anchor="start" x="444.5" y="-989.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Array()</text>
<text text-anchor="start" x="444.5" y="-978.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Array()</text>
<text text-anchor="start" x="444.5" y="-967.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Array()</text>
<text text-anchor="start" x="444.5" y="-956.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Array()</text>
@@ -241,230 +242,230 @@
<text text-anchor="start" x="444.5" y="-934.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Array()</text>
<text text-anchor="start" x="444.5" y="-923.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Array()</text>
<text text-anchor="start" x="444.5" y="-912.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Array()</text>
-<text text-anchor="start" x="444.5" y="-901.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Array()</text>
+<text text-anchor="start" x="444.5" y="-901.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
<text text-anchor="start" x="444.5" y="-890.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
-<text text-anchor="start" x="444.5" y="-879.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
-<text text-anchor="start" x="444.5" y="-868.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 25 more...</text>
+<text text-anchor="start" x="444.5" y="-879.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 25 more...</text>
+<text text-anchor="start" x="444.5" y="-868.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ CalcCapacityImpl()</text>
<text text-anchor="start" x="444.5" y="-857.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ CalcCapacityImpl()</text>
<text text-anchor="start" x="444.5" y="-846.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ CalcCapacityImpl()</text>
-<text text-anchor="start" x="444.5" y="-835.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ CalcCapacityImpl()</text>
+<text text-anchor="start" x="444.5" y="-835.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ AgregateImpl()</text>
<text text-anchor="start" x="444.5" y="-824.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ AgregateImpl()</text>
<text text-anchor="start" x="444.5" y="-813.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ AgregateImpl()</text>
-<text text-anchor="start" x="444.5" y="-802.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ AgregateImpl()</text>
-<text text-anchor="start" x="444.5" y="-791.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Agregate()</text>
+<text text-anchor="start" x="444.5" y="-802.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Agregate()</text>
</a>
</g>
</g>
<!-- Node6->Node11 -->
<g id="edge13" class="edge">
<title>Node6->Node11</title>
-<path fill="none" stroke="midnightblue" d="M515.41,-1418.12C511.41,-1308.29 505.63,-1149.71 501.62,-1039.65"/>
-<polygon fill="none" stroke="midnightblue" points="511.92,-1418.4 515.78,-1428.26 518.91,-1418.14 511.92,-1418.4"/>
+<path fill="none" stroke="midnightblue" d="M515.41,-1429.12C511.41,-1319.29 505.63,-1160.71 501.62,-1050.65"/>
+<polygon fill="none" stroke="midnightblue" points="511.92,-1429.4 515.78,-1439.26 518.91,-1429.14 511.92,-1429.4"/>
</g>
<!-- Node12 -->
<g id="node12" class="node">
<title>Node12</title>
<g id="a_node12"><a xlink:href="classtvm_1_1runtime_1_1Map.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="525.5,-456.5 525.5,-645.5 674.5,-645.5 674.5,-456.5 525.5,-456.5"/>
-<text text-anchor="start" x="533.5" y="-633.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::Map<</text>
-<text text-anchor="start" x="533.5" y="-622.5" font-family="Helvetica,sans-Serif" font-size="10.00"> tvm::runtime::String,</text>
-<text text-anchor="middle" x="600" y="-611.5" font-family="Helvetica,sans-Serif" font-size="10.00"> tvm::runtime::ObjectRef ></text>
-<polyline fill="none" stroke="black" points="525.5,-604.5 674.5,-604.5 "/>
-<text text-anchor="middle" x="600" y="-592.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="525.5,-585.5 674.5,-585.5 "/>
+<polygon fill="white" stroke="black" points="525.5,-467.5 525.5,-656.5 674.5,-656.5 674.5,-467.5 525.5,-467.5"/>
+<text text-anchor="start" x="533.5" y="-644.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::Map<</text>
+<text text-anchor="start" x="533.5" y="-633.5" font-family="Helvetica,sans-Serif" font-size="10.00"> tvm::runtime::String,</text>
+<text text-anchor="middle" x="600" y="-622.5" font-family="Helvetica,sans-Serif" font-size="10.00"> tvm::runtime::ObjectRef ></text>
+<polyline fill="none" stroke="black" points="525.5,-615.5 674.5,-615.5 "/>
+<text text-anchor="middle" x="600" y="-603.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="525.5,-596.5 674.5,-596.5 "/>
+<text text-anchor="start" x="533.5" y="-584.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Map()</text>
<text text-anchor="start" x="533.5" y="-573.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Map()</text>
<text text-anchor="start" x="533.5" y="-562.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Map()</text>
<text text-anchor="start" x="533.5" y="-551.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Map()</text>
<text text-anchor="start" x="533.5" y="-540.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Map()</text>
<text text-anchor="start" x="533.5" y="-529.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Map()</text>
<text text-anchor="start" x="533.5" y="-518.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Map()</text>
-<text text-anchor="start" x="533.5" y="-507.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Map()</text>
+<text text-anchor="start" x="533.5" y="-507.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
<text text-anchor="start" x="533.5" y="-496.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
-<text text-anchor="start" x="533.5" y="-485.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
-<text text-anchor="start" x="533.5" y="-474.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ at()</text>
-<text text-anchor="start" x="533.5" y="-463.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 12 more...</text>
+<text text-anchor="start" x="533.5" y="-485.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ at()</text>
+<text text-anchor="start" x="533.5" y="-474.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 12 more...</text>
</a>
</g>
</g>
<!-- Node6->Node12 -->
<g id="edge16" class="edge">
<title>Node6->Node12</title>
-<path fill="none" stroke="midnightblue" d="M532.21,-1418.43C541.95,-1316.5 555.62,-1169.04 566,-1040 577.03,-902.86 587.72,-743.87 594.08,-645.6"/>
-<polygon fill="none" stroke="midnightblue" points="528.72,-1418.17 531.26,-1428.46 535.69,-1418.84 528.72,-1418.17"/>
+<path fill="none" stroke="midnightblue" d="M532.21,-1429.43C541.95,-1327.5 555.62,-1180.04 566,-1051 577.03,-913.86 587.72,-754.87 594.08,-656.6"/>
+<polygon fill="none" stroke="midnightblue" points="528.72,-1429.17 531.26,-1439.46 535.69,-1429.84 528.72,-1429.17"/>
</g>
<!-- Node13 -->
<g id="node13" class="node">
<title>Node13</title>
<g id="a_node13"><a xlink:href="classtvm_1_1runtime_1_1String.html" target="_top" xlink:title="Reference to string objects.">
-<polygon fill="white" stroke="black" points="613.5,-817.5 613.5,-1006.5 732.5,-1006.5 732.5,-817.5 613.5,-817.5"/>
-<text text-anchor="middle" x="673" y="-994.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::String</text>
-<polyline fill="none" stroke="black" points="613.5,-987.5 732.5,-987.5 "/>
-<text text-anchor="middle" x="673" y="-975.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="613.5,-968.5 732.5,-968.5 "/>
+<polygon fill="white" stroke="black" points="613.5,-828.5 613.5,-1017.5 732.5,-1017.5 732.5,-828.5 613.5,-828.5"/>
+<text text-anchor="middle" x="673" y="-1005.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::String</text>
+<polyline fill="none" stroke="black" points="613.5,-998.5 732.5,-998.5 "/>
+<text text-anchor="middle" x="673" y="-986.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="613.5,-979.5 732.5,-979.5 "/>
+<text text-anchor="start" x="621.5" y="-967.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ String()</text>
<text text-anchor="start" x="621.5" y="-956.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ String()</text>
<text text-anchor="start" x="621.5" y="-945.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ String()</text>
<text text-anchor="start" x="621.5" y="-934.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ String()</text>
-<text text-anchor="start" x="621.5" y="-923.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ String()</text>
+<text text-anchor="start" x="621.5" y="-923.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
<text text-anchor="start" x="621.5" y="-912.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
-<text text-anchor="start" x="621.5" y="-901.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
+<text text-anchor="start" x="621.5" y="-901.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ compare()</text>
<text text-anchor="start" x="621.5" y="-890.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ compare()</text>
<text text-anchor="start" x="621.5" y="-879.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ compare()</text>
-<text text-anchor="start" x="621.5" y="-868.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ compare()</text>
-<text text-anchor="start" x="621.5" y="-857.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ c_str()</text>
-<text text-anchor="start" x="621.5" y="-846.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 6 more...</text>
-<text text-anchor="start" x="621.5" y="-835.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ CanConvertFrom()</text>
-<text text-anchor="start" x="621.5" y="-824.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ StableHashBytes()</text>
+<text text-anchor="start" x="621.5" y="-868.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ c_str()</text>
+<text text-anchor="start" x="621.5" y="-857.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 6 more...</text>
+<text text-anchor="start" x="621.5" y="-846.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ CanConvertFrom()</text>
+<text text-anchor="start" x="621.5" y="-835.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ StableHashBytes()</text>
</a>
</g>
</g>
<!-- Node6->Node13 -->
<g id="edge18" class="edge">
<title>Node6->Node13</title>
-<path fill="none" stroke="midnightblue" d="M572.61,-1419.05C583.08,-1391.07 593.22,-1361.3 601,-1333 631.28,-1222.79 651.24,-1092.63 662.3,-1006.74"/>
-<polygon fill="none" stroke="midnightblue" points="569.31,-1417.87 569.05,-1428.46 575.86,-1420.34 569.31,-1417.87"/>
+<path fill="none" stroke="midnightblue" d="M572.61,-1430.05C583.08,-1402.07 593.22,-1372.3 601,-1344 631.28,-1233.79 651.24,-1103.63 662.3,-1017.74"/>
+<polygon fill="none" stroke="midnightblue" points="569.31,-1428.87 569.05,-1439.46 575.86,-1431.34 569.31,-1428.87"/>
</g>
<!-- Node7 -->
<g id="node7" class="node">
<title>Node7</title>
<g id="a_node7"><a xlink:href="classtvm_1_1runtime_1_1ObjectPtr.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="450,-1786.5 450,-1964.5 590,-1964.5 590,-1786.5 450,-1786.5"/>
-<text text-anchor="start" x="458" y="-1952.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::ObjectPtr</text>
-<text text-anchor="middle" x="520" y="-1941.5" font-family="Helvetica,sans-Serif" font-size="10.00">< tvm::runtime::Object ></text>
-<polyline fill="none" stroke="black" points="450,-1934.5 590,-1934.5 "/>
-<text text-anchor="middle" x="520" y="-1922.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="450,-1915.5 590,-1915.5 "/>
+<polygon fill="white" stroke="black" points="450,-1797.5 450,-1975.5 590,-1975.5 590,-1797.5 450,-1797.5"/>
+<text text-anchor="start" x="458" y="-1963.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::ObjectPtr</text>
+<text text-anchor="middle" x="520" y="-1952.5" font-family="Helvetica,sans-Serif" font-size="10.00">< tvm::runtime::Object ></text>
+<polyline fill="none" stroke="black" points="450,-1945.5 590,-1945.5 "/>
+<text text-anchor="middle" x="520" y="-1933.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="450,-1926.5 590,-1926.5 "/>
+<text text-anchor="start" x="458" y="-1914.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="458" y="-1903.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="458" y="-1892.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="458" y="-1881.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="458" y="-1870.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="458" y="-1859.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
-<text text-anchor="start" x="458" y="-1848.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
-<text text-anchor="start" x="458" y="-1837.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ~ObjectPtr()</text>
-<text text-anchor="start" x="458" y="-1826.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ swap()</text>
-<text text-anchor="start" x="458" y="-1815.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get()</text>
-<text text-anchor="start" x="458" y="-1804.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator->()</text>
-<text text-anchor="start" x="458" y="-1793.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 11 more...</text>
+<text text-anchor="start" x="458" y="-1848.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ~ObjectPtr()</text>
+<text text-anchor="start" x="458" y="-1837.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ swap()</text>
+<text text-anchor="start" x="458" y="-1826.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get()</text>
+<text text-anchor="start" x="458" y="-1815.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator->()</text>
+<text text-anchor="start" x="458" y="-1804.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 11 more...</text>
</a>
</g>
</g>
<!-- Node7->Node6 -->
<g id="edge7" class="edge">
<title>Node7->Node6</title>
-<path fill="none" stroke="#404040" d="M520,-1786.47C520,-1751.91 520,-1711.57 520,-1673.92"/>
-<polygon fill="none" stroke="#404040" points="520,-1673.8 516,-1667.8 520,-1661.8 524,-1667.8 520,-1673.8"/>
-<text text-anchor="middle" x="539.5" y="-1760" font-family="Helvetica,sans-Serif" font-size="10.00"> #data_</text>
+<path fill="none" stroke="#404040" d="M520,-1797.47C520,-1762.91 520,-1722.57 520,-1684.92"/>
+<polygon fill="none" stroke="#404040" points="520,-1684.8 516,-1678.8 520,-1672.8 524,-1678.8 520,-1684.8"/>
+<text text-anchor="middle" x="539.5" y="-1771" font-family="Helvetica,sans-Serif" font-size="10.00"> #data_</text>
</g>
<!-- Node8 -->
<g id="node8" class="node">
<title>Node8</title>
<g id="a_node8"><a xlink:href="classtvm_1_1tir_1_1Var.html" target="_top" xlink:title="a named variable in TIR">
-<polygon fill="white" stroke="black" points="325,-226.5 325,-360.5 443,-360.5 443,-226.5 325,-226.5"/>
-<text text-anchor="middle" x="384" y="-348.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::tir::Var</text>
-<polyline fill="none" stroke="black" points="325,-341.5 443,-341.5 "/>
-<text text-anchor="middle" x="384" y="-329.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="325,-322.5 443,-322.5 "/>
-<text text-anchor="start" x="333" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Var()</text>
-<text text-anchor="start" x="333" y="-299.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Var()</text>
-<text text-anchor="start" x="333" y="-288.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Var()</text>
-<text text-anchor="start" x="333" y="-277.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ copy_with_name()</text>
-<text text-anchor="start" x="333" y="-266.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ copy_with_suffix()</text>
-<text text-anchor="start" x="333" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ copy_with_dtype()</text>
-<text text-anchor="start" x="333" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator->()</text>
-<text text-anchor="start" x="333" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get()</text>
+<polygon fill="white" stroke="black" points="325,-232 325,-366 443,-366 443,-232 325,-232"/>
+<text text-anchor="middle" x="384" y="-354" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::tir::Var</text>
+<polyline fill="none" stroke="black" points="325,-347 443,-347 "/>
+<text text-anchor="middle" x="384" y="-335" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="325,-328 443,-328 "/>
+<text text-anchor="start" x="333" y="-316" font-family="Helvetica,sans-Serif" font-size="10.00">+ Var()</text>
+<text text-anchor="start" x="333" y="-305" font-family="Helvetica,sans-Serif" font-size="10.00">+ Var()</text>
+<text text-anchor="start" x="333" y="-294" font-family="Helvetica,sans-Serif" font-size="10.00">+ Var()</text>
+<text text-anchor="start" x="333" y="-283" font-family="Helvetica,sans-Serif" font-size="10.00">+ copy_with_name()</text>
+<text text-anchor="start" x="333" y="-272" font-family="Helvetica,sans-Serif" font-size="10.00">+ copy_with_suffix()</text>
+<text text-anchor="start" x="333" y="-261" font-family="Helvetica,sans-Serif" font-size="10.00">+ copy_with_dtype()</text>
+<text text-anchor="start" x="333" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator->()</text>
+<text text-anchor="start" x="333" y="-239" font-family="Helvetica,sans-Serif" font-size="10.00">+ get()</text>
</a>
</g>
</g>
<!-- Node8->Node1 -->
<g id="edge8" class="edge">
<title>Node8->Node1</title>
-<path fill="none" stroke="#404040" d="M377.26,-226.44C376.59,-193 380.14,-152.68 396,-120 397.43,-117.06 399.04,-114.19 400.81,-111.4"/>
-<polygon fill="none" stroke="#404040" points="400.83,-111.37 401.07,-104.16 407.81,-101.61 407.57,-108.82 400.83,-111.37"/>
+<path fill="none" stroke="#404040" d="M376.92,-231.98C375.96,-197.07 379.33,-154.43 396,-120 397.42,-117.06 399.03,-114.19 400.8,-111.39"/>
+<polygon fill="none" stroke="#404040" points="400.82,-111.36 401.06,-104.16 407.8,-101.6 407.56,-108.81 400.82,-111.36"/>
<text text-anchor="middle" x="426.5" y="-123" font-family="Helvetica,sans-Serif" font-size="10.00"> +buffer_var</text>
</g>
<!-- Node9 -->
<g id="node9" class="node">
<title>Node9</title>
<g id="a_node9"><a xlink:href="classtvm_1_1PrimExpr.html" target="_top" xlink:title="Reference to PrimExprNode.">
-<polygon fill="white" stroke="black" points="287,-664.5 287,-765.5 443,-765.5 443,-664.5 287,-664.5"/>
-<text text-anchor="middle" x="365" y="-753.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::PrimExpr</text>
-<polyline fill="none" stroke="black" points="287,-746.5 443,-746.5 "/>
-<text text-anchor="middle" x="365" y="-734.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="287,-727.5 443,-727.5 "/>
+<polygon fill="white" stroke="black" points="287,-675.5 287,-776.5 443,-776.5 443,-675.5 287,-675.5"/>
+<text text-anchor="middle" x="365" y="-764.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::PrimExpr</text>
+<polyline fill="none" stroke="black" points="287,-757.5 443,-757.5 "/>
+<text text-anchor="middle" x="365" y="-745.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="287,-738.5 443,-738.5 "/>
+<text text-anchor="start" x="295" y="-726.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ PrimExpr()</text>
<text text-anchor="start" x="295" y="-715.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ PrimExpr()</text>
-<text text-anchor="start" x="295" y="-704.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ PrimExpr()</text>
-<text text-anchor="start" x="295" y="-693.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ dtype()</text>
-<text text-anchor="start" x="295" y="-682.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="295" y="-671.5" font-family="Helvetica,sans-Serif" font-size="10.00">_METHODS()</text>
+<text text-anchor="start" x="295" y="-704.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ dtype()</text>
+<text text-anchor="start" x="295" y="-693.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="295" y="-682.5" font-family="Helvetica,sans-Serif" font-size="10.00">_METHODS()</text>
</a>
</g>
</g>
<!-- Node9->Node1 -->
<g id="edge14" class="edge">
<title>Node9->Node1</title>
-<path fill="none" stroke="#404040" d="M333.78,-664.16C272.8,-559.84 152.76,-314.44 259,-149 284.04,-110 329.09,-86.49 371.25,-72.4"/>
+<path fill="none" stroke="#404040" d="M334.16,-675.38C272.81,-569.69 150.35,-318.19 259,-149 284.04,-110 329.09,-86.49 371.25,-72.4"/>
<polygon fill="none" stroke="#404040" points="371.31,-72.38 375.82,-66.76 382.75,-68.76 378.24,-74.39 371.31,-72.38"/>
-<text text-anchor="middle" x="287.5" y="-291" font-family="Helvetica,sans-Serif" font-size="10.00"> +condition</text>
+<text text-anchor="middle" x="287.5" y="-296.5" font-family="Helvetica,sans-Serif" font-size="10.00"> +condition</text>
</g>
<!-- Node9->Node8 -->
<g id="edge9" class="edge">
<title>Node9->Node8</title>
-<path fill="none" stroke="midnightblue" d="M367.71,-654.13C371.23,-576.47 377.35,-441.42 381,-360.75"/>
-<polygon fill="none" stroke="midnightblue" points="364.21,-654.08 367.25,-664.23 371.2,-654.4 364.21,-654.08"/>
+<path fill="none" stroke="midnightblue" d="M367.67,-665.17C371.2,-586.37 377.37,-448.23 381.04,-366.32"/>
+<polygon fill="none" stroke="midnightblue" points="364.17,-665.27 367.22,-675.42 371.16,-665.58 364.17,-665.27"/>
</g>
<!-- Node10->Node9 -->
<g id="edge10" class="edge">
<title>Node10->Node9</title>
-<path fill="none" stroke="midnightblue" d="M409.46,-1141.55C400.34,-1054.21 379.82,-857.85 370.18,-765.62"/>
-<polygon fill="none" stroke="midnightblue" points="406,-1142.06 410.52,-1151.65 412.96,-1141.34 406,-1142.06"/>
+<path fill="none" stroke="midnightblue" d="M409.46,-1152.55C400.34,-1065.21 379.82,-868.85 370.18,-776.62"/>
+<polygon fill="none" stroke="midnightblue" points="406,-1153.06 410.52,-1162.65 412.96,-1152.34 406,-1153.06"/>
</g>
<!-- Node11->Node1 -->
<g id="edge12" class="edge">
<title>Node11->Node1</title>
-<path fill="none" stroke="#404040" d="M480.28,-784.19C475.27,-740.49 470.46,-691.17 468,-646 457.42,-452.11 464.03,-222.09 468.26,-113.98"/>
-<polygon fill="none" stroke="#404040" points="468.27,-113.71 464.52,-107.56 468.75,-101.72 472.51,-107.88 468.27,-113.71"/>
-<text text-anchor="middle" x="492.5" y="-548.5" font-family="Helvetica,sans-Serif" font-size="10.00"> +extents</text>
+<path fill="none" stroke="#404040" d="M480.28,-795.19C475.27,-751.49 470.46,-702.17 468,-657 457.19,-458.81 463.97,-223.56 468.27,-113.95"/>
+<polygon fill="none" stroke="#404040" points="468.27,-113.84 464.51,-107.69 468.75,-101.85 472.51,-108.01 468.27,-113.84"/>
+<text text-anchor="middle" x="492.5" y="-559.5" font-family="Helvetica,sans-Serif" font-size="10.00"> +extents</text>
</g>
<!-- Node12->Node1 -->
<g id="edge15" class="edge">
<title>Node12->Node1</title>
-<path fill="none" stroke="#404040" d="M575.74,-456.33C549.7,-355.82 509.1,-199.1 486.87,-113.28"/>
-<polygon fill="none" stroke="#404040" points="486.87,-113.27 481.49,-108.46 483.86,-101.65 489.24,-106.46 486.87,-113.27"/>
-<text text-anchor="middle" x="605" y="-291" font-family="Helvetica,sans-Serif" font-size="10.00"> +annotations</text>
+<path fill="none" stroke="#404040" d="M576.26,-467.35C550.14,-364.27 508.9,-201.54 486.58,-113.49"/>
+<polygon fill="none" stroke="#404040" points="486.58,-113.47 481.23,-108.63 483.63,-101.83 488.98,-106.67 486.58,-113.47"/>
+<text text-anchor="middle" x="605" y="-296.5" font-family="Helvetica,sans-Serif" font-size="10.00"> +annotations</text>
</g>
<!-- Node13->Node1 -->
<g id="edge17" class="edge">
<title>Node13->Node1</title>
-<path fill="none" stroke="#404040" d="M681.11,-817.46C694.75,-638.62 714.4,-256.4 644,-149 626.34,-122.06 598.49,-101.86 570.25,-87.06"/>
-<polygon fill="none" stroke="#404040" points="570.16,-87.02 563,-87.91 559.42,-81.65 566.58,-80.76 570.16,-87.02"/>
-<text text-anchor="middle" x="735" y="-548.5" font-family="Helvetica,sans-Serif" font-size="10.00"> +storage_scope</text>
+<path fill="none" stroke="#404040" d="M681.17,-828.18C695.08,-647.25 715.36,-258.28 644,-149 626.3,-121.9 598.28,-101.63 569.9,-86.82"/>
+<polygon fill="none" stroke="#404040" points="569.77,-86.75 562.62,-87.66 559.03,-81.4 566.18,-80.5 569.77,-86.75"/>
+<text text-anchor="middle" x="735" y="-559.5" font-family="Helvetica,sans-Serif" font-size="10.00"> +storage_scope</text>
</g>
<!-- Node14 -->
<g id="node14" class="node">
<title>Node14</title>
<g id="a_node14"><a xlink:href="classtvm_1_1runtime_1_1DataType.html" target="_top" xlink:title="Runtime primitive data type.">
-<polygon fill="white" stroke="black" points="725,-149.5 725,-437.5 857,-437.5 857,-149.5 725,-149.5"/>
-<text text-anchor="middle" x="791" y="-425.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::DataType</text>
-<polyline fill="none" stroke="black" points="725,-418.5 857,-418.5 "/>
-<text text-anchor="middle" x="791" y="-406.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="725,-399.5 857,-399.5 "/>
+<polygon fill="white" stroke="black" points="725,-149.5 725,-448.5 857,-448.5 857,-149.5 725,-149.5"/>
+<text text-anchor="middle" x="791" y="-436.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::DataType</text>
+<polyline fill="none" stroke="black" points="725,-429.5 857,-429.5 "/>
+<text text-anchor="middle" x="791" y="-417.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="725,-410.5 857,-410.5 "/>
+<text text-anchor="start" x="733" y="-398.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ DataType()</text>
<text text-anchor="start" x="733" y="-387.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ DataType()</text>
<text text-anchor="start" x="733" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ DataType()</text>
-<text text-anchor="start" x="733" y="-365.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ DataType()</text>
-<text text-anchor="start" x="733" y="-354.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ code()</text>
-<text text-anchor="start" x="733" y="-343.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ bits()</text>
-<text text-anchor="start" x="733" y="-332.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ bytes()</text>
-<text text-anchor="start" x="733" y="-321.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ lanes()</text>
-<text text-anchor="start" x="733" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ vscale_factor()</text>
-<text text-anchor="start" x="733" y="-299.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get_lanes_or_vscale</text>
-<text text-anchor="start" x="733" y="-288.5" font-family="Helvetica,sans-Serif" font-size="10.00">_factor()</text>
-<text text-anchor="start" x="733" y="-277.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ is_scalar()</text>
-<text text-anchor="start" x="733" y="-266.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 24 more...</text>
-<text text-anchor="start" x="733" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Int()</text>
-<text text-anchor="start" x="733" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ UInt()</text>
-<text text-anchor="start" x="733" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Float()</text>
-<text text-anchor="start" x="733" y="-222.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ BFloat()</text>
-<text text-anchor="start" x="733" y="-211.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat8E4M3()</text>
-<text text-anchor="start" x="733" y="-200.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat8E5M2()</text>
+<text text-anchor="start" x="733" y="-365.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ code()</text>
+<text text-anchor="start" x="733" y="-354.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ bits()</text>
+<text text-anchor="start" x="733" y="-343.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ bytes()</text>
+<text text-anchor="start" x="733" y="-332.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ lanes()</text>
+<text text-anchor="start" x="733" y="-321.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ vscale_factor()</text>
+<text text-anchor="start" x="733" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get_lanes_or_vscale</text>
+<text text-anchor="start" x="733" y="-299.5" font-family="Helvetica,sans-Serif" font-size="10.00">_factor()</text>
+<text text-anchor="start" x="733" y="-288.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ is_scalar()</text>
+<text text-anchor="start" x="733" y="-277.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 26 more...</text>
+<text text-anchor="start" x="733" y="-266.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Int()</text>
+<text text-anchor="start" x="733" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ UInt()</text>
+<text text-anchor="start" x="733" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Float()</text>
+<text text-anchor="start" x="733" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ BFloat()</text>
+<text text-anchor="start" x="733" y="-222.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat8E4M3()</text>
+<text text-anchor="start" x="733" y="-211.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat8E5M2()</text>
+<text text-anchor="start" x="733" y="-200.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat4E2M1()</text>
<text text-anchor="start" x="733" y="-189.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Bool()</text>
<text text-anchor="start" x="733" y="-178.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Handle()</text>
<text text-anchor="start" x="733" y="-167.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Void()</text>
@@ -475,8 +476,8 @@
<!-- Node14->Node1 -->
<g id="edge19" class="edge">
<title>Node14->Node1</title>
-<path fill="none" stroke="#404040" d="M737.41,-149.21C729.68,-138.42 720.92,-128.46 711,-120 672.13,-86.84 618.11,-69.8 571.17,-61.07"/>
-<polygon fill="none" stroke="#404040" points="570.91,-61.02 564.31,-63.94 559.08,-58.97 565.68,-56.05 570.91,-61.02"/>
+<path fill="none" stroke="#404040" d="M737.26,-149.33C729.59,-138.51 720.87,-128.52 711,-120 672.33,-86.61 618.33,-69.55 571.34,-60.87"/>
+<polygon fill="none" stroke="#404040" points="571.07,-60.82 564.48,-63.74 559.24,-58.78 565.83,-55.86 571.07,-60.82"/>
<text text-anchor="middle" x="742" y="-123" font-family="Helvetica,sans-Serif" font-size="10.00"> +dtype</text>
</g>
</g>
diff --git a/docs/reference/api/doxygen/classtvm_1_1te_1_1PlaceholderOpNode.html b/docs/reference/api/doxygen/classtvm_1_1te_1_1PlaceholderOpNode.html
index 74da8a5010..7571001cea 100644
--- a/docs/reference/api/doxygen/classtvm_1_1te_1_1PlaceholderOpNode.html
+++ b/docs/reference/api/doxygen/classtvm_1_1te_1_1PlaceholderOpNode.html
@@ -88,7 +88,7 @@ Inheritance diagram for tvm::te::PlaceholderOpNode:</div>
<div class="dynheader">
Collaboration diagram for tvm::te::PlaceholderOpNode:</div>
<div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1te_1_1PlaceholderOpNode__coll__graph.svg" width="864" height="2194"><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_1te_1_1PlaceholderOpNode__coll__graph.svg" width="864" height="2208"><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">
diff --git a/docs/reference/api/doxygen/classtvm_1_1te_1_1PlaceholderOpNode__coll__graph.svg b/docs/reference/api/doxygen/classtvm_1_1te_1_1PlaceholderOpNode__coll__graph.svg
index 2a602ede3f..c99c186252 100644
--- a/docs/reference/api/doxygen/classtvm_1_1te_1_1PlaceholderOpNode__coll__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1te_1_1PlaceholderOpNode__coll__graph.svg
@@ -4,11 +4,11 @@
<!-- Generated by graphviz version 2.43.0 (0)
-->
<!-- Title: tvm::te::PlaceholderOpNode Pages: 1 -->
-<svg width="648pt" height="1645pt"
- viewBox="0.00 0.00 648.00 1645.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 1641)">
+<svg width="648pt" height="1656pt"
+ viewBox="0.00 0.00 648.00 1656.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 1652)">
<title>tvm::te::PlaceholderOpNode</title>
-<polygon fill="white" stroke="transparent" points="-4,4 -4,-1641 644,-1641 644,4 -4,4"/>
+<polygon fill="white" stroke="transparent" points="-4,4 -4,-1652 644,-1652 644,4 -4,4"/>
<!-- Node1 -->
<g id="node1" class="node">
<title>Node1</title>
@@ -32,162 +32,163 @@
<g id="node2" class="node">
<title>Node2</title>
<g id="a_node2"><a xlink:href="classtvm_1_1te_1_1OperationNode.html" target="_top" xlink:title="Base class of all operation nodes.">
-<polygon fill="white" stroke="black" points="239.5,-243 239.5,-388 412.5,-388 412.5,-243 239.5,-243"/>
-<text text-anchor="middle" x="326" y="-376" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::te::OperationNode</text>
-<polyline fill="none" stroke="black" points="239.5,-369 412.5,-369 "/>
-<text text-anchor="start" x="247.5" y="-357" font-family="Helvetica,sans-Serif" font-size="10.00">+ name</text>
-<text text-anchor="start" x="247.5" y="-346" font-family="Helvetica,sans-Serif" font-size="10.00">+ tag</text>
-<text text-anchor="start" x="247.5" y="-335" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
-<polyline fill="none" stroke="black" points="239.5,-328 412.5,-328 "/>
-<text text-anchor="start" x="247.5" y="-316" font-family="Helvetica,sans-Serif" font-size="10.00">+ ~OperationNode()</text>
-<text text-anchor="start" x="247.5" y="-305" font-family="Helvetica,sans-Serif" font-size="10.00">+ num_outputs()</text>
-<text text-anchor="start" x="247.5" y="-294" font-family="Helvetica,sans-Serif" font-size="10.00">+ output_dtype()</text>
-<text text-anchor="start" x="247.5" y="-283" font-family="Helvetica,sans-Serif" font-size="10.00">+ output_shape()</text>
-<text text-anchor="start" x="247.5" y="-272" font-family="Helvetica,sans-Serif" font-size="10.00">+ InputTensors()</text>
-<text text-anchor="start" x="247.5" y="-261" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DECLARE_BASE_OBJECT</text>
-<text text-anchor="start" x="247.5" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO()</text>
+<polygon fill="white" stroke="black" points="239.5,-248.5 239.5,-393.5 412.5,-393.5 412.5,-248.5 239.5,-248.5"/>
+<text text-anchor="middle" x="326" y="-381.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::te::OperationNode</text>
+<polyline fill="none" stroke="black" points="239.5,-374.5 412.5,-374.5 "/>
+<text text-anchor="start" x="247.5" y="-362.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ name</text>
+<text text-anchor="start" x="247.5" y="-351.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ tag</text>
+<text text-anchor="start" x="247.5" y="-340.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
+<polyline fill="none" stroke="black" points="239.5,-333.5 412.5,-333.5 "/>
+<text text-anchor="start" x="247.5" y="-321.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ~OperationNode()</text>
+<text text-anchor="start" x="247.5" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ num_outputs()</text>
+<text text-anchor="start" x="247.5" y="-299.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ output_dtype()</text>
+<text text-anchor="start" x="247.5" y="-288.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ output_shape()</text>
+<text text-anchor="start" x="247.5" y="-277.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ InputTensors()</text>
+<text text-anchor="start" x="247.5" y="-266.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DECLARE_BASE_OBJECT</text>
+<text text-anchor="start" x="247.5" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO()</text>
</a>
</g>
</g>
<!-- Node2->Node1 -->
<g id="edge1" class="edge">
<title>Node2->Node1</title>
-<path fill="none" stroke="midnightblue" d="M365.68,-233.36C383.1,-197.75 403.19,-156.66 419.29,-123.76"/>
-<polygon fill="none" stroke="midnightblue" points="362.33,-232.25 361.08,-242.77 368.62,-235.32 362.33,-232.25"/>
+<path fill="none" stroke="midnightblue" d="M364.73,-239.07C382.59,-201.76 403.43,-158.21 419.92,-123.76"/>
+<polygon fill="none" stroke="midnightblue" points="361.42,-237.88 360.26,-248.41 367.74,-240.9 361.42,-237.88"/>
</g>
<!-- Node3 -->
<g id="node3" class="node">
<title>Node3</title>
<g id="a_node3"><a xlink:href="classtvm_1_1runtime_1_1Object.html" target="_top" xlink:title="base class of all object containers.">
-<polygon fill="white" stroke="black" points="0,-752.5 0,-1139.5 184,-1139.5 184,-752.5 0,-752.5"/>
-<text text-anchor="middle" x="92" y="-1127.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::Object</text>
-<polyline fill="none" stroke="black" points="0,-1120.5 184,-1120.5 "/>
-<text text-anchor="start" x="8" y="-1108.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
-<text text-anchor="start" x="8" y="-1097.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_final</text>
-<text text-anchor="start" x="8" y="-1086.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots</text>
-<text text-anchor="start" x="8" y="-1075.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots_can</text>
-<text text-anchor="start" x="8" y="-1064.5" font-family="Helvetica,sans-Serif" font-size="10.00">_overflow</text>
-<text text-anchor="start" x="8" y="-1053.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_visit</text>
-<text text-anchor="start" x="8" y="-1042.5" font-family="Helvetica,sans-Serif" font-size="10.00">_attrs</text>
-<text text-anchor="start" x="8" y="-1031.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_sequal</text>
-<text text-anchor="start" x="8" y="-1020.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
-<text text-anchor="start" x="8" y="-1009.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_shash</text>
-<text text-anchor="start" x="8" y="-998.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
-<text text-anchor="start" x="8" y="-987.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_index</text>
-<text text-anchor="start" x="8" y="-976.5" font-family="Helvetica,sans-Serif" font-size="10.00"># type_index_</text>
-<text text-anchor="start" x="8" y="-965.5" font-family="Helvetica,sans-Serif" font-size="10.00"># ref_counter_</text>
-<polyline fill="none" stroke="black" points="0,-958.5 184,-958.5 "/>
-<text text-anchor="start" x="8" y="-946.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ type_index()</text>
-<text text-anchor="start" x="8" y="-935.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ GetTypeKey()</text>
-<text text-anchor="start" x="8" y="-924.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ GetTypeKeyHash()</text>
-<text text-anchor="start" x="8" y="-913.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ IsInstance()</text>
-<text text-anchor="start" x="8" y="-902.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ unique()</text>
+<polygon fill="white" stroke="black" points="0,-763.5 0,-1150.5 184,-1150.5 184,-763.5 0,-763.5"/>
+<text text-anchor="middle" x="92" y="-1138.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::Object</text>
+<polyline fill="none" stroke="black" points="0,-1131.5 184,-1131.5 "/>
+<text text-anchor="start" x="8" y="-1119.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
+<text text-anchor="start" x="8" y="-1108.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_final</text>
+<text text-anchor="start" x="8" y="-1097.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots</text>
+<text text-anchor="start" x="8" y="-1086.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots_can</text>
+<text text-anchor="start" x="8" y="-1075.5" font-family="Helvetica,sans-Serif" font-size="10.00">_overflow</text>
+<text text-anchor="start" x="8" y="-1064.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_visit</text>
+<text text-anchor="start" x="8" y="-1053.5" font-family="Helvetica,sans-Serif" font-size="10.00">_attrs</text>
+<text text-anchor="start" x="8" y="-1042.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_sequal</text>
+<text text-anchor="start" x="8" y="-1031.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
+<text text-anchor="start" x="8" y="-1020.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_shash</text>
+<text text-anchor="start" x="8" y="-1009.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
+<text text-anchor="start" x="8" y="-998.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_index</text>
+<text text-anchor="start" x="8" y="-987.5" font-family="Helvetica,sans-Serif" font-size="10.00"># type_index_</text>
+<text text-anchor="start" x="8" y="-976.5" font-family="Helvetica,sans-Serif" font-size="10.00"># ref_counter_</text>
+<polyline fill="none" stroke="black" points="0,-969.5 184,-969.5 "/>
+<text text-anchor="start" x="8" y="-957.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ type_index()</text>
+<text text-anchor="start" x="8" y="-946.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ GetTypeKey()</text>
+<text text-anchor="start" x="8" y="-935.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ GetTypeKeyHash()</text>
+<text text-anchor="start" x="8" y="-924.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ IsInstance()</text>
+<text text-anchor="start" x="8" y="-913.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ unique()</text>
+<text text-anchor="start" x="8" y="-902.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Object()</text>
<text text-anchor="start" x="8" y="-891.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Object()</text>
<text text-anchor="start" x="8" y="-880.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Object()</text>
-<text text-anchor="start" x="8" y="-869.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Object()</text>
+<text text-anchor="start" x="8" y="-869.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
<text text-anchor="start" x="8" y="-858.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
-<text text-anchor="start" x="8" y="-847.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
-<text text-anchor="start" x="8" y="-836.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeIndex2Key()</text>
-<text text-anchor="start" x="8" y="-825.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeIndex2KeyHash()</text>
-<text text-anchor="start" x="8" y="-814.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeKey2Index()</text>
-<text text-anchor="start" x="8" y="-803.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _GetOrAllocRuntimeTypeIndex()</text>
-<text text-anchor="start" x="8" y="-792.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RuntimeTypeIndex()</text>
-<text text-anchor="start" x="8" y="-781.5" font-family="Helvetica,sans-Serif" font-size="10.00"># IncRef()</text>
-<text text-anchor="start" x="8" y="-770.5" font-family="Helvetica,sans-Serif" font-size="10.00"># DecRef()</text>
-<text text-anchor="start" x="8" y="-759.5" font-family="Helvetica,sans-Serif" font-size="10.00"># GetOrAllocRuntimeTypeIndex()</text>
+<text text-anchor="start" x="8" y="-847.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeIndex2Key()</text>
+<text text-anchor="start" x="8" y="-836.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeIndex2KeyHash()</text>
+<text text-anchor="start" x="8" y="-825.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeKey2Index()</text>
+<text text-anchor="start" x="8" y="-814.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _GetOrAllocRuntimeTypeIndex()</text>
+<text text-anchor="start" x="8" y="-803.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RuntimeTypeIndex()</text>
+<text text-anchor="start" x="8" y="-792.5" font-family="Helvetica,sans-Serif" font-size="10.00"># IncRef()</text>
+<text text-anchor="start" x="8" y="-781.5" font-family="Helvetica,sans-Serif" font-size="10.00"># DecRef()</text>
+<text text-anchor="start" x="8" y="-770.5" font-family="Helvetica,sans-Serif" font-size="10.00"># GetOrAllocRuntimeTypeIndex()</text>
</a>
</g>
</g>
<!-- Node3->Node2 -->
<g id="edge2" class="edge">
<title>Node3->Node2</title>
-<path fill="none" stroke="midnightblue" d="M167.31,-742.72C212.55,-621.22 267.35,-474.04 299.28,-388.26"/>
-<polygon fill="none" stroke="midnightblue" points="164.01,-741.57 163.8,-752.16 170.57,-744.01 164.01,-741.57"/>
+<path fill="none" stroke="midnightblue" d="M166.7,-753.62C212.18,-630.38 267.52,-480.44 299.56,-393.63"/>
+<polygon fill="none" stroke="midnightblue" points="163.34,-752.6 163.16,-763.2 169.91,-755.03 163.34,-752.6"/>
</g>
<!-- Node3->Node3 -->
<g id="edge3" class="edge">
<title>Node3->Node3</title>
-<path fill="none" stroke="#404040" d="M184.28,-979.92C195.02,-973.66 202,-962.36 202,-946 202,-935.01 198.85,-926.3 193.52,-919.87"/>
-<polygon fill="none" stroke="#404040" points="193.46,-919.81 186.29,-919 184.28,-912.08 191.45,-912.89 193.46,-919.81"/>
-<text text-anchor="middle" x="228" y="-943.5" font-family="Helvetica,sans-Serif" font-size="10.00"> #deleter_</text>
+<path fill="none" stroke="#404040" d="M184.28,-990.92C195.02,-984.66 202,-973.36 202,-957 202,-946.01 198.85,-937.3 193.52,-930.87"/>
+<polygon fill="none" stroke="#404040" points="193.46,-930.81 186.29,-930 184.28,-923.08 191.45,-923.89 193.46,-930.81"/>
+<text text-anchor="middle" x="228" y="-954.5" font-family="Helvetica,sans-Serif" font-size="10.00"> #deleter_</text>
</g>
<!-- Node4 -->
<g id="node4" class="node">
<title>Node4</title>
<g id="a_node4"><a xlink:href="classtvm_1_1runtime_1_1Map.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="272.5,-851.5 272.5,-1040.5 421.5,-1040.5 421.5,-851.5 272.5,-851.5"/>
-<text text-anchor="start" x="280.5" y="-1028.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::Map<</text>
-<text text-anchor="start" x="280.5" y="-1017.5" font-family="Helvetica,sans-Serif" font-size="10.00"> tvm::runtime::String,</text>
-<text text-anchor="middle" x="347" y="-1006.5" font-family="Helvetica,sans-Serif" font-size="10.00"> tvm::runtime::ObjectRef ></text>
-<polyline fill="none" stroke="black" points="272.5,-999.5 421.5,-999.5 "/>
-<text text-anchor="middle" x="347" y="-987.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="272.5,-980.5 421.5,-980.5 "/>
+<polygon fill="white" stroke="black" points="272.5,-862.5 272.5,-1051.5 421.5,-1051.5 421.5,-862.5 272.5,-862.5"/>
+<text text-anchor="start" x="280.5" y="-1039.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::Map<</text>
+<text text-anchor="start" x="280.5" y="-1028.5" font-family="Helvetica,sans-Serif" font-size="10.00"> tvm::runtime::String,</text>
+<text text-anchor="middle" x="347" y="-1017.5" font-family="Helvetica,sans-Serif" font-size="10.00"> tvm::runtime::ObjectRef ></text>
+<polyline fill="none" stroke="black" points="272.5,-1010.5 421.5,-1010.5 "/>
+<text text-anchor="middle" x="347" y="-998.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="272.5,-991.5 421.5,-991.5 "/>
+<text text-anchor="start" x="280.5" y="-979.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Map()</text>
<text text-anchor="start" x="280.5" y="-968.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Map()</text>
<text text-anchor="start" x="280.5" y="-957.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Map()</text>
<text text-anchor="start" x="280.5" y="-946.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Map()</text>
<text text-anchor="start" x="280.5" y="-935.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Map()</text>
<text text-anchor="start" x="280.5" y="-924.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Map()</text>
<text text-anchor="start" x="280.5" y="-913.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Map()</text>
-<text text-anchor="start" x="280.5" y="-902.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Map()</text>
+<text text-anchor="start" x="280.5" y="-902.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
<text text-anchor="start" x="280.5" y="-891.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
-<text text-anchor="start" x="280.5" y="-880.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
-<text text-anchor="start" x="280.5" y="-869.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ at()</text>
-<text text-anchor="start" x="280.5" y="-858.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 12 more...</text>
+<text text-anchor="start" x="280.5" y="-880.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ at()</text>
+<text text-anchor="start" x="280.5" y="-869.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 12 more...</text>
</a>
</g>
</g>
<!-- Node4->Node2 -->
<g id="edge4" class="edge">
<title>Node4->Node2</title>
-<path fill="none" stroke="#404040" d="M343.87,-851.25C339.79,-729.13 332.71,-517.45 328.8,-400.39"/>
-<polygon fill="none" stroke="#404040" points="328.8,-400.32 324.6,-394.46 328.4,-388.33 332.6,-394.19 328.8,-400.32"/>
-<text text-anchor="middle" x="357" y="-603.5" font-family="Helvetica,sans-Serif" font-size="10.00"> +attrs</text>
+<path fill="none" stroke="#404040" d="M343.9,-862.45C339.82,-739.19 332.7,-524.24 328.78,-405.96"/>
+<polygon fill="none" stroke="#404040" points="328.77,-405.77 324.58,-399.91 328.38,-393.78 332.57,-399.64 328.77,-405.77"/>
+<text text-anchor="middle" x="357" y="-614.5" font-family="Helvetica,sans-Serif" font-size="10.00"> +attrs</text>
</g>
<!-- Node5 -->
<g id="node5" class="node">
<title>Node5</title>
<g id="a_node5"><a xlink:href="classtvm_1_1runtime_1_1ObjectRef.html" target="_top" xlink:title="Base class of all object reference.">
-<polygon fill="white" stroke="black" points="331,-1177.5 331,-1410.5 465,-1410.5 465,-1177.5 331,-1177.5"/>
-<text text-anchor="middle" x="398" y="-1398.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::ObjectRef</text>
-<polyline fill="none" stroke="black" points="331,-1391.5 465,-1391.5 "/>
-<text text-anchor="start" x="339" y="-1379.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_is_nullable</text>
-<polyline fill="none" stroke="black" points="331,-1372.5 465,-1372.5 "/>
+<polygon fill="white" stroke="black" points="331,-1188.5 331,-1421.5 465,-1421.5 465,-1188.5 331,-1188.5"/>
+<text text-anchor="middle" x="398" y="-1409.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::ObjectRef</text>
+<polyline fill="none" stroke="black" points="331,-1402.5 465,-1402.5 "/>
+<text text-anchor="start" x="339" y="-1390.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_is_nullable</text>
+<polyline fill="none" stroke="black" points="331,-1383.5 465,-1383.5 "/>
+<text text-anchor="start" x="339" y="-1371.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectRef()</text>
<text text-anchor="start" x="339" y="-1360.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectRef()</text>
-<text text-anchor="start" x="339" y="-1349.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectRef()</text>
-<text text-anchor="start" x="339" y="-1338.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ same_as()</text>
-<text text-anchor="start" x="339" y="-1327.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator==()</text>
-<text text-anchor="start" x="339" y="-1316.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator!=()</text>
-<text text-anchor="start" x="339" y="-1305.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator<()</text>
-<text text-anchor="start" x="339" y="-1294.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ defined()</text>
-<text text-anchor="start" x="339" y="-1283.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get()</text>
-<text text-anchor="start" x="339" y="-1272.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator->()</text>
-<text text-anchor="start" x="339" y="-1261.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ unique()</text>
-<text text-anchor="start" x="339" y="-1250.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ use_count()</text>
+<text text-anchor="start" x="339" y="-1349.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ same_as()</text>
+<text text-anchor="start" x="339" y="-1338.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator==()</text>
+<text text-anchor="start" x="339" y="-1327.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator!=()</text>
+<text text-anchor="start" x="339" y="-1316.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator<()</text>
+<text text-anchor="start" x="339" y="-1305.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ defined()</text>
+<text text-anchor="start" x="339" y="-1294.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get()</text>
+<text text-anchor="start" x="339" y="-1283.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator->()</text>
+<text text-anchor="start" x="339" y="-1272.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ unique()</text>
+<text text-anchor="start" x="339" y="-1261.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ use_count()</text>
+<text text-anchor="start" x="339" y="-1250.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ as()</text>
<text text-anchor="start" x="339" y="-1239.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ as()</text>
-<text text-anchor="start" x="339" y="-1228.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ as()</text>
-<text text-anchor="start" x="339" y="-1217.5" font-family="Helvetica,sans-Serif" font-size="10.00"># get_mutable()</text>
-<text text-anchor="start" x="339" y="-1206.5" font-family="Helvetica,sans-Serif" font-size="10.00"># DowncastNoCheck()</text>
-<text text-anchor="start" x="339" y="-1195.5" font-family="Helvetica,sans-Serif" font-size="10.00"># FFIClearAfterMove()</text>
-<text text-anchor="start" x="339" y="-1184.5" font-family="Helvetica,sans-Serif" font-size="10.00"># GetDataPtr()</text>
+<text text-anchor="start" x="339" y="-1228.5" font-family="Helvetica,sans-Serif" font-size="10.00"># get_mutable()</text>
+<text text-anchor="start" x="339" y="-1217.5" font-family="Helvetica,sans-Serif" font-size="10.00"># DowncastNoCheck()</text>
+<text text-anchor="start" x="339" y="-1206.5" font-family="Helvetica,sans-Serif" font-size="10.00"># FFIClearAfterMove()</text>
+<text text-anchor="start" x="339" y="-1195.5" font-family="Helvetica,sans-Serif" font-size="10.00"># GetDataPtr()</text>
</a>
</g>
</g>
<!-- Node5->Node4 -->
<g id="edge5" class="edge">
<title>Node5->Node4</title>
-<path fill="none" stroke="midnightblue" d="M379.48,-1167.33C373.31,-1125.52 366.56,-1079.71 360.82,-1040.74"/>
-<polygon fill="none" stroke="midnightblue" points="376.03,-1167.92 380.95,-1177.31 382.95,-1166.9 376.03,-1167.92"/>
+<path fill="none" stroke="midnightblue" d="M379.48,-1178.33C373.31,-1136.52 366.56,-1090.71 360.82,-1051.74"/>
+<polygon fill="none" stroke="midnightblue" points="376.03,-1178.92 380.95,-1188.31 382.95,-1177.9 376.03,-1178.92"/>
</g>
<!-- Node7 -->
<g id="node7" class="node">
<title>Node7</title>
<g id="a_node7"><a xlink:href="classtvm_1_1runtime_1_1Array.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="388.5,-478.5 388.5,-733.5 509.5,-733.5 509.5,-478.5 388.5,-478.5"/>
-<text text-anchor="start" x="396.5" y="-721.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::Array</text>
-<text text-anchor="middle" x="449" y="-710.5" font-family="Helvetica,sans-Serif" font-size="10.00">< tvm::PrimExpr ></text>
-<polyline fill="none" stroke="black" points="388.5,-703.5 509.5,-703.5 "/>
-<text text-anchor="middle" x="449" y="-691.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="388.5,-684.5 509.5,-684.5 "/>
+<polygon fill="white" stroke="black" points="388.5,-489.5 388.5,-744.5 509.5,-744.5 509.5,-489.5 388.5,-489.5"/>
+<text text-anchor="start" x="396.5" y="-732.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::Array</text>
+<text text-anchor="middle" x="449" y="-721.5" font-family="Helvetica,sans-Serif" font-size="10.00">< tvm::PrimExpr ></text>
+<polyline fill="none" stroke="black" points="388.5,-714.5 509.5,-714.5 "/>
+<text text-anchor="middle" x="449" y="-702.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="388.5,-695.5 509.5,-695.5 "/>
+<text text-anchor="start" x="396.5" y="-683.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Array()</text>
<text text-anchor="start" x="396.5" y="-672.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Array()</text>
<text text-anchor="start" x="396.5" y="-661.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Array()</text>
<text text-anchor="start" x="396.5" y="-650.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Array()</text>
@@ -195,91 +196,91 @@
<text text-anchor="start" x="396.5" y="-628.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Array()</text>
<text text-anchor="start" x="396.5" y="-617.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Array()</text>
<text text-anchor="start" x="396.5" y="-606.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Array()</text>
-<text text-anchor="start" x="396.5" y="-595.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Array()</text>
+<text text-anchor="start" x="396.5" y="-595.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
<text text-anchor="start" x="396.5" y="-584.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
-<text text-anchor="start" x="396.5" y="-573.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
-<text text-anchor="start" x="396.5" y="-562.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 25 more...</text>
+<text text-anchor="start" x="396.5" y="-573.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 25 more...</text>
+<text text-anchor="start" x="396.5" y="-562.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ CalcCapacityImpl()</text>
<text text-anchor="start" x="396.5" y="-551.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ CalcCapacityImpl()</text>
<text text-anchor="start" x="396.5" y="-540.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ CalcCapacityImpl()</text>
-<text text-anchor="start" x="396.5" y="-529.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ CalcCapacityImpl()</text>
+<text text-anchor="start" x="396.5" y="-529.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ AgregateImpl()</text>
<text text-anchor="start" x="396.5" y="-518.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ AgregateImpl()</text>
<text text-anchor="start" x="396.5" y="-507.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ AgregateImpl()</text>
-<text text-anchor="start" x="396.5" y="-496.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ AgregateImpl()</text>
-<text text-anchor="start" x="396.5" y="-485.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Agregate()</text>
+<text text-anchor="start" x="396.5" y="-496.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Agregate()</text>
</a>
</g>
</g>
<!-- Node5->Node7 -->
<g id="edge8" class="edge">
<title>Node5->Node7</title>
-<path fill="none" stroke="midnightblue" d="M426.08,-1167.25C427.58,-1158.06 428.92,-1148.9 430,-1140 446.79,-1001.78 450.41,-842.03 450.54,-733.74"/>
-<polygon fill="none" stroke="midnightblue" points="422.61,-1166.78 424.38,-1177.23 429.51,-1167.96 422.61,-1166.78"/>
+<path fill="none" stroke="midnightblue" d="M426.08,-1178.25C427.58,-1169.06 428.92,-1159.9 430,-1151 446.79,-1012.78 450.41,-853.03 450.54,-744.74"/>
+<polygon fill="none" stroke="midnightblue" points="422.61,-1177.78 424.38,-1188.23 429.51,-1178.96 422.61,-1177.78"/>
</g>
<!-- Node6 -->
<g id="node6" class="node">
<title>Node6</title>
<g id="a_node6"><a xlink:href="classtvm_1_1runtime_1_1ObjectPtr.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="328,-1458.5 328,-1636.5 468,-1636.5 468,-1458.5 328,-1458.5"/>
-<text text-anchor="start" x="336" y="-1624.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::ObjectPtr</text>
-<text text-anchor="middle" x="398" y="-1613.5" font-family="Helvetica,sans-Serif" font-size="10.00">< tvm::runtime::Object ></text>
-<polyline fill="none" stroke="black" points="328,-1606.5 468,-1606.5 "/>
-<text text-anchor="middle" x="398" y="-1594.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="328,-1587.5 468,-1587.5 "/>
+<polygon fill="white" stroke="black" points="328,-1469.5 328,-1647.5 468,-1647.5 468,-1469.5 328,-1469.5"/>
+<text text-anchor="start" x="336" y="-1635.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::ObjectPtr</text>
+<text text-anchor="middle" x="398" y="-1624.5" font-family="Helvetica,sans-Serif" font-size="10.00">< tvm::runtime::Object ></text>
+<polyline fill="none" stroke="black" points="328,-1617.5 468,-1617.5 "/>
+<text text-anchor="middle" x="398" y="-1605.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="328,-1598.5 468,-1598.5 "/>
+<text text-anchor="start" x="336" y="-1586.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="336" y="-1575.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="336" y="-1564.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="336" y="-1553.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="336" y="-1542.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="336" y="-1531.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
-<text text-anchor="start" x="336" y="-1520.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
-<text text-anchor="start" x="336" y="-1509.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ~ObjectPtr()</text>
-<text text-anchor="start" x="336" y="-1498.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ swap()</text>
-<text text-anchor="start" x="336" y="-1487.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get()</text>
-<text text-anchor="start" x="336" y="-1476.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator->()</text>
-<text text-anchor="start" x="336" y="-1465.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 11 more...</text>
+<text text-anchor="start" x="336" y="-1520.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ~ObjectPtr()</text>
+<text text-anchor="start" x="336" y="-1509.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ swap()</text>
+<text text-anchor="start" x="336" y="-1498.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get()</text>
+<text text-anchor="start" x="336" y="-1487.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator->()</text>
+<text text-anchor="start" x="336" y="-1476.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 11 more...</text>
</a>
</g>
</g>
<!-- Node6->Node5 -->
<g id="edge6" class="edge">
<title>Node6->Node5</title>
-<path fill="none" stroke="#404040" d="M398,-1458.18C398,-1446.84 398,-1435.05 398,-1423.23"/>
-<polygon fill="none" stroke="#404040" points="398,-1422.91 394,-1416.91 398,-1410.91 402,-1416.91 398,-1422.91"/>
-<text text-anchor="middle" x="417.5" y="-1432" font-family="Helvetica,sans-Serif" font-size="10.00"> #data_</text>
+<path fill="none" stroke="#404040" d="M398,-1469.18C398,-1457.84 398,-1446.05 398,-1434.23"/>
+<polygon fill="none" stroke="#404040" points="398,-1433.91 394,-1427.91 398,-1421.91 402,-1427.91 398,-1433.91"/>
+<text text-anchor="middle" x="417.5" y="-1443" font-family="Helvetica,sans-Serif" font-size="10.00"> #data_</text>
</g>
<!-- Node7->Node1 -->
<g id="edge7" class="edge">
<title>Node7->Node1</title>
-<path fill="none" stroke="#404040" d="M449,-478.27C449,-371.86 449,-223.56 449,-135.99"/>
-<polygon fill="none" stroke="#404040" points="449,-135.78 445,-129.78 449,-123.78 453,-129.78 449,-135.78"/>
-<text text-anchor="middle" x="469.5" y="-313" font-family="Helvetica,sans-Serif" font-size="10.00"> +shape</text>
+<path fill="none" stroke="#404040" d="M449,-489.48C449,-380.16 449,-226 449,-136.08"/>
+<polygon fill="none" stroke="#404040" points="449,-135.83 445,-129.83 449,-123.83 453,-129.83 449,-135.83"/>
+<text text-anchor="middle" x="469.5" y="-318.5" font-family="Helvetica,sans-Serif" font-size="10.00"> +shape</text>
</g>
<!-- Node8 -->
<g id="node8" class="node">
<title>Node8</title>
<g id="a_node8"><a xlink:href="classtvm_1_1runtime_1_1DataType.html" target="_top" xlink:title="Runtime primitive data type.">
-<polygon fill="white" stroke="black" points="508,-171.5 508,-459.5 640,-459.5 640,-171.5 508,-171.5"/>
-<text text-anchor="middle" x="574" y="-447.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::DataType</text>
-<polyline fill="none" stroke="black" points="508,-440.5 640,-440.5 "/>
-<text text-anchor="middle" x="574" y="-428.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="508,-421.5 640,-421.5 "/>
+<polygon fill="white" stroke="black" points="508,-171.5 508,-470.5 640,-470.5 640,-171.5 508,-171.5"/>
+<text text-anchor="middle" x="574" y="-458.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::DataType</text>
+<polyline fill="none" stroke="black" points="508,-451.5 640,-451.5 "/>
+<text text-anchor="middle" x="574" y="-439.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="508,-432.5 640,-432.5 "/>
+<text text-anchor="start" x="516" y="-420.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ DataType()</text>
<text text-anchor="start" x="516" y="-409.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ DataType()</text>
<text text-anchor="start" x="516" y="-398.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ DataType()</text>
-<text text-anchor="start" x="516" y="-387.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ DataType()</text>
-<text text-anchor="start" x="516" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ code()</text>
-<text text-anchor="start" x="516" y="-365.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ bits()</text>
-<text text-anchor="start" x="516" y="-354.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ bytes()</text>
-<text text-anchor="start" x="516" y="-343.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ lanes()</text>
-<text text-anchor="start" x="516" y="-332.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ vscale_factor()</text>
-<text text-anchor="start" x="516" y="-321.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get_lanes_or_vscale</text>
-<text text-anchor="start" x="516" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">_factor()</text>
-<text text-anchor="start" x="516" y="-299.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ is_scalar()</text>
-<text text-anchor="start" x="516" y="-288.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 24 more...</text>
-<text text-anchor="start" x="516" y="-277.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Int()</text>
-<text text-anchor="start" x="516" y="-266.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ UInt()</text>
-<text text-anchor="start" x="516" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Float()</text>
-<text text-anchor="start" x="516" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ BFloat()</text>
-<text text-anchor="start" x="516" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat8E4M3()</text>
-<text text-anchor="start" x="516" y="-222.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat8E5M2()</text>
+<text text-anchor="start" x="516" y="-387.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ code()</text>
+<text text-anchor="start" x="516" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ bits()</text>
+<text text-anchor="start" x="516" y="-365.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ bytes()</text>
+<text text-anchor="start" x="516" y="-354.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ lanes()</text>
+<text text-anchor="start" x="516" y="-343.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ vscale_factor()</text>
+<text text-anchor="start" x="516" y="-332.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get_lanes_or_vscale</text>
+<text text-anchor="start" x="516" y="-321.5" font-family="Helvetica,sans-Serif" font-size="10.00">_factor()</text>
+<text text-anchor="start" x="516" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ is_scalar()</text>
+<text text-anchor="start" x="516" y="-299.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 26 more...</text>
+<text text-anchor="start" x="516" y="-288.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Int()</text>
+<text text-anchor="start" x="516" y="-277.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ UInt()</text>
+<text text-anchor="start" x="516" y="-266.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Float()</text>
+<text text-anchor="start" x="516" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ BFloat()</text>
+<text text-anchor="start" x="516" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat8E4M3()</text>
+<text text-anchor="start" x="516" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat8E5M2()</text>
+<text text-anchor="start" x="516" y="-222.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat4E2M1()</text>
<text text-anchor="start" x="516" y="-211.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Bool()</text>
<text text-anchor="start" x="516" y="-200.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Handle()</text>
<text text-anchor="start" x="516" y="-189.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Void()</text>
@@ -290,9 +291,9 @@
<!-- Node8->Node1 -->
<g id="edge9" class="edge">
<title>Node8->Node1</title>
-<path fill="none" stroke="#404040" d="M507.84,-181.39C499.86,-165.33 491.96,-149.44 484.66,-134.75"/>
-<polygon fill="none" stroke="#404040" points="484.55,-134.52 478.3,-130.93 479.21,-123.78 485.46,-127.37 484.55,-134.52"/>
-<text text-anchor="middle" x="513" y="-145" font-family="Helvetica,sans-Serif" font-size="10.00"> +dtype</text>
+<path fill="none" stroke="#404040" d="M507.84,-183.97C499.55,-166.92 491.34,-150.05 483.8,-134.56"/>
+<polygon fill="none" stroke="#404040" points="483.69,-134.33 477.47,-130.68 478.45,-123.54 484.67,-127.19 483.69,-134.33"/>
+<text text-anchor="middle" x="510" y="-145" font-family="Helvetica,sans-Serif" font-size="10.00"> +dtype</text>
</g>
</g>
</svg>
diff --git a/docs/reference/api/doxygen/classtvm_1_1te_1_1TensorNode.html b/docs/reference/api/doxygen/classtvm_1_1te_1_1TensorNode.html
index 189fd72d6b..ca3d398bb7 100644
--- a/docs/reference/api/doxygen/classtvm_1_1te_1_1TensorNode.html
+++ b/docs/reference/api/doxygen/classtvm_1_1te_1_1TensorNode.html
@@ -88,7 +88,7 @@ Inheritance diagram for tvm::te::TensorNode:</div>
<div class="dynheader">
Collaboration diagram for tvm::te::TensorNode:</div>
<div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1te_1_1TensorNode__coll__graph.svg" width="800" height="1507"><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_1te_1_1TensorNode__coll__graph.svg" width="800" height="1522"><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">
diff --git a/docs/reference/api/doxygen/classtvm_1_1te_1_1TensorNode__coll__graph.svg b/docs/reference/api/doxygen/classtvm_1_1te_1_1TensorNode__coll__graph.svg
index ab37da5cff..b8ff864992 100644
--- a/docs/reference/api/doxygen/classtvm_1_1te_1_1TensorNode__coll__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1te_1_1TensorNode__coll__graph.svg
@@ -4,11 +4,11 @@
<!-- Generated by graphviz version 2.43.0 (0)
-->
<!-- Title: tvm::te::TensorNode Pages: 1 -->
-<svg width="600pt" height="1130pt"
- viewBox="0.00 0.00 600.00 1130.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 1126)">
+<svg width="600pt" height="1141pt"
+ viewBox="0.00 0.00 600.00 1141.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 1137)">
<title>tvm::te::TensorNode</title>
-<polygon fill="white" stroke="transparent" points="-4,4 -4,-1126 596,-1126 596,4 -4,4"/>
+<polygon fill="white" stroke="transparent" points="-4,4 -4,-1137 596,-1137 596,4 -4,4"/>
<!-- Node1 -->
<g id="node1" class="node">
<title>Node1</title>
@@ -33,248 +33,249 @@
<g id="node2" class="node">
<title>Node2</title>
<g id="a_node2"><a xlink:href="classtvm_1_1tir_1_1DataProducerNode.html" target="_top" xlink:title="Base node for data producers.">
-<polygon fill="white" stroke="black" points="5.5,-237.5 5.5,-415.5 178.5,-415.5 178.5,-237.5 5.5,-237.5"/>
-<text text-anchor="middle" x="92" y="-403.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::tir::DataProducerNode</text>
-<polyline fill="none" stroke="black" points="5.5,-396.5 178.5,-396.5 "/>
-<text text-anchor="start" x="13.5" y="-384.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
-<text text-anchor="start" x="13.5" y="-373.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_sequal</text>
-<text text-anchor="start" x="13.5" y="-362.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
-<text text-anchor="start" x="13.5" y="-351.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_shash</text>
-<text text-anchor="start" x="13.5" y="-340.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
-<polyline fill="none" stroke="black" points="5.5,-333.5 178.5,-333.5 "/>
-<text text-anchor="start" x="13.5" y="-321.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ~DataProducerNode()</text>
-<text text-anchor="start" x="13.5" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ GetShape()</text>
-<text text-anchor="start" x="13.5" y="-299.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ GetDataType()</text>
-<text text-anchor="start" x="13.5" y="-288.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ GetNameHint()</text>
-<text text-anchor="start" x="13.5" y="-277.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ SEqualReduce()</text>
-<text text-anchor="start" x="13.5" y="-266.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ SHashReduce()</text>
-<text text-anchor="start" x="13.5" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DECLARE_BASE_OBJECT</text>
-<text text-anchor="start" x="13.5" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO()</text>
+<polygon fill="white" stroke="black" points="5.5,-243 5.5,-421 178.5,-421 178.5,-243 5.5,-243"/>
+<text text-anchor="middle" x="92" y="-409" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::tir::DataProducerNode</text>
+<polyline fill="none" stroke="black" points="5.5,-402 178.5,-402 "/>
+<text text-anchor="start" x="13.5" y="-390" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
+<text text-anchor="start" x="13.5" y="-379" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_sequal</text>
+<text text-anchor="start" x="13.5" y="-368" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
+<text text-anchor="start" x="13.5" y="-357" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_shash</text>
+<text text-anchor="start" x="13.5" y="-346" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
+<polyline fill="none" stroke="black" points="5.5,-339 178.5,-339 "/>
+<text text-anchor="start" x="13.5" y="-327" font-family="Helvetica,sans-Serif" font-size="10.00">+ ~DataProducerNode()</text>
+<text text-anchor="start" x="13.5" y="-316" font-family="Helvetica,sans-Serif" font-size="10.00">+ GetShape()</text>
+<text text-anchor="start" x="13.5" y="-305" font-family="Helvetica,sans-Serif" font-size="10.00">+ GetDataType()</text>
+<text text-anchor="start" x="13.5" y="-294" font-family="Helvetica,sans-Serif" font-size="10.00">+ GetNameHint()</text>
+<text text-anchor="start" x="13.5" y="-283" font-family="Helvetica,sans-Serif" font-size="10.00">+ SEqualReduce()</text>
+<text text-anchor="start" x="13.5" y="-272" font-family="Helvetica,sans-Serif" font-size="10.00">+ SHashReduce()</text>
+<text text-anchor="start" x="13.5" y="-261" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DECLARE_BASE_OBJECT</text>
+<text text-anchor="start" x="13.5" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO()</text>
</a>
</g>
</g>
<!-- Node2->Node1 -->
<g id="edge1" class="edge">
<title>Node2->Node1</title>
-<path fill="none" stroke="midnightblue" d="M150.48,-228.69C161.82,-212.49 174.19,-196.31 187,-182 201.77,-165.5 218.99,-149.3 236.11,-134.55"/>
-<polygon fill="none" stroke="midnightblue" points="147.44,-226.93 144.65,-237.15 153.2,-230.9 147.44,-226.93"/>
+<path fill="none" stroke="midnightblue" d="M147.77,-233.88C159.77,-215.91 173.07,-197.84 187,-182 201.52,-165.49 218.54,-149.35 235.53,-134.66"/>
+<polygon fill="none" stroke="midnightblue" points="144.55,-232.41 141.98,-242.69 150.4,-236.25 144.55,-232.41"/>
</g>
<!-- Node3 -->
<g id="node3" class="node">
<title>Node3</title>
<g id="a_node3"><a xlink:href="classtvm_1_1runtime_1_1Object.html" target="_top" xlink:title="base class of all object containers.">
-<polygon fill="white" stroke="black" points="0,-508.5 0,-895.5 184,-895.5 184,-508.5 0,-508.5"/>
-<text text-anchor="middle" x="92" y="-883.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::Object</text>
-<polyline fill="none" stroke="black" points="0,-876.5 184,-876.5 "/>
-<text text-anchor="start" x="8" y="-864.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
-<text text-anchor="start" x="8" y="-853.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_final</text>
-<text text-anchor="start" x="8" y="-842.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots</text>
-<text text-anchor="start" x="8" y="-831.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots_can</text>
-<text text-anchor="start" x="8" y="-820.5" font-family="Helvetica,sans-Serif" font-size="10.00">_overflow</text>
-<text text-anchor="start" x="8" y="-809.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_visit</text>
-<text text-anchor="start" x="8" y="-798.5" font-family="Helvetica,sans-Serif" font-size="10.00">_attrs</text>
-<text text-anchor="start" x="8" y="-787.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_sequal</text>
-<text text-anchor="start" x="8" y="-776.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
-<text text-anchor="start" x="8" y="-765.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_shash</text>
-<text text-anchor="start" x="8" y="-754.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
-<text text-anchor="start" x="8" y="-743.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_index</text>
-<text text-anchor="start" x="8" y="-732.5" font-family="Helvetica,sans-Serif" font-size="10.00"># type_index_</text>
-<text text-anchor="start" x="8" y="-721.5" font-family="Helvetica,sans-Serif" font-size="10.00"># ref_counter_</text>
-<polyline fill="none" stroke="black" points="0,-714.5 184,-714.5 "/>
-<text text-anchor="start" x="8" y="-702.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ type_index()</text>
-<text text-anchor="start" x="8" y="-691.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ GetTypeKey()</text>
-<text text-anchor="start" x="8" y="-680.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ GetTypeKeyHash()</text>
-<text text-anchor="start" x="8" y="-669.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ IsInstance()</text>
-<text text-anchor="start" x="8" y="-658.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ unique()</text>
+<polygon fill="white" stroke="black" points="0,-519.5 0,-906.5 184,-906.5 184,-519.5 0,-519.5"/>
+<text text-anchor="middle" x="92" y="-894.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::Object</text>
+<polyline fill="none" stroke="black" points="0,-887.5 184,-887.5 "/>
+<text text-anchor="start" x="8" y="-875.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
+<text text-anchor="start" x="8" y="-864.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_final</text>
+<text text-anchor="start" x="8" y="-853.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots</text>
+<text text-anchor="start" x="8" y="-842.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots_can</text>
+<text text-anchor="start" x="8" y="-831.5" font-family="Helvetica,sans-Serif" font-size="10.00">_overflow</text>
+<text text-anchor="start" x="8" y="-820.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_visit</text>
+<text text-anchor="start" x="8" y="-809.5" font-family="Helvetica,sans-Serif" font-size="10.00">_attrs</text>
+<text text-anchor="start" x="8" y="-798.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_sequal</text>
+<text text-anchor="start" x="8" y="-787.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
+<text text-anchor="start" x="8" y="-776.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_shash</text>
+<text text-anchor="start" x="8" y="-765.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
+<text text-anchor="start" x="8" y="-754.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_index</text>
+<text text-anchor="start" x="8" y="-743.5" font-family="Helvetica,sans-Serif" font-size="10.00"># type_index_</text>
+<text text-anchor="start" x="8" y="-732.5" font-family="Helvetica,sans-Serif" font-size="10.00"># ref_counter_</text>
+<polyline fill="none" stroke="black" points="0,-725.5 184,-725.5 "/>
+<text text-anchor="start" x="8" y="-713.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ type_index()</text>
+<text text-anchor="start" x="8" y="-702.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ GetTypeKey()</text>
+<text text-anchor="start" x="8" y="-691.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ GetTypeKeyHash()</text>
+<text text-anchor="start" x="8" y="-680.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ IsInstance()</text>
+<text text-anchor="start" x="8" y="-669.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ unique()</text>
+<text text-anchor="start" x="8" y="-658.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Object()</text>
<text text-anchor="start" x="8" y="-647.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Object()</text>
<text text-anchor="start" x="8" y="-636.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Object()</text>
-<text text-anchor="start" x="8" y="-625.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Object()</text>
+<text text-anchor="start" x="8" y="-625.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
<text text-anchor="start" x="8" y="-614.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
-<text text-anchor="start" x="8" y="-603.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
-<text text-anchor="start" x="8" y="-592.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeIndex2Key()</text>
-<text text-anchor="start" x="8" y="-581.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeIndex2KeyHash()</text>
-<text text-anchor="start" x="8" y="-570.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeKey2Index()</text>
-<text text-anchor="start" x="8" y="-559.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _GetOrAllocRuntimeTypeIndex()</text>
-<text text-anchor="start" x="8" y="-548.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RuntimeTypeIndex()</text>
-<text text-anchor="start" x="8" y="-537.5" font-family="Helvetica,sans-Serif" font-size="10.00"># IncRef()</text>
-<text text-anchor="start" x="8" y="-526.5" font-family="Helvetica,sans-Serif" font-size="10.00"># DecRef()</text>
-<text text-anchor="start" x="8" y="-515.5" font-family="Helvetica,sans-Serif" font-size="10.00"># GetOrAllocRuntimeTypeIndex()</text>
+<text text-anchor="start" x="8" y="-603.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeIndex2Key()</text>
+<text text-anchor="start" x="8" y="-592.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeIndex2KeyHash()</text>
+<text text-anchor="start" x="8" y="-581.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeKey2Index()</text>
+<text text-anchor="start" x="8" y="-570.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _GetOrAllocRuntimeTypeIndex()</text>
+<text text-anchor="start" x="8" y="-559.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RuntimeTypeIndex()</text>
+<text text-anchor="start" x="8" y="-548.5" font-family="Helvetica,sans-Serif" font-size="10.00"># IncRef()</text>
+<text text-anchor="start" x="8" y="-537.5" font-family="Helvetica,sans-Serif" font-size="10.00"># DecRef()</text>
+<text text-anchor="start" x="8" y="-526.5" font-family="Helvetica,sans-Serif" font-size="10.00"># GetOrAllocRuntimeTypeIndex()</text>
</a>
</g>
</g>
<!-- Node3->Node2 -->
<g id="edge2" class="edge">
<title>Node3->Node2</title>
-<path fill="none" stroke="midnightblue" d="M92,-498.03C92,-469.23 92,-440.96 92,-415.96"/>
-<polygon fill="none" stroke="midnightblue" points="88.5,-498.23 92,-508.23 95.5,-498.23 88.5,-498.23"/>
+<path fill="none" stroke="midnightblue" d="M92,-509.37C92,-478.38 92,-447.86 92,-421.15"/>
+<polygon fill="none" stroke="midnightblue" points="88.5,-509.45 92,-519.45 95.5,-509.45 88.5,-509.45"/>
</g>
<!-- Node3->Node3 -->
<g id="edge3" class="edge">
<title>Node3->Node3</title>
-<path fill="none" stroke="#404040" d="M184.28,-735.92C195.02,-729.66 202,-718.36 202,-702 202,-691.01 198.85,-682.3 193.52,-675.87"/>
-<polygon fill="none" stroke="#404040" points="193.46,-675.81 186.29,-675 184.28,-668.08 191.45,-668.89 193.46,-675.81"/>
-<text text-anchor="middle" x="228" y="-699.5" font-family="Helvetica,sans-Serif" font-size="10.00"> #deleter_</text>
+<path fill="none" stroke="#404040" d="M184.28,-746.92C195.02,-740.66 202,-729.36 202,-713 202,-702.01 198.85,-693.3 193.52,-686.87"/>
+<polygon fill="none" stroke="#404040" points="193.46,-686.81 186.29,-686 184.28,-679.08 191.45,-679.89 193.46,-686.81"/>
+<text text-anchor="middle" x="228" y="-710.5" font-family="Helvetica,sans-Serif" font-size="10.00"> #deleter_</text>
</g>
<!-- Node4 -->
<g id="node4" class="node">
<title>Node4</title>
<g id="a_node4"><a xlink:href="classtvm_1_1runtime_1_1Array.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="196.5,-199 196.5,-454 317.5,-454 317.5,-199 196.5,-199"/>
-<text text-anchor="start" x="204.5" y="-442" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::Array</text>
-<text text-anchor="middle" x="257" y="-431" font-family="Helvetica,sans-Serif" font-size="10.00">< tvm::PrimExpr ></text>
-<polyline fill="none" stroke="black" points="196.5,-424 317.5,-424 "/>
-<text text-anchor="middle" x="257" y="-412" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="196.5,-405 317.5,-405 "/>
-<text text-anchor="start" x="204.5" y="-393" font-family="Helvetica,sans-Serif" font-size="10.00">+ Array()</text>
-<text text-anchor="start" x="204.5" y="-382" font-family="Helvetica,sans-Serif" font-size="10.00">+ Array()</text>
-<text text-anchor="start" x="204.5" y="-371" font-family="Helvetica,sans-Serif" font-size="10.00">+ Array()</text>
-<text text-anchor="start" x="204.5" y="-360" font-family="Helvetica,sans-Serif" font-size="10.00">+ Array()</text>
-<text text-anchor="start" x="204.5" y="-349" font-family="Helvetica,sans-Serif" font-size="10.00">+ Array()</text>
-<text text-anchor="start" x="204.5" y="-338" font-family="Helvetica,sans-Serif" font-size="10.00">+ Array()</text>
-<text text-anchor="start" x="204.5" y="-327" font-family="Helvetica,sans-Serif" font-size="10.00">+ Array()</text>
-<text text-anchor="start" x="204.5" y="-316" font-family="Helvetica,sans-Serif" font-size="10.00">+ Array()</text>
-<text text-anchor="start" x="204.5" y="-305" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
-<text text-anchor="start" x="204.5" y="-294" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
-<text text-anchor="start" x="204.5" y="-283" font-family="Helvetica,sans-Serif" font-size="10.00">and 25 more...</text>
-<text text-anchor="start" x="204.5" y="-272" font-family="Helvetica,sans-Serif" font-size="10.00">+ CalcCapacityImpl()</text>
-<text text-anchor="start" x="204.5" y="-261" font-family="Helvetica,sans-Serif" font-size="10.00">+ CalcCapacityImpl()</text>
-<text text-anchor="start" x="204.5" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00">+ CalcCapacityImpl()</text>
-<text text-anchor="start" x="204.5" y="-239" font-family="Helvetica,sans-Serif" font-size="10.00">+ AgregateImpl()</text>
-<text text-anchor="start" x="204.5" y="-228" font-family="Helvetica,sans-Serif" font-size="10.00">+ AgregateImpl()</text>
-<text text-anchor="start" x="204.5" y="-217" font-family="Helvetica,sans-Serif" font-size="10.00">+ AgregateImpl()</text>
-<text text-anchor="start" x="204.5" y="-206" font-family="Helvetica,sans-Serif" font-size="10.00">+ Agregate()</text>
+<polygon fill="white" stroke="black" points="196.5,-204.5 196.5,-459.5 317.5,-459.5 317.5,-204.5 196.5,-204.5"/>
+<text text-anchor="start" x="204.5" y="-447.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::Array</text>
+<text text-anchor="middle" x="257" y="-436.5" font-family="Helvetica,sans-Serif" font-size="10.00">< tvm::PrimExpr ></text>
+<polyline fill="none" stroke="black" points="196.5,-429.5 317.5,-429.5 "/>
+<text text-anchor="middle" x="257" y="-417.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="196.5,-410.5 317.5,-410.5 "/>
+<text text-anchor="start" x="204.5" y="-398.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Array()</text>
+<text text-anchor="start" x="204.5" y="-387.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Array()</text>
+<text text-anchor="start" x="204.5" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Array()</text>
+<text text-anchor="start" x="204.5" y="-365.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Array()</text>
+<text text-anchor="start" x="204.5" y="-354.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Array()</text>
+<text text-anchor="start" x="204.5" y="-343.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Array()</text>
+<text text-anchor="start" x="204.5" y="-332.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Array()</text>
+<text text-anchor="start" x="204.5" y="-321.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Array()</text>
+<text text-anchor="start" x="204.5" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
+<text text-anchor="start" x="204.5" y="-299.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
+<text text-anchor="start" x="204.5" y="-288.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 25 more...</text>
+<text text-anchor="start" x="204.5" y="-277.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ CalcCapacityImpl()</text>
+<text text-anchor="start" x="204.5" y="-266.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ CalcCapacityImpl()</text>
+<text text-anchor="start" x="204.5" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ CalcCapacityImpl()</text>
+<text text-anchor="start" x="204.5" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ AgregateImpl()</text>
+<text text-anchor="start" x="204.5" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ AgregateImpl()</text>
+<text text-anchor="start" x="204.5" y="-222.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ AgregateImpl()</text>
+<text text-anchor="start" x="204.5" y="-211.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Agregate()</text>
</a>
</g>
</g>
<!-- Node4->Node1 -->
<g id="edge4" class="edge">
<title>Node4->Node1</title>
-<path fill="none" stroke="#404040" d="M280.43,-198.73C283.97,-183.24 287.84,-167.7 292,-153 292.64,-150.74 293.31,-148.46 294,-146.17"/>
-<polygon fill="none" stroke="#404040" points="294.04,-146.05 292.04,-139.12 297.67,-134.61 299.67,-141.54 294.04,-146.05"/>
+<path fill="none" stroke="#404040" d="M279.32,-204.49C283.13,-187.09 287.37,-169.53 292,-153 292.63,-150.74 293.3,-148.46 293.99,-146.16"/>
+<polygon fill="none" stroke="#404040" points="294.02,-146.04 292.01,-139.12 297.63,-134.6 299.64,-141.53 294.02,-146.04"/>
<text text-anchor="middle" x="312.5" y="-156" font-family="Helvetica,sans-Serif" font-size="10.00"> +shape</text>
</g>
<!-- Node5 -->
<g id="node5" class="node">
<title>Node5</title>
<g id="a_node5"><a xlink:href="classtvm_1_1runtime_1_1ObjectRef.html" target="_top" xlink:title="Base class of all object reference.">
-<polygon fill="white" stroke="black" points="297,-585.5 297,-818.5 431,-818.5 431,-585.5 297,-585.5"/>
-<text text-anchor="middle" x="364" y="-806.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::ObjectRef</text>
-<polyline fill="none" stroke="black" points="297,-799.5 431,-799.5 "/>
-<text text-anchor="start" x="305" y="-787.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_is_nullable</text>
-<polyline fill="none" stroke="black" points="297,-780.5 431,-780.5 "/>
+<polygon fill="white" stroke="black" points="297,-596.5 297,-829.5 431,-829.5 431,-596.5 297,-596.5"/>
+<text text-anchor="middle" x="364" y="-817.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::ObjectRef</text>
+<polyline fill="none" stroke="black" points="297,-810.5 431,-810.5 "/>
+<text text-anchor="start" x="305" y="-798.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_is_nullable</text>
+<polyline fill="none" stroke="black" points="297,-791.5 431,-791.5 "/>
+<text text-anchor="start" x="305" y="-779.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectRef()</text>
<text text-anchor="start" x="305" y="-768.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectRef()</text>
-<text text-anchor="start" x="305" y="-757.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectRef()</text>
-<text text-anchor="start" x="305" y="-746.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ same_as()</text>
-<text text-anchor="start" x="305" y="-735.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator==()</text>
-<text text-anchor="start" x="305" y="-724.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator!=()</text>
-<text text-anchor="start" x="305" y="-713.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator<()</text>
-<text text-anchor="start" x="305" y="-702.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ defined()</text>
-<text text-anchor="start" x="305" y="-691.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get()</text>
-<text text-anchor="start" x="305" y="-680.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator->()</text>
-<text text-anchor="start" x="305" y="-669.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ unique()</text>
-<text text-anchor="start" x="305" y="-658.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ use_count()</text>
+<text text-anchor="start" x="305" y="-757.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ same_as()</text>
+<text text-anchor="start" x="305" y="-746.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator==()</text>
+<text text-anchor="start" x="305" y="-735.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator!=()</text>
+<text text-anchor="start" x="305" y="-724.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator<()</text>
+<text text-anchor="start" x="305" y="-713.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ defined()</text>
+<text text-anchor="start" x="305" y="-702.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get()</text>
+<text text-anchor="start" x="305" y="-691.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator->()</text>
+<text text-anchor="start" x="305" y="-680.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ unique()</text>
+<text text-anchor="start" x="305" y="-669.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ use_count()</text>
+<text text-anchor="start" x="305" y="-658.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ as()</text>
<text text-anchor="start" x="305" y="-647.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ as()</text>
-<text text-anchor="start" x="305" y="-636.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ as()</text>
-<text text-anchor="start" x="305" y="-625.5" font-family="Helvetica,sans-Serif" font-size="10.00"># get_mutable()</text>
-<text text-anchor="start" x="305" y="-614.5" font-family="Helvetica,sans-Serif" font-size="10.00"># DowncastNoCheck()</text>
-<text text-anchor="start" x="305" y="-603.5" font-family="Helvetica,sans-Serif" font-size="10.00"># FFIClearAfterMove()</text>
-<text text-anchor="start" x="305" y="-592.5" font-family="Helvetica,sans-Serif" font-size="10.00"># GetDataPtr()</text>
+<text text-anchor="start" x="305" y="-636.5" font-family="Helvetica,sans-Serif" font-size="10.00"># get_mutable()</text>
+<text text-anchor="start" x="305" y="-625.5" font-family="Helvetica,sans-Serif" font-size="10.00"># DowncastNoCheck()</text>
+<text text-anchor="start" x="305" y="-614.5" font-family="Helvetica,sans-Serif" font-size="10.00"># FFIClearAfterMove()</text>
+<text text-anchor="start" x="305" y="-603.5" font-family="Helvetica,sans-Serif" font-size="10.00"># GetDataPtr()</text>
</a>
</g>
</g>
<!-- Node5->Node4 -->
<g id="edge5" class="edge">
<title>Node5->Node4</title>
-<path fill="none" stroke="midnightblue" d="M328.06,-575.54C316.87,-536.49 304.53,-493.41 293.32,-454.27"/>
-<polygon fill="none" stroke="midnightblue" points="324.76,-576.73 330.88,-585.38 331.49,-574.8 324.76,-576.73"/>
+<path fill="none" stroke="midnightblue" d="M328.64,-586.77C317.13,-545.97 304.34,-500.67 292.79,-459.77"/>
+<polygon fill="none" stroke="midnightblue" points="325.3,-587.81 331.39,-596.49 332.04,-585.91 325.3,-587.81"/>
</g>
<!-- Node7 -->
<g id="node7" class="node">
<title>Node7</title>
<g id="a_node7"><a xlink:href="classtvm_1_1te_1_1Operation.html" target="_top" xlink:title="Operation that produces tensors.">
-<polygon fill="white" stroke="black" points="336,-281.5 336,-371.5 442,-371.5 442,-281.5 336,-281.5"/>
-<text text-anchor="middle" x="389" y="-359.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::te::Operation</text>
-<polyline fill="none" stroke="black" points="336,-352.5 442,-352.5 "/>
-<text text-anchor="middle" x="389" y="-340.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="336,-333.5 442,-333.5 "/>
-<text text-anchor="start" x="344" y="-321.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Operation()</text>
-<text text-anchor="start" x="344" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Operation()</text>
-<text text-anchor="start" x="344" y="-299.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator->()</text>
-<text text-anchor="start" x="344" y="-288.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ output()</text>
+<polygon fill="white" stroke="black" points="336,-287 336,-377 442,-377 442,-287 336,-287"/>
+<text text-anchor="middle" x="389" y="-365" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::te::Operation</text>
+<polyline fill="none" stroke="black" points="336,-358 442,-358 "/>
+<text text-anchor="middle" x="389" y="-346" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="336,-339 442,-339 "/>
+<text text-anchor="start" x="344" y="-327" font-family="Helvetica,sans-Serif" font-size="10.00">+ Operation()</text>
+<text text-anchor="start" x="344" y="-316" font-family="Helvetica,sans-Serif" font-size="10.00">+ Operation()</text>
+<text text-anchor="start" x="344" y="-305" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator->()</text>
+<text text-anchor="start" x="344" y="-294" font-family="Helvetica,sans-Serif" font-size="10.00">+ output()</text>
</a>
</g>
</g>
<!-- Node5->Node7 -->
<g id="edge8" class="edge">
<title>Node5->Node7</title>
-<path fill="none" stroke="midnightblue" d="M372.43,-575.09C377.14,-504.69 382.72,-421.33 386.05,-371.52"/>
-<polygon fill="none" stroke="midnightblue" points="368.91,-575.17 371.74,-585.38 375.9,-575.64 368.91,-575.17"/>
+<path fill="none" stroke="midnightblue" d="M372.28,-586.41C377.04,-514.28 382.72,-428.16 386.09,-377.16"/>
+<polygon fill="none" stroke="midnightblue" points="368.79,-586.28 371.62,-596.49 375.77,-586.74 368.79,-586.28"/>
</g>
<!-- Node6 -->
<g id="node6" class="node">
<title>Node6</title>
<g id="a_node6"><a xlink:href="classtvm_1_1runtime_1_1ObjectPtr.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="294,-943.5 294,-1121.5 434,-1121.5 434,-943.5 294,-943.5"/>
-<text text-anchor="start" x="302" y="-1109.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::ObjectPtr</text>
-<text text-anchor="middle" x="364" y="-1098.5" font-family="Helvetica,sans-Serif" font-size="10.00">< tvm::runtime::Object ></text>
-<polyline fill="none" stroke="black" points="294,-1091.5 434,-1091.5 "/>
-<text text-anchor="middle" x="364" y="-1079.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="294,-1072.5 434,-1072.5 "/>
+<polygon fill="white" stroke="black" points="294,-954.5 294,-1132.5 434,-1132.5 434,-954.5 294,-954.5"/>
+<text text-anchor="start" x="302" y="-1120.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::ObjectPtr</text>
+<text text-anchor="middle" x="364" y="-1109.5" font-family="Helvetica,sans-Serif" font-size="10.00">< tvm::runtime::Object ></text>
+<polyline fill="none" stroke="black" points="294,-1102.5 434,-1102.5 "/>
+<text text-anchor="middle" x="364" y="-1090.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="294,-1083.5 434,-1083.5 "/>
+<text text-anchor="start" x="302" y="-1071.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="302" y="-1060.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="302" y="-1049.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="302" y="-1038.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="302" y="-1027.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="302" y="-1016.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
-<text text-anchor="start" x="302" y="-1005.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
-<text text-anchor="start" x="302" y="-994.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ~ObjectPtr()</text>
-<text text-anchor="start" x="302" y="-983.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ swap()</text>
-<text text-anchor="start" x="302" y="-972.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get()</text>
-<text text-anchor="start" x="302" y="-961.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator->()</text>
-<text text-anchor="start" x="302" y="-950.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 11 more...</text>
+<text text-anchor="start" x="302" y="-1005.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ~ObjectPtr()</text>
+<text text-anchor="start" x="302" y="-994.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ swap()</text>
+<text text-anchor="start" x="302" y="-983.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get()</text>
+<text text-anchor="start" x="302" y="-972.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator->()</text>
+<text text-anchor="start" x="302" y="-961.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 11 more...</text>
</a>
</g>
</g>
<!-- Node6->Node5 -->
<g id="edge6" class="edge">
<title>Node6->Node5</title>
-<path fill="none" stroke="#404040" d="M364,-943.47C364,-908.91 364,-868.57 364,-830.92"/>
-<polygon fill="none" stroke="#404040" points="364,-830.8 360,-824.8 364,-818.8 368,-824.8 364,-830.8"/>
-<text text-anchor="middle" x="383.5" y="-917" font-family="Helvetica,sans-Serif" font-size="10.00"> #data_</text>
+<path fill="none" stroke="#404040" d="M364,-954.47C364,-919.91 364,-879.57 364,-841.92"/>
+<polygon fill="none" stroke="#404040" points="364,-841.8 360,-835.8 364,-829.8 368,-835.8 364,-841.8"/>
+<text text-anchor="middle" x="383.5" y="-928" font-family="Helvetica,sans-Serif" font-size="10.00"> #data_</text>
</g>
<!-- Node7->Node1 -->
<g id="edge7" class="edge">
<title>Node7->Node1</title>
-<path fill="none" stroke="#404040" d="M377.65,-281.32C368.17,-244.38 354.41,-190.79 343.07,-146.63"/>
-<polygon fill="none" stroke="#404040" points="343,-146.37 337.63,-141.55 340.01,-134.75 345.38,-139.56 343,-146.37"/>
+<path fill="none" stroke="#404040" d="M377.88,-286.77C368.25,-248.46 354.09,-192.15 342.57,-146.32"/>
+<polygon fill="none" stroke="#404040" points="342.55,-146.25 337.21,-141.41 339.62,-134.61 344.96,-139.46 342.55,-146.25"/>
<text text-anchor="middle" x="359" y="-156" font-family="Helvetica,sans-Serif" font-size="10.00"> +op</text>
</g>
<!-- Node8 -->
<g id="node8" class="node">
<title>Node8</title>
<g id="a_node8"><a xlink:href="classtvm_1_1runtime_1_1DataType.html" target="_top" xlink:title="Runtime primitive data type.">
-<polygon fill="white" stroke="black" points="460,-182.5 460,-470.5 592,-470.5 592,-182.5 460,-182.5"/>
-<text text-anchor="middle" x="526" y="-458.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::DataType</text>
-<polyline fill="none" stroke="black" points="460,-451.5 592,-451.5 "/>
-<text text-anchor="middle" x="526" y="-439.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="460,-432.5 592,-432.5 "/>
+<polygon fill="white" stroke="black" points="460,-182.5 460,-481.5 592,-481.5 592,-182.5 460,-182.5"/>
+<text text-anchor="middle" x="526" y="-469.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::DataType</text>
+<polyline fill="none" stroke="black" points="460,-462.5 592,-462.5 "/>
+<text text-anchor="middle" x="526" y="-450.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="460,-443.5 592,-443.5 "/>
+<text text-anchor="start" x="468" y="-431.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ DataType()</text>
<text text-anchor="start" x="468" y="-420.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ DataType()</text>
<text text-anchor="start" x="468" y="-409.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ DataType()</text>
-<text text-anchor="start" x="468" y="-398.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ DataType()</text>
-<text text-anchor="start" x="468" y="-387.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ code()</text>
-<text text-anchor="start" x="468" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ bits()</text>
-<text text-anchor="start" x="468" y="-365.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ bytes()</text>
-<text text-anchor="start" x="468" y="-354.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ lanes()</text>
-<text text-anchor="start" x="468" y="-343.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ vscale_factor()</text>
-<text text-anchor="start" x="468" y="-332.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get_lanes_or_vscale</text>
-<text text-anchor="start" x="468" y="-321.5" font-family="Helvetica,sans-Serif" font-size="10.00">_factor()</text>
-<text text-anchor="start" x="468" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ is_scalar()</text>
-<text text-anchor="start" x="468" y="-299.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 24 more...</text>
-<text text-anchor="start" x="468" y="-288.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Int()</text>
-<text text-anchor="start" x="468" y="-277.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ UInt()</text>
-<text text-anchor="start" x="468" y="-266.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Float()</text>
-<text text-anchor="start" x="468" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ BFloat()</text>
-<text text-anchor="start" x="468" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat8E4M3()</text>
-<text text-anchor="start" x="468" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat8E5M2()</text>
+<text text-anchor="start" x="468" y="-398.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ code()</text>
+<text text-anchor="start" x="468" y="-387.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ bits()</text>
+<text text-anchor="start" x="468" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ bytes()</text>
+<text text-anchor="start" x="468" y="-365.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ lanes()</text>
+<text text-anchor="start" x="468" y="-354.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ vscale_factor()</text>
+<text text-anchor="start" x="468" y="-343.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get_lanes_or_vscale</text>
+<text text-anchor="start" x="468" y="-332.5" font-family="Helvetica,sans-Serif" font-size="10.00">_factor()</text>
+<text text-anchor="start" x="468" y="-321.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ is_scalar()</text>
+<text text-anchor="start" x="468" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 26 more...</text>
+<text text-anchor="start" x="468" y="-299.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Int()</text>
+<text text-anchor="start" x="468" y="-288.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ UInt()</text>
+<text text-anchor="start" x="468" y="-277.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Float()</text>
+<text text-anchor="start" x="468" y="-266.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ BFloat()</text>
+<text text-anchor="start" x="468" y="-255.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat8E4M3()</text>
+<text text-anchor="start" x="468" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat8E5M2()</text>
+<text text-anchor="start" x="468" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat4E2M1()</text>
<text text-anchor="start" x="468" y="-222.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Bool()</text>
<text text-anchor="start" x="468" y="-211.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Handle()</text>
<text text-anchor="start" x="468" y="-200.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Void()</text>
@@ -285,8 +286,8 @@
<!-- Node8->Node1 -->
<g id="edge9" class="edge">
<title>Node8->Node1</title>
-<path fill="none" stroke="#404040" d="M459.89,-194.01C457,-189.89 454.03,-185.88 451,-182 440.45,-168.5 428.15,-155.32 415.43,-143.01"/>
-<polygon fill="none" stroke="#404040" points="415.29,-142.87 408.19,-141.65 406.58,-134.62 413.68,-135.84 415.29,-142.87"/>
+<path fill="none" stroke="#404040" d="M459.8,-194.09C456.94,-189.94 454,-185.9 451,-182 440.63,-168.52 428.48,-155.39 415.89,-143.12"/>
+<polygon fill="none" stroke="#404040" points="415.81,-143.05 408.7,-141.81 407.11,-134.78 414.22,-136.01 415.81,-143.05"/>
<text text-anchor="middle" x="452" y="-156" font-family="Helvetica,sans-Serif" font-size="10.00"> +dtype</text>
</g>
</g>
diff --git a/docs/reference/api/doxygen/classtvm_1_1tir_1_1AddNode.html b/docs/reference/api/doxygen/classtvm_1_1tir_1_1AddNode.html
index 83e9bee99b..b801ab6e2c 100644
--- a/docs/reference/api/doxygen/classtvm_1_1tir_1_1AddNode.html
+++ b/docs/reference/api/doxygen/classtvm_1_1tir_1_1AddNode.html
@@ -86,7 +86,7 @@ Inheritance diagram for tvm::tir::AddNode:</div>
<div class="dynheader">
Collaboration diagram for tvm::tir::AddNode:</div>
<div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1tir_1_1AddNode__coll__graph.svg" width="620" height="2179"><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_1tir_1_1AddNode__coll__graph.svg" width="620" height="2194"><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">
diff --git a/docs/reference/api/doxygen/classtvm_1_1tir_1_1AddNode__coll__graph.svg b/docs/reference/api/doxygen/classtvm_1_1tir_1_1AddNode__coll__graph.svg
index 4e5877153c..00c9e8f751 100644
--- a/docs/reference/api/doxygen/classtvm_1_1tir_1_1AddNode__coll__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1tir_1_1AddNode__coll__graph.svg
@@ -4,11 +4,11 @@
<!-- Generated by graphviz version 2.43.0 (0)
-->
<!-- Title: tvm::tir::AddNode Pages: 1 -->
-<svg width="465pt" height="1634pt"
- viewBox="0.00 0.00 465.00 1634.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 1630)">
+<svg width="465pt" height="1645pt"
+ viewBox="0.00 0.00 465.00 1645.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 1641)">
<title>tvm::tir::AddNode</title>
-<polygon fill="white" stroke="transparent" points="-4,4 -4,-1630 461,-1630 461,4 -4,4"/>
+<polygon fill="white" stroke="transparent" points="-4,4 -4,-1641 461,-1641 461,4 -4,4"/>
<!-- Node1 -->
<g id="node1" class="node">
<title>Node1</title>
@@ -74,199 +74,200 @@
<g id="node4" class="node">
<title>Node4</title>
<g id="a_node4"><a xlink:href="classtvm_1_1BaseExprNode.html" target="_top" xlink:title="Base type of all the expressions.">
-<polygon fill="white" stroke="black" points="133.5,-488 133.5,-611 306.5,-611 306.5,-488 133.5,-488"/>
-<text text-anchor="middle" x="220" y="-599" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::BaseExprNode</text>
-<polyline fill="none" stroke="black" points="133.5,-592 306.5,-592 "/>
-<text text-anchor="start" x="141.5" y="-580" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
-<text text-anchor="start" x="141.5" y="-569" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_sequal</text>
-<text text-anchor="start" x="141.5" y="-558" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
-<text text-anchor="start" x="141.5" y="-547" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_shash</text>
-<text text-anchor="start" x="141.5" y="-536" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
-<text text-anchor="start" x="141.5" y="-525" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots</text>
-<polyline fill="none" stroke="black" points="133.5,-518 306.5,-518 "/>
-<text text-anchor="start" x="141.5" y="-506" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DECLARE_BASE_OBJECT</text>
-<text text-anchor="start" x="141.5" y="-495" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO()</text>
+<polygon fill="white" stroke="black" points="133.5,-493.5 133.5,-616.5 306.5,-616.5 306.5,-493.5 133.5,-493.5"/>
+<text text-anchor="middle" x="220" y="-604.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::BaseExprNode</text>
+<polyline fill="none" stroke="black" points="133.5,-597.5 306.5,-597.5 "/>
+<text text-anchor="start" x="141.5" y="-585.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
+<text text-anchor="start" x="141.5" y="-574.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_sequal</text>
+<text text-anchor="start" x="141.5" y="-563.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
+<text text-anchor="start" x="141.5" y="-552.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_shash</text>
+<text text-anchor="start" x="141.5" y="-541.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
+<text text-anchor="start" x="141.5" y="-530.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots</text>
+<polyline fill="none" stroke="black" points="133.5,-523.5 306.5,-523.5 "/>
+<text text-anchor="start" x="141.5" y="-511.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DECLARE_BASE_OBJECT</text>
+<text text-anchor="start" x="141.5" y="-500.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO()</text>
</a>
</g>
</g>
<!-- Node4->Node3 -->
<g id="edge3" class="edge">
<title>Node4->Node3</title>
-<path fill="none" stroke="midnightblue" d="M244.85,-478.18C258.51,-439.54 275.12,-392.54 287.42,-357.73"/>
-<polygon fill="none" stroke="midnightblue" points="241.48,-477.22 241.45,-487.81 248.08,-479.55 241.48,-477.22"/>
+<path fill="none" stroke="midnightblue" d="M244.29,-483.71C258.19,-443.48 275.29,-393.98 287.8,-357.78"/>
+<polygon fill="none" stroke="midnightblue" points="240.97,-482.6 241.01,-493.19 247.59,-484.88 240.97,-482.6"/>
</g>
<!-- Node5 -->
<g id="node5" class="node">
<title>Node5</title>
<g id="a_node5"><a xlink:href="classtvm_1_1runtime_1_1Object.html" target="_top" xlink:title="base class of all object containers.">
-<polygon fill="white" stroke="black" points="0,-741.5 0,-1128.5 184,-1128.5 184,-741.5 0,-741.5"/>
-<text text-anchor="middle" x="92" y="-1116.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::Object</text>
-<polyline fill="none" stroke="black" points="0,-1109.5 184,-1109.5 "/>
-<text text-anchor="start" x="8" y="-1097.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
-<text text-anchor="start" x="8" y="-1086.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_final</text>
-<text text-anchor="start" x="8" y="-1075.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots</text>
-<text text-anchor="start" x="8" y="-1064.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots_can</text>
-<text text-anchor="start" x="8" y="-1053.5" font-family="Helvetica,sans-Serif" font-size="10.00">_overflow</text>
-<text text-anchor="start" x="8" y="-1042.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_visit</text>
-<text text-anchor="start" x="8" y="-1031.5" font-family="Helvetica,sans-Serif" font-size="10.00">_attrs</text>
-<text text-anchor="start" x="8" y="-1020.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_sequal</text>
-<text text-anchor="start" x="8" y="-1009.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
-<text text-anchor="start" x="8" y="-998.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_shash</text>
-<text text-anchor="start" x="8" y="-987.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
-<text text-anchor="start" x="8" y="-976.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_index</text>
-<text text-anchor="start" x="8" y="-965.5" font-family="Helvetica,sans-Serif" font-size="10.00"># type_index_</text>
-<text text-anchor="start" x="8" y="-954.5" font-family="Helvetica,sans-Serif" font-size="10.00"># ref_counter_</text>
-<polyline fill="none" stroke="black" points="0,-947.5 184,-947.5 "/>
-<text text-anchor="start" x="8" y="-935.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ type_index()</text>
-<text text-anchor="start" x="8" y="-924.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ GetTypeKey()</text>
-<text text-anchor="start" x="8" y="-913.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ GetTypeKeyHash()</text>
-<text text-anchor="start" x="8" y="-902.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ IsInstance()</text>
-<text text-anchor="start" x="8" y="-891.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ unique()</text>
+<polygon fill="white" stroke="black" points="0,-752.5 0,-1139.5 184,-1139.5 184,-752.5 0,-752.5"/>
+<text text-anchor="middle" x="92" y="-1127.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::Object</text>
+<polyline fill="none" stroke="black" points="0,-1120.5 184,-1120.5 "/>
+<text text-anchor="start" x="8" y="-1108.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
+<text text-anchor="start" x="8" y="-1097.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_final</text>
+<text text-anchor="start" x="8" y="-1086.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots</text>
+<text text-anchor="start" x="8" y="-1075.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots_can</text>
+<text text-anchor="start" x="8" y="-1064.5" font-family="Helvetica,sans-Serif" font-size="10.00">_overflow</text>
+<text text-anchor="start" x="8" y="-1053.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_visit</text>
+<text text-anchor="start" x="8" y="-1042.5" font-family="Helvetica,sans-Serif" font-size="10.00">_attrs</text>
+<text text-anchor="start" x="8" y="-1031.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_sequal</text>
+<text text-anchor="start" x="8" y="-1020.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
+<text text-anchor="start" x="8" y="-1009.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_shash</text>
+<text text-anchor="start" x="8" y="-998.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
+<text text-anchor="start" x="8" y="-987.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_index</text>
+<text text-anchor="start" x="8" y="-976.5" font-family="Helvetica,sans-Serif" font-size="10.00"># type_index_</text>
+<text text-anchor="start" x="8" y="-965.5" font-family="Helvetica,sans-Serif" font-size="10.00"># ref_counter_</text>
+<polyline fill="none" stroke="black" points="0,-958.5 184,-958.5 "/>
+<text text-anchor="start" x="8" y="-946.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ type_index()</text>
+<text text-anchor="start" x="8" y="-935.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ GetTypeKey()</text>
+<text text-anchor="start" x="8" y="-924.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ GetTypeKeyHash()</text>
+<text text-anchor="start" x="8" y="-913.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ IsInstance()</text>
+<text text-anchor="start" x="8" y="-902.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ unique()</text>
+<text text-anchor="start" x="8" y="-891.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Object()</text>
<text text-anchor="start" x="8" y="-880.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Object()</text>
<text text-anchor="start" x="8" y="-869.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Object()</text>
-<text text-anchor="start" x="8" y="-858.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Object()</text>
+<text text-anchor="start" x="8" y="-858.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
<text text-anchor="start" x="8" y="-847.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
-<text text-anchor="start" x="8" y="-836.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
-<text text-anchor="start" x="8" y="-825.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeIndex2Key()</text>
-<text text-anchor="start" x="8" y="-814.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeIndex2KeyHash()</text>
-<text text-anchor="start" x="8" y="-803.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeKey2Index()</text>
-<text text-anchor="start" x="8" y="-792.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _GetOrAllocRuntimeTypeIndex()</text>
-<text text-anchor="start" x="8" y="-781.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RuntimeTypeIndex()</text>
-<text text-anchor="start" x="8" y="-770.5" font-family="Helvetica,sans-Serif" font-size="10.00"># IncRef()</text>
-<text text-anchor="start" x="8" y="-759.5" font-family="Helvetica,sans-Serif" font-size="10.00"># DecRef()</text>
-<text text-anchor="start" x="8" y="-748.5" font-family="Helvetica,sans-Serif" font-size="10.00"># GetOrAllocRuntimeTypeIndex()</text>
+<text text-anchor="start" x="8" y="-836.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeIndex2Key()</text>
+<text text-anchor="start" x="8" y="-825.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeIndex2KeyHash()</text>
+<text text-anchor="start" x="8" y="-814.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeKey2Index()</text>
+<text text-anchor="start" x="8" y="-803.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _GetOrAllocRuntimeTypeIndex()</text>
+<text text-anchor="start" x="8" y="-792.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RuntimeTypeIndex()</text>
+<text text-anchor="start" x="8" y="-781.5" font-family="Helvetica,sans-Serif" font-size="10.00"># IncRef()</text>
+<text text-anchor="start" x="8" y="-770.5" font-family="Helvetica,sans-Serif" font-size="10.00"># DecRef()</text>
+<text text-anchor="start" x="8" y="-759.5" font-family="Helvetica,sans-Serif" font-size="10.00"># GetOrAllocRuntimeTypeIndex()</text>
</a>
</g>
</g>
<!-- Node5->Node4 -->
<g id="edge4" class="edge">
<title>Node5->Node4</title>
-<path fill="none" stroke="midnightblue" d="M159.51,-731.72C174.18,-687.78 188.6,-644.57 199.68,-611.37"/>
-<polygon fill="none" stroke="midnightblue" points="156.13,-730.81 156.28,-741.41 162.77,-733.03 156.13,-730.81"/>
+<path fill="none" stroke="midnightblue" d="M158.48,-742.96C173.66,-696.83 188.65,-651.26 200.04,-616.67"/>
+<polygon fill="none" stroke="midnightblue" points="155.14,-741.9 155.34,-752.49 161.79,-744.09 155.14,-741.9"/>
</g>
<!-- Node5->Node5 -->
<g id="edge5" class="edge">
<title>Node5->Node5</title>
-<path fill="none" stroke="#404040" d="M184.28,-968.92C195.02,-962.66 202,-951.36 202,-935 202,-924.01 198.85,-915.3 193.52,-908.87"/>
-<polygon fill="none" stroke="#404040" points="193.46,-908.81 186.29,-908 184.28,-901.08 191.45,-901.89 193.46,-908.81"/>
-<text text-anchor="middle" x="228" y="-932.5" font-family="Helvetica,sans-Serif" font-size="10.00"> #deleter_</text>
+<path fill="none" stroke="#404040" d="M184.28,-979.92C195.02,-973.66 202,-962.36 202,-946 202,-935.01 198.85,-926.3 193.52,-919.87"/>
+<polygon fill="none" stroke="#404040" points="193.46,-919.81 186.29,-919 184.28,-912.08 191.45,-912.89 193.46,-919.81"/>
+<text text-anchor="middle" x="228" y="-943.5" font-family="Helvetica,sans-Serif" font-size="10.00"> #deleter_</text>
</g>
<!-- Node6 -->
<g id="node6" class="node">
<title>Node6</title>
<g id="a_node6"><a xlink:href="classtvm_1_1Span.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="272,-890 272,-980 428,-980 428,-890 272,-890"/>
-<text text-anchor="middle" x="350" y="-968" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::Span</text>
-<polyline fill="none" stroke="black" points="272,-961 428,-961 "/>
-<text text-anchor="middle" x="350" y="-949" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="272,-942 428,-942 "/>
-<text text-anchor="start" x="280" y="-930" font-family="Helvetica,sans-Serif" font-size="10.00">+ Span()</text>
-<text text-anchor="start" x="280" y="-919" font-family="Helvetica,sans-Serif" font-size="10.00">+ Merge()</text>
-<text text-anchor="start" x="280" y="-908" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="280" y="-897" font-family="Helvetica,sans-Serif" font-size="10.00">_METHODS()</text>
+<polygon fill="white" stroke="black" points="272,-901 272,-991 428,-991 428,-901 272,-901"/>
+<text text-anchor="middle" x="350" y="-979" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::Span</text>
+<polyline fill="none" stroke="black" points="272,-972 428,-972 "/>
+<text text-anchor="middle" x="350" y="-960" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="272,-953 428,-953 "/>
+<text text-anchor="start" x="280" y="-941" font-family="Helvetica,sans-Serif" font-size="10.00">+ Span()</text>
+<text text-anchor="start" x="280" y="-930" font-family="Helvetica,sans-Serif" font-size="10.00">+ Merge()</text>
+<text text-anchor="start" x="280" y="-919" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="280" y="-908" font-family="Helvetica,sans-Serif" font-size="10.00">_METHODS()</text>
</a>
</g>
</g>
<!-- Node6->Node4 -->
<g id="edge6" class="edge">
<title>Node6->Node4</title>
-<path fill="none" stroke="#404040" d="M334.96,-889.63C312.81,-824.28 271.15,-701.39 244.53,-622.87"/>
-<polygon fill="none" stroke="#404040" points="244.41,-622.51 238.69,-618.11 240.56,-611.14 246.27,-615.54 244.41,-622.51"/>
-<text text-anchor="middle" x="295.5" y="-715" font-family="Helvetica,sans-Serif" font-size="10.00"> +span</text>
+<path fill="none" stroke="#404040" d="M335.21,-900.76C313.01,-834.33 270.83,-708.11 244.13,-628.21"/>
+<polygon fill="none" stroke="#404040" points="244.11,-628.15 238.42,-623.73 240.31,-616.77 246,-621.19 244.11,-628.15"/>
+<text text-anchor="middle" x="295.5" y="-726" font-family="Helvetica,sans-Serif" font-size="10.00"> +span</text>
</g>
<!-- Node7 -->
<g id="node7" class="node">
<title>Node7</title>
<g id="a_node7"><a xlink:href="classtvm_1_1runtime_1_1ObjectRef.html" target="_top" xlink:title="Base class of all object reference.">
-<polygon fill="white" stroke="black" points="283,-1166.5 283,-1399.5 417,-1399.5 417,-1166.5 283,-1166.5"/>
-<text text-anchor="middle" x="350" y="-1387.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::ObjectRef</text>
-<polyline fill="none" stroke="black" points="283,-1380.5 417,-1380.5 "/>
-<text text-anchor="start" x="291" y="-1368.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_is_nullable</text>
-<polyline fill="none" stroke="black" points="283,-1361.5 417,-1361.5 "/>
+<polygon fill="white" stroke="black" points="283,-1177.5 283,-1410.5 417,-1410.5 417,-1177.5 283,-1177.5"/>
+<text text-anchor="middle" x="350" y="-1398.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::ObjectRef</text>
+<polyline fill="none" stroke="black" points="283,-1391.5 417,-1391.5 "/>
+<text text-anchor="start" x="291" y="-1379.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_is_nullable</text>
+<polyline fill="none" stroke="black" points="283,-1372.5 417,-1372.5 "/>
+<text text-anchor="start" x="291" y="-1360.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectRef()</text>
<text text-anchor="start" x="291" y="-1349.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectRef()</text>
-<text text-anchor="start" x="291" y="-1338.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectRef()</text>
-<text text-anchor="start" x="291" y="-1327.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ same_as()</text>
-<text text-anchor="start" x="291" y="-1316.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator==()</text>
-<text text-anchor="start" x="291" y="-1305.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator!=()</text>
-<text text-anchor="start" x="291" y="-1294.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator<()</text>
-<text text-anchor="start" x="291" y="-1283.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ defined()</text>
-<text text-anchor="start" x="291" y="-1272.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get()</text>
-<text text-anchor="start" x="291" y="-1261.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator->()</text>
-<text text-anchor="start" x="291" y="-1250.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ unique()</text>
-<text text-anchor="start" x="291" y="-1239.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ use_count()</text>
+<text text-anchor="start" x="291" y="-1338.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ same_as()</text>
+<text text-anchor="start" x="291" y="-1327.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator==()</text>
+<text text-anchor="start" x="291" y="-1316.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator!=()</text>
+<text text-anchor="start" x="291" y="-1305.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator<()</text>
+<text text-anchor="start" x="291" y="-1294.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ defined()</text>
+<text text-anchor="start" x="291" y="-1283.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get()</text>
+<text text-anchor="start" x="291" y="-1272.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator->()</text>
+<text text-anchor="start" x="291" y="-1261.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ unique()</text>
+<text text-anchor="start" x="291" y="-1250.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ use_count()</text>
+<text text-anchor="start" x="291" y="-1239.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ as()</text>
<text text-anchor="start" x="291" y="-1228.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ as()</text>
-<text text-anchor="start" x="291" y="-1217.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ as()</text>
-<text text-anchor="start" x="291" y="-1206.5" font-family="Helvetica,sans-Serif" font-size="10.00"># get_mutable()</text>
-<text text-anchor="start" x="291" y="-1195.5" font-family="Helvetica,sans-Serif" font-size="10.00"># DowncastNoCheck()</text>
-<text text-anchor="start" x="291" y="-1184.5" font-family="Helvetica,sans-Serif" font-size="10.00"># FFIClearAfterMove()</text>
-<text text-anchor="start" x="291" y="-1173.5" font-family="Helvetica,sans-Serif" font-size="10.00"># GetDataPtr()</text>
+<text text-anchor="start" x="291" y="-1217.5" font-family="Helvetica,sans-Serif" font-size="10.00"># get_mutable()</text>
+<text text-anchor="start" x="291" y="-1206.5" font-family="Helvetica,sans-Serif" font-size="10.00"># DowncastNoCheck()</text>
+<text text-anchor="start" x="291" y="-1195.5" font-family="Helvetica,sans-Serif" font-size="10.00"># FFIClearAfterMove()</text>
+<text text-anchor="start" x="291" y="-1184.5" font-family="Helvetica,sans-Serif" font-size="10.00"># GetDataPtr()</text>
</a>
</g>
</g>
<!-- Node7->Node6 -->
<g id="edge7" class="edge">
<title>Node7->Node6</title>
-<path fill="none" stroke="midnightblue" d="M350,-1156.11C350,-1094.57 350,-1024.41 350,-980.17"/>
-<polygon fill="none" stroke="midnightblue" points="346.5,-1156.31 350,-1166.31 353.5,-1156.31 346.5,-1156.31"/>
+<path fill="none" stroke="midnightblue" d="M350,-1167.11C350,-1105.57 350,-1035.41 350,-991.17"/>
+<polygon fill="none" stroke="midnightblue" points="346.5,-1167.31 350,-1177.31 353.5,-1167.31 346.5,-1167.31"/>
</g>
<!-- Node8 -->
<g id="node8" class="node">
<title>Node8</title>
<g id="a_node8"><a xlink:href="classtvm_1_1runtime_1_1ObjectPtr.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="280,-1447.5 280,-1625.5 420,-1625.5 420,-1447.5 280,-1447.5"/>
-<text text-anchor="start" x="288" y="-1613.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::ObjectPtr</text>
-<text text-anchor="middle" x="350" y="-1602.5" font-family="Helvetica,sans-Serif" font-size="10.00">< tvm::runtime::Object ></text>
-<polyline fill="none" stroke="black" points="280,-1595.5 420,-1595.5 "/>
-<text text-anchor="middle" x="350" y="-1583.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="280,-1576.5 420,-1576.5 "/>
+<polygon fill="white" stroke="black" points="280,-1458.5 280,-1636.5 420,-1636.5 420,-1458.5 280,-1458.5"/>
+<text text-anchor="start" x="288" y="-1624.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::ObjectPtr</text>
+<text text-anchor="middle" x="350" y="-1613.5" font-family="Helvetica,sans-Serif" font-size="10.00">< tvm::runtime::Object ></text>
+<polyline fill="none" stroke="black" points="280,-1606.5 420,-1606.5 "/>
+<text text-anchor="middle" x="350" y="-1594.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="280,-1587.5 420,-1587.5 "/>
+<text text-anchor="start" x="288" y="-1575.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="288" y="-1564.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="288" y="-1553.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="288" y="-1542.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="288" y="-1531.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
<text text-anchor="start" x="288" y="-1520.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
-<text text-anchor="start" x="288" y="-1509.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectPtr()</text>
-<text text-anchor="start" x="288" y="-1498.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ~ObjectPtr()</text>
-<text text-anchor="start" x="288" y="-1487.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ swap()</text>
-<text text-anchor="start" x="288" y="-1476.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get()</text>
-<text text-anchor="start" x="288" y="-1465.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator->()</text>
-<text text-anchor="start" x="288" y="-1454.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 11 more...</text>
+<text text-anchor="start" x="288" y="-1509.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ~ObjectPtr()</text>
+<text text-anchor="start" x="288" y="-1498.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ swap()</text>
+<text text-anchor="start" x="288" y="-1487.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get()</text>
+<text text-anchor="start" x="288" y="-1476.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator->()</text>
+<text text-anchor="start" x="288" y="-1465.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 11 more...</text>
</a>
</g>
</g>
<!-- Node8->Node7 -->
<g id="edge8" class="edge">
<title>Node8->Node7</title>
-<path fill="none" stroke="#404040" d="M350,-1447.18C350,-1435.84 350,-1424.05 350,-1412.23"/>
-<polygon fill="none" stroke="#404040" points="350,-1411.91 346,-1405.91 350,-1399.91 354,-1405.91 350,-1411.91"/>
-<text text-anchor="middle" x="369.5" y="-1421" font-family="Helvetica,sans-Serif" font-size="10.00"> #data_</text>
+<path fill="none" stroke="#404040" d="M350,-1458.18C350,-1446.84 350,-1435.05 350,-1423.23"/>
+<polygon fill="none" stroke="#404040" points="350,-1422.91 346,-1416.91 350,-1410.91 354,-1416.91 350,-1422.91"/>
+<text text-anchor="middle" x="369.5" y="-1432" font-family="Helvetica,sans-Serif" font-size="10.00"> #data_</text>
</g>
<!-- Node9 -->
<g id="node9" class="node">
<title>Node9</title>
<g id="a_node9"><a xlink:href="classtvm_1_1runtime_1_1DataType.html" target="_top" xlink:title="Runtime primitive data type.">
-<polygon fill="white" stroke="black" points="325,-405.5 325,-693.5 457,-693.5 457,-405.5 325,-405.5"/>
-<text text-anchor="middle" x="391" y="-681.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::DataType</text>
-<polyline fill="none" stroke="black" points="325,-674.5 457,-674.5 "/>
-<text text-anchor="middle" x="391" y="-662.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="325,-655.5 457,-655.5 "/>
+<polygon fill="white" stroke="black" points="325,-405.5 325,-704.5 457,-704.5 457,-405.5 325,-405.5"/>
+<text text-anchor="middle" x="391" y="-692.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::DataType</text>
+<polyline fill="none" stroke="black" points="325,-685.5 457,-685.5 "/>
+<text text-anchor="middle" x="391" y="-673.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="325,-666.5 457,-666.5 "/>
+<text text-anchor="start" x="333" y="-654.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ DataType()</text>
<text text-anchor="start" x="333" y="-643.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ DataType()</text>
<text text-anchor="start" x="333" y="-632.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ DataType()</text>
-<text text-anchor="start" x="333" y="-621.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ DataType()</text>
-<text text-anchor="start" x="333" y="-610.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ code()</text>
-<text text-anchor="start" x="333" y="-599.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ bits()</text>
-<text text-anchor="start" x="333" y="-588.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ bytes()</text>
-<text text-anchor="start" x="333" y="-577.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ lanes()</text>
-<text text-anchor="start" x="333" y="-566.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ vscale_factor()</text>
-<text text-anchor="start" x="333" y="-555.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get_lanes_or_vscale</text>
-<text text-anchor="start" x="333" y="-544.5" font-family="Helvetica,sans-Serif" font-size="10.00">_factor()</text>
-<text text-anchor="start" x="333" y="-533.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ is_scalar()</text>
-<text text-anchor="start" x="333" y="-522.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 24 more...</text>
-<text text-anchor="start" x="333" y="-511.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Int()</text>
-<text text-anchor="start" x="333" y="-500.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ UInt()</text>
-<text text-anchor="start" x="333" y="-489.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Float()</text>
-<text text-anchor="start" x="333" y="-478.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ BFloat()</text>
-<text text-anchor="start" x="333" y="-467.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat8E4M3()</text>
-<text text-anchor="start" x="333" y="-456.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat8E5M2()</text>
+<text text-anchor="start" x="333" y="-621.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ code()</text>
+<text text-anchor="start" x="333" y="-610.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ bits()</text>
+<text text-anchor="start" x="333" y="-599.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ bytes()</text>
+<text text-anchor="start" x="333" y="-588.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ lanes()</text>
+<text text-anchor="start" x="333" y="-577.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ vscale_factor()</text>
+<text text-anchor="start" x="333" y="-566.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get_lanes_or_vscale</text>
+<text text-anchor="start" x="333" y="-555.5" font-family="Helvetica,sans-Serif" font-size="10.00">_factor()</text>
+<text text-anchor="start" x="333" y="-544.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ is_scalar()</text>
+<text text-anchor="start" x="333" y="-533.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 26 more...</text>
+<text text-anchor="start" x="333" y="-522.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Int()</text>
+<text text-anchor="start" x="333" y="-511.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ UInt()</text>
+<text text-anchor="start" x="333" y="-500.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Float()</text>
+<text text-anchor="start" x="333" y="-489.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ BFloat()</text>
+<text text-anchor="start" x="333" y="-478.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat8E4M3()</text>
+<text text-anchor="start" x="333" y="-467.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat8E5M2()</text>
+<text text-anchor="start" x="333" y="-456.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ NVFloat4E2M1()</text>
<text text-anchor="start" x="333" y="-445.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Bool()</text>
<text text-anchor="start" x="333" y="-434.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Handle()</text>
<text text-anchor="start" x="333" y="-423.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Void()</text>
@@ -277,9 +278,9 @@
<!-- Node9->Node3 -->
<g id="edge9" class="edge">
<title>Node9->Node3</title>
-<path fill="none" stroke="#404040" d="M339.86,-405.47C335.33,-392.82 330.93,-380.52 326.87,-369.15"/>
-<polygon fill="none" stroke="#404040" points="326.8,-368.97 321.02,-364.67 322.76,-357.67 328.55,-361.98 326.8,-368.97"/>
-<text text-anchor="middle" x="353" y="-379" font-family="Helvetica,sans-Serif" font-size="10.00"> +dtype</text>
+<path fill="none" stroke="#404040" d="M338.99,-405.23C334.58,-392.61 330.3,-380.37 326.35,-369.08"/>
+<polygon fill="none" stroke="#404040" points="326.32,-369 320.57,-364.65 322.36,-357.67 328.12,-362.01 326.32,-369"/>
+<text text-anchor="middle" x="351" y="-379" font-family="Helvetica,sans-Serif" font-size="10.00"> +dtype</text>
</g>
</g>
</svg>
diff --git a/docs/reference/api/doxygen/classtvm_1_1tir_1_1AllocateConstNode.html b/docs/reference/api/doxygen/classtvm_1_1tir_1_1AllocateConstNode.html
index 2ed186d0f6..a6ab450e85 100644
--- a/docs/reference/api/doxygen/classtvm_1_1tir_1_1AllocateConstNode.html
+++ b/docs/reference/api/doxygen/classtvm_1_1tir_1_1AllocateConstNode.html
@@ -89,7 +89,7 @@ Inheritance diagram for tvm::tir::AllocateConstNode:</div>
<div class="dynheader">
Collaboration diagram for tvm::tir::AllocateConstNode:</div>
<div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1tir_1_1AllocateConstNode__coll__graph.svg" width="1551" height="2763"><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_1tir_1_1AllocateConstNode__coll__graph.svg" width="1551" height="2778"><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">
diff --git a/docs/reference/api/doxygen/classtvm_1_1tir_1_1AllocateConstNode__coll__graph.svg b/docs/reference/api/doxygen/classtvm_1_1tir_1_1AllocateConstNode__coll__graph.svg
index 194b9f9baa..60db22d3a4 100644
--- a/docs/reference/api/doxygen/classtvm_1_1tir_1_1AllocateConstNode__coll__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1tir_1_1AllocateConstNode__coll__graph.svg
@@ -4,11 +4,11 @@
<!-- Generated by graphviz version 2.43.0 (0)
-->
<!-- Title: tvm::tir::AllocateConstNode Pages: 1 -->
-<svg width="1163pt" height="2072pt"
- viewBox="0.00 0.00 1163.00 2072.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 2068)">
+<svg width="1163pt" height="2083pt"
+ viewBox="0.00 0.00 1163.00 2083.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 2079)">
<title>tvm::tir::AllocateConstNode</title>
-<polygon fill="white" stroke="transparent" points="-4,4 -4,-2068 1159,-2068 1159,4 -4,4"/>
+<polygon fill="white" stroke="transparent" points="-4,4 -4,-2079 1159,-2079 1159,4 -4,4"/>
<!-- Node1 -->
<g id="node1" class="node">
<title>Node1</title>
@@ -36,155 +36,156 @@
<g id="node2" class="node">
<title>Node2</title>
<g id="a_node2"><a xlink:href="classtvm_1_1tir_1_1StmtNode.html" target="_top" xlink:title="Base node of all statements.">
-<polygon fill="white" stroke="black" points="254,-796.5 254,-963.5 428,-963.5 428,-796.5 254,-796.5"/>
-<text text-anchor="middle" x="341" y="-951.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::tir::StmtNode</text>
-<polyline fill="none" stroke="black" points="254,-944.5 428,-944.5 "/>
-<text text-anchor="start" x="262" y="-932.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
-<text text-anchor="start" x="262" y="-921.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_sequal</text>
-<text text-anchor="start" x="262" y="-910.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
-<text text-anchor="start" x="262" y="-899.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_shash</text>
-<text text-anchor="start" x="262" y="-888.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
-<text text-anchor="start" x="262" y="-877.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots</text>
-<polyline fill="none" stroke="black" points="254,-870.5 428,-870.5 "/>
+<polygon fill="white" stroke="black" points="254,-807.5 254,-974.5 428,-974.5 428,-807.5 254,-807.5"/>
+<text text-anchor="middle" x="341" y="-962.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::tir::StmtNode</text>
+<polyline fill="none" stroke="black" points="254,-955.5 428,-955.5 "/>
+<text text-anchor="start" x="262" y="-943.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
+<text text-anchor="start" x="262" y="-932.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_sequal</text>
+<text text-anchor="start" x="262" y="-921.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
+<text text-anchor="start" x="262" y="-910.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_shash</text>
+<text text-anchor="start" x="262" y="-899.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
+<text text-anchor="start" x="262" y="-888.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots</text>
+<polyline fill="none" stroke="black" points="254,-881.5 428,-881.5 "/>
+<text text-anchor="start" x="262" y="-869.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ StmtNode()</text>
<text text-anchor="start" x="262" y="-858.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ StmtNode()</text>
-<text text-anchor="start" x="262" y="-847.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ StmtNode()</text>
-<text text-anchor="start" x="262" y="-836.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_OBJECT_ENABLE_SCRIPT</text>
-<text text-anchor="start" x="262" y="-825.5" font-family="Helvetica,sans-Serif" font-size="10.00">_PRINTER()</text>
-<text text-anchor="start" x="262" y="-814.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DECLARE_BASE_OBJECT</text>
-<text text-anchor="start" x="262" y="-803.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO()</text>
+<text text-anchor="start" x="262" y="-847.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_OBJECT_ENABLE_SCRIPT</text>
+<text text-anchor="start" x="262" y="-836.5" font-family="Helvetica,sans-Serif" font-size="10.00">_PRINTER()</text>
+<text text-anchor="start" x="262" y="-825.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DECLARE_BASE_OBJECT</text>
+<text text-anchor="start" x="262" y="-814.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO()</text>
</a>
</g>
</g>
<!-- Node2->Node1 -->
<g id="edge1" class="edge">
<title>Node2->Node1</title>
-<path fill="none" stroke="midnightblue" d="M328.05,-786.28C313.22,-642.27 306.29,-363.04 442,-186 477.13,-140.17 537.25,-114.82 587.76,-100.98"/>
-<polygon fill="none" stroke="midnightblue" points="324.59,-786.83 329.13,-796.41 331.55,-786.09 324.59,-786.83"/>
+<path fill="none" stroke="midnightblue" d="M327.71,-796.99C312.18,-651.07 304.01,-366.42 442,-186 477.08,-140.13 537.2,-114.78 587.72,-100.95"/>
+<polygon fill="none" stroke="midnightblue" points="324.27,-797.7 328.84,-807.25 331.23,-796.93 324.27,-797.7"/>
</g>
<!-- Node3 -->
<g id="node3" class="node">
<title>Node3</title>
<g id="a_node3"><a xlink:href="classtvm_1_1runtime_1_1Object.html" target="_top" xlink:title="base class of all object containers.">
-<polygon fill="white" stroke="black" points="0,-1179.5 0,-1566.5 184,-1566.5 184,-1179.5 0,-1179.5"/>
-<text text-anchor="middle" x="92" y="-1554.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::Object</text>
-<polyline fill="none" stroke="black" points="0,-1547.5 184,-1547.5 "/>
-<text text-anchor="start" x="8" y="-1535.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
-<text text-anchor="start" x="8" y="-1524.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_final</text>
-<text text-anchor="start" x="8" y="-1513.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots</text>
-<text text-anchor="start" x="8" y="-1502.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots_can</text>
-<text text-anchor="start" x="8" y="-1491.5" font-family="Helvetica,sans-Serif" font-size="10.00">_overflow</text>
-<text text-anchor="start" x="8" y="-1480.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_visit</text>
-<text text-anchor="start" x="8" y="-1469.5" font-family="Helvetica,sans-Serif" font-size="10.00">_attrs</text>
-<text text-anchor="start" x="8" y="-1458.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_sequal</text>
-<text text-anchor="start" x="8" y="-1447.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
-<text text-anchor="start" x="8" y="-1436.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_shash</text>
-<text text-anchor="start" x="8" y="-1425.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
-<text text-anchor="start" x="8" y="-1414.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_index</text>
-<text text-anchor="start" x="8" y="-1403.5" font-family="Helvetica,sans-Serif" font-size="10.00"># type_index_</text>
-<text text-anchor="start" x="8" y="-1392.5" font-family="Helvetica,sans-Serif" font-size="10.00"># ref_counter_</text>
-<polyline fill="none" stroke="black" points="0,-1385.5 184,-1385.5 "/>
-<text text-anchor="start" x="8" y="-1373.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ type_index()</text>
-<text text-anchor="start" x="8" y="-1362.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ GetTypeKey()</text>
-<text text-anchor="start" x="8" y="-1351.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ GetTypeKeyHash()</text>
-<text text-anchor="start" x="8" y="-1340.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ IsInstance()</text>
-<text text-anchor="start" x="8" y="-1329.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ unique()</text>
+<polygon fill="white" stroke="black" points="0,-1190.5 0,-1577.5 184,-1577.5 184,-1190.5 0,-1190.5"/>
+<text text-anchor="middle" x="92" y="-1565.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::Object</text>
+<polyline fill="none" stroke="black" points="0,-1558.5 184,-1558.5 "/>
+<text text-anchor="start" x="8" y="-1546.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_key</text>
+<text text-anchor="start" x="8" y="-1535.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_final</text>
+<text text-anchor="start" x="8" y="-1524.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots</text>
+<text text-anchor="start" x="8" y="-1513.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_child_slots_can</text>
+<text text-anchor="start" x="8" y="-1502.5" font-family="Helvetica,sans-Serif" font-size="10.00">_overflow</text>
+<text text-anchor="start" x="8" y="-1491.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_visit</text>
+<text text-anchor="start" x="8" y="-1480.5" font-family="Helvetica,sans-Serif" font-size="10.00">_attrs</text>
+<text text-anchor="start" x="8" y="-1469.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_sequal</text>
+<text text-anchor="start" x="8" y="-1458.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
+<text text-anchor="start" x="8" y="-1447.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_has_method_shash</text>
+<text text-anchor="start" x="8" y="-1436.5" font-family="Helvetica,sans-Serif" font-size="10.00">_reduce</text>
+<text text-anchor="start" x="8" y="-1425.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_index</text>
+<text text-anchor="start" x="8" y="-1414.5" font-family="Helvetica,sans-Serif" font-size="10.00"># type_index_</text>
+<text text-anchor="start" x="8" y="-1403.5" font-family="Helvetica,sans-Serif" font-size="10.00"># ref_counter_</text>
+<polyline fill="none" stroke="black" points="0,-1396.5 184,-1396.5 "/>
+<text text-anchor="start" x="8" y="-1384.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ type_index()</text>
+<text text-anchor="start" x="8" y="-1373.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ GetTypeKey()</text>
+<text text-anchor="start" x="8" y="-1362.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ GetTypeKeyHash()</text>
+<text text-anchor="start" x="8" y="-1351.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ IsInstance()</text>
+<text text-anchor="start" x="8" y="-1340.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ unique()</text>
+<text text-anchor="start" x="8" y="-1329.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Object()</text>
<text text-anchor="start" x="8" y="-1318.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Object()</text>
<text text-anchor="start" x="8" y="-1307.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Object()</text>
-<text text-anchor="start" x="8" y="-1296.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Object()</text>
+<text text-anchor="start" x="8" y="-1296.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
<text text-anchor="start" x="8" y="-1285.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
-<text text-anchor="start" x="8" y="-1274.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
-<text text-anchor="start" x="8" y="-1263.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeIndex2Key()</text>
-<text text-anchor="start" x="8" y="-1252.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeIndex2KeyHash()</text>
-<text text-anchor="start" x="8" y="-1241.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeKey2Index()</text>
-<text text-anchor="start" x="8" y="-1230.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _GetOrAllocRuntimeTypeIndex()</text>
-<text text-anchor="start" x="8" y="-1219.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RuntimeTypeIndex()</text>
-<text text-anchor="start" x="8" y="-1208.5" font-family="Helvetica,sans-Serif" font-size="10.00"># IncRef()</text>
-<text text-anchor="start" x="8" y="-1197.5" font-family="Helvetica,sans-Serif" font-size="10.00"># DecRef()</text>
-<text text-anchor="start" x="8" y="-1186.5" font-family="Helvetica,sans-Serif" font-size="10.00"># GetOrAllocRuntimeTypeIndex()</text>
+<text text-anchor="start" x="8" y="-1274.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeIndex2Key()</text>
+<text text-anchor="start" x="8" y="-1263.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeIndex2KeyHash()</text>
+<text text-anchor="start" x="8" y="-1252.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ TypeKey2Index()</text>
+<text text-anchor="start" x="8" y="-1241.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _GetOrAllocRuntimeTypeIndex()</text>
+<text text-anchor="start" x="8" y="-1230.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ RuntimeTypeIndex()</text>
+<text text-anchor="start" x="8" y="-1219.5" font-family="Helvetica,sans-Serif" font-size="10.00"># IncRef()</text>
+<text text-anchor="start" x="8" y="-1208.5" font-family="Helvetica,sans-Serif" font-size="10.00"># DecRef()</text>
+<text text-anchor="start" x="8" y="-1197.5" font-family="Helvetica,sans-Serif" font-size="10.00"># GetOrAllocRuntimeTypeIndex()</text>
</a>
</g>
</g>
<!-- Node3->Node2 -->
<g id="edge2" class="edge">
<title>Node3->Node2</title>
-<path fill="none" stroke="midnightblue" d="M188.66,-1181.4C226.93,-1105.94 268.89,-1023.19 299.07,-963.68"/>
-<polygon fill="none" stroke="midnightblue" points="185.41,-1180.06 184.01,-1190.56 191.66,-1183.23 185.41,-1180.06"/>
+<path fill="none" stroke="midnightblue" d="M188.66,-1192.4C226.93,-1116.94 268.89,-1034.19 299.07,-974.68"/>
+<polygon fill="none" stroke="midnightblue" points="185.41,-1191.06 184.01,-1201.56 191.66,-1194.23 185.41,-1191.06"/>
</g>
<!-- Node3->Node3 -->
<g id="edge3" class="edge">
<title>Node3->Node3</title>
-<path fill="none" stroke="#404040" d="M184.28,-1406.92C195.02,-1400.66 202,-1389.36 202,-1373 202,-1362.01 198.85,-1353.3 193.52,-1346.87"/>
-<polygon fill="none" stroke="#404040" points="193.46,-1346.81 186.29,-1346 184.28,-1339.08 191.45,-1339.89 193.46,-1346.81"/>
-<text text-anchor="middle" x="228" y="-1370.5" font-family="Helvetica,sans-Serif" font-size="10.00"> #deleter_</text>
+<path fill="none" stroke="#404040" d="M184.28,-1417.92C195.02,-1411.66 202,-1400.36 202,-1384 202,-1373.01 198.85,-1364.3 193.52,-1357.87"/>
+<polygon fill="none" stroke="#404040" points="193.46,-1357.81 186.29,-1357 184.28,-1350.08 191.45,-1350.89 193.46,-1357.81"/>
+<text text-anchor="middle" x="228" y="-1381.5" font-family="Helvetica,sans-Serif" font-size="10.00"> #deleter_</text>
</g>
<!-- Node4 -->
<g id="node4" class="node">
<title>Node4</title>
<g id="a_node4"><a xlink:href="classtvm_1_1Span.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="272,-1328 272,-1418 428,-1418 428,-1328 272,-1328"/>
-<text text-anchor="middle" x="350" y="-1406" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::Span</text>
-<polyline fill="none" stroke="black" points="272,-1399 428,-1399 "/>
-<text text-anchor="middle" x="350" y="-1387" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="272,-1380 428,-1380 "/>
-<text text-anchor="start" x="280" y="-1368" font-family="Helvetica,sans-Serif" font-size="10.00">+ Span()</text>
-<text text-anchor="start" x="280" y="-1357" font-family="Helvetica,sans-Serif" font-size="10.00">+ Merge()</text>
-<text text-anchor="start" x="280" y="-1346" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="280" y="-1335" font-family="Helvetica,sans-Serif" font-size="10.00">_METHODS()</text>
+<polygon fill="white" stroke="black" points="272,-1339 272,-1429 428,-1429 428,-1339 272,-1339"/>
+<text text-anchor="middle" x="350" y="-1417" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::Span</text>
+<polyline fill="none" stroke="black" points="272,-1410 428,-1410 "/>
+<text text-anchor="middle" x="350" y="-1398" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="272,-1391 428,-1391 "/>
+<text text-anchor="start" x="280" y="-1379" font-family="Helvetica,sans-Serif" font-size="10.00">+ Span()</text>
+<text text-anchor="start" x="280" y="-1368" font-family="Helvetica,sans-Serif" font-size="10.00">+ Merge()</text>
+<text text-anchor="start" x="280" y="-1357" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="280" y="-1346" font-family="Helvetica,sans-Serif" font-size="10.00">_METHODS()</text>
</a>
</g>
</g>
<!-- Node4->Node2 -->
<g id="edge4" class="edge">
<title>Node4->Node2</title>
-<path fill="none" stroke="#404040" d="M346.5,-1327.99C343.29,-1285.33 338.78,-1218.78 337,-1161 334.55,-1081.48 335.43,-1061.54 337,-982 337.04,-979.95 337.09,-977.88 337.14,-975.78"/>
-<polygon fill="none" stroke="#404040" points="337.14,-975.67 333.3,-969.56 337.46,-963.67 341.3,-969.78 337.14,-975.67"/>
-<text text-anchor="middle" x="354.5" y="-1069" font-family="Helvetica,sans-Serif" font-size="10.00"> +span</text>
+<path fill="none" stroke="#404040" d="M346.5,-1338.99C343.29,-1296.33 338.78,-1229.78 337,-1172 334.55,-1092.48 335.43,-1072.54 337,-993 337.04,-990.95 337.09,-988.88 337.14,-986.78"/>
+<polygon fill="none" stroke="#404040" points="337.14,-986.67 333.3,-980.56 337.46,-974.67 341.3,-980.78 337.14,-986.67"/>
+<text text-anchor="middle" x="354.5" y="-1080" font-family="Helvetica,sans-Serif" font-size="10.00"> +span</text>
</g>
<!-- Node5 -->
<g id="node5" class="node">
<title>Node5</title>
<g id="a_node5"><a xlink:href="classtvm_1_1runtime_1_1ObjectRef.html" target="_top" xlink:title="Base class of all object reference.">
-<polygon fill="white" stroke="black" points="601,-1604.5 601,-1837.5 735,-1837.5 735,-1604.5 601,-1604.5"/>
-<text text-anchor="middle" x="668" y="-1825.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::ObjectRef</text>
-<polyline fill="none" stroke="black" points="601,-1818.5 735,-1818.5 "/>
-<text text-anchor="start" x="609" y="-1806.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_is_nullable</text>
-<polyline fill="none" stroke="black" points="601,-1799.5 735,-1799.5 "/>
+<polygon fill="white" stroke="black" points="601,-1615.5 601,-1848.5 735,-1848.5 735,-1615.5 601,-1615.5"/>
+<text text-anchor="middle" x="668" y="-1836.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::ObjectRef</text>
+<polyline fill="none" stroke="black" points="601,-1829.5 735,-1829.5 "/>
+<text text-anchor="start" x="609" y="-1817.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_is_nullable</text>
+<polyline fill="none" stroke="black" points="601,-1810.5 735,-1810.5 "/>
+<text text-anchor="start" x="609" y="-1798.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectRef()</text>
<text text-anchor="start" x="609" y="-1787.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectRef()</text>
-<text text-anchor="start" x="609" y="-1776.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ ObjectRef()</text>
-<text text-anchor="start" x="609" y="-1765.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ same_as()</text>
-<text text-anchor="start" x="609" y="-1754.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator==()</text>
-<text text-anchor="start" x="609" y="-1743.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator!=()</text>
-<text text-anchor="start" x="609" y="-1732.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator<()</text>
-<text text-anchor="start" x="609" y="-1721.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ defined()</text>
-<text text-anchor="start" x="609" y="-1710.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get()</text>
-<text text-anchor="start" x="609" y="-1699.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator->()</text>
-<text text-anchor="start" x="609" y="-1688.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ unique()</text>
-<text text-anchor="start" x="609" y="-1677.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ use_count()</text>
+<text text-anchor="start" x="609" y="-1776.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ same_as()</text>
+<text text-anchor="start" x="609" y="-1765.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator==()</text>
+<text text-anchor="start" x="609" y="-1754.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator!=()</text>
+<text text-anchor="start" x="609" y="-1743.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator<()</text>
+<text text-anchor="start" x="609" y="-1732.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ defined()</text>
+<text text-anchor="start" x="609" y="-1721.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ get()</text>
+<text text-anchor="start" x="609" y="-1710.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator->()</text>
+<text text-anchor="start" x="609" y="-1699.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ unique()</text>
+<text text-anchor="start" x="609" y="-1688.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ use_count()</text>
+<text text-anchor="start" x="609" y="-1677.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ as()</text>
<text text-anchor="start" x="609" y="-1666.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ as()</text>
-<text text-anchor="start" x="609" y="-1655.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ as()</text>
-<text text-anchor="start" x="609" y="-1644.5" font-family="Helvetica,sans-Serif" font-size="10.00"># get_mutable()</text>
-<text text-anchor="start" x="609" y="-1633.5" font-family="Helvetica,sans-Serif" font-size="10.00"># DowncastNoCheck()</text>
-<text text-anchor="start" x="609" y="-1622.5" font-family="Helvetica,sans-Serif" font-size="10.00"># FFIClearAfterMove()</text>
-<text text-anchor="start" x="609" y="-1611.5" font-family="Helvetica,sans-Serif" font-size="10.00"># GetDataPtr()</text>
+<text text-anchor="start" x="609" y="-1655.5" font-family="Helvetica,sans-Serif" font-size="10.00"># get_mutable()</text>
+<text text-anchor="start" x="609" y="-1644.5" font-family="Helvetica,sans-Serif" font-size="10.00"># DowncastNoCheck()</text>
+<text text-anchor="start" x="609" y="-1633.5" font-family="Helvetica,sans-Serif" font-size="10.00"># FFIClearAfterMove()</text>
+<text text-anchor="start" x="609" y="-1622.5" font-family="Helvetica,sans-Serif" font-size="10.00"># GetDataPtr()</text>
</a>
</g>
</g>
<!-- Node5->Node4 -->
<g id="edge5" class="edge">
<title>Node5->Node4</title>
-<path fill="none" stroke="midnightblue" d="M591.6,-1689.47C543.38,-1666.96 482.74,-1632.21 442,-1586 398.75,-1536.94 373.28,-1464.41 360.48,-1418.18"/>
-<polygon fill="none" stroke="midnightblue" points="590.21,-1692.69 600.76,-1693.67 593.13,-1686.32 590.21,-1692.69"/>
+<path fill="none" stroke="midnightblue" d="M591.6,-1700.47C543.38,-1677.96 482.74,-1643.21 442,-1597 398.75,-1547.94 373.28,-1475.41 360.48,-1429.18"/>
+<polygon fill="none" stroke="midnightblue" points="590.21,-1703.69 600.76,-1704.67 593.13,-1697.32 590.21,-1703.69"/>
</g>
<!-- Node7 -->
<g id="node7" class="node">
<title>Node7</title>
<g id="a_node7"><a xlink:href="classtvm_1_1runtime_1_1Optional.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="381,-982.5 381,-1160.5 531,-1160.5 531,-982.5 381,-982.5"/>
-<text text-anchor="start" x="389" y="-1148.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::Optional</text>
-<text text-anchor="middle" x="456" y="-1137.5" font-family="Helvetica,sans-Serif" font-size="10.00">< tvm::runtime::NDArray ></text>
-<polyline fill="none" stroke="black" points="381,-1130.5 531,-1130.5 "/>
-<text text-anchor="start" x="389" y="-1118.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_is_nullable</text>
-<polyline fill="none" stroke="black" points="381,-1111.5 531,-1111.5 "/>
+<polygon fill="white" stroke="black" points="381,-993.5 381,-1171.5 531,-1171.5 531,-993.5 381,-993.5"/>
+<text text-anchor="start" x="389" y="-1159.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::Optional</text>
+<text text-anchor="middle" x="456" y="-1148.5" font-family="Helvetica,sans-Serif" font-size="10.00">< tvm::runtime::NDArray ></text>
+<polyline fill="none" stroke="black" points="381,-1141.5 531,-1141.5 "/>
+<text text-anchor="start" x="389" y="-1129.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_is_nullable</text>
+<polyline fill="none" stroke="black" points="381,-1122.5 531,-1122.5 "/>
+<text text-anchor="start" x="389" y="-1110.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Optional()</text>
<text text-anchor="start" x="389" y="-1099.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Optional()</text>
<text text-anchor="start" x="389" y="-1088.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Optional()</text>
<text text-anchor="start" x="389" y="-1077.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Optional()</text>
@@ -192,49 +193,49 @@
<text text-anchor="start" x="389" y="-1055.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Optional()</text>
<text text-anchor="start" x="389" y="-1044.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Optional()</text>
<text text-anchor="start" x="389" y="-1033.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Optional()</text>
-<text text-anchor="start" x="389" y="-1022.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Optional()</text>
+<text text-anchor="start" x="389" y="-1022.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
<text text-anchor="start" x="389" y="-1011.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
-<text text-anchor="start" x="389" y="-1000.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
-<text text-anchor="start" x="389" y="-989.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 15 more...</text>
+<text text-anchor="start" x="389" y="-1000.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 15 more...</text>
</a>
</g>
</g>
<!-- Node5->Node7 -->
<g id="edge8" class="edge">
<title>Node5->Node7</title>
-<path fill="none" stroke="midnightblue" d="M592.08,-1681.34C549.55,-1655.28 500.15,-1616.59 475,-1567 440.17,-1498.33 444.8,-1283.38 450.71,-1160.67"/>
-<polygon fill="none" stroke="midnightblue" points="590.38,-1684.41 600.76,-1686.55 593.98,-1678.41 590.38,-1684.41"/>
+<path fill="none" stroke="midnightblue" d="M592.08,-1692.34C549.55,-1666.28 500.15,-1627.59 475,-1578 440.17,-1509.33 444.8,-1294.38 450.71,-1171.67"/>
+<polygon fill="none" stroke="midnightblue" points="590.38,-1695.41 600.76,-1697.55 593.98,-1689.41 590.38,-1695.41"/>
</g>
<!-- Node10 -->
<g id="node10" class="node">
<title>Node10</title>
<g id="a_node10"><a xlink:href="classtvm_1_1BaseExpr.html" target="_top" xlink:title="Managed reference to BaseExprNode.">
-<polygon fill="white" stroke="black" points="484,-1339 484,-1407 640,-1407 640,-1339 484,-1339"/>
-<text text-anchor="middle" x="562" y="-1395" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::BaseExpr</text>
-<polyline fill="none" stroke="black" points="484,-1388 640,-1388 "/>
-<text text-anchor="middle" x="562" y="-1376" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="484,-1369 640,-1369 "/>
-<text text-anchor="start" x="492" y="-1357" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="492" y="-1346" font-family="Helvetica,sans-Serif" font-size="10.00">_METHODS()</text>
+<polygon fill="white" stroke="black" points="484,-1350 484,-1418 640,-1418 640,-1350 484,-1350"/>
+<text text-anchor="middle" x="562" y="-1406" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::BaseExpr</text>
+<polyline fill="none" stroke="black" points="484,-1399 640,-1399 "/>
+<text text-anchor="middle" x="562" y="-1387" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="484,-1380 640,-1380 "/>
+<text text-anchor="start" x="492" y="-1368" font-family="Helvetica,sans-Serif" font-size="10.00">+ TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="492" y="-1357" font-family="Helvetica,sans-Serif" font-size="10.00">_METHODS()</text>
</a>
</g>
</g>
<!-- Node5->Node10 -->
<g id="edge12" class="edge">
<title>Node5->Node10</title>
-<path fill="none" stroke="midnightblue" d="M629.55,-1594.5C609.01,-1527.46 585.32,-1450.12 572.16,-1407.16"/>
-<polygon fill="none" stroke="midnightblue" points="626.28,-1595.77 632.56,-1604.31 632.97,-1593.72 626.28,-1595.77"/>
+<path fill="none" stroke="midnightblue" d="M629.55,-1605.5C609.01,-1538.46 585.32,-1461.12 572.16,-1418.16"/>
+<polygon fill="none" stroke="midnightblue" points="626.28,-1606.77 632.56,-1615.31 632.97,-1604.72 626.28,-1606.77"/>
</g>
<!-- Node11 -->
<g id="node11" class="node">
<title>Node11</title>
<g id="a_node11"><a xlink:href="classtvm_1_1runtime_1_1Array.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="570.5,-522.5 570.5,-777.5 691.5,-777.5 691.5,-522.5 570.5,-522.5"/>
-<text text-anchor="start" x="578.5" y="-765.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::Array</text>
-<text text-anchor="middle" x="631" y="-754.5" font-family="Helvetica,sans-Serif" font-size="10.00">< tvm::PrimExpr ></text>
-<polyline fill="none" stroke="black" points="570.5,-747.5 691.5,-747.5 "/>
-<text text-anchor="middle" x="631" y="-735.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
-<polyline fill="none" stroke="black" points="570.5,-728.5 691.5,-728.5 "/>
+<polygon fill="white" stroke="black" points="570.5,-533.5 570.5,-788.5 691.5,-788.5 691.5,-533.5 570.5,-533.5"/>
+<text text-anchor="start" x="578.5" y="-776.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::Array</text>
+<text text-anchor="middle" x="631" y="-765.5" font-family="Helvetica,sans-Serif" font-size="10.00">< tvm::PrimExpr ></text>
+<polyline fill="none" stroke="black" points="570.5,-758.5 691.5,-758.5 "/>
+<text text-anchor="middle" x="631" y="-746.5" font-family="Helvetica,sans-Serif" font-size="10.00"> </text>
+<polyline fill="none" stroke="black" points="570.5,-739.5 691.5,-739.5 "/>
+<text text-anchor="start" x="578.5" y="-727.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Array()</text>
<text text-anchor="start" x="578.5" y="-716.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Array()</text>
<text text-anchor="start" x="578.5" y="-705.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Array()</text>
<text text-anchor="start" x="578.5" y="-694.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Array()</text>
@@ -242,36 +243,36 @@
<text text-anchor="start" x="578.5" y="-672.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Array()</text>
<text text-anchor="start" x="578.5" y="-661.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Array()</text>
<text text-anchor="start" x="578.5" y="-650.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Array()</text>
-<text text-anchor="start" x="578.5" y="-639.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Array()</text>
+<text text-anchor="start" x="578.5" y="-639.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
<text text-anchor="start" x="578.5" y="-628.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
-<text text-anchor="start" x="578.5" y="-617.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
-<text text-anchor="start" x="578.5" y="-606.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 25 more...</text>
+<text text-anchor="start" x="578.5" y="-617.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 25 more...</text>
+<text text-anchor="start" x="578.5" y="-606.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ CalcCapacityImpl()</text>
<text text-anchor="start" x="578.5" y="-595.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ CalcCapacityImpl()</text>
<text text-anchor="start" x="578.5" y="-584.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ CalcCapacityImpl()</text>
-<text text-anchor="start" x="578.5" y="-573.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ CalcCapacityImpl()</text>
+<text text-anchor="start" x="578.5" y="-573.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ AgregateImpl()</text>
<text text-anchor="start" x="578.5" y="-562.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ AgregateImpl()</text>
<text text-anchor="start" x="578.5" y="-551.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ AgregateImpl()</text>
-<text text-anchor="start" x="578.5" y="-540.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ AgregateImpl()</text>
-<text text-anchor="start" x="578.5" y="-529.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Agregate()</text>
+<text text-anchor="start" x="578.5" y="-540.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Agregate()</text>
</a>
</g>
</g>
<!-- Node5->Node11 -->
<g id="edge14" class="edge">
<title>Node5->Node11</title>
-<path fill="none" stroke="midnightblue" d="M669.51,-1594.03C670.71,-1416.01 669.55,-1080.74 649,-796 648.57,-790.05 648.07,-783.98 647.51,-777.85"/>
-<polygon fill="none" stroke="midnightblue" points="666.01,-1594.2 669.44,-1604.22 673.01,-1594.25 666.01,-1594.2"/>
+<path fill="none" stroke="midnightblue" d="M669.51,-1605.03C670.71,-1427.01 669.55,-1091.74 649,-807 648.57,-801.05 648.07,-794.98 647.51,-788.85"/>
+<polygon fill="none" stroke="midnightblue" points="666.01,-1605.2 669.44,-1615.22 673.01,-1605.25 666.01,-1605.2"/>
</g>
<!-- Node12 -->
<g id="node12" class="node">
<title>Node12</title>
<g id="a_node12"><a xlink:href="classtvm_1_1runtime_1_1Optional.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="683,-982.5 683,-1160.5 811,-1160.5 811,-982.5 683,-982.5"/>
-<text text-anchor="start" x="691" y="-1148.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::Optional</text>
-<text text-anchor="middle" x="747" y="-1137.5" font-family="Helvetica,sans-Serif" font-size="10.00">< tvm::Integer ></text>
-<polyline fill="none" stroke="black" points="683,-1130.5 811,-1130.5 "/>
-<text text-anchor="start" x="691" y="-1118.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_is_nullable</text>
-<polyline fill="none" stroke="black" points="683,-1111.5 811,-1111.5 "/>
+<polygon fill="white" stroke="black" points="683,-993.5 683,-1171.5 811,-1171.5 811,-993.5 683,-993.5"/>
+<text text-anchor="start" x="691" y="-1159.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::Optional</text>
+<text text-anchor="middle" x="747" y="-1148.5" font-family="Helvetica,sans-Serif" font-size="10.00">< tvm::Integer ></text>
+<polyline fill="none" stroke="black" points="683,-1141.5 811,-1141.5 "/>
+<text text-anchor="start" x="691" y="-1129.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ _type_is_nullable</text>
+<polyline fill="none" stroke="black" points="683,-1122.5 811,-1122.5 "/>
+<text text-anchor="start" x="691" y="-1110.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Optional()</text>
<text text-anchor="start" x="691" y="-1099.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Optional()</text>
<text text-anchor="start" x="691" y="-1088.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Optional()</text>
<text text-anchor="start" x="691" y="-1077.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Optional()</text>
@@ -279,219 +280,219 @@
<text text-anchor="start" x="691" y="-1055.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Optional()</text>
<text text-anchor="start" x="691" y="-1044.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Optional()</text>
<text text-anchor="start" x="691" y="-1033.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Optional()</text>
-<text text-anchor="start" x="691" y="-1022.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ Optional()</text>
+<text text-anchor="start" x="691" y="-1022.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
<text text-anchor="start" x="691" y="-1011.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
-<text text-anchor="start" x="691" y="-1000.5" font-family="Helvetica,sans-Serif" font-size="10.00">+ operator=()</text>
-<text text-anchor="start" x="691" y="-989.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 15 more...</text>
+<text text-anchor="start" x="691" y="-1000.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 15 more...</text>
</a>
</g>
</g>
<!-- Node5->Node12 -->
<g id="edge16" class="edge">
<title>Node5->Node12</title>
-<path fill="none" stroke="midnightblue" d="M683.37,-1594.03C698.92,-1466.55 722.57,-1272.74 736.23,-1160.77"/>
-<polygon fill="none" stroke="midnightblue" points="679.86,-1593.89 682.12,-1604.24 686.81,-1594.74 679.86,-1593.89"/>
+<path fill="none" stroke="midnightblue" d="M683.37,-1605.03C698.92,-1477.55 722.57,-1283.74 736.23,-1171.77"/>
+<polygon fill="none" stroke="midnightblue" points="679.86,-1604.89 682.12,-1615.24 686.81,-1605.74 679.86,-1604.89"/>
</g>
<!-- Node13 -->
<g id="node13" class="node">
<title>Node13</title>
<g id="a_node13"><a xlink:href="classtvm_1_1runtime_1_1Map.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="black" points="823.5,-555.5 823.5,-744.5 972.5,-744.5 972.5,-555.5 823.5,-555.5"/>
-<text text-anchor="start" x="831.5" y="-732.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::runtime::Map<</text>
-<text text-anchor="start" x="831.5" y="-721.5" font-family="Helvetica,sans-Serif" font-size="10.00"> tvm::runtime::String,</text>
... 44172 lines suppressed ...