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 2026/10/04 12:03:19 UTC
(tvm-site) branch asf-site updated: deploying docs (apache/tvm@2eb788be110d83fbb04da848161e7feb62be8574)
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 c43b881469d deploying docs (apache/tvm@2eb788be110d83fbb04da848161e7feb62be8574)
c43b881469d is described below
commit c43b881469d35087ad31597446c9192dfcbbf01d
Author: tvm-bot <95...@users.noreply.github.com>
AuthorDate: Sun Oct 4 12:03:09 2026 +0000
deploying docs (apache/tvm@2eb788be110d83fbb04da848161e7feb62be8574)
---
.../import_model.zip | Bin 35138 -> 35138 bytes
.../dlight_gpu_scheduling.zip | Bin 26311 -> 26311 bytes
.../11c11e53c7dace51a8be968ee169ed0d/ir_module.zip | Bin 23756 -> 23756 bytes
.../tir_transformation.zip | Bin 15990 -> 15990 bytes
.../meta_schedule.zip | Bin 24239 -> 24239 bytes
.../mix_python_and_tvm_with_pymodule.zip | Bin 38278 -> 38278 bytes
.../relax_creation.zip | Bin 22298 -> 22298 bytes
.../relax_transformation.zip | Bin 11480 -> 11480 bytes
.../optimize_llm.zip | Bin 53997 -> 53997 bytes
.../bring_your_own_codegen.zip | Bin 36295 -> 36295 bytes
.../e2e_opt_model.zip | Bin 14479 -> 14479 bytes
.../quick_start.zip | Bin 16252 -> 16252 bytes
.../export_and_load_executable.zip | Bin 31408 -> 31408 bytes
.../tir_creation.zip | Bin 24476 -> 24476 bytes
.../cross_compilation_and_rpc.zip | Bin 62286 -> 62286 bytes
.../customize_opt.zip | Bin 20522 -> 20522 bytes
.../relax/tutorials/sg_execution_times.rst | 6 +-
.../tensor_ir/tutorials/sg_execution_times.rst | 10 +-
.../tensor_ir/tutorials/tir_transformation.rst | 6 +-
docs/_sources/get_started/tutorials/ir_module.rst | 10 +-
.../_sources/get_started/tutorials/quick_start.rst | 4 +-
.../get_started/tutorials/sg_execution_times.rst | 6 +-
.../how_to/tutorials/cross_compilation_and_rpc.rst | 6 +-
docs/_sources/how_to/tutorials/e2e_opt_model.rst | 2 +-
.../how_to/tutorials/sg_execution_times.rst | 16 +-
docs/_sources/sg_execution_times.rst | 36 +-
docs/commit_hash | 2 +-
.../relax/tutorials/sg_execution_times.html | 6 +-
.../tensor_ir/tutorials/sg_execution_times.html | 10 +-
.../tensor_ir/tutorials/tir_transformation.html | 6 +-
docs/get_started/tutorials/ir_module.html | 10 +-
docs/get_started/tutorials/quick_start.html | 4 +-
docs/get_started/tutorials/sg_execution_times.html | 6 +-
.../tutorials/cross_compilation_and_rpc.html | 6 +-
docs/how_to/tutorials/e2e_opt_model.html | 4 +-
docs/how_to/tutorials/sg_execution_times.html | 16 +-
docs/reference/api/doxygen/analyzer_8h_source.html | 6 +-
.../api/doxygen/axis__group__graph_8h.html | 6 +-
.../api/doxygen/axis__group__graph_8h_source.html | 24 +-
.../api/doxygen/base__expr_8h_source.html | 546 ++--
.../api/doxygen/binding__rewrite_8h_source.html | 14 +-
.../api/doxygen/block__builder_8h_source.html | 8 +-
docs/reference/api/doxygen/bnn_8h_source.html | 10 +-
docs/reference/api/doxygen/bound_8h_source.html | 2 +-
docs/reference/api/doxygen/broadcast_8h.html | 2 +-
docs/reference/api/doxygen/bytecode_8h_source.html | 2 +-
.../api/doxygen/classtvm_1_1BaseFunc-members.html | 6 +-
.../api/doxygen/classtvm_1_1BaseFunc.html | 51 +-
.../api/doxygen/classtvm_1_1BaseFuncNode.html | 2 +-
.../classtvm_1_1BaseFuncNode__inherit__graph.svg | 216 +-
.../doxygen/classtvm_1_1BaseFunc__coll__graph.svg | 80 +-
.../classtvm_1_1BaseFunc__inherit__graph.svg | 190 +-
.../api/doxygen/classtvm_1_1Call-members.html | 6 +-
docs/reference/api/doxygen/classtvm_1_1Call.html | 50 +-
.../api/doxygen/classtvm_1_1CallNode-members.html | 2 +
.../api/doxygen/classtvm_1_1CallNode.html | 63 +-
.../doxygen/classtvm_1_1CallNode__coll__graph.svg | 248 +-
.../classtvm_1_1CallNode__inherit__graph.svg | 84 +-
.../api/doxygen/classtvm_1_1Call__coll__graph.svg | 98 +-
.../doxygen/classtvm_1_1Call__inherit__graph.svg | 98 +-
.../api/doxygen/classtvm_1_1Constant-members.html | 6 +-
.../api/doxygen/classtvm_1_1Constant.html | 51 +-
.../doxygen/classtvm_1_1Constant__coll__graph.svg | 80 +-
.../classtvm_1_1Constant__inherit__graph.svg | 182 +-
.../doxygen/classtvm_1_1DataTypeImm-members.html | 19 +-
.../api/doxygen/classtvm_1_1DataTypeImm.html | 56 +-
.../classtvm_1_1DataTypeImm__coll__graph.svg | 114 +-
.../classtvm_1_1DataTypeImm__inherit__graph.svg | 114 +-
.../api/doxygen/classtvm_1_1Expr-members.html | 9 +-
docs/reference/api/doxygen/classtvm_1_1Expr.html | 45 +-
.../api/doxygen/classtvm_1_1ExprMutator.html | 2 +-
.../classtvm_1_1ExprMutator__inherit__graph.svg | 159 +-
.../classtvm_1_1ExprNode__inherit__graph.svg | 1474 +++++----
.../api/doxygen/classtvm_1_1Expr__coll__graph.svg | 56 +-
.../doxygen/classtvm_1_1Expr__inherit__graph.svg | 2562 ++++++++-------
.../api/doxygen/classtvm_1_1FloatImm-members.html | 18 +-
.../api/doxygen/classtvm_1_1FloatImm.html | 62 +-
.../doxygen/classtvm_1_1FloatImm__coll__graph.svg | 172 +-
.../classtvm_1_1FloatImm__inherit__graph.svg | 172 +-
.../doxygen/classtvm_1_1GenericConst-members.html | 17 +-
.../api/doxygen/classtvm_1_1GenericConst.html | 56 +-
.../classtvm_1_1GenericConst__coll__graph.svg | 114 +-
.../classtvm_1_1GenericConst__inherit__graph.svg | 114 +-
.../api/doxygen/classtvm_1_1GlobalVar-members.html | 8 +-
.../api/doxygen/classtvm_1_1GlobalVar.html | 50 +-
.../doxygen/classtvm_1_1GlobalVar__coll__graph.svg | 90 +-
.../classtvm_1_1GlobalVar__inherit__graph.svg | 90 +-
.../api/doxygen/classtvm_1_1IntExpr-members.html | 23 +-
.../reference/api/doxygen/classtvm_1_1IntExpr.html | 32 +-
.../doxygen/classtvm_1_1IntExpr__coll__graph.svg | 160 +-
.../classtvm_1_1IntExpr__inherit__graph.svg | 160 +-
.../api/doxygen/classtvm_1_1IntImm-members.html | 28 +-
docs/reference/api/doxygen/classtvm_1_1IntImm.html | 64 +-
.../doxygen/classtvm_1_1IntImm__coll__graph.svg | 196 +-
.../doxygen/classtvm_1_1IntImm__inherit__graph.svg | 196 +-
.../api/doxygen/classtvm_1_1ObjectFunctor.html | 6 +-
.../api/doxygen/classtvm_1_1ObjectMutator.html | 2 +-
.../classtvm_1_1ObjectMutator__inherit__graph.svg | 159 +-
.../api/doxygen/classtvm_1_1Op-members.html | 23 +-
docs/reference/api/doxygen/classtvm_1_1Op.html | 10 +-
.../api/doxygen/classtvm_1_1Op__coll__graph.svg | 56 +-
.../api/doxygen/classtvm_1_1Op__inherit__graph.svg | 56 +-
.../doxygen/classtvm_1_1OpaqueExpr-members.html | 6 +-
.../api/doxygen/classtvm_1_1OpaqueExpr.html | 51 +-
.../classtvm_1_1OpaqueExprNode__inherit__graph.svg | 38 +-
.../classtvm_1_1OpaqueExpr__coll__graph.svg | 80 +-
.../classtvm_1_1OpaqueExpr__inherit__graph.svg | 148 +-
.../api/doxygen/classtvm_1_1PrimExpr-members.html | 21 +-
.../api/doxygen/classtvm_1_1PrimExpr.html | 60 +-
.../classtvm_1_1PrimExprConvertibleNode.html | 2 +-
..._1_1PrimExprConvertibleNode__inherit__graph.svg | 80 +-
.../doxygen/classtvm_1_1PrimExpr__coll__graph.svg | 132 +-
.../classtvm_1_1PrimExpr__inherit__graph.svg | 1704 +++++-----
.../api/doxygen/classtvm_1_1PrimVar-members.html | 28 +-
.../reference/api/doxygen/classtvm_1_1PrimVar.html | 64 +-
.../doxygen/classtvm_1_1PrimVar__coll__graph.svg | 182 +-
.../classtvm_1_1PrimVar__inherit__graph.svg | 182 +-
.../api/doxygen/classtvm_1_1RangeNode-members.html | 2 +-
.../api/doxygen/classtvm_1_1RangeNode.html | 17 +-
.../doxygen/classtvm_1_1RangeNode__coll__graph.svg | 228 +-
.../api/doxygen/classtvm_1_1StringImm-members.html | 11 +-
.../api/doxygen/classtvm_1_1StringImm.html | 56 +-
.../doxygen/classtvm_1_1StringImm__coll__graph.svg | 114 +-
.../classtvm_1_1StringImm__inherit__graph.svg | 114 +-
.../doxygen/classtvm_1_1TensorLoad-members.html | 28 +-
.../api/doxygen/classtvm_1_1TensorLoad.html | 63 +-
.../classtvm_1_1TensorLoadNode-members.html | 2 +
.../api/doxygen/classtvm_1_1TensorLoadNode.html | 63 +-
.../classtvm_1_1TensorLoadNode__coll__graph.svg | 216 +-
.../classtvm_1_1TensorLoadNode__inherit__graph.svg | 80 +-
.../classtvm_1_1TensorLoad__coll__graph.svg | 168 +-
.../classtvm_1_1TensorLoad__inherit__graph.svg | 168 +-
.../doxygen/classtvm_1_1TensorRegion-members.html | 14 +-
.../api/doxygen/classtvm_1_1TensorRegion.html | 50 +-
.../classtvm_1_1TensorRegionNode-members.html | 2 +
.../api/doxygen/classtvm_1_1TensorRegionNode.html | 63 +-
.../classtvm_1_1TensorRegionNode__coll__graph.svg | 220 +-
...lasstvm_1_1TensorRegionNode__inherit__graph.svg | 82 +-
.../classtvm_1_1TensorRegion__coll__graph.svg | 90 +-
.../classtvm_1_1TensorRegion__inherit__graph.svg | 90 +-
.../api/doxygen/classtvm_1_1Tuple-members.html | 14 +-
docs/reference/api/doxygen/classtvm_1_1Tuple.html | 50 +-
.../doxygen/classtvm_1_1TupleGetItem-members.html | 14 +-
.../api/doxygen/classtvm_1_1TupleGetItem.html | 50 +-
.../classtvm_1_1TupleGetItemNode-members.html | 2 +
.../api/doxygen/classtvm_1_1TupleGetItemNode.html | 63 +-
.../classtvm_1_1TupleGetItemNode__coll__graph.svg | 216 +-
...lasstvm_1_1TupleGetItemNode__inherit__graph.svg | 80 +-
.../classtvm_1_1TupleGetItem__coll__graph.svg | 90 +-
.../classtvm_1_1TupleGetItem__inherit__graph.svg | 90 +-
.../api/doxygen/classtvm_1_1Tuple__coll__graph.svg | 90 +-
.../doxygen/classtvm_1_1Tuple__inherit__graph.svg | 90 +-
.../api/doxygen/classtvm_1_1TypeNode.html | 2 +-
.../classtvm_1_1TypeNode__inherit__graph.svg | 620 ++--
.../api/doxygen/classtvm_1_1TypedExpr-members.html | 14 +-
.../api/doxygen/classtvm_1_1TypedExpr.html | 53 +-
.../doxygen/classtvm_1_1TypedExpr__coll__graph.svg | 92 +-
.../classtvm_1_1TypedExpr__inherit__graph.svg | 92 +-
.../api/doxygen/classtvm_1_1Var-members.html | 14 +-
docs/reference/api/doxygen/classtvm_1_1Var.html | 50 +-
.../api/doxygen/classtvm_1_1Var__coll__graph.svg | 100 +-
.../doxygen/classtvm_1_1Var__inherit__graph.svg | 196 +-
.../doxygen/classtvm_1_1prim_1_1Add-members.html | 16 +-
.../api/doxygen/classtvm_1_1prim_1_1Add.html | 62 +-
.../classtvm_1_1prim_1_1AddNode-members.html | 2 +
.../api/doxygen/classtvm_1_1prim_1_1AddNode.html | 8 +-
.../classtvm_1_1prim_1_1AddNode__coll__graph.svg | 322 +-
...classtvm_1_1prim_1_1AddNode__inherit__graph.svg | 90 +-
.../classtvm_1_1prim_1_1Add__coll__graph.svg | 172 +-
.../classtvm_1_1prim_1_1Add__inherit__graph.svg | 172 +-
.../doxygen/classtvm_1_1prim_1_1And-members.html | 16 +-
.../api/doxygen/classtvm_1_1prim_1_1And.html | 62 +-
.../classtvm_1_1prim_1_1AndNode-members.html | 2 +
.../api/doxygen/classtvm_1_1prim_1_1AndNode.html | 73 +-
.../classtvm_1_1prim_1_1AndNode__coll__graph.svg | 290 +-
...classtvm_1_1prim_1_1AndNode__inherit__graph.svg | 80 +-
.../classtvm_1_1prim_1_1And__coll__graph.svg | 172 +-
.../classtvm_1_1prim_1_1And__inherit__graph.svg | 172 +-
.../classtvm_1_1prim_1_1BinaryOpNode-members.html | 2 +
.../doxygen/classtvm_1_1prim_1_1BinaryOpNode.html | 77 +-
...asstvm_1_1prim_1_1BinaryOpNode__coll__graph.svg | 298 +-
...tvm_1_1prim_1_1BinaryOpNode__inherit__graph.svg | 84 +-
.../classtvm_1_1prim_1_1BitwiseAnd-members.html | 16 +-
.../doxygen/classtvm_1_1prim_1_1BitwiseAnd.html | 62 +-
...classtvm_1_1prim_1_1BitwiseAndNode-members.html | 2 +
.../classtvm_1_1prim_1_1BitwiseAndNode.html | 8 +-
...stvm_1_1prim_1_1BitwiseAndNode__coll__graph.svg | 322 +-
...m_1_1prim_1_1BitwiseAndNode__inherit__graph.svg | 90 +-
...classtvm_1_1prim_1_1BitwiseAnd__coll__graph.svg | 172 +-
...sstvm_1_1prim_1_1BitwiseAnd__inherit__graph.svg | 172 +-
.../classtvm_1_1prim_1_1BitwiseNot-members.html | 16 +-
.../doxygen/classtvm_1_1prim_1_1BitwiseNot.html | 62 +-
...classtvm_1_1prim_1_1BitwiseNotNode-members.html | 2 +
.../classtvm_1_1prim_1_1BitwiseNotNode.html | 63 +-
...stvm_1_1prim_1_1BitwiseNotNode__coll__graph.svg | 288 +-
...m_1_1prim_1_1BitwiseNotNode__inherit__graph.svg | 78 +-
...classtvm_1_1prim_1_1BitwiseNot__coll__graph.svg | 172 +-
...sstvm_1_1prim_1_1BitwiseNot__inherit__graph.svg | 172 +-
.../classtvm_1_1prim_1_1BitwiseOr-members.html | 16 +-
.../api/doxygen/classtvm_1_1prim_1_1BitwiseOr.html | 62 +-
.../classtvm_1_1prim_1_1BitwiseOrNode-members.html | 2 +
.../doxygen/classtvm_1_1prim_1_1BitwiseOrNode.html | 8 +-
...sstvm_1_1prim_1_1BitwiseOrNode__coll__graph.svg | 322 +-
...vm_1_1prim_1_1BitwiseOrNode__inherit__graph.svg | 90 +-
.../classtvm_1_1prim_1_1BitwiseOr__coll__graph.svg | 172 +-
...asstvm_1_1prim_1_1BitwiseOr__inherit__graph.svg | 172 +-
.../classtvm_1_1prim_1_1BitwiseXor-members.html | 16 +-
.../doxygen/classtvm_1_1prim_1_1BitwiseXor.html | 62 +-
...classtvm_1_1prim_1_1BitwiseXorNode-members.html | 2 +
.../classtvm_1_1prim_1_1BitwiseXorNode.html | 8 +-
...stvm_1_1prim_1_1BitwiseXorNode__coll__graph.svg | 322 +-
...m_1_1prim_1_1BitwiseXorNode__inherit__graph.svg | 90 +-
...classtvm_1_1prim_1_1BitwiseXor__coll__graph.svg | 172 +-
...sstvm_1_1prim_1_1BitwiseXor__inherit__graph.svg | 172 +-
.../classtvm_1_1prim_1_1Broadcast-members.html | 16 +-
.../api/doxygen/classtvm_1_1prim_1_1Broadcast.html | 62 +-
.../classtvm_1_1prim_1_1BroadcastNode-members.html | 2 +
.../doxygen/classtvm_1_1prim_1_1BroadcastNode.html | 73 +-
...sstvm_1_1prim_1_1BroadcastNode__coll__graph.svg | 290 +-
...vm_1_1prim_1_1BroadcastNode__inherit__graph.svg | 80 +-
.../classtvm_1_1prim_1_1Broadcast__coll__graph.svg | 172 +-
...asstvm_1_1prim_1_1Broadcast__inherit__graph.svg | 172 +-
.../doxygen/classtvm_1_1prim_1_1Cast-members.html | 16 +-
.../api/doxygen/classtvm_1_1prim_1_1Cast.html | 62 +-
.../classtvm_1_1prim_1_1CastNode-members.html | 2 +
.../api/doxygen/classtvm_1_1prim_1_1CastNode.html | 63 +-
.../classtvm_1_1prim_1_1CastNode__coll__graph.svg | 288 +-
...lasstvm_1_1prim_1_1CastNode__inherit__graph.svg | 78 +-
.../classtvm_1_1prim_1_1Cast__coll__graph.svg | 172 +-
.../classtvm_1_1prim_1_1Cast__inherit__graph.svg | 172 +-
.../classtvm_1_1prim_1_1CmpOpNode-members.html | 2 +
.../api/doxygen/classtvm_1_1prim_1_1CmpOpNode.html | 77 +-
.../classtvm_1_1prim_1_1CmpOpNode__coll__graph.svg | 298 +-
...asstvm_1_1prim_1_1CmpOpNode__inherit__graph.svg | 84 +-
.../doxygen/classtvm_1_1prim_1_1Div-members.html | 16 +-
.../api/doxygen/classtvm_1_1prim_1_1Div.html | 62 +-
.../classtvm_1_1prim_1_1DivNode-members.html | 2 +
.../api/doxygen/classtvm_1_1prim_1_1DivNode.html | 8 +-
.../classtvm_1_1prim_1_1DivNode__coll__graph.svg | 322 +-
...classtvm_1_1prim_1_1DivNode__inherit__graph.svg | 90 +-
.../classtvm_1_1prim_1_1Div__coll__graph.svg | 172 +-
.../classtvm_1_1prim_1_1Div__inherit__graph.svg | 172 +-
.../doxygen/classtvm_1_1prim_1_1EQ-members.html | 16 +-
.../api/doxygen/classtvm_1_1prim_1_1EQ.html | 62 +-
.../classtvm_1_1prim_1_1EQNode-members.html | 2 +
.../api/doxygen/classtvm_1_1prim_1_1EQNode.html | 8 +-
.../classtvm_1_1prim_1_1EQNode__coll__graph.svg | 322 +-
.../classtvm_1_1prim_1_1EQNode__inherit__graph.svg | 90 +-
.../classtvm_1_1prim_1_1EQ__coll__graph.svg | 172 +-
.../classtvm_1_1prim_1_1EQ__inherit__graph.svg | 172 +-
.../classtvm_1_1prim_1_1FloorDiv-members.html | 18 +-
.../api/doxygen/classtvm_1_1prim_1_1FloorDiv.html | 62 +-
.../classtvm_1_1prim_1_1FloorDivNode-members.html | 2 +
.../doxygen/classtvm_1_1prim_1_1FloorDivNode.html | 8 +-
...asstvm_1_1prim_1_1FloorDivNode__coll__graph.svg | 322 +-
...tvm_1_1prim_1_1FloorDivNode__inherit__graph.svg | 90 +-
.../classtvm_1_1prim_1_1FloorDiv__coll__graph.svg | 172 +-
...lasstvm_1_1prim_1_1FloorDiv__inherit__graph.svg | 172 +-
.../classtvm_1_1prim_1_1FloorMod-members.html | 18 +-
.../api/doxygen/classtvm_1_1prim_1_1FloorMod.html | 62 +-
.../classtvm_1_1prim_1_1FloorModNode-members.html | 2 +
.../doxygen/classtvm_1_1prim_1_1FloorModNode.html | 8 +-
...asstvm_1_1prim_1_1FloorModNode__coll__graph.svg | 322 +-
...tvm_1_1prim_1_1FloorModNode__inherit__graph.svg | 90 +-
.../classtvm_1_1prim_1_1FloorMod__coll__graph.svg | 172 +-
...lasstvm_1_1prim_1_1FloorMod__inherit__graph.svg | 172 +-
.../doxygen/classtvm_1_1prim_1_1GE-members.html | 18 +-
.../api/doxygen/classtvm_1_1prim_1_1GE.html | 62 +-
.../classtvm_1_1prim_1_1GENode-members.html | 2 +
.../api/doxygen/classtvm_1_1prim_1_1GENode.html | 8 +-
.../classtvm_1_1prim_1_1GENode__coll__graph.svg | 322 +-
.../classtvm_1_1prim_1_1GENode__inherit__graph.svg | 90 +-
.../classtvm_1_1prim_1_1GE__coll__graph.svg | 172 +-
.../classtvm_1_1prim_1_1GE__inherit__graph.svg | 172 +-
.../doxygen/classtvm_1_1prim_1_1GT-members.html | 18 +-
.../api/doxygen/classtvm_1_1prim_1_1GT.html | 62 +-
.../classtvm_1_1prim_1_1GTNode-members.html | 2 +
.../api/doxygen/classtvm_1_1prim_1_1GTNode.html | 8 +-
.../classtvm_1_1prim_1_1GTNode__coll__graph.svg | 322 +-
.../classtvm_1_1prim_1_1GTNode__inherit__graph.svg | 90 +-
.../classtvm_1_1prim_1_1GT__coll__graph.svg | 172 +-
.../classtvm_1_1prim_1_1GT__inherit__graph.svg | 172 +-
.../doxygen/classtvm_1_1prim_1_1LE-members.html | 18 +-
.../api/doxygen/classtvm_1_1prim_1_1LE.html | 62 +-
.../classtvm_1_1prim_1_1LE__coll__graph.svg | 172 +-
.../classtvm_1_1prim_1_1LE__inherit__graph.svg | 172 +-
.../classtvm_1_1prim_1_1LShift-members.html | 18 +-
.../api/doxygen/classtvm_1_1prim_1_1LShift.html | 62 +-
.../classtvm_1_1prim_1_1LShiftNode-members.html | 2 +
.../doxygen/classtvm_1_1prim_1_1LShiftNode.html | 8 +-
...classtvm_1_1prim_1_1LShiftNode__coll__graph.svg | 322 +-
...sstvm_1_1prim_1_1LShiftNode__inherit__graph.svg | 90 +-
.../classtvm_1_1prim_1_1LShift__coll__graph.svg | 172 +-
.../classtvm_1_1prim_1_1LShift__inherit__graph.svg | 172 +-
.../doxygen/classtvm_1_1prim_1_1LT-members.html | 18 +-
.../api/doxygen/classtvm_1_1prim_1_1LT.html | 62 +-
.../classtvm_1_1prim_1_1LTNode-members.html | 2 +
.../api/doxygen/classtvm_1_1prim_1_1LTNode.html | 8 +-
.../classtvm_1_1prim_1_1LTNode__coll__graph.svg | 322 +-
.../classtvm_1_1prim_1_1LTNode__inherit__graph.svg | 90 +-
.../classtvm_1_1prim_1_1LT__coll__graph.svg | 172 +-
.../classtvm_1_1prim_1_1LT__inherit__graph.svg | 172 +-
.../doxygen/classtvm_1_1prim_1_1Let-members.html | 18 +-
.../api/doxygen/classtvm_1_1prim_1_1Let.html | 62 +-
.../classtvm_1_1prim_1_1LetNode-members.html | 2 +
.../api/doxygen/classtvm_1_1prim_1_1LetNode.html | 79 +-
.../classtvm_1_1prim_1_1LetNode__coll__graph.svg | 340 +-
...classtvm_1_1prim_1_1LetNode__inherit__graph.svg | 82 +-
.../classtvm_1_1prim_1_1Let__coll__graph.svg | 172 +-
.../classtvm_1_1prim_1_1Let__inherit__graph.svg | 172 +-
.../doxygen/classtvm_1_1prim_1_1Max-members.html | 18 +-
.../api/doxygen/classtvm_1_1prim_1_1Max.html | 62 +-
.../classtvm_1_1prim_1_1MaxNode-members.html | 2 +
.../api/doxygen/classtvm_1_1prim_1_1MaxNode.html | 8 +-
.../classtvm_1_1prim_1_1MaxNode__coll__graph.svg | 322 +-
...classtvm_1_1prim_1_1MaxNode__inherit__graph.svg | 90 +-
.../classtvm_1_1prim_1_1Max__coll__graph.svg | 172 +-
.../classtvm_1_1prim_1_1Max__inherit__graph.svg | 172 +-
.../doxygen/classtvm_1_1prim_1_1Min-members.html | 18 +-
.../api/doxygen/classtvm_1_1prim_1_1Min.html | 62 +-
.../classtvm_1_1prim_1_1MinNode-members.html | 2 +
.../api/doxygen/classtvm_1_1prim_1_1MinNode.html | 8 +-
.../classtvm_1_1prim_1_1MinNode__coll__graph.svg | 322 +-
...classtvm_1_1prim_1_1MinNode__inherit__graph.svg | 90 +-
.../classtvm_1_1prim_1_1Min__coll__graph.svg | 172 +-
.../classtvm_1_1prim_1_1Min__inherit__graph.svg | 172 +-
.../doxygen/classtvm_1_1prim_1_1Mod-members.html | 18 +-
.../api/doxygen/classtvm_1_1prim_1_1Mod.html | 62 +-
.../classtvm_1_1prim_1_1ModNode-members.html | 2 +
.../api/doxygen/classtvm_1_1prim_1_1ModNode.html | 8 +-
.../classtvm_1_1prim_1_1ModNode__coll__graph.svg | 322 +-
...classtvm_1_1prim_1_1ModNode__inherit__graph.svg | 90 +-
.../classtvm_1_1prim_1_1Mod__coll__graph.svg | 172 +-
.../classtvm_1_1prim_1_1Mod__inherit__graph.svg | 172 +-
.../doxygen/classtvm_1_1prim_1_1Mul-members.html | 18 +-
.../api/doxygen/classtvm_1_1prim_1_1Mul.html | 62 +-
.../classtvm_1_1prim_1_1MulNode-members.html | 2 +
.../api/doxygen/classtvm_1_1prim_1_1MulNode.html | 8 +-
.../classtvm_1_1prim_1_1MulNode__coll__graph.svg | 322 +-
...classtvm_1_1prim_1_1MulNode__inherit__graph.svg | 90 +-
.../classtvm_1_1prim_1_1Mul__coll__graph.svg | 172 +-
.../classtvm_1_1prim_1_1Mul__inherit__graph.svg | 172 +-
.../doxygen/classtvm_1_1prim_1_1NE-members.html | 18 +-
.../api/doxygen/classtvm_1_1prim_1_1NE.html | 62 +-
.../classtvm_1_1prim_1_1NENode-members.html | 2 +
.../api/doxygen/classtvm_1_1prim_1_1NENode.html | 8 +-
.../classtvm_1_1prim_1_1NENode__coll__graph.svg | 322 +-
.../classtvm_1_1prim_1_1NENode__inherit__graph.svg | 90 +-
.../classtvm_1_1prim_1_1NE__coll__graph.svg | 172 +-
.../classtvm_1_1prim_1_1NE__inherit__graph.svg | 172 +-
.../doxygen/classtvm_1_1prim_1_1Not-members.html | 18 +-
.../api/doxygen/classtvm_1_1prim_1_1Not.html | 62 +-
.../classtvm_1_1prim_1_1NotNode-members.html | 2 +
.../api/doxygen/classtvm_1_1prim_1_1NotNode.html | 63 +-
.../classtvm_1_1prim_1_1NotNode__coll__graph.svg | 288 +-
...classtvm_1_1prim_1_1NotNode__inherit__graph.svg | 78 +-
.../classtvm_1_1prim_1_1Not__coll__graph.svg | 172 +-
.../classtvm_1_1prim_1_1Not__inherit__graph.svg | 172 +-
.../doxygen/classtvm_1_1prim_1_1Or-members.html | 24 +-
.../api/doxygen/classtvm_1_1prim_1_1Or.html | 62 +-
.../classtvm_1_1prim_1_1OrNode-members.html | 2 +
.../api/doxygen/classtvm_1_1prim_1_1OrNode.html | 73 +-
.../classtvm_1_1prim_1_1OrNode__coll__graph.svg | 290 +-
.../classtvm_1_1prim_1_1OrNode__inherit__graph.svg | 80 +-
.../classtvm_1_1prim_1_1Or__coll__graph.svg | 172 +-
.../classtvm_1_1prim_1_1Or__inherit__graph.svg | 172 +-
.../classtvm_1_1prim_1_1RShift-members.html | 28 +-
.../api/doxygen/classtvm_1_1prim_1_1RShift.html | 62 +-
.../classtvm_1_1prim_1_1RShiftNode-members.html | 2 +
.../doxygen/classtvm_1_1prim_1_1RShiftNode.html | 8 +-
...classtvm_1_1prim_1_1RShiftNode__coll__graph.svg | 322 +-
...sstvm_1_1prim_1_1RShiftNode__inherit__graph.svg | 90 +-
.../classtvm_1_1prim_1_1RShift__coll__graph.svg | 172 +-
.../classtvm_1_1prim_1_1RShift__inherit__graph.svg | 172 +-
.../doxygen/classtvm_1_1prim_1_1Ramp-members.html | 28 +-
.../api/doxygen/classtvm_1_1prim_1_1Ramp.html | 62 +-
.../classtvm_1_1prim_1_1RampNode-members.html | 2 +
.../api/doxygen/classtvm_1_1prim_1_1RampNode.html | 79 +-
.../classtvm_1_1prim_1_1RampNode__coll__graph.svg | 292 +-
...lasstvm_1_1prim_1_1RampNode__inherit__graph.svg | 82 +-
.../classtvm_1_1prim_1_1Ramp__coll__graph.svg | 172 +-
.../classtvm_1_1prim_1_1Ramp__inherit__graph.svg | 172 +-
.../classtvm_1_1prim_1_1Select-members.html | 28 +-
.../api/doxygen/classtvm_1_1prim_1_1Select.html | 62 +-
.../classtvm_1_1prim_1_1SelectNode-members.html | 2 +
.../doxygen/classtvm_1_1prim_1_1SelectNode.html | 79 +-
...classtvm_1_1prim_1_1SelectNode__coll__graph.svg | 292 +-
...sstvm_1_1prim_1_1SelectNode__inherit__graph.svg | 82 +-
.../classtvm_1_1prim_1_1Select__coll__graph.svg | 172 +-
.../classtvm_1_1prim_1_1Select__inherit__graph.svg | 172 +-
.../classtvm_1_1prim_1_1Shuffle-members.html | 30 +-
.../api/doxygen/classtvm_1_1prim_1_1Shuffle.html | 62 +-
.../classtvm_1_1prim_1_1Shuffle__coll__graph.svg | 180 +-
...classtvm_1_1prim_1_1Shuffle__inherit__graph.svg | 180 +-
.../doxygen/classtvm_1_1prim_1_1Sub-members.html | 28 +-
.../api/doxygen/classtvm_1_1prim_1_1Sub.html | 62 +-
.../classtvm_1_1prim_1_1SubNode-members.html | 2 +
.../api/doxygen/classtvm_1_1prim_1_1SubNode.html | 8 +-
.../classtvm_1_1prim_1_1SubNode__coll__graph.svg | 322 +-
...classtvm_1_1prim_1_1SubNode__inherit__graph.svg | 90 +-
.../classtvm_1_1prim_1_1Sub__coll__graph.svg | 172 +-
.../classtvm_1_1prim_1_1Sub__inherit__graph.svg | 172 +-
.../classtvm_1_1relax_1_1BindingNode-members.html | 2 +
.../doxygen/classtvm_1_1relax_1_1BindingNode.html | 63 +-
...asstvm_1_1relax_1_1BindingNode__coll__graph.svg | 178 +-
...tvm_1_1relax_1_1BindingNode__inherit__graph.svg | 104 +-
...m_1_1relax_1_1DFPatternNode__inherit__graph.svg | 28 +-
...sstvm_1_1relax_1_1DataflowBlockRewriteNode.html | 2 +-
...ax_1_1DataflowBlockRewriteNode__coll__graph.svg | 444 +--
.../classtvm_1_1relax_1_1DataflowVar-members.html | 9 +-
.../doxygen/classtvm_1_1relax_1_1DataflowVar.html | 56 +-
...asstvm_1_1relax_1_1DataflowVar__coll__graph.svg | 128 +-
...tvm_1_1relax_1_1DataflowVar__inherit__graph.svg | 128 +-
...asstvm_1_1relax_1_1ExprPatternNode-members.html | 2 +
.../classtvm_1_1relax_1_1ExprPatternNode.html | 63 +-
...vm_1_1relax_1_1ExprPatternNode__coll__graph.svg | 132 +-
...1_1relax_1_1ExprPatternNode__inherit__graph.svg | 68 +-
.../classtvm_1_1relax_1_1ExternFunc-members.html | 17 +-
.../doxygen/classtvm_1_1relax_1_1ExternFunc.html | 58 +-
...lasstvm_1_1relax_1_1ExternFunc__coll__graph.svg | 118 +-
...stvm_1_1relax_1_1ExternFunc__inherit__graph.svg | 118 +-
.../classtvm_1_1relax_1_1Function-members.html | 19 +-
.../api/doxygen/classtvm_1_1relax_1_1Function.html | 56 +-
.../classtvm_1_1relax_1_1FunctionNode-members.html | 2 +
.../doxygen/classtvm_1_1relax_1_1FunctionNode.html | 63 +-
...sstvm_1_1relax_1_1FunctionNode__coll__graph.svg | 412 +--
...vm_1_1relax_1_1FunctionNode__inherit__graph.svg | 126 +-
.../classtvm_1_1relax_1_1Function__coll__graph.svg | 118 +-
...asstvm_1_1relax_1_1Function__inherit__graph.svg | 118 +-
.../doxygen/classtvm_1_1relax_1_1If-members.html | 8 +-
.../api/doxygen/classtvm_1_1relax_1_1If.html | 50 +-
.../classtvm_1_1relax_1_1IfNode-members.html | 2 +
.../api/doxygen/classtvm_1_1relax_1_1IfNode.html | 79 +-
.../classtvm_1_1relax_1_1IfNode__coll__graph.svg | 298 +-
...classtvm_1_1relax_1_1IfNode__inherit__graph.svg | 84 +-
.../classtvm_1_1relax_1_1If__coll__graph.svg | 90 +-
.../classtvm_1_1relax_1_1If__inherit__graph.svg | 90 +-
...classtvm_1_1relax_1_1MatchCastNode-members.html | 4 +
.../classtvm_1_1relax_1_1MatchCastNode.html | 77 +-
...stvm_1_1relax_1_1MatchCastNode__coll__graph.svg | 262 +-
...m_1_1relax_1_1MatchCastNode__inherit__graph.svg | 82 +-
...asstvm_1_1relax_1_1MatchResultNode-members.html | 2 +
.../classtvm_1_1relax_1_1MatchResultNode.html | 61 +-
...vm_1_1relax_1_1MatchResultNode__coll__graph.svg | 158 +-
...1_1relax_1_1MatchResultNode__inherit__graph.svg | 46 +-
.../doxygen/classtvm_1_1relax_1_1NestedMsg.html | 181 +-
.../classtvm_1_1relax_1_1SeqExpr-members.html | 16 +-
.../api/doxygen/classtvm_1_1relax_1_1SeqExpr.html | 52 +-
.../classtvm_1_1relax_1_1SeqExprNode-members.html | 2 +
.../doxygen/classtvm_1_1relax_1_1SeqExprNode.html | 63 +-
...asstvm_1_1relax_1_1SeqExprNode__coll__graph.svg | 224 +-
...tvm_1_1relax_1_1SeqExprNode__inherit__graph.svg | 80 +-
.../classtvm_1_1relax_1_1SeqExpr__coll__graph.svg | 94 +-
...lasstvm_1_1relax_1_1SeqExpr__inherit__graph.svg | 94 +-
.../classtvm_1_1relax_1_1ShapeExpr-members.html | 14 +-
.../doxygen/classtvm_1_1relax_1_1ShapeExpr.html | 50 +-
...classtvm_1_1relax_1_1ShapeExpr__coll__graph.svg | 90 +-
...sstvm_1_1relax_1_1ShapeExpr__inherit__graph.svg | 90 +-
...lasstvm_1_1relax_1_1VarBindingNode-members.html | 4 +
.../classtvm_1_1relax_1_1VarBindingNode.html | 75 +-
...tvm_1_1relax_1_1VarBindingNode__coll__graph.svg | 234 +-
..._1_1relax_1_1VarBindingNode__inherit__graph.svg | 80 +-
...ansform_1_1PatternCheckContextNode-members.html | 2 +
...ax_1_1transform_1_1PatternCheckContextNode.html | 63 +-
...orm_1_1PatternCheckContextNode__coll__graph.svg | 124 +-
..._1_1PatternCheckContextNode__inherit__graph.svg | 72 +-
...1_1s__tir_1_1MatchBufferRegionNode-members.html | 2 +
...lasstvm_1_1s__tir_1_1MatchBufferRegionNode.html | 73 +-
...__tir_1_1MatchBufferRegionNode__coll__graph.svg | 234 +-
...ir_1_1MatchBufferRegionNode__inherit__graph.svg | 46 +-
.../classtvm_1_1s__tir_1_1SBlock-members.html | 6 +-
.../api/doxygen/classtvm_1_1s__tir_1_1SBlock.html | 52 +-
.../classtvm_1_1s__tir_1_1SBlockNode-members.html | 2 +
.../doxygen/classtvm_1_1s__tir_1_1SBlockNode.html | 65 +-
...asstvm_1_1s__tir_1_1SBlockNode__coll__graph.svg | 210 +-
...tvm_1_1s__tir_1_1SBlockNode__inherit__graph.svg | 104 +-
...lasstvm_1_1s__tir_1_1SBlockRealize-members.html | 6 +-
.../classtvm_1_1s__tir_1_1SBlockRealize.html | 50 +-
...tvm_1_1s__tir_1_1SBlockRealizeNode-members.html | 2 +
.../classtvm_1_1s__tir_1_1SBlockRealizeNode.html | 73 +-
...1_1s__tir_1_1SBlockRealizeNode__coll__graph.svg | 338 +-
...s__tir_1_1SBlockRealizeNode__inherit__graph.svg | 92 +-
...tvm_1_1s__tir_1_1SBlockRealize__coll__graph.svg | 78 +-
..._1_1s__tir_1_1SBlockRealize__inherit__graph.svg | 78 +-
.../classtvm_1_1s__tir_1_1SBlock__coll__graph.svg | 82 +-
...lasstvm_1_1s__tir_1_1SBlock__inherit__graph.svg | 82 +-
...classtvm_1_1s__tir_1_1ScheduleNode-members.html | 2 +-
.../classtvm_1_1s__tir_1_1ScheduleNode.html | 14 +-
...sstvm_1_1s__tir_1_1StmtExprMutator-members.html | 157 +-
.../classtvm_1_1s__tir_1_1StmtExprMutator.html | 7 +-
...m_1_1s__tir_1_1StmtExprMutator__coll__graph.svg | 159 +-
..._1s__tir_1_1StmtExprMutator__inherit__graph.svg | 159 +-
...stvm_1_1s__tir_1_1TensorIntrinNode-members.html | 2 +
.../classtvm_1_1s__tir_1_1TensorIntrinNode.html | 73 +-
..._1_1s__tir_1_1TensorIntrinNode__coll__graph.svg | 156 +-
...1s__tir_1_1TensorIntrinNode__inherit__graph.svg | 44 +-
...ilder_1_1IRBuilderFrameNode__inherit__graph.svg | 254 +-
...r__builder_1_1relax_1_1IfFrameNode-members.html | 4 +-
...ipt_1_1ir__builder_1_1relax_1_1IfFrameNode.html | 75 +-
...uilder_1_1relax_1_1IfFrameNode__coll__graph.svg | 295 +-
...der_1_1relax_1_1IfFrameNode__inherit__graph.svg | 128 +-
..._1_1ir__builder_1_1relax_1_1RelaxFrameNode.html | 2 +-
..._1_1relax_1_1RelaxFrameNode__inherit__graph.svg | 218 +-
...builder_1_1tirx_1_1AssertFrameNode-members.html | 2 +
..._1_1ir__builder_1_1tirx_1_1AssertFrameNode.html | 73 +-
...der_1_1tirx_1_1AssertFrameNode__coll__graph.svg | 384 +--
..._1_1tirx_1_1AssertFrameNode__inherit__graph.svg | 130 +-
...__builder_1_1tirx_1_1AttrFrameNode-members.html | 2 +
...pt_1_1ir__builder_1_1tirx_1_1AttrFrameNode.html | 63 +-
...ilder_1_1tirx_1_1AttrFrameNode__coll__graph.svg | 248 +-
...er_1_1tirx_1_1AttrFrameNode__inherit__graph.svg | 130 +-
...der_1_1tirx_1_1DeclTensorFrameNode-members.html | 4 +-
...ir__builder_1_1tirx_1_1DeclTensorFrameNode.html | 73 +-
...1_1tirx_1_1DeclTensorFrameNode__coll__graph.svg | 368 +--
...tirx_1_1DeclTensorFrameNode__inherit__graph.svg | 130 +-
...ir__builder_1_1tirx_1_1IfFrameNode-members.html | 2 +
...ript_1_1ir__builder_1_1tirx_1_1IfFrameNode.html | 63 +-
...builder_1_1tirx_1_1IfFrameNode__coll__graph.svg | 318 +-
...lder_1_1tirx_1_1IfFrameNode__inherit__graph.svg | 130 +-
...r_1_1tirx_1_1LaunchThreadFrameNode-members.html | 2 +
...__builder_1_1tirx_1_1LaunchThreadFrameNode.html | 63 +-
...1tirx_1_1LaunchThreadFrameNode__coll__graph.svg | 378 +--
...rx_1_1LaunchThreadFrameNode__inherit__graph.svg | 130 +-
...der_1_1tirx_1_1TIRFrameNode__inherit__graph.svg | 212 +-
..._builder_1_1tirx_1_1WhileFrameNode-members.html | 2 +
...t_1_1ir__builder_1_1tirx_1_1WhileFrameNode.html | 63 +-
...lder_1_1tirx_1_1WhileFrameNode__coll__graph.svg | 310 +-
...r_1_1tirx_1_1WhileFrameNode__inherit__graph.svg | 126 +-
...m_1_1script_1_1printer_1_1DocTranslatorObj.html | 2 +-
.../classtvm_1_1sym_1_1ConstraintContext.html | 2 +-
.../classtvm_1_1sym_1_1IterMapExpr-members.html | 14 +-
.../doxygen/classtvm_1_1sym_1_1IterMapExpr.html | 63 +-
.../classtvm_1_1sym_1_1IterMapExprNode.html | 2 +-
...m_1_1sym_1_1IterMapExprNode__inherit__graph.svg | 138 +-
...classtvm_1_1sym_1_1IterMapExpr__coll__graph.svg | 162 +-
...sstvm_1_1sym_1_1IterMapExpr__inherit__graph.svg | 238 +-
...asstvm_1_1sym_1_1IterMapResultNode-members.html | 2 +-
.../classtvm_1_1sym_1_1IterMapResultNode.html | 16 +-
...vm_1_1sym_1_1IterMapResultNode__coll__graph.svg | 175 +-
.../classtvm_1_1sym_1_1IterMarkNode-members.html | 2 +
.../doxygen/classtvm_1_1sym_1_1IterMarkNode.html | 73 +-
...lasstvm_1_1sym_1_1IterMarkNode__coll__graph.svg | 176 +-
...stvm_1_1sym_1_1IterMarkNode__inherit__graph.svg | 46 +-
.../classtvm_1_1sym_1_1IterSplitExpr-members.html | 27 +-
.../doxygen/classtvm_1_1sym_1_1IterSplitExpr.html | 72 +-
...asstvm_1_1sym_1_1IterSplitExprNode-members.html | 2 +
.../classtvm_1_1sym_1_1IterSplitExprNode.html | 79 +-
...vm_1_1sym_1_1IterSplitExprNode__coll__graph.svg | 348 +-
...1_1sym_1_1IterSplitExprNode__inherit__graph.svg | 112 +-
...asstvm_1_1sym_1_1IterSplitExpr__coll__graph.svg | 204 +-
...tvm_1_1sym_1_1IterSplitExpr__inherit__graph.svg | 204 +-
.../classtvm_1_1sym_1_1IterSumExpr-members.html | 27 +-
.../doxygen/classtvm_1_1sym_1_1IterSumExpr.html | 68 +-
...classtvm_1_1sym_1_1IterSumExprNode-members.html | 2 +
.../classtvm_1_1sym_1_1IterSumExprNode.html | 63 +-
...stvm_1_1sym_1_1IterSumExprNode__coll__graph.svg | 322 +-
...m_1_1sym_1_1IterSumExprNode__inherit__graph.svg | 108 +-
...classtvm_1_1sym_1_1IterSumExpr__coll__graph.svg | 196 +-
...sstvm_1_1sym_1_1IterSumExpr__inherit__graph.svg | 196 +-
.../classtvm_1_1te_1_1ExternOpNode-members.html | 29 +-
.../doxygen/classtvm_1_1te_1_1ExternOpNode.html | 46 +-
...classtvm_1_1te_1_1ExternOpNode__coll__graph.svg | 162 +-
...sstvm_1_1te_1_1ExternOpNode__inherit__graph.svg | 122 +-
...stvm_1_1te_1_1OperationNode__inherit__graph.svg | 62 +-
.../doxygen/classtvm_1_1te_1_1Reduce-members.html | 30 +-
.../api/doxygen/classtvm_1_1te_1_1Reduce.html | 70 +-
.../classtvm_1_1te_1_1ReduceNode-members.html | 2 +
.../api/doxygen/classtvm_1_1te_1_1ReduceNode.html | 63 +-
.../classtvm_1_1te_1_1ReduceNode__coll__graph.svg | 348 +-
...lasstvm_1_1te_1_1ReduceNode__inherit__graph.svg | 118 +-
.../classtvm_1_1te_1_1Reduce__coll__graph.svg | 172 +-
.../classtvm_1_1te_1_1Reduce__inherit__graph.svg | 172 +-
.../doxygen/classtvm_1_1te_1_1Tensor-members.html | 17 +-
.../api/doxygen/classtvm_1_1te_1_1Tensor.html | 56 +-
.../classtvm_1_1te_1_1Tensor__coll__graph.svg | 148 +-
.../classtvm_1_1te_1_1Tensor__inherit__graph.svg | 148 +-
.../classtvm_1_1tirx_1_1AssertStmt-members.html | 6 +-
.../doxygen/classtvm_1_1tirx_1_1AssertStmt.html | 50 +-
...classtvm_1_1tirx_1_1AssertStmtNode-members.html | 2 +
.../classtvm_1_1tirx_1_1AssertStmtNode.html | 73 +-
...stvm_1_1tirx_1_1AssertStmtNode__coll__graph.svg | 334 +-
...m_1_1tirx_1_1AssertStmtNode__inherit__graph.svg | 92 +-
...classtvm_1_1tirx_1_1AssertStmt__coll__graph.svg | 78 +-
...sstvm_1_1tirx_1_1AssertStmt__inherit__graph.svg | 78 +-
.../classtvm_1_1tirx_1_1AttrStmt-members.html | 6 +-
.../api/doxygen/classtvm_1_1tirx_1_1AttrStmt.html | 50 +-
.../classtvm_1_1tirx_1_1AttrStmtNode-members.html | 2 +
.../doxygen/classtvm_1_1tirx_1_1AttrStmtNode.html | 73 +-
...asstvm_1_1tirx_1_1AttrStmtNode__coll__graph.svg | 228 +-
...tvm_1_1tirx_1_1AttrStmtNode__inherit__graph.svg | 94 +-
.../classtvm_1_1tirx_1_1AttrStmt__coll__graph.svg | 78 +-
...lasstvm_1_1tirx_1_1AttrStmt__inherit__graph.svg | 78 +-
.../doxygen/classtvm_1_1tirx_1_1Bind-members.html | 6 +-
.../api/doxygen/classtvm_1_1tirx_1_1Bind.html | 50 +-
.../classtvm_1_1tirx_1_1BindNode-members.html | 2 +
.../api/doxygen/classtvm_1_1tirx_1_1BindNode.html | 73 +-
.../classtvm_1_1tirx_1_1BindNode__coll__graph.svg | 230 +-
...lasstvm_1_1tirx_1_1BindNode__inherit__graph.svg | 90 +-
.../classtvm_1_1tirx_1_1Bind__coll__graph.svg | 78 +-
.../classtvm_1_1tirx_1_1Bind__inherit__graph.svg | 78 +-
.../doxygen/classtvm_1_1tirx_1_1Break-members.html | 6 +-
.../api/doxygen/classtvm_1_1tirx_1_1Break.html | 50 +-
.../classtvm_1_1tirx_1_1Break__coll__graph.svg | 78 +-
.../classtvm_1_1tirx_1_1Break__inherit__graph.svg | 78 +-
.../classtvm_1_1tirx_1_1BufferStore-members.html | 6 +-
.../doxygen/classtvm_1_1tirx_1_1BufferStore.html | 50 +-
...lasstvm_1_1tirx_1_1BufferStoreNode-members.html | 2 +
.../classtvm_1_1tirx_1_1BufferStoreNode.html | 77 +-
...tvm_1_1tirx_1_1BufferStoreNode__coll__graph.svg | 388 +--
..._1_1tirx_1_1BufferStoreNode__inherit__graph.svg | 92 +-
...lasstvm_1_1tirx_1_1BufferStore__coll__graph.svg | 78 +-
...stvm_1_1tirx_1_1BufferStore__inherit__graph.svg | 78 +-
.../classtvm_1_1tirx_1_1BufferVar-members.html | 37 +-
.../api/doxygen/classtvm_1_1tirx_1_1BufferVar.html | 59 +-
.../classtvm_1_1tirx_1_1BufferVar__coll__graph.svg | 168 +-
...asstvm_1_1tirx_1_1BufferVar__inherit__graph.svg | 168 +-
.../classtvm_1_1tirx_1_1Continue-members.html | 6 +-
.../api/doxygen/classtvm_1_1tirx_1_1Continue.html | 50 +-
.../classtvm_1_1tirx_1_1Continue__coll__graph.svg | 78 +-
...lasstvm_1_1tirx_1_1Continue__inherit__graph.svg | 78 +-
.../classtvm_1_1tirx_1_1Evaluate-members.html | 6 +-
.../api/doxygen/classtvm_1_1tirx_1_1Evaluate.html | 52 +-
.../classtvm_1_1tirx_1_1EvaluateNode-members.html | 2 +
.../doxygen/classtvm_1_1tirx_1_1EvaluateNode.html | 63 +-
...asstvm_1_1tirx_1_1EvaluateNode__coll__graph.svg | 190 +-
...tvm_1_1tirx_1_1EvaluateNode__inherit__graph.svg | 88 +-
.../classtvm_1_1tirx_1_1Evaluate__coll__graph.svg | 82 +-
...lasstvm_1_1tirx_1_1Evaluate__inherit__graph.svg | 82 +-
.../doxygen/classtvm_1_1tirx_1_1For-members.html | 6 +-
.../api/doxygen/classtvm_1_1tirx_1_1For.html | 50 +-
.../classtvm_1_1tirx_1_1ForNode-members.html | 2 +
.../api/doxygen/classtvm_1_1tirx_1_1ForNode.html | 93 +-
.../classtvm_1_1tirx_1_1ForNode__coll__graph.svg | 374 ++-
...classtvm_1_1tirx_1_1ForNode__inherit__graph.svg | 102 +-
.../classtvm_1_1tirx_1_1For__coll__graph.svg | 78 +-
.../classtvm_1_1tirx_1_1For__inherit__graph.svg | 78 +-
.../classtvm_1_1tirx_1_1IfThenElse-members.html | 6 +-
.../doxygen/classtvm_1_1tirx_1_1IfThenElse.html | 50 +-
...classtvm_1_1tirx_1_1IfThenElseNode-members.html | 2 +
.../classtvm_1_1tirx_1_1IfThenElseNode.html | 73 +-
...stvm_1_1tirx_1_1IfThenElseNode__coll__graph.svg | 298 +-
...m_1_1tirx_1_1IfThenElseNode__inherit__graph.svg | 92 +-
...classtvm_1_1tirx_1_1IfThenElse__coll__graph.svg | 78 +-
...sstvm_1_1tirx_1_1IfThenElse__inherit__graph.svg | 78 +-
.../classtvm_1_1tirx_1_1IterNode-members.html | 2 +
.../api/doxygen/classtvm_1_1tirx_1_1IterNode.html | 71 +-
.../classtvm_1_1tirx_1_1IterNode__coll__graph.svg | 242 +-
...lasstvm_1_1tirx_1_1IterNode__inherit__graph.svg | 48 +-
.../classtvm_1_1tirx_1_1IterVarNode-members.html | 2 +
.../doxygen/classtvm_1_1tirx_1_1IterVarNode.html | 63 +-
...lasstvm_1_1tirx_1_1IterVarNode__coll__graph.svg | 350 +-
...stvm_1_1tirx_1_1IterVarNode__inherit__graph.svg | 80 +-
...classtvm_1_1tirx_1_1LambdaExprNode-members.html | 2 +
.../classtvm_1_1tirx_1_1LambdaExprNode.html | 63 +-
...stvm_1_1tirx_1_1LambdaExprNode__coll__graph.svg | 194 +-
...m_1_1tirx_1_1LambdaExprNode__inherit__graph.svg | 46 +-
.../classtvm_1_1tirx_1_1PrimFunc-members.html | 13 +-
.../api/doxygen/classtvm_1_1tirx_1_1PrimFunc.html | 68 +-
.../classtvm_1_1tirx_1_1PrimFuncNode-members.html | 2 +-
.../doxygen/classtvm_1_1tirx_1_1PrimFuncNode.html | 16 +-
...asstvm_1_1tirx_1_1PrimFuncNode__coll__graph.svg | 369 +--
.../classtvm_1_1tirx_1_1PrimFunc__coll__graph.svg | 114 +-
...lasstvm_1_1tirx_1_1PrimFunc__inherit__graph.svg | 114 +-
.../classtvm_1_1tirx_1_1Return-members.html | 6 +-
.../api/doxygen/classtvm_1_1tirx_1_1Return.html | 50 +-
.../classtvm_1_1tirx_1_1ReturnNode-members.html | 2 +
.../doxygen/classtvm_1_1tirx_1_1ReturnNode.html | 63 +-
...classtvm_1_1tirx_1_1ReturnNode__coll__graph.svg | 190 +-
...sstvm_1_1tirx_1_1ReturnNode__inherit__graph.svg | 88 +-
.../classtvm_1_1tirx_1_1Return__coll__graph.svg | 78 +-
.../classtvm_1_1tirx_1_1Return__inherit__graph.svg | 78 +-
...classtvm_1_1tirx_1_1ScopeIdDefStmt-members.html | 6 +-
.../classtvm_1_1tirx_1_1ScopeIdDefStmt.html | 50 +-
...stvm_1_1tirx_1_1ScopeIdDefStmt__coll__graph.svg | 78 +-
...m_1_1tirx_1_1ScopeIdDefStmt__inherit__graph.svg | 78 +-
.../classtvm_1_1tirx_1_1SeqStmt-members.html | 8 +-
.../api/doxygen/classtvm_1_1tirx_1_1SeqStmt.html | 50 +-
...vm_1_1tirx_1_1SeqStmt_1_1Flattener-members.html | 3 +-
.../classtvm_1_1tirx_1_1SeqStmt_1_1Flattener.html | 42 +-
..._1tirx_1_1SeqStmt_1_1Flattener__coll__graph.svg | 34 +-
.../classtvm_1_1tirx_1_1SeqStmt__coll__graph.svg | 90 +-
...classtvm_1_1tirx_1_1SeqStmt__inherit__graph.svg | 90 +-
.../doxygen/classtvm_1_1tirx_1_1Stmt-members.html | 3 +-
.../api/doxygen/classtvm_1_1tirx_1_1Stmt.html | 45 +-
...lasstvm_1_1tirx_1_1StmtExprMutator-members.html | 149 +-
.../classtvm_1_1tirx_1_1StmtExprMutator.html | 47 +-
...tvm_1_1tirx_1_1StmtExprMutator__coll__graph.svg | 155 +-
..._1_1tirx_1_1StmtExprMutator__inherit__graph.svg | 159 +-
.../api/doxygen/classtvm_1_1tirx_1_1StmtNode.html | 2 +-
...lasstvm_1_1tirx_1_1StmtNode__inherit__graph.svg | 514 +--
.../classtvm_1_1tirx_1_1Stmt__coll__graph.svg | 44 +-
.../classtvm_1_1tirx_1_1Stmt__inherit__graph.svg | 612 ++--
.../classtvm_1_1tirx_1_1TensorType-members.html | 2 +-
.../doxygen/classtvm_1_1tirx_1_1TensorType.html | 10 +-
...classtvm_1_1tirx_1_1TensorTypeNode-members.html | 7 +-
.../classtvm_1_1tirx_1_1TensorTypeNode.html | 46 +-
...stvm_1_1tirx_1_1TensorTypeNode__coll__graph.svg | 406 +--
...m_1_1tirx_1_1TensorTypeNode__inherit__graph.svg | 146 +-
...sstvm_1_1tirx_1_1TilePrimitiveCall-members.html | 8 +-
.../classtvm_1_1tirx_1_1TilePrimitiveCall.html | 50 +-
.../classtvm_1_1tirx_1_1TilePrimitiveCallNode.html | 2 +-
...1tirx_1_1TilePrimitiveCallNode__coll__graph.svg | 294 +-
...m_1_1tirx_1_1TilePrimitiveCall__coll__graph.svg | 82 +-
..._1tirx_1_1TilePrimitiveCall__inherit__graph.svg | 82 +-
.../doxygen/classtvm_1_1tirx_1_1While-members.html | 10 +-
.../api/doxygen/classtvm_1_1tirx_1_1While.html | 50 +-
.../classtvm_1_1tirx_1_1WhileNode-members.html | 2 +
.../api/doxygen/classtvm_1_1tirx_1_1WhileNode.html | 77 +-
.../classtvm_1_1tirx_1_1WhileNode__coll__graph.svg | 294 +-
...asstvm_1_1tirx_1_1WhileNode__inherit__graph.svg | 90 +-
.../classtvm_1_1tirx_1_1While__coll__graph.svg | 78 +-
.../classtvm_1_1tirx_1_1While__inherit__graph.svg | 78 +-
.../api/doxygen/constant__utils_8h_source.html | 6 +-
docs/reference/api/doxygen/cublas_8h_source.html | 4 +-
.../api/doxygen/data__layout_8h_source.html | 2 +-
.../api/doxygen/dataflow__matcher_8h_source.html | 4 +-
.../api/doxygen/dataflow__pattern_8h_source.html | 1273 ++++----
.../dataflow__pattern__functor_8h_source.html | 38 +-
docs/reference/api/doxygen/dense_8h.html | 6 +-
docs/reference/api/doxygen/dense_8h_source.html | 81 +-
.../api/doxygen/detail_2broadcast_8h_source.html | 8 +-
docs/reference/api/doxygen/dilate_8h_source.html | 2 +-
docs/reference/api/doxygen/doc_8h_source.html | 8 +-
.../api/doxygen/doc__translator_8h_source.html | 2 +-
docs/reference/api/doxygen/elemwise_8h_source.html | 6 +-
.../api/doxygen/exec__context_8h_source.html | 10 +-
.../api/doxygen/exec__scope_8h_source.html | 2 +-
docs/reference/api/doxygen/extern_8h_source.html | 20 +-
docs/reference/api/doxygen/flatten_8h_source.html | 4 +-
docs/reference/api/doxygen/functions_a.html | 7 +-
docs/reference/api/doxygen/functions_b.html | 13 +-
docs/reference/api/doxygen/functions_c.html | 16 +-
docs/reference/api/doxygen/functions_d.html | 7 +-
docs/reference/api/doxygen/functions_e.html | 13 +-
docs/reference/api/doxygen/functions_f.html | 2 +
docs/reference/api/doxygen/functions_func.html | 13 +-
docs/reference/api/doxygen/functions_func_b.html | 17 +-
docs/reference/api/doxygen/functions_func_c.html | 10 +-
docs/reference/api/doxygen/functions_func_d.html | 7 +-
docs/reference/api/doxygen/functions_func_e.html | 7 +-
docs/reference/api/doxygen/functions_func_f.html | 2 +
docs/reference/api/doxygen/functions_func_g.html | 8 +-
docs/reference/api/doxygen/functions_func_i.html | 19 +-
docs/reference/api/doxygen/functions_func_l.html | 3 +
docs/reference/api/doxygen/functions_func_m.html | 7 +-
docs/reference/api/doxygen/functions_func_n.html | 1 +
docs/reference/api/doxygen/functions_func_o.html | 4 +-
docs/reference/api/doxygen/functions_func_p.html | 7 +-
docs/reference/api/doxygen/functions_func_r.html | 15 +-
docs/reference/api/doxygen/functions_func_s.html | 15 +-
docs/reference/api/doxygen/functions_func_t.html | 18 +-
docs/reference/api/doxygen/functions_func_v.html | 5 +-
docs/reference/api/doxygen/functions_func_w.html | 6 +-
docs/reference/api/doxygen/functions_g.html | 6 +-
docs/reference/api/doxygen/functions_i.html | 17 +-
docs/reference/api/doxygen/functions_l.html | 7 +-
docs/reference/api/doxygen/functions_m.html | 7 +-
docs/reference/api/doxygen/functions_n.html | 3 +-
docs/reference/api/doxygen/functions_o.html | 6 +-
docs/reference/api/doxygen/functions_p.html | 11 +-
docs/reference/api/doxygen/functions_r.html | 9 +-
docs/reference/api/doxygen/functions_s.html | 15 +-
docs/reference/api/doxygen/functions_t.html | 32 +-
docs/reference/api/doxygen/functions_type.html | 2 +-
docs/reference/api/doxygen/functions_v.html | 7 +-
docs/reference/api/doxygen/functions_vars_b.html | 2 +-
docs/reference/api/doxygen/functions_vars_d.html | 2 +-
docs/reference/api/doxygen/functions_vars_p.html | 2 +-
docs/reference/api/doxygen/functions_vars_v.html | 2 +-
docs/reference/api/doxygen/functions_w.html | 4 +-
docs/reference/api/doxygen/fuse_8h_source.html | 2 +-
docs/reference/api/doxygen/group__norm_8h.html | 4 +-
.../api/doxygen/group__norm_8h_source.html | 226 +-
.../api/doxygen/index__map_8h_source.html | 2 +-
docs/reference/api/doxygen/instance__norm_8h.html | 6 +-
.../api/doxygen/instance__norm_8h_source.html | 172 +-
docs/reference/api/doxygen/int__set_8h_source.html | 4 +-
docs/reference/api/doxygen/ir_2expr_8h_source.html | 1546 ++++-----
.../api/doxygen/ir_2expr__functor_8h_source.html | 82 +-
.../api/doxygen/ir_2function_8h_source.html | 17 +-
docs/reference/api/doxygen/ir_2op_8h_source.html | 2 +-
.../api/doxygen/ir_2prim_2expr_8h_source.html | 1698 +++++-----
.../api/doxygen/ir_2prim_2op_8h_source.html | 20 +-
.../api/doxygen/iter__affine__map_8h_source.html | 451 +--
docs/reference/api/doxygen/layer__norm_8h.html | 6 +-
.../api/doxygen/layer__norm_8h_source.html | 26 +-
docs/reference/api/doxygen/layout_8h_source.html | 431 +--
.../doxygen/local__response__norm_8h_source.html | 73 +-
docs/reference/api/doxygen/mapping_8h_source.html | 2 +-
docs/reference/api/doxygen/module_8h_source.html | 2 +-
docs/reference/api/doxygen/namespacemembers_c.html | 2 +-
docs/reference/api/doxygen/namespacemembers_d.html | 4 +-
.../api/doxygen/namespacemembers_func_c.html | 2 +-
.../api/doxygen/namespacemembers_func_d.html | 4 +-
.../api/doxygen/namespacemembers_func_g.html | 4 +-
.../api/doxygen/namespacemembers_func_i.html | 2 +-
.../api/doxygen/namespacemembers_func_l.html | 2 +-
.../api/doxygen/namespacemembers_func_m.html | 2 +-
.../api/doxygen/namespacemembers_func_p.html | 2 +-
.../api/doxygen/namespacemembers_func_r.html | 2 +-
.../api/doxygen/namespacemembers_func_s.html | 4 +-
docs/reference/api/doxygen/namespacemembers_g.html | 4 +-
docs/reference/api/doxygen/namespacemembers_i.html | 2 +-
docs/reference/api/doxygen/namespacemembers_l.html | 2 +-
docs/reference/api/doxygen/namespacemembers_m.html | 2 +-
docs/reference/api/doxygen/namespacemembers_p.html | 2 +-
docs/reference/api/doxygen/namespacemembers_r.html | 2 +-
docs/reference/api/doxygen/namespacemembers_s.html | 4 +-
.../api/doxygen/namespacetvm_1_1relax.html | 2 +-
...pacetvm_1_1script_1_1ir__builder_1_1s__tir.html | 28 +-
.../reference/api/doxygen/namespacetvm_1_1sym.html | 12 +-
.../api/doxygen/namespacetvm_1_1tirx.html | 12 +-
.../doxygen/namespacetvm_1_1tirx_1_1builtin.html | 6 +-
.../doxygen/namespacetvm_1_1tirx_1_1transform.html | 10 +-
.../api/doxygen/namespacetvm_1_1topi.html | 42 +-
.../api/doxygen/namespacetvm_1_1topi_1_1nn.html | 50 +-
.../api/doxygen/nested__msg_8h_source.html | 58 +-
.../reference/api/doxygen/operation_8h_source.html | 735 ++---
.../api/doxygen/pad__utils_8h_source.html | 2 +-
docs/reference/api/doxygen/pattern_8h.html | 6 +-
docs/reference/api/doxygen/pattern_8h_source.html | 15 +-
docs/reference/api/doxygen/pooling_8h_source.html | 882 +++--
.../api/doxygen/ravel__unravel_8h_source.html | 52 +-
.../reference/api/doxygen/reduction_8h_source.html | 222 +-
.../api/doxygen/relax_2analysis_8h_source.html | 10 +-
...elax_2backend_2adreno_2transform_8h_source.html | 4 +-
...relax_2distributed_2global__info_8h_source.html | 2 +-
.../relax_2distributed_2transform_8h_source.html | 4 +-
.../api/doxygen/relax_2expr_8h_source.html | 918 +++---
.../doxygen/relax_2expr__functor_8h_source.html | 102 +-
.../doxygen/relax_2op__attr__types_8h_source.html | 4 +-
...elax_2script_2ir__builder_2frame_8h_source.html | 250 +-
.../relax_2script_2ir__builder_2ir_8h_source.html | 10 +-
.../api/doxygen/relax_2transform_8h_source.html | 191 +-
.../api/doxygen/relax_2type_8h_source.html | 7 +-
.../api/doxygen/relax_2utils_8h_source.html | 6 +-
docs/reference/api/doxygen/reorg_8h_source.html | 4 +-
.../api/doxygen/s__tir_2analysis_8h_source.html | 8 +-
..._tir_2backend_2adreno_2transform_8h_source.html | 4 +-
..._tir_2script_2ir__builder_2frame_8h_source.html | 2 +-
.../s__tir_2script_2ir__builder_2ir_8h.html | 12 +-
.../s__tir_2script_2ir__builder_2ir_8h_source.html | 112 +-
.../api/doxygen/s__tir_2stmt_8h_source.html | 558 ++--
.../doxygen/s__tir_2stmt__functor_8h_source.html | 4 +-
.../api/doxygen/s__tir_2transform_8h_source.html | 4 +-
docs/reference/api/doxygen/s__tir_2utils_8h.html | 4 +-
.../api/doxygen/s__tir_2utils_8h_source.html | 10 +-
.../api/doxygen/sblock__scope_8h_source.html | 6 +-
docs/reference/api/doxygen/schedule_8h_source.html | 10 +-
.../script_2ir__builder_2base_8h_source.html | 10 +-
.../doxygen/script_2ir__builder_2ir_8h_source.html | 2 +-
docs/reference/api/doxygen/search/all_1.js | 60 +-
docs/reference/api/doxygen/search/all_10.js | 38 +-
docs/reference/api/doxygen/search/all_12.js | 54 +-
docs/reference/api/doxygen/search/all_13.js | 134 +-
docs/reference/api/doxygen/search/all_14.js | 118 +-
docs/reference/api/doxygen/search/all_15.js | 2 +-
docs/reference/api/doxygen/search/all_16.js | 20 +-
docs/reference/api/doxygen/search/all_17.js | 20 +-
docs/reference/api/doxygen/search/all_2.js | 66 +-
docs/reference/api/doxygen/search/all_3.js | 84 +-
docs/reference/api/doxygen/search/all_4.js | 62 +-
docs/reference/api/doxygen/search/all_5.js | 68 +-
docs/reference/api/doxygen/search/all_6.js | 64 +-
docs/reference/api/doxygen/search/all_7.js | 28 +-
docs/reference/api/doxygen/search/all_9.js | 100 +-
docs/reference/api/doxygen/search/all_c.js | 52 +-
docs/reference/api/doxygen/search/all_d.js | 38 +-
docs/reference/api/doxygen/search/all_e.js | 16 +-
docs/reference/api/doxygen/search/all_f.js | 74 +-
docs/reference/api/doxygen/search/functions_0.js | 131 +-
docs/reference/api/doxygen/search/functions_1.js | 187 +-
docs/reference/api/doxygen/search/functions_11.js | 219 +-
docs/reference/api/doxygen/search/functions_12.js | 331 +-
docs/reference/api/doxygen/search/functions_13.js | 226 +-
docs/reference/api/doxygen/search/functions_15.js | 127 +-
docs/reference/api/doxygen/search/functions_16.js | 70 +-
docs/reference/api/doxygen/search/functions_2.js | 250 +-
docs/reference/api/doxygen/search/functions_3.js | 171 +-
docs/reference/api/doxygen/search/functions_4.js | 65 +-
docs/reference/api/doxygen/search/functions_5.js | 112 +-
docs/reference/api/doxygen/search/functions_6.js | 32 +-
docs/reference/api/doxygen/search/functions_8.js | 329 +-
docs/reference/api/doxygen/search/functions_b.js | 143 +-
docs/reference/api/doxygen/search/functions_c.js | 107 +-
docs/reference/api/doxygen/search/functions_d.js | 15 +-
docs/reference/api/doxygen/search/functions_e.js | 88 +-
docs/reference/api/doxygen/search/functions_f.js | 123 +-
docs/reference/api/doxygen/search/typedefs_2.js | 2 +-
docs/reference/api/doxygen/search/variables_1.js | 2 +-
docs/reference/api/doxygen/search/variables_15.js | 2 +-
docs/reference/api/doxygen/search/variables_2.js | 2 +-
docs/reference/api/doxygen/search/variables_4.js | 2 +-
docs/reference/api/doxygen/search/variables_f.js | 2 +-
docs/reference/api/doxygen/softmax_8h_source.html | 10 +-
.../api/doxygen/strided__slice_8h_source.html | 4 +-
...fi_1_1TypeTraits_3_01PrimExpr_01_4-members.html | 14 +-
...tvm_1_1ffi_1_1TypeTraits_3_01PrimExpr_01_4.html | 53 +-
..._1TypeTraits_3_01PrimExpr_01_4__coll__graph.svg | 68 +-
...ypeTraits_3_01PrimExpr_01_4__inherit__graph.svg | 68 +-
.../structtvm_1_1prim_1_1LENode-members.html | 2 +
.../api/doxygen/structtvm_1_1prim_1_1LENode.html | 8 +-
.../structtvm_1_1prim_1_1LENode__coll__graph.svg | 322 +-
...structtvm_1_1prim_1_1LENode__inherit__graph.svg | 90 +-
.../structtvm_1_1s__tir_1_1MemCpyDetails.html | 2 +-
...tvm_1_1s__tir_1_1MemCpyDetails__coll__graph.svg | 112 +-
.../doxygen/structtvm_1_1tirx_1_1AxisRange.html | 14 +-
...structtvm_1_1tirx_1_1AxisRange__coll__graph.svg | 162 +-
.../api/doxygen/task__scheduler_8h_source.html | 2 +-
.../api/doxygen/te_2tensor_8h_source.html | 185 +-
.../api/doxygen/tensor__intrin_8h_source.html | 71 +-
.../api/doxygen/tensor__utils_8h_source.html | 4 +-
.../api/doxygen/thread__bind_8h_source.html | 2 +-
.../api/doxygen/tile__primitive_8h_source.html | 477 +--
.../api/doxygen/tir__pattern_8h_source.html | 73 +-
.../api/doxygen/tirx_2analysis_8h_source.html | 4 +-
.../api/doxygen/tirx_2expr_8h_source.html | 248 +-
.../api/doxygen/tirx_2function_8h_source.html | 112 +-
docs/reference/api/doxygen/tirx_2op_8h_source.html | 8 +-
.../doxygen/tirx_2op__attr__types_8h_source.html | 2 +-
...tirx_2script_2ir__builder_2frame_8h_source.html | 691 ++--
.../tirx_2script_2ir__builder_2ir_8h_source.html | 24 +-
.../api/doxygen/tirx_2stmt_8h_source.html | 1457 +++++----
.../api/doxygen/tirx_2stmt__functor_8h_source.html | 184 +-
docs/reference/api/doxygen/tirx_2transform_8h.html | 4 +-
.../api/doxygen/tirx_2transform_8h_source.html | 8 +-
.../api/doxygen/tirx_2type_8h_source.html | 266 +-
docs/reference/api/doxygen/topi_2nn_8h.html | 12 +-
docs/reference/api/doxygen/topi_2nn_8h_source.html | 747 +++--
docs/reference/api/doxygen/topi_2transform_8h.html | 6 +-
.../api/doxygen/topi_2transform_8h_source.html | 3433 ++++++++++----------
.../api/doxygen/type__functor_8h_source.html | 2 +-
docs/reference/api/doxygen/var_8h_source.html | 182 +-
.../api/doxygen/vector__expr_8h_source.html | 239 +-
docs/reference/api/python/relax/distributed.html | 2 +-
docs/reference/api/python/relax/op.html | 10 +-
docs/reference/api/python/relax/relax.html | 8 +-
docs/reference/api/python/relax/training.html | 2 +-
docs/reference/api/python/s_tir/schedule.html | 7 +-
docs/reference/api/python/script/script.html | 10 +-
.../api/typedoc/classes/ArtifactCache.html | 14 +-
.../classes/ArtifactCrossOriginStorageCache.html | 12 +-
.../typedoc/classes/ArtifactIndexedDBCache.html | 16 +-
.../api/typedoc/classes/ArtifactOPFSCache.html | 14 +-
docs/reference/api/typedoc/classes/CacheState.html | 10 +-
docs/reference/api/typedoc/classes/DLDataType.html | 14 +-
docs/reference/api/typedoc/classes/DLDevice.html | 12 +-
docs/reference/api/typedoc/classes/Instance.html | 120 +-
docs/reference/api/typedoc/classes/LRUCache.html | 14 +-
.../classes/LinearCongruentialGenerator.html | 20 +-
docs/reference/api/typedoc/classes/Module.html | 16 +-
docs/reference/api/typedoc/classes/RPCServer.html | 16 +-
docs/reference/api/typedoc/classes/Scalar.html | 8 +-
docs/reference/api/typedoc/classes/TVMArray.html | 16 +-
docs/reference/api/typedoc/classes/TVMObject.html | 12 +-
docs/reference/api/typedoc/classes/Tensor.html | 36 +-
.../api/typedoc/classes/VirtualMachine.html | 10 +-
.../classes/_internal_.AsyncifyHandler.html | 14 +-
.../classes/_internal_.CachedCallStack.html | 38 +-
.../classes/_internal_.CanvasRenderManager.html | 10 +-
.../classes/_internal_.CrossOriginStorage.html | 12 +-
.../typedoc/classes/_internal_.Environment.html | 14 +-
.../api/typedoc/classes/_internal_.FFILibrary.html | 22 +-
.../api/typedoc/classes/_internal_.Memory.html | 50 +-
.../api/typedoc/classes/_internal_.OPFSStore.html | 16 +-
.../typedoc/classes/_internal_.PackedFuncCell.html | 12 +-
.../typedoc/classes/_internal_.RuntimeContext.html | 74 +-
.../typedoc/classes/_internal_.WebGPUContext.html | 30 +-
.../enums/_internal_.AsyncifyStateKind.html | 8 +-
.../typedoc/enums/_internal_.RPCServerState.html | 14 +-
docs/reference/api/typedoc/functions/assert.html | 2 +-
.../api/typedoc/functions/createArtifactCache.html | 2 +-
.../api/typedoc/functions/createPolyfillWASI.html | 2 +-
.../api/typedoc/functions/deleteTensorCache.html | 4 +-
.../api/typedoc/functions/detectGPUDevice.html | 2 +-
.../api/typedoc/functions/hasTensorInCache.html | 4 +-
.../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 +-
.../interfaces/FetchTensorCacheOptions.html | 12 +-
.../typedoc/interfaces/GPUDeviceDetectOutput.html | 8 +-
.../api/typedoc/interfaces/InitProgressReport.html | 8 +-
.../api/typedoc/interfaces/LibraryProvider.html | 6 +-
.../interfaces/TensorCacheAccessOptions.html | 10 +-
.../_internal_.CrossOriginHashDescriptor.html | 6 +-
.../_internal_.CrossOriginStorageAPI.html | 4 +-
.../_internal_.CrossOriginStorageHandle.html | 6 +-
...CrossOriginStorageRequestFileHandleOptions.html | 6 +-
.../_internal_.CrossOriginStorageWritable.html | 6 +-
.../interfaces/_internal_.FunctionInfo.html | 8 +-
.../interfaces/_internal_.OPFSDirectoryHandle.html | 8 +-
.../interfaces/_internal_.OPFSFileHandle.html | 8 +-
.../interfaces/_internal_.OPFSStorageManager.html | 4 +-
.../interfaces/_internal_.OPFSStoreRecord.html | 8 +-
.../interfaces/_internal_.OPFSStoredEntry.html | 6 +-
.../_internal_.OPFSSyncAccessHandle.html | 14 +-
.../_internal_.OPFSWritableFileStream.html | 6 +-
.../interfaces/_internal_.PackedCallFrame.html | 16 +-
.../interfaces/_internal_.TensorCacheEntry.html | 14 +-
.../interfaces/_internal_.TensorShardEntry.html | 10 +-
.../interfaces/_internal_.WasmByteArraySource.html | 8 +-
.../api/typedoc/types/ArtifactCacheType.html | 2 +-
.../api/typedoc/types/InitProgressCallback.html | 2 +-
.../api/typedoc/types/OPFSAccessMode.html | 2 +-
docs/reference/api/typedoc/types/PackedFunc.html | 2 +-
docs/reference/api/typedoc/types/RNGState.html | 2 +-
.../typedoc/types/_internal_.AsyncPackedFunc.html | 2 +-
.../types/_internal_.FObjectConstructor.html | 2 +-
.../types/_internal_.FTVMFFIWasmSafeCallType.html | 2 +-
.../types/_internal_.FTVMWasmAllocSpace.html | 2 +-
.../types/_internal_.FTVMWasmFreeSpace.html | 2 +-
.../types/_internal_.OPFSEffectiveAccessMode.html | 2 +-
.../types/_internal_.OPFSSyncAccessHandleMode.html | 2 +-
.../api/typedoc/types/_internal_.Pointer.html | 2 +-
.../api/typedoc/types/_internal_.RequestLike.html | 2 +-
.../typedoc/types/_internal_.TVMObjectBase.html | 2 +-
docs/searchindex.js | 2 +-
docs/sg_execution_times.html | 36 +-
docs/tirx/api/tirx.html | 4 +-
1020 files changed, 52942 insertions(+), 43449 deletions(-)
diff --git a/docs/_downloads/050dda7aeddba33e083ae36606d3270f/import_model.zip b/docs/_downloads/050dda7aeddba33e083ae36606d3270f/import_model.zip
index 1b3a567c8d5..03ec5e8c0ce 100644
Binary files a/docs/_downloads/050dda7aeddba33e083ae36606d3270f/import_model.zip and b/docs/_downloads/050dda7aeddba33e083ae36606d3270f/import_model.zip differ
diff --git a/docs/_downloads/0eec6b3ea6ba863d0ed14b037c4b83ea/dlight_gpu_scheduling.zip b/docs/_downloads/0eec6b3ea6ba863d0ed14b037c4b83ea/dlight_gpu_scheduling.zip
index 1e4c502e777..41d62d86907 100644
Binary files a/docs/_downloads/0eec6b3ea6ba863d0ed14b037c4b83ea/dlight_gpu_scheduling.zip and b/docs/_downloads/0eec6b3ea6ba863d0ed14b037c4b83ea/dlight_gpu_scheduling.zip differ
diff --git a/docs/_downloads/11c11e53c7dace51a8be968ee169ed0d/ir_module.zip b/docs/_downloads/11c11e53c7dace51a8be968ee169ed0d/ir_module.zip
index 43b5c61f621..34a0c8d1a22 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 06519da4ec3..d2e47f91f00 100644
Binary files a/docs/_downloads/18ba0d2ee8120824175aaef66bc9c9bf/tir_transformation.zip and b/docs/_downloads/18ba0d2ee8120824175aaef66bc9c9bf/tir_transformation.zip differ
diff --git a/docs/_downloads/249a4acaa182fd00b9c381b53025777d/meta_schedule.zip b/docs/_downloads/249a4acaa182fd00b9c381b53025777d/meta_schedule.zip
index 8d03937a0ec..53157f41150 100644
Binary files a/docs/_downloads/249a4acaa182fd00b9c381b53025777d/meta_schedule.zip and b/docs/_downloads/249a4acaa182fd00b9c381b53025777d/meta_schedule.zip differ
diff --git a/docs/_downloads/373278b9f6fc686adeaa0219598fe78b/mix_python_and_tvm_with_pymodule.zip b/docs/_downloads/373278b9f6fc686adeaa0219598fe78b/mix_python_and_tvm_with_pymodule.zip
index 52ddb27e82e..ca50a0066f9 100644
Binary files a/docs/_downloads/373278b9f6fc686adeaa0219598fe78b/mix_python_and_tvm_with_pymodule.zip and b/docs/_downloads/373278b9f6fc686adeaa0219598fe78b/mix_python_and_tvm_with_pymodule.zip differ
diff --git a/docs/_downloads/4753776bbe68e7c9ee4d19117973fc8b/relax_creation.zip b/docs/_downloads/4753776bbe68e7c9ee4d19117973fc8b/relax_creation.zip
index 3106dee5b63..aadf7259d25 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 097506a66c8..c550d0d45c9 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 ce5275c2a83..a970cef74b2 100644
Binary files a/docs/_downloads/83e85f38cf16f1d926d06615fd54095c/optimize_llm.zip and b/docs/_downloads/83e85f38cf16f1d926d06615fd54095c/optimize_llm.zip differ
diff --git a/docs/_downloads/8c05f1d580979a2c26428a509c07ed72/bring_your_own_codegen.zip b/docs/_downloads/8c05f1d580979a2c26428a509c07ed72/bring_your_own_codegen.zip
index e2d5894e794..39713ef1a8c 100644
Binary files a/docs/_downloads/8c05f1d580979a2c26428a509c07ed72/bring_your_own_codegen.zip and b/docs/_downloads/8c05f1d580979a2c26428a509c07ed72/bring_your_own_codegen.zip differ
diff --git a/docs/_downloads/a7dd7652b2ad50f82d7b739ce3645799/e2e_opt_model.zip b/docs/_downloads/a7dd7652b2ad50f82d7b739ce3645799/e2e_opt_model.zip
index 5b16c1cc971..5630f22dc53 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 4800e2a5ddd..459e359e8bb 100644
Binary files a/docs/_downloads/bb7db6678496193ed0c55d3b95fa6778/quick_start.zip and b/docs/_downloads/bb7db6678496193ed0c55d3b95fa6778/quick_start.zip differ
diff --git a/docs/_downloads/bc875d02d5382abc9ea5fb9eb2c1de2c/export_and_load_executable.zip b/docs/_downloads/bc875d02d5382abc9ea5fb9eb2c1de2c/export_and_load_executable.zip
index 502f9df78f6..ed353ddf715 100644
Binary files a/docs/_downloads/bc875d02d5382abc9ea5fb9eb2c1de2c/export_and_load_executable.zip and b/docs/_downloads/bc875d02d5382abc9ea5fb9eb2c1de2c/export_and_load_executable.zip differ
diff --git a/docs/_downloads/be26483bb70b8468499a01c55e8e866c/tir_creation.zip b/docs/_downloads/be26483bb70b8468499a01c55e8e866c/tir_creation.zip
index 2750d4db19d..5aa2d29321b 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 42ddfe5f055..6da4f1deba2 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 184fd48955b..01a8eed77ca 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 b/docs/_sources/deep_dive/relax/tutorials/sg_execution_times.rst
index 425ebc8fd1d..da52bd520aa 100644
--- a/docs/_sources/deep_dive/relax/tutorials/sg_execution_times.rst
+++ b/docs/_sources/deep_dive/relax/tutorials/sg_execution_times.rst
@@ -6,7 +6,7 @@
Computation times
=================
-**00:00.204** total execution time for 2 files **from deep_dive/relax/tutorials**:
+**00:00.158** 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.109
+ - 00:00.086
- 0.0
* - :ref:`sphx_glr_deep_dive_relax_tutorials_relax_transformation.py` (``relax_transformation.py``)
- - 00:00.095
+ - 00:00.072
- 0.0
diff --git a/docs/_sources/deep_dive/tensor_ir/tutorials/sg_execution_times.rst b/docs/_sources/deep_dive/tensor_ir/tutorials/sg_execution_times.rst
index 1e8a418df15..7620adedd11 100644
--- a/docs/_sources/deep_dive/tensor_ir/tutorials/sg_execution_times.rst
+++ b/docs/_sources/deep_dive/tensor_ir/tutorials/sg_execution_times.rst
@@ -6,7 +6,7 @@
Computation times
=================
-**00:00.705** total execution time for 4 files **from deep_dive/tensor_ir/tutorials**:
+**00:00.579** total execution time for 4 files **from deep_dive/tensor_ir/tutorials**:
.. container::
@@ -33,14 +33,14 @@ Computation times
- Time
- Mem (MB)
* - :ref:`sphx_glr_deep_dive_tensor_ir_tutorials_tir_transformation.py` (``tir_transformation.py``)
- - 00:00.318
+ - 00:00.266
- 0.0
* - :ref:`sphx_glr_deep_dive_tensor_ir_tutorials_dlight_gpu_scheduling.py` (``dlight_gpu_scheduling.py``)
- - 00:00.212
+ - 00:00.164
- 0.0
* - :ref:`sphx_glr_deep_dive_tensor_ir_tutorials_tir_creation.py` (``tir_creation.py``)
- - 00:00.164
+ - 00:00.140
- 0.0
* - :ref:`sphx_glr_deep_dive_tensor_ir_tutorials_meta_schedule.py` (``meta_schedule.py``)
- - 00:00.011
+ - 00:00.010
- 0.0
diff --git a/docs/_sources/deep_dive/tensor_ir/tutorials/tir_transformation.rst b/docs/_sources/deep_dive/tensor_ir/tutorials/tir_transformation.rst
index a3c4a2084f8..2beec46ac75 100644
--- a/docs/_sources/deep_dive/tensor_ir/tutorials/tir_transformation.rst
+++ b/docs/_sources/deep_dive/tensor_ir/tutorials/tir_transformation.rst
@@ -121,7 +121,7 @@ original implementation.
Execution time summary:
mean (ms) median (ms) max (ms) min (ms) std (ms)
- 2.7837 2.7837 2.7837 2.7837 0.0000
+ 2.5959 2.5959 2.5959 2.5959 0.0000
@@ -313,7 +313,7 @@ action involves reordering these two loops.
Execution time summary:
mean (ms) median (ms) max (ms) min (ms) std (ms)
- 0.8672 0.8672 0.8672 0.8672 0.0000
+ 0.8629 0.8629 0.8629 0.8629 0.0000
@@ -455,7 +455,7 @@ from the reduction update via the **decompose_reduction** primitive.
Execution time summary:
mean (ms) median (ms) max (ms) min (ms) std (ms)
- 0.3371 0.3371 0.3371 0.3371 0.0000
+ 0.3511 0.3511 0.3511 0.3511 0.0000
diff --git a/docs/_sources/get_started/tutorials/ir_module.rst b/docs/_sources/get_started/tutorials/ir_module.rst
index 1d07e1fa242..7117a68f31f 100644
--- a/docs/_sources/get_started/tutorials/ir_module.rst
+++ b/docs/_sources/get_started/tutorials/ir_module.rst
@@ -764,8 +764,9 @@ We can deploy the IRModule on CPU by specifying the target as ``llvm``.
.. code-block:: none
- [[-0.03631149 0.28754458 0.1807923 -0.1895414 0.06168855 0.00620006
- 0.12755947 -0.1032482 0.08877952 0.03172699]]
+ [[ 2.57427633e-01 -1.13652125e-02 -1.52808681e-01 3.21037509e-02
+ 1.04500744e-02 -5.98616451e-02 1.62228942e-04 -1.26062483e-02
+ 1.80647656e-01 -2.17361689e-01]]
@@ -831,8 +832,9 @@ Now we can compile the IRModule on GPU, the similar way as we did on CPU.
.. code-block:: none
- [[-0.03631151 0.28754455 0.18079233 -0.18954137 0.06168859 0.00620007
- 0.12755948 -0.10324825 0.08877952 0.03172702]]
+ [[ 2.5742754e-01 -1.1365131e-02 -1.5280870e-01 3.2103714e-02
+ 1.0450086e-02 -5.9861653e-02 1.6223267e-04 -1.2606308e-02
+ 1.8064769e-01 -2.1736175e-01]]
diff --git a/docs/_sources/get_started/tutorials/quick_start.rst b/docs/_sources/get_started/tutorials/quick_start.rst
index ad036cb63a2..1c5584207c6 100644
--- a/docs/_sources/get_started/tutorials/quick_start.rst
+++ b/docs/_sources/get_started/tutorials/quick_start.rst
@@ -226,8 +226,8 @@ different devices.
.. code-block:: none
- [[26131.809 24740.76 25151.146 25819.623 25224.21 23682.678 26168.857
- 25200.941 24416.607 25235.14 ]]
+ [[26497.604 24642.945 25060.455 24325.336 28055.262 25575.365 25298.54
+ 25421.484 26228.72 26585.797]]
diff --git a/docs/_sources/get_started/tutorials/sg_execution_times.rst b/docs/_sources/get_started/tutorials/sg_execution_times.rst
index 4a724897aac..bccf2474a8b 100644
--- a/docs/_sources/get_started/tutorials/sg_execution_times.rst
+++ b/docs/_sources/get_started/tutorials/sg_execution_times.rst
@@ -6,7 +6,7 @@
Computation times
=================
-**00:06.407** total execution time for 2 files **from get_started/tutorials**:
+**00:05.556** 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:06.212
+ - 00:05.392
- 0.0
* - :ref:`sphx_glr_get_started_tutorials_quick_start.py` (``quick_start.py``)
- - 00:00.195
+ - 00:00.165
- 0.0
diff --git a/docs/_sources/how_to/tutorials/cross_compilation_and_rpc.rst b/docs/_sources/how_to/tutorials/cross_compilation_and_rpc.rst
index e121d1bf2f5..2948704e017 100644
--- a/docs/_sources/how_to/tutorials/cross_compilation_and_rpc.rst
+++ b/docs/_sources/how_to/tutorials/cross_compilation_and_rpc.rst
@@ -275,7 +275,7 @@ device and returns the measured cost. Network overhead is excluded.
.. code-block:: none
- 1.09e-07 secs/op
+ 9.4e-08 secs/op
@@ -864,8 +864,8 @@ This workflow is applicable to various deployment scenarios:
Converted PyTorch model to Relax:
- Number of parameters: 4
Using local target for demonstration
- Exported library to: /tmp/tmph202itlk/model_deployed.so
- Saved parameters to: /tmp/tmph202itlk/model_params.npz
+ Exported library to: /tmp/tmpr0dqhlc0/model_deployed.so
+ Saved parameters to: /tmp/tmpr0dqhlc0/model_params.npz
RPC workflow (works for any remote device):
==================================================
diff --git a/docs/_sources/how_to/tutorials/e2e_opt_model.rst b/docs/_sources/how_to/tutorials/e2e_opt_model.rst
index 822555970f0..c7536ca000f 100644
--- a/docs/_sources/how_to/tutorials/e2e_opt_model.rst
+++ b/docs/_sources/how_to/tutorials/e2e_opt_model.rst
@@ -54,7 +54,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] 67%|██████▋ | 29.8M/44.7M [00:00<00:00, 312MB/s] 100%|██████████| 44.7M/44.7M [00:00<00:00, 336MB/s]
+ 0%| | 0.00/44.7M [00:00<?, ?B/s] 70%|██████▉ | 31.1M/44.7M [00:00<00:00, 326MB/s] 100%|██████████| 44.7M/44.7M [00:00<00:00, 354MB/s]
diff --git a/docs/_sources/how_to/tutorials/sg_execution_times.rst b/docs/_sources/how_to/tutorials/sg_execution_times.rst
index b2e5503d5a7..8d6ab30b61f 100644
--- a/docs/_sources/how_to/tutorials/sg_execution_times.rst
+++ b/docs/_sources/how_to/tutorials/sg_execution_times.rst
@@ -6,7 +6,7 @@
Computation times
=================
-**00:18.602** total execution time for 8 files **from how_to/tutorials**:
+**00:15.413** total execution time for 8 files **from how_to/tutorials**:
.. container::
@@ -33,25 +33,25 @@ Computation times
- Time
- Mem (MB)
* - :ref:`sphx_glr_how_to_tutorials_optimize_llm.py` (``optimize_llm.py``)
- - 00:13.188
+ - 00:10.646
- 0.0
* - :ref:`sphx_glr_how_to_tutorials_import_model.py` (``import_model.py``)
- - 00:03.678
+ - 00:03.292
- 0.0
* - :ref:`sphx_glr_how_to_tutorials_e2e_opt_model.py` (``e2e_opt_model.py``)
- - 00:00.734
+ - 00:00.656
- 0.0
* - :ref:`sphx_glr_how_to_tutorials_cross_compilation_and_rpc.py` (``cross_compilation_and_rpc.py``)
- - 00:00.591
+ - 00:00.475
- 0.0
* - :ref:`sphx_glr_how_to_tutorials_customize_opt.py` (``customize_opt.py``)
- - 00:00.360
+ - 00:00.302
- 0.0
* - :ref:`sphx_glr_how_to_tutorials_bring_your_own_codegen.py` (``bring_your_own_codegen.py``)
- - 00:00.043
+ - 00:00.035
- 0.0
* - :ref:`sphx_glr_how_to_tutorials_mix_python_and_tvm_with_pymodule.py` (``mix_python_and_tvm_with_pymodule.py``)
- - 00:00.005
+ - 00:00.004
- 0.0
* - :ref:`sphx_glr_how_to_tutorials_export_and_load_executable.py` (``export_and_load_executable.py``)
- 00:00.002
diff --git a/docs/_sources/sg_execution_times.rst b/docs/_sources/sg_execution_times.rst
index 4bb22c43717..431cb2edc36 100644
--- a/docs/_sources/sg_execution_times.rst
+++ b/docs/_sources/sg_execution_times.rst
@@ -6,7 +6,7 @@
Computation times
=================
-**00:25.918** total execution time for 16 files **from all galleries**:
+**00:21.705** total execution time for 16 files **from all galleries**:
.. container::
@@ -33,49 +33,49 @@ Computation times
- Time
- Mem (MB)
* - :ref:`sphx_glr_how_to_tutorials_optimize_llm.py` (``../how_to/tutorials/optimize_llm.py``)
- - 00:13.188
+ - 00:10.646
- 0.0
* - :ref:`sphx_glr_get_started_tutorials_ir_module.py` (``../get_started/tutorials/ir_module.py``)
- - 00:06.212
+ - 00:05.392
- 0.0
* - :ref:`sphx_glr_how_to_tutorials_import_model.py` (``../how_to/tutorials/import_model.py``)
- - 00:03.678
+ - 00:03.292
- 0.0
* - :ref:`sphx_glr_how_to_tutorials_e2e_opt_model.py` (``../how_to/tutorials/e2e_opt_model.py``)
- - 00:00.734
+ - 00:00.656
- 0.0
* - :ref:`sphx_glr_how_to_tutorials_cross_compilation_and_rpc.py` (``../how_to/tutorials/cross_compilation_and_rpc.py``)
- - 00:00.591
+ - 00:00.475
- 0.0
* - :ref:`sphx_glr_how_to_tutorials_customize_opt.py` (``../how_to/tutorials/customize_opt.py``)
- - 00:00.360
+ - 00:00.302
- 0.0
* - :ref:`sphx_glr_deep_dive_tensor_ir_tutorials_tir_transformation.py` (``../deep_dive/tensor_ir/tutorials/tir_transformation.py``)
- - 00:00.318
- - 0.0
- * - :ref:`sphx_glr_deep_dive_tensor_ir_tutorials_dlight_gpu_scheduling.py` (``../deep_dive/tensor_ir/tutorials/dlight_gpu_scheduling.py``)
- - 00:00.212
+ - 00:00.266
- 0.0
* - :ref:`sphx_glr_get_started_tutorials_quick_start.py` (``../get_started/tutorials/quick_start.py``)
- - 00:00.195
+ - 00:00.165
- 0.0
- * - :ref:`sphx_glr_deep_dive_tensor_ir_tutorials_tir_creation.py` (``../deep_dive/tensor_ir/tutorials/tir_creation.py``)
+ * - :ref:`sphx_glr_deep_dive_tensor_ir_tutorials_dlight_gpu_scheduling.py` (``../deep_dive/tensor_ir/tutorials/dlight_gpu_scheduling.py``)
- 00:00.164
- 0.0
+ * - :ref:`sphx_glr_deep_dive_tensor_ir_tutorials_tir_creation.py` (``../deep_dive/tensor_ir/tutorials/tir_creation.py``)
+ - 00:00.140
+ - 0.0
* - :ref:`sphx_glr_deep_dive_relax_tutorials_relax_creation.py` (``../deep_dive/relax/tutorials/relax_creation.py``)
- - 00:00.109
+ - 00:00.086
- 0.0
* - :ref:`sphx_glr_deep_dive_relax_tutorials_relax_transformation.py` (``../deep_dive/relax/tutorials/relax_transformation.py``)
- - 00:00.095
+ - 00:00.072
- 0.0
* - :ref:`sphx_glr_how_to_tutorials_bring_your_own_codegen.py` (``../how_to/tutorials/bring_your_own_codegen.py``)
- - 00:00.043
+ - 00:00.035
- 0.0
* - :ref:`sphx_glr_deep_dive_tensor_ir_tutorials_meta_schedule.py` (``../deep_dive/tensor_ir/tutorials/meta_schedule.py``)
- - 00:00.011
+ - 00:00.010
- 0.0
* - :ref:`sphx_glr_how_to_tutorials_mix_python_and_tvm_with_pymodule.py` (``../how_to/tutorials/mix_python_and_tvm_with_pymodule.py``)
- - 00:00.005
+ - 00:00.004
- 0.0
* - :ref:`sphx_glr_how_to_tutorials_export_and_load_executable.py` (``../how_to/tutorials/export_and_load_executable.py``)
- 00:00.002
diff --git a/docs/commit_hash b/docs/commit_hash
index a2bae2bf393..d0b2d308dc7 100644
--- a/docs/commit_hash
+++ b/docs/commit_hash
@@ -1 +1 @@
-5128fc065591cc4b6e2a0fc9b51718611cc4c0ea
+2eb788be110d83fbb04da848161e7feb62be8574
diff --git a/docs/deep_dive/relax/tutorials/sg_execution_times.html b/docs/deep_dive/relax/tutorials/sg_execution_times.html
index 51ee27a6b4d..8b3e5540ebd 100644
--- a/docs/deep_dive/relax/tutorials/sg_execution_times.html
+++ b/docs/deep_dive/relax/tutorials/sg_execution_times.html
@@ -634,7 +634,7 @@ document.write(`
<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.204</strong> total execution time for 2 files <strong>from deep_dive/relax/tutorials</strong>:</p>
+<p><strong>00:00.158</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" />
@@ -656,11 +656,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.109</p></td>
+<td><p>00:00.086</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.095</p></td>
+<td><p>00:00.072</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 c786033c4d7..fbe40c4c3d6 100644
--- a/docs/deep_dive/tensor_ir/tutorials/sg_execution_times.html
+++ b/docs/deep_dive/tensor_ir/tutorials/sg_execution_times.html
@@ -634,7 +634,7 @@ document.write(`
<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.705</strong> total execution time for 4 files <strong>from deep_dive/tensor_ir/tutorials</strong>:</p>
+<p><strong>00:00.579</strong> total execution time for 4 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" />
@@ -656,19 +656,19 @@ $(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.318</p></td>
+<td><p>00:00.266</p></td>
<td><p>0.0</p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference internal" href="dlight_gpu_scheduling.html#sphx-glr-deep-dive-tensor-ir-tutorials-dlight-gpu-scheduling-py"><span class="std std-ref">DLight: Rule-Based GPU Scheduling</span></a> (<code class="docutils literal notranslate"><span class="pre">dlight_gpu_scheduling.py</span></code>)</p></td>
-<td><p>00:00.212</p></td>
+<td><p>00:00.164</p></td>
<td><p>0.0</p></td>
</tr>
<tr class="row-even"><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.164</p></td>
+<td><p>00:00.140</p></td>
<td><p>0.0</p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference internal" href="meta_schedule.html#sphx-glr-deep-dive-tensor-ir-tutorials-meta-schedule-py"><span class="std std-ref">MetaSchedule: Search-Based Auto-Tuning</span></a> (<code class="docutils literal notranslate"><span class="pre">meta_schedule.py</span></code>)</p></td>
-<td><p>00:00.011</p></td>
+<td><p>00:00.010</p></td>
<td><p>0.0</p></td>
</tr>
</tbody>
diff --git a/docs/deep_dive/tensor_ir/tutorials/tir_transformation.html b/docs/deep_dive/tensor_ir/tutorials/tir_transformation.html
index 20fe180b2de..d103725dbff 100644
--- a/docs/deep_dive/tensor_ir/tutorials/tir_transformation.html
+++ b/docs/deep_dive/tensor_ir/tutorials/tir_transformation.html
@@ -722,7 +722,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.7837 2.7837 2.7837 2.7837 0.0000
+ 2.5959 2.5959 2.5959 2.5959 0.0000
</pre></div>
</div>
<section id="initialization-schedule">
@@ -838,7 +838,7 @@ class Module:
Execution time summary:
mean (ms) median (ms) max (ms) min (ms) std (ms)
- 0.8672 0.8672 0.8672 0.8672 0.0000
+ 0.8629 0.8629 0.8629 0.8629 0.0000
</pre></div>
</div>
</section>
@@ -946,7 +946,7 @@ class Module:
Execution time summary:
mean (ms) median (ms) max (ms) min (ms) std (ms)
- 0.3371 0.3371 0.3371 0.3371 0.0000
+ 0.3511 0.3511 0.3511 0.3511 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 5a64773576a..660cebffc81 100644
--- a/docs/get_started/tutorials/ir_module.html
+++ b/docs/get_started/tutorials/ir_module.html
@@ -1229,8 +1229,9 @@ 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.03631149 0.28754458 0.1807923 -0.1895414 0.06168855 0.00620006
- 0.12755947 -0.1032482 0.08877952 0.03172699]]
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>[[ 2.57427633e-01 -1.13652125e-02 -1.52808681e-01 3.21037509e-02
+ 1.04500744e-02 -5.98616451e-02 1.62228942e-04 -1.26062483e-02
+ 1.80647656e-01 -2.17361689e-01]]
</pre></div>
</div>
</section>
@@ -1264,8 +1265,9 @@ 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.03631151 0.28754455 0.18079233 -0.18954137 0.06168859 0.00620007
- 0.12755948 -0.10324825 0.08877952 0.03172702]]
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>[[ 2.5742754e-01 -1.1365131e-02 -1.5280870e-01 3.2103714e-02
+ 1.0450086e-02 -5.9861653e-02 1.6223267e-04 -1.2606308e-02
+ 1.8064769e-01 -2.1736175e-01]]
</pre></div>
</div>
</section>
diff --git a/docs/get_started/tutorials/quick_start.html b/docs/get_started/tutorials/quick_start.html
index 581dded356c..16e9ed434e0 100644
--- a/docs/get_started/tutorials/quick_start.html
+++ b/docs/get_started/tutorials/quick_start.html
@@ -804,8 +804,8 @@ different devices.</p>
<span class="nb">print</span><span class="p">(</span><span class="n">vm</span><span class="p">[</span><span class="s2">"forward"</span><span class="p">](</span><span class="n">tvm_data</span><span class="p">,</span> <span class="o">*</span><a href="https://docs.python.org/3/builtins/stdtypes.html#list" title="builtins.list" class="sphx-glr-backref-module-builtins sphx-glr-backref-type-py-class sphx-glr-backref-instance"><span class="n">params</span></a><span class="p">)</span>< [...]
</pre></div>
</div>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>[[26131.809 24740.76 25151.146 25819.623 25224.21 23682.678 26168.857
- 25200.941 24416.607 25235.14 ]]
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>[[26497.604 24642.945 25060.455 24325.336 28055.262 25575.365 25298.54
+ 25421.484 26228.72 26585.797]]
</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 fefa6bf3914..cc92657b4af 100644
--- a/docs/get_started/tutorials/sg_execution_times.html
+++ b/docs/get_started/tutorials/sg_execution_times.html
@@ -634,7 +634,7 @@ document.write(`
<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:06.407</strong> total execution time for 2 files <strong>from get_started/tutorials</strong>:</p>
+<p><strong>00:05.556</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" />
@@ -656,11 +656,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:06.212</p></td>
+<td><p>00:05.392</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.195</p></td>
+<td><p>00:00.165</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 02a291171b4..12ebc631858 100644
--- a/docs/how_to/tutorials/cross_compilation_and_rpc.html
+++ b/docs/how_to/tutorials/cross_compilation_and_rpc.html
@@ -833,7 +833,7 @@ device and returns the measured cost. Network overhead is excluded.</p>
<span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">"</span><span class="si">{</span><span class="n">cost</span><span class="si">:</span><span class="s2">g</span><span class="si">}</span><span class="s2"> secs/op"</span><span class="p">)</span>
</pre></div>
</div>
-<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>1.09e-07 secs/op
+<div class="sphx-glr-script-out highlight-none notranslate"><div class="highlight"><pre><span></span>9.4e-08 secs/op
</pre></div>
</div>
</section>
@@ -1362,8 +1362,8 @@ for ONNX models. Simply replace <code class="docutils literal notranslate"><span
Converted PyTorch model to Relax:
- Number of parameters: 4
Using local target for demonstration
-Exported library to: /tmp/tmph202itlk/model_deployed.so
-Saved parameters to: /tmp/tmph202itlk/model_params.npz
+Exported library to: /tmp/tmpr0dqhlc0/model_deployed.so
+Saved parameters to: /tmp/tmpr0dqhlc0/model_params.npz
RPC workflow (works for any remote device):
==================================================
diff --git a/docs/how_to/tutorials/e2e_opt_model.html b/docs/how_to/tutorials/e2e_opt_model.html
index 47077970531..aeb7cb61bdd 100644
--- a/docs/how_to/tutorials/e2e_opt_model.html
+++ b/docs/how_to/tutorials/e2e_opt_model.html
@@ -674,8 +674,8 @@ 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]
- 67%|██████▋ | 29.8M/44.7M [00:00<00:00, 312MB/s]
-100%|██████████| 44.7M/44.7M [00:00<00:00, 336MB/s]
+ 70%|██████▉ | 31.1M/44.7M [00:00<00:00, 326MB/s]
+100%|██████████| 44.7M/44.7M [00:00<00:00, 354MB/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 e0f17d75b87..c303790aa9f 100644
--- a/docs/how_to/tutorials/sg_execution_times.html
+++ b/docs/how_to/tutorials/sg_execution_times.html
@@ -634,7 +634,7 @@ document.write(`
<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:18.602</strong> total execution time for 8 files <strong>from how_to/tutorials</strong>:</p>
+<p><strong>00:15.413</strong> total execution time for 8 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" />
@@ -656,31 +656,31 @@ $(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:13.188</p></td>
+<td><p>00:10.646</p></td>
<td><p>0.0</p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference internal" href="import_model.html#sphx-glr-how-to-tutorials-import-model-py"><span class="std std-ref">Importing Models from ML Frameworks</span></a> (<code class="docutils literal notranslate"><span class="pre">import_model.py</span></code>)</p></td>
-<td><p>00:03.678</p></td>
+<td><p>00:03.292</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.734</p></td>
+<td><p>00:00.656</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.591</p></td>
+<td><p>00:00.475</p></td>
<td><p>0.0</p></td>
</tr>
<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:00.360</p></td>
+<td><p>00:00.302</p></td>
<td><p>0.0</p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference internal" href="bring_your_own_codegen.html#sphx-glr-how-to-tutorials-bring-your-own-codegen-py"><span class="std std-ref">Bring Your Own Codegen</span></a> (<code class="docutils literal notranslate"><span class="pre">bring_your_own_codegen.py</span></code>)</p></td>
-<td><p>00:00.043</p></td>
+<td><p>00:00.035</p></td>
<td><p>0.0</p></td>
</tr>
<tr class="row-even"><td><p><a class="reference internal" href="mix_python_and_tvm_with_pymodule.html#sphx-glr-how-to-tutorials-mix-python-and-tvm-with-pymodule-py"><span class="std std-ref">Mix Python/PyTorch with TVM Using BasePyModule</span></a> (<code class="docutils literal notranslate"><span class="pre">mix_python_and_tvm_with_pymodule.py</span></code>)</p></td>
-<td><p>00:00.005</p></td>
+<td><p>00:00.004</p></td>
<td><p>0.0</p></td>
</tr>
<tr class="row-odd"><td><p><a class="reference internal" href="export_and_load_executable.html#sphx-glr-how-to-tutorials-export-and-load-executable-py"><span class="std std-ref">Export and Load Relax Executables</span></a> (<code class="docutils literal notranslate"><span class="pre">export_and_load_executable.py</span></code>)</p></td>
diff --git a/docs/reference/api/doxygen/analyzer_8h_source.html b/docs/reference/api/doxygen/analyzer_8h_source.html
index 204fb25268c..d01ee9af748 100644
--- a/docs/reference/api/doxygen/analyzer_8h_source.html
+++ b/docs/reference/api/doxygen/analyzer_8h_source.html
@@ -566,9 +566,9 @@ $(document).ready(function() { init_codefold(0); });
<div class="line"><a id="l00992" name="l00992"></a><span class="lineno"> 992</span>} <span class="comment">// namespace sym</span></div>
<div class="line"><a id="l00993" name="l00993"></a><span class="lineno"> 993</span>} <span class="comment">// namespace tvm</span></div>
<div class="line"><a id="l00994" name="l00994"></a><span class="lineno"> 994</span><span class="preprocessor">#endif </span><span class="comment">// TVM_SYM_ANALYZER_H_</span></div>
-<div class="ttc" id="aclasstvm_1_1PrimExpr_html"><div class="ttname"><a href="classtvm_1_1PrimExpr.html">tvm::PrimExpr</a></div><div class="ttdoc">Typed reference/view over any Expr whose ExprNode::ty is PrimType.</div><div class="ttdef"><b>Definition</b> base_expr.h:404</div></div>
-<div class="ttc" id="aclasstvm_1_1Range_html"><div class="ttname"><a href="classtvm_1_1Range.html">tvm::Range</a></div><div class="ttdoc">Range container</div><div class="ttdef"><b>Definition</b> expr.h:751</div></div>
-<div class="ttc" id="aclasstvm_1_1Var_html"><div class="ttname"><a href="classtvm_1_1Var.html">tvm::Var</a></div><div class="ttdoc">Managed reference to VarNode.</div><div class="ttdef"><b>Definition</b> expr.h:375</div></div>
+<div class="ttc" id="aclasstvm_1_1PrimExpr_html"><div class="ttname"><a href="classtvm_1_1PrimExpr.html">tvm::PrimExpr</a></div><div class="ttdoc">Typed reference/view over any Expr whose ExprNode::ty is PrimType.</div><div class="ttdef"><b>Definition</b> base_expr.h:412</div></div>
+<div class="ttc" id="aclasstvm_1_1Range_html"><div class="ttname"><a href="classtvm_1_1Range.html">tvm::Range</a></div><div class="ttdoc">Range container</div><div class="ttdef"><b>Definition</b> expr.h:786</div></div>
+<div class="ttc" id="aclasstvm_1_1Var_html"><div class="ttname"><a href="classtvm_1_1Var.html">tvm::Var</a></div><div class="ttdoc">Managed reference to VarNode.</div><div class="ttdef"><b>Definition</b> expr.h:387</div></div>
<div class="ttc" id="aclasstvm_1_1With_html"><div class="ttname"><a href="classtvm_1_1With.html">tvm::With</a></div><div class="ttdoc">RAII wrapper function to enter and exit a context object similar to python's with syntax.</div><div class="ttdef"><b>Definition</b> with_context.h:59</div></div>
<div class="ttc" id="aclasstvm_1_1sym_1_1AnalyzerObj_html"><div class="ttname"><a href="classtvm_1_1sym_1_1AnalyzerObj.html">tvm::sym::AnalyzerObj</a></div><div class="ttdoc">Analyzer that contains bunch of sub-analyzers.</div><div class="ttdef"><b>Definition</b> analyzer.h:713</div></div>
<div class="ttc" id="aclasstvm_1_1sym_1_1AnalyzerObj_html_a0d5ef9c26cf8c54841e94d7e40af2edd"><div class="ttname"><a href="classtvm_1_1sym_1_1AnalyzerObj.html#a0d5ef9c26cf8c54841e94d7e40af2edd">tvm::sym::AnalyzerObj::rewrite_simplify</a></div><div class="ttdeci">RewriteSimplifier rewrite_simplify</div><div class="ttdoc">sub-analyzer rewrite simplify</div><div class="ttdef"><b>Definition</b> analyzer.h:720</div></div>
diff --git a/docs/reference/api/doxygen/axis__group__graph_8h.html b/docs/reference/api/doxygen/axis__group__graph_8h.html
index 32b3633687e..a6480514d60 100644
--- a/docs/reference/api/doxygen/axis__group__graph_8h.html
+++ b/docs/reference/api/doxygen/axis__group__graph_8h.html
@@ -132,9 +132,9 @@ Typedefs</h2></td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="func-members" name="func-members"></a>
Functions</h2></td></tr>
-<tr class="memitem:a3844604362b94ff7c9d439d21002657e" id="r_a3844604362b94ff7c9d439d21002657e"><td class="memItemLeft" align="right" valign="top"><a class="el" href="namespacetvm_1_1tirx.html#a6afba4ff0c281c4916330c3b0e2e6ad3">Var</a> </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacetvm_1_1tirx.html#a3844604362b94ff7c9d439d21002657e">tvm::tirx::GetShardingVarFromIndex</a> (<a class="el" href="classtvm_1_1PrimExpr.html">PrimExpr</a> index, ffi::Map< <a cl [...]
-<tr class="memdesc:a3844604362b94ff7c9d439d21002657e"><td class="mdescLeft"> </td><td class="mdescRight">Suppose we want to shard a buffer along a specific dimension, we need to know how to rewrite the access index of the buffer. To make it simple, we only support the case that the access can be rewritten by changing the extent of an iter var. <br /></td></tr>
-<tr class="separator:a3844604362b94ff7c9d439d21002657e"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ad0d1f3fb1101e1acc7727de06ba8069a" id="r_ad0d1f3fb1101e1acc7727de06ba8069a"><td class="memItemLeft" align="right" valign="top">ffi::Optional< <a class="el" href="namespacetvm_1_1tirx.html#a6afba4ff0c281c4916330c3b0e2e6ad3">Var</a> > </td><td class="memItemRight" valign="bottom"><a class="el" href="namespacetvm_1_1tirx.html#ad0d1f3fb1101e1acc7727de06ba8069a">tvm::tirx::GetShardingVarFromIndex</a> (<a class="el" href="classtvm_1_1PrimExpr.html">PrimExpr</a> in [...]
+<tr class="memdesc:ad0d1f3fb1101e1acc7727de06ba8069a"><td class="mdescLeft"> </td><td class="mdescRight">Suppose we want to shard a buffer along a specific dimension, we need to know how to rewrite the access index of the buffer. To make it simple, we only support the case that the access can be rewritten by changing the extent of an iter var. <br /></td></tr>
+<tr class="separator:ad0d1f3fb1101e1acc7727de06ba8069a"><td class="memSeparator" colspan="2"> </td></tr>
</table>
</div><!-- contents -->
<!-- start footer part -->
diff --git a/docs/reference/api/doxygen/axis__group__graph_8h_source.html b/docs/reference/api/doxygen/axis__group__graph_8h_source.html
index 5891b7c82f8..72a85331d34 100644
--- a/docs/reference/api/doxygen/axis__group__graph_8h_source.html
+++ b/docs/reference/api/doxygen/axis__group__graph_8h_source.html
@@ -138,8 +138,8 @@ $(document).ready(function() { init_codefold(0); });
</div>
<div class="line"><a id="l00052" name="l00052"></a><span class="lineno"> 52</span>};</div>
</div>
-<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"><a class="line" href="namespacetvm_1_1tirx.html#a3844604362b94ff7c9d439d21002657e"> 62</a></span><a class="code hl_class" href="classtvm_1_1Var.html">Var</a> <a class="code hl_function" href="namespacetvm_1_1tirx.html#a3844604362b94ff7c9d439d21002657e">GetShardingVarFromIndex</a>(<a class="code hl_class" href="classtvm_1_1PrimExpr.html">PrimExpr</a> index, ffi::Map<Var, Range> var_range,</div>
-<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> <span class="keyword">const</span> <a class="code hl_class" href="classtvm_1_1sym_1_1Analyzer.html">sym::Analyzer</a>& analyzer);</div>
+<div class="line"><a id="l00062" name="l00062"></a><span class="lineno"><a class="line" href="namespacetvm_1_1tirx.html#ad0d1f3fb1101e1acc7727de06ba8069a"> 62</a></span>ffi::Optional<Var> <a class="code hl_function" href="namespacetvm_1_1tirx.html#ad0d1f3fb1101e1acc7727de06ba8069a">GetShardingVarFromIndex</a>(<a class="code hl_class" href="classtvm_1_1PrimExpr.html">PrimExpr</a> index, ffi::Map<Var, Range> var_range,</div>
+<div class="line"><a id="l00063" name="l00063"></a><span class="lineno"> 63</span> <span class="keyword">const</span> <a class="code hl_class" href="classtvm_1_1sym_1_1Analyzer.html">sym::Analyzer</a>& analyzer);</div>
<div class="line"><a id="l00064" name="l00064"></a><span class="lineno"> 64</span> </div>
<div class="foldopen" id="foldopen00069" data-start="{" data-end="};">
<div class="line"><a id="l00069" name="l00069"></a><span class="lineno"><a class="line" href="classtvm_1_1tirx_1_1BufferAxisGraphExtractor.html"> 69</a></span><span class="keyword">class </span><a class="code hl_class" href="classtvm_1_1tirx_1_1BufferAxisGraphExtractor.html">BufferAxisGraphExtractor</a> : <span class="keyword">public</span> <a class="code hl_class" href="classtvm_1_1s__tir_1_1StmtExprVisitor.html">s_tir::StmtExprVisitor</a> {</div>
@@ -232,8 +232,8 @@ $(document).ready(function() { init_codefold(0); });
<div class="line"><a id="l00152" name="l00152"></a><span class="lineno"> 152</span> !intset_b.MatchRange(<a class="code hl_function" href="classtvm_1_1Range.html#a91e7301ca1d135ca5f8ed199efbb9818">Range::FromMinExtent</a>(0, buffer_shape_b))) {</div>
<div class="line"><a id="l00153" name="l00153"></a><span class="lineno"> 153</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00154" name="l00154"></a><span class="lineno"> 154</span> }</div>
-<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span> <a class="code hl_typedef" href="namespacetvm_1_1tirx.html#a6afba4ff0c281c4916330c3b0e2e6ad3">Var</a> matched_var = <a class="code hl_function" href="namespacetvm_1_1tirx.html#a3844604362b94ff7c9d439d21002657e">GetShardingVarFromIndex</a>(b, iter_var_range_, analyzer);</div>
-<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span> <span class="keywordflow">if</span> (!matched_var.same_as(var)) {</div>
+<div class="line"><a id="l00155" name="l00155"></a><span class="lineno"> 155</span> <span class="keyword">auto</span> matched_var = <a class="code hl_function" href="namespacetvm_1_1tirx.html#ad0d1f3fb1101e1acc7727de06ba8069a">GetShardingVarFromIndex</a>(b, iter_var_range_, analyzer);</div>
+<div class="line"><a id="l00156" name="l00156"></a><span class="lineno"> 156</span> <span class="keywordflow">if</span> (!matched_var.has_value() || !matched_var.value().same_as(var)) {</div>
<div class="line"><a id="l00157" name="l00157"></a><span class="lineno"> 157</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a id="l00158" name="l00158"></a><span class="lineno"> 158</span> }</div>
<div class="line"><a id="l00159" name="l00159"></a><span class="lineno"> 159</span> <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
@@ -537,13 +537,13 @@ $(document).ready(function() { init_codefold(0); });
<div class="line"><a id="l00489" name="l00489"></a><span class="lineno"> 489</span>} <span class="comment">// namespace tvm</span></div>
<div class="line"><a id="l00490" name="l00490"></a><span class="lineno"> 490</span> </div>
<div class="line"><a id="l00491" name="l00491"></a><span class="lineno"> 491</span><span class="preprocessor">#endif </span><span class="comment">// TVM_RELAX_DISTRIBUTED_AXIS_GROUP_GRAPH_H_</span></div>
-<div class="ttc" id="aclasstvm_1_1Call_html"><div class="ttname"><a href="classtvm_1_1Call.html">tvm::Call</a></div><div class="ttdoc">Managed reference to CallNode.</div><div class="ttdef"><b>Definition</b> expr.h:511</div></div>
+<div class="ttc" id="aclasstvm_1_1Call_html"><div class="ttname"><a href="classtvm_1_1Call.html">tvm::Call</a></div><div class="ttdoc">Managed reference to CallNode.</div><div class="ttdef"><b>Definition</b> expr.h:532</div></div>
<div class="ttc" id="aclasstvm_1_1ExprNode_html"><div class="ttname"><a href="classtvm_1_1ExprNode.html">tvm::ExprNode</a></div><div class="ttdoc">Base type of all the expressions.</div><div class="ttdef"><b>Definition</b> base_expr.h:303</div></div>
-<div class="ttc" id="aclasstvm_1_1GenericConstNode_html"><div class="ttname"><a href="classtvm_1_1GenericConstNode.html">tvm::GenericConstNode</a></div><div class="ttdoc">A constant whose payload is separate from its expression type.</div><div class="ttdef"><b>Definition</b> expr.h:550</div></div>
-<div class="ttc" id="aclasstvm_1_1PrimExpr_html"><div class="ttname"><a href="classtvm_1_1PrimExpr.html">tvm::PrimExpr</a></div><div class="ttdoc">Typed reference/view over any Expr whose ExprNode::ty is PrimType.</div><div class="ttdef"><b>Definition</b> base_expr.h:404</div></div>
+<div class="ttc" id="aclasstvm_1_1GenericConstNode_html"><div class="ttname"><a href="classtvm_1_1GenericConstNode.html">tvm::GenericConstNode</a></div><div class="ttdoc">A constant whose payload is separate from its expression type.</div><div class="ttdef"><b>Definition</b> expr.h:575</div></div>
+<div class="ttc" id="aclasstvm_1_1PrimExpr_html"><div class="ttname"><a href="classtvm_1_1PrimExpr.html">tvm::PrimExpr</a></div><div class="ttdoc">Typed reference/view over any Expr whose ExprNode::ty is PrimType.</div><div class="ttdef"><b>Definition</b> base_expr.h:412</div></div>
<div class="ttc" id="aclasstvm_1_1Range_html_a91e7301ca1d135ca5f8ed199efbb9818"><div class="ttname"><a href="classtvm_1_1Range.html#a91e7301ca1d135ca5f8ed199efbb9818">tvm::Range::FromMinExtent</a></div><div class="ttdeci">static Range FromMinExtent(PrimExpr min, PrimExpr extent, Span span=Span())</div><div class="ttdoc">construct a new range with min and extent The corresponding constructor is removed,...</div></div>
-<div class="ttc" id="aclasstvm_1_1VarNode_html"><div class="ttname"><a href="classtvm_1_1VarNode.html">tvm::VarNode</a></div><div class="ttdoc">A local variable in the IR.</div><div class="ttdef"><b>Definition</b> expr.h:355</div></div>
-<div class="ttc" id="aclasstvm_1_1Var_html"><div class="ttname"><a href="classtvm_1_1Var.html">tvm::Var</a></div><div class="ttdoc">Managed reference to VarNode.</div><div class="ttdef"><b>Definition</b> expr.h:375</div></div>
+<div class="ttc" id="aclasstvm_1_1VarNode_html"><div class="ttname"><a href="classtvm_1_1VarNode.html">tvm::VarNode</a></div><div class="ttdoc">A local variable in the IR.</div><div class="ttdef"><b>Definition</b> expr.h:367</div></div>
+<div class="ttc" id="aclasstvm_1_1Var_html"><div class="ttname"><a href="classtvm_1_1Var.html">tvm::Var</a></div><div class="ttdoc">Managed reference to VarNode.</div><div class="ttdef"><b>Definition</b> expr.h:387</div></div>
<div class="ttc" id="aclasstvm_1_1relax_1_1distributed_1_1DeviceMesh_html"><div class="ttname"><a href="classtvm_1_1relax_1_1distributed_1_1DeviceMesh.html">tvm::relax::distributed::DeviceMesh</a></div><div class="ttdoc">Managed reference to a DeviceMesh.</div><div class="ttdef"><b>Definition</b> global_info.h:63</div></div>
<div class="ttc" id="aclasstvm_1_1s__tir_1_1StmtExprVisitor_html"><div class="ttname"><a href="classtvm_1_1s__tir_1_1StmtExprVisitor.html">tvm::s_tir::StmtExprVisitor</a></div><div class="ttdoc">Extend native TIRX traversal with schedulable block semantics.</div><div class="ttdef"><b>Definition</b> stmt_functor.h:76</div></div>
<div class="ttc" id="aclasstvm_1_1s__tir_1_1StmtExprVisitor_html_ab2ae0a6dd9a80526828300ff4e76c2d8"><div class="ttname"><a href="classtvm_1_1s__tir_1_1StmtExprVisitor.html#ab2ae0a6dd9a80526828300ff4e76c2d8">tvm::s_tir::StmtExprVisitor::Visit_</a></div><div class="ttdeci">virtual ffi::Optional< VisitInterrupt > Visit_(const SBlockNode *op)</div></div>
@@ -553,19 +553,19 @@ $(document).ready(function() { init_codefold(0); });
<div class="ttc" id="aclasstvm_1_1tirx_1_1BufferAxisGraphExtractor_html_ad8e01d1d6fe77bb27cb007cde0cb83d5"><div class="ttname"><a href="classtvm_1_1tirx_1_1BufferAxisGraphExtractor.html#ad8e01d1d6fe77bb27cb007cde0cb83d5">tvm::tirx::BufferAxisGraphExtractor::GetTIRVarAxisGraph</a></div><div class="ttdeci">static std::vector< std::vector< TIRVarAxis > > GetTIRVarAxisGraph(const PrimFunc &prim_func)</div><div class="ttdef"><b>Definition</b> axis_group_graph.h:71</div></div>
<div class="ttc" id="aclasstvm_1_1tirx_1_1BufferAxisHash_html"><div class="ttname"><a href="classtvm_1_1tirx_1_1BufferAxisHash.html">tvm::tirx::BufferAxisHash</a></div><div class="ttdef"><b>Definition</b> axis_group_graph.h:45</div></div>
<div class="ttc" id="aclasstvm_1_1tirx_1_1BufferAxisHash_html_ab28a93a16fa8e3f849f47a0c43ad6282"><div class="ttname"><a href="classtvm_1_1tirx_1_1BufferAxisHash.html#ab28a93a16fa8e3f849f47a0c43ad6282">tvm::tirx::BufferAxisHash::operator()</a></div><div class="ttdeci">size_t operator()(const BufferAxis &buffer_axis) const</div><div class="ttdef"><b>Definition</b> axis_group_graph.h:47</div></div>
-<div class="ttc" id="aclasstvm_1_1tirx_1_1BufferStoreNode_html"><div class="ttname"><a href="classtvm_1_1tirx_1_1BufferStoreNode.html">tvm::tirx::BufferStoreNode</a></div><div class="ttdoc">Store value to the high dimension buffer.</div><div class="ttdef"><b>Definition</b> stmt.h:202</div></div>
+<div class="ttc" id="aclasstvm_1_1tirx_1_1BufferStoreNode_html"><div class="ttname"><a href="classtvm_1_1tirx_1_1BufferStoreNode.html">tvm::tirx::BufferStoreNode</a></div><div class="ttdoc">Store value to the high dimension buffer.</div><div class="ttdef"><b>Definition</b> stmt.h:225</div></div>
<div class="ttc" id="aclasstvm_1_1tirx_1_1BufferVar_html"><div class="ttname"><a href="classtvm_1_1tirx_1_1BufferVar.html">tvm::tirx::BufferVar</a></div><div class="ttdoc">Checked zero-state view over an ordinary VarNode with TensorType.</div><div class="ttdef"><b>Definition</b> expr.h:50</div></div>
<div class="ttc" id="aclasstvm_1_1tirx_1_1PrimFunc_html"><div class="ttname"><a href="classtvm_1_1tirx_1_1PrimFunc.html">tvm::tirx::PrimFunc</a></div><div class="ttdoc">Managed reference to PrimFuncNode.</div><div class="ttdef"><b>Definition</b> function.h:105</div></div>
<div class="ttc" id="aclasstvm_1_1tirx_1_1TensorTypeNode_html"><div class="ttname"><a href="classtvm_1_1tirx_1_1TensorTypeNode.html">tvm::tirx::TensorTypeNode</a></div><div class="ttdoc">Structural type of a TIRx tensor variable.</div><div class="ttdef"><b>Definition</b> type.h:64</div></div>
-<div class="ttc" id="aclasstvm_1_1tirx_1_1TensorTypeNode_html_a3d0caf4a6550665e9ad241df0bb00494"><div class="ttname"><a href="classtvm_1_1tirx_1_1TensorTypeNode.html#a3d0caf4a6550665e9ad241df0bb00494">tvm::tirx::TensorTypeNode::shape</a></div><div class="ttdeci">ffi::Array< PrimExpr > shape</div><div class="ttdoc">The type of the buffer prior to flattening.</div><div class="ttdef"><b>Definition</b> type.h:76</div></div>
+<div class="ttc" id="aclasstvm_1_1tirx_1_1TensorTypeNode_html_a3d0caf4a6550665e9ad241df0bb00494"><div class="ttname"><a href="classtvm_1_1tirx_1_1TensorTypeNode.html#a3d0caf4a6550665e9ad241df0bb00494">tvm::tirx::TensorTypeNode::shape</a></div><div class="ttdeci">ffi::Array< PrimExpr > shape</div><div class="ttdoc">The type of the buffer prior to flattening.</div><div class="ttdef"><b>Definition</b> type.h:80</div></div>
<div class="ttc" id="aiter__affine__map_8h_html"><div class="ttname"><a href="iter__affine__map_8h.html">iter_affine_map.h</a></div><div class="ttdoc">Iterator quasi-affine mapping patterns.</div></div>
<div class="ttc" id="anamespacetvm_1_1sym_html_a4f90613dc6bcaf5600705007d3d95194"><div class="ttname"><a href="namespacetvm_1_1sym.html#a4f90613dc6bcaf5600705007d3d95194">tvm::sym::EvalSet</a></div><div class="ttdeci">IntSet EvalSet(PrimExpr e, const ffi::Map< Var, IntSet > &dom_map)</div><div class="ttdoc">Find an symbolic integer set that contains all possible values of e given the domain of each variable...</div></div>
<div class="ttc" id="anamespacetvm_1_1sym_html_ace8b2a1ec13be11d581491dbfb0bcdc3"><div class="ttname"><a href="namespacetvm_1_1sym.html#ace8b2a1ec13be11d581491dbfb0bcdc3">tvm::sym::AsIntSet</a></div><div class="ttdeci">ffi::Map< Var, sym::IntSet > AsIntSet(const ffi::Map< Var, Range > &var_dom)</div><div class="ttdoc">Converts the Ranges to IntSets.</div></div>
<div class="ttc" id="anamespacetvm_1_1te_html_a054fef7460475c6d4adb0c845648bcd7"><div class="ttname"><a href="namespacetvm_1_1te.html#a054fef7460475c6d4adb0c845648bcd7">tvm::te::var</a></div><div class="ttdeci">PrimVar var(std::string name_hint, PrimType t=PrimType::Int(32))</div><div class="ttdoc">Construct a new Var expression.</div></div>
-<div class="ttc" id="anamespacetvm_1_1tirx_html_a3844604362b94ff7c9d439d21002657e"><div class="ttname"><a href="namespacetvm_1_1tirx.html#a3844604362b94ff7c9d439d21002657e">tvm::tirx::GetShardingVarFromIndex</a></div><div class="ttdeci">Var GetShardingVarFromIndex(PrimExpr index, ffi::Map< Var, Range > var_range, const sym::Analyzer &analyzer)</div><div class="ttdoc">Suppose we want to shard a buffer along a specific dimension, we need to know how to rewrite the acce...</div></div>
<div class="ttc" id="anamespacetvm_1_1tirx_html_a6afba4ff0c281c4916330c3b0e2e6ad3"><div class="ttname"><a href="namespacetvm_1_1tirx.html#a6afba4ff0c281c4916330c3b0e2e6ad3">tvm::tirx::Var</a></div><div class="ttdeci">tvm::Var Var</div><div class="ttdef"><b>Definition</b> var.h:38</div></div>
<div class="ttc" id="anamespacetvm_1_1tirx_html_aa2311cd730cdca8a01c1d2ff35417ad2"><div class="ttname"><a href="namespacetvm_1_1tirx.html#aa2311cd730cdca8a01c1d2ff35417ad2">tvm::tirx::TIRVarAxis</a></div><div class="ttdeci">std::pair< Var, int > TIRVarAxis</div><div class="ttdef"><b>Definition</b> axis_group_graph.h:42</div></div>
<div class="ttc" id="anamespacetvm_1_1tirx_html_aae66818353d29c42b5f0337479f5d272"><div class="ttname"><a href="namespacetvm_1_1tirx.html#aae66818353d29c42b5f0337479f5d272">tvm::tirx::BufferAxis</a></div><div class="ttdeci">std::pair< BufferVar, int > BufferAxis</div><div class="ttdef"><b>Definition</b> axis_group_graph.h:44</div></div>
+<div class="ttc" id="anamespacetvm_1_1tirx_html_ad0d1f3fb1101e1acc7727de06ba8069a"><div class="ttname"><a href="namespacetvm_1_1tirx.html#ad0d1f3fb1101e1acc7727de06ba8069a">tvm::tirx::GetShardingVarFromIndex</a></div><div class="ttdeci">ffi::Optional< Var > GetShardingVarFromIndex(PrimExpr index, ffi::Map< Var, Range > var_range, const sym::Analyzer &analyzer)</div><div class="ttdoc">Suppose we want to shard a buffer along a specific dimension, we need to know how to rewr [...]
<div class="ttc" id="anamespacetvm_html"><div class="ttname"><a href="namespacetvm.html">tvm</a></div><div class="ttdoc">An object that builds and maintains block scope and StmtSref mapping for Dependence analysis.</div><div class="ttdef"><b>Definition</b> attrs.h:44</div></div>
<div class="ttc" id="anamespacetvm_html_ad7c45c38af02ce88083d976f9be743b4"><div class="ttname"><a href="namespacetvm.html#ad7c45c38af02ce88083d976f9be743b4">tvm::operator==</a></div><div class="ttdeci">bool operator==(const PrimType &lhs, const PrimType &rhs)</div><div class="ttdef"><b>Definition</b> base_expr.h:293</div></div>
<div class="ttc" id="arelax_2distributed_2type_8h_html"><div class="ttname"><a href="relax_2distributed_2type_8h.html">type.h</a></div><div class="ttdoc">Type definitions for DTensor (Distributed Tensor)</div></div>
diff --git a/docs/reference/api/doxygen/base__expr_8h_source.html b/docs/reference/api/doxygen/base__expr_8h_source.html
index 019b964efea..020d44c9aaa 100644
--- a/docs/reference/api/doxygen/base__expr_8h_source.html
+++ b/docs/reference/api/doxygen/base__expr_8h_source.html
@@ -366,235 +366,257 @@ $(document).ready(function() { init_codefold(0); });
<div class="line"><a id="l00343" name="l00343"></a><span class="lineno"><a class="line" href="classtvm_1_1Expr.html#a86bd9da75268e479e3bbe61729dce8ac"> 343</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classtvm_1_1Expr.html#a86bd9da75268e479e3bbe61729dce8ac">operator!=</a>(<span class="keyword">const</span> <a class="code hl_class" href="classtvm_1_1Expr.html">Expr</a>& other) <span class="keyword">const</span> = <span class="keyword">delete</sp [...]
<div class="line"><a id="l00344" name="l00344"></a><span class="lineno"><a class="line" href="classtvm_1_1Expr.html#afb14020d9ae652a64a6f15dcba073c0e"> 344</a></span> <span class="keywordtype">bool</span> <a class="code hl_function" href="classtvm_1_1Expr.html#afb14020d9ae652a64a6f15dcba073c0e">operator<</a>(<span class="keyword">const</span> <a class="code hl_class" href="classtvm_1_1Expr.html">Expr</a>& other) <span class="keyword">const</span> = <span class="keyword">delete</ [...]
<div class="line"><a id="l00345" name="l00345"></a><span class="lineno"> 345</span> </div>
-<div class="line"><a id="l00346" name="l00346"></a><span class="lineno"><a class="line" href="classtvm_1_1Expr.html#a081d3512d899e352e81e8eda6385c444"> 346</a></span> <a class="code hl_function" href="classtvm_1_1Expr.html#a081d3512d899e352e81e8eda6385c444">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE</a>(<a class="code hl_class" href="classtvm_1_1Expr.html">Expr</a>, ffi::ObjectRef, <a class="code hl_class" href="classtvm_1_1ExprNode.html">ExprNode</a>);</div>
-<div class="line"><a id="l00347" name="l00347"></a><span class="lineno"> 347</span>};</div>
-</div>
-<div class="line"><a id="l00348" name="l00348"></a><span class="lineno"> 348</span> </div>
-<div class="foldopen" id="foldopen00355" data-start="{" data-end="};">
-<div class="line"><a id="l00355" name="l00355"></a><span class="lineno"><a class="line" href="classtvm_1_1OpaqueExprNode.html"> 355</a></span><span class="keyword">class </span><a class="code hl_class" href="classtvm_1_1OpaqueExprNode.html">OpaqueExprNode</a> : <span class="keyword">public</span> <a class="code hl_class" href="classtvm_1_1ExprNode.html">ExprNode</a> {</div>
-<div class="line"><a id="l00356" name="l00356"></a><span class="lineno"> 356</span> <span class="keyword">public</span>:</div>
-<div class="foldopen" id="foldopen00357" data-start="{" data-end="}">
-<div class="line"><a id="l00357" name="l00357"></a><span class="lineno"><a class="line" href="classtvm_1_1OpaqueExprNode.html#a6c57e5bf56efcb43b92283af89be09fc"> 357</a></span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classtvm_1_1OpaqueExprNode.html#a6c57e5bf56efcb43b92283af89be09fc">RegisterReflection</a>() {</div>
-<div class="line"><a id="l00358" name="l00358"></a><span class="lineno"> 358</span> <span class="keyword">namespace </span>refl = tvm::ffi::reflection;</div>
-<div class="line"><a id="l00359" name="l00359"></a><span class="lineno"> 359</span> refl::ObjectDef<OpaqueExprNode>();</div>
-<div class="line"><a id="l00360" name="l00360"></a><span class="lineno"> 360</span> }</div>
-</div>
-<div class="line"><a id="l00361" name="l00361"></a><span class="lineno"> 361</span> </div>
-<div class="line"><a id="l00362" name="l00362"></a><span class="lineno"><a class="line" href="classtvm_1_1OpaqueExprNode.html#a0aec85b5f32e134740ab24a36850af5a"> 362</a></span> <span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="keyword">const</span> uint32_t <a class="code hl_variable" href="classtvm_1_1OpaqueExprNode.html#a0aec85b5f32e134740ab24a36850af5a">_type_child_slots</a> = 2;</div>
-<div class="line"><a id="l00363" name="l00363"></a><span class="lineno"><a class="line" href="classtvm_1_1OpaqueExprNode.html#a43b8b6676f146d6b431a793a7bf6c12e"> 363</a></span> <a class="code hl_function" href="classtvm_1_1OpaqueExprNode.html#a43b8b6676f146d6b431a793a7bf6c12e">TVM_FFI_DECLARE_OBJECT_INFO</a>(<span class="stringliteral">"ir.OpaqueExpr"</span>, <a class="code hl_class" href="classtvm_1_1OpaqueExprNode.html">OpaqueExprNode</a>, <a class="code hl_class" href="cla [...]
-<div class="line"><a id="l00364" name="l00364"></a><span class="lineno"> 364</span>};</div>
+<div class="foldopen" id="foldopen00346" data-start="{" data-end="}">
+<div class="line"><a id="l00346" name="l00346"></a><span class="lineno"><a class="line" href="classtvm_1_1Expr.html#aad84c3380b07b63427dda3697a78b269"> 346</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classtvm_1_1Expr.html#aad84c3380b07b63427dda3697a78b269">Expr</a>(ffi::ObjectPtr<ExprNode> node) : ffi::ObjectRef(std::move(node)) {</div>
+<div class="line"><a id="l00347" name="l00347"></a><span class="lineno"> 347</span> TVM_FFI_CHECK(defined(), ValueError) << <span class="stringliteral">"Expr expects a defined node"</span>;</div>
+<div class="line"><a id="l00348" name="l00348"></a><span class="lineno"> 348</span> }</div>
+</div>
+<div class="line"><a id="l00349" name="l00349"></a><span class="lineno"> 349</span> </div>
+<div class="line"><a id="l00350" name="l00350"></a><span class="lineno"><a class="line" href="classtvm_1_1Expr.html#a26775d381ee6e7c7bb65b8a7320f5b87"> 350</a></span> <a class="code hl_function" href="classtvm_1_1Expr.html#a26775d381ee6e7c7bb65b8a7320f5b87">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NOTNULLABLE</a>(<a class="code hl_class" href="classtvm_1_1Expr.html">Expr</a>, ffi::ObjectRef, <a class="code hl_class" href="classtvm_1_1ExprNode.html">ExprNode</a>);</div>
+<div class="line"><a id="l00351" name="l00351"></a><span class="lineno"> 351</span>};</div>
+</div>
+<div class="line"><a id="l00352" name="l00352"></a><span class="lineno"> 352</span> </div>
+<div class="foldopen" id="foldopen00359" data-start="{" data-end="};">
+<div class="line"><a id="l00359" name="l00359"></a><span class="lineno"><a class="line" href="classtvm_1_1OpaqueExprNode.html"> 359</a></span><span class="keyword">class </span><a class="code hl_class" href="classtvm_1_1OpaqueExprNode.html">OpaqueExprNode</a> : <span class="keyword">public</span> <a class="code hl_class" href="classtvm_1_1ExprNode.html">ExprNode</a> {</div>
+<div class="line"><a id="l00360" name="l00360"></a><span class="lineno"> 360</span> <span class="keyword">public</span>:</div>
+<div class="foldopen" id="foldopen00361" data-start="{" data-end="}">
+<div class="line"><a id="l00361" name="l00361"></a><span class="lineno"><a class="line" href="classtvm_1_1OpaqueExprNode.html#a6c57e5bf56efcb43b92283af89be09fc"> 361</a></span> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code hl_function" href="classtvm_1_1OpaqueExprNode.html#a6c57e5bf56efcb43b92283af89be09fc">RegisterReflection</a>() {</div>
+<div class="line"><a id="l00362" name="l00362"></a><span class="lineno"> 362</span> <span class="keyword">namespace </span>refl = tvm::ffi::reflection;</div>
+<div class="line"><a id="l00363" name="l00363"></a><span class="lineno"> 363</span> refl::ObjectDef<OpaqueExprNode>();</div>
+<div class="line"><a id="l00364" name="l00364"></a><span class="lineno"> 364</span> }</div>
</div>
<div class="line"><a id="l00365" name="l00365"></a><span class="lineno"> 365</span> </div>
-<div class="foldopen" id="foldopen00367" data-start="{" data-end="};">
-<div class="line"><a id="l00367" name="l00367"></a><span class="lineno"><a class="line" href="classtvm_1_1OpaqueExpr.html"> 367</a></span><span class="keyword">class </span><a class="code hl_class" href="classtvm_1_1OpaqueExpr.html">OpaqueExpr</a> : <span class="keyword">public</span> <a class="code hl_class" href="classtvm_1_1Expr.html">Expr</a> {</div>
-<div class="line"><a id="l00368" name="l00368"></a><span class="lineno"> 368</span> <span class="keyword">public</span>:</div>
-<div class="line"><a id="l00369" name="l00369"></a><span class="lineno"><a class="line" href="classtvm_1_1OpaqueExpr.html#ab40bce2a8f40aa5101cbc5c53d80315e"> 369</a></span> <a class="code hl_function" href="classtvm_1_1OpaqueExpr.html#ab40bce2a8f40aa5101cbc5c53d80315e">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE</a>(<a class="code hl_class" href="classtvm_1_1OpaqueExpr.html">OpaqueExpr</a>, <a class="code hl_class" href="classtvm_1_1Expr.html">Expr</a>, <a class="code hl_class" href="cl [...]
-<div class="line"><a id="l00370" name="l00370"></a><span class="lineno"> 370</span>};</div>
-</div>
-<div class="line"><a id="l00371" name="l00371"></a><span class="lineno"> 371</span> </div>
-<div class="line"><a id="l00372" name="l00372"></a><span class="lineno"> 372</span><span class="keyword">class </span><a class="code hl_class" href="classtvm_1_1Call.html">Call</a>;</div>
-<div class="line"><a id="l00373" name="l00373"></a><span class="lineno"> 373</span> </div>
-<div class="line"><a id="l00379" name="l00379"></a><span class="lineno"> 379</span><span class="keyword">template</span> <<span class="keyword">typename</span> ExpectedType></div>
-<div class="foldopen" id="foldopen00380" data-start="{" data-end="};">
-<div class="line"><a id="l00380" name="l00380"></a><span class="lineno"><a class="line" href="classtvm_1_1TypedExpr.html"> 380</a></span><span class="keyword">class </span><a class="code hl_class" href="classtvm_1_1TypedExpr.html">TypedExpr</a> : <span class="keyword">public</span> <a class="code hl_class" href="classtvm_1_1Expr.html">Expr</a> {</div>
-<div class="line"><a id="l00381" name="l00381"></a><span class="lineno"> 381</span> <span class="keyword">public</span>:</div>
-<div class="foldopen" id="foldopen00383" data-start="{" data-end="}">
-<div class="line"><a id="l00383" name="l00383"></a><span class="lineno"><a class="line" href="classtvm_1_1TypedExpr.html#a7d83b1f31a1cc6f0774df309e207e678"> 383</a></span> ExpectedType <a class="code hl_function" href="classtvm_1_1TypedExpr.html#a7d83b1f31a1cc6f0774df309e207e678">ty</a>()<span class="keyword"> const </span>{</div>
-<div class="line"><a id="l00384" name="l00384"></a><span class="lineno"> 384</span> <span class="keyword">const</span> <span class="keyword">auto</span>* node = get();</div>
-<div class="line"><a id="l00385" name="l00385"></a><span class="lineno"> 385</span> TVM_FFI_DCHECK(node != <span class="keyword">nullptr</span>);</div>
-<div class="line"><a id="l00386" name="l00386"></a><span class="lineno"> 386</span> <span class="keyword">const</span> <span class="keyword">auto</span>* ty_node = node->ExprNode::ty.template as<typename ExpectedType::ContainerType>();</div>
-<div class="line"><a id="l00387" name="l00387"></a><span class="lineno"> 387</span> TVM_FFI_DCHECK(ty_node != <span class="keyword">nullptr</span>);</div>
-<div class="line"><a id="l00388" name="l00388"></a><span class="lineno"> 388</span> <span class="keywordflow">return</span> ffi::GetRef<ExpectedType>(ty_node);</div>
-<div class="line"><a id="l00389" name="l00389"></a><span class="lineno"> 389</span> }</div>
-</div>
-<div class="line"><a id="l00390" name="l00390"></a><span class="lineno"> 390</span> </div>
-<div class="line"><a id="l00391" name="l00391"></a><span class="lineno"><a class="line" href="classtvm_1_1TypedExpr.html#aef373abb5a1725e75779715bfc590d3b"> 391</a></span> <a class="code hl_function" href="classtvm_1_1TypedExpr.html#aef373abb5a1725e75779715bfc590d3b">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE</a>(<a class="code hl_class" href="classtvm_1_1TypedExpr.html">TypedExpr</a>, <a class="code hl_class" href="classtvm_1_1Expr.html">Expr</a>, <a class="code hl_class" href="classt [...]
-<div class="line"><a id="l00392" name="l00392"></a><span class="lineno"><a class="line" href="classtvm_1_1TypedExpr.html#a699c3725d3b3cb02b7363cab5cc68914"> 392</a></span> <span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="keywordtype">bool</span> <a class="code hl_variable" href="classtvm_1_1TypedExpr.html#a699c3725d3b3cb02b7363cab5cc68914">_type_container_is_exact</a> = <span class="keyword">false</span>;</div>
-<div class="line"><a id="l00393" name="l00393"></a><span class="lineno"> 393</span>};</div>
-</div>
-<div class="line"><a id="l00394" name="l00394"></a><span class="lineno"> 394</span> </div>
-<div class="foldopen" id="foldopen00404" data-start="{" data-end="};">
-<div class="line"><a id="l00404" name="l00404"></a><span class="lineno"><a class="line" href="classtvm_1_1PrimExpr.html"> 404</a></span><span class="keyword">class </span><a class="code hl_class" href="classtvm_1_1PrimExpr.html">PrimExpr</a> : <span class="keyword">public</span> <a class="code hl_class" href="classtvm_1_1TypedExpr.html">TypedExpr</a><PrimType> {</div>
-<div class="line"><a id="l00405" name="l00405"></a><span class="lineno"> 405</span> <span class="keyword">public</span>:</div>
-<div class="line"><a id="l00406" name="l00406"></a><span class="lineno"> 406</span> <span class="keyword">using </span><a class="code hl_class" href="classtvm_1_1TypedExpr.html">TypedExpr</a><<a class="code hl_class" href="classtvm_1_1PrimType.html">PrimType</a>><a class="code hl_function" href="classtvm_1_1TypedExpr.html#a7d83b1f31a1cc6f0774df309e207e678">::ty</a>;</div>
-<div class="line"><a id="l00407" name="l00407"></a><span class="lineno"> 407</span> </div>
-<div class="line"><a id="l00413" name="l00413"></a><span class="lineno"><a class="line" href="classtvm_1_1PrimExpr.html#a8e6c9b7691f897badf413f21469f7f9d"> 413</a></span> TVM_DLL <a class="code hl_function" href="classtvm_1_1PrimExpr.html#a8e6c9b7691f897badf413f21469f7f9d">PrimExpr</a>(<a class="code hl_class" href="classtvm_1_1Call.html">Call</a> call); <span class="comment">// NOLINT(*)</span></div>
-<div class="line"><a id="l00414" name="l00414"></a><span class="lineno"> 414</span> </div>
-<div class="line"><a id="l00419" name="l00419"></a><span class="lineno"><a class="line" href="classtvm_1_1PrimExpr.html#a7f0ca30e951608a0b36a77a66d4d19e0"> 419</a></span> TVM_DLL <a class="code hl_function" href="classtvm_1_1PrimExpr.html#a7f0ca30e951608a0b36a77a66d4d19e0">PrimExpr</a>(int32_t value); <span class="comment">// NOLINT(*)</span></div>
-<div class="line"><a id="l00424" name="l00424"></a><span class="lineno"><a class="line" href="classtvm_1_1PrimExpr.html#a756d3f8b17b019560946524951ae6118"> 424</a></span> TVM_DLL <a class="code hl_function" href="classtvm_1_1PrimExpr.html#a756d3f8b17b019560946524951ae6118">PrimExpr</a>(<span class="keywordtype">float</span> value); <span class="comment">// NOLINT(*)</span></div>
-<div class="line"><a id="l00425" name="l00425"></a><span class="lineno"> 425</span> </div>
-<div class="line"><a id="l00426" name="l00426"></a><span class="lineno"><a class="line" href="classtvm_1_1PrimExpr.html#a611b175971d5ca7e5a549c55fae12ac6"> 426</a></span> <a class="code hl_function" href="classtvm_1_1PrimExpr.html#a611b175971d5ca7e5a549c55fae12ac6">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE</a>(<a class="code hl_class" href="classtvm_1_1PrimExpr.html">PrimExpr</a>, <a class="code hl_class" href="classtvm_1_1TypedExpr.html">TypedExpr<PrimType></a>, <a class="code [...]
-<div class="line"><a id="l00427" name="l00427"></a><span class="lineno"><a class="line" href="classtvm_1_1PrimExpr.html#a33afa5fbcf78f349305e222f182ee28b"> 427</a></span> <span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="keywordtype">bool</span> <a class="code hl_variable" href="classtvm_1_1PrimExpr.html#a33afa5fbcf78f349305e222f182ee28b">_type_container_is_exact</a> = <span class="keyword">false</span>;</div>
-<div class="line"><a id="l00428" name="l00428"></a><span class="lineno"> 428</span>};</div>
-</div>
-<div class="line"><a id="l00429" name="l00429"></a><span class="lineno"> 429</span> </div>
-<div class="foldopen" id="foldopen00436" data-start="{" data-end="};">
-<div class="line"><a id="l00436" name="l00436"></a><span class="lineno"><a class="line" href="classtvm_1_1IntExpr.html"> 436</a></span><span class="keyword">class </span><a class="code hl_class" href="classtvm_1_1IntExpr.html">IntExpr</a> : <span class="keyword">public</span> <a class="code hl_class" href="classtvm_1_1PrimExpr.html">PrimExpr</a> {</div>
-<div class="line"><a id="l00437" name="l00437"></a><span class="lineno"> 437</span> <span class="keyword">public</span>:</div>
-<div class="line"><a id="l00438" name="l00438"></a><span class="lineno"><a class="line" href="classtvm_1_1IntExpr.html#a05d3dcf2d5ced700249353dc34f14022"> 438</a></span> <a class="code hl_function" href="classtvm_1_1IntExpr.html#a05d3dcf2d5ced700249353dc34f14022">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE</a>(<a class="code hl_class" href="classtvm_1_1IntExpr.html">IntExpr</a>, <a class="code hl_class" href="classtvm_1_1PrimExpr.html">PrimExpr</a>, <a class="code hl_class" href="classt [...]
-<div class="line"><a id="l00439" name="l00439"></a><span class="lineno"><a class="line" href="classtvm_1_1IntExpr.html#a134f662e9c361e9e72f282c604859719"> 439</a></span> <span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="keywordtype">bool</span> <a class="code hl_variable" href="classtvm_1_1IntExpr.html#a134f662e9c361e9e72f282c604859719">_type_container_is_exact</a> = <span class="keyword">false</span>;</div>
-<div class="line"><a id="l00440" name="l00440"></a><span class="lineno"> 440</span>};</div>
-</div>
-<div class="line"><a id="l00441" name="l00441"></a><span class="lineno"> 441</span> </div>
-<div class="foldopen" id="foldopen00447" data-start="{" data-end="};">
-<div class="line"><a id="l00447" name="l00447"></a><span class="lineno"><a class="line" href="classtvm_1_1PrimExprConvertibleNode.html"> 447</a></span><span class="keyword">class </span><a class="code hl_class" href="classtvm_1_1PrimExprConvertibleNode.html">PrimExprConvertibleNode</a> : <span class="keyword">public</span> ffi::Object {</div>
-<div class="line"><a id="l00448" name="l00448"></a><span class="lineno"> 448</span> <span class="keyword">public</span>:</div>
-<div class="line"><a id="l00449" name="l00449"></a><span class="lineno"><a class="line" href="classtvm_1_1PrimExprConvertibleNode.html#a625eda6a9ec8f03c69802a1300053d8b"> 449</a></span> <span class="keyword">virtual</span> <a class="code hl_function" href="classtvm_1_1PrimExprConvertibleNode.html#a625eda6a9ec8f03c69802a1300053d8b">~PrimExprConvertibleNode</a>() {}</div>
-<div class="line"><a id="l00450" name="l00450"></a><span class="lineno"><a class="line" href="classtvm_1_1PrimExprConvertibleNode.html#ab9efcf82acd9a64e2cda50108c98e458"> 450</a></span> <span class="keyword">virtual</span> <a class="code hl_class" href="classtvm_1_1PrimExpr.html">PrimExpr</a> <a class="code hl_function" href="classtvm_1_1PrimExprConvertibleNode.html#ab9efcf82acd9a64e2cda50108c98e458">ToPrimExpr</a>() <span class="keyword">const</span> = 0;</div>
-<div class="line"><a id="l00451" name="l00451"></a><span class="lineno"><a class="line" href="classtvm_1_1PrimExprConvertibleNode.html#add3904e335bd840516d486a6ca398f86"> 451</a></span> <a class="code hl_function" href="classtvm_1_1PrimExprConvertibleNode.html#add3904e335bd840516d486a6ca398f86">TVM_FFI_DECLARE_OBJECT_INFO</a>(<span class="stringliteral">"ir.PrimExprConvertible"</span>, <a class="code hl_class" href="classtvm_1_1PrimExprConvertibleNode.html">PrimExprConvertibl [...]
-<div class="line"><a id="l00452" name="l00452"></a><span class="lineno"> 452</span>};</div>
-</div>
-<div class="line"><a id="l00453" name="l00453"></a><span class="lineno"> 453</span> </div>
-<div class="foldopen" id="foldopen00458" data-start="{" data-end="};">
-<div class="line"><a id="l00458" name="l00458"></a><span class="lineno"><a class="line" href="classtvm_1_1PrimExprConvertible.html"> 458</a></span><span class="keyword">class </span><a class="code hl_class" href="classtvm_1_1PrimExprConvertible.html">PrimExprConvertible</a> : <span class="keyword">public</span> ffi::ObjectRef {</div>
-<div class="line"><a id="l00459" name="l00459"></a><span class="lineno"> 459</span> <span class="keyword">public</span>:</div>
-<div class="line"><a id="l00460" name="l00460"></a><span class="lineno"><a class="line" href="classtvm_1_1PrimExprConvertible.html#a0bad5536ab9ff5ab07a22e75c2c2102c"> 460</a></span> <a class="code hl_function" href="classtvm_1_1PrimExprConvertible.html#a0bad5536ab9ff5ab07a22e75c2c2102c">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE</a>(<a class="code hl_class" href="classtvm_1_1PrimExprConvertible.html">PrimExprConvertible</a>, ffi::ObjectRef,</div>
-<div class="line"><a id="l00461" name="l00461"></a><span class="lineno"> 461</span> <a class="code hl_class" href="classtvm_1_1PrimExprConvertibleNode.html">PrimExprConvertibleNode</a>);</div>
+<div class="line"><a id="l00366" name="l00366"></a><span class="lineno"><a class="line" href="classtvm_1_1OpaqueExprNode.html#a0aec85b5f32e134740ab24a36850af5a"> 366</a></span> <span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="keyword">const</span> uint32_t <a class="code hl_variable" href="classtvm_1_1OpaqueExprNode.html#a0aec85b5f32e134740ab24a36850af5a">_type_child_slots</a> = 2;</div>
+<div class="line"><a id="l00367" name="l00367"></a><span class="lineno"><a class="line" href="classtvm_1_1OpaqueExprNode.html#a43b8b6676f146d6b431a793a7bf6c12e"> 367</a></span> <a class="code hl_function" href="classtvm_1_1OpaqueExprNode.html#a43b8b6676f146d6b431a793a7bf6c12e">TVM_FFI_DECLARE_OBJECT_INFO</a>(<span class="stringliteral">"ir.OpaqueExpr"</span>, <a class="code hl_class" href="classtvm_1_1OpaqueExprNode.html">OpaqueExprNode</a>, <a class="code hl_class" href="cla [...]
+<div class="line"><a id="l00368" name="l00368"></a><span class="lineno"> 368</span>};</div>
+</div>
+<div class="line"><a id="l00369" name="l00369"></a><span class="lineno"> 369</span> </div>
+<div class="foldopen" id="foldopen00371" data-start="{" data-end="};">
+<div class="line"><a id="l00371" name="l00371"></a><span class="lineno"><a class="line" href="classtvm_1_1OpaqueExpr.html"> 371</a></span><span class="keyword">class </span><a class="code hl_class" href="classtvm_1_1OpaqueExpr.html">OpaqueExpr</a> : <span class="keyword">public</span> <a class="code hl_class" href="classtvm_1_1Expr.html">Expr</a> {</div>
+<div class="line"><a id="l00372" name="l00372"></a><span class="lineno"> 372</span> <span class="keyword">public</span>:</div>
+<div class="line"><a id="l00373" name="l00373"></a><span class="lineno"><a class="line" href="classtvm_1_1OpaqueExpr.html#afd17da96046bfe1522adcd996454818a"> 373</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classtvm_1_1OpaqueExpr.html#afd17da96046bfe1522adcd996454818a">OpaqueExpr</a>(ffi::ObjectPtr<OpaqueExprNode> node) : <a class="code hl_class" href="classtvm_1_1Expr.html">Expr</a>(std::move(node)) {}</div>
+<div class="line"><a id="l00374" name="l00374"></a><span class="lineno"> 374</span> </div>
+<div class="line"><a id="l00375" name="l00375"></a><span class="lineno"><a class="line" href="classtvm_1_1OpaqueExpr.html#ac7e17e5999f849b6ff7a787d993cda40"> 375</a></span> <a class="code hl_function" href="classtvm_1_1OpaqueExpr.html#ac7e17e5999f849b6ff7a787d993cda40">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NOTNULLABLE</a>(<a class="code hl_class" href="classtvm_1_1OpaqueExpr.html">OpaqueExpr</a>, <a class="code hl_class" href="classtvm_1_1Expr.html">Expr</a>, <a class="code hl_class" href= [...]
+<div class="line"><a id="l00376" name="l00376"></a><span class="lineno"> 376</span>};</div>
+</div>
+<div class="line"><a id="l00377" name="l00377"></a><span class="lineno"> 377</span> </div>
+<div class="line"><a id="l00378" name="l00378"></a><span class="lineno"> 378</span><span class="keyword">class </span><a class="code hl_class" href="classtvm_1_1Call.html">Call</a>;</div>
+<div class="line"><a id="l00379" name="l00379"></a><span class="lineno"> 379</span> </div>
+<div class="line"><a id="l00385" name="l00385"></a><span class="lineno"> 385</span><span class="keyword">template</span> <<span class="keyword">typename</span> ExpectedType></div>
+<div class="foldopen" id="foldopen00386" data-start="{" data-end="};">
+<div class="line"><a id="l00386" name="l00386"></a><span class="lineno"><a class="line" href="classtvm_1_1TypedExpr.html"> 386</a></span><span class="keyword">class </span><a class="code hl_class" href="classtvm_1_1TypedExpr.html">TypedExpr</a> : <span class="keyword">public</span> <a class="code hl_class" href="classtvm_1_1Expr.html">Expr</a> {</div>
+<div class="line"><a id="l00387" name="l00387"></a><span class="lineno"> 387</span> <span class="keyword">public</span>:</div>
+<div class="foldopen" id="foldopen00389" data-start="{" data-end="}">
+<div class="line"><a id="l00389" name="l00389"></a><span class="lineno"><a class="line" href="classtvm_1_1TypedExpr.html#a7d83b1f31a1cc6f0774df309e207e678"> 389</a></span> ExpectedType <a class="code hl_function" href="classtvm_1_1TypedExpr.html#a7d83b1f31a1cc6f0774df309e207e678">ty</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a id="l00390" name="l00390"></a><span class="lineno"> 390</span> <span class="keyword">const</span> <span class="keyword">auto</span>* node = get();</div>
+<div class="line"><a id="l00391" name="l00391"></a><span class="lineno"> 391</span> TVM_FFI_DCHECK(node != <span class="keyword">nullptr</span>);</div>
+<div class="line"><a id="l00392" name="l00392"></a><span class="lineno"> 392</span> <span class="keyword">const</span> <span class="keyword">auto</span>* ty_node = node->ExprNode::ty.template as<typename ExpectedType::ContainerType>();</div>
+<div class="line"><a id="l00393" name="l00393"></a><span class="lineno"> 393</span> TVM_FFI_DCHECK(ty_node != <span class="keyword">nullptr</span>);</div>
+<div class="line"><a id="l00394" name="l00394"></a><span class="lineno"> 394</span> <span class="keywordflow">return</span> ffi::GetRef<ExpectedType>(ty_node);</div>
+<div class="line"><a id="l00395" name="l00395"></a><span class="lineno"> 395</span> }</div>
+</div>
+<div class="line"><a id="l00396" name="l00396"></a><span class="lineno"> 396</span> </div>
+<div class="line"><a id="l00397" name="l00397"></a><span class="lineno"><a class="line" href="classtvm_1_1TypedExpr.html#aba1d53d5f3708c2e41104da7b3c3a5ff"> 397</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classtvm_1_1TypedExpr.html#aba1d53d5f3708c2e41104da7b3c3a5ff">TypedExpr</a>(ffi::ObjectPtr<ExprNode> node) : <a class="code hl_class" href="classtvm_1_1Expr.html">Expr</a>(std::move(node)) {}</div>
+<div class="line"><a id="l00398" name="l00398"></a><span class="lineno"> 398</span> </div>
+<div class="line"><a id="l00399" name="l00399"></a><span class="lineno"><a class="line" href="classtvm_1_1TypedExpr.html#aa985a34fd559ddc4bdc128f4fcd9d9c9"> 399</a></span> <a class="code hl_function" href="classtvm_1_1TypedExpr.html#aa985a34fd559ddc4bdc128f4fcd9d9c9">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NOTNULLABLE</a>(<a class="code hl_class" href="classtvm_1_1TypedExpr.html">TypedExpr</a>, <a class="code hl_class" href="classtvm_1_1Expr.html">Expr</a>, <a class="code hl_class" href="cla [...]
+<div class="line"><a id="l00400" name="l00400"></a><span class="lineno"><a class="line" href="classtvm_1_1TypedExpr.html#a699c3725d3b3cb02b7363cab5cc68914"> 400</a></span> <span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="keywordtype">bool</span> <a class="code hl_variable" href="classtvm_1_1TypedExpr.html#a699c3725d3b3cb02b7363cab5cc68914">_type_container_is_exact</a> = <span class="keyword">false</span>;</div>
+<div class="line"><a id="l00401" name="l00401"></a><span class="lineno"> 401</span>};</div>
+</div>
+<div class="line"><a id="l00402" name="l00402"></a><span class="lineno"> 402</span> </div>
+<div class="foldopen" id="foldopen00412" data-start="{" data-end="};">
+<div class="line"><a id="l00412" name="l00412"></a><span class="lineno"><a class="line" href="classtvm_1_1PrimExpr.html"> 412</a></span><span class="keyword">class </span><a class="code hl_class" href="classtvm_1_1PrimExpr.html">PrimExpr</a> : <span class="keyword">public</span> <a class="code hl_class" href="classtvm_1_1TypedExpr.html">TypedExpr</a><PrimType> {</div>
+<div class="line"><a id="l00413" name="l00413"></a><span class="lineno"> 413</span> <span class="keyword">public</span>:</div>
+<div class="line"><a id="l00414" name="l00414"></a><span class="lineno"> 414</span> <span class="keyword">using </span><a class="code hl_class" href="classtvm_1_1TypedExpr.html">TypedExpr</a><<a class="code hl_class" href="classtvm_1_1PrimType.html">PrimType</a>><a class="code hl_function" href="classtvm_1_1TypedExpr.html#a7d83b1f31a1cc6f0774df309e207e678">::ty</a>;</div>
+<div class="line"><a id="l00415" name="l00415"></a><span class="lineno"> 415</span> </div>
+<div class="line"><a id="l00421" name="l00421"></a><span class="lineno"><a class="line" href="classtvm_1_1PrimExpr.html#a8e6c9b7691f897badf413f21469f7f9d"> 421</a></span> TVM_DLL <a class="code hl_function" href="classtvm_1_1PrimExpr.html#a8e6c9b7691f897badf413f21469f7f9d">PrimExpr</a>(<a class="code hl_class" href="classtvm_1_1Call.html">Call</a> call); <span class="comment">// NOLINT(*)</span></div>
+<div class="line"><a id="l00422" name="l00422"></a><span class="lineno"> 422</span> </div>
+<div class="line"><a id="l00427" name="l00427"></a><span class="lineno"><a class="line" href="classtvm_1_1PrimExpr.html#a7f0ca30e951608a0b36a77a66d4d19e0"> 427</a></span> TVM_DLL <a class="code hl_function" href="classtvm_1_1PrimExpr.html#a7f0ca30e951608a0b36a77a66d4d19e0">PrimExpr</a>(int32_t value); <span class="comment">// NOLINT(*)</span></div>
+<div class="line"><a id="l00432" name="l00432"></a><span class="lineno"><a class="line" href="classtvm_1_1PrimExpr.html#a756d3f8b17b019560946524951ae6118"> 432</a></span> TVM_DLL <a class="code hl_function" href="classtvm_1_1PrimExpr.html#a756d3f8b17b019560946524951ae6118">PrimExpr</a>(<span class="keywordtype">float</span> value); <span class="comment">// NOLINT(*)</span></div>
+<div class="line"><a id="l00433" name="l00433"></a><span class="lineno"> 433</span> </div>
+<div class="line"><a id="l00434" name="l00434"></a><span class="lineno"><a class="line" href="classtvm_1_1PrimExpr.html#adbafa94c9099bdf4fa142e074c38711f"> 434</a></span> <span class="keyword">explicit</span> <a class="code hl_function" href="classtvm_1_1PrimExpr.html#adbafa94c9099bdf4fa142e074c38711f">PrimExpr</a>(ffi::ObjectPtr<ExprNode> node) : <a class="code hl_class" href="classtvm_1_1TypedExpr.html">TypedExpr</a><<a class="code hl_class" href="classtvm_1_1PrimType.html"> [...]
+<div class="line"><a id="l00435" name="l00435"></a><span class="lineno"> 435</span> </div>
+<div class="line"><a id="l00436" name="l00436"></a><span class="lineno"><a class="line" href="classtvm_1_1PrimExpr.html#a9e1ec859f8e97b427a8cab4bd80d46e1"> 436</a></span> <a class="code hl_function" href="classtvm_1_1PrimExpr.html#a9e1ec859f8e97b427a8cab4bd80d46e1">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NOTNULLABLE</a>(<a class="code hl_class" href="classtvm_1_1PrimExpr.html">PrimExpr</a>, <a class="code hl_class" href="classtvm_1_1TypedExpr.html">TypedExpr<PrimType></a>, <a class="co [...]
+<div class="line"><a id="l00437" name="l00437"></a><span class="lineno"><a class="line" href="classtvm_1_1PrimExpr.html#a33afa5fbcf78f349305e222f182ee28b"> 437</a></span> <span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="keywordtype">bool</span> <a class="code hl_variable" href="classtvm_1_1PrimExpr.html#a33afa5fbcf78f349305e222f182ee28b">_type_container_is_exact</a> = <span class="keyword">false</span>;</div>
+<div class="line"><a id="l00438" name="l00438"></a><span class="lineno"> 438</span>};</div>
+</div>
+<div class="line"><a id="l00439" name="l00439"></a><span class="lineno"> 439</span> </div>
+<div class="foldopen" id="foldopen00446" data-start="{" data-end="};">
+<div class="line"><a id="l00446" name="l00446"></a><span class="lineno"><a class="line" href="classtvm_1_1IntExpr.html"> 446</a></span><span class="keyword">class </span><a class="code hl_class" href="classtvm_1_1IntExpr.html">IntExpr</a> : <span class="keyword">public</span> <a class="code hl_class" href="classtvm_1_1PrimExpr.html">PrimExpr</a> {</div>
+<div class="line"><a id="l00447" name="l00447"></a><span class="lineno"> 447</span> <span class="keyword">public</span>:</div>
+<div class="line"><a id="l00448" name="l00448"></a><span class="lineno"><a class="line" href="classtvm_1_1IntExpr.html#ae847c279a016d20acf2e7ac14e2a78eb"> 448</a></span> <a class="code hl_function" href="classtvm_1_1IntExpr.html#ae847c279a016d20acf2e7ac14e2a78eb">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NOTNULLABLE</a>(<a class="code hl_class" href="classtvm_1_1IntExpr.html">IntExpr</a>, <a class="code hl_class" href="classtvm_1_1PrimExpr.html">PrimExpr</a>, <a class="code hl_class" href="cla [...]
+<div class="line"><a id="l00449" name="l00449"></a><span class="lineno"><a class="line" href="classtvm_1_1IntExpr.html#a134f662e9c361e9e72f282c604859719"> 449</a></span> <span class="keyword">static</span> <span class="keyword">constexpr</span> <span class="keywordtype">bool</span> <a class="code hl_variable" href="classtvm_1_1IntExpr.html#a134f662e9c361e9e72f282c604859719">_type_container_is_exact</a> = <span class="keyword">false</span>;</div>
+<div class="line"><a id="l00450" name="l00450"></a><span class="lineno"> 450</span>};</div>
+</div>
+<div class="line"><a id="l00451" name="l00451"></a><span class="lineno"> 451</span> </div>
+<div class="foldopen" id="foldopen00457" data-start="{" data-end="};">
+<div class="line"><a id="l00457" name="l00457"></a><span class="lineno"><a class="line" href="classtvm_1_1PrimExprConvertibleNode.html"> 457</a></span><span class="keyword">class </span><a class="code hl_class" href="classtvm_1_1PrimExprConvertibleNode.html">PrimExprConvertibleNode</a> : <span class="keyword">public</span> ffi::Object {</div>
+<div class="line"><a id="l00458" name="l00458"></a><span class="lineno"> 458</span> <span class="keyword">public</span>:</div>
+<div class="line"><a id="l00459" name="l00459"></a><span class="lineno"><a class="line" href="classtvm_1_1PrimExprConvertibleNode.html#a625eda6a9ec8f03c69802a1300053d8b"> 459</a></span> <span class="keyword">virtual</span> <a class="code hl_function" href="classtvm_1_1PrimExprConvertibleNode.html#a625eda6a9ec8f03c69802a1300053d8b">~PrimExprConvertibleNode</a>() {}</div>
+<div class="line"><a id="l00460" name="l00460"></a><span class="lineno"><a class="line" href="classtvm_1_1PrimExprConvertibleNode.html#ab9efcf82acd9a64e2cda50108c98e458"> 460</a></span> <span class="keyword">virtual</span> <a class="code hl_class" href="classtvm_1_1PrimExpr.html">PrimExpr</a> <a class="code hl_function" href="classtvm_1_1PrimExprConvertibleNode.html#ab9efcf82acd9a64e2cda50108c98e458">ToPrimExpr</a>() <span class="keyword">const</span> = 0;</div>
+<div class="line"><a id="l00461" name="l00461"></a><span class="lineno"><a class="line" href="classtvm_1_1PrimExprConvertibleNode.html#add3904e335bd840516d486a6ca398f86"> 461</a></span> <a class="code hl_function" href="classtvm_1_1PrimExprConvertibleNode.html#add3904e335bd840516d486a6ca398f86">TVM_FFI_DECLARE_OBJECT_INFO</a>(<span class="stringliteral">"ir.PrimExprConvertible"</span>, <a class="code hl_class" href="classtvm_1_1PrimExprConvertibleNode.html">PrimExprConvertibl [...]
<div class="line"><a id="l00462" name="l00462"></a><span class="lineno"> 462</span>};</div>
</div>
<div class="line"><a id="l00463" name="l00463"></a><span class="lineno"> 463</span> </div>
-<div class="foldopen" id="foldopen00464" data-start="{" data-end="}">
-<div class="line"><a id="l00464" name="l00464"></a><span class="lineno"><a class="line" href="namespacetvm_1_1ffi.html"> 464</a></span><span class="keyword">namespace </span>ffi {</div>
-<div class="line"><a id="l00465" name="l00465"></a><span class="lineno"> 465</span><span class="keyword">template</span> <></div>
-<div class="line"><a id="l00466" name="l00466"></a><span class="lineno"><a class="line" href="namespacetvm_1_1ffi.html#a919f86f3cbe6b3aeae34c3a3bafe98a4"> 466</a></span><span class="keyword">inline</span> <span class="keyword">constexpr</span> <span class="keywordtype">bool</span> <a class="code hl_variable" href="namespacetvm_1_1ffi.html#a919f86f3cbe6b3aeae34c3a3bafe98a4">use_default_type_traits_v<PrimType></a> = <span class="keyword">false</span>;</div>
-<div class="line"><a id="l00467" name="l00467"></a><span class="lineno"> 467</span> </div>
-<div class="line"><a id="l00468" name="l00468"></a><span class="lineno"> 468</span><span class="keyword">template</span> <></div>
-<div class="foldopen" id="foldopen00469" data-start="{" data-end="};">
-<div class="line"><a id="l00469" name="l00469"></a><span class="lineno"><a class="line" href="structtvm_1_1ffi_1_1TypeTraits_3_01PrimType_01_4.html"> 469</a></span><span class="keyword">struct </span>TypeTraits<<a class="code hl_class" href="classtvm_1_1PrimType.html">PrimType</a>> : <span class="keyword">public</span> ObjectRefWithFallbackTraitsBase<PrimType, DLDataType> {</div>
-<div class="line"><a id="l00470" name="l00470"></a><span class="lineno"><a class="line" href="structtvm_1_1ffi_1_1TypeTraits_3_01PrimType_01_4.html#a9b9a904d5c21d5bb330111cb80ec3570"> 470</a></span> TVM_FFI_INLINE <span class="keyword">static</span> <a class="code hl_class" href="classtvm_1_1PrimType.html">PrimType</a> <a class="code hl_function" href="structtvm_1_1ffi_1_1TypeTraits_3_01PrimType_01_4.html#a9b9a904d5c21d5bb330111cb80ec3570">ConvertFallbackValue</a>(DLDataType dtype) { < [...]
-<div class="line"><a id="l00471" name="l00471"></a><span class="lineno"> 471</span>};</div>
-</div>
-<div class="line"><a id="l00472" name="l00472"></a><span class="lineno"> 472</span> </div>
-<div class="line"><a id="l00473" name="l00473"></a><span class="lineno"> 473</span><span class="keyword">template</span> <<span class="keyword">typename</span> ExpectedType></div>
-<div class="line"><a id="l00474" name="l00474"></a><span class="lineno"><a class="line" href="namespacetvm_1_1ffi.html#a989ab76251427253427563ab92948640"> 474</a></span><span class="keyword">inline</span> <span class="keyword">constexpr</span> <span class="keywordtype">bool</span> use_default_type_traits_v<TypedExpr<ExpectedType>> = <span class="keyword">false</span>;</div>
-<div class="line"><a id="l00475" name="l00475"></a><span class="lineno"> 475</span> </div>
-<div class="line"><a id="l00476" name="l00476"></a><span class="lineno"> 476</span><span class="keyword">template</span> <<span class="keyword">typename</span> ExpectedType></div>
-<div class="foldopen" id="foldopen00477" data-start="{" data-end="};">
-<div class="line"><a id="l00477" name="l00477"></a><span class="lineno"><a class="line" href="structtvm_1_1ffi_1_1TypeTraits_3_01TypedExpr_3_01ExpectedType_01_4_01_4.html"> 477</a></span><span class="keyword">struct </span>TypeTraits<<a class="code hl_class" href="classtvm_1_1TypedExpr.html">TypedExpr</a><ExpectedType>></div>
-<div class="line"><a id="l00478" name="l00478"></a><span class="lineno"> 478</span> : <span class="keyword">public</span> ObjectRefTypeTraitsBase<TypedExpr<ExpectedType>> {</div>
-<div class="foldopen" id="foldopen00479" data-start="{" data-end="}">
-<div class="line"><a id="l00479" name="l00479"></a><span class="lineno"><a class="line" href="structtvm_1_1ffi_1_1TypeTraits_3_01TypedExpr_3_01ExpectedType_01_4_01_4.html#a91f94dcfec7dbd7024c4912234d3f445"> 479</a></span> TVM_FFI_INLINE <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="structtvm_1_1ffi_1_1TypeTraits_3_01TypedExpr_3_01ExpectedType_01_4_01_4.html#a91f94dcfec7dbd7024c4912234d3f445">CheckAnyStrict</a>(<span class="k [...]
-<div class="line"><a id="l00480" name="l00480"></a><span class="lineno"> 480</span> <span class="keywordflow">if</span> (src->type_index == TypeIndex::kTVMFFINone) {</div>
-<div class="line"><a id="l00481" name="l00481"></a><span class="lineno"> 481</span> <span class="keywordflow">return</span> <a class="code hl_class" href="classtvm_1_1TypedExpr.html">TypedExpr<ExpectedType>::_type_is_nullable</a>;</div>
-<div class="line"><a id="l00482" name="l00482"></a><span class="lineno"> 482</span> }</div>
-<div class="line"><a id="l00483" name="l00483"></a><span class="lineno"> 483</span> <span class="keywordflow">if</span> (src->type_index < TypeIndex::kTVMFFIStaticObjectBegin ||</div>
-<div class="line"><a id="l00484" name="l00484"></a><span class="lineno"> 484</span> !details::IsObjectInstance<ExprNode>(src->type_index)) {</div>
-<div class="line"><a id="l00485" name="l00485"></a><span class="lineno"> 485</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
-<div class="line"><a id="l00486" name="l00486"></a><span class="lineno"> 486</span> }</div>
-<div class="line"><a id="l00487" name="l00487"></a><span class="lineno"> 487</span> <span class="comment">// Non-owning: this only reads `ty`, and the owning form's incref/decref pair costs two</span></div>
-<div class="line"><a id="l00488" name="l00488"></a><span class="lineno"> 488</span> <span class="comment">// atomics per check on a path every typed field assignment takes.</span></div>
-<div class="line"><a id="l00489" name="l00489"></a><span class="lineno"> 489</span> <span class="keyword">const</span> <span class="keyword">auto</span>* expr = details::ObjectUnsafe::RawObjectPtrFromUnowned<ExprNode>(src->v_obj);</div>
-<div class="line"><a id="l00490" name="l00490"></a><span class="lineno"> 490</span> <span class="keywordflow">return</span> details::AnyUnsafe::CheckAnyViewStrict<ExpectedType>(expr->ty);</div>
-<div class="line"><a id="l00491" name="l00491"></a><span class="lineno"> 491</span> }</div>
-</div>
-<div class="line"><a id="l00492" name="l00492"></a><span class="lineno"> 492</span> </div>
-<div class="foldopen" id="foldopen00493" data-start="{" data-end="}">
-<div class="line"><a id="l00493" name="l00493"></a><span class="lineno"><a class="line" href="structtvm_1_1ffi_1_1TypeTraits_3_01TypedExpr_3_01ExpectedType_01_4_01_4.html#a920c0886f5fd3421ca55c62fa3a9faf0"> 493</a></span> TVM_FFI_INLINE <span class="keyword">static</span> std::string <a class="code hl_function" href="structtvm_1_1ffi_1_1TypeTraits_3_01TypedExpr_3_01ExpectedType_01_4_01_4.html#a920c0886f5fd3421ca55c62fa3a9faf0">GetMismatchTypeInfo</a>(<span class="keyword">const</span> [...]
-<div class="line"><a id="l00494" name="l00494"></a><span class="lineno"> 494</span> <span class="keywordflow">if</span> (src->type_index >= TypeIndex::kTVMFFIStaticObjectBegin && src->v_obj != <span class="keyword">nullptr</span> &&</div>
-<div class="line"><a id="l00495" name="l00495"></a><span class="lineno"> 495</span> details::IsObjectInstance<ExprNode>(src->type_index)) {</div>
-<div class="line"><a id="l00496" name="l00496"></a><span class="lineno"> 496</span> <span class="keyword">const</span> <span class="keyword">auto</span>* expr = details::ObjectUnsafe::RawObjectPtrFromUnowned<ExprNode>(src->v_obj);</div>
-<div class="line"><a id="l00497" name="l00497"></a><span class="lineno"> 497</span> <span class="keywordflow">if</span> (expr->ty.defined()) {</div>
-<div class="line"><a id="l00498" name="l00498"></a><span class="lineno"> 498</span> <span class="keyword">const</span> <span class="keyword">auto</span>* prim_ty = expr->ty.as<<a class="code hl_class" href="classtvm_1_1PrimTypeNode.html">PrimTypeNode</a>>();</div>
-<div class="line"><a id="l00499" name="l00499"></a><span class="lineno"> 499</span> std::string ty =</div>
-<div class="line"><a id="l00500" name="l00500"></a><span class="lineno"> 500</span> prim_ty ? std::string(ffi::DLDataTypeToString(prim_ty->dtype)) : expr->ty.GetTypeKey();</div>
-<div class="line"><a id="l00501" name="l00501"></a><span class="lineno"> 501</span> <span class="keywordflow">return</span> TypeIndexToTypeKey(src->type_index) + <span class="stringliteral">"[ty="</span> + ty + <span class="stringliteral">"]"</span>;</div>
-<div class="line"><a id="l00502" name="l00502"></a><span class="lineno"> 502</span> }</div>
-<div class="line"><a id="l00503" name="l00503"></a><span class="lineno"> 503</span> }</div>
-<div class="line"><a id="l00504" name="l00504"></a><span class="lineno"> 504</span> <span class="keywordflow">return</span> TypeTraitsBase::GetMismatchTypeInfo(src);</div>
-<div class="line"><a id="l00505" name="l00505"></a><span class="lineno"> 505</span> }</div>
-</div>
-<div class="line"><a id="l00506" name="l00506"></a><span class="lineno"> 506</span>};</div>
-</div>
-<div class="line"><a id="l00507" name="l00507"></a><span class="lineno"> 507</span> </div>
-<div class="line"><a id="l00508" name="l00508"></a><span class="lineno"> 508</span><span class="keyword">template</span> <></div>
-<div class="line"><a id="l00509" name="l00509"></a><span class="lineno"><a class="line" href="namespacetvm_1_1ffi.html#a3953ced274a99f70b1ab2cd282f266e2"> 509</a></span><span class="keyword">inline</span> <span class="keyword">constexpr</span> <span class="keywordtype">bool</span> <a class="code hl_variable" href="namespacetvm_1_1ffi.html#a3953ced274a99f70b1ab2cd282f266e2">use_default_type_traits_v<PrimExpr></a> = <span class="keyword">false</span>;</div>
-<div class="line"><a id="l00510" name="l00510"></a><span class="lineno"> 510</span> </div>
-<div class="line"><a id="l00511" name="l00511"></a><span class="lineno"> 511</span><span class="comment">// define automatic conversion from bool, int64_t, double to PrimExpr</span></div>
-<div class="line"><a id="l00512" name="l00512"></a><span class="lineno"> 512</span><span class="comment">// These functions are declared early to avoid circular dependency</span></div>
-<div class="line"><a id="l00513" name="l00513"></a><span class="lineno"> 513</span><span class="keyword">template</span> <></div>
-<div class="foldopen" id="foldopen00514" data-start="{" data-end="};">
-<div class="line"><a id="l00514" name="l00514"></a><span class="lineno"><a class="line" href="structtvm_1_1ffi_1_1TypeTraits_3_01PrimExpr_01_4.html"> 514</a></span><span class="keyword">struct </span>TypeTraits<<a class="code hl_class" href="classtvm_1_1PrimExpr.html">PrimExpr</a>> : <span class="keyword">public</span> ObjectRefWithFallbackTraitsBase<PrimExpr, StrictBool, int64_t,</div>
-<div class="line"><a id="l00515" name="l00515"></a><span class="lineno"> 515</span> double, PrimExprConvertible> {</div>
-<div class="foldopen" id="foldopen00516" data-start="{" data-end="}">
-<div class="line"><a id="l00516" name="l00516"></a><span class="lineno"><a class="line" href="structtvm_1_1ffi_1_1TypeTraits_3_01PrimExpr_01_4.html#a37db92b1772374171d83184bf87caebc"> 516</a></span> TVM_FFI_INLINE <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="structtvm_1_1ffi_1_1TypeTraits_3_01PrimExpr_01_4.html#a37db92b1772374171d83184bf87caebc">CheckAnyStrict</a>(<span class="keyword">const</span> TVMFFIAny* src) {</div>
-<div class="line"><a id="l00517" name="l00517"></a><span class="lineno"> 517</span> <span class="keywordflow">if</span> (src->type_index == TypeIndex::kTVMFFINone) <span class="keywordflow">return</span> PrimExpr::_type_is_nullable;</div>
-<div class="line"><a id="l00518" name="l00518"></a><span class="lineno"> 518</span> <span class="keywordflow">return</span> TypeTraits<TypedExpr<PrimType>>::CheckAnyStrict(src);</div>
-<div class="line"><a id="l00519" name="l00519"></a><span class="lineno"> 519</span> }</div>
-</div>
+<div class="foldopen" id="foldopen00468" data-start="{" data-end="};">
+<div class="line"><a id="l00468" name="l00468"></a><span class="lineno"><a class="line" href="classtvm_1_1PrimExprConvertible.html"> 468</a></span><span class="keyword">class </span><a class="code hl_class" href="classtvm_1_1PrimExprConvertible.html">PrimExprConvertible</a> : <span class="keyword">public</span> ffi::ObjectRef {</div>
+<div class="line"><a id="l00469" name="l00469"></a><span class="lineno"> 469</span> <span class="keyword">public</span>:</div>
+<div class="line"><a id="l00470" name="l00470"></a><span class="lineno"><a class="line" href="classtvm_1_1PrimExprConvertible.html#a0bad5536ab9ff5ab07a22e75c2c2102c"> 470</a></span> <a class="code hl_function" href="classtvm_1_1PrimExprConvertible.html#a0bad5536ab9ff5ab07a22e75c2c2102c">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE</a>(<a class="code hl_class" href="classtvm_1_1PrimExprConvertible.html">PrimExprConvertible</a>, ffi::ObjectRef,</div>
+<div class="line"><a id="l00471" name="l00471"></a><span class="lineno"> 471</span> <a class="code hl_class" href="classtvm_1_1PrimExprConvertibleNode.html">PrimExprConvertibleNode</a>);</div>
+<div class="line"><a id="l00472" name="l00472"></a><span class="lineno"> 472</span>};</div>
+</div>
+<div class="line"><a id="l00473" name="l00473"></a><span class="lineno"> 473</span> </div>
+<div class="foldopen" id="foldopen00474" data-start="{" data-end="}">
+<div class="line"><a id="l00474" name="l00474"></a><span class="lineno"><a class="line" href="namespacetvm_1_1ffi.html"> 474</a></span><span class="keyword">namespace </span>ffi {</div>
+<div class="line"><a id="l00475" name="l00475"></a><span class="lineno"> 475</span><span class="keyword">template</span> <></div>
+<div class="line"><a id="l00476" name="l00476"></a><span class="lineno"><a class="line" href="namespacetvm_1_1ffi.html#a919f86f3cbe6b3aeae34c3a3bafe98a4"> 476</a></span><span class="keyword">inline</span> <span class="keyword">constexpr</span> <span class="keywordtype">bool</span> <a class="code hl_variable" href="namespacetvm_1_1ffi.html#a919f86f3cbe6b3aeae34c3a3bafe98a4">use_default_type_traits_v<PrimType></a> = <span class="keyword">false</span>;</div>
+<div class="line"><a id="l00477" name="l00477"></a><span class="lineno"> 477</span> </div>
+<div class="line"><a id="l00478" name="l00478"></a><span class="lineno"> 478</span><span class="keyword">template</span> <></div>
+<div class="foldopen" id="foldopen00479" data-start="{" data-end="};">
+<div class="line"><a id="l00479" name="l00479"></a><span class="lineno"><a class="line" href="structtvm_1_1ffi_1_1TypeTraits_3_01PrimType_01_4.html"> 479</a></span><span class="keyword">struct </span>TypeTraits<<a class="code hl_class" href="classtvm_1_1PrimType.html">PrimType</a>> : <span class="keyword">public</span> ObjectRefWithFallbackTraitsBase<PrimType, DLDataType> {</div>
+<div class="line"><a id="l00480" name="l00480"></a><span class="lineno"><a class="line" href="structtvm_1_1ffi_1_1TypeTraits_3_01PrimType_01_4.html#a9b9a904d5c21d5bb330111cb80ec3570"> 480</a></span> TVM_FFI_INLINE <span class="keyword">static</span> <a class="code hl_class" href="classtvm_1_1PrimType.html">PrimType</a> <a class="code hl_function" href="structtvm_1_1ffi_1_1TypeTraits_3_01PrimType_01_4.html#a9b9a904d5c21d5bb330111cb80ec3570">ConvertFallbackValue</a>(DLDataType dtype) { < [...]
+<div class="line"><a id="l00481" name="l00481"></a><span class="lineno"> 481</span>};</div>
+</div>
+<div class="line"><a id="l00482" name="l00482"></a><span class="lineno"> 482</span> </div>
+<div class="line"><a id="l00483" name="l00483"></a><span class="lineno"> 483</span><span class="keyword">template</span> <<span class="keyword">typename</span> ExpectedType></div>
+<div class="line"><a id="l00484" name="l00484"></a><span class="lineno"><a class="line" href="namespacetvm_1_1ffi.html#a989ab76251427253427563ab92948640"> 484</a></span><span class="keyword">inline</span> <span class="keyword">constexpr</span> <span class="keywordtype">bool</span> use_default_type_traits_v<TypedExpr<ExpectedType>> = <span class="keyword">false</span>;</div>
+<div class="line"><a id="l00485" name="l00485"></a><span class="lineno"> 485</span> </div>
+<div class="line"><a id="l00486" name="l00486"></a><span class="lineno"> 486</span><span class="keyword">template</span> <<span class="keyword">typename</span> ExpectedType></div>
+<div class="foldopen" id="foldopen00487" data-start="{" data-end="};">
+<div class="line"><a id="l00487" name="l00487"></a><span class="lineno"><a class="line" href="structtvm_1_1ffi_1_1TypeTraits_3_01TypedExpr_3_01ExpectedType_01_4_01_4.html"> 487</a></span><span class="keyword">struct </span>TypeTraits<<a class="code hl_class" href="classtvm_1_1TypedExpr.html">TypedExpr</a><ExpectedType>></div>
+<div class="line"><a id="l00488" name="l00488"></a><span class="lineno"> 488</span> : <span class="keyword">public</span> ObjectRefTypeTraitsBase<TypedExpr<ExpectedType>> {</div>
+<div class="foldopen" id="foldopen00489" data-start="{" data-end="}">
+<div class="line"><a id="l00489" name="l00489"></a><span class="lineno"><a class="line" href="structtvm_1_1ffi_1_1TypeTraits_3_01TypedExpr_3_01ExpectedType_01_4_01_4.html#a91f94dcfec7dbd7024c4912234d3f445"> 489</a></span> TVM_FFI_INLINE <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="structtvm_1_1ffi_1_1TypeTraits_3_01TypedExpr_3_01ExpectedType_01_4_01_4.html#a91f94dcfec7dbd7024c4912234d3f445">CheckAnyStrict</a>(<span class="k [...]
+<div class="line"><a id="l00490" name="l00490"></a><span class="lineno"> 490</span> <span class="keywordflow">if</span> (src->type_index == TypeIndex::kTVMFFINone) {</div>
+<div class="line"><a id="l00491" name="l00491"></a><span class="lineno"> 491</span> <span class="keywordflow">return</span> <a class="code hl_class" href="classtvm_1_1TypedExpr.html">TypedExpr<ExpectedType>::_type_is_nullable</a>;</div>
+<div class="line"><a id="l00492" name="l00492"></a><span class="lineno"> 492</span> }</div>
+<div class="line"><a id="l00493" name="l00493"></a><span class="lineno"> 493</span> <span class="keywordflow">if</span> (src->type_index < TypeIndex::kTVMFFIStaticObjectBegin ||</div>
+<div class="line"><a id="l00494" name="l00494"></a><span class="lineno"> 494</span> !details::IsObjectInstance<ExprNode>(src->type_index)) {</div>
+<div class="line"><a id="l00495" name="l00495"></a><span class="lineno"> 495</span> <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a id="l00496" name="l00496"></a><span class="lineno"> 496</span> }</div>
+<div class="line"><a id="l00497" name="l00497"></a><span class="lineno"> 497</span> <span class="comment">// Non-owning: this only reads `ty`, and the owning form's incref/decref pair costs two</span></div>
+<div class="line"><a id="l00498" name="l00498"></a><span class="lineno"> 498</span> <span class="comment">// atomics per check on a path every typed field assignment takes.</span></div>
+<div class="line"><a id="l00499" name="l00499"></a><span class="lineno"> 499</span> <span class="keyword">const</span> <span class="keyword">auto</span>* expr = details::ObjectUnsafe::RawObjectPtrFromUnowned<ExprNode>(src->v_obj);</div>
+<div class="line"><a id="l00500" name="l00500"></a><span class="lineno"> 500</span> <span class="keywordflow">return</span> details::AnyUnsafe::CheckAnyViewStrict<ExpectedType>(expr->ty);</div>
+<div class="line"><a id="l00501" name="l00501"></a><span class="lineno"> 501</span> }</div>
+</div>
+<div class="line"><a id="l00502" name="l00502"></a><span class="lineno"> 502</span> </div>
+<div class="foldopen" id="foldopen00503" data-start="{" data-end="}">
+<div class="line"><a id="l00503" name="l00503"></a><span class="lineno"><a class="line" href="structtvm_1_1ffi_1_1TypeTraits_3_01TypedExpr_3_01ExpectedType_01_4_01_4.html#a920c0886f5fd3421ca55c62fa3a9faf0"> 503</a></span> TVM_FFI_INLINE <span class="keyword">static</span> std::string <a class="code hl_function" href="structtvm_1_1ffi_1_1TypeTraits_3_01TypedExpr_3_01ExpectedType_01_4_01_4.html#a920c0886f5fd3421ca55c62fa3a9faf0">GetMismatchTypeInfo</a>(<span class="keyword">const</span> [...]
+<div class="line"><a id="l00504" name="l00504"></a><span class="lineno"> 504</span> <span class="keywordflow">if</span> (src->type_index >= TypeIndex::kTVMFFIStaticObjectBegin && src->v_obj != <span class="keyword">nullptr</span> &&</div>
+<div class="line"><a id="l00505" name="l00505"></a><span class="lineno"> 505</span> details::IsObjectInstance<ExprNode>(src->type_index)) {</div>
+<div class="line"><a id="l00506" name="l00506"></a><span class="lineno"> 506</span> <span class="keyword">const</span> <span class="keyword">auto</span>* expr = details::ObjectUnsafe::RawObjectPtrFromUnowned<ExprNode>(src->v_obj);</div>
+<div class="line"><a id="l00507" name="l00507"></a><span class="lineno"> 507</span> <span class="keywordflow">if</span> (expr->ty.defined()) {</div>
+<div class="line"><a id="l00508" name="l00508"></a><span class="lineno"> 508</span> <span class="keyword">const</span> <span class="keyword">auto</span>* prim_ty = expr->ty.as<<a class="code hl_class" href="classtvm_1_1PrimTypeNode.html">PrimTypeNode</a>>();</div>
+<div class="line"><a id="l00509" name="l00509"></a><span class="lineno"> 509</span> std::string ty =</div>
+<div class="line"><a id="l00510" name="l00510"></a><span class="lineno"> 510</span> prim_ty ? std::string(ffi::DLDataTypeToString(prim_ty->dtype)) : expr->ty.GetTypeKey();</div>
+<div class="line"><a id="l00511" name="l00511"></a><span class="lineno"> 511</span> <span class="keywordflow">return</span> TypeIndexToTypeKey(src->type_index) + <span class="stringliteral">"[ty="</span> + ty + <span class="stringliteral">"]"</span>;</div>
+<div class="line"><a id="l00512" name="l00512"></a><span class="lineno"> 512</span> }</div>
+<div class="line"><a id="l00513" name="l00513"></a><span class="lineno"> 513</span> }</div>
+<div class="line"><a id="l00514" name="l00514"></a><span class="lineno"> 514</span> <span class="keywordflow">return</span> TypeTraitsBase::GetMismatchTypeInfo(src);</div>
+<div class="line"><a id="l00515" name="l00515"></a><span class="lineno"> 515</span> }</div>
+</div>
+<div class="line"><a id="l00516" name="l00516"></a><span class="lineno"> 516</span>};</div>
+</div>
+<div class="line"><a id="l00517" name="l00517"></a><span class="lineno"> 517</span> </div>
+<div class="line"><a id="l00518" name="l00518"></a><span class="lineno"> 518</span><span class="keyword">template</span> <></div>
+<div class="line"><a id="l00519" name="l00519"></a><span class="lineno"><a class="line" href="namespacetvm_1_1ffi.html#a3953ced274a99f70b1ab2cd282f266e2"> 519</a></span><span class="keyword">inline</span> <span class="keyword">constexpr</span> <span class="keywordtype">bool</span> <a class="code hl_variable" href="namespacetvm_1_1ffi.html#a3953ced274a99f70b1ab2cd282f266e2">use_default_type_traits_v<PrimExpr></a> = <span class="keyword">false</span>;</div>
<div class="line"><a id="l00520" name="l00520"></a><span class="lineno"> 520</span> </div>
-<div class="line"><a id="l00521" name="l00521"></a><span class="lineno"><a class="line" href="structtvm_1_1ffi_1_1TypeTraits_3_01PrimExpr_01_4.html#a9472e92197fd2c19b4c58dc9091fb1e1"> 521</a></span> TVM_FFI_INLINE <span class="keyword">static</span> std::string <a class="code hl_function" href="structtvm_1_1ffi_1_1TypeTraits_3_01PrimExpr_01_4.html#a9472e92197fd2c19b4c58dc9091fb1e1">TypeStr</a>() { <span class="keywordflow">return</span> <span class="stringliteral">"ir.PrimExpr&quo [...]
-<div class="line"><a id="l00522" name="l00522"></a><span class="lineno"> 522</span> </div>
-<div class="foldopen" id="foldopen00523" data-start="{" data-end="}">
-<div class="line"><a id="l00523" name="l00523"></a><span class="lineno"><a class="line" href="structtvm_1_1ffi_1_1TypeTraits_3_01PrimExpr_01_4.html#a1065f2559ccded18e91419baf08390df"> 523</a></span> TVM_FFI_INLINE <span class="keyword">static</span> std::string <a class="code hl_function" href="structtvm_1_1ffi_1_1TypeTraits_3_01PrimExpr_01_4.html#a1065f2559ccded18e91419baf08390df">GetMismatchTypeInfo</a>(<span class="keyword">const</span> TVMFFIAny* src) {</div>
-<div class="line"><a id="l00524" name="l00524"></a><span class="lineno"> 524</span> <span class="keywordflow">return</span> TypeTraits<TypedExpr<PrimType>>::GetMismatchTypeInfo(src);</div>
-<div class="line"><a id="l00525" name="l00525"></a><span class="lineno"> 525</span> }</div>
-</div>
-<div class="line"><a id="l00526" name="l00526"></a><span class="lineno"> 526</span> </div>
-<div class="line"><a id="l00527" name="l00527"></a><span class="lineno"><a class="line" href="structtvm_1_1ffi_1_1TypeTraits_3_01PrimExpr_01_4.html#a91a59fcdc9e5602d4b296cc7533525d5"> 527</a></span> TVM_DLL <span class="keyword">static</span> <a class="code hl_class" href="classtvm_1_1PrimExpr.html">PrimExpr</a> <a class="code hl_function" href="structtvm_1_1ffi_1_1TypeTraits_3_01PrimExpr_01_4.html#a91a59fcdc9e5602d4b296cc7533525d5">ConvertFallbackValue</a>(StrictBool value);</div>
-<div class="line"><a id="l00528" name="l00528"></a><span class="lineno"><a class="line" href="structtvm_1_1ffi_1_1TypeTraits_3_01PrimExpr_01_4.html#a39a8f422a13c06451ce2fa1c6b7733a2"> 528</a></span> TVM_DLL <span class="keyword">static</span> <a class="code hl_class" href="classtvm_1_1PrimExpr.html">PrimExpr</a> <a class="code hl_function" href="structtvm_1_1ffi_1_1TypeTraits_3_01PrimExpr_01_4.html#a39a8f422a13c06451ce2fa1c6b7733a2">ConvertFallbackValue</a>(int64_t value);</div>
-<div class="line"><a id="l00529" name="l00529"></a><span class="lineno"><a class="line" href="structtvm_1_1ffi_1_1TypeTraits_3_01PrimExpr_01_4.html#ac92ddf3ce25ca16a0b9c8030121aaaa3"> 529</a></span> TVM_DLL <span class="keyword">static</span> <a class="code hl_class" href="classtvm_1_1PrimExpr.html">PrimExpr</a> <a class="code hl_function" href="structtvm_1_1ffi_1_1TypeTraits_3_01PrimExpr_01_4.html#ac92ddf3ce25ca16a0b9c8030121aaaa3">ConvertFallbackValue</a>(<span class="keywordtype">do [...]
-<div class="foldopen" id="foldopen00530" data-start="{" data-end="}">
-<div class="line"><a id="l00530" name="l00530"></a><span class="lineno"><a class="line" href="structtvm_1_1ffi_1_1TypeTraits_3_01PrimExpr_01_4.html#a8a9804726d037144ce7183a05739d3ca"> 530</a></span> TVM_FFI_INLINE <span class="keyword">static</span> <a class="code hl_class" href="classtvm_1_1PrimExpr.html">PrimExpr</a> <a class="code hl_function" href="structtvm_1_1ffi_1_1TypeTraits_3_01PrimExpr_01_4.html#a8a9804726d037144ce7183a05739d3ca">ConvertFallbackValue</a>(<a class="code hl_cla [...]
-<div class="line"><a id="l00531" name="l00531"></a><span class="lineno"> 531</span> <span class="keywordflow">return</span> value->ToPrimExpr();</div>
-<div class="line"><a id="l00532" name="l00532"></a><span class="lineno"> 532</span> }</div>
-</div>
-<div class="line"><a id="l00533" name="l00533"></a><span class="lineno"> 533</span>};</div>
-</div>
-<div class="line"><a id="l00534" name="l00534"></a><span class="lineno"> 534</span> </div>
-<div class="line"><a id="l00535" name="l00535"></a><span class="lineno"> 535</span><span class="keyword">template</span> <></div>
-<div class="line"><a id="l00536" name="l00536"></a><span class="lineno"><a class="line" href="namespacetvm_1_1ffi.html#a7ae7c1d7c3b3ff8dca4f3397891b2671"> 536</a></span><span class="keyword">inline</span> <span class="keyword">constexpr</span> <span class="keywordtype">bool</span> <a class="code hl_variable" href="namespacetvm_1_1ffi.html#a7ae7c1d7c3b3ff8dca4f3397891b2671">use_default_type_traits_v<IntExpr></a> = <span class="keyword">false</span>;</div>
-<div class="line"><a id="l00537" name="l00537"></a><span class="lineno"> 537</span> </div>
-<div class="line"><a id="l00538" name="l00538"></a><span class="lineno"> 538</span><span class="keyword">template</span> <></div>
-<div class="foldopen" id="foldopen00539" data-start="{" data-end="};">
-<div class="line"><a id="l00539" name="l00539"></a><span class="lineno"><a class="line" href="structtvm_1_1ffi_1_1TypeTraits_3_01IntExpr_01_4.html"> 539</a></span><span class="keyword">struct </span>TypeTraits<<a class="code hl_class" href="classtvm_1_1IntExpr.html">IntExpr</a>> : <span class="keyword">public</span> ObjectRefWithFallbackTraitsBase<IntExpr, int64_t> {</div>
-<div class="line"><a id="l00540" name="l00540"></a><span class="lineno"><a class="line" href="structtvm_1_1ffi_1_1TypeTraits_3_01IntExpr_01_4.html#ad48b9a72953c9677b57a0965ecf99397"> 540</a></span> <span class="keyword">using </span><a class="code hl_typedef" href="structtvm_1_1ffi_1_1TypeTraits_3_01IntExpr_01_4.html#ad48b9a72953c9677b57a0965ecf99397">Base</a> = ObjectRefWithFallbackTraitsBase<IntExpr, int64_t>;</div>
-<div class="line"><a id="l00541" name="l00541"></a><span class="lineno"> 541</span> </div>
-<div class="foldopen" id="foldopen00542" data-start="{" data-end="}">
-<div class="line"><a id="l00542" name="l00542"></a><span class="lineno"><a class="line" href="structtvm_1_1ffi_1_1TypeTraits_3_01IntExpr_01_4.html#aeb8d6e06d06899ca45692b2234113068"> 542</a></span> TVM_FFI_INLINE <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="structtvm_1_1ffi_1_1TypeTraits_3_01IntExpr_01_4.html#aeb8d6e06d06899ca45692b2234113068">CheckAnyStrict</a>(<span class="keyword">const</span> TVMFFIAny* src) {</div>
-<div class="line"><a id="l00543" name="l00543"></a><span class="lineno"> 543</span> <span class="keywordflow">if</span> (!Base::CheckAnyStrict(src)) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
-<div class="line"><a id="l00544" name="l00544"></a><span class="lineno"> 544</span> <span class="keywordflow">if</span> (src->type_index == TypeIndex::kTVMFFINone) <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
-<div class="line"><a id="l00545" name="l00545"></a><span class="lineno"> 545</span> <span class="keyword">const</span> <span class="keyword">auto</span>* expr = details::ObjectUnsafe::RawObjectPtrFromUnowned<ExprNode>(src->v_obj);</div>
-<div class="line"><a id="l00546" name="l00546"></a><span class="lineno"> 546</span> <span class="keyword">const</span> <span class="keyword">auto</span>* ty = expr->ty.as<<a class="code hl_class" href="classtvm_1_1PrimTypeNode.html">PrimTypeNode</a>>();</div>
-<div class="line"><a id="l00547" name="l00547"></a><span class="lineno"> 547</span> <span class="keywordflow">return</span> ty != <span class="keyword">nullptr</span> && ty-><a class="code hl_variable" href="classtvm_1_1PrimTypeNode.html#a33ddd141d33f41e97a81974e59f56e39">dtype</a>.lanes == 1 &&</div>
-<div class="line"><a id="l00548" name="l00548"></a><span class="lineno"> 548</span> (ty->dtype.code == kDLInt || ty->dtype.code == kDLUInt);</div>
-<div class="line"><a id="l00549" name="l00549"></a><span class="lineno"> 549</span> }</div>
-</div>
-<div class="line"><a id="l00550" name="l00550"></a><span class="lineno"> 550</span> </div>
-<div class="foldopen" id="foldopen00551" data-start="{" data-end="}">
-<div class="line"><a id="l00551" name="l00551"></a><span class="lineno"><a class="line" href="structtvm_1_1ffi_1_1TypeTraits_3_01IntExpr_01_4.html#a04e5c69ff8fe02aeae0407d31441da67"> 551</a></span> TVM_FFI_INLINE <span class="keyword">static</span> <a class="code hl_class" href="classtvm_1_1IntExpr.html">IntExpr</a> <a class="code hl_function" href="structtvm_1_1ffi_1_1TypeTraits_3_01IntExpr_01_4.html#a04e5c69ff8fe02aeae0407d31441da67">ConvertFallbackValue</a>(int64_t value) {</div>
-<div class="line"><a id="l00552" name="l00552"></a><span class="lineno"> 552</span> <span class="keywordflow">return</span> TypeTraits<PrimExpr>::ConvertFallbackValue(value).as_or_throw<<a class="code hl_class" href="classtvm_1_1IntExpr.html">IntExpr</a>>();</div>
-<div class="line"><a id="l00553" name="l00553"></a><span class="lineno"> 553</span> }</div>
-</div>
-<div class="line"><a id="l00554" name="l00554"></a><span class="lineno"> 554</span> </div>
-<div class="line"><a id="l00555" name="l00555"></a><span class="lineno"><a class="line" href="structtvm_1_1ffi_1_1TypeTraits_3_01IntExpr_01_4.html#a67e5169848329a8a241096f9929a1cef"> 555</a></span> TVM_FFI_INLINE <span class="keyword">static</span> std::string <a class="code hl_function" href="structtvm_1_1ffi_1_1TypeTraits_3_01IntExpr_01_4.html#a67e5169848329a8a241096f9929a1cef">TypeStr</a>() { <span class="keywordflow">return</span> <span class="stringliteral">"ir.IntExpr"< [...]
-<div class="line"><a id="l00556" name="l00556"></a><span class="lineno"> 556</span> </div>
-<div class="foldopen" id="foldopen00557" data-start="{" data-end="}">
-<div class="line"><a id="l00557" name="l00557"></a><span class="lineno"><a class="line" href="structtvm_1_1ffi_1_1TypeTraits_3_01IntExpr_01_4.html#a4b1cd65d933fe3c22a18efc33f3af1e9"> 557</a></span> TVM_FFI_INLINE <span class="keyword">static</span> std::string <a class="code hl_function" href="structtvm_1_1ffi_1_1TypeTraits_3_01IntExpr_01_4.html#a4b1cd65d933fe3c22a18efc33f3af1e9">GetMismatchTypeInfo</a>(<span class="keyword">const</span> TVMFFIAny* src) {</div>
-<div class="line"><a id="l00558" name="l00558"></a><span class="lineno"> 558</span> <span class="keywordflow">return</span> TypeTraits<TypedExpr<PrimType>>::GetMismatchTypeInfo(src);</div>
-<div class="line"><a id="l00559" name="l00559"></a><span class="lineno"> 559</span> }</div>
-</div>
-<div class="line"><a id="l00560" name="l00560"></a><span class="lineno"> 560</span>};</div>
-</div>
-<div class="line"><a id="l00561" name="l00561"></a><span class="lineno"> 561</span> </div>
-<div class="line"><a id="l00562" name="l00562"></a><span class="lineno"> 562</span><span class="keyword">template</span> <></div>
-<div class="line"><a id="l00563" name="l00563"></a><span class="lineno"><a class="line" href="namespacetvm_1_1ffi.html#a2a487df61f267ffa50e8ed5e6e00323a"> 563</a></span><span class="keyword">inline</span> <span class="keyword">constexpr</span> <span class="keywordtype">bool</span> <a class="code hl_variable" href="namespacetvm_1_1ffi.html#a2a487df61f267ffa50e8ed5e6e00323a">use_default_type_traits_v<Expr></a> = <span class="keyword">false</span>;</div>
-<div class="line"><a id="l00564" name="l00564"></a><span class="lineno"> 564</span> </div>
-<div class="line"><a id="l00565" name="l00565"></a><span class="lineno"> 565</span><span class="comment">// Allow generic Expr arguments to use the primitive-literal conversions</span></div>
-<div class="line"><a id="l00566" name="l00566"></a><span class="lineno"> 566</span><span class="comment">// already defined by PrimExpr.</span></div>
-<div class="line"><a id="l00567" name="l00567"></a><span class="lineno"> 567</span><span class="keyword">template</span> <></div>
-<div class="foldopen" id="foldopen00568" data-start="{" data-end="};">
-<div class="line"><a id="l00568" name="l00568"></a><span class="lineno"><a class="line" href="structtvm_1_1ffi_1_1TypeTraits_3_01Expr_01_4.html"> 568</a></span><span class="keyword">struct </span>TypeTraits<<a class="code hl_class" href="classtvm_1_1Expr.html">Expr</a>> : <span class="keyword">public</span> ObjectRefWithFallbackTraitsBase<Expr, PrimExpr, ffi::String> {</div>
-<div class="line"><a id="l00569" name="l00569"></a><span class="lineno"><a class="line" href="structtvm_1_1ffi_1_1TypeTraits_3_01Expr_01_4.html#a3ac03c8423e9d3ac76c7f81b80623eb9"> 569</a></span> TVM_FFI_INLINE <span class="keyword">static</span> <a class="code hl_class" href="classtvm_1_1Expr.html">Expr</a> <a class="code hl_function" href="structtvm_1_1ffi_1_1TypeTraits_3_01Expr_01_4.html#a3ac03c8423e9d3ac76c7f81b80623eb9">ConvertFallbackValue</a>(<a class="code hl_class" href="classt [...]
-<div class="line"><a id="l00570" name="l00570"></a><span class="lineno"><a class="line" href="structtvm_1_1ffi_1_1TypeTraits_3_01Expr_01_4.html#ab718a7d6345028769e8bfb6145c5bda7"> 570</a></span> TVM_DLL <span class="keyword">static</span> <a class="code hl_class" href="classtvm_1_1Expr.html">Expr</a> <a class="code hl_function" href="structtvm_1_1ffi_1_1TypeTraits_3_01Expr_01_4.html#ab718a7d6345028769e8bfb6145c5bda7">ConvertFallbackValue</a>(ffi::String value);</div>
-<div class="line"><a id="l00571" name="l00571"></a><span class="lineno"> 571</span>};</div>
-</div>
-<div class="line"><a id="l00572" name="l00572"></a><span class="lineno"> 572</span>} <span class="comment">// namespace ffi</span></div>
-</div>
-<div class="line"><a id="l00573" name="l00573"></a><span class="lineno"> 573</span> </div>
-<div class="line"><a id="l00574" name="l00574"></a><span class="lineno"> 574</span>} <span class="comment">// namespace tvm</span></div>
-<div class="line"><a id="l00575" name="l00575"></a><span class="lineno"> 575</span> </div>
-<div class="line"><a id="l00576" name="l00576"></a><span class="lineno"> 576</span><span class="preprocessor">#endif </span><span class="comment">// TVM_IR_BASE_EXPR_H_</span></div>
-<div class="ttc" id="aclasstvm_1_1Call_html"><div class="ttname"><a href="classtvm_1_1Call.html">tvm::Call</a></div><div class="ttdoc">Managed reference to CallNode.</div><div class="ttdef"><b>Definition</b> expr.h:511</div></div>
+<div class="line"><a id="l00521" name="l00521"></a><span class="lineno"> 521</span><span class="comment">// define automatic conversion from bool, int64_t, double to PrimExpr</span></div>
+<div class="line"><a id="l00522" name="l00522"></a><span class="lineno"> 522</span><span class="comment">// These functions are declared early to avoid circular dependency</span></div>
+<div class="line"><a id="l00523" name="l00523"></a><span class="lineno"> 523</span><span class="keyword">template</span> <></div>
+<div class="foldopen" id="foldopen00524" data-start="{" data-end="};">
+<div class="line"><a id="l00524" name="l00524"></a><span class="lineno"><a class="line" href="structtvm_1_1ffi_1_1TypeTraits_3_01PrimExpr_01_4.html"> 524</a></span><span class="keyword">struct </span>TypeTraits<<a class="code hl_class" href="classtvm_1_1PrimExpr.html">PrimExpr</a>> : <span class="keyword">public</span> ObjectRefWithFallbackTraitsBase<PrimExpr, StrictBool, int64_t,</div>
+<div class="line"><a id="l00525" name="l00525"></a><span class="lineno"> 525</span> double, PrimExprConvertible> {</div>
+<div class="line"><a id="l00526" name="l00526"></a><span class="lineno"><a class="line" href="structtvm_1_1ffi_1_1TypeTraits_3_01PrimExpr_01_4.html#a9736ff64225b3095b26d178904d1fb86"> 526</a></span> <span class="keyword">using </span><a class="code hl_typedef" href="structtvm_1_1ffi_1_1TypeTraits_3_01PrimExpr_01_4.html#a9736ff64225b3095b26d178904d1fb86">Base</a> =</div>
+<div class="line"><a id="l00527" name="l00527"></a><span class="lineno"> 527</span> ObjectRefWithFallbackTraitsBase<PrimExpr, StrictBool, int64_t, double, PrimExprConvertible>;</div>
+<div class="foldopen" id="foldopen00528" data-start="{" data-end="}">
+<div class="line"><a id="l00528" name="l00528"></a><span class="lineno"><a class="line" href="structtvm_1_1ffi_1_1TypeTraits_3_01PrimExpr_01_4.html#a37db92b1772374171d83184bf87caebc"> 528</a></span> TVM_FFI_INLINE <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="structtvm_1_1ffi_1_1TypeTraits_3_01PrimExpr_01_4.html#a37db92b1772374171d83184bf87caebc">CheckAnyStrict</a>(<span class="keyword">const</span> TVMFFIAny* src) {</div>
+<div class="line"><a id="l00529" name="l00529"></a><span class="lineno"> 529</span> <span class="keywordflow">if</span> (src->type_index == TypeIndex::kTVMFFINone) <span class="keywordflow">return</span> PrimExpr::_type_is_nullable;</div>
+<div class="line"><a id="l00530" name="l00530"></a><span class="lineno"> 530</span> <span class="keywordflow">return</span> TypeTraits<TypedExpr<PrimType>>::CheckAnyStrict(src);</div>
+<div class="line"><a id="l00531" name="l00531"></a><span class="lineno"> 531</span> }</div>
+</div>
+<div class="line"><a id="l00532" name="l00532"></a><span class="lineno"> 532</span> </div>
+<div class="foldopen" id="foldopen00533" data-start="{" data-end="}">
+<div class="line"><a id="l00533" name="l00533"></a><span class="lineno"><a class="line" href="structtvm_1_1ffi_1_1TypeTraits_3_01PrimExpr_01_4.html#ad41ff91a2dd0e4f3bef192c8919e6867"> 533</a></span> TVM_FFI_INLINE <span class="keyword">static</span> std::optional<PrimExpr> <a class="code hl_function" href="structtvm_1_1ffi_1_1TypeTraits_3_01PrimExpr_01_4.html#ad41ff91a2dd0e4f3bef192c8919e6867">TryCastFromAnyView</a>(<span class="keyword">const</span> TVMFFIAny* src) {</div>
+<div class="line"><a id="l00534" name="l00534"></a><span class="lineno"> 534</span> <span class="comment">// PrimExprConvertible is nullable, but a required expression cannot accept None.</span></div>
+<div class="line"><a id="l00535" name="l00535"></a><span class="lineno"> 535</span> <span class="keywordflow">if</span> (src->type_index == TypeIndex::kTVMFFINone) <span class="keywordflow">return</span> std::nullopt;</div>
+<div class="line"><a id="l00536" name="l00536"></a><span class="lineno"> 536</span> <span class="keywordflow">return</span> Base::TryCastFromAnyView(src);</div>
+<div class="line"><a id="l00537" name="l00537"></a><span class="lineno"> 537</span> }</div>
+</div>
+<div class="line"><a id="l00538" name="l00538"></a><span class="lineno"> 538</span> </div>
+<div class="line"><a id="l00539" name="l00539"></a><span class="lineno"><a class="line" href="structtvm_1_1ffi_1_1TypeTraits_3_01PrimExpr_01_4.html#a9472e92197fd2c19b4c58dc9091fb1e1"> 539</a></span> TVM_FFI_INLINE <span class="keyword">static</span> std::string <a class="code hl_function" href="structtvm_1_1ffi_1_1TypeTraits_3_01PrimExpr_01_4.html#a9472e92197fd2c19b4c58dc9091fb1e1">TypeStr</a>() { <span class="keywordflow">return</span> <span class="stringliteral">"ir.PrimExpr&quo [...]
+<div class="line"><a id="l00540" name="l00540"></a><span class="lineno"> 540</span> </div>
+<div class="foldopen" id="foldopen00541" data-start="{" data-end="}">
+<div class="line"><a id="l00541" name="l00541"></a><span class="lineno"><a class="line" href="structtvm_1_1ffi_1_1TypeTraits_3_01PrimExpr_01_4.html#a1065f2559ccded18e91419baf08390df"> 541</a></span> TVM_FFI_INLINE <span class="keyword">static</span> std::string <a class="code hl_function" href="structtvm_1_1ffi_1_1TypeTraits_3_01PrimExpr_01_4.html#a1065f2559ccded18e91419baf08390df">GetMismatchTypeInfo</a>(<span class="keyword">const</span> TVMFFIAny* src) {</div>
+<div class="line"><a id="l00542" name="l00542"></a><span class="lineno"> 542</span> <span class="keywordflow">return</span> TypeTraits<TypedExpr<PrimType>>::GetMismatchTypeInfo(src);</div>
+<div class="line"><a id="l00543" name="l00543"></a><span class="lineno"> 543</span> }</div>
+</div>
+<div class="line"><a id="l00544" name="l00544"></a><span class="lineno"> 544</span> </div>
+<div class="line"><a id="l00545" name="l00545"></a><span class="lineno"><a class="line" href="structtvm_1_1ffi_1_1TypeTraits_3_01PrimExpr_01_4.html#a91a59fcdc9e5602d4b296cc7533525d5"> 545</a></span> TVM_DLL <span class="keyword">static</span> <a class="code hl_class" href="classtvm_1_1PrimExpr.html">PrimExpr</a> <a class="code hl_function" href="structtvm_1_1ffi_1_1TypeTraits_3_01PrimExpr_01_4.html#a91a59fcdc9e5602d4b296cc7533525d5">ConvertFallbackValue</a>(StrictBool value);</div>
+<div class="line"><a id="l00546" name="l00546"></a><span class="lineno"><a class="line" href="structtvm_1_1ffi_1_1TypeTraits_3_01PrimExpr_01_4.html#a39a8f422a13c06451ce2fa1c6b7733a2"> 546</a></span> TVM_DLL <span class="keyword">static</span> <a class="code hl_class" href="classtvm_1_1PrimExpr.html">PrimExpr</a> <a class="code hl_function" href="structtvm_1_1ffi_1_1TypeTraits_3_01PrimExpr_01_4.html#a39a8f422a13c06451ce2fa1c6b7733a2">ConvertFallbackValue</a>(int64_t value);</div>
+<div class="line"><a id="l00547" name="l00547"></a><span class="lineno"><a class="line" href="structtvm_1_1ffi_1_1TypeTraits_3_01PrimExpr_01_4.html#ac92ddf3ce25ca16a0b9c8030121aaaa3"> 547</a></span> TVM_DLL <span class="keyword">static</span> <a class="code hl_class" href="classtvm_1_1PrimExpr.html">PrimExpr</a> <a class="code hl_function" href="structtvm_1_1ffi_1_1TypeTraits_3_01PrimExpr_01_4.html#ac92ddf3ce25ca16a0b9c8030121aaaa3">ConvertFallbackValue</a>(<span class="keywordtype">do [...]
+<div class="foldopen" id="foldopen00548" data-start="{" data-end="}">
+<div class="line"><a id="l00548" name="l00548"></a><span class="lineno"><a class="line" href="structtvm_1_1ffi_1_1TypeTraits_3_01PrimExpr_01_4.html#a8a9804726d037144ce7183a05739d3ca"> 548</a></span> TVM_FFI_INLINE <span class="keyword">static</span> <a class="code hl_class" href="classtvm_1_1PrimExpr.html">PrimExpr</a> <a class="code hl_function" href="structtvm_1_1ffi_1_1TypeTraits_3_01PrimExpr_01_4.html#a8a9804726d037144ce7183a05739d3ca">ConvertFallbackValue</a>(<a class="code hl_cla [...]
+<div class="line"><a id="l00549" name="l00549"></a><span class="lineno"> 549</span> <span class="keywordflow">return</span> value->ToPrimExpr();</div>
+<div class="line"><a id="l00550" name="l00550"></a><span class="lineno"> 550</span> }</div>
+</div>
+<div class="line"><a id="l00551" name="l00551"></a><span class="lineno"> 551</span>};</div>
+</div>
+<div class="line"><a id="l00552" name="l00552"></a><span class="lineno"> 552</span> </div>
+<div class="line"><a id="l00553" name="l00553"></a><span class="lineno"> 553</span><span class="keyword">template</span> <></div>
+<div class="line"><a id="l00554" name="l00554"></a><span class="lineno"><a class="line" href="namespacetvm_1_1ffi.html#a7ae7c1d7c3b3ff8dca4f3397891b2671"> 554</a></span><span class="keyword">inline</span> <span class="keyword">constexpr</span> <span class="keywordtype">bool</span> <a class="code hl_variable" href="namespacetvm_1_1ffi.html#a7ae7c1d7c3b3ff8dca4f3397891b2671">use_default_type_traits_v<IntExpr></a> = <span class="keyword">false</span>;</div>
+<div class="line"><a id="l00555" name="l00555"></a><span class="lineno"> 555</span> </div>
+<div class="line"><a id="l00556" name="l00556"></a><span class="lineno"> 556</span><span class="keyword">template</span> <></div>
+<div class="foldopen" id="foldopen00557" data-start="{" data-end="};">
+<div class="line"><a id="l00557" name="l00557"></a><span class="lineno"><a class="line" href="structtvm_1_1ffi_1_1TypeTraits_3_01IntExpr_01_4.html"> 557</a></span><span class="keyword">struct </span>TypeTraits<<a class="code hl_class" href="classtvm_1_1IntExpr.html">IntExpr</a>> : <span class="keyword">public</span> ObjectRefWithFallbackTraitsBase<IntExpr, int64_t> {</div>
+<div class="line"><a id="l00558" name="l00558"></a><span class="lineno"><a class="line" href="structtvm_1_1ffi_1_1TypeTraits_3_01IntExpr_01_4.html#ad48b9a72953c9677b57a0965ecf99397"> 558</a></span> <span class="keyword">using </span><a class="code hl_typedef" href="structtvm_1_1ffi_1_1TypeTraits_3_01IntExpr_01_4.html#ad48b9a72953c9677b57a0965ecf99397">Base</a> = ObjectRefWithFallbackTraitsBase<IntExpr, int64_t>;</div>
+<div class="line"><a id="l00559" name="l00559"></a><span class="lineno"> 559</span> </div>
+<div class="foldopen" id="foldopen00560" data-start="{" data-end="}">
+<div class="line"><a id="l00560" name="l00560"></a><span class="lineno"><a class="line" href="structtvm_1_1ffi_1_1TypeTraits_3_01IntExpr_01_4.html#aeb8d6e06d06899ca45692b2234113068"> 560</a></span> TVM_FFI_INLINE <span class="keyword">static</span> <span class="keywordtype">bool</span> <a class="code hl_function" href="structtvm_1_1ffi_1_1TypeTraits_3_01IntExpr_01_4.html#aeb8d6e06d06899ca45692b2234113068">CheckAnyStrict</a>(<span class="keyword">const</span> TVMFFIAny* src) {</div>
+<div class="line"><a id="l00561" name="l00561"></a><span class="lineno"> 561</span> <span class="keywordflow">if</span> (!Base::CheckAnyStrict(src)) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a id="l00562" name="l00562"></a><span class="lineno"> 562</span> <span class="keywordflow">if</span> (src->type_index == TypeIndex::kTVMFFINone) <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a id="l00563" name="l00563"></a><span class="lineno"> 563</span> <span class="keyword">const</span> <span class="keyword">auto</span>* expr = details::ObjectUnsafe::RawObjectPtrFromUnowned<ExprNode>(src->v_obj);</div>
+<div class="line"><a id="l00564" name="l00564"></a><span class="lineno"> 564</span> <span class="keyword">const</span> <span class="keyword">auto</span>* ty = expr->ty.as<<a class="code hl_class" href="classtvm_1_1PrimTypeNode.html">PrimTypeNode</a>>();</div>
+<div class="line"><a id="l00565" name="l00565"></a><span class="lineno"> 565</span> <span class="keywordflow">return</span> ty != <span class="keyword">nullptr</span> && ty-><a class="code hl_variable" href="classtvm_1_1PrimTypeNode.html#a33ddd141d33f41e97a81974e59f56e39">dtype</a>.lanes == 1 &&</div>
+<div class="line"><a id="l00566" name="l00566"></a><span class="lineno"> 566</span> (ty->dtype.code == kDLInt || ty->dtype.code == kDLUInt);</div>
+<div class="line"><a id="l00567" name="l00567"></a><span class="lineno"> 567</span> }</div>
+</div>
+<div class="line"><a id="l00568" name="l00568"></a><span class="lineno"> 568</span> </div>
+<div class="foldopen" id="foldopen00569" data-start="{" data-end="}">
+<div class="line"><a id="l00569" name="l00569"></a><span class="lineno"><a class="line" href="structtvm_1_1ffi_1_1TypeTraits_3_01IntExpr_01_4.html#a04e5c69ff8fe02aeae0407d31441da67"> 569</a></span> TVM_FFI_INLINE <span class="keyword">static</span> <a class="code hl_class" href="classtvm_1_1IntExpr.html">IntExpr</a> <a class="code hl_function" href="structtvm_1_1ffi_1_1TypeTraits_3_01IntExpr_01_4.html#a04e5c69ff8fe02aeae0407d31441da67">ConvertFallbackValue</a>(int64_t value) {</div>
+<div class="line"><a id="l00570" name="l00570"></a><span class="lineno"> 570</span> <span class="keywordflow">return</span> TypeTraits<PrimExpr>::ConvertFallbackValue(value).as_or_throw<<a class="code hl_class" href="classtvm_1_1IntExpr.html">IntExpr</a>>();</div>
+<div class="line"><a id="l00571" name="l00571"></a><span class="lineno"> 571</span> }</div>
+</div>
+<div class="line"><a id="l00572" name="l00572"></a><span class="lineno"> 572</span> </div>
+<div class="line"><a id="l00573" name="l00573"></a><span class="lineno"><a class="line" href="structtvm_1_1ffi_1_1TypeTraits_3_01IntExpr_01_4.html#a67e5169848329a8a241096f9929a1cef"> 573</a></span> TVM_FFI_INLINE <span class="keyword">static</span> std::string <a class="code hl_function" href="structtvm_1_1ffi_1_1TypeTraits_3_01IntExpr_01_4.html#a67e5169848329a8a241096f9929a1cef">TypeStr</a>() { <span class="keywordflow">return</span> <span class="stringliteral">"ir.IntExpr"< [...]
+<div class="line"><a id="l00574" name="l00574"></a><span class="lineno"> 574</span> </div>
+<div class="foldopen" id="foldopen00575" data-start="{" data-end="}">
+<div class="line"><a id="l00575" name="l00575"></a><span class="lineno"><a class="line" href="structtvm_1_1ffi_1_1TypeTraits_3_01IntExpr_01_4.html#a4b1cd65d933fe3c22a18efc33f3af1e9"> 575</a></span> TVM_FFI_INLINE <span class="keyword">static</span> std::string <a class="code hl_function" href="structtvm_1_1ffi_1_1TypeTraits_3_01IntExpr_01_4.html#a4b1cd65d933fe3c22a18efc33f3af1e9">GetMismatchTypeInfo</a>(<span class="keyword">const</span> TVMFFIAny* src) {</div>
+<div class="line"><a id="l00576" name="l00576"></a><span class="lineno"> 576</span> <span class="keywordflow">return</span> TypeTraits<TypedExpr<PrimType>>::GetMismatchTypeInfo(src);</div>
+<div class="line"><a id="l00577" name="l00577"></a><span class="lineno"> 577</span> }</div>
+</div>
+<div class="line"><a id="l00578" name="l00578"></a><span class="lineno"> 578</span>};</div>
+</div>
+<div class="line"><a id="l00579" name="l00579"></a><span class="lineno"> 579</span> </div>
+<div class="line"><a id="l00580" name="l00580"></a><span class="lineno"> 580</span><span class="keyword">template</span> <></div>
+<div class="line"><a id="l00581" name="l00581"></a><span class="lineno"><a class="line" href="namespacetvm_1_1ffi.html#a2a487df61f267ffa50e8ed5e6e00323a"> 581</a></span><span class="keyword">inline</span> <span class="keyword">constexpr</span> <span class="keywordtype">bool</span> <a class="code hl_variable" href="namespacetvm_1_1ffi.html#a2a487df61f267ffa50e8ed5e6e00323a">use_default_type_traits_v<Expr></a> = <span class="keyword">false</span>;</div>
+<div class="line"><a id="l00582" name="l00582"></a><span class="lineno"> 582</span> </div>
+<div class="line"><a id="l00583" name="l00583"></a><span class="lineno"> 583</span><span class="comment">// Allow generic Expr arguments to use the primitive-literal conversions</span></div>
+<div class="line"><a id="l00584" name="l00584"></a><span class="lineno"> 584</span><span class="comment">// already defined by PrimExpr.</span></div>
+<div class="line"><a id="l00585" name="l00585"></a><span class="lineno"> 585</span><span class="keyword">template</span> <></div>
+<div class="foldopen" id="foldopen00586" data-start="{" data-end="};">
+<div class="line"><a id="l00586" name="l00586"></a><span class="lineno"><a class="line" href="structtvm_1_1ffi_1_1TypeTraits_3_01Expr_01_4.html"> 586</a></span><span class="keyword">struct </span>TypeTraits<<a class="code hl_class" href="classtvm_1_1Expr.html">Expr</a>> : <span class="keyword">public</span> ObjectRefWithFallbackTraitsBase<Expr, PrimExpr, ffi::String> {</div>
+<div class="line"><a id="l00587" name="l00587"></a><span class="lineno"><a class="line" href="structtvm_1_1ffi_1_1TypeTraits_3_01Expr_01_4.html#a3ac03c8423e9d3ac76c7f81b80623eb9"> 587</a></span> TVM_FFI_INLINE <span class="keyword">static</span> <a class="code hl_class" href="classtvm_1_1Expr.html">Expr</a> <a class="code hl_function" href="structtvm_1_1ffi_1_1TypeTraits_3_01Expr_01_4.html#a3ac03c8423e9d3ac76c7f81b80623eb9">ConvertFallbackValue</a>(<a class="code hl_class" href="classt [...]
+<div class="line"><a id="l00588" name="l00588"></a><span class="lineno"><a class="line" href="structtvm_1_1ffi_1_1TypeTraits_3_01Expr_01_4.html#ab718a7d6345028769e8bfb6145c5bda7"> 588</a></span> TVM_DLL <span class="keyword">static</span> <a class="code hl_class" href="classtvm_1_1Expr.html">Expr</a> <a class="code hl_function" href="structtvm_1_1ffi_1_1TypeTraits_3_01Expr_01_4.html#ab718a7d6345028769e8bfb6145c5bda7">ConvertFallbackValue</a>(ffi::String value);</div>
+<div class="line"><a id="l00589" name="l00589"></a><span class="lineno"> 589</span>};</div>
+</div>
+<div class="line"><a id="l00590" name="l00590"></a><span class="lineno"> 590</span>} <span class="comment">// namespace ffi</span></div>
+</div>
+<div class="line"><a id="l00591" name="l00591"></a><span class="lineno"> 591</span> </div>
+<div class="line"><a id="l00592" name="l00592"></a><span class="lineno"> 592</span>} <span class="comment">// namespace tvm</span></div>
+<div class="line"><a id="l00593" name="l00593"></a><span class="lineno"> 593</span> </div>
+<div class="line"><a id="l00594" name="l00594"></a><span class="lineno"> 594</span><span class="preprocessor">#endif </span><span class="comment">// TVM_IR_BASE_EXPR_H_</span></div>
+<div class="ttc" id="aclasstvm_1_1Call_html"><div class="ttname"><a href="classtvm_1_1Call.html">tvm::Call</a></div><div class="ttdoc">Managed reference to CallNode.</div><div class="ttdef"><b>Definition</b> expr.h:532</div></div>
<div class="ttc" id="aclasstvm_1_1ExprNode_html"><div class="ttname"><a href="classtvm_1_1ExprNode.html">tvm::ExprNode</a></div><div class="ttdoc">Base type of all the expressions.</div><div class="ttdef"><b>Definition</b> base_expr.h:303</div></div>
<div class="ttc" id="aclasstvm_1_1ExprNode_html_a4c2a9b792a5ec422d8e04d6d78707fcb"><div class="ttname"><a href="classtvm_1_1ExprNode.html#a4c2a9b792a5ec422d8e04d6d78707fcb">tvm::ExprNode::ty</a></div><div class="ttdeci">Type ty</div><div class="ttdoc">The deduced or annotated type of the expression.</div><div class="ttdef"><b>Definition</b> base_expr.h:317</div></div>
<div class="ttc" id="aclasstvm_1_1ExprNode_html_a52b366cd48d311f2406d86d92991c834"><div class="ttname"><a href="classtvm_1_1ExprNode.html#a52b366cd48d311f2406d86d92991c834">tvm::ExprNode::span</a></div><div class="ttdeci">Span span</div><div class="ttdoc">Span that points to the original source code. Reserved debug information.</div><div class="ttdef"><b>Definition</b> base_expr.h:309</div></div>
@@ -603,37 +625,40 @@ $(document).ready(function() { init_codefold(0); });
<div class="ttc" id="aclasstvm_1_1ExprNode_html_a998e4b1d8caa76f66e9d947931178f01"><div class="ttname"><a href="classtvm_1_1ExprNode.html#a998e4b1d8caa76f66e9d947931178f01">tvm::ExprNode::_type_child_slots</a></div><div class="ttdeci">static constexpr const uint32_t _type_child_slots</div><div class="ttdef"><b>Definition</b> base_expr.h:330</div></div>
<div class="ttc" id="aclasstvm_1_1ExprNode_html_ae10a6ed3fb0e55e098b4e1e223799f8c"><div class="ttname"><a href="classtvm_1_1ExprNode.html#ae10a6ed3fb0e55e098b4e1e223799f8c">tvm::ExprNode::RegisterReflection</a></div><div class="ttdeci">static void RegisterReflection()</div><div class="ttdef"><b>Definition</b> base_expr.h:319</div></div>
<div class="ttc" id="aclasstvm_1_1Expr_html"><div class="ttname"><a href="classtvm_1_1Expr.html">tvm::Expr</a></div><div class="ttdoc">Managed reference to ExprNode.</div><div class="ttdef"><b>Definition</b> base_expr.h:338</div></div>
-<div class="ttc" id="aclasstvm_1_1Expr_html_a081d3512d899e352e81e8eda6385c444"><div class="ttname"><a href="classtvm_1_1Expr.html#a081d3512d899e352e81e8eda6385c444">tvm::Expr::TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE</a></div><div class="ttdeci">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE(Expr, ffi::ObjectRef, ExprNode)</div></div>
+<div class="ttc" id="aclasstvm_1_1Expr_html_a26775d381ee6e7c7bb65b8a7320f5b87"><div class="ttname"><a href="classtvm_1_1Expr.html#a26775d381ee6e7c7bb65b8a7320f5b87">tvm::Expr::TVM_FFI_DEFINE_OBJECT_REF_METHODS_NOTNULLABLE</a></div><div class="ttdeci">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NOTNULLABLE(Expr, ffi::ObjectRef, ExprNode)</div></div>
<div class="ttc" id="aclasstvm_1_1Expr_html_a637231cfc91838b8f14745ac199b5fbf"><div class="ttname"><a href="classtvm_1_1Expr.html#a637231cfc91838b8f14745ac199b5fbf">tvm::Expr::operator==</a></div><div class="ttdeci">bool operator==(const Expr &other) const =delete</div></div>
<div class="ttc" id="aclasstvm_1_1Expr_html_a86bd9da75268e479e3bbe61729dce8ac"><div class="ttname"><a href="classtvm_1_1Expr.html#a86bd9da75268e479e3bbe61729dce8ac">tvm::Expr::operator!=</a></div><div class="ttdeci">bool operator!=(const Expr &other) const =delete</div></div>
+<div class="ttc" id="aclasstvm_1_1Expr_html_aad84c3380b07b63427dda3697a78b269"><div class="ttname"><a href="classtvm_1_1Expr.html#aad84c3380b07b63427dda3697a78b269">tvm::Expr::Expr</a></div><div class="ttdeci">Expr(ffi::ObjectPtr< ExprNode > node)</div><div class="ttdef"><b>Definition</b> base_expr.h:346</div></div>
<div class="ttc" id="aclasstvm_1_1Expr_html_afb14020d9ae652a64a6f15dcba073c0e"><div class="ttname"><a href="classtvm_1_1Expr.html#afb14020d9ae652a64a6f15dcba073c0e">tvm::Expr::operator<</a></div><div class="ttdeci">bool operator<(const Expr &other) const =delete</div></div>
-<div class="ttc" id="aclasstvm_1_1IntExpr_html"><div class="ttname"><a href="classtvm_1_1IntExpr.html">tvm::IntExpr</a></div><div class="ttdoc">View over a scalar signed or unsigned integer expression of any bit width.</div><div class="ttdef"><b>Definition</b> base_expr.h:436</div></div>
-<div class="ttc" id="aclasstvm_1_1IntExpr_html_a05d3dcf2d5ced700249353dc34f14022"><div class="ttname"><a href="classtvm_1_1IntExpr.html#a05d3dcf2d5ced700249353dc34f14022">tvm::IntExpr::TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE</a></div><div class="ttdeci">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE(IntExpr, PrimExpr, ExprNode)</div></div>
-<div class="ttc" id="aclasstvm_1_1IntExpr_html_a134f662e9c361e9e72f282c604859719"><div class="ttname"><a href="classtvm_1_1IntExpr.html#a134f662e9c361e9e72f282c604859719">tvm::IntExpr::_type_container_is_exact</a></div><div class="ttdeci">static constexpr bool _type_container_is_exact</div><div class="ttdef"><b>Definition</b> base_expr.h:439</div></div>
-<div class="ttc" id="aclasstvm_1_1OpaqueExprNode_html"><div class="ttname"><a href="classtvm_1_1OpaqueExprNode.html">tvm::OpaqueExprNode</a></div><div class="ttdoc">Base node for opaque construction-time expressions.</div><div class="ttdef"><b>Definition</b> base_expr.h:355</div></div>
-<div class="ttc" id="aclasstvm_1_1OpaqueExprNode_html_a0aec85b5f32e134740ab24a36850af5a"><div class="ttname"><a href="classtvm_1_1OpaqueExprNode.html#a0aec85b5f32e134740ab24a36850af5a">tvm::OpaqueExprNode::_type_child_slots</a></div><div class="ttdeci">static constexpr const uint32_t _type_child_slots</div><div class="ttdef"><b>Definition</b> base_expr.h:362</div></div>
+<div class="ttc" id="aclasstvm_1_1IntExpr_html"><div class="ttname"><a href="classtvm_1_1IntExpr.html">tvm::IntExpr</a></div><div class="ttdoc">View over a scalar signed or unsigned integer expression of any bit width.</div><div class="ttdef"><b>Definition</b> base_expr.h:446</div></div>
+<div class="ttc" id="aclasstvm_1_1IntExpr_html_a134f662e9c361e9e72f282c604859719"><div class="ttname"><a href="classtvm_1_1IntExpr.html#a134f662e9c361e9e72f282c604859719">tvm::IntExpr::_type_container_is_exact</a></div><div class="ttdeci">static constexpr bool _type_container_is_exact</div><div class="ttdef"><b>Definition</b> base_expr.h:449</div></div>
+<div class="ttc" id="aclasstvm_1_1IntExpr_html_ae847c279a016d20acf2e7ac14e2a78eb"><div class="ttname"><a href="classtvm_1_1IntExpr.html#ae847c279a016d20acf2e7ac14e2a78eb">tvm::IntExpr::TVM_FFI_DEFINE_OBJECT_REF_METHODS_NOTNULLABLE</a></div><div class="ttdeci">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NOTNULLABLE(IntExpr, PrimExpr, ExprNode)</div></div>
+<div class="ttc" id="aclasstvm_1_1OpaqueExprNode_html"><div class="ttname"><a href="classtvm_1_1OpaqueExprNode.html">tvm::OpaqueExprNode</a></div><div class="ttdoc">Base node for opaque construction-time expressions.</div><div class="ttdef"><b>Definition</b> base_expr.h:359</div></div>
+<div class="ttc" id="aclasstvm_1_1OpaqueExprNode_html_a0aec85b5f32e134740ab24a36850af5a"><div class="ttname"><a href="classtvm_1_1OpaqueExprNode.html#a0aec85b5f32e134740ab24a36850af5a">tvm::OpaqueExprNode::_type_child_slots</a></div><div class="ttdeci">static constexpr const uint32_t _type_child_slots</div><div class="ttdef"><b>Definition</b> base_expr.h:366</div></div>
<div class="ttc" id="aclasstvm_1_1OpaqueExprNode_html_a43b8b6676f146d6b431a793a7bf6c12e"><div class="ttname"><a href="classtvm_1_1OpaqueExprNode.html#a43b8b6676f146d6b431a793a7bf6c12e">tvm::OpaqueExprNode::TVM_FFI_DECLARE_OBJECT_INFO</a></div><div class="ttdeci">TVM_FFI_DECLARE_OBJECT_INFO("ir.OpaqueExpr", OpaqueExprNode, ExprNode)</div></div>
-<div class="ttc" id="aclasstvm_1_1OpaqueExprNode_html_a6c57e5bf56efcb43b92283af89be09fc"><div class="ttname"><a href="classtvm_1_1OpaqueExprNode.html#a6c57e5bf56efcb43b92283af89be09fc">tvm::OpaqueExprNode::RegisterReflection</a></div><div class="ttdeci">static void RegisterReflection()</div><div class="ttdef"><b>Definition</b> base_expr.h:357</div></div>
-<div class="ttc" id="aclasstvm_1_1OpaqueExpr_html"><div class="ttname"><a href="classtvm_1_1OpaqueExpr.html">tvm::OpaqueExpr</a></div><div class="ttdoc">Managed reference to OpaqueExprNode.</div><div class="ttdef"><b>Definition</b> base_expr.h:367</div></div>
-<div class="ttc" id="aclasstvm_1_1OpaqueExpr_html_ab40bce2a8f40aa5101cbc5c53d80315e"><div class="ttname"><a href="classtvm_1_1OpaqueExpr.html#ab40bce2a8f40aa5101cbc5c53d80315e">tvm::OpaqueExpr::TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE</a></div><div class="ttdeci">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE(OpaqueExpr, Expr, OpaqueExprNode)</div></div>
+<div class="ttc" id="aclasstvm_1_1OpaqueExprNode_html_a6c57e5bf56efcb43b92283af89be09fc"><div class="ttname"><a href="classtvm_1_1OpaqueExprNode.html#a6c57e5bf56efcb43b92283af89be09fc">tvm::OpaqueExprNode::RegisterReflection</a></div><div class="ttdeci">static void RegisterReflection()</div><div class="ttdef"><b>Definition</b> base_expr.h:361</div></div>
+<div class="ttc" id="aclasstvm_1_1OpaqueExpr_html"><div class="ttname"><a href="classtvm_1_1OpaqueExpr.html">tvm::OpaqueExpr</a></div><div class="ttdoc">Managed reference to OpaqueExprNode.</div><div class="ttdef"><b>Definition</b> base_expr.h:371</div></div>
+<div class="ttc" id="aclasstvm_1_1OpaqueExpr_html_ac7e17e5999f849b6ff7a787d993cda40"><div class="ttname"><a href="classtvm_1_1OpaqueExpr.html#ac7e17e5999f849b6ff7a787d993cda40">tvm::OpaqueExpr::TVM_FFI_DEFINE_OBJECT_REF_METHODS_NOTNULLABLE</a></div><div class="ttdeci">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NOTNULLABLE(OpaqueExpr, Expr, OpaqueExprNode)</div></div>
+<div class="ttc" id="aclasstvm_1_1OpaqueExpr_html_afd17da96046bfe1522adcd996454818a"><div class="ttname"><a href="classtvm_1_1OpaqueExpr.html#afd17da96046bfe1522adcd996454818a">tvm::OpaqueExpr::OpaqueExpr</a></div><div class="ttdeci">OpaqueExpr(ffi::ObjectPtr< OpaqueExprNode > node)</div><div class="ttdef"><b>Definition</b> base_expr.h:373</div></div>
<div class="ttc" id="aclasstvm_1_1OpaqueTypeNode_html"><div class="ttname"><a href="classtvm_1_1OpaqueTypeNode.html">tvm::OpaqueTypeNode</a></div><div class="ttdoc">Type marker for opaque construction-time expressions.</div><div class="ttdef"><b>Definition</b> base_expr.h:97</div></div>
<div class="ttc" id="aclasstvm_1_1OpaqueTypeNode_html_a788cf9986a6a373d56a05b2561d63ef5"><div class="ttname"><a href="classtvm_1_1OpaqueTypeNode.html#a788cf9986a6a373d56a05b2561d63ef5">tvm::OpaqueTypeNode::TVM_FFI_DECLARE_OBJECT_INFO_FINAL</a></div><div class="ttdeci">TVM_FFI_DECLARE_OBJECT_INFO_FINAL("ir.OpaqueType", OpaqueTypeNode, TypeNode)</div></div>
<div class="ttc" id="aclasstvm_1_1OpaqueTypeNode_html_ac20b91ece9c84c339ec1971d0422c434"><div class="ttname"><a href="classtvm_1_1OpaqueTypeNode.html#ac20b91ece9c84c339ec1971d0422c434">tvm::OpaqueTypeNode::RegisterReflection</a></div><div class="ttdeci">static void RegisterReflection()</div><div class="ttdef"><b>Definition</b> base_expr.h:99</div></div>
<div class="ttc" id="aclasstvm_1_1OpaqueType_html"><div class="ttname"><a href="classtvm_1_1OpaqueType.html">tvm::OpaqueType</a></div><div class="ttdoc">Managed reference to OpaqueTypeNode.</div><div class="ttdef"><b>Definition</b> base_expr.h:108</div></div>
<div class="ttc" id="aclasstvm_1_1OpaqueType_html_a3c529cf6fa069430092013c2bd1e7cc9"><div class="ttname"><a href="classtvm_1_1OpaqueType.html#a3c529cf6fa069430092013c2bd1e7cc9">tvm::OpaqueType::TVM_FFI_DEFINE_OBJECT_REF_METHODS_NOTNULLABLE</a></div><div class="ttdeci">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NOTNULLABLE(OpaqueType, Type, OpaqueTypeNode)</div></div>
<div class="ttc" id="aclasstvm_1_1OpaqueType_html_a6c374ff2d7cb64952ec2e7067e438d8f"><div class="ttname"><a href="classtvm_1_1OpaqueType.html#a6c374ff2d7cb64952ec2e7067e438d8f">tvm::OpaqueType::OpaqueType</a></div><div class="ttdeci">OpaqueType()</div></div>
-<div class="ttc" id="aclasstvm_1_1PrimExprConvertibleNode_html"><div class="ttname"><a href="classtvm_1_1PrimExprConvertibleNode.html">tvm::PrimExprConvertibleNode</a></div><div class="ttdoc">Base class for other IR constructs that can be converted to PrimExpr. This is useful for the FFI to c...</div><div class="ttdef"><b>Definition</b> base_expr.h:447</div></div>
-<div class="ttc" id="aclasstvm_1_1PrimExprConvertibleNode_html_a625eda6a9ec8f03c69802a1300053d8b"><div class="ttname"><a href="classtvm_1_1PrimExprConvertibleNode.html#a625eda6a9ec8f03c69802a1300053d8b">tvm::PrimExprConvertibleNode::~PrimExprConvertibleNode</a></div><div class="ttdeci">virtual ~PrimExprConvertibleNode()</div><div class="ttdef"><b>Definition</b> base_expr.h:449</div></div>
+<div class="ttc" id="aclasstvm_1_1PrimExprConvertibleNode_html"><div class="ttname"><a href="classtvm_1_1PrimExprConvertibleNode.html">tvm::PrimExprConvertibleNode</a></div><div class="ttdoc">Base class for other IR constructs that can be converted to PrimExpr. This is useful for the FFI to c...</div><div class="ttdef"><b>Definition</b> base_expr.h:457</div></div>
+<div class="ttc" id="aclasstvm_1_1PrimExprConvertibleNode_html_a625eda6a9ec8f03c69802a1300053d8b"><div class="ttname"><a href="classtvm_1_1PrimExprConvertibleNode.html#a625eda6a9ec8f03c69802a1300053d8b">tvm::PrimExprConvertibleNode::~PrimExprConvertibleNode</a></div><div class="ttdeci">virtual ~PrimExprConvertibleNode()</div><div class="ttdef"><b>Definition</b> base_expr.h:459</div></div>
<div class="ttc" id="aclasstvm_1_1PrimExprConvertibleNode_html_ab9efcf82acd9a64e2cda50108c98e458"><div class="ttname"><a href="classtvm_1_1PrimExprConvertibleNode.html#ab9efcf82acd9a64e2cda50108c98e458">tvm::PrimExprConvertibleNode::ToPrimExpr</a></div><div class="ttdeci">virtual PrimExpr ToPrimExpr() const =0</div></div>
<div class="ttc" id="aclasstvm_1_1PrimExprConvertibleNode_html_add3904e335bd840516d486a6ca398f86"><div class="ttname"><a href="classtvm_1_1PrimExprConvertibleNode.html#add3904e335bd840516d486a6ca398f86">tvm::PrimExprConvertibleNode::TVM_FFI_DECLARE_OBJECT_INFO</a></div><div class="ttdeci">TVM_FFI_DECLARE_OBJECT_INFO("ir.PrimExprConvertible", PrimExprConvertibleNode, ffi::Object)</div></div>
-<div class="ttc" id="aclasstvm_1_1PrimExprConvertible_html"><div class="ttname"><a href="classtvm_1_1PrimExprConvertible.html">tvm::PrimExprConvertible</a></div><div class="ttdoc">Managed reference to PrimExprConvertibleNode.</div><div class="ttdef"><b>Definition</b> base_expr.h:458</div></div>
+<div class="ttc" id="aclasstvm_1_1PrimExprConvertible_html"><div class="ttname"><a href="classtvm_1_1PrimExprConvertible.html">tvm::PrimExprConvertible</a></div><div class="ttdoc">Managed reference to PrimExprConvertibleNode.</div><div class="ttdef"><b>Definition</b> base_expr.h:468</div></div>
<div class="ttc" id="aclasstvm_1_1PrimExprConvertible_html_a0bad5536ab9ff5ab07a22e75c2c2102c"><div class="ttname"><a href="classtvm_1_1PrimExprConvertible.html#a0bad5536ab9ff5ab07a22e75c2c2102c">tvm::PrimExprConvertible::TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE</a></div><div class="ttdeci">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE(PrimExprConvertible, ffi::ObjectRef, PrimExprConvertibleNode)</div></div>
-<div class="ttc" id="aclasstvm_1_1PrimExpr_html"><div class="ttname"><a href="classtvm_1_1PrimExpr.html">tvm::PrimExpr</a></div><div class="ttdoc">Typed reference/view over any Expr whose ExprNode::ty is PrimType.</div><div class="ttdef"><b>Definition</b> base_expr.h:404</div></div>
-<div class="ttc" id="aclasstvm_1_1PrimExpr_html_a33afa5fbcf78f349305e222f182ee28b"><div class="ttname"><a href="classtvm_1_1PrimExpr.html#a33afa5fbcf78f349305e222f182ee28b">tvm::PrimExpr::_type_container_is_exact</a></div><div class="ttdeci">static constexpr bool _type_container_is_exact</div><div class="ttdef"><b>Definition</b> base_expr.h:427</div></div>
-<div class="ttc" id="aclasstvm_1_1PrimExpr_html_a611b175971d5ca7e5a549c55fae12ac6"><div class="ttname"><a href="classtvm_1_1PrimExpr.html#a611b175971d5ca7e5a549c55fae12ac6">tvm::PrimExpr::TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE</a></div><div class="ttdeci">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE(PrimExpr, TypedExpr< PrimType >, ExprNode)</div></div>
+<div class="ttc" id="aclasstvm_1_1PrimExpr_html"><div class="ttname"><a href="classtvm_1_1PrimExpr.html">tvm::PrimExpr</a></div><div class="ttdoc">Typed reference/view over any Expr whose ExprNode::ty is PrimType.</div><div class="ttdef"><b>Definition</b> base_expr.h:412</div></div>
+<div class="ttc" id="aclasstvm_1_1PrimExpr_html_a33afa5fbcf78f349305e222f182ee28b"><div class="ttname"><a href="classtvm_1_1PrimExpr.html#a33afa5fbcf78f349305e222f182ee28b">tvm::PrimExpr::_type_container_is_exact</a></div><div class="ttdeci">static constexpr bool _type_container_is_exact</div><div class="ttdef"><b>Definition</b> base_expr.h:437</div></div>
<div class="ttc" id="aclasstvm_1_1PrimExpr_html_a756d3f8b17b019560946524951ae6118"><div class="ttname"><a href="classtvm_1_1PrimExpr.html#a756d3f8b17b019560946524951ae6118">tvm::PrimExpr::PrimExpr</a></div><div class="ttdeci">PrimExpr(float value)</div><div class="ttdoc">construct from float.</div></div>
<div class="ttc" id="aclasstvm_1_1PrimExpr_html_a7f0ca30e951608a0b36a77a66d4d19e0"><div class="ttname"><a href="classtvm_1_1PrimExpr.html#a7f0ca30e951608a0b36a77a66d4d19e0">tvm::PrimExpr::PrimExpr</a></div><div class="ttdeci">PrimExpr(int32_t value)</div><div class="ttdoc">construct from integer.</div></div>
<div class="ttc" id="aclasstvm_1_1PrimExpr_html_a8e6c9b7691f897badf413f21469f7f9d"><div class="ttname"><a href="classtvm_1_1PrimExpr.html#a8e6c9b7691f897badf413f21469f7f9d">tvm::PrimExpr::PrimExpr</a></div><div class="ttdeci">PrimExpr(Call call)</div><div class="ttdoc">Construct from a call after checking that its result type is PrimType.</div></div>
+<div class="ttc" id="aclasstvm_1_1PrimExpr_html_a9e1ec859f8e97b427a8cab4bd80d46e1"><div class="ttname"><a href="classtvm_1_1PrimExpr.html#a9e1ec859f8e97b427a8cab4bd80d46e1">tvm::PrimExpr::TVM_FFI_DEFINE_OBJECT_REF_METHODS_NOTNULLABLE</a></div><div class="ttdeci">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NOTNULLABLE(PrimExpr, TypedExpr< PrimType >, ExprNode)</div></div>
+<div class="ttc" id="aclasstvm_1_1PrimExpr_html_adbafa94c9099bdf4fa142e074c38711f"><div class="ttname"><a href="classtvm_1_1PrimExpr.html#adbafa94c9099bdf4fa142e074c38711f">tvm::PrimExpr::PrimExpr</a></div><div class="ttdeci">PrimExpr(ffi::ObjectPtr< ExprNode > node)</div><div class="ttdef"><b>Definition</b> base_expr.h:434</div></div>
<div class="ttc" id="aclasstvm_1_1PrimTypeNode_html"><div class="ttname"><a href="classtvm_1_1PrimTypeNode.html">tvm::PrimTypeNode</a></div><div class="ttdoc">Primitive data types used in the low-level IR.</div><div class="ttdef"><b>Definition</b> base_expr.h:122</div></div>
<div class="ttc" id="aclasstvm_1_1PrimTypeNode_html_a33ddd141d33f41e97a81974e59f56e39"><div class="ttname"><a href="classtvm_1_1PrimTypeNode.html#a33ddd141d33f41e97a81974e59f56e39">tvm::PrimTypeNode::dtype</a></div><div class="ttdeci">DLDataType dtype</div><div class="ttdoc">The raw DLPack dtype represented by this primitive type.</div><div class="ttdef"><b>Definition</b> base_expr.h:127</div></div>
<div class="ttc" id="aclasstvm_1_1PrimTypeNode_html_a5d5f59db0bd058ab5711fa3fc0cdf533"><div class="ttname"><a href="classtvm_1_1PrimTypeNode.html#a5d5f59db0bd058ab5711fa3fc0cdf533">tvm::PrimTypeNode::TVM_FFI_DECLARE_OBJECT_INFO_FINAL</a></div><div class="ttdeci">TVM_FFI_DECLARE_OBJECT_INFO_FINAL("ir.PrimType", PrimTypeNode, TypeNode)</div></div>
@@ -675,35 +700,38 @@ $(document).ready(function() { init_codefold(0); });
<div class="ttc" id="aclasstvm_1_1Type_html_a13b41c597288962b84de7f56474826d1"><div class="ttname"><a href="classtvm_1_1Type.html#a13b41c597288962b84de7f56474826d1">tvm::Type::Missing</a></div><div class="ttdeci">static Type Missing()</div><div class="ttdoc">Sentinel for a type that has not been populated yet.</div></div>
<div class="ttc" id="aclasstvm_1_1Type_html_a72af00ddec758c4ae997262d73ddf66c"><div class="ttname"><a href="classtvm_1_1Type.html#a72af00ddec758c4ae997262d73ddf66c">tvm::Type::IsMissing</a></div><div class="ttdeci">bool IsMissing() const</div></div>
<div class="ttc" id="aclasstvm_1_1Type_html_ada76bb43bdaa718bcff5c1f6337d4984"><div class="ttname"><a href="classtvm_1_1Type.html#ada76bb43bdaa718bcff5c1f6337d4984">tvm::Type::TVM_FFI_DEFINE_OBJECT_REF_METHODS_NOTNULLABLE</a></div><div class="ttdeci">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NOTNULLABLE(Type, ffi::ObjectRef, TypeNode)</div></div>
-<div class="ttc" id="aclasstvm_1_1TypedExpr_html"><div class="ttname"><a href="classtvm_1_1TypedExpr.html">tvm::TypedExpr</a></div><div class="ttdoc">Typed reference/view over an expression whose result type is a specific Type subtype.</div><div class="ttdef"><b>Definition</b> base_expr.h:380</div></div>
-<div class="ttc" id="aclasstvm_1_1TypedExpr_html_a699c3725d3b3cb02b7363cab5cc68914"><div class="ttname"><a href="classtvm_1_1TypedExpr.html#a699c3725d3b3cb02b7363cab5cc68914">tvm::TypedExpr::_type_container_is_exact</a></div><div class="ttdeci">static constexpr bool _type_container_is_exact</div><div class="ttdef"><b>Definition</b> base_expr.h:392</div></div>
-<div class="ttc" id="aclasstvm_1_1TypedExpr_html_a7d83b1f31a1cc6f0774df309e207e678"><div class="ttname"><a href="classtvm_1_1TypedExpr.html#a7d83b1f31a1cc6f0774df309e207e678">tvm::TypedExpr::ty</a></div><div class="ttdeci">ExpectedType ty() const</div><div class="ttdef"><b>Definition</b> base_expr.h:383</div></div>
-<div class="ttc" id="aclasstvm_1_1TypedExpr_html_aef373abb5a1725e75779715bfc590d3b"><div class="ttname"><a href="classtvm_1_1TypedExpr.html#aef373abb5a1725e75779715bfc590d3b">tvm::TypedExpr::TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE</a></div><div class="ttdeci">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE(TypedExpr, Expr, ExprNode)</div></div>
-<div class="ttc" id="anamespacetvm_1_1ffi_html_a2a487df61f267ffa50e8ed5e6e00323a"><div class="ttname"><a href="namespacetvm_1_1ffi.html#a2a487df61f267ffa50e8ed5e6e00323a">tvm::ffi::use_default_type_traits_v< Expr ></a></div><div class="ttdeci">constexpr bool use_default_type_traits_v< Expr ></div><div class="ttdef"><b>Definition</b> base_expr.h:563</div></div>
-<div class="ttc" id="anamespacetvm_1_1ffi_html_a3953ced274a99f70b1ab2cd282f266e2"><div class="ttname"><a href="namespacetvm_1_1ffi.html#a3953ced274a99f70b1ab2cd282f266e2">tvm::ffi::use_default_type_traits_v< PrimExpr ></a></div><div class="ttdeci">constexpr bool use_default_type_traits_v< PrimExpr ></div><div class="ttdef"><b>Definition</b> base_expr.h:509</div></div>
-<div class="ttc" id="anamespacetvm_1_1ffi_html_a7ae7c1d7c3b3ff8dca4f3397891b2671"><div class="ttname"><a href="namespacetvm_1_1ffi.html#a7ae7c1d7c3b3ff8dca4f3397891b2671">tvm::ffi::use_default_type_traits_v< IntExpr ></a></div><div class="ttdeci">constexpr bool use_default_type_traits_v< IntExpr ></div><div class="ttdef"><b>Definition</b> base_expr.h:536</div></div>
-<div class="ttc" id="anamespacetvm_1_1ffi_html_a919f86f3cbe6b3aeae34c3a3bafe98a4"><div class="ttname"><a href="namespacetvm_1_1ffi.html#a919f86f3cbe6b3aeae34c3a3bafe98a4">tvm::ffi::use_default_type_traits_v< PrimType ></a></div><div class="ttdeci">constexpr bool use_default_type_traits_v< PrimType ></div><div class="ttdef"><b>Definition</b> base_expr.h:466</div></div>
+<div class="ttc" id="aclasstvm_1_1TypedExpr_html"><div class="ttname"><a href="classtvm_1_1TypedExpr.html">tvm::TypedExpr</a></div><div class="ttdoc">Typed reference/view over an expression whose result type is a specific Type subtype.</div><div class="ttdef"><b>Definition</b> base_expr.h:386</div></div>
+<div class="ttc" id="aclasstvm_1_1TypedExpr_html_a699c3725d3b3cb02b7363cab5cc68914"><div class="ttname"><a href="classtvm_1_1TypedExpr.html#a699c3725d3b3cb02b7363cab5cc68914">tvm::TypedExpr::_type_container_is_exact</a></div><div class="ttdeci">static constexpr bool _type_container_is_exact</div><div class="ttdef"><b>Definition</b> base_expr.h:400</div></div>
+<div class="ttc" id="aclasstvm_1_1TypedExpr_html_a7d83b1f31a1cc6f0774df309e207e678"><div class="ttname"><a href="classtvm_1_1TypedExpr.html#a7d83b1f31a1cc6f0774df309e207e678">tvm::TypedExpr::ty</a></div><div class="ttdeci">ExpectedType ty() const</div><div class="ttdef"><b>Definition</b> base_expr.h:389</div></div>
+<div class="ttc" id="aclasstvm_1_1TypedExpr_html_aa985a34fd559ddc4bdc128f4fcd9d9c9"><div class="ttname"><a href="classtvm_1_1TypedExpr.html#aa985a34fd559ddc4bdc128f4fcd9d9c9">tvm::TypedExpr::TVM_FFI_DEFINE_OBJECT_REF_METHODS_NOTNULLABLE</a></div><div class="ttdeci">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NOTNULLABLE(TypedExpr, Expr, ExprNode)</div></div>
+<div class="ttc" id="aclasstvm_1_1TypedExpr_html_aba1d53d5f3708c2e41104da7b3c3a5ff"><div class="ttname"><a href="classtvm_1_1TypedExpr.html#aba1d53d5f3708c2e41104da7b3c3a5ff">tvm::TypedExpr::TypedExpr</a></div><div class="ttdeci">TypedExpr(ffi::ObjectPtr< ExprNode > node)</div><div class="ttdef"><b>Definition</b> base_expr.h:397</div></div>
+<div class="ttc" id="anamespacetvm_1_1ffi_html_a2a487df61f267ffa50e8ed5e6e00323a"><div class="ttname"><a href="namespacetvm_1_1ffi.html#a2a487df61f267ffa50e8ed5e6e00323a">tvm::ffi::use_default_type_traits_v< Expr ></a></div><div class="ttdeci">constexpr bool use_default_type_traits_v< Expr ></div><div class="ttdef"><b>Definition</b> base_expr.h:581</div></div>
+<div class="ttc" id="anamespacetvm_1_1ffi_html_a3953ced274a99f70b1ab2cd282f266e2"><div class="ttname"><a href="namespacetvm_1_1ffi.html#a3953ced274a99f70b1ab2cd282f266e2">tvm::ffi::use_default_type_traits_v< PrimExpr ></a></div><div class="ttdeci">constexpr bool use_default_type_traits_v< PrimExpr ></div><div class="ttdef"><b>Definition</b> base_expr.h:519</div></div>
+<div class="ttc" id="anamespacetvm_1_1ffi_html_a7ae7c1d7c3b3ff8dca4f3397891b2671"><div class="ttname"><a href="namespacetvm_1_1ffi.html#a7ae7c1d7c3b3ff8dca4f3397891b2671">tvm::ffi::use_default_type_traits_v< IntExpr ></a></div><div class="ttdeci">constexpr bool use_default_type_traits_v< IntExpr ></div><div class="ttdef"><b>Definition</b> base_expr.h:554</div></div>
+<div class="ttc" id="anamespacetvm_1_1ffi_html_a919f86f3cbe6b3aeae34c3a3bafe98a4"><div class="ttname"><a href="namespacetvm_1_1ffi.html#a919f86f3cbe6b3aeae34c3a3bafe98a4">tvm::ffi::use_default_type_traits_v< PrimType ></a></div><div class="ttdeci">constexpr bool use_default_type_traits_v< PrimType ></div><div class="ttdef"><b>Definition</b> base_expr.h:476</div></div>
<div class="ttc" id="anamespacetvm_html"><div class="ttname"><a href="namespacetvm.html">tvm</a></div><div class="ttdoc">An object that builds and maintains block scope and StmtSref mapping for Dependence analysis.</div><div class="ttdef"><b>Definition</b> attrs.h:44</div></div>
<div class="ttc" id="anamespacetvm_html_a56fac2bf30a61d8dd727f7b1956dd0db"><div class="ttname"><a href="namespacetvm.html#a56fac2bf30a61d8dd727f7b1956dd0db">tvm::operator!=</a></div><div class="ttdeci">bool operator!=(const PrimType &lhs, const PrimType &rhs)</div><div class="ttdef"><b>Definition</b> base_expr.h:297</div></div>
<div class="ttc" id="anamespacetvm_html_ad7c45c38af02ce88083d976f9be743b4"><div class="ttname"><a href="namespacetvm.html#ad7c45c38af02ce88083d976f9be743b4">tvm::operator==</a></div><div class="ttdeci">bool operator==(const PrimType &lhs, const PrimType &rhs)</div><div class="ttdef"><b>Definition</b> base_expr.h:293</div></div>
<div class="ttc" id="asource__map_8h_html"><div class="ttname"><a href="source__map_8h.html">source_map.h</a></div><div class="ttdoc">A map from source names to source code.</div></div>
-<div class="ttc" id="astructtvm_1_1ffi_1_1TypeTraits_3_01Expr_01_4_html_a3ac03c8423e9d3ac76c7f81b80623eb9"><div class="ttname"><a href="structtvm_1_1ffi_1_1TypeTraits_3_01Expr_01_4.html#a3ac03c8423e9d3ac76c7f81b80623eb9">tvm::ffi::TypeTraits< Expr >::ConvertFallbackValue</a></div><div class="ttdeci">static TVM_FFI_INLINE Expr ConvertFallbackValue(PrimExpr value)</div><div class="ttdef"><b>Definition</b> base_expr.h:569</div></div>
+<div class="ttc" id="astructtvm_1_1ffi_1_1TypeTraits_3_01Expr_01_4_html_a3ac03c8423e9d3ac76c7f81b80623eb9"><div class="ttname"><a href="structtvm_1_1ffi_1_1TypeTraits_3_01Expr_01_4.html#a3ac03c8423e9d3ac76c7f81b80623eb9">tvm::ffi::TypeTraits< Expr >::ConvertFallbackValue</a></div><div class="ttdeci">static TVM_FFI_INLINE Expr ConvertFallbackValue(PrimExpr value)</div><div class="ttdef"><b>Definition</b> base_expr.h:587</div></div>
<div class="ttc" id="astructtvm_1_1ffi_1_1TypeTraits_3_01Expr_01_4_html_ab718a7d6345028769e8bfb6145c5bda7"><div class="ttname"><a href="structtvm_1_1ffi_1_1TypeTraits_3_01Expr_01_4.html#ab718a7d6345028769e8bfb6145c5bda7">tvm::ffi::TypeTraits< Expr >::ConvertFallbackValue</a></div><div class="ttdeci">static Expr ConvertFallbackValue(ffi::String value)</div></div>
-<div class="ttc" id="astructtvm_1_1ffi_1_1TypeTraits_3_01IntExpr_01_4_html_a04e5c69ff8fe02aeae0407d31441da67"><div class="ttname"><a href="structtvm_1_1ffi_1_1TypeTraits_3_01IntExpr_01_4.html#a04e5c69ff8fe02aeae0407d31441da67">tvm::ffi::TypeTraits< IntExpr >::ConvertFallbackValue</a></div><div class="ttdeci">static TVM_FFI_INLINE IntExpr ConvertFallbackValue(int64_t value)</div><div class="ttdef"><b>Definition</b> base_expr.h:551</div></div>
-<div class="ttc" id="astructtvm_1_1ffi_1_1TypeTraits_3_01IntExpr_01_4_html_a4b1cd65d933fe3c22a18efc33f3af1e9"><div class="ttname"><a href="structtvm_1_1ffi_1_1TypeTraits_3_01IntExpr_01_4.html#a4b1cd65d933fe3c22a18efc33f3af1e9">tvm::ffi::TypeTraits< IntExpr >::GetMismatchTypeInfo</a></div><div class="ttdeci">static TVM_FFI_INLINE std::string GetMismatchTypeInfo(const TVMFFIAny *src)</div><div class="ttdef"><b>Definition</b> base_expr.h:557</div></div>
-<div class="ttc" id="astructtvm_1_1ffi_1_1TypeTraits_3_01IntExpr_01_4_html_a67e5169848329a8a241096f9929a1cef"><div class="ttname"><a href="structtvm_1_1ffi_1_1TypeTraits_3_01IntExpr_01_4.html#a67e5169848329a8a241096f9929a1cef">tvm::ffi::TypeTraits< IntExpr >::TypeStr</a></div><div class="ttdeci">static TVM_FFI_INLINE std::string TypeStr()</div><div class="ttdef"><b>Definition</b> base_expr.h:555</div></div>
-<div class="ttc" id="astructtvm_1_1ffi_1_1TypeTraits_3_01IntExpr_01_4_html_ad48b9a72953c9677b57a0965ecf99397"><div class="ttname"><a href="structtvm_1_1ffi_1_1TypeTraits_3_01IntExpr_01_4.html#ad48b9a72953c9677b57a0965ecf99397">tvm::ffi::TypeTraits< IntExpr >::Base</a></div><div class="ttdeci">ObjectRefWithFallbackTraitsBase< IntExpr, int64_t > Base</div><div class="ttdef"><b>Definition</b> base_expr.h:540</div></div>
-<div class="ttc" id="astructtvm_1_1ffi_1_1TypeTraits_3_01IntExpr_01_4_html_aeb8d6e06d06899ca45692b2234113068"><div class="ttname"><a href="structtvm_1_1ffi_1_1TypeTraits_3_01IntExpr_01_4.html#aeb8d6e06d06899ca45692b2234113068">tvm::ffi::TypeTraits< IntExpr >::CheckAnyStrict</a></div><div class="ttdeci">static TVM_FFI_INLINE bool CheckAnyStrict(const TVMFFIAny *src)</div><div class="ttdef"><b>Definition</b> base_expr.h:542</div></div>
-<div class="ttc" id="astructtvm_1_1ffi_1_1TypeTraits_3_01PrimExpr_01_4_html_a1065f2559ccded18e91419baf08390df"><div class="ttname"><a href="structtvm_1_1ffi_1_1TypeTraits_3_01PrimExpr_01_4.html#a1065f2559ccded18e91419baf08390df">tvm::ffi::TypeTraits< PrimExpr >::GetMismatchTypeInfo</a></div><div class="ttdeci">static TVM_FFI_INLINE std::string GetMismatchTypeInfo(const TVMFFIAny *src)</div><div class="ttdef"><b>Definition</b> base_expr.h:523</div></div>
-<div class="ttc" id="astructtvm_1_1ffi_1_1TypeTraits_3_01PrimExpr_01_4_html_a37db92b1772374171d83184bf87caebc"><div class="ttname"><a href="structtvm_1_1ffi_1_1TypeTraits_3_01PrimExpr_01_4.html#a37db92b1772374171d83184bf87caebc">tvm::ffi::TypeTraits< PrimExpr >::CheckAnyStrict</a></div><div class="ttdeci">static TVM_FFI_INLINE bool CheckAnyStrict(const TVMFFIAny *src)</div><div class="ttdef"><b>Definition</b> base_expr.h:516</div></div>
+<div class="ttc" id="astructtvm_1_1ffi_1_1TypeTraits_3_01IntExpr_01_4_html_a04e5c69ff8fe02aeae0407d31441da67"><div class="ttname"><a href="structtvm_1_1ffi_1_1TypeTraits_3_01IntExpr_01_4.html#a04e5c69ff8fe02aeae0407d31441da67">tvm::ffi::TypeTraits< IntExpr >::ConvertFallbackValue</a></div><div class="ttdeci">static TVM_FFI_INLINE IntExpr ConvertFallbackValue(int64_t value)</div><div class="ttdef"><b>Definition</b> base_expr.h:569</div></div>
+<div class="ttc" id="astructtvm_1_1ffi_1_1TypeTraits_3_01IntExpr_01_4_html_a4b1cd65d933fe3c22a18efc33f3af1e9"><div class="ttname"><a href="structtvm_1_1ffi_1_1TypeTraits_3_01IntExpr_01_4.html#a4b1cd65d933fe3c22a18efc33f3af1e9">tvm::ffi::TypeTraits< IntExpr >::GetMismatchTypeInfo</a></div><div class="ttdeci">static TVM_FFI_INLINE std::string GetMismatchTypeInfo(const TVMFFIAny *src)</div><div class="ttdef"><b>Definition</b> base_expr.h:575</div></div>
+<div class="ttc" id="astructtvm_1_1ffi_1_1TypeTraits_3_01IntExpr_01_4_html_a67e5169848329a8a241096f9929a1cef"><div class="ttname"><a href="structtvm_1_1ffi_1_1TypeTraits_3_01IntExpr_01_4.html#a67e5169848329a8a241096f9929a1cef">tvm::ffi::TypeTraits< IntExpr >::TypeStr</a></div><div class="ttdeci">static TVM_FFI_INLINE std::string TypeStr()</div><div class="ttdef"><b>Definition</b> base_expr.h:573</div></div>
+<div class="ttc" id="astructtvm_1_1ffi_1_1TypeTraits_3_01IntExpr_01_4_html_ad48b9a72953c9677b57a0965ecf99397"><div class="ttname"><a href="structtvm_1_1ffi_1_1TypeTraits_3_01IntExpr_01_4.html#ad48b9a72953c9677b57a0965ecf99397">tvm::ffi::TypeTraits< IntExpr >::Base</a></div><div class="ttdeci">ObjectRefWithFallbackTraitsBase< IntExpr, int64_t > Base</div><div class="ttdef"><b>Definition</b> base_expr.h:558</div></div>
+<div class="ttc" id="astructtvm_1_1ffi_1_1TypeTraits_3_01IntExpr_01_4_html_aeb8d6e06d06899ca45692b2234113068"><div class="ttname"><a href="structtvm_1_1ffi_1_1TypeTraits_3_01IntExpr_01_4.html#aeb8d6e06d06899ca45692b2234113068">tvm::ffi::TypeTraits< IntExpr >::CheckAnyStrict</a></div><div class="ttdeci">static TVM_FFI_INLINE bool CheckAnyStrict(const TVMFFIAny *src)</div><div class="ttdef"><b>Definition</b> base_expr.h:560</div></div>
+<div class="ttc" id="astructtvm_1_1ffi_1_1TypeTraits_3_01PrimExpr_01_4_html_a1065f2559ccded18e91419baf08390df"><div class="ttname"><a href="structtvm_1_1ffi_1_1TypeTraits_3_01PrimExpr_01_4.html#a1065f2559ccded18e91419baf08390df">tvm::ffi::TypeTraits< PrimExpr >::GetMismatchTypeInfo</a></div><div class="ttdeci">static TVM_FFI_INLINE std::string GetMismatchTypeInfo(const TVMFFIAny *src)</div><div class="ttdef"><b>Definition</b> base_expr.h:541</div></div>
+<div class="ttc" id="astructtvm_1_1ffi_1_1TypeTraits_3_01PrimExpr_01_4_html_a37db92b1772374171d83184bf87caebc"><div class="ttname"><a href="structtvm_1_1ffi_1_1TypeTraits_3_01PrimExpr_01_4.html#a37db92b1772374171d83184bf87caebc">tvm::ffi::TypeTraits< PrimExpr >::CheckAnyStrict</a></div><div class="ttdeci">static TVM_FFI_INLINE bool CheckAnyStrict(const TVMFFIAny *src)</div><div class="ttdef"><b>Definition</b> base_expr.h:528</div></div>
<div class="ttc" id="astructtvm_1_1ffi_1_1TypeTraits_3_01PrimExpr_01_4_html_a39a8f422a13c06451ce2fa1c6b7733a2"><div class="ttname"><a href="structtvm_1_1ffi_1_1TypeTraits_3_01PrimExpr_01_4.html#a39a8f422a13c06451ce2fa1c6b7733a2">tvm::ffi::TypeTraits< PrimExpr >::ConvertFallbackValue</a></div><div class="ttdeci">static PrimExpr ConvertFallbackValue(int64_t value)</div></div>
-<div class="ttc" id="astructtvm_1_1ffi_1_1TypeTraits_3_01PrimExpr_01_4_html_a8a9804726d037144ce7183a05739d3ca"><div class="ttname"><a href="structtvm_1_1ffi_1_1TypeTraits_3_01PrimExpr_01_4.html#a8a9804726d037144ce7183a05739d3ca">tvm::ffi::TypeTraits< PrimExpr >::ConvertFallbackValue</a></div><div class="ttdeci">static TVM_FFI_INLINE PrimExpr ConvertFallbackValue(PrimExprConvertible value)</div><div class="ttdef"><b>Definition</b> base_expr.h:530</div></div>
+<div class="ttc" id="astructtvm_1_1ffi_1_1TypeTraits_3_01PrimExpr_01_4_html_a8a9804726d037144ce7183a05739d3ca"><div class="ttname"><a href="structtvm_1_1ffi_1_1TypeTraits_3_01PrimExpr_01_4.html#a8a9804726d037144ce7183a05739d3ca">tvm::ffi::TypeTraits< PrimExpr >::ConvertFallbackValue</a></div><div class="ttdeci">static TVM_FFI_INLINE PrimExpr ConvertFallbackValue(PrimExprConvertible value)</div><div class="ttdef"><b>Definition</b> base_expr.h:548</div></div>
<div class="ttc" id="astructtvm_1_1ffi_1_1TypeTraits_3_01PrimExpr_01_4_html_a91a59fcdc9e5602d4b296cc7533525d5"><div class="ttname"><a href="structtvm_1_1ffi_1_1TypeTraits_3_01PrimExpr_01_4.html#a91a59fcdc9e5602d4b296cc7533525d5">tvm::ffi::TypeTraits< PrimExpr >::ConvertFallbackValue</a></div><div class="ttdeci">static PrimExpr ConvertFallbackValue(StrictBool value)</div></div>
-<div class="ttc" id="astructtvm_1_1ffi_1_1TypeTraits_3_01PrimExpr_01_4_html_a9472e92197fd2c19b4c58dc9091fb1e1"><div class="ttname"><a href="structtvm_1_1ffi_1_1TypeTraits_3_01PrimExpr_01_4.html#a9472e92197fd2c19b4c58dc9091fb1e1">tvm::ffi::TypeTraits< PrimExpr >::TypeStr</a></div><div class="ttdeci">static TVM_FFI_INLINE std::string TypeStr()</div><div class="ttdef"><b>Definition</b> base_expr.h:521</div></div>
+<div class="ttc" id="astructtvm_1_1ffi_1_1TypeTraits_3_01PrimExpr_01_4_html_a9472e92197fd2c19b4c58dc9091fb1e1"><div class="ttname"><a href="structtvm_1_1ffi_1_1TypeTraits_3_01PrimExpr_01_4.html#a9472e92197fd2c19b4c58dc9091fb1e1">tvm::ffi::TypeTraits< PrimExpr >::TypeStr</a></div><div class="ttdeci">static TVM_FFI_INLINE std::string TypeStr()</div><div class="ttdef"><b>Definition</b> base_expr.h:539</div></div>
+<div class="ttc" id="astructtvm_1_1ffi_1_1TypeTraits_3_01PrimExpr_01_4_html_a9736ff64225b3095b26d178904d1fb86"><div class="ttname"><a href="structtvm_1_1ffi_1_1TypeTraits_3_01PrimExpr_01_4.html#a9736ff64225b3095b26d178904d1fb86">tvm::ffi::TypeTraits< PrimExpr >::Base</a></div><div class="ttdeci">ObjectRefWithFallbackTraitsBase< PrimExpr, StrictBool, int64_t, double, PrimExprConvertible > Base</div><div class="ttdef"><b>Definition</b> base_expr.h:527</div></div>
<div class="ttc" id="astructtvm_1_1ffi_1_1TypeTraits_3_01PrimExpr_01_4_html_ac92ddf3ce25ca16a0b9c8030121aaaa3"><div class="ttname"><a href="structtvm_1_1ffi_1_1TypeTraits_3_01PrimExpr_01_4.html#ac92ddf3ce25ca16a0b9c8030121aaaa3">tvm::ffi::TypeTraits< PrimExpr >::ConvertFallbackValue</a></div><div class="ttdeci">static PrimExpr ConvertFallbackValue(double value)</div></div>
-<div class="ttc" id="astructtvm_1_1ffi_1_1TypeTraits_3_01PrimType_01_4_html_a9b9a904d5c21d5bb330111cb80ec3570"><div class="ttname"><a href="structtvm_1_1ffi_1_1TypeTraits_3_01PrimType_01_4.html#a9b9a904d5c21d5bb330111cb80ec3570">tvm::ffi::TypeTraits< PrimType >::ConvertFallbackValue</a></div><div class="ttdeci">static TVM_FFI_INLINE PrimType ConvertFallbackValue(DLDataType dtype)</div><div class="ttdef"><b>Definition</b> base_expr.h:470</div></div>
-<div class="ttc" id="astructtvm_1_1ffi_1_1TypeTraits_3_01TypedExpr_3_01ExpectedType_01_4_01_4_html_a91f94dcfec7dbd7024c4912234d3f445"><div class="ttname"><a href="structtvm_1_1ffi_1_1TypeTraits_3_01TypedExpr_3_01ExpectedType_01_4_01_4.html#a91f94dcfec7dbd7024c4912234d3f445">tvm::ffi::TypeTraits< TypedExpr< ExpectedType > >::CheckAnyStrict</a></div><div class="ttdeci">static TVM_FFI_INLINE bool CheckAnyStrict(const TVMFFIAny *src)</div><div class="ttdef"><b>Definition</b> base [...]
-<div class="ttc" id="astructtvm_1_1ffi_1_1TypeTraits_3_01TypedExpr_3_01ExpectedType_01_4_01_4_html_a920c0886f5fd3421ca55c62fa3a9faf0"><div class="ttname"><a href="structtvm_1_1ffi_1_1TypeTraits_3_01TypedExpr_3_01ExpectedType_01_4_01_4.html#a920c0886f5fd3421ca55c62fa3a9faf0">tvm::ffi::TypeTraits< TypedExpr< ExpectedType > >::GetMismatchTypeInfo</a></div><div class="ttdeci">static TVM_FFI_INLINE std::string GetMismatchTypeInfo(const TVMFFIAny *src)</div><div class="ttdef"><b>De [...]
+<div class="ttc" id="astructtvm_1_1ffi_1_1TypeTraits_3_01PrimExpr_01_4_html_ad41ff91a2dd0e4f3bef192c8919e6867"><div class="ttname"><a href="structtvm_1_1ffi_1_1TypeTraits_3_01PrimExpr_01_4.html#ad41ff91a2dd0e4f3bef192c8919e6867">tvm::ffi::TypeTraits< PrimExpr >::TryCastFromAnyView</a></div><div class="ttdeci">static TVM_FFI_INLINE std::optional< PrimExpr > TryCastFromAnyView(const TVMFFIAny *src)</div><div class="ttdef"><b>Definition</b> base_expr.h:533</div></div>
+<div class="ttc" id="astructtvm_1_1ffi_1_1TypeTraits_3_01PrimType_01_4_html_a9b9a904d5c21d5bb330111cb80ec3570"><div class="ttname"><a href="structtvm_1_1ffi_1_1TypeTraits_3_01PrimType_01_4.html#a9b9a904d5c21d5bb330111cb80ec3570">tvm::ffi::TypeTraits< PrimType >::ConvertFallbackValue</a></div><div class="ttdeci">static TVM_FFI_INLINE PrimType ConvertFallbackValue(DLDataType dtype)</div><div class="ttdef"><b>Definition</b> base_expr.h:480</div></div>
+<div class="ttc" id="astructtvm_1_1ffi_1_1TypeTraits_3_01TypedExpr_3_01ExpectedType_01_4_01_4_html_a91f94dcfec7dbd7024c4912234d3f445"><div class="ttname"><a href="structtvm_1_1ffi_1_1TypeTraits_3_01TypedExpr_3_01ExpectedType_01_4_01_4.html#a91f94dcfec7dbd7024c4912234d3f445">tvm::ffi::TypeTraits< TypedExpr< ExpectedType > >::CheckAnyStrict</a></div><div class="ttdeci">static TVM_FFI_INLINE bool CheckAnyStrict(const TVMFFIAny *src)</div><div class="ttdef"><b>Definition</b> base [...]
+<div class="ttc" id="astructtvm_1_1ffi_1_1TypeTraits_3_01TypedExpr_3_01ExpectedType_01_4_01_4_html_a920c0886f5fd3421ca55c62fa3a9faf0"><div class="ttname"><a href="structtvm_1_1ffi_1_1TypeTraits_3_01TypedExpr_3_01ExpectedType_01_4_01_4.html#a920c0886f5fd3421ca55c62fa3a9faf0">tvm::ffi::TypeTraits< TypedExpr< ExpectedType > >::GetMismatchTypeInfo</a></div><div class="ttdeci">static TVM_FFI_INLINE std::string GetMismatchTypeInfo(const TVMFFIAny *src)</div><div class="ttdef"><b>De [...]
</div><!-- fragment --></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/docs/reference/api/doxygen/binding__rewrite_8h_source.html b/docs/reference/api/doxygen/binding__rewrite_8h_source.html
index 4a76a8cae58..e70c7e6dc4a 100644
--- a/docs/reference/api/doxygen/binding__rewrite_8h_source.html
+++ b/docs/reference/api/doxygen/binding__rewrite_8h_source.html
@@ -190,8 +190,8 @@ $(document).ready(function() { init_codefold(0); });
<div class="ttc" id="aclasstvm_1_1Expr_html"><div class="ttname"><a href="classtvm_1_1Expr.html">tvm::Expr</a></div><div class="ttdoc">Managed reference to ExprNode.</div><div class="ttdef"><b>Definition</b> base_expr.h:338</div></div>
<div class="ttc" id="aclasstvm_1_1IRModule_html"><div class="ttname"><a href="classtvm_1_1IRModule.html">tvm::IRModule</a></div><div class="ttdoc">Managed reference class to IRModuleNode.</div><div class="ttdef"><b>Definition</b> module.h:255</div></div>
<div class="ttc" id="aclasstvm_1_1UniqueNameSupply_html"><div class="ttname"><a href="classtvm_1_1UniqueNameSupply.html">tvm::UniqueNameSupply</a></div><div class="ttdoc">Managed reference class to UniqueNameSupplyNode.</div><div class="ttdef"><b>Definition</b> unique_name_supply.h:115</div></div>
-<div class="ttc" id="aclasstvm_1_1Var_html"><div class="ttname"><a href="classtvm_1_1Var.html">tvm::Var</a></div><div class="ttdoc">Managed reference to VarNode.</div><div class="ttdef"><b>Definition</b> expr.h:375</div></div>
-<div class="ttc" id="aclasstvm_1_1relax_1_1Binding_html"><div class="ttname"><a href="classtvm_1_1relax_1_1Binding.html">tvm::relax::Binding</a></div><div class="ttdef"><b>Definition</b> expr.h:113</div></div>
+<div class="ttc" id="aclasstvm_1_1Var_html"><div class="ttname"><a href="classtvm_1_1Var.html">tvm::Var</a></div><div class="ttdoc">Managed reference to VarNode.</div><div class="ttdef"><b>Definition</b> expr.h:387</div></div>
+<div class="ttc" id="aclasstvm_1_1relax_1_1Binding_html"><div class="ttname"><a href="classtvm_1_1relax_1_1Binding.html">tvm::relax::Binding</a></div><div class="ttdef"><b>Definition</b> expr.h:120</div></div>
<div class="ttc" id="aclasstvm_1_1relax_1_1DataflowBlockRewriteNode_html"><div class="ttname"><a href="classtvm_1_1relax_1_1DataflowBlockRewriteNode.html">tvm::relax::DataflowBlockRewriteNode</a></div><div class="ttdoc">Statement rewriter for relax.DataflowBlock.</div><div class="ttdef"><b>Definition</b> binding_rewrite.h:42</div></div>
<div class="ttc" id="aclasstvm_1_1relax_1_1DataflowBlockRewriteNode_html_a0cc3a12b24b1173c6048f4ade3b618cd"><div class="ttname"><a href="classtvm_1_1relax_1_1DataflowBlockRewriteNode.html#a0cc3a12b24b1173c6048f4ade3b618cd">tvm::relax::DataflowBlockRewriteNode::MutatedDataflowBlock</a></div><div class="ttdeci">DataflowBlock MutatedDataflowBlock()</div><div class="ttdoc">The rewritten dataflow block.</div><div class="ttdef"><b>Definition</b> binding_rewrite.h:64</div></div>
<div class="ttc" id="aclasstvm_1_1relax_1_1DataflowBlockRewriteNode_html_a10748f79386e788d837be44a46b4978d"><div class="ttname"><a href="classtvm_1_1relax_1_1DataflowBlockRewriteNode.html#a10748f79386e788d837be44a46b4978d">tvm::relax::DataflowBlockRewriteNode::Add</a></div><div class="ttdeci">void Add(ffi::String var_name, Expr expr, bool is_dfvar=false)</div><div class="ttdoc">Insert an expression as VarBinding with variable name.</div><div class="ttdef"><b>Definition</b> binding_rewrit [...]
@@ -213,11 +213,11 @@ $(document).ready(function() { init_codefold(0); });
<div class="ttc" id="aclasstvm_1_1relax_1_1DataflowBlockRewrite_html_a3b85e81acf2f9b8cbdd118f10b295dfa"><div class="ttname"><a href="classtvm_1_1relax_1_1DataflowBlockRewrite.html#a3b85e81acf2f9b8cbdd118f10b295dfa">tvm::relax::DataflowBlockRewrite::operator-></a></div><div class="ttdeci">DataflowBlockRewriteNode * operator->()</div><div class="ttdoc">mutable accessor.</div><div class="ttdef"><b>Definition</b> binding_rewrite.h:105</div></div>
<div class="ttc" id="aclasstvm_1_1relax_1_1DataflowBlockRewrite_html_af7a983dfa2651d574b5a14209b26cdc5"><div class="ttname"><a href="classtvm_1_1relax_1_1DataflowBlockRewrite.html#af7a983dfa2651d574b5a14209b26cdc5">tvm::relax::DataflowBlockRewrite::TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE</a></div><div class="ttdeci">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE(DataflowBlockRewrite, ffi::ObjectRef, DataflowBlockRewriteNode)</div></div>
<div class="ttc" id="aclasstvm_1_1relax_1_1DataflowBlockRewrite_html_afacb6ae055a52590dac89c349e75f643"><div class="ttname"><a href="classtvm_1_1relax_1_1DataflowBlockRewrite.html#afacb6ae055a52590dac89c349e75f643">tvm::relax::DataflowBlockRewrite::DataflowBlockRewrite</a></div><div class="ttdeci">DataflowBlockRewrite(DataflowBlock dfb, Function root_fn)</div></div>
-<div class="ttc" id="aclasstvm_1_1relax_1_1DataflowBlock_html"><div class="ttname"><a href="classtvm_1_1relax_1_1DataflowBlock.html">tvm::relax::DataflowBlock</a></div><div class="ttdef"><b>Definition</b> expr.h:227</div></div>
-<div class="ttc" id="aclasstvm_1_1relax_1_1DataflowVar_html"><div class="ttname"><a href="classtvm_1_1relax_1_1DataflowVar.html">tvm::relax::DataflowVar</a></div><div class="ttdef"><b>Definition</b> expr.h:80</div></div>
-<div class="ttc" id="aclasstvm_1_1relax_1_1FunctionNode_html"><div class="ttname"><a href="classtvm_1_1relax_1_1FunctionNode.html">tvm::relax::FunctionNode</a></div><div class="ttdoc">A Relax function.</div><div class="ttdef"><b>Definition</b> expr.h:349</div></div>
-<div class="ttc" id="aclasstvm_1_1relax_1_1Function_html"><div class="ttname"><a href="classtvm_1_1relax_1_1Function.html">tvm::relax::Function</a></div><div class="ttdef"><b>Definition</b> expr.h:373</div></div>
-<div class="ttc" id="aclasstvm_1_1relax_1_1VarBinding_html"><div class="ttname"><a href="classtvm_1_1relax_1_1VarBinding.html">tvm::relax::VarBinding</a></div><div class="ttdef"><b>Definition</b> expr.h:185</div></div>
+<div class="ttc" id="aclasstvm_1_1relax_1_1DataflowBlock_html"><div class="ttname"><a href="classtvm_1_1relax_1_1DataflowBlock.html">tvm::relax::DataflowBlock</a></div><div class="ttdef"><b>Definition</b> expr.h:244</div></div>
+<div class="ttc" id="aclasstvm_1_1relax_1_1DataflowVar_html"><div class="ttname"><a href="classtvm_1_1relax_1_1DataflowVar.html">tvm::relax::DataflowVar</a></div><div class="ttdef"><b>Definition</b> expr.h:82</div></div>
+<div class="ttc" id="aclasstvm_1_1relax_1_1FunctionNode_html"><div class="ttname"><a href="classtvm_1_1relax_1_1FunctionNode.html">tvm::relax::FunctionNode</a></div><div class="ttdoc">A Relax function.</div><div class="ttdef"><b>Definition</b> expr.h:380</div></div>
+<div class="ttc" id="aclasstvm_1_1relax_1_1Function_html"><div class="ttname"><a href="classtvm_1_1relax_1_1Function.html">tvm::relax::Function</a></div><div class="ttdef"><b>Definition</b> expr.h:407</div></div>
+<div class="ttc" id="aclasstvm_1_1relax_1_1VarBinding_html"><div class="ttname"><a href="classtvm_1_1relax_1_1VarBinding.html">tvm::relax::VarBinding</a></div><div class="ttdef"><b>Definition</b> expr.h:202</div></div>
<div class="ttc" id="anamespacetvm_1_1relax_html_a98ceecc42432e50a5dd8413a3f481050"><div class="ttname"><a href="namespacetvm_1_1relax.html#a98ceecc42432e50a5dd8413a3f481050">tvm::relax::GetType</a></div><div class="ttdeci">Type GetType(const Expr &expr)</div><div class="ttdoc">Get the underlying Relax type of expr.</div><div class="ttdef"><b>Definition</b> type.h:380</div></div>
<div class="ttc" id="anamespacetvm_html"><div class="ttname"><a href="namespacetvm.html">tvm</a></div><div class="ttdoc">An object that builds and maintains block scope and StmtSref mapping for Dependence analysis.</div><div class="ttdef"><b>Definition</b> attrs.h:44</div></div>
<div class="ttc" id="arelax_2analysis_8h_html"><div class="ttname"><a href="relax_2analysis_8h.html">analysis.h</a></div><div class="ttdoc">The set of Relax specific analysis on IR.</div></div>
diff --git a/docs/reference/api/doxygen/block__builder_8h_source.html b/docs/reference/api/doxygen/block__builder_8h_source.html
index 89f8ab73383..3e52f1ef997 100644
--- a/docs/reference/api/doxygen/block__builder_8h_source.html
+++ b/docs/reference/api/doxygen/block__builder_8h_source.html
@@ -191,13 +191,13 @@ $(document).ready(function() { init_codefold(0); });
<div class="ttc" id="aanalyzer_8h_html"><div class="ttname"><a href="analyzer_8h.html">analyzer.h</a></div><div class="ttdoc">Algebra expression simplifications.</div></div>
<div class="ttc" id="aclasstvm_1_1BaseFunc_html"><div class="ttname"><a href="classtvm_1_1BaseFunc.html">tvm::BaseFunc</a></div><div class="ttdoc">Managed reference to BaseFuncNode.</div><div class="ttdef"><b>Definition</b> function.h:250</div></div>
<div class="ttc" id="aclasstvm_1_1Expr_html"><div class="ttname"><a href="classtvm_1_1Expr.html">tvm::Expr</a></div><div class="ttdoc">Managed reference to ExprNode.</div><div class="ttdef"><b>Definition</b> base_expr.h:338</div></div>
-<div class="ttc" id="aclasstvm_1_1GlobalVar_html"><div class="ttname"><a href="classtvm_1_1GlobalVar.html">tvm::GlobalVar</a></div><div class="ttdoc">Managed reference to GlobalVarNode.</div><div class="ttdef"><b>Definition</b> expr.h:466</div></div>
+<div class="ttc" id="aclasstvm_1_1GlobalVar_html"><div class="ttname"><a href="classtvm_1_1GlobalVar.html">tvm::GlobalVar</a></div><div class="ttdoc">Managed reference to GlobalVarNode.</div><div class="ttdef"><b>Definition</b> expr.h:482</div></div>
<div class="ttc" id="aclasstvm_1_1IRModule_html"><div class="ttname"><a href="classtvm_1_1IRModule.html">tvm::IRModule</a></div><div class="ttdoc">Managed reference class to IRModuleNode.</div><div class="ttdef"><b>Definition</b> module.h:255</div></div>
<div class="ttc" id="aclasstvm_1_1Type_html"><div class="ttname"><a href="classtvm_1_1Type.html">tvm::Type</a></div><div class="ttdoc">Managed reference to TypeNode.</div><div class="ttdef"><b>Definition</b> base_expr.h:80</div></div>
<div class="ttc" id="aclasstvm_1_1UniqueNameSupply_html"><div class="ttname"><a href="classtvm_1_1UniqueNameSupply.html">tvm::UniqueNameSupply</a></div><div class="ttdoc">Managed reference class to UniqueNameSupplyNode.</div><div class="ttdef"><b>Definition</b> unique_name_supply.h:115</div></div>
-<div class="ttc" id="aclasstvm_1_1Var_html"><div class="ttname"><a href="classtvm_1_1Var.html">tvm::Var</a></div><div class="ttdoc">Managed reference to VarNode.</div><div class="ttdef"><b>Definition</b> expr.h:375</div></div>
-<div class="ttc" id="aclasstvm_1_1relax_1_1BindingBlock_html"><div class="ttname"><a href="classtvm_1_1relax_1_1BindingBlock.html">tvm::relax::BindingBlock</a></div><div class="ttdef"><b>Definition</b> expr.h:209</div></div>
-<div class="ttc" id="aclasstvm_1_1relax_1_1Binding_html"><div class="ttname"><a href="classtvm_1_1relax_1_1Binding.html">tvm::relax::Binding</a></div><div class="ttdef"><b>Definition</b> expr.h:113</div></div>
+<div class="ttc" id="aclasstvm_1_1Var_html"><div class="ttname"><a href="classtvm_1_1Var.html">tvm::Var</a></div><div class="ttdoc">Managed reference to VarNode.</div><div class="ttdef"><b>Definition</b> expr.h:387</div></div>
+<div class="ttc" id="aclasstvm_1_1relax_1_1BindingBlock_html"><div class="ttname"><a href="classtvm_1_1relax_1_1BindingBlock.html">tvm::relax::BindingBlock</a></div><div class="ttdef"><b>Definition</b> expr.h:226</div></div>
+<div class="ttc" id="aclasstvm_1_1relax_1_1Binding_html"><div class="ttname"><a href="classtvm_1_1relax_1_1Binding.html">tvm::relax::Binding</a></div><div class="ttdef"><b>Definition</b> expr.h:120</div></div>
<div class="ttc" id="aclasstvm_1_1relax_1_1BlockBuilderNode_html"><div class="ttname"><a href="classtvm_1_1relax_1_1BlockBuilderNode.html">tvm::relax::BlockBuilderNode</a></div><div class="ttdoc">A builder to build Relax binding blocks.</div><div class="ttdef"><b>Definition</b> block_builder.h:65</div></div>
<div class="ttc" id="aclasstvm_1_1relax_1_1BlockBuilderNode_html_a1676f6889de59fd2d316eef32ab80d9a"><div class="ttname"><a href="classtvm_1_1relax_1_1BlockBuilderNode.html#a1676f6889de59fd2d316eef32ab80d9a">tvm::relax::BlockBuilderNode::BeginDataflowBlock</a></div><div class="ttdeci">virtual void BeginDataflowBlock()=0</div><div class="ttdoc">Begin to build a DataflowBlock.</div></div>
<div class="ttc" id="aclasstvm_1_1relax_1_1BlockBuilderNode_html_a171f5fefcf9b22e1ae14ecc307ed4862"><div class="ttname"><a href="classtvm_1_1relax_1_1BlockBuilderNode.html#a171f5fefcf9b22e1ae14ecc307ed4862">tvm::relax::BlockBuilderNode::GetContextIRModule</a></div><div class="ttdeci">virtual IRModule GetContextIRModule() const =0</div><div class="ttdoc">Get the context IRModule in this builder.</div></div>
diff --git a/docs/reference/api/doxygen/bnn_8h_source.html b/docs/reference/api/doxygen/bnn_8h_source.html
index d896cb8149b..081ba51b44e 100644
--- a/docs/reference/api/doxygen/bnn_8h_source.html
+++ b/docs/reference/api/doxygen/bnn_8h_source.html
@@ -191,11 +191,11 @@ $(document).ready(function() { init_codefold(0); });
<div class="line"><a id="l00127" name="l00127"></a><span class="lineno"> 127</span>} <span class="comment">// namespace tvm</span></div>
<div class="line"><a id="l00128" name="l00128"></a><span class="lineno"> 128</span><span class="preprocessor">#endif </span><span class="comment">// TVM_TOPI_NN_BNN_H_</span></div>
<div class="ttc" id="aanalyzer_8h_html"><div class="ttname"><a href="analyzer_8h.html">analyzer.h</a></div><div class="ttdoc">Algebra expression simplifications.</div></div>
-<div class="ttc" id="aclasstvm_1_1IntImm_html"><div class="ttname"><a href="classtvm_1_1IntImm.html">tvm::IntImm</a></div><div class="ttdoc">Managed reference class to IntImmNode.</div><div class="ttdef"><b>Definition</b> expr.h:630</div></div>
-<div class="ttc" id="aclasstvm_1_1PrimExpr_html"><div class="ttname"><a href="classtvm_1_1PrimExpr.html">tvm::PrimExpr</a></div><div class="ttdoc">Typed reference/view over any Expr whose ExprNode::ty is PrimType.</div><div class="ttdef"><b>Definition</b> base_expr.h:404</div></div>
+<div class="ttc" id="aclasstvm_1_1IntImm_html"><div class="ttname"><a href="classtvm_1_1IntImm.html">tvm::IntImm</a></div><div class="ttdoc">Managed reference class to IntImmNode.</div><div class="ttdef"><b>Definition</b> expr.h:661</div></div>
+<div class="ttc" id="aclasstvm_1_1PrimExpr_html"><div class="ttname"><a href="classtvm_1_1PrimExpr.html">tvm::PrimExpr</a></div><div class="ttdoc">Typed reference/view over any Expr whose ExprNode::ty is PrimType.</div><div class="ttdef"><b>Definition</b> base_expr.h:412</div></div>
<div class="ttc" id="aclasstvm_1_1PrimType_html_ae57549a48d3eba299f8f5d873361030a"><div class="ttname"><a href="classtvm_1_1PrimType.html#ae57549a48d3eba299f8f5d873361030a">tvm::PrimType::UInt</a></div><div class="ttdeci">static PrimType UInt(int bits, int lanes=1)</div><div class="ttdoc">Construct an unsigned integer type with fixed lanes.</div></div>
-<div class="ttc" id="aclasstvm_1_1PrimVar_html"><div class="ttname"><a href="classtvm_1_1PrimVar.html">tvm::PrimVar</a></div><div class="ttdoc">Checked scalar view over a VarNode.</div><div class="ttdef"><b>Definition</b> expr.h:400</div></div>
-<div class="ttc" id="aclasstvm_1_1Range_html"><div class="ttname"><a href="classtvm_1_1Range.html">tvm::Range</a></div><div class="ttdoc">Range container</div><div class="ttdef"><b>Definition</b> expr.h:751</div></div>
+<div class="ttc" id="aclasstvm_1_1PrimVar_html"><div class="ttname"><a href="classtvm_1_1PrimVar.html">tvm::PrimVar</a></div><div class="ttdoc">Checked scalar view over a VarNode.</div><div class="ttdef"><b>Definition</b> expr.h:414</div></div>
+<div class="ttc" id="aclasstvm_1_1Range_html"><div class="ttname"><a href="classtvm_1_1Range.html">tvm::Range</a></div><div class="ttdoc">Range container</div><div class="ttdef"><b>Definition</b> expr.h:786</div></div>
<div class="ttc" id="aclasstvm_1_1sym_1_1Analyzer_html"><div class="ttname"><a href="classtvm_1_1sym_1_1Analyzer.html">tvm::sym::Analyzer</a></div><div class="ttdoc">Managed reference to AnalyzerObj.</div><div class="ttdef"><b>Definition</b> analyzer.h:914</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:97</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>
@@ -208,7 +208,7 @@ $(document).ready(function() { init_codefold(0); });
<div class="ttc" id="anamespacetvm_1_1topi_1_1nn_html_a08aaeadaa767fa996d2f2e0a7d12c7cd"><div class="ttname"><a href="namespacetvm_1_1topi_1_1nn.html#a08aaeadaa767fa996d2f2e0a7d12c7cd">tvm::topi::nn::binary_dense</a></div><div class="ttdeci">tvm::te::Tensor binary_dense(const tvm::te::Tensor &data, const tvm::te::Tensor &weight)</div><div class="ttdoc">Binary matrix multiplication using xor and bit-count.</div><div class="ttdef"><b>Definition</b> bnn.h:101</div></div>
<div class="ttc" id="anamespacetvm_1_1topi_1_1nn_html_abaa4e2bba6a3d3db3eaca614fdf5bbea"><div class="ttname"><a href="namespacetvm_1_1topi_1_1nn.html#abaa4e2bba6a3d3db3eaca614fdf5bbea">tvm::topi::nn::binarize_pack</a></div><div class="ttdeci">tvm::te::Tensor binarize_pack(const tvm::te::Tensor &data, int axis, std::string name="PackedInput", std::string tag="binarize_pack")</div><div class="ttdoc">Binarization and bit-packing along a certain axis.</div><div class= [...]
<div class="ttc" id="anamespacetvm_1_1topi_html_a0250c4095f19ae8a22ed85bc4ce5a40d"><div class="ttname"><a href="namespacetvm_1_1topi.html#a0250c4095f19ae8a22ed85bc4ce5a40d">tvm::topi::kElementWise</a></div><div class="ttdeci">constexpr auto kElementWise</div><div class="ttdef"><b>Definition</b> tags.h:32</div></div>
-<div class="ttc" id="anamespacetvm_1_1topi_html_adae7dcb7e951109ba72192202d182994"><div class="ttname"><a href="namespacetvm_1_1topi.html#adae7dcb7e951109ba72192202d182994">tvm::topi::matmul</a></div><div class="ttdeci">tvm::te::Tensor matmul(const tvm::te::Tensor &A, const tvm::te::Tensor &B, bool trans_a=false, bool trans_b=false, std::string name="T_matmul", std::string tag=kMatMul)</div><div class="ttdoc">Creates an operation that calculates a matrix multiplication [...]
+<div class="ttc" id="anamespacetvm_1_1topi_html_adae7dcb7e951109ba72192202d182994"><div class="ttname"><a href="namespacetvm_1_1topi.html#adae7dcb7e951109ba72192202d182994">tvm::topi::matmul</a></div><div class="ttdeci">tvm::te::Tensor matmul(const tvm::te::Tensor &A, const tvm::te::Tensor &B, bool trans_a=false, bool trans_b=false, std::string name="T_matmul", std::string tag=kMatMul)</div><div class="ttdoc">Creates an operation that calculates a matrix multiplication [...]
<div class="ttc" id="anamespacetvm_1_1topi_html_af580cd1bea6e862f41c7fad4c4c7eea3"><div class="ttname"><a href="namespacetvm_1_1topi.html#af580cd1bea6e862f41c7fad4c4c7eea3">tvm::topi::sign</a></div><div class="ttdeci">Tensor sign(const Tensor &x, std::string name="T_sign", std::string tag=kElementWise)</div><div class="ttdoc">Returns the sign of the tensor.</div><div class="ttdef"><b>Definition</b> elemwise.h:210</div></div>
<div class="ttc" id="anamespacetvm_html"><div class="ttname"><a href="namespacetvm.html">tvm</a></div><div class="ttdoc">An object that builds and maintains block scope and StmtSref mapping for Dependence analysis.</div><div class="ttdef"><b>Definition</b> attrs.h:44</div></div>
<div class="ttc" id="anamespacetvm_html_a8f30aa0685ca52f846843e76a1ad1dc7"><div class="ttname"><a href="namespacetvm.html#a8f30aa0685ca52f846843e76a1ad1dc7">tvm::indexdiv</a></div><div class="ttdeci">PrimExpr indexdiv(PrimExpr a, PrimExpr b, Span span=Span())</div><div class="ttdoc">compute floor(a / b) where a and b are non-negative.</div></div>
diff --git a/docs/reference/api/doxygen/bound_8h_source.html b/docs/reference/api/doxygen/bound_8h_source.html
index f43f4bc103d..c2a93685475 100644
--- a/docs/reference/api/doxygen/bound_8h_source.html
+++ b/docs/reference/api/doxygen/bound_8h_source.html
@@ -120,7 +120,7 @@ $(document).ready(function() { init_codefold(0); });
<div class="line"><a id="l00066" name="l00066"></a><span class="lineno"> 66</span>} <span class="comment">// namespace sym</span></div>
<div class="line"><a id="l00067" name="l00067"></a><span class="lineno"> 67</span>} <span class="comment">// namespace tvm</span></div>
<div class="line"><a id="l00068" name="l00068"></a><span class="lineno"> 68</span><span class="preprocessor">#endif </span><span class="comment">// TVM_SYM_BOUND_H_</span></div>
-<div class="ttc" id="aclasstvm_1_1PrimExpr_html"><div class="ttname"><a href="classtvm_1_1PrimExpr.html">tvm::PrimExpr</a></div><div class="ttdoc">Typed reference/view over any Expr whose ExprNode::ty is PrimType.</div><div class="ttdef"><b>Definition</b> base_expr.h:404</div></div>
+<div class="ttc" id="aclasstvm_1_1PrimExpr_html"><div class="ttname"><a href="classtvm_1_1PrimExpr.html">tvm::PrimExpr</a></div><div class="ttdoc">Typed reference/view over any Expr whose ExprNode::ty is PrimType.</div><div class="ttdef"><b>Definition</b> base_expr.h:412</div></div>
<div class="ttc" id="aclasstvm_1_1sym_1_1IntSet_html"><div class="ttname"><a href="classtvm_1_1sym_1_1IntSet.html">tvm::sym::IntSet</a></div><div class="ttdoc">Managed reference to IntSetNode.</div><div class="ttdef"><b>Definition</b> int_set.h:63</div></div>
<div class="ttc" id="aint__set_8h_html"><div class="ttname"><a href="int__set_8h.html">int_set.h</a></div><div class="ttdoc">Integer set.</div></div>
<div class="ttc" id="air_2expr_8h_html"><div class="ttname"><a href="ir_2expr_8h.html">expr.h</a></div><div class="ttdoc">Base expr nodes in TVM.</div></div>
diff --git a/docs/reference/api/doxygen/broadcast_8h.html b/docs/reference/api/doxygen/broadcast_8h.html
index b42addf9e79..27b564a3995 100644
--- a/docs/reference/api/doxygen/broadcast_8h.html
+++ b/docs/reference/api/doxygen/broadcast_8h.html
@@ -454,7 +454,7 @@ Functions</h2></td></tr>
<div class="line"> B->shape, [&](const ::tvm::ffi::Array<::tvm::PrimVar>& i) { return l(A, B(i)); }, name, \</div>
<div class="line"> tag); \</div>
<div class="line"> }</div>
-<div class="ttc" id="aclasstvm_1_1PrimExpr_html"><div class="ttname"><a href="classtvm_1_1PrimExpr.html">tvm::PrimExpr</a></div><div class="ttdoc">Typed reference/view over any Expr whose ExprNode::ty is PrimType.</div><div class="ttdef"><b>Definition</b> base_expr.h:404</div></div>
+<div class="ttc" id="aclasstvm_1_1PrimExpr_html"><div class="ttname"><a href="classtvm_1_1PrimExpr.html">tvm::PrimExpr</a></div><div class="ttdoc">Typed reference/view over any Expr whose ExprNode::ty is PrimType.</div><div class="ttdef"><b>Definition</b> base_expr.h:412</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:97</div></div>
<div class="ttc" id="anamespacetvm_1_1te_html_ad98d13fdbc71aede147f419e218fc680"><div class="ttname"><a href="namespacetvm_1_1te.html#ad98d13fdbc71aede147f419e218fc680">tvm::te::compute</a></div><div class="ttdeci">Tensor compute(ffi::Array< PrimExpr > shape, FCompute fcompute, std::string name="tensor", std::string tag="", ffi::Map< ffi::String, ffi::Any > attrs={})</div><div class="ttdoc">Construct a new tensor by computing over shape, using the computat [...]
</div><!-- fragment -->
diff --git a/docs/reference/api/doxygen/bytecode_8h_source.html b/docs/reference/api/doxygen/bytecode_8h_source.html
index ff310f30562..8aa74fafb3f 100644
--- a/docs/reference/api/doxygen/bytecode_8h_source.html
+++ b/docs/reference/api/doxygen/bytecode_8h_source.html
@@ -223,7 +223,7 @@ $(document).ready(function() { init_codefold(0); });
<div class="line"><a id="l00244" name="l00244"></a><span class="lineno"> 244</span>} <span class="comment">// namespace tvm</span></div>
<div class="line"><a id="l00245" name="l00245"></a><span class="lineno"> 245</span> </div>
<div class="line"><a id="l00246" name="l00246"></a><span class="lineno"> 246</span><span class="preprocessor">#endif </span><span class="comment">// TVM_RUNTIME_VM_BYTECODE_H_</span></div>
-<div class="ttc" id="aclasstvm_1_1Call_html"><div class="ttname"><a href="classtvm_1_1Call.html">tvm::Call</a></div><div class="ttdoc">Managed reference to CallNode.</div><div class="ttdef"><b>Definition</b> expr.h:511</div></div>
+<div class="ttc" id="aclasstvm_1_1Call_html"><div class="ttname"><a href="classtvm_1_1Call.html">tvm::Call</a></div><div class="ttdoc">Managed reference to CallNode.</div><div class="ttdef"><b>Definition</b> expr.h:532</div></div>
<div class="ttc" id="aclasstvm_1_1runtime_1_1vm_1_1Instruction_1_1Arg_html"><div class="ttname"><a href="classtvm_1_1runtime_1_1vm_1_1Instruction_1_1Arg.html">tvm::runtime::vm::Instruction::Arg</a></div><div class="ttdoc">The auxiliary data structure for instruction argument.</div><div class="ttdef"><b>Definition</b> bytecode.h:119</div></div>
<div class="ttc" id="aclasstvm_1_1runtime_1_1vm_1_1Instruction_1_1Arg_html_a3c60a8aefabee0c04cafa08fc2e3c69e"><div class="ttname"><a href="classtvm_1_1runtime_1_1vm_1_1Instruction_1_1Arg.html#a3c60a8aefabee0c04cafa08fc2e3c69e">tvm::runtime::vm::Instruction::Arg::ConstIdx</a></div><div class="ttdeci">static Arg ConstIdx(Index index)</div><div class="ttdoc">construct a ConstIdx arg.</div><div class="ttdef"><b>Definition</b> bytecode.h:139</div></div>
<div class="ttc" id="aclasstvm_1_1runtime_1_1vm_1_1Instruction_1_1Arg_html_a41891bed1dcc514d68764ece8eb35e4e"><div class="ttname"><a href="classtvm_1_1runtime_1_1vm_1_1Instruction_1_1Arg.html#a41891bed1dcc514d68764ece8eb35e4e">tvm::runtime::vm::Instruction::Arg::FuncIdx</a></div><div class="ttdeci">static Arg FuncIdx(Index index)</div><div class="ttdoc">construct a FuncIdx arg.</div><div class="ttdef"><b>Definition</b> bytecode.h:151</div></div>
diff --git a/docs/reference/api/doxygen/classtvm_1_1BaseFunc-members.html b/docs/reference/api/doxygen/classtvm_1_1BaseFunc-members.html
index 953411c08e2..931f9becea8 100644
--- a/docs/reference/api/doxygen/classtvm_1_1BaseFunc-members.html
+++ b/docs/reference/api/doxygen/classtvm_1_1BaseFunc-members.html
@@ -79,11 +79,13 @@ $(function() {
<p>This is the complete list of members for <a class="el" href="classtvm_1_1BaseFunc.html">tvm::BaseFunc</a>, including all inherited members.</p>
<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1BaseFunc.html#a32c091b21fc288c7b7305647ab23df6d">BaseFunc</a>(ffi::ObjectPtr< BaseFuncNode > node)</td><td class="entry"><a class="el" href="classtvm_1_1BaseFunc.html">tvm::BaseFunc</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classtvm_1_1Expr.html#aad84c3380b07b63427dda3697a78b269">Expr</a>(ffi::ObjectPtr< ExprNode > node)</td><td class="entry"><a class="el" href="classtvm_1_1Expr.html">tvm::Expr</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classtvm_1_1Expr.html#a86bd9da75268e479e3bbe61729dce8ac">operator!=</a>(const Expr &other) const =delete</td><td class="entry"><a class="el" href="classtvm_1_1Expr.html">tvm::Expr</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classtvm_1_1Expr.html#afb14020d9ae652a64a6f15dcba073c0e">operator<</a>(const Expr &other) const =delete</td><td class="entry"><a class="el" href="classtvm_1_1Expr.html">tvm::Expr</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classtvm_1_1Expr.html#a637231cfc91838b8f14745ac199b5fbf">operator==</a>(const Expr &other) const =delete</td><td class="entry"><a class="el" href="classtvm_1_1Expr.html">tvm::Expr</a></td><td class="entry"></td></tr>
- <tr class="odd"><td class="entry"><a class="el" href="classtvm_1_1BaseFunc.html#a49ab7504f3e6237d5227b26c687b2f34">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE</a>(BaseFunc, Expr, BaseFuncNode)</td><td class="entry"><a class="el" href="classtvm_1_1BaseFunc.html">tvm::BaseFunc</a></td><td class="entry"></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1Expr.html#a081d3512d899e352e81e8eda6385c444">tvm::Expr::TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE</a>(Expr, ffi::ObjectRef, ExprNode)</td><td class="entry"><a class="el" href="classtvm_1_1Expr.html">tvm::Expr</a></td><td class="entry"></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classtvm_1_1BaseFunc.html#a496463fef22ee43ebd9ace59626a0348">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NOTNULLABLE</a>(BaseFunc, Expr, BaseFuncNode)</td><td class="entry"><a class="el" href="classtvm_1_1BaseFunc.html">tvm::BaseFunc</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1Expr.html#a26775d381ee6e7c7bb65b8a7320f5b87">tvm::Expr::TVM_FFI_DEFINE_OBJECT_REF_METHODS_NOTNULLABLE</a>(Expr, ffi::ObjectRef, ExprNode)</td><td class="entry"><a class="el" href="classtvm_1_1Expr.html">tvm::Expr</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/docs/reference/api/doxygen/classtvm_1_1BaseFunc.html b/docs/reference/api/doxygen/classtvm_1_1BaseFunc.html
index ca12589190c..46b340ce53d 100644
--- a/docs/reference/api/doxygen/classtvm_1_1BaseFunc.html
+++ b/docs/reference/api/doxygen/classtvm_1_1BaseFunc.html
@@ -87,18 +87,20 @@ $(function() {
<div class="dynheader">
Inheritance diagram for tvm::BaseFunc:</div>
<div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1BaseFunc__inherit__graph.svg" width="715" height="595"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
+<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1BaseFunc__inherit__graph.svg" width="799" height="655"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
<div class="dynheader">
Collaboration diagram for tvm::BaseFunc:</div>
<div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1BaseFunc__coll__graph.svg" width="230" height="392"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
+<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1BaseFunc__coll__graph.svg" width="258" height="432"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
-<tr class="memitem:a49ab7504f3e6237d5227b26c687b2f34" id="r_a49ab7504f3e6237d5227b26c687b2f34"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1BaseFunc.html#a49ab7504f3e6237d5227b26c687b2f34">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE</a> (<a class="el" href="classtvm_1_1BaseFunc.html">BaseFunc</a>, <a class="el" href="classtvm_1_1Expr.html">Expr</a>, <a class="el" href="classtvm_1_1BaseFuncNode.html"> [...]
-<tr class="separator:a49ab7504f3e6237d5227b26c687b2f34"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a32c091b21fc288c7b7305647ab23df6d" id="r_a32c091b21fc288c7b7305647ab23df6d"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1BaseFunc.html#a32c091b21fc288c7b7305647ab23df6d">BaseFunc</a> (ffi::ObjectPtr< <a class="el" href="classtvm_1_1BaseFuncNode.html">BaseFuncNode</a> > node)</td></tr>
+<tr class="separator:a32c091b21fc288c7b7305647ab23df6d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a496463fef22ee43ebd9ace59626a0348" id="r_a496463fef22ee43ebd9ace59626a0348"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1BaseFunc.html#a496463fef22ee43ebd9ace59626a0348">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NOTNULLABLE</a> (<a class="el" href="classtvm_1_1BaseFunc.html">BaseFunc</a>, <a class="el" href="classtvm_1_1Expr.html">Expr</a>, <a class="el" href="classtvm_1_1BaseFuncNode.htm [...]
+<tr class="separator:a496463fef22ee43ebd9ace59626a0348"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="inherit_header pub_methods_classtvm_1_1Expr"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classtvm_1_1Expr')"><img src="closed.png" alt="-"/> Public Member Functions inherited from <a class="el" href="classtvm_1_1Expr.html">tvm::Expr</a></td></tr>
<tr class="memitem:a637231cfc91838b8f14745ac199b5fbf inherit pub_methods_classtvm_1_1Expr" id="r_a637231cfc91838b8f14745ac199b5fbf"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1Expr.html#a637231cfc91838b8f14745ac199b5fbf">operator==</a> (const <a class="el" href="classtvm_1_1Expr.html">Expr</a> &other) const =delete</td></tr>
<tr class="separator:a637231cfc91838b8f14745ac199b5fbf inherit pub_methods_classtvm_1_1Expr"><td class="memSeparator" colspan="2"> </td></tr>
@@ -106,21 +108,50 @@ Public Member Functions</h2></td></tr>
<tr class="separator:a86bd9da75268e479e3bbe61729dce8ac inherit pub_methods_classtvm_1_1Expr"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:afb14020d9ae652a64a6f15dcba073c0e inherit pub_methods_classtvm_1_1Expr" id="r_afb14020d9ae652a64a6f15dcba073c0e"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1Expr.html#afb14020d9ae652a64a6f15dcba073c0e">operator<</a> (const <a class="el" href="classtvm_1_1Expr.html">Expr</a> &other) const =delete</td></tr>
<tr class="separator:afb14020d9ae652a64a6f15dcba073c0e inherit pub_methods_classtvm_1_1Expr"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a081d3512d899e352e81e8eda6385c444 inherit pub_methods_classtvm_1_1Expr" id="r_a081d3512d899e352e81e8eda6385c444"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1Expr.html#a081d3512d899e352e81e8eda6385c444">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE</a> (<a class="el" href="classtvm_1_1Expr.html">Expr</a>, ffi::ObjectRef, <a class="el" href="classtvm_1_1ExprNode.html">ExprNode</a>)</td></tr>
-<tr class="separator:a081d3512d899e352e81e8eda6385c444 inherit pub_methods_classtvm_1_1Expr"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:aad84c3380b07b63427dda3697a78b269 inherit pub_methods_classtvm_1_1Expr" id="r_aad84c3380b07b63427dda3697a78b269"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1Expr.html#aad84c3380b07b63427dda3697a78b269">Expr</a> (ffi::ObjectPtr< <a class="el" href="classtvm_1_1ExprNode.html">ExprNode</a> > node)</td></tr>
+<tr class="separator:aad84c3380b07b63427dda3697a78b269 inherit pub_methods_classtvm_1_1Expr"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a26775d381ee6e7c7bb65b8a7320f5b87 inherit pub_methods_classtvm_1_1Expr" id="r_a26775d381ee6e7c7bb65b8a7320f5b87"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1Expr.html#a26775d381ee6e7c7bb65b8a7320f5b87">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NOTNULLABLE</a> (<a class="el" href="classtvm_1_1Expr.html">Expr</a>, ffi::ObjectRef, <a class="el" href="classtvm_1_1ExprNode.html">ExprNode</a>) [...]
+<tr class="separator:a26775d381ee6e7c7bb65b8a7320f5b87 inherit pub_methods_classtvm_1_1Expr"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Managed reference to <a class="el" href="classtvm_1_1BaseFuncNode.html" title="Base node of all functions.">BaseFuncNode</a>. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classtvm_1_1BaseFuncNode.html" title="Base node of all functions.">BaseFuncNode</a> </dd></dl>
-</div><h2 class="groupheader">Member Function Documentation</h2>
-<a id="a49ab7504f3e6237d5227b26c687b2f34" name="a49ab7504f3e6237d5227b26c687b2f34"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a49ab7504f3e6237d5227b26c687b2f34">◆ </a></span>TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE()</h2>
+</div><h2 class="groupheader">Constructor & Destructor Documentation</h2>
+<a id="a32c091b21fc288c7b7305647ab23df6d" name="a32c091b21fc288c7b7305647ab23df6d"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a32c091b21fc288c7b7305647ab23df6d">◆ </a></span>BaseFunc()</h2>
<div class="memitem">
<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
<table class="memname">
<tr>
- <td class="memname">tvm::BaseFunc::TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE </td>
+ <td class="memname">tvm::BaseFunc::BaseFunc </td>
+ <td>(</td>
+ <td class="paramtype">ffi::ObjectPtr< <a class="el" href="classtvm_1_1BaseFuncNode.html">BaseFuncNode</a> > </td>
+ <td class="paramname"><em>node</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">explicit</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a id="a496463fef22ee43ebd9ace59626a0348" name="a496463fef22ee43ebd9ace59626a0348"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a496463fef22ee43ebd9ace59626a0348">◆ </a></span>TVM_FFI_DEFINE_OBJECT_REF_METHODS_NOTNULLABLE()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">tvm::BaseFunc::TVM_FFI_DEFINE_OBJECT_REF_METHODS_NOTNULLABLE </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classtvm_1_1BaseFunc.html">BaseFunc</a> </td>
<td class="paramname">, </td>
diff --git a/docs/reference/api/doxygen/classtvm_1_1BaseFuncNode.html b/docs/reference/api/doxygen/classtvm_1_1BaseFuncNode.html
index b0c4d0d8dca..1d911f425f3 100644
--- a/docs/reference/api/doxygen/classtvm_1_1BaseFuncNode.html
+++ b/docs/reference/api/doxygen/classtvm_1_1BaseFuncNode.html
@@ -90,7 +90,7 @@ $(function() {
<div class="dynheader">
Inheritance diagram for tvm::BaseFuncNode:</div>
<div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1BaseFuncNode__inherit__graph.svg" width="683" height="780"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
+<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1BaseFuncNode__inherit__graph.svg" width="683" height="800"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
<div class="dynheader">
Collaboration diagram for tvm::BaseFuncNode:</div>
diff --git a/docs/reference/api/doxygen/classtvm_1_1BaseFuncNode__inherit__graph.svg b/docs/reference/api/doxygen/classtvm_1_1BaseFuncNode__inherit__graph.svg
index 5407fac835c..fa2484e8536 100644
--- a/docs/reference/api/doxygen/classtvm_1_1BaseFuncNode__inherit__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1BaseFuncNode__inherit__graph.svg
@@ -4,37 +4,37 @@
<!-- Generated by graphviz version 2.43.0 (0)
-->
<!-- Title: tvm::BaseFuncNode Pages: 1 -->
-<svg width="512pt" height="585pt"
- viewBox="0.00 0.00 512.00 585.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 581)">
+<svg width="512pt" height="600pt"
+ viewBox="0.00 0.00 512.00 600.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 596)">
<title>tvm::BaseFuncNode</title>
<!-- Node1 -->
<g id="Node000001" class="node">
<title>Node1</title>
<g id="a_Node000001"><a xlink:title="Base node of all functions.">
-<polygon fill="#999999" stroke="transparent" points="330,-336 174,-336 174,-186 330,-186 330,-336"/>
-<text text-anchor="start" x="203" y="-324" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::BaseFuncNode</text>
+<polygon fill="#999999" stroke="transparent" points="330,-351 174,-351 174,-201 330,-201 330,-351"/>
+<text text-anchor="start" x="203" y="-339" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::BaseFuncNode</text>
+<text text-anchor="start" x="178" y="-324" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="191" y="-324" font-family="Helvetica,sans-Serif" font-size="10.00">attrs</text>
<text text-anchor="start" x="178" y="-309" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="191" y="-309" font-family="Helvetica,sans-Serif" font-size="10.00">attrs</text>
+<text text-anchor="start" x="191" y="-309" font-family="Helvetica,sans-Serif" font-size="10.00">_type_child_slots</text>
<text text-anchor="start" x="178" y="-294" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="191" y="-294" font-family="Helvetica,sans-Serif" font-size="10.00">_type_child_slots</text>
+<text text-anchor="start" x="191" y="-294" font-family="Helvetica,sans-Serif" font-size="10.00">GetAttr()</text>
<text text-anchor="start" x="178" y="-279" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
<text text-anchor="start" x="191" y="-279" font-family="Helvetica,sans-Serif" font-size="10.00">GetAttr()</text>
<text text-anchor="start" x="178" y="-264" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="191" y="-264" font-family="Helvetica,sans-Serif" font-size="10.00">GetAttr()</text>
+<text text-anchor="start" x="191" y="-264" font-family="Helvetica,sans-Serif" font-size="10.00">HasNonzeroAttr()</text>
<text text-anchor="start" x="178" y="-249" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="191" y="-249" font-family="Helvetica,sans-Serif" font-size="10.00">HasNonzeroAttr()</text>
+<text text-anchor="start" x="191" y="-249" font-family="Helvetica,sans-Serif" font-size="10.00">GetLinkageType()</text>
<text text-anchor="start" x="178" y="-234" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="191" y="-234" font-family="Helvetica,sans-Serif" font-size="10.00">GetLinkageType()</text>
-<text text-anchor="start" x="178" y="-219" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="191" y="-219" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="191" y="-208" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO()</text>
-<text text-anchor="start" x="178" y="-193" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="191" y="-193" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
-<polygon fill="#666666" stroke="#666666" points="174,-319 174,-319 330,-319 330,-319 174,-319"/>
-<polygon fill="#666666" stroke="#666666" points="174,-289 174,-289 189,-289 189,-289 174,-289"/>
-<polygon fill="#666666" stroke="#666666" points="189,-289 189,-289 330,-289 330,-289 189,-289"/>
-<polygon fill="none" stroke="#666666" points="174,-186 174,-336 330,-336 330,-186 174,-186"/>
+<text text-anchor="start" x="191" y="-234" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="191" y="-223" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO()</text>
+<text text-anchor="start" x="178" y="-208" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="191" y="-208" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
+<polygon fill="#666666" stroke="#666666" points="174,-334 174,-334 330,-334 330,-334 174,-334"/>
+<polygon fill="#666666" stroke="#666666" points="174,-304 174,-304 189,-304 189,-304 174,-304"/>
+<polygon fill="#666666" stroke="#666666" points="189,-304 189,-304 330,-304 330,-304 189,-304"/>
+<polygon fill="none" stroke="#666666" points="174,-201 174,-351 330,-351 330,-201 174,-201"/>
</a>
</g>
</g>
@@ -42,19 +42,19 @@
<g id="Node000004" class="node">
<title>Node4</title>
<g id="a_Node000004"><a xlink:href="classtvm_1_1relax_1_1ExternFuncNode.html" target="_top" xlink:title="The extern function, which can represent packed function.">
-<polygon fill="white" stroke="transparent" points="156,-112.5 0,-112.5 0,-37.5 156,-37.5 156,-112.5"/>
-<text text-anchor="start" x="10" y="-100" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::ExternFuncNode</text>
-<text text-anchor="start" x="4" y="-85" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="17" y="-85" font-family="Helvetica,sans-Serif" font-size="10.00">global_symbol</text>
-<text text-anchor="start" x="4" y="-70" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="17" y="-70" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="17" y="-59" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
-<text text-anchor="start" x="4" y="-44" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="17" y="-44" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
-<polygon fill="#666666" stroke="#666666" points="0,-95 0,-95 156,-95 156,-95 0,-95"/>
-<polygon fill="#666666" stroke="#666666" points="0,-80 0,-80 15,-80 15,-80 0,-80"/>
-<polygon fill="#666666" stroke="#666666" points="15,-80 15,-80 156,-80 156,-80 15,-80"/>
-<polygon fill="none" stroke="#666666" points="0,-37.5 0,-112.5 156,-112.5 156,-37.5 0,-37.5"/>
+<polygon fill="white" stroke="transparent" points="156,-120 0,-120 0,-45 156,-45 156,-120"/>
+<text text-anchor="start" x="10" y="-107.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::ExternFuncNode</text>
+<text text-anchor="start" x="4" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="17" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00">global_symbol</text>
+<text text-anchor="start" x="4" y="-77.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="17" y="-77.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="17" y="-66.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
+<text text-anchor="start" x="4" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="17" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
+<polygon fill="#666666" stroke="#666666" points="0,-102.5 0,-102.5 156,-102.5 156,-102.5 0,-102.5"/>
+<polygon fill="#666666" stroke="#666666" points="0,-87.5 0,-87.5 15,-87.5 15,-87.5 0,-87.5"/>
+<polygon fill="#666666" stroke="#666666" points="15,-87.5 15,-87.5 156,-87.5 156,-87.5 15,-87.5"/>
+<polygon fill="none" stroke="#666666" points="0,-45 0,-120 156,-120 156,-45 0,-45"/>
</a>
</g>
</g>
@@ -62,8 +62,8 @@
<g id="edge3_Node000001_Node000004" class="edge">
<title>Node1->Node4</title>
<g id="a_edge3_Node000001_Node000004"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M174.96,-178.54C153.24,-155.57 130.69,-131.71 112.8,-112.8"/>
-<polygon fill="none" stroke="#63b8ff" points="172.57,-181.09 181.98,-185.96 177.65,-176.28 172.57,-181.09"/>
+<path fill="none" stroke="#63b8ff" d="M177.9,-193.45C154.69,-167.91 130.24,-140.99 111.33,-120.18"/>
+<polygon fill="none" stroke="#63b8ff" points="175.41,-195.91 184.73,-200.96 180.59,-191.21 175.41,-195.91"/>
</a>
</g>
</g>
@@ -71,27 +71,31 @@
<g id="Node000005" class="node">
<title>Node5</title>
<g id="a_Node000005"><a xlink:href="classtvm_1_1relax_1_1FunctionNode.html" target="_top" xlink:title="A Relax function.">
-<polygon fill="white" stroke="transparent" points="330,-142.5 174,-142.5 174,-7.5 330,-7.5 330,-142.5"/>
-<text text-anchor="start" x="190" y="-130" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::FunctionNode</text>
-<text text-anchor="start" x="178" y="-115" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="191" y="-115" font-family="Helvetica,sans-Serif" font-size="10.00">params</text>
-<text text-anchor="start" x="178" y="-100" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="191" y="-100" font-family="Helvetica,sans-Serif" font-size="10.00">body</text>
-<text text-anchor="start" x="178" y="-85" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="191" y="-85" font-family="Helvetica,sans-Serif" font-size="10.00">ret_ty</text>
-<text text-anchor="start" x="178" y="-70" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="191" y="-70" font-family="Helvetica,sans-Serif" font-size="10.00">is_pure</text>
-<text text-anchor="start" x="178" y="-55" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="191" y="-55" font-family="Helvetica,sans-Serif" font-size="10.00">_type_s_eq_hash_kind</text>
-<text text-anchor="start" x="178" y="-40" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="191" y="-40" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="191" y="-29" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
-<text text-anchor="start" x="178" y="-14" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="191" y="-14" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
-<polygon fill="#666666" stroke="#666666" points="174,-125 174,-125 330,-125 330,-125 174,-125"/>
-<polygon fill="#666666" stroke="#666666" points="174,-50 174,-50 189,-50 189,-50 174,-50"/>
-<polygon fill="#666666" stroke="#666666" points="189,-50 189,-50 330,-50 330,-50 189,-50"/>
-<polygon fill="none" stroke="#666666" points="174,-7.5 174,-142.5 330,-142.5 330,-7.5 174,-7.5"/>
+<polygon fill="white" stroke="transparent" points="330,-165 174,-165 174,0 330,0 330,-165"/>
+<text text-anchor="start" x="190" y="-152.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::FunctionNode</text>
+<text text-anchor="start" x="178" y="-137.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="191" y="-137.5" font-family="Helvetica,sans-Serif" font-size="10.00">params</text>
+<text text-anchor="start" x="178" y="-122.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="191" y="-122.5" font-family="Helvetica,sans-Serif" font-size="10.00">body</text>
+<text text-anchor="start" x="178" y="-107.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="191" y="-107.5" font-family="Helvetica,sans-Serif" font-size="10.00">ret_ty</text>
+<text text-anchor="start" x="178" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="191" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00">is_pure</text>
+<text text-anchor="start" x="178" y="-77.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="191" y="-77.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_s_eq_hash_kind</text>
+<text text-anchor="start" x="178" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="191" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00">FunctionNode()</text>
+<text text-anchor="start" x="178" y="-47.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="191" y="-47.5" font-family="Helvetica,sans-Serif" font-size="10.00">FunctionNode()</text>
+<text text-anchor="start" x="178" y="-32.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="191" y="-32.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="191" y="-21.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
+<text text-anchor="start" x="178" y="-6.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="191" y="-6.5" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
+<polygon fill="#666666" stroke="#666666" points="174,-147.5 174,-147.5 330,-147.5 330,-147.5 174,-147.5"/>
+<polygon fill="#666666" stroke="#666666" points="174,-72.5 174,-72.5 189,-72.5 189,-72.5 174,-72.5"/>
+<polygon fill="#666666" stroke="#666666" points="189,-72.5 189,-72.5 330,-72.5 330,-72.5 189,-72.5"/>
+<polygon fill="none" stroke="#666666" points="174,0 174,-165 330,-165 330,0 174,0"/>
</a>
</g>
</g>
@@ -99,8 +103,8 @@
<g id="edge4_Node000001_Node000005" class="edge">
<title>Node1->Node5</title>
<g id="a_edge4_Node000001_Node000005"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M252,-175.83C252,-164.75 252,-153.51 252,-142.76"/>
-<polygon fill="none" stroke="#63b8ff" points="248.5,-175.96 252,-185.96 255.5,-175.96 248.5,-175.96"/>
+<path fill="none" stroke="#63b8ff" d="M252,-190.73C252,-182.29 252,-173.72 252,-165.29"/>
+<polygon fill="none" stroke="#63b8ff" points="248.5,-190.96 252,-200.96 255.5,-190.96 248.5,-190.96"/>
</a>
</g>
</g>
@@ -108,29 +112,29 @@
<g id="Node000006" class="node">
<title>Node6</title>
<g id="a_Node000006"><a xlink:href="classtvm_1_1tirx_1_1PrimFuncNode.html" target="_top" xlink:title="Primitive functions that contains TIR statements.">
-<polygon fill="white" stroke="transparent" points="504,-150 348,-150 348,0 504,0 504,-150"/>
-<text text-anchor="start" x="366.5" y="-138" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::tirx::PrimFuncNode</text>
-<text text-anchor="start" x="352" y="-123" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="365" y="-123" font-family="Helvetica,sans-Serif" font-size="10.00">params</text>
-<text text-anchor="start" x="352" y="-108" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="365" y="-108" font-family="Helvetica,sans-Serif" font-size="10.00">ret_type</text>
-<text text-anchor="start" x="352" y="-93" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="365" y="-93" font-family="Helvetica,sans-Serif" font-size="10.00">body</text>
-<text text-anchor="start" x="352" y="-78" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="365" y="-78" font-family="Helvetica,sans-Serif" font-size="10.00">SEqual()</text>
-<text text-anchor="start" x="352" y="-63" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="365" y="-63" font-family="Helvetica,sans-Serif" font-size="10.00">SHash()</text>
-<text text-anchor="start" x="352" y="-48" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="365" y="-48" font-family="Helvetica,sans-Serif" font-size="10.00">func_type_annotation()</text>
-<text text-anchor="start" x="352" y="-33" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="365" y="-33" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="365" y="-22" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
-<text text-anchor="start" x="352" y="-7" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="365" y="-7" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
-<polygon fill="#666666" stroke="#666666" points="348,-133 348,-133 504,-133 504,-133 348,-133"/>
-<polygon fill="#666666" stroke="#666666" points="348,-88 348,-88 363,-88 363,-88 348,-88"/>
-<polygon fill="#666666" stroke="#666666" points="363,-88 363,-88 504,-88 504,-88 363,-88"/>
-<polygon fill="none" stroke="#666666" points="348,0 348,-150 504,-150 504,0 348,0"/>
+<polygon fill="white" stroke="transparent" points="504,-157.5 348,-157.5 348,-7.5 504,-7.5 504,-157.5"/>
+<text text-anchor="start" x="366.5" y="-145.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::tirx::PrimFuncNode</text>
+<text text-anchor="start" x="352" y="-130.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="365" y="-130.5" font-family="Helvetica,sans-Serif" font-size="10.00">params</text>
+<text text-anchor="start" x="352" y="-115.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="365" y="-115.5" font-family="Helvetica,sans-Serif" font-size="10.00">ret_type</text>
+<text text-anchor="start" x="352" y="-100.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="365" y="-100.5" font-family="Helvetica,sans-Serif" font-size="10.00">body</text>
+<text text-anchor="start" x="352" y="-85.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="365" y="-85.5" font-family="Helvetica,sans-Serif" font-size="10.00">SEqual()</text>
+<text text-anchor="start" x="352" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="365" y="-70.5" font-family="Helvetica,sans-Serif" font-size="10.00">SHash()</text>
+<text text-anchor="start" x="352" y="-55.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="365" y="-55.5" font-family="Helvetica,sans-Serif" font-size="10.00">func_type_annotation()</text>
+<text text-anchor="start" x="352" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="365" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="365" y="-29.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
+<text text-anchor="start" x="352" y="-14.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="365" y="-14.5" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
+<polygon fill="#666666" stroke="#666666" points="348,-140.5 348,-140.5 504,-140.5 504,-140.5 348,-140.5"/>
+<polygon fill="#666666" stroke="#666666" points="348,-95.5 348,-95.5 363,-95.5 363,-95.5 348,-95.5"/>
+<polygon fill="#666666" stroke="#666666" points="363,-95.5 363,-95.5 504,-95.5 504,-95.5 363,-95.5"/>
+<polygon fill="none" stroke="#666666" points="348,-7.5 348,-157.5 504,-157.5 504,-7.5 348,-7.5"/>
</a>
</g>
</g>
@@ -138,8 +142,8 @@
<g id="edge5_Node000001_Node000006" class="edge">
<title>Node1->Node6</title>
<g id="a_edge5_Node000001_Node000006"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M329.12,-178.45C338.01,-169.05 347.04,-159.49 355.84,-150.19"/>
-<polygon fill="none" stroke="#63b8ff" points="326.35,-176.28 322.02,-185.96 331.43,-181.09 326.35,-176.28"/>
+<path fill="none" stroke="#63b8ff" d="M326.28,-193.24C337.02,-181.43 348.03,-169.32 358.62,-157.66"/>
+<polygon fill="none" stroke="#63b8ff" points="323.41,-191.21 319.27,-200.96 328.59,-195.91 323.41,-191.21"/>
</a>
</g>
</g>
@@ -147,25 +151,25 @@
<g id="Node000002" class="node">
<title>Node2</title>
<g id="a_Node000002"><a xlink:href="classtvm_1_1ExprNode.html" target="_top" xlink:title="Base type of all the expressions.">
-<polygon fill="white" stroke="transparent" points="330,-492 174,-492 174,-372 330,-372 330,-492"/>
-<text text-anchor="start" x="215.5" y="-480" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::ExprNode</text>
+<polygon fill="white" stroke="transparent" points="330,-507 174,-507 174,-387 330,-387 330,-507"/>
+<text text-anchor="start" x="215.5" y="-495" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::ExprNode</text>
+<text text-anchor="start" x="178" y="-480" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="191" y="-480" font-family="Helvetica,sans-Serif" font-size="10.00">span</text>
<text text-anchor="start" x="178" y="-465" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="191" y="-465" font-family="Helvetica,sans-Serif" font-size="10.00">span</text>
+<text text-anchor="start" x="191" y="-465" font-family="Helvetica,sans-Serif" font-size="10.00">ty</text>
<text text-anchor="start" x="178" y="-450" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="191" y="-450" font-family="Helvetica,sans-Serif" font-size="10.00">ty</text>
+<text text-anchor="start" x="191" y="-450" font-family="Helvetica,sans-Serif" font-size="10.00">_type_s_eq_hash_kind</text>
<text text-anchor="start" x="178" y="-435" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="191" y="-435" font-family="Helvetica,sans-Serif" font-size="10.00">_type_s_eq_hash_kind</text>
+<text text-anchor="start" x="191" y="-435" font-family="Helvetica,sans-Serif" font-size="10.00">_type_child_slots</text>
<text text-anchor="start" x="178" y="-420" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="191" y="-420" font-family="Helvetica,sans-Serif" font-size="10.00">_type_child_slots</text>
-<text text-anchor="start" x="178" y="-405" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="191" y="-405" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="191" y="-394" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO()</text>
-<text text-anchor="start" x="178" y="-379" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="191" y="-379" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
-<polygon fill="#666666" stroke="#666666" points="174,-475 174,-475 330,-475 330,-475 174,-475"/>
-<polygon fill="#666666" stroke="#666666" points="174,-415 174,-415 189,-415 189,-415 174,-415"/>
-<polygon fill="#666666" stroke="#666666" points="189,-415 189,-415 330,-415 330,-415 189,-415"/>
-<polygon fill="none" stroke="#666666" points="174,-372 174,-492 330,-492 330,-372 174,-372"/>
+<text text-anchor="start" x="191" y="-420" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="191" y="-409" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO()</text>
+<text text-anchor="start" x="178" y="-394" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="191" y="-394" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
+<polygon fill="#666666" stroke="#666666" points="174,-490 174,-490 330,-490 330,-490 174,-490"/>
+<polygon fill="#666666" stroke="#666666" points="174,-430 174,-430 189,-430 189,-430 174,-430"/>
+<polygon fill="#666666" stroke="#666666" points="189,-430 189,-430 330,-430 330,-430 189,-430"/>
+<polygon fill="none" stroke="#666666" points="174,-387 174,-507 330,-507 330,-387 174,-387"/>
</a>
</g>
</g>
@@ -173,8 +177,8 @@
<g id="edge1_Node000001_Node000002" class="edge">
<title>Node2->Node1</title>
<g id="a_edge1_Node000001_Node000002"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M252,-361.75C252,-353.34 252,-344.71 252,-336.23"/>
-<polygon fill="none" stroke="#63b8ff" points="248.5,-361.89 252,-371.89 255.5,-361.89 248.5,-361.89"/>
+<path fill="none" stroke="#63b8ff" d="M252,-376.75C252,-368.34 252,-359.71 252,-351.23"/>
+<polygon fill="none" stroke="#63b8ff" points="248.5,-376.89 252,-386.89 255.5,-376.89 248.5,-376.89"/>
</a>
</g>
</g>
@@ -182,13 +186,13 @@
<g id="Node000003" class="node">
<title>Node3</title>
<g id="a_Node000003"><a xlink:title=" ">
-<polygon fill="white" stroke="transparent" points="281,-577 223,-577 223,-528 281,-528 281,-577"/>
-<text text-anchor="start" x="228" y="-564.5" font-family="Helvetica,sans-Serif" font-size="10.00">ffi::Object</text>
+<polygon fill="white" stroke="transparent" points="281,-592 223,-592 223,-543 281,-543 281,-592"/>
+<text text-anchor="start" x="228" y="-579.5" font-family="Helvetica,sans-Serif" font-size="10.00">ffi::Object</text>
+<text text-anchor="start" x="250" y="-564.5" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
<text text-anchor="start" x="250" y="-549.5" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
-<text text-anchor="start" x="250" y="-534.5" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
+<polygon fill="#666666" stroke="#666666" points="223,-574.5 223,-574.5 281,-574.5 281,-574.5 223,-574.5"/>
<polygon fill="#666666" stroke="#666666" points="223,-559.5 223,-559.5 281,-559.5 281,-559.5 223,-559.5"/>
-<polygon fill="#666666" stroke="#666666" points="223,-544.5 223,-544.5 281,-544.5 281,-544.5 223,-544.5"/>
-<polygon fill="none" stroke="#666666" points="223,-528 223,-577 281,-577 281,-528 223,-528"/>
+<polygon fill="none" stroke="#666666" points="223,-543 223,-592 281,-592 281,-543 223,-543"/>
</a>
</g>
</g>
@@ -196,8 +200,8 @@
<g id="edge2_Node000002_Node000003" class="edge">
<title>Node3->Node2</title>
<g id="a_edge2_Node000002_Node000003"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M252,-517.59C252,-509.71 252,-501.09 252,-492.47"/>
-<polygon fill="none" stroke="#63b8ff" points="248.5,-517.8 252,-527.8 255.5,-517.8 248.5,-517.8"/>
+<path fill="none" stroke="#63b8ff" d="M252,-532.59C252,-524.71 252,-516.09 252,-507.47"/>
+<polygon fill="none" stroke="#63b8ff" points="248.5,-532.8 252,-542.8 255.5,-532.8 248.5,-532.8"/>
</a>
</g>
</g>
diff --git a/docs/reference/api/doxygen/classtvm_1_1BaseFunc__coll__graph.svg b/docs/reference/api/doxygen/classtvm_1_1BaseFunc__coll__graph.svg
index 8faeceb9764..5523553b7af 100644
--- a/docs/reference/api/doxygen/classtvm_1_1BaseFunc__coll__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1BaseFunc__coll__graph.svg
@@ -4,23 +4,25 @@
<!-- Generated by graphviz version 2.43.0 (0)
-->
<!-- Title: tvm::BaseFunc Pages: 1 -->
-<svg width="172pt" height="294pt"
- viewBox="0.00 0.00 172.00 294.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 290)">
+<svg width="193pt" height="324pt"
+ viewBox="0.00 0.00 193.00 324.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 320)">
<title>tvm::BaseFunc</title>
<!-- Node1 -->
<g id="Node000001" class="node">
<title>Node1</title>
<g id="a_Node000001"><a xlink:title="Managed reference to BaseFuncNode.">
-<polygon fill="#999999" stroke="transparent" points="164,-60 0,-60 0,0 164,0 164,-60"/>
-<text text-anchor="start" x="45.5" y="-48" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::BaseFunc</text>
-<text text-anchor="start" x="80" y="-33" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
-<text text-anchor="start" x="4" y="-18" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="17" y="-18" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
-<text text-anchor="start" x="17" y="-7" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NULLABLE()</text>
-<polygon fill="#666666" stroke="#666666" points="0,-43 0,-43 164,-43 164,-43 0,-43"/>
-<polygon fill="#666666" stroke="#666666" points="0,-28 0,-28 164,-28 164,-28 0,-28"/>
-<polygon fill="none" stroke="#666666" points="0,0 0,-60 164,-60 164,0 0,0"/>
+<polygon fill="#999999" stroke="transparent" points="185,-75 0,-75 0,0 185,0 185,-75"/>
+<text text-anchor="start" x="56.5" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::BaseFunc</text>
+<text text-anchor="start" x="91" y="-47.5" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
+<text text-anchor="start" x="4.5" y="-32.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="17.5" y="-32.5" font-family="Helvetica,sans-Serif" font-size="10.00">BaseFunc()</text>
+<text text-anchor="start" x="4.5" y="-17.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="17.5" y="-17.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
+<text text-anchor="start" x="17.5" y="-6.5" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NOTNULLABLE()</text>
+<polygon fill="#666666" stroke="#666666" points="0.5,-57.5 0.5,-57.5 185.5,-57.5 185.5,-57.5 0.5,-57.5"/>
+<polygon fill="#666666" stroke="#666666" points="0.5,-42.5 0.5,-42.5 185.5,-42.5 185.5,-42.5 0.5,-42.5"/>
+<polygon fill="none" stroke="#666666" points="0,0 0,-75 185,-75 185,0 0,0"/>
</a>
</g>
</g>
@@ -28,21 +30,23 @@
<g id="Node000002" class="node">
<title>Node2</title>
<g id="a_Node000002"><a xlink:href="classtvm_1_1Expr.html" target="_top" xlink:title="Managed reference to ExprNode.">
-<polygon fill="white" stroke="transparent" points="164,-201 0,-201 0,-96 164,-96 164,-201"/>
-<text text-anchor="start" x="58" y="-188.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::Expr</text>
-<text text-anchor="start" x="80" y="-173.5" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
-<text text-anchor="start" x="4" y="-158.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="17" y="-158.5" font-family="Helvetica,sans-Serif" font-size="10.00">operator==()</text>
-<text text-anchor="start" x="4" y="-143.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="17" y="-143.5" font-family="Helvetica,sans-Serif" font-size="10.00">operator!=()</text>
-<text text-anchor="start" x="4" y="-128.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="17" y="-128.5" font-family="Helvetica,sans-Serif" font-size="10.00">operator<()</text>
-<text text-anchor="start" x="4" y="-113.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="17" y="-113.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
-<text text-anchor="start" x="17" y="-102.5" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NULLABLE()</text>
-<polygon fill="#666666" stroke="#666666" points="0,-183.5 0,-183.5 164,-183.5 164,-183.5 0,-183.5"/>
-<polygon fill="#666666" stroke="#666666" points="0,-168.5 0,-168.5 164,-168.5 164,-168.5 0,-168.5"/>
-<polygon fill="none" stroke="#666666" points="0,-96 0,-201 164,-201 164,-96 0,-96"/>
+<polygon fill="white" stroke="transparent" points="185,-231 0,-231 0,-111 185,-111 185,-231"/>
+<text text-anchor="start" x="69" y="-219" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::Expr</text>
+<text text-anchor="start" x="91" y="-204" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
+<text text-anchor="start" x="4.5" y="-189" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="17.5" y="-189" font-family="Helvetica,sans-Serif" font-size="10.00">operator==()</text>
+<text text-anchor="start" x="4.5" y="-174" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="17.5" y="-174" font-family="Helvetica,sans-Serif" font-size="10.00">operator!=()</text>
+<text text-anchor="start" x="4.5" y="-159" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="17.5" y="-159" font-family="Helvetica,sans-Serif" font-size="10.00">operator<()</text>
+<text text-anchor="start" x="4.5" y="-144" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="17.5" y="-144" font-family="Helvetica,sans-Serif" font-size="10.00">Expr()</text>
+<text text-anchor="start" x="4.5" y="-129" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="17.5" y="-129" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
+<text text-anchor="start" x="17.5" y="-118" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NOTNULLABLE()</text>
+<polygon fill="#666666" stroke="#666666" points="0.5,-214 0.5,-214 185.5,-214 185.5,-214 0.5,-214"/>
+<polygon fill="#666666" stroke="#666666" points="0.5,-199 0.5,-199 185.5,-199 185.5,-199 0.5,-199"/>
+<polygon fill="none" stroke="#666666" points="0,-111 0,-231 185,-231 185,-111 0,-111"/>
</a>
</g>
</g>
@@ -50,8 +54,8 @@
<g id="edge1_Node000001_Node000002" class="edge">
<title>Node2->Node1</title>
<g id="a_edge1_Node000001_Node000002"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M82,-85.71C82,-76.85 82,-68.09 82,-60.27"/>
-<polygon fill="none" stroke="#63b8ff" points="78.5,-85.72 82,-95.72 85.5,-85.72 78.5,-85.72"/>
+<path fill="none" stroke="#63b8ff" d="M92.5,-100.52C92.5,-91.77 92.5,-83.11 92.5,-75.16"/>
+<polygon fill="none" stroke="#63b8ff" points="89,-100.79 92.5,-110.79 96,-100.79 89,-100.79"/>
</a>
</g>
</g>
@@ -59,13 +63,13 @@
<g id="Node000003" class="node">
<title>Node3</title>
<g id="a_Node000003"><a xlink:title=" ">
-<polygon fill="white" stroke="transparent" points="119,-286 45,-286 45,-237 119,-237 119,-286"/>
-<text text-anchor="start" x="50" y="-273.5" font-family="Helvetica,sans-Serif" font-size="10.00">ffi::ObjectRef</text>
-<text text-anchor="start" x="80" y="-258.5" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
-<text text-anchor="start" x="80" y="-243.5" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
-<polygon fill="#666666" stroke="#666666" points="45,-268.5 45,-268.5 119,-268.5 119,-268.5 45,-268.5"/>
-<polygon fill="#666666" stroke="#666666" points="45,-253.5 45,-253.5 119,-253.5 119,-253.5 45,-253.5"/>
-<polygon fill="none" stroke="#666666" points="45,-237 45,-286 119,-286 119,-237 45,-237"/>
+<polygon fill="white" stroke="transparent" points="129.5,-316 55.5,-316 55.5,-267 129.5,-267 129.5,-316"/>
+<text text-anchor="start" x="60.5" y="-303.5" font-family="Helvetica,sans-Serif" font-size="10.00">ffi::ObjectRef</text>
+<text text-anchor="start" x="90.5" y="-288.5" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
+<text text-anchor="start" x="90.5" y="-273.5" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
+<polygon fill="#666666" stroke="#666666" points="55.5,-298.5 55.5,-298.5 129.5,-298.5 129.5,-298.5 55.5,-298.5"/>
+<polygon fill="#666666" stroke="#666666" points="55.5,-283.5 55.5,-283.5 129.5,-283.5 129.5,-283.5 55.5,-283.5"/>
+<polygon fill="none" stroke="#666666" points="55.5,-267 55.5,-316 129.5,-316 129.5,-267 55.5,-267"/>
</a>
</g>
</g>
@@ -73,8 +77,8 @@
<g id="edge2_Node000002_Node000003" class="edge">
<title>Node3->Node2</title>
<g id="a_edge2_Node000002_Node000003"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M82,-226.85C82,-218.79 82,-210 82,-201.32"/>
-<polygon fill="none" stroke="#63b8ff" points="78.5,-226.96 82,-236.96 85.5,-226.96 78.5,-226.96"/>
+<path fill="none" stroke="#63b8ff" d="M92.5,-256.59C92.5,-248.71 92.5,-240.09 92.5,-231.47"/>
+<polygon fill="none" stroke="#63b8ff" points="89,-256.8 92.5,-266.8 96,-256.8 89,-256.8"/>
</a>
</g>
</g>
diff --git a/docs/reference/api/doxygen/classtvm_1_1BaseFunc__inherit__graph.svg b/docs/reference/api/doxygen/classtvm_1_1BaseFunc__inherit__graph.svg
index 0f835883332..c8a0d7c4fce 100644
--- a/docs/reference/api/doxygen/classtvm_1_1BaseFunc__inherit__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1BaseFunc__inherit__graph.svg
@@ -4,23 +4,25 @@
<!-- Generated by graphviz version 2.43.0 (0)
-->
<!-- Title: tvm::BaseFunc Pages: 1 -->
-<svg width="536pt" height="446pt"
- viewBox="0.00 0.00 536.00 446.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 442)">
+<svg width="599pt" height="491pt"
+ viewBox="0.00 0.00 599.00 491.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 487)">
<title>tvm::BaseFunc</title>
<!-- Node1 -->
<g id="Node000001" class="node">
<title>Node1</title>
<g id="a_Node000001"><a xlink:title="Managed reference to BaseFuncNode.">
-<polygon fill="#999999" stroke="transparent" points="346,-212 182,-212 182,-152 346,-152 346,-212"/>
-<text text-anchor="start" x="227.5" y="-200" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::BaseFunc</text>
-<text text-anchor="start" x="262" y="-185" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
-<text text-anchor="start" x="186" y="-170" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="199" y="-170" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
-<text text-anchor="start" x="199" y="-159" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NULLABLE()</text>
-<polygon fill="#666666" stroke="#666666" points="182,-195 182,-195 346,-195 346,-195 182,-195"/>
-<polygon fill="#666666" stroke="#666666" points="182,-180 182,-180 346,-180 346,-180 182,-180"/>
-<polygon fill="none" stroke="#666666" points="182,-152 182,-212 346,-212 346,-152 182,-152"/>
+<polygon fill="#999999" stroke="transparent" points="388,-242 203,-242 203,-167 388,-167 388,-242"/>
+<text text-anchor="start" x="259.5" y="-229.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::BaseFunc</text>
+<text text-anchor="start" x="294" y="-214.5" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
+<text text-anchor="start" x="207.5" y="-199.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="220.5" y="-199.5" font-family="Helvetica,sans-Serif" font-size="10.00">BaseFunc()</text>
+<text text-anchor="start" x="207.5" y="-184.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="220.5" y="-184.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
+<text text-anchor="start" x="220.5" y="-173.5" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NOTNULLABLE()</text>
+<polygon fill="#666666" stroke="#666666" points="203.5,-224.5 203.5,-224.5 388.5,-224.5 388.5,-224.5 203.5,-224.5"/>
+<polygon fill="#666666" stroke="#666666" points="203.5,-209.5 203.5,-209.5 388.5,-209.5 388.5,-209.5 203.5,-209.5"/>
+<polygon fill="none" stroke="#666666" points="203,-167 203,-242 388,-242 388,-167 203,-167"/>
</a>
</g>
</g>
@@ -28,22 +30,24 @@
<g id="Node000004" class="node">
<title>Node4</title>
<g id="a_Node000004"><a xlink:href="classtvm_1_1relax_1_1ExternFunc.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="transparent" points="164,-116 0,-116 0,0 164,0 164,-116"/>
-<text text-anchor="start" x="26.5" y="-104" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::ExternFunc</text>
-<text text-anchor="start" x="80" y="-89" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
-<text text-anchor="start" x="4" y="-74" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="17" y="-74" font-family="Helvetica,sans-Serif" font-size="10.00">ExternFunc()</text>
-<text text-anchor="start" x="4" y="-59" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="17" y="-59" font-family="Helvetica,sans-Serif" font-size="10.00">ExternFunc()</text>
-<text text-anchor="start" x="4" y="-44" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="17" y="-44" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
-<text text-anchor="start" x="17" y="-33" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NULLABLE()</text>
-<text text-anchor="start" x="4" y="-18" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="17" y="-18" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="17" y="-7" font-family="Helvetica,sans-Serif" font-size="10.00">_COW_METHOD()</text>
-<polygon fill="#666666" stroke="#666666" points="0,-99 0,-99 164,-99 164,-99 0,-99"/>
-<polygon fill="#666666" stroke="#666666" points="0,-84 0,-84 164,-84 164,-84 0,-84"/>
-<polygon fill="none" stroke="#666666" points="0,0 0,-116 164,-116 164,0 0,0"/>
+<polygon fill="white" stroke="transparent" points="185,-131 0,-131 0,0 185,0 185,-131"/>
+<text text-anchor="start" x="37.5" y="-118.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::ExternFunc</text>
+<text text-anchor="start" x="91" y="-103.5" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
+<text text-anchor="start" x="4.5" y="-88.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="17.5" y="-88.5" font-family="Helvetica,sans-Serif" font-size="10.00">ExternFunc()</text>
+<text text-anchor="start" x="4.5" y="-73.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="17.5" y="-73.5" font-family="Helvetica,sans-Serif" font-size="10.00">ExternFunc()</text>
+<text text-anchor="start" x="4.5" y="-58.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="17.5" y="-58.5" font-family="Helvetica,sans-Serif" font-size="10.00">ExternFunc()</text>
+<text text-anchor="start" x="4.5" y="-43.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="17.5" y="-43.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
+<text text-anchor="start" x="17.5" y="-32.5" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NOTNULLABLE()</text>
+<text text-anchor="start" x="4.5" y="-17.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="17.5" y="-17.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="17.5" y="-6.5" font-family="Helvetica,sans-Serif" font-size="10.00">_COW_METHOD()</text>
+<polygon fill="#666666" stroke="#666666" points="0.5,-113.5 0.5,-113.5 185.5,-113.5 185.5,-113.5 0.5,-113.5"/>
+<polygon fill="#666666" stroke="#666666" points="0.5,-98.5 0.5,-98.5 185.5,-98.5 185.5,-98.5 0.5,-98.5"/>
+<polygon fill="none" stroke="#666666" points="0,0 0,-131 185,-131 185,0 0,0"/>
</a>
</g>
</g>
@@ -51,8 +55,8 @@
<g id="edge3_Node000001_Node000004" class="edge">
<title>Node1->Node4</title>
<g id="a_edge3_Node000001_Node000004"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M211.84,-146.04C196.94,-136.05 180.32,-124.91 164.08,-114.02"/>
-<polygon fill="none" stroke="#63b8ff" points="210.15,-149.12 220.41,-151.78 214.05,-143.3 210.15,-149.12"/>
+<path fill="none" stroke="#63b8ff" d="M232.69,-161.11C217.67,-150.98 201.33,-139.95 185.28,-129.11"/>
+<polygon fill="none" stroke="#63b8ff" points="231.12,-164.27 241.37,-166.97 235.04,-158.47 231.12,-164.27"/>
</a>
</g>
</g>
@@ -60,22 +64,24 @@
<g id="Node000005" class="node">
<title>Node5</title>
<g id="a_Node000005"><a xlink:href="classtvm_1_1relax_1_1Function.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="transparent" points="346,-116 182,-116 182,0 346,0 346,-116"/>
-<text text-anchor="start" x="215" y="-104" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::Function</text>
-<text text-anchor="start" x="262" y="-89" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
-<text text-anchor="start" x="186" y="-74" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="199" y="-74" font-family="Helvetica,sans-Serif" font-size="10.00">Function()</text>
-<text text-anchor="start" x="186" y="-59" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="199" y="-59" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
-<text text-anchor="start" x="199" y="-48" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NULLABLE()</text>
-<text text-anchor="start" x="186" y="-33" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="199" y="-33" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="199" y="-22" font-family="Helvetica,sans-Serif" font-size="10.00">_COW_METHOD()</text>
-<text text-anchor="start" x="186" y="-7" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="199" y="-7" font-family="Helvetica,sans-Serif" font-size="10.00">CreateEmpty()</text>
-<polygon fill="#666666" stroke="#666666" points="182,-99 182,-99 346,-99 346,-99 182,-99"/>
-<polygon fill="#666666" stroke="#666666" points="182,-84 182,-84 346,-84 346,-84 182,-84"/>
-<polygon fill="none" stroke="#666666" points="182,0 182,-116 346,-116 346,0 182,0"/>
+<polygon fill="white" stroke="transparent" points="388,-131 203,-131 203,0 388,0 388,-131"/>
+<text text-anchor="start" x="247" y="-118.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::Function</text>
+<text text-anchor="start" x="294" y="-103.5" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
+<text text-anchor="start" x="207.5" y="-88.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="220.5" y="-88.5" font-family="Helvetica,sans-Serif" font-size="10.00">Function()</text>
+<text text-anchor="start" x="207.5" y="-73.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="220.5" y="-73.5" font-family="Helvetica,sans-Serif" font-size="10.00">Function()</text>
+<text text-anchor="start" x="207.5" y="-58.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="220.5" y="-58.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
+<text text-anchor="start" x="220.5" y="-47.5" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NOTNULLABLE()</text>
+<text text-anchor="start" x="207.5" y="-32.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="220.5" y="-32.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="220.5" y="-21.5" font-family="Helvetica,sans-Serif" font-size="10.00">_COW_METHOD()</text>
+<text text-anchor="start" x="207.5" y="-6.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="220.5" y="-6.5" font-family="Helvetica,sans-Serif" font-size="10.00">CreateEmpty()</text>
+<polygon fill="#666666" stroke="#666666" points="203.5,-113.5 203.5,-113.5 388.5,-113.5 388.5,-113.5 203.5,-113.5"/>
+<polygon fill="#666666" stroke="#666666" points="203.5,-98.5 203.5,-98.5 388.5,-98.5 388.5,-98.5 203.5,-98.5"/>
+<polygon fill="none" stroke="#666666" points="203,0 203,-131 388,-131 388,0 203,0"/>
</a>
</g>
</g>
@@ -83,8 +89,8 @@
<g id="edge4_Node000001_Node000005" class="edge">
<title>Node1->Node5</title>
<g id="a_edge4_Node000001_Node000005"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M264,-141.54C264,-133.45 264,-124.78 264,-116.21"/>
-<polygon fill="none" stroke="#63b8ff" points="260.5,-141.78 264,-151.78 267.5,-141.78 260.5,-141.78"/>
+<path fill="none" stroke="#63b8ff" d="M295.5,-156.64C295.5,-148.41 295.5,-139.7 295.5,-131.08"/>
+<polygon fill="none" stroke="#63b8ff" points="292,-156.79 295.5,-166.79 299,-156.79 292,-156.79"/>
</a>
</g>
</g>
@@ -92,20 +98,22 @@
<g id="Node000006" class="node">
<title>Node6</title>
<g id="a_Node000006"><a xlink:href="classtvm_1_1tirx_1_1PrimFunc.html" target="_top" xlink:title="Managed reference to PrimFuncNode.">
-<polygon fill="white" stroke="transparent" points="528,-108.5 364,-108.5 364,-7.5 528,-7.5 528,-108.5"/>
-<text text-anchor="start" x="399" y="-96" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::tirx::PrimFunc</text>
-<text text-anchor="start" x="444" y="-81" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
-<text text-anchor="start" x="368" y="-66" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="381" y="-66" font-family="Helvetica,sans-Serif" font-size="10.00">PrimFunc()</text>
-<text text-anchor="start" x="368" y="-51" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="381" y="-51" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
-<text text-anchor="start" x="381" y="-40" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NULLABLE()</text>
-<text text-anchor="start" x="368" y="-25" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="381" y="-25" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="381" y="-14" font-family="Helvetica,sans-Serif" font-size="10.00">_COW_METHOD()</text>
-<polygon fill="#666666" stroke="#666666" points="364,-91 364,-91 528,-91 528,-91 364,-91"/>
-<polygon fill="#666666" stroke="#666666" points="364,-76 364,-76 528,-76 528,-76 364,-76"/>
-<polygon fill="none" stroke="#666666" points="364,-7.5 364,-108.5 528,-108.5 528,-7.5 364,-7.5"/>
+<polygon fill="white" stroke="transparent" points="591,-123.5 406,-123.5 406,-7.5 591,-7.5 591,-123.5"/>
+<text text-anchor="start" x="452" y="-111.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::tirx::PrimFunc</text>
+<text text-anchor="start" x="497" y="-96.5" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
+<text text-anchor="start" x="410.5" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="423.5" y="-81.5" font-family="Helvetica,sans-Serif" font-size="10.00">PrimFunc()</text>
+<text text-anchor="start" x="410.5" y="-66.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="423.5" y="-66.5" font-family="Helvetica,sans-Serif" font-size="10.00">PrimFunc()</text>
+<text text-anchor="start" x="410.5" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="423.5" y="-51.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
+<text text-anchor="start" x="423.5" y="-40.5" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NOTNULLABLE()</text>
+<text text-anchor="start" x="410.5" y="-25.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="423.5" y="-25.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="423.5" y="-14.5" font-family="Helvetica,sans-Serif" font-size="10.00">_COW_METHOD()</text>
+<polygon fill="#666666" stroke="#666666" points="406.5,-106.5 406.5,-106.5 591.5,-106.5 591.5,-106.5 406.5,-106.5"/>
+<polygon fill="#666666" stroke="#666666" points="406.5,-91.5 406.5,-91.5 591.5,-91.5 591.5,-91.5 406.5,-91.5"/>
+<polygon fill="none" stroke="#666666" points="406,-7.5 406,-123.5 591,-123.5 591,-7.5 406,-7.5"/>
</a>
</g>
</g>
@@ -113,8 +121,8 @@
<g id="edge5_Node000001_Node000006" class="edge">
<title>Node1->Node6</title>
<g id="a_edge5_Node000001_Node000006"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M315.93,-146.19C333.33,-134.53 353.08,-121.29 371.84,-108.71"/>
-<polygon fill="none" stroke="#63b8ff" points="313.95,-143.3 307.59,-151.78 317.85,-149.12 313.95,-143.3"/>
+<path fill="none" stroke="#63b8ff" d="M358.13,-161.23C375.76,-149.33 395.23,-136.19 413.92,-123.58"/>
+<polygon fill="none" stroke="#63b8ff" points="355.96,-158.47 349.63,-166.97 359.88,-164.27 355.96,-158.47"/>
</a>
</g>
</g>
@@ -122,21 +130,23 @@
<g id="Node000002" class="node">
<title>Node2</title>
<g id="a_Node000002"><a xlink:href="classtvm_1_1Expr.html" target="_top" xlink:title="Managed reference to ExprNode.">
-<polygon fill="white" stroke="transparent" points="346,-353 182,-353 182,-248 346,-248 346,-353"/>
-<text text-anchor="start" x="240" y="-340.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::Expr</text>
-<text text-anchor="start" x="262" y="-325.5" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
-<text text-anchor="start" x="186" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="199" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">operator==()</text>
-<text text-anchor="start" x="186" y="-295.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="199" y="-295.5" font-family="Helvetica,sans-Serif" font-size="10.00">operator!=()</text>
-<text text-anchor="start" x="186" y="-280.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="199" y="-280.5" font-family="Helvetica,sans-Serif" font-size="10.00">operator<()</text>
-<text text-anchor="start" x="186" y="-265.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="199" y="-265.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
-<text text-anchor="start" x="199" y="-254.5" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NULLABLE()</text>
-<polygon fill="#666666" stroke="#666666" points="182,-335.5 182,-335.5 346,-335.5 346,-335.5 182,-335.5"/>
-<polygon fill="#666666" stroke="#666666" points="182,-320.5 182,-320.5 346,-320.5 346,-320.5 182,-320.5"/>
-<polygon fill="none" stroke="#666666" points="182,-248 182,-353 346,-353 346,-248 182,-248"/>
+<polygon fill="white" stroke="transparent" points="388,-398 203,-398 203,-278 388,-278 388,-398"/>
+<text text-anchor="start" x="272" y="-386" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::Expr</text>
+<text text-anchor="start" x="294" y="-371" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
+<text text-anchor="start" x="207.5" y="-356" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="220.5" y="-356" font-family="Helvetica,sans-Serif" font-size="10.00">operator==()</text>
+<text text-anchor="start" x="207.5" y="-341" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="220.5" y="-341" font-family="Helvetica,sans-Serif" font-size="10.00">operator!=()</text>
+<text text-anchor="start" x="207.5" y="-326" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="220.5" y="-326" font-family="Helvetica,sans-Serif" font-size="10.00">operator<()</text>
+<text text-anchor="start" x="207.5" y="-311" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="220.5" y="-311" font-family="Helvetica,sans-Serif" font-size="10.00">Expr()</text>
+<text text-anchor="start" x="207.5" y="-296" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="220.5" y="-296" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
+<text text-anchor="start" x="220.5" y="-285" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NOTNULLABLE()</text>
+<polygon fill="#666666" stroke="#666666" points="203.5,-381 203.5,-381 388.5,-381 388.5,-381 203.5,-381"/>
+<polygon fill="#666666" stroke="#666666" points="203.5,-366 203.5,-366 388.5,-366 388.5,-366 203.5,-366"/>
+<polygon fill="none" stroke="#666666" points="203,-278 203,-398 388,-398 388,-278 203,-278"/>
</a>
</g>
</g>
@@ -144,8 +154,8 @@
<g id="edge1_Node000001_Node000002" class="edge">
<title>Node2->Node1</title>
<g id="a_edge1_Node000001_Node000002"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M264,-237.71C264,-228.85 264,-220.09 264,-212.27"/>
-<polygon fill="none" stroke="#63b8ff" points="260.5,-237.72 264,-247.72 267.5,-237.72 260.5,-237.72"/>
+<path fill="none" stroke="#63b8ff" d="M295.5,-267.52C295.5,-258.77 295.5,-250.11 295.5,-242.16"/>
+<polygon fill="none" stroke="#63b8ff" points="292,-267.79 295.5,-277.79 299,-267.79 292,-267.79"/>
</a>
</g>
</g>
@@ -153,13 +163,13 @@
<g id="Node000003" class="node">
<title>Node3</title>
<g id="a_Node000003"><a xlink:title=" ">
-<polygon fill="white" stroke="transparent" points="301,-438 227,-438 227,-389 301,-389 301,-438"/>
-<text text-anchor="start" x="232" y="-425.5" font-family="Helvetica,sans-Serif" font-size="10.00">ffi::ObjectRef</text>
-<text text-anchor="start" x="262" y="-410.5" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
-<text text-anchor="start" x="262" y="-395.5" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
-<polygon fill="#666666" stroke="#666666" points="227,-420.5 227,-420.5 301,-420.5 301,-420.5 227,-420.5"/>
-<polygon fill="#666666" stroke="#666666" points="227,-405.5 227,-405.5 301,-405.5 301,-405.5 227,-405.5"/>
-<polygon fill="none" stroke="#666666" points="227,-389 227,-438 301,-438 301,-389 227,-389"/>
+<polygon fill="white" stroke="transparent" points="332.5,-483 258.5,-483 258.5,-434 332.5,-434 332.5,-483"/>
+<text text-anchor="start" x="263.5" y="-470.5" font-family="Helvetica,sans-Serif" font-size="10.00">ffi::ObjectRef</text>
+<text text-anchor="start" x="293.5" y="-455.5" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
+<text text-anchor="start" x="293.5" y="-440.5" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
+<polygon fill="#666666" stroke="#666666" points="258.5,-465.5 258.5,-465.5 332.5,-465.5 332.5,-465.5 258.5,-465.5"/>
+<polygon fill="#666666" stroke="#666666" points="258.5,-450.5 258.5,-450.5 332.5,-450.5 332.5,-450.5 258.5,-450.5"/>
+<polygon fill="none" stroke="#666666" points="258.5,-434 258.5,-483 332.5,-483 332.5,-434 258.5,-434"/>
</a>
</g>
</g>
@@ -167,8 +177,8 @@
<g id="edge2_Node000002_Node000003" class="edge">
<title>Node3->Node2</title>
<g id="a_edge2_Node000002_Node000003"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M264,-378.85C264,-370.79 264,-362 264,-353.32"/>
-<polygon fill="none" stroke="#63b8ff" points="260.5,-378.96 264,-388.96 267.5,-378.96 260.5,-378.96"/>
+<path fill="none" stroke="#63b8ff" d="M295.5,-423.59C295.5,-415.71 295.5,-407.09 295.5,-398.47"/>
+<polygon fill="none" stroke="#63b8ff" points="292,-423.8 295.5,-433.8 299,-423.8 292,-423.8"/>
</a>
</g>
</g>
diff --git a/docs/reference/api/doxygen/classtvm_1_1Call-members.html b/docs/reference/api/doxygen/classtvm_1_1Call-members.html
index aafcc83ca97..23d64b20ddc 100644
--- a/docs/reference/api/doxygen/classtvm_1_1Call-members.html
+++ b/docs/reference/api/doxygen/classtvm_1_1Call-members.html
@@ -80,13 +80,15 @@ $(function() {
<p>This is the complete list of members for <a class="el" href="classtvm_1_1Call.html">tvm::Call</a>, including all inherited members.</p>
<table class="directory">
<tr class="even"><td class="entry"><a class="el" href="classtvm_1_1Call.html#a3f3f3217c8479486d1f71664ce6860fc">Call</a>(Type ret_ty, Expr op, ffi::Array< Expr > args, Attrs attrs=Attrs(), ffi::Array< Type > ty_args=ffi::Array< Type >(), Span span=Span())</td><td class="entry"><a class="el" href="classtvm_1_1Call.html">tvm::Call</a></td><td class="entry"></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classtvm_1_1Call.html#a26304eac4f5299ac4b4862105a9f5cd5">Call</a>(ffi::ObjectPtr< CallNode > node)</td><td class="entry"><a class="el" href="classtvm_1_1Call.html">tvm::Call</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1Expr.html#aad84c3380b07b63427dda3697a78b269">Expr</a>(ffi::ObjectPtr< ExprNode > node)</td><td class="entry"><a class="el" href="classtvm_1_1Expr.html">tvm::Expr</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classtvm_1_1Expr.html#a86bd9da75268e479e3bbe61729dce8ac">operator!=</a>(const Expr &other) const =delete</td><td class="entry"><a class="el" href="classtvm_1_1Expr.html">tvm::Expr</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classtvm_1_1Expr.html#afb14020d9ae652a64a6f15dcba073c0e">operator<</a>(const Expr &other) const =delete</td><td class="entry"><a class="el" href="classtvm_1_1Expr.html">tvm::Expr</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classtvm_1_1Expr.html#a637231cfc91838b8f14745ac199b5fbf">operator==</a>(const Expr &other) const =delete</td><td class="entry"><a class="el" href="classtvm_1_1Expr.html">tvm::Expr</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classtvm_1_1Call.html#a2529a07149ca02f531a3956a3214e4f3">ReinferType</a>(const CallNode *call)</td><td class="entry"><a class="el" href="classtvm_1_1Call.html">tvm::Call</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classtvm_1_1Call.html#ac7f8d11aa54e549a1154d2d2bd25c461">TVM_DEFINE_OBJECT_REF_COW_METHOD</a>(CallNode)</td><td class="entry"><a class="el" href="classtvm_1_1Call.html">tvm::Call</a></td><td class="entry"></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1Call.html#a4bdf27cf6857f06eacb0c3fc75d72eb3">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE</a>(Call, Expr, CallNode)</td><td class="entry"><a class="el" href="classtvm_1_1Call.html">tvm::Call</a></td><td class="entry"></td></tr>
- <tr class="odd"><td class="entry"><a class="el" href="classtvm_1_1Expr.html#a081d3512d899e352e81e8eda6385c444">tvm::Expr::TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE</a>(Expr, ffi::ObjectRef, ExprNode)</td><td class="entry"><a class="el" href="classtvm_1_1Expr.html">tvm::Expr</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1Call.html#a0f4ec23aeb4d11f55841170c3293e37a">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NOTNULLABLE</a>(Call, Expr, CallNode)</td><td class="entry"><a class="el" href="classtvm_1_1Call.html">tvm::Call</a></td><td class="entry"></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classtvm_1_1Expr.html#a26775d381ee6e7c7bb65b8a7320f5b87">tvm::Expr::TVM_FFI_DEFINE_OBJECT_REF_METHODS_NOTNULLABLE</a>(Expr, ffi::ObjectRef, ExprNode)</td><td class="entry"><a class="el" href="classtvm_1_1Expr.html">tvm::Expr</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classtvm_1_1Call.html#a717eff240dbf83fac263bb06dac3253c">Unchecked</a>(Type ret_ty, Expr op, ffi::Array< Expr > args, Attrs attrs=Attrs(), ffi::Array< Type > ty_args=ffi::Array< Type >(), Span span=Span())</td><td class="entry"><a class="el" href="classtvm_1_1Call.html">tvm::Call</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
diff --git a/docs/reference/api/doxygen/classtvm_1_1Call.html b/docs/reference/api/doxygen/classtvm_1_1Call.html
index b791002014c..da4d5008e77 100644
--- a/docs/reference/api/doxygen/classtvm_1_1Call.html
+++ b/docs/reference/api/doxygen/classtvm_1_1Call.html
@@ -88,20 +88,22 @@ $(function() {
<div class="dynheader">
Inheritance diagram for tvm::Call:</div>
<div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1Call__inherit__graph.svg" width="230" height="487"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
+<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1Call__inherit__graph.svg" width="258" height="527"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
<div class="dynheader">
Collaboration diagram for tvm::Call:</div>
<div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1Call__coll__graph.svg" width="230" height="487"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
+<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1Call__coll__graph.svg" width="258" height="527"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a3f3f3217c8479486d1f71664ce6860fc" id="r_a3f3f3217c8479486d1f71664ce6860fc"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1Call.html#a3f3f3217c8479486d1f71664ce6860fc">Call</a> (<a class="el" href="classtvm_1_1Type.html">Type</a> ret_ty, <a class="el" href="classtvm_1_1Expr.html">Expr</a> op, ffi::Array< <a class="el" href="classtvm_1_1Expr.html">Expr</a> > args, <a class="el" [...]
<tr class="separator:a3f3f3217c8479486d1f71664ce6860fc"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a4bdf27cf6857f06eacb0c3fc75d72eb3" id="r_a4bdf27cf6857f06eacb0c3fc75d72eb3"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1Call.html#a4bdf27cf6857f06eacb0c3fc75d72eb3">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE</a> (<a class="el" href="classtvm_1_1Call.html">Call</a>, <a class="el" href="classtvm_1_1Expr.html">Expr</a>, <a class="el" href="classtvm_1_1CallNode.html">CallNode</a>)</td></tr>
-<tr class="separator:a4bdf27cf6857f06eacb0c3fc75d72eb3"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a26304eac4f5299ac4b4862105a9f5cd5" id="r_a26304eac4f5299ac4b4862105a9f5cd5"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1Call.html#a26304eac4f5299ac4b4862105a9f5cd5">Call</a> (ffi::ObjectPtr< <a class="el" href="classtvm_1_1CallNode.html">CallNode</a> > node)</td></tr>
+<tr class="separator:a26304eac4f5299ac4b4862105a9f5cd5"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a0f4ec23aeb4d11f55841170c3293e37a" id="r_a0f4ec23aeb4d11f55841170c3293e37a"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1Call.html#a0f4ec23aeb4d11f55841170c3293e37a">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NOTNULLABLE</a> (<a class="el" href="classtvm_1_1Call.html">Call</a>, <a class="el" href="classtvm_1_1Expr.html">Expr</a>, <a class="el" href="classtvm_1_1CallNode.html">CallNode</a>) [...]
+<tr class="separator:a0f4ec23aeb4d11f55841170c3293e37a"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ac7f8d11aa54e549a1154d2d2bd25c461" id="r_ac7f8d11aa54e549a1154d2d2bd25c461"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1Call.html#ac7f8d11aa54e549a1154d2d2bd25c461">TVM_DEFINE_OBJECT_REF_COW_METHOD</a> (<a class="el" href="classtvm_1_1CallNode.html">CallNode</a>)</td></tr>
<tr class="separator:ac7f8d11aa54e549a1154d2d2bd25c461"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="inherit_header pub_methods_classtvm_1_1Expr"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classtvm_1_1Expr')"><img src="closed.png" alt="-"/> Public Member Functions inherited from <a class="el" href="classtvm_1_1Expr.html">tvm::Expr</a></td></tr>
@@ -111,8 +113,10 @@ Public Member Functions</h2></td></tr>
<tr class="separator:a86bd9da75268e479e3bbe61729dce8ac inherit pub_methods_classtvm_1_1Expr"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:afb14020d9ae652a64a6f15dcba073c0e inherit pub_methods_classtvm_1_1Expr" id="r_afb14020d9ae652a64a6f15dcba073c0e"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1Expr.html#afb14020d9ae652a64a6f15dcba073c0e">operator<</a> (const <a class="el" href="classtvm_1_1Expr.html">Expr</a> &other) const =delete</td></tr>
<tr class="separator:afb14020d9ae652a64a6f15dcba073c0e inherit pub_methods_classtvm_1_1Expr"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a081d3512d899e352e81e8eda6385c444 inherit pub_methods_classtvm_1_1Expr" id="r_a081d3512d899e352e81e8eda6385c444"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1Expr.html#a081d3512d899e352e81e8eda6385c444">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE</a> (<a class="el" href="classtvm_1_1Expr.html">Expr</a>, ffi::ObjectRef, <a class="el" href="classtvm_1_1ExprNode.html">ExprNode</a>)</td></tr>
-<tr class="separator:a081d3512d899e352e81e8eda6385c444 inherit pub_methods_classtvm_1_1Expr"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:aad84c3380b07b63427dda3697a78b269 inherit pub_methods_classtvm_1_1Expr" id="r_aad84c3380b07b63427dda3697a78b269"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1Expr.html#aad84c3380b07b63427dda3697a78b269">Expr</a> (ffi::ObjectPtr< <a class="el" href="classtvm_1_1ExprNode.html">ExprNode</a> > node)</td></tr>
+<tr class="separator:aad84c3380b07b63427dda3697a78b269 inherit pub_methods_classtvm_1_1Expr"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a26775d381ee6e7c7bb65b8a7320f5b87 inherit pub_methods_classtvm_1_1Expr" id="r_a26775d381ee6e7c7bb65b8a7320f5b87"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1Expr.html#a26775d381ee6e7c7bb65b8a7320f5b87">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NOTNULLABLE</a> (<a class="el" href="classtvm_1_1Expr.html">Expr</a>, ffi::ObjectRef, <a class="el" href="classtvm_1_1ExprNode.html">ExprNode</a>) [...]
+<tr class="separator:a26775d381ee6e7c7bb65b8a7320f5b87 inherit pub_methods_classtvm_1_1Expr"><td class="memSeparator" colspan="2"> </td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-static-methods" name="pub-static-methods"></a>
Static Public Member Functions</h2></td></tr>
@@ -127,7 +131,7 @@ Static Public Member Functions</h2></td></tr>
<div class="textblock"><p>Managed reference to <a class="el" href="classtvm_1_1CallNode.html" title="Call corresponds to callable invocation.">CallNode</a>. </p>
</div><h2 class="groupheader">Constructor & Destructor Documentation</h2>
<a id="a3f3f3217c8479486d1f71664ce6860fc" name="a3f3f3217c8479486d1f71664ce6860fc"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a3f3f3217c8479486d1f71664ce6860fc">◆ </a></span>Call()</h2>
+<h2 class="memtitle"><span class="permalink"><a href="#a3f3f3217c8479486d1f71664ce6860fc">◆ </a></span>Call() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
@@ -176,6 +180,32 @@ Static Public Member Functions</h2></td></tr>
</table>
</div><div class="memdoc">
+</div>
+</div>
+<a id="a26304eac4f5299ac4b4862105a9f5cd5" name="a26304eac4f5299ac4b4862105a9f5cd5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a26304eac4f5299ac4b4862105a9f5cd5">◆ </a></span>Call() <span class="overload">[2/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">tvm::Call::Call </td>
+ <td>(</td>
+ <td class="paramtype">ffi::ObjectPtr< <a class="el" href="classtvm_1_1CallNode.html">CallNode</a> > </td>
+ <td class="paramname"><em>node</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">explicit</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
@@ -226,14 +256,14 @@ Static Public Member Functions</h2></td></tr>
</div>
</div>
-<a id="a4bdf27cf6857f06eacb0c3fc75d72eb3" name="a4bdf27cf6857f06eacb0c3fc75d72eb3"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a4bdf27cf6857f06eacb0c3fc75d72eb3">◆ </a></span>TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE()</h2>
+<a id="a0f4ec23aeb4d11f55841170c3293e37a" name="a0f4ec23aeb4d11f55841170c3293e37a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a0f4ec23aeb4d11f55841170c3293e37a">◆ </a></span>TVM_FFI_DEFINE_OBJECT_REF_METHODS_NOTNULLABLE()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">tvm::Call::TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE </td>
+ <td class="memname">tvm::Call::TVM_FFI_DEFINE_OBJECT_REF_METHODS_NOTNULLABLE </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classtvm_1_1Call.html">Call</a> </td>
<td class="paramname">, </td>
diff --git a/docs/reference/api/doxygen/classtvm_1_1CallNode-members.html b/docs/reference/api/doxygen/classtvm_1_1CallNode-members.html
index 24aa80e76ab..b50172caf5c 100644
--- a/docs/reference/api/doxygen/classtvm_1_1CallNode-members.html
+++ b/docs/reference/api/doxygen/classtvm_1_1CallNode-members.html
@@ -83,6 +83,8 @@ $(function() {
<tr class="odd"><td class="entry"><a class="el" href="classtvm_1_1ExprNode.html#a549f3165583edbbc9a13c6d796e7b298">_type_s_eq_hash_kind</a></td><td class="entry"><a class="el" href="classtvm_1_1ExprNode.html">tvm::ExprNode</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classtvm_1_1CallNode.html#a323af62ed5243b5db00eb1832f842a1c">args</a></td><td class="entry"><a class="el" href="classtvm_1_1CallNode.html">tvm::CallNode</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classtvm_1_1CallNode.html#a188d4ff2d95ff5c39476af05989bc947">attrs</a></td><td class="entry"><a class="el" href="classtvm_1_1CallNode.html">tvm::CallNode</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1CallNode.html#adf837eb3faa5535c97311eb0f2ccb0e0">CallNode</a>(Expr op)</td><td class="entry"><a class="el" href="classtvm_1_1CallNode.html">tvm::CallNode</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classtvm_1_1CallNode.html#a57b4185bc31d73256e36406cba621bc5">CallNode</a>(ffi::UnsafeInit tag)</td><td class="entry"><a class="el" href="classtvm_1_1CallNode.html">tvm::CallNode</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classtvm_1_1CallNode.html#ac3dfcf0a89d8d88438e3d691fcbb1c5b">op</a></td><td class="entry"><a class="el" href="classtvm_1_1CallNode.html">tvm::CallNode</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classtvm_1_1CallNode.html#ade12b95584a1a83b26be6a399eda2e2c">RegisterReflection</a>()</td><td class="entry"><a class="el" href="classtvm_1_1CallNode.html">tvm::CallNode</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_1ExprNode.html#a52b366cd48d311f2406d86d92991c834">span</a></td><td class="entry"><a class="el" href="classtvm_1_1ExprNode.html">tvm::ExprNode</a></td><td class="entry"><span class="mlabel">mutable</span></td></tr>
diff --git a/docs/reference/api/doxygen/classtvm_1_1CallNode.html b/docs/reference/api/doxygen/classtvm_1_1CallNode.html
index 74bdc65d37a..7aaba210b7c 100644
--- a/docs/reference/api/doxygen/classtvm_1_1CallNode.html
+++ b/docs/reference/api/doxygen/classtvm_1_1CallNode.html
@@ -89,16 +89,20 @@ $(function() {
<div class="dynheader">
Inheritance diagram for tvm::CallNode:</div>
<div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1CallNode__inherit__graph.svg" width="219" height="492"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
+<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1CallNode__inherit__graph.svg" width="219" height="532"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
<div class="dynheader">
Collaboration diagram for tvm::CallNode:</div>
<div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1CallNode__coll__graph.svg" width="799" height="723"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
+<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1CallNode__coll__graph.svg" width="807" height="783"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
+<tr class="memitem:adf837eb3faa5535c97311eb0f2ccb0e0" id="r_adf837eb3faa5535c97311eb0f2ccb0e0"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1CallNode.html#adf837eb3faa5535c97311eb0f2ccb0e0">CallNode</a> (<a class="el" href="classtvm_1_1Expr.html">Expr</a> <a class="el" href="classtvm_1_1CallNode.html#ac3dfcf0a89d8d88438e3d691fcbb1c5b">op</a>)</td></tr>
+<tr class="separator:adf837eb3faa5535c97311eb0f2ccb0e0"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a57b4185bc31d73256e36406cba621bc5" id="r_a57b4185bc31d73256e36406cba621bc5"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1CallNode.html#a57b4185bc31d73256e36406cba621bc5">CallNode</a> (ffi::UnsafeInit tag)</td></tr>
+<tr class="separator:a57b4185bc31d73256e36406cba621bc5"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a42c51a5b545660d81ba92cb39ad4382c" id="r_a42c51a5b545660d81ba92cb39ad4382c"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1CallNode.html#a42c51a5b545660d81ba92cb39ad4382c">TVM_FFI_DECLARE_OBJECT_INFO_FINAL</a> ("ir.Call", <a class="el" href="classtvm_1_1CallNode.html">CallNode</a>, <a class="el" href="classtvm_1_1ExprNode.html">ExprNode</a>)</td></tr>
<tr class="separator:a42c51a5b545660d81ba92cb39ad4382c"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="inherit_header pub_methods_classtvm_1_1ExprNode"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classtvm_1_1ExprNode')"><img src="closed.png" alt="-"/> Public Member Functions inherited from <a class="el" href="classtvm_1_1ExprNode.html">tvm::ExprNode</a></td></tr>
@@ -145,7 +149,60 @@ Additional Inherited Members</h2></td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p><a class="el" href="classtvm_1_1Call.html" title="Managed reference to CallNode.">Call</a> corresponds to callable invocation. </p>
-</div><h2 class="groupheader">Member Function Documentation</h2>
+</div><h2 class="groupheader">Constructor & Destructor Documentation</h2>
+<a id="adf837eb3faa5535c97311eb0f2ccb0e0" name="adf837eb3faa5535c97311eb0f2ccb0e0"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#adf837eb3faa5535c97311eb0f2ccb0e0">◆ </a></span>CallNode() <span class="overload">[1/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">tvm::CallNode::CallNode </td>
+ <td>(</td>
+ <td class="paramtype"><a class="el" href="classtvm_1_1Expr.html">Expr</a> </td>
+ <td class="paramname"><em>op</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">explicit</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<a id="a57b4185bc31d73256e36406cba621bc5" name="a57b4185bc31d73256e36406cba621bc5"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a57b4185bc31d73256e36406cba621bc5">◆ </a></span>CallNode() <span class="overload">[2/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">tvm::CallNode::CallNode </td>
+ <td>(</td>
+ <td class="paramtype">ffi::UnsafeInit </td>
+ <td class="paramname"><em>tag</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">explicit</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
<a id="ade12b95584a1a83b26be6a399eda2e2c" name="ade12b95584a1a83b26be6a399eda2e2c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ade12b95584a1a83b26be6a399eda2e2c">◆ </a></span>RegisterReflection()</h2>
diff --git a/docs/reference/api/doxygen/classtvm_1_1CallNode__coll__graph.svg b/docs/reference/api/doxygen/classtvm_1_1CallNode__coll__graph.svg
index 12335a978f9..2b12aa1e4b5 100644
--- a/docs/reference/api/doxygen/classtvm_1_1CallNode__coll__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1CallNode__coll__graph.svg
@@ -4,29 +4,33 @@
<!-- Generated by graphviz version 2.43.0 (0)
-->
<!-- Title: tvm::CallNode Pages: 1 -->
-<svg width="599pt" height="542pt"
- viewBox="0.00 0.00 599.00 542.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 538)">
+<svg width="605pt" height="587pt"
+ viewBox="0.00 0.00 605.00 587.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 583)">
<title>tvm::CallNode</title>
<!-- Node1 -->
<g id="Node000001" class="node">
<title>Node1</title>
<g id="a_Node000001"><a xlink:title="Call corresponds to callable invocation.">
-<polygon fill="#999999" stroke="transparent" points="418,-90 262,-90 262,0 418,0 418,-90"/>
-<text text-anchor="start" x="305" y="-78" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::CallNode</text>
-<text text-anchor="start" x="266" y="-63" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="279" y="-63" font-family="Helvetica,sans-Serif" font-size="10.00">args</text>
-<text text-anchor="start" x="266" y="-48" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="279" y="-48" font-family="Helvetica,sans-Serif" font-size="10.00">ty_args</text>
-<text text-anchor="start" x="266" y="-33" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="279" y="-33" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="279" y="-22" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
-<text text-anchor="start" x="266" y="-7" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="279" y="-7" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
-<polygon fill="#666666" stroke="#666666" points="262,-73 262,-73 418,-73 418,-73 262,-73"/>
-<polygon fill="#666666" stroke="#666666" points="262,-43 262,-43 277,-43 277,-43 262,-43"/>
-<polygon fill="#666666" stroke="#666666" points="277,-43 277,-43 418,-43 418,-43 277,-43"/>
-<polygon fill="none" stroke="#666666" points="262,0 262,-90 418,-90 418,0 262,0"/>
+<polygon fill="#999999" stroke="transparent" points="413,-120 257,-120 257,0 413,0 413,-120"/>
+<text text-anchor="start" x="300" y="-108" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::CallNode</text>
+<text text-anchor="start" x="261" y="-93" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="274" y="-93" font-family="Helvetica,sans-Serif" font-size="10.00">args</text>
+<text text-anchor="start" x="261" y="-78" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="274" y="-78" font-family="Helvetica,sans-Serif" font-size="10.00">ty_args</text>
+<text text-anchor="start" x="261" y="-63" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="274" y="-63" font-family="Helvetica,sans-Serif" font-size="10.00">CallNode()</text>
+<text text-anchor="start" x="261" y="-48" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="274" y="-48" font-family="Helvetica,sans-Serif" font-size="10.00">CallNode()</text>
+<text text-anchor="start" x="261" y="-33" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="274" y="-33" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="274" y="-22" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
+<text text-anchor="start" x="261" y="-7" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="274" y="-7" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
+<polygon fill="#666666" stroke="#666666" points="257,-103 257,-103 413,-103 413,-103 257,-103"/>
+<polygon fill="#666666" stroke="#666666" points="257,-73 257,-73 272,-73 272,-73 257,-73"/>
+<polygon fill="#666666" stroke="#666666" points="272,-73 272,-73 413,-73 413,-73 272,-73"/>
+<polygon fill="none" stroke="#666666" points="257,0 257,-120 413,-120 413,0 257,0"/>
</a>
</g>
</g>
@@ -34,21 +38,21 @@
<g id="Node000002" class="node">
<title>Node2</title>
<g id="a_Node000002"><a xlink:href="classtvm_1_1ExprNode.html" target="_top" xlink:title="Base type of all the expressions.">
-<polygon fill="white" stroke="transparent" points="270,-217 114,-217 114,-127 270,-127 270,-217"/>
-<text text-anchor="start" x="155.5" y="-205" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::ExprNode</text>
-<text text-anchor="start" x="118" y="-190" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="131" y="-190" font-family="Helvetica,sans-Serif" font-size="10.00">_type_s_eq_hash_kind</text>
-<text text-anchor="start" x="118" y="-175" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="131" y="-175" font-family="Helvetica,sans-Serif" font-size="10.00">_type_child_slots</text>
-<text text-anchor="start" x="118" y="-160" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="131" y="-160" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="131" y="-149" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO()</text>
-<text text-anchor="start" x="118" y="-134" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="131" y="-134" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
-<polygon fill="#666666" stroke="#666666" points="114,-200 114,-200 270,-200 270,-200 114,-200"/>
-<polygon fill="#666666" stroke="#666666" points="114,-170 114,-170 129,-170 129,-170 114,-170"/>
-<polygon fill="#666666" stroke="#666666" points="129,-170 129,-170 270,-170 270,-170 129,-170"/>
-<polygon fill="none" stroke="#666666" points="114,-127 114,-217 270,-217 270,-127 114,-127"/>
+<polygon fill="white" stroke="transparent" points="265,-247 109,-247 109,-157 265,-157 265,-247"/>
+<text text-anchor="start" x="150.5" y="-235" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::ExprNode</text>
+<text text-anchor="start" x="113" y="-220" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="126" y="-220" font-family="Helvetica,sans-Serif" font-size="10.00">_type_s_eq_hash_kind</text>
+<text text-anchor="start" x="113" y="-205" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="126" y="-205" font-family="Helvetica,sans-Serif" font-size="10.00">_type_child_slots</text>
+<text text-anchor="start" x="113" y="-190" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="126" y="-190" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="126" y="-179" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO()</text>
+<text text-anchor="start" x="113" y="-164" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="126" y="-164" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
+<polygon fill="#666666" stroke="#666666" points="109,-230 109,-230 265,-230 265,-230 109,-230"/>
+<polygon fill="#666666" stroke="#666666" points="109,-200 109,-200 124,-200 124,-200 109,-200"/>
+<polygon fill="#666666" stroke="#666666" points="124,-200 124,-200 265,-200 265,-200 124,-200"/>
+<polygon fill="none" stroke="#666666" points="109,-157 109,-247 265,-247 265,-157 109,-157"/>
</a>
</g>
</g>
@@ -56,8 +60,8 @@
<g id="edge1_Node000001_Node000002" class="edge">
<title>Node2->Node1</title>
<g id="a_edge1_Node000001_Node000002"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M251.91,-120.4C263.79,-110.36 276.19,-99.9 287.79,-90.09"/>
-<polygon fill="none" stroke="#63b8ff" points="249.56,-117.8 244.18,-126.93 254.08,-123.15 249.56,-117.8"/>
+<path fill="none" stroke="#63b8ff" d="M241.14,-149.78C251.34,-140.14 262.08,-129.98 272.5,-120.12"/>
+<polygon fill="none" stroke="#63b8ff" points="238.69,-147.29 233.83,-156.7 243.5,-152.37 238.69,-147.29"/>
</a>
</g>
</g>
@@ -65,13 +69,13 @@
<g id="Node000003" class="node">
<title>Node3</title>
<g id="a_Node000003"><a xlink:title=" ">
-<polygon fill="white" stroke="transparent" points="58,-427.5 0,-427.5 0,-378.5 58,-378.5 58,-427.5"/>
-<text text-anchor="start" x="5" y="-415" font-family="Helvetica,sans-Serif" font-size="10.00">ffi::Object</text>
-<text text-anchor="start" x="27" y="-400" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
-<text text-anchor="start" x="27" y="-385" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
-<polygon fill="#666666" stroke="#666666" points="0,-410 0,-410 58,-410 58,-410 0,-410"/>
-<polygon fill="#666666" stroke="#666666" points="0,-395 0,-395 58,-395 58,-395 0,-395"/>
-<polygon fill="none" stroke="#666666" points="0,-378.5 0,-427.5 58,-427.5 58,-378.5 0,-378.5"/>
+<polygon fill="white" stroke="transparent" points="58,-472.5 0,-472.5 0,-423.5 58,-423.5 58,-472.5"/>
+<text text-anchor="start" x="5" y="-460" font-family="Helvetica,sans-Serif" font-size="10.00">ffi::Object</text>
+<text text-anchor="start" x="27" y="-445" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
+<text text-anchor="start" x="27" y="-430" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
+<polygon fill="#666666" stroke="#666666" points="0,-455 0,-455 58,-455 58,-455 0,-455"/>
+<polygon fill="#666666" stroke="#666666" points="0,-440 0,-440 58,-440 58,-440 0,-440"/>
+<polygon fill="none" stroke="#666666" points="0,-423.5 0,-472.5 58,-472.5 58,-423.5 0,-423.5"/>
</a>
</g>
</g>
@@ -79,8 +83,8 @@
<g id="edge2_Node000002_Node000003" class="edge">
<title>Node3->Node2</title>
<g id="a_edge2_Node000002_Node000003"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M51.72,-370.07C80.05,-330.28 128.62,-262.04 160.52,-217.23"/>
-<polygon fill="none" stroke="#63b8ff" points="48.78,-368.18 45.83,-378.36 54.48,-372.24 48.78,-368.18"/>
+<path fill="none" stroke="#63b8ff" d="M49.88,-414.76C77.74,-371.73 127.2,-295.35 158.48,-247.04"/>
+<polygon fill="none" stroke="#63b8ff" points="46.93,-412.86 44.44,-423.16 52.81,-416.67 46.93,-412.86"/>
</a>
</g>
</g>
@@ -88,19 +92,19 @@
<g id="Node000004" class="node">
<title>Node4</title>
<g id="a_Node000004"><a xlink:href="classtvm_1_1Span.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="transparent" points="240,-448 76,-448 76,-358 240,-358 240,-448"/>
-<text text-anchor="start" x="133" y="-436" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::Span</text>
-<text text-anchor="start" x="156" y="-421" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
-<text text-anchor="start" x="80" y="-406" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="93" y="-406" font-family="Helvetica,sans-Serif" font-size="10.00">Span()</text>
-<text text-anchor="start" x="80" y="-391" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="93" y="-391" font-family="Helvetica,sans-Serif" font-size="10.00">Merge()</text>
-<text text-anchor="start" x="80" y="-376" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="93" y="-376" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
-<text text-anchor="start" x="93" y="-365" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NULLABLE()</text>
-<polygon fill="#666666" stroke="#666666" points="76,-431 76,-431 240,-431 240,-431 76,-431"/>
-<polygon fill="#666666" stroke="#666666" points="76,-416 76,-416 240,-416 240,-416 76,-416"/>
-<polygon fill="none" stroke="#666666" points="76,-358 76,-448 240,-448 240,-358 76,-358"/>
+<polygon fill="white" stroke="transparent" points="240,-493 76,-493 76,-403 240,-403 240,-493"/>
+<text text-anchor="start" x="133" y="-481" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::Span</text>
+<text text-anchor="start" x="156" y="-466" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
+<text text-anchor="start" x="80" y="-451" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="93" y="-451" font-family="Helvetica,sans-Serif" font-size="10.00">Span()</text>
+<text text-anchor="start" x="80" y="-436" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="93" y="-436" font-family="Helvetica,sans-Serif" font-size="10.00">Merge()</text>
+<text text-anchor="start" x="80" y="-421" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="93" y="-421" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
+<text text-anchor="start" x="93" y="-410" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NULLABLE()</text>
+<polygon fill="#666666" stroke="#666666" points="76,-476 76,-476 240,-476 240,-476 76,-476"/>
+<polygon fill="#666666" stroke="#666666" points="76,-461 76,-461 240,-461 240,-461 76,-461"/>
+<polygon fill="none" stroke="#666666" points="76,-403 76,-493 240,-493 240,-403 76,-403"/>
</a>
</g>
</g>
@@ -108,23 +112,23 @@
<g id="edge3_Node000002_Node000004" class="edge">
<title>Node4->Node2</title>
<g id="a_edge3_Node000002_Node000004"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M158.97,-357.66C160.36,-323.78 163.77,-276.08 172,-235 172.41,-232.98 172.85,-230.93 173.34,-228.87"/>
-<polygon fill="none" stroke="#63b8ff" points="173.4,-228.65 171.05,-221.83 176.44,-217.04 178.79,-223.86 173.4,-228.65"/>
+<path fill="none" stroke="#63b8ff" d="M153.15,-402.67C150.28,-365.47 148.93,-311.15 159,-265 159.44,-262.98 159.95,-260.94 160.53,-258.9"/>
+<polygon fill="none" stroke="#63b8ff" points="160.6,-258.67 158.68,-251.72 164.36,-247.28 166.28,-254.23 160.6,-258.67"/>
</a>
</g>
-<text text-anchor="middle" x="189.5" y="-285" font-family="Helvetica,sans-Serif" font-size="10.00" fill="grey"> +span</text>
+<text text-anchor="middle" x="176.5" y="-322.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="grey"> +span</text>
</g>
<!-- Node5 -->
<g id="Node000005" class="node">
<title>Node5</title>
<g id="a_Node000005"><a xlink:title=" ">
-<polygon fill="white" stroke="transparent" points="478,-534 404,-534 404,-485 478,-485 478,-534"/>
-<text text-anchor="start" x="409" y="-521.5" font-family="Helvetica,sans-Serif" font-size="10.00">ffi::ObjectRef</text>
-<text text-anchor="start" x="439" y="-506.5" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
-<text text-anchor="start" x="439" y="-491.5" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
-<polygon fill="#666666" stroke="#666666" points="404,-516.5 404,-516.5 478,-516.5 478,-516.5 404,-516.5"/>
-<polygon fill="#666666" stroke="#666666" points="404,-501.5 404,-501.5 478,-501.5 478,-501.5 404,-501.5"/>
-<polygon fill="none" stroke="#666666" points="404,-485 404,-534 478,-534 478,-485 404,-485"/>
+<polygon fill="white" stroke="transparent" points="478,-579 404,-579 404,-530 478,-530 478,-579"/>
+<text text-anchor="start" x="409" y="-566.5" font-family="Helvetica,sans-Serif" font-size="10.00">ffi::ObjectRef</text>
+<text text-anchor="start" x="439" y="-551.5" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
+<text text-anchor="start" x="439" y="-536.5" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
+<polygon fill="#666666" stroke="#666666" points="404,-561.5 404,-561.5 478,-561.5 478,-561.5 404,-561.5"/>
+<polygon fill="#666666" stroke="#666666" points="404,-546.5 404,-546.5 478,-546.5 478,-546.5 404,-546.5"/>
+<polygon fill="none" stroke="#666666" points="404,-530 404,-579 478,-579 478,-530 404,-530"/>
</a>
</g>
</g>
@@ -132,8 +136,8 @@
<g id="edge4_Node000004_Node000005" class="edge">
<title>Node5->Node4</title>
<g id="a_edge4_Node000004_Node000005"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M394.16,-495.8C354.88,-484.67 297.56,-467.27 249,-448 246.06,-446.83 243.09,-445.62 240.1,-444.36"/>
-<polygon fill="none" stroke="#63b8ff" points="393.42,-499.23 404,-498.57 395.32,-492.49 393.42,-499.23"/>
+<path fill="none" stroke="#63b8ff" d="M394.16,-540.8C354.88,-529.67 297.56,-512.27 249,-493 246.06,-491.83 243.09,-490.62 240.1,-489.36"/>
+<polygon fill="none" stroke="#63b8ff" points="393.42,-544.23 404,-543.57 395.32,-537.49 393.42,-544.23"/>
</a>
</g>
</g>
@@ -141,19 +145,19 @@
<g id="Node000006" class="node">
<title>Node6</title>
<g id="a_Node000006"><a xlink:href="classtvm_1_1Type.html" target="_top" xlink:title="Managed reference to TypeNode.">
-<polygon fill="white" stroke="transparent" points="443.5,-448 258.5,-448 258.5,-358 443.5,-358 443.5,-448"/>
-<text text-anchor="start" x="327" y="-436" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::Type</text>
-<text text-anchor="start" x="349.5" y="-421" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
-<text text-anchor="start" x="263" y="-406" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="276" y="-406" font-family="Helvetica,sans-Serif" font-size="10.00">IsMissing()</text>
-<text text-anchor="start" x="263" y="-391" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="276" y="-391" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
-<text text-anchor="start" x="276" y="-380" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NOTNULLABLE()</text>
-<text text-anchor="start" x="263" y="-365" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="276" y="-365" font-family="Helvetica,sans-Serif" font-size="10.00">Missing()</text>
-<polygon fill="#666666" stroke="#666666" points="259,-431 259,-431 444,-431 444,-431 259,-431"/>
-<polygon fill="#666666" stroke="#666666" points="259,-416 259,-416 444,-416 444,-416 259,-416"/>
-<polygon fill="none" stroke="#666666" points="258.5,-358 258.5,-448 443.5,-448 443.5,-358 258.5,-358"/>
+<polygon fill="white" stroke="transparent" points="443.5,-493 258.5,-493 258.5,-403 443.5,-403 443.5,-493"/>
+<text text-anchor="start" x="327" y="-481" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::Type</text>
+<text text-anchor="start" x="349.5" y="-466" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
+<text text-anchor="start" x="263" y="-451" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="276" y="-451" font-family="Helvetica,sans-Serif" font-size="10.00">IsMissing()</text>
+<text text-anchor="start" x="263" y="-436" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="276" y="-436" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
+<text text-anchor="start" x="276" y="-425" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NOTNULLABLE()</text>
+<text text-anchor="start" x="263" y="-410" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="276" y="-410" font-family="Helvetica,sans-Serif" font-size="10.00">Missing()</text>
+<polygon fill="#666666" stroke="#666666" points="259,-476 259,-476 444,-476 444,-476 259,-476"/>
+<polygon fill="#666666" stroke="#666666" points="259,-461 259,-461 444,-461 444,-461 259,-461"/>
+<polygon fill="none" stroke="#666666" points="258.5,-403 258.5,-493 443.5,-493 443.5,-403 258.5,-403"/>
</a>
</g>
</g>
@@ -161,8 +165,8 @@
<g id="edge6_Node000006_Node000005" class="edge">
<title>Node5->Node6</title>
<g id="a_edge6_Node000006_Node000005"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M413.95,-477.09C406.12,-468 397.42,-457.9 389.05,-448.18"/>
-<polygon fill="none" stroke="#63b8ff" points="411.4,-479.49 420.58,-484.79 416.7,-474.93 411.4,-479.49"/>
+<path fill="none" stroke="#63b8ff" d="M413.95,-522.09C406.12,-513 397.42,-502.9 389.05,-493.18"/>
+<polygon fill="none" stroke="#63b8ff" points="411.4,-524.49 420.58,-529.79 416.7,-519.93 411.4,-524.49"/>
</a>
</g>
</g>
@@ -170,21 +174,23 @@
<g id="Node000007" class="node">
<title>Node7</title>
<g id="a_Node000007"><a xlink:href="classtvm_1_1Expr.html" target="_top" xlink:title="Managed reference to ExprNode.">
-<polygon fill="white" stroke="transparent" points="422,-340 258,-340 258,-235 422,-235 422,-340"/>
-<text text-anchor="start" x="316" y="-327.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::Expr</text>
-<text text-anchor="start" x="338" y="-312.5" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
-<text text-anchor="start" x="262" y="-297.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="275" y="-297.5" font-family="Helvetica,sans-Serif" font-size="10.00">operator==()</text>
-<text text-anchor="start" x="262" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="275" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">operator!=()</text>
-<text text-anchor="start" x="262" y="-267.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="275" y="-267.5" font-family="Helvetica,sans-Serif" font-size="10.00">operator<()</text>
-<text text-anchor="start" x="262" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="275" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
-<text text-anchor="start" x="275" y="-241.5" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NULLABLE()</text>
-<polygon fill="#666666" stroke="#666666" points="258,-322.5 258,-322.5 422,-322.5 422,-322.5 258,-322.5"/>
-<polygon fill="#666666" stroke="#666666" points="258,-307.5 258,-307.5 422,-307.5 422,-307.5 258,-307.5"/>
-<polygon fill="none" stroke="#666666" points="258,-235 258,-340 422,-340 422,-235 258,-235"/>
+<polygon fill="white" stroke="transparent" points="427.5,-385 242.5,-385 242.5,-265 427.5,-265 427.5,-385"/>
+<text text-anchor="start" x="311.5" y="-373" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::Expr</text>
+<text text-anchor="start" x="333.5" y="-358" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
+<text text-anchor="start" x="247" y="-343" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="260" y="-343" font-family="Helvetica,sans-Serif" font-size="10.00">operator==()</text>
+<text text-anchor="start" x="247" y="-328" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="260" y="-328" font-family="Helvetica,sans-Serif" font-size="10.00">operator!=()</text>
+<text text-anchor="start" x="247" y="-313" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="260" y="-313" font-family="Helvetica,sans-Serif" font-size="10.00">operator<()</text>
+<text text-anchor="start" x="247" y="-298" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="260" y="-298" font-family="Helvetica,sans-Serif" font-size="10.00">Expr()</text>
+<text text-anchor="start" x="247" y="-283" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="260" y="-283" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
+<text text-anchor="start" x="260" y="-272" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NOTNULLABLE()</text>
+<polygon fill="#666666" stroke="#666666" points="243,-368 243,-368 428,-368 428,-368 243,-368"/>
+<polygon fill="#666666" stroke="#666666" points="243,-353 243,-353 428,-353 428,-353 243,-353"/>
+<polygon fill="none" stroke="#666666" points="242.5,-265 242.5,-385 427.5,-385 427.5,-265 242.5,-265"/>
</a>
</g>
</g>
@@ -192,8 +198,8 @@
<g id="edge8_Node000007_Node000005" class="edge">
<title>Node5->Node7</title>
<g id="a_edge8_Node000007_Node000005"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M453.47,-475.07C463.23,-442.97 472.11,-394.15 452,-358 450.83,-355.9 438.37,-347.7 422.16,-337.62"/>
-<polygon fill="none" stroke="#63b8ff" points="450.04,-474.27 450.3,-484.87 456.71,-476.43 450.04,-474.27"/>
+<path fill="none" stroke="#63b8ff" d="M453.25,-520.19C462.86,-488.17 471.63,-439.42 452,-403 450,-399.28 440.46,-391.91 427.62,-383.13"/>
+<polygon fill="none" stroke="#63b8ff" points="449.84,-519.36 450.14,-529.95 456.51,-521.49 449.84,-519.36"/>
</a>
</g>
</g>
@@ -201,15 +207,15 @@
<g id="Node000008" class="node">
<title>Node8</title>
<g id="a_Node000008"><a xlink:href="classtvm_1_1Attrs.html" target="_top" xlink:title="Managed reference to AttrsNode.">
-<polygon fill="white" stroke="transparent" points="591,-317.5 427,-317.5 427,-257.5 591,-257.5 591,-317.5"/>
-<text text-anchor="start" x="484.5" y="-305.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::Attrs</text>
-<text text-anchor="start" x="507" y="-290.5" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
-<text text-anchor="start" x="431" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="444" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
-<text text-anchor="start" x="444" y="-264.5" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NULLABLE()</text>
-<polygon fill="#666666" stroke="#666666" points="427,-300.5 427,-300.5 591,-300.5 591,-300.5 427,-300.5"/>
-<polygon fill="#666666" stroke="#666666" points="427,-285.5 427,-285.5 591,-285.5 591,-285.5 427,-285.5"/>
-<polygon fill="none" stroke="#666666" points="427,-257.5 427,-317.5 591,-317.5 591,-257.5 427,-257.5"/>
+<polygon fill="white" stroke="transparent" points="597,-355 433,-355 433,-295 597,-295 597,-355"/>
+<text text-anchor="start" x="490.5" y="-343" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::Attrs</text>
+<text text-anchor="start" x="513" y="-328" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
+<text text-anchor="start" x="437" y="-313" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="450" y="-313" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
+<text text-anchor="start" x="450" y="-302" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NULLABLE()</text>
+<polygon fill="#666666" stroke="#666666" points="433,-338 433,-338 597,-338 597,-338 433,-338"/>
+<polygon fill="#666666" stroke="#666666" points="433,-323 433,-323 597,-323 597,-323 433,-323"/>
+<polygon fill="none" stroke="#666666" points="433,-295 433,-355 597,-355 597,-295 433,-295"/>
</a>
</g>
</g>
@@ -217,8 +223,8 @@
<g id="edge10_Node000008_Node000005" class="edge">
<title>Node5->Node8</title>
<g id="a_edge10_Node000008_Node000005"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M478.36,-477.27C480.89,-474.01 483.16,-470.58 485,-467 509.63,-419.01 511.96,-354.65 510.87,-317.77"/>
-<polygon fill="none" stroke="#63b8ff" points="475.57,-475.14 471.61,-484.97 480.84,-479.75 475.57,-475.14"/>
+<path fill="none" stroke="#63b8ff" d="M478.26,-522.21C480.81,-518.97 483.12,-515.55 485,-512 511.72,-461.57 515.96,-393.47 515.94,-355.22"/>
+<polygon fill="none" stroke="#63b8ff" points="475.47,-520.08 471.48,-529.9 480.72,-524.71 475.47,-520.08"/>
</a>
</g>
</g>
@@ -226,31 +232,31 @@
<g id="edge5_Node000002_Node000006" class="edge">
<title>Node6->Node2</title>
<g id="a_edge5_Node000002_Node000006"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M258.4,-362.34C243.99,-354.62 232.16,-346.81 227,-340 198.34,-302.12 217.03,-281.43 207,-235 206.59,-233.12 206.17,-231.2 205.74,-229.27"/>
-<polygon fill="none" stroke="#63b8ff" points="205.68,-229 200.44,-224.05 203,-217.31 208.24,-222.26 205.68,-229"/>
+<path fill="none" stroke="#63b8ff" d="M258.34,-406.96C232.93,-395.79 211.98,-386.31 211,-385 209.09,-382.45 200.17,-311.85 193.77,-259.35"/>
+<polygon fill="none" stroke="#63b8ff" points="193.73,-259.03 189.03,-253.56 192.28,-247.12 196.98,-252.59 193.73,-259.03"/>
</a>
</g>
-<text text-anchor="middle" x="238" y="-285" font-family="Helvetica,sans-Serif" font-size="10.00" fill="grey"> +ty</text>
+<text text-anchor="middle" x="222" y="-322.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="grey"> +ty</text>
</g>
<!-- Node7->Node1 -->
<g id="edge7_Node000001_Node000007" class="edge">
<title>Node7->Node1</title>
<g id="a_edge7_Node000001_Node000007"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M340,-234.91C340,-195.97 340,-142.58 340,-102.49"/>
-<polygon fill="none" stroke="#63b8ff" points="340,-102.24 336,-96.24 340,-90.24 344,-96.24 340,-102.24"/>
+<path fill="none" stroke="#63b8ff" d="M335,-264.98C335,-225.78 335,-174.08 335,-132.54"/>
+<polygon fill="none" stroke="#63b8ff" points="335,-132.28 331,-126.28 335,-120.28 339,-126.28 335,-132.28"/>
</a>
</g>
-<text text-anchor="middle" x="352" y="-169.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="grey"> +op</text>
+<text text-anchor="middle" x="347" y="-199.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="grey"> +op</text>
</g>
<!-- Node8->Node1 -->
<g id="edge9_Node000001_Node000008" class="edge">
<title>Node8->Node1</title>
<g id="a_edge9_Node000001_Node000008"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M488.61,-257.49C461.32,-218.65 412.38,-149 378.14,-100.28"/>
-<polygon fill="none" stroke="#63b8ff" points="377.97,-100.04 371.25,-97.43 371.07,-90.22 377.8,-92.83 377.97,-100.04"/>
+<path fill="none" stroke="#63b8ff" d="M495.05,-294.85C468.05,-255.4 419.03,-183.78 382.33,-130.16"/>
+<polygon fill="none" stroke="#63b8ff" points="382.18,-129.93 375.49,-127.24 375.4,-120.03 382.09,-122.72 382.18,-129.93"/>
</a>
</g>
-<text text-anchor="middle" x="477" y="-169.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="grey"> +attrs</text>
+<text text-anchor="middle" x="478" y="-199.5" font-family="Helvetica,sans-Serif" font-size="10.00" fill="grey"> +attrs</text>
</g>
</g>
</svg>
diff --git a/docs/reference/api/doxygen/classtvm_1_1CallNode__inherit__graph.svg b/docs/reference/api/doxygen/classtvm_1_1CallNode__inherit__graph.svg
index a940012941b..451031f4d1d 100644
--- a/docs/reference/api/doxygen/classtvm_1_1CallNode__inherit__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1CallNode__inherit__graph.svg
@@ -4,33 +4,37 @@
<!-- Generated by graphviz version 2.43.0 (0)
-->
<!-- Title: tvm::CallNode Pages: 1 -->
-<svg width="164pt" height="369pt"
- viewBox="0.00 0.00 164.00 369.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 365)">
+<svg width="164pt" height="399pt"
+ viewBox="0.00 0.00 164.00 399.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 395)">
<title>tvm::CallNode</title>
<!-- Node1 -->
<g id="Node000001" class="node">
<title>Node1</title>
<g id="a_Node000001"><a xlink:title="Call corresponds to callable invocation.">
-<polygon fill="#999999" stroke="transparent" points="156,-120 0,-120 0,0 156,0 156,-120"/>
-<text text-anchor="start" x="43" y="-108" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::CallNode</text>
+<polygon fill="#999999" stroke="transparent" points="156,-150 0,-150 0,0 156,0 156,-150"/>
+<text text-anchor="start" x="43" y="-138" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::CallNode</text>
+<text text-anchor="start" x="4" y="-123" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="17" y="-123" font-family="Helvetica,sans-Serif" font-size="10.00">op</text>
+<text text-anchor="start" x="4" y="-108" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="17" y="-108" font-family="Helvetica,sans-Serif" font-size="10.00">args</text>
<text text-anchor="start" x="4" y="-93" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="17" y="-93" font-family="Helvetica,sans-Serif" font-size="10.00">op</text>
+<text text-anchor="start" x="17" y="-93" font-family="Helvetica,sans-Serif" font-size="10.00">attrs</text>
<text text-anchor="start" x="4" y="-78" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="17" y="-78" font-family="Helvetica,sans-Serif" font-size="10.00">args</text>
+<text text-anchor="start" x="17" y="-78" font-family="Helvetica,sans-Serif" font-size="10.00">ty_args</text>
<text text-anchor="start" x="4" y="-63" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="17" y="-63" font-family="Helvetica,sans-Serif" font-size="10.00">attrs</text>
+<text text-anchor="start" x="17" y="-63" font-family="Helvetica,sans-Serif" font-size="10.00">CallNode()</text>
<text text-anchor="start" x="4" y="-48" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="17" y="-48" font-family="Helvetica,sans-Serif" font-size="10.00">ty_args</text>
+<text text-anchor="start" x="17" y="-48" font-family="Helvetica,sans-Serif" font-size="10.00">CallNode()</text>
<text text-anchor="start" x="4" y="-33" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
<text text-anchor="start" x="17" y="-33" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
<text text-anchor="start" x="17" y="-22" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
<text text-anchor="start" x="4" y="-7" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
<text text-anchor="start" x="17" y="-7" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
-<polygon fill="#666666" stroke="#666666" points="0,-103 0,-103 156,-103 156,-103 0,-103"/>
-<polygon fill="#666666" stroke="#666666" points="0,-43 0,-43 15,-43 15,-43 0,-43"/>
-<polygon fill="#666666" stroke="#666666" points="15,-43 15,-43 156,-43 156,-43 15,-43"/>
-<polygon fill="none" stroke="#666666" points="0,0 0,-120 156,-120 156,0 0,0"/>
+<polygon fill="#666666" stroke="#666666" points="0,-133 0,-133 156,-133 156,-133 0,-133"/>
+<polygon fill="#666666" stroke="#666666" points="0,-73 0,-73 15,-73 15,-73 0,-73"/>
+<polygon fill="#666666" stroke="#666666" points="15,-73 15,-73 156,-73 156,-73 15,-73"/>
+<polygon fill="none" stroke="#666666" points="0,0 0,-150 156,-150 156,0 0,0"/>
</a>
</g>
</g>
@@ -38,25 +42,25 @@
<g id="Node000002" class="node">
<title>Node2</title>
<g id="a_Node000002"><a xlink:href="classtvm_1_1ExprNode.html" target="_top" xlink:title="Base type of all the expressions.">
-<polygon fill="white" stroke="transparent" points="156,-276 0,-276 0,-156 156,-156 156,-276"/>
-<text text-anchor="start" x="41.5" y="-264" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::ExprNode</text>
+<polygon fill="white" stroke="transparent" points="156,-306 0,-306 0,-186 156,-186 156,-306"/>
+<text text-anchor="start" x="41.5" y="-294" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::ExprNode</text>
+<text text-anchor="start" x="4" y="-279" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="17" y="-279" font-family="Helvetica,sans-Serif" font-size="10.00">span</text>
+<text text-anchor="start" x="4" y="-264" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="17" y="-264" font-family="Helvetica,sans-Serif" font-size="10.00">ty</text>
<text text-anchor="start" x="4" y="-249" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="17" y="-249" font-family="Helvetica,sans-Serif" font-size="10.00">span</text>
+<text text-anchor="start" x="17" y="-249" font-family="Helvetica,sans-Serif" font-size="10.00">_type_s_eq_hash_kind</text>
<text text-anchor="start" x="4" y="-234" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="17" y="-234" font-family="Helvetica,sans-Serif" font-size="10.00">ty</text>
+<text text-anchor="start" x="17" y="-234" font-family="Helvetica,sans-Serif" font-size="10.00">_type_child_slots</text>
<text text-anchor="start" x="4" y="-219" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="17" y="-219" font-family="Helvetica,sans-Serif" font-size="10.00">_type_s_eq_hash_kind</text>
-<text text-anchor="start" x="4" y="-204" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="17" y="-204" font-family="Helvetica,sans-Serif" font-size="10.00">_type_child_slots</text>
-<text text-anchor="start" x="4" y="-189" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="17" y="-189" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="17" y="-178" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO()</text>
-<text text-anchor="start" x="4" y="-163" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="17" y="-163" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
-<polygon fill="#666666" stroke="#666666" points="0,-259 0,-259 156,-259 156,-259 0,-259"/>
-<polygon fill="#666666" stroke="#666666" points="0,-199 0,-199 15,-199 15,-199 0,-199"/>
-<polygon fill="#666666" stroke="#666666" points="15,-199 15,-199 156,-199 156,-199 15,-199"/>
-<polygon fill="none" stroke="#666666" points="0,-156 0,-276 156,-276 156,-156 0,-156"/>
+<text text-anchor="start" x="17" y="-219" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="17" y="-208" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO()</text>
+<text text-anchor="start" x="4" y="-193" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="17" y="-193" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
+<polygon fill="#666666" stroke="#666666" points="0,-289 0,-289 156,-289 156,-289 0,-289"/>
+<polygon fill="#666666" stroke="#666666" points="0,-229 0,-229 15,-229 15,-229 0,-229"/>
+<polygon fill="#666666" stroke="#666666" points="15,-229 15,-229 156,-229 156,-229 15,-229"/>
+<polygon fill="none" stroke="#666666" points="0,-186 0,-306 156,-306 156,-186 0,-186"/>
</a>
</g>
</g>
@@ -64,8 +68,8 @@
<g id="edge1_Node000001_Node000002" class="edge">
<title>Node2->Node1</title>
<g id="a_edge1_Node000001_Node000002"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M78,-145.63C78,-137.14 78,-128.52 78,-120.2"/>
-<polygon fill="none" stroke="#63b8ff" points="74.5,-145.9 78,-155.9 81.5,-145.9 74.5,-145.9"/>
+<path fill="none" stroke="#63b8ff" d="M78,-175.75C78,-167.34 78,-158.71 78,-150.23"/>
+<polygon fill="none" stroke="#63b8ff" points="74.5,-175.89 78,-185.89 81.5,-175.89 74.5,-175.89"/>
</a>
</g>
</g>
@@ -73,13 +77,13 @@
<g id="Node000003" class="node">
<title>Node3</title>
<g id="a_Node000003"><a xlink:title=" ">
-<polygon fill="white" stroke="transparent" points="107,-361 49,-361 49,-312 107,-312 107,-361"/>
-<text text-anchor="start" x="54" y="-348.5" font-family="Helvetica,sans-Serif" font-size="10.00">ffi::Object</text>
-<text text-anchor="start" x="76" y="-333.5" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
-<text text-anchor="start" x="76" y="-318.5" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
-<polygon fill="#666666" stroke="#666666" points="49,-343.5 49,-343.5 107,-343.5 107,-343.5 49,-343.5"/>
-<polygon fill="#666666" stroke="#666666" points="49,-328.5 49,-328.5 107,-328.5 107,-328.5 49,-328.5"/>
-<polygon fill="none" stroke="#666666" points="49,-312 49,-361 107,-361 107,-312 49,-312"/>
+<polygon fill="white" stroke="transparent" points="107,-391 49,-391 49,-342 107,-342 107,-391"/>
+<text text-anchor="start" x="54" y="-378.5" font-family="Helvetica,sans-Serif" font-size="10.00">ffi::Object</text>
+<text text-anchor="start" x="76" y="-363.5" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
+<text text-anchor="start" x="76" y="-348.5" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
+<polygon fill="#666666" stroke="#666666" points="49,-373.5 49,-373.5 107,-373.5 107,-373.5 49,-373.5"/>
+<polygon fill="#666666" stroke="#666666" points="49,-358.5 49,-358.5 107,-358.5 107,-358.5 49,-358.5"/>
+<polygon fill="none" stroke="#666666" points="49,-342 49,-391 107,-391 107,-342 49,-342"/>
</a>
</g>
</g>
@@ -87,8 +91,8 @@
<g id="edge2_Node000002_Node000003" class="edge">
<title>Node3->Node2</title>
<g id="a_edge2_Node000002_Node000003"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M78,-301.59C78,-293.71 78,-285.09 78,-276.47"/>
-<polygon fill="none" stroke="#63b8ff" points="74.5,-301.8 78,-311.8 81.5,-301.8 74.5,-301.8"/>
+<path fill="none" stroke="#63b8ff" d="M78,-331.59C78,-323.71 78,-315.09 78,-306.47"/>
+<polygon fill="none" stroke="#63b8ff" points="74.5,-331.8 78,-341.8 81.5,-331.8 74.5,-331.8"/>
</a>
</g>
</g>
diff --git a/docs/reference/api/doxygen/classtvm_1_1Call__coll__graph.svg b/docs/reference/api/doxygen/classtvm_1_1Call__coll__graph.svg
index 4592f92bf17..eab0a9d9f3a 100644
--- a/docs/reference/api/doxygen/classtvm_1_1Call__coll__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1Call__coll__graph.svg
@@ -4,32 +4,34 @@
<!-- Generated by graphviz version 2.43.0 (0)
-->
<!-- Title: tvm::Call Pages: 1 -->
-<svg width="172pt" height="365pt"
- viewBox="0.00 0.00 172.00 365.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 361)">
+<svg width="193pt" height="395pt"
+ viewBox="0.00 0.00 193.00 395.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 391)">
<title>tvm::Call</title>
<!-- Node1 -->
<g id="Node000001" class="node">
<title>Node1</title>
<g id="a_Node000001"><a xlink:title="Managed reference to CallNode.">
-<polygon fill="#999999" stroke="transparent" points="164,-131 0,-131 0,0 164,0 164,-131"/>
-<text text-anchor="start" x="59.5" y="-118.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::Call</text>
-<text text-anchor="start" x="80" y="-103.5" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
-<text text-anchor="start" x="4" y="-88.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="17" y="-88.5" font-family="Helvetica,sans-Serif" font-size="10.00">Call()</text>
-<text text-anchor="start" x="4" y="-73.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="17" y="-73.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
-<text text-anchor="start" x="17" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NULLABLE()</text>
-<text text-anchor="start" x="4" y="-47.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="17" y="-47.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="17" y="-36.5" font-family="Helvetica,sans-Serif" font-size="10.00">_COW_METHOD()</text>
-<text text-anchor="start" x="4" y="-21.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="17" y="-21.5" font-family="Helvetica,sans-Serif" font-size="10.00">Unchecked()</text>
-<text text-anchor="start" x="4" y="-6.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="17" y="-6.5" font-family="Helvetica,sans-Serif" font-size="10.00">ReinferType()</text>
-<polygon fill="#666666" stroke="#666666" points="0,-113.5 0,-113.5 164,-113.5 164,-113.5 0,-113.5"/>
-<polygon fill="#666666" stroke="#666666" points="0,-98.5 0,-98.5 164,-98.5 164,-98.5 0,-98.5"/>
-<polygon fill="none" stroke="#666666" points="0,0 0,-131 164,-131 164,0 0,0"/>
+<polygon fill="#999999" stroke="transparent" points="185,-146 0,-146 0,0 185,0 185,-146"/>
+<text text-anchor="start" x="70.5" y="-134" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::Call</text>
+<text text-anchor="start" x="91" y="-119" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
+<text text-anchor="start" x="4.5" y="-104" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="17.5" y="-104" font-family="Helvetica,sans-Serif" font-size="10.00">Call()</text>
+<text text-anchor="start" x="4.5" y="-89" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="17.5" y="-89" font-family="Helvetica,sans-Serif" font-size="10.00">Call()</text>
+<text text-anchor="start" x="4.5" y="-74" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="17.5" y="-74" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
+<text text-anchor="start" x="17.5" y="-63" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NOTNULLABLE()</text>
+<text text-anchor="start" x="4.5" y="-48" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="17.5" y="-48" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="17.5" y="-37" font-family="Helvetica,sans-Serif" font-size="10.00">_COW_METHOD()</text>
+<text text-anchor="start" x="4.5" y="-22" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="17.5" y="-22" font-family="Helvetica,sans-Serif" font-size="10.00">Unchecked()</text>
+<text text-anchor="start" x="4.5" y="-7" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="17.5" y="-7" font-family="Helvetica,sans-Serif" font-size="10.00">ReinferType()</text>
+<polygon fill="#666666" stroke="#666666" points="0.5,-129 0.5,-129 185.5,-129 185.5,-129 0.5,-129"/>
+<polygon fill="#666666" stroke="#666666" points="0.5,-114 0.5,-114 185.5,-114 185.5,-114 0.5,-114"/>
+<polygon fill="none" stroke="#666666" points="0,0 0,-146 185,-146 185,0 0,0"/>
</a>
</g>
</g>
@@ -37,21 +39,23 @@
<g id="Node000002" class="node">
<title>Node2</title>
<g id="a_Node000002"><a xlink:href="classtvm_1_1Expr.html" target="_top" xlink:title="Managed reference to ExprNode.">
-<polygon fill="white" stroke="transparent" points="164,-272 0,-272 0,-167 164,-167 164,-272"/>
-<text text-anchor="start" x="58" y="-259.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::Expr</text>
-<text text-anchor="start" x="80" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
-<text text-anchor="start" x="4" y="-229.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="17" y="-229.5" font-family="Helvetica,sans-Serif" font-size="10.00">operator==()</text>
-<text text-anchor="start" x="4" y="-214.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="17" y="-214.5" font-family="Helvetica,sans-Serif" font-size="10.00">operator!=()</text>
-<text text-anchor="start" x="4" y="-199.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="17" y="-199.5" font-family="Helvetica,sans-Serif" font-size="10.00">operator<()</text>
-<text text-anchor="start" x="4" y="-184.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="17" y="-184.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
-<text text-anchor="start" x="17" y="-173.5" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NULLABLE()</text>
-<polygon fill="#666666" stroke="#666666" points="0,-254.5 0,-254.5 164,-254.5 164,-254.5 0,-254.5"/>
-<polygon fill="#666666" stroke="#666666" points="0,-239.5 0,-239.5 164,-239.5 164,-239.5 0,-239.5"/>
-<polygon fill="none" stroke="#666666" points="0,-167 0,-272 164,-272 164,-167 0,-167"/>
+<polygon fill="white" stroke="transparent" points="185,-302 0,-302 0,-182 185,-182 185,-302"/>
+<text text-anchor="start" x="69" y="-290" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::Expr</text>
+<text text-anchor="start" x="91" y="-275" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
+<text text-anchor="start" x="4.5" y="-260" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="17.5" y="-260" font-family="Helvetica,sans-Serif" font-size="10.00">operator==()</text>
+<text text-anchor="start" x="4.5" y="-245" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="17.5" y="-245" font-family="Helvetica,sans-Serif" font-size="10.00">operator!=()</text>
+<text text-anchor="start" x="4.5" y="-230" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="17.5" y="-230" font-family="Helvetica,sans-Serif" font-size="10.00">operator<()</text>
+<text text-anchor="start" x="4.5" y="-215" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="17.5" y="-215" font-family="Helvetica,sans-Serif" font-size="10.00">Expr()</text>
+<text text-anchor="start" x="4.5" y="-200" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="17.5" y="-200" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
+<text text-anchor="start" x="17.5" y="-189" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NOTNULLABLE()</text>
+<polygon fill="#666666" stroke="#666666" points="0.5,-285 0.5,-285 185.5,-285 185.5,-285 0.5,-285"/>
+<polygon fill="#666666" stroke="#666666" points="0.5,-270 0.5,-270 185.5,-270 185.5,-270 0.5,-270"/>
+<polygon fill="none" stroke="#666666" points="0,-182 0,-302 185,-302 185,-182 0,-182"/>
</a>
</g>
</g>
@@ -59,8 +63,8 @@
<g id="edge1_Node000001_Node000002" class="edge">
<title>Node2->Node1</title>
<g id="a_edge1_Node000001_Node000002"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M82,-156.52C82,-148.13 82,-139.49 82,-131.06"/>
-<polygon fill="none" stroke="#63b8ff" points="78.5,-156.62 82,-166.62 85.5,-156.62 78.5,-156.62"/>
+<path fill="none" stroke="#63b8ff" d="M92.5,-171.51C92.5,-163.09 92.5,-154.48 92.5,-146.03"/>
+<polygon fill="none" stroke="#63b8ff" points="89,-171.65 92.5,-181.65 96,-171.65 89,-171.65"/>
</a>
</g>
</g>
@@ -68,13 +72,13 @@
<g id="Node000003" class="node">
<title>Node3</title>
<g id="a_Node000003"><a xlink:title=" ">
-<polygon fill="white" stroke="transparent" points="119,-357 45,-357 45,-308 119,-308 119,-357"/>
-<text text-anchor="start" x="50" y="-344.5" font-family="Helvetica,sans-Serif" font-size="10.00">ffi::ObjectRef</text>
-<text text-anchor="start" x="80" y="-329.5" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
-<text text-anchor="start" x="80" y="-314.5" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
-<polygon fill="#666666" stroke="#666666" points="45,-339.5 45,-339.5 119,-339.5 119,-339.5 45,-339.5"/>
-<polygon fill="#666666" stroke="#666666" points="45,-324.5 45,-324.5 119,-324.5 119,-324.5 45,-324.5"/>
-<polygon fill="none" stroke="#666666" points="45,-308 45,-357 119,-357 119,-308 45,-308"/>
+<polygon fill="white" stroke="transparent" points="129.5,-387 55.5,-387 55.5,-338 129.5,-338 129.5,-387"/>
+<text text-anchor="start" x="60.5" y="-374.5" font-family="Helvetica,sans-Serif" font-size="10.00">ffi::ObjectRef</text>
+<text text-anchor="start" x="90.5" y="-359.5" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
+<text text-anchor="start" x="90.5" y="-344.5" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
+<polygon fill="#666666" stroke="#666666" points="55.5,-369.5 55.5,-369.5 129.5,-369.5 129.5,-369.5 55.5,-369.5"/>
+<polygon fill="#666666" stroke="#666666" points="55.5,-354.5 55.5,-354.5 129.5,-354.5 129.5,-354.5 55.5,-354.5"/>
+<polygon fill="none" stroke="#666666" points="55.5,-338 55.5,-387 129.5,-387 129.5,-338 55.5,-338"/>
</a>
</g>
</g>
@@ -82,8 +86,8 @@
<g id="edge2_Node000002_Node000003" class="edge">
<title>Node3->Node2</title>
<g id="a_edge2_Node000002_Node000003"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M82,-297.85C82,-289.79 82,-281 82,-272.32"/>
-<polygon fill="none" stroke="#63b8ff" points="78.5,-297.96 82,-307.96 85.5,-297.96 78.5,-297.96"/>
+<path fill="none" stroke="#63b8ff" d="M92.5,-327.59C92.5,-319.71 92.5,-311.09 92.5,-302.47"/>
+<polygon fill="none" stroke="#63b8ff" points="89,-327.8 92.5,-337.8 96,-327.8 89,-327.8"/>
</a>
</g>
</g>
diff --git a/docs/reference/api/doxygen/classtvm_1_1Call__inherit__graph.svg b/docs/reference/api/doxygen/classtvm_1_1Call__inherit__graph.svg
index 4592f92bf17..eab0a9d9f3a 100644
--- a/docs/reference/api/doxygen/classtvm_1_1Call__inherit__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1Call__inherit__graph.svg
@@ -4,32 +4,34 @@
<!-- Generated by graphviz version 2.43.0 (0)
-->
<!-- Title: tvm::Call Pages: 1 -->
-<svg width="172pt" height="365pt"
- viewBox="0.00 0.00 172.00 365.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 361)">
+<svg width="193pt" height="395pt"
+ viewBox="0.00 0.00 193.00 395.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 391)">
<title>tvm::Call</title>
<!-- Node1 -->
<g id="Node000001" class="node">
<title>Node1</title>
<g id="a_Node000001"><a xlink:title="Managed reference to CallNode.">
-<polygon fill="#999999" stroke="transparent" points="164,-131 0,-131 0,0 164,0 164,-131"/>
-<text text-anchor="start" x="59.5" y="-118.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::Call</text>
-<text text-anchor="start" x="80" y="-103.5" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
-<text text-anchor="start" x="4" y="-88.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="17" y="-88.5" font-family="Helvetica,sans-Serif" font-size="10.00">Call()</text>
-<text text-anchor="start" x="4" y="-73.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="17" y="-73.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
-<text text-anchor="start" x="17" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NULLABLE()</text>
-<text text-anchor="start" x="4" y="-47.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="17" y="-47.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="17" y="-36.5" font-family="Helvetica,sans-Serif" font-size="10.00">_COW_METHOD()</text>
-<text text-anchor="start" x="4" y="-21.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="17" y="-21.5" font-family="Helvetica,sans-Serif" font-size="10.00">Unchecked()</text>
-<text text-anchor="start" x="4" y="-6.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="17" y="-6.5" font-family="Helvetica,sans-Serif" font-size="10.00">ReinferType()</text>
-<polygon fill="#666666" stroke="#666666" points="0,-113.5 0,-113.5 164,-113.5 164,-113.5 0,-113.5"/>
-<polygon fill="#666666" stroke="#666666" points="0,-98.5 0,-98.5 164,-98.5 164,-98.5 0,-98.5"/>
-<polygon fill="none" stroke="#666666" points="0,0 0,-131 164,-131 164,0 0,0"/>
+<polygon fill="#999999" stroke="transparent" points="185,-146 0,-146 0,0 185,0 185,-146"/>
+<text text-anchor="start" x="70.5" y="-134" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::Call</text>
+<text text-anchor="start" x="91" y="-119" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
+<text text-anchor="start" x="4.5" y="-104" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="17.5" y="-104" font-family="Helvetica,sans-Serif" font-size="10.00">Call()</text>
+<text text-anchor="start" x="4.5" y="-89" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="17.5" y="-89" font-family="Helvetica,sans-Serif" font-size="10.00">Call()</text>
+<text text-anchor="start" x="4.5" y="-74" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="17.5" y="-74" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
+<text text-anchor="start" x="17.5" y="-63" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NOTNULLABLE()</text>
+<text text-anchor="start" x="4.5" y="-48" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="17.5" y="-48" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="17.5" y="-37" font-family="Helvetica,sans-Serif" font-size="10.00">_COW_METHOD()</text>
+<text text-anchor="start" x="4.5" y="-22" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="17.5" y="-22" font-family="Helvetica,sans-Serif" font-size="10.00">Unchecked()</text>
+<text text-anchor="start" x="4.5" y="-7" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="17.5" y="-7" font-family="Helvetica,sans-Serif" font-size="10.00">ReinferType()</text>
+<polygon fill="#666666" stroke="#666666" points="0.5,-129 0.5,-129 185.5,-129 185.5,-129 0.5,-129"/>
+<polygon fill="#666666" stroke="#666666" points="0.5,-114 0.5,-114 185.5,-114 185.5,-114 0.5,-114"/>
+<polygon fill="none" stroke="#666666" points="0,0 0,-146 185,-146 185,0 0,0"/>
</a>
</g>
</g>
@@ -37,21 +39,23 @@
<g id="Node000002" class="node">
<title>Node2</title>
<g id="a_Node000002"><a xlink:href="classtvm_1_1Expr.html" target="_top" xlink:title="Managed reference to ExprNode.">
-<polygon fill="white" stroke="transparent" points="164,-272 0,-272 0,-167 164,-167 164,-272"/>
-<text text-anchor="start" x="58" y="-259.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::Expr</text>
-<text text-anchor="start" x="80" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
-<text text-anchor="start" x="4" y="-229.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="17" y="-229.5" font-family="Helvetica,sans-Serif" font-size="10.00">operator==()</text>
-<text text-anchor="start" x="4" y="-214.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="17" y="-214.5" font-family="Helvetica,sans-Serif" font-size="10.00">operator!=()</text>
-<text text-anchor="start" x="4" y="-199.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="17" y="-199.5" font-family="Helvetica,sans-Serif" font-size="10.00">operator<()</text>
-<text text-anchor="start" x="4" y="-184.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="17" y="-184.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
-<text text-anchor="start" x="17" y="-173.5" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NULLABLE()</text>
-<polygon fill="#666666" stroke="#666666" points="0,-254.5 0,-254.5 164,-254.5 164,-254.5 0,-254.5"/>
-<polygon fill="#666666" stroke="#666666" points="0,-239.5 0,-239.5 164,-239.5 164,-239.5 0,-239.5"/>
-<polygon fill="none" stroke="#666666" points="0,-167 0,-272 164,-272 164,-167 0,-167"/>
+<polygon fill="white" stroke="transparent" points="185,-302 0,-302 0,-182 185,-182 185,-302"/>
+<text text-anchor="start" x="69" y="-290" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::Expr</text>
+<text text-anchor="start" x="91" y="-275" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
+<text text-anchor="start" x="4.5" y="-260" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="17.5" y="-260" font-family="Helvetica,sans-Serif" font-size="10.00">operator==()</text>
+<text text-anchor="start" x="4.5" y="-245" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="17.5" y="-245" font-family="Helvetica,sans-Serif" font-size="10.00">operator!=()</text>
+<text text-anchor="start" x="4.5" y="-230" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="17.5" y="-230" font-family="Helvetica,sans-Serif" font-size="10.00">operator<()</text>
+<text text-anchor="start" x="4.5" y="-215" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="17.5" y="-215" font-family="Helvetica,sans-Serif" font-size="10.00">Expr()</text>
+<text text-anchor="start" x="4.5" y="-200" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="17.5" y="-200" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
+<text text-anchor="start" x="17.5" y="-189" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NOTNULLABLE()</text>
+<polygon fill="#666666" stroke="#666666" points="0.5,-285 0.5,-285 185.5,-285 185.5,-285 0.5,-285"/>
+<polygon fill="#666666" stroke="#666666" points="0.5,-270 0.5,-270 185.5,-270 185.5,-270 0.5,-270"/>
+<polygon fill="none" stroke="#666666" points="0,-182 0,-302 185,-302 185,-182 0,-182"/>
</a>
</g>
</g>
@@ -59,8 +63,8 @@
<g id="edge1_Node000001_Node000002" class="edge">
<title>Node2->Node1</title>
<g id="a_edge1_Node000001_Node000002"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M82,-156.52C82,-148.13 82,-139.49 82,-131.06"/>
-<polygon fill="none" stroke="#63b8ff" points="78.5,-156.62 82,-166.62 85.5,-156.62 78.5,-156.62"/>
+<path fill="none" stroke="#63b8ff" d="M92.5,-171.51C92.5,-163.09 92.5,-154.48 92.5,-146.03"/>
+<polygon fill="none" stroke="#63b8ff" points="89,-171.65 92.5,-181.65 96,-171.65 89,-171.65"/>
</a>
</g>
</g>
@@ -68,13 +72,13 @@
<g id="Node000003" class="node">
<title>Node3</title>
<g id="a_Node000003"><a xlink:title=" ">
-<polygon fill="white" stroke="transparent" points="119,-357 45,-357 45,-308 119,-308 119,-357"/>
-<text text-anchor="start" x="50" y="-344.5" font-family="Helvetica,sans-Serif" font-size="10.00">ffi::ObjectRef</text>
-<text text-anchor="start" x="80" y="-329.5" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
-<text text-anchor="start" x="80" y="-314.5" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
-<polygon fill="#666666" stroke="#666666" points="45,-339.5 45,-339.5 119,-339.5 119,-339.5 45,-339.5"/>
-<polygon fill="#666666" stroke="#666666" points="45,-324.5 45,-324.5 119,-324.5 119,-324.5 45,-324.5"/>
-<polygon fill="none" stroke="#666666" points="45,-308 45,-357 119,-357 119,-308 45,-308"/>
+<polygon fill="white" stroke="transparent" points="129.5,-387 55.5,-387 55.5,-338 129.5,-338 129.5,-387"/>
+<text text-anchor="start" x="60.5" y="-374.5" font-family="Helvetica,sans-Serif" font-size="10.00">ffi::ObjectRef</text>
+<text text-anchor="start" x="90.5" y="-359.5" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
+<text text-anchor="start" x="90.5" y="-344.5" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
+<polygon fill="#666666" stroke="#666666" points="55.5,-369.5 55.5,-369.5 129.5,-369.5 129.5,-369.5 55.5,-369.5"/>
+<polygon fill="#666666" stroke="#666666" points="55.5,-354.5 55.5,-354.5 129.5,-354.5 129.5,-354.5 55.5,-354.5"/>
+<polygon fill="none" stroke="#666666" points="55.5,-338 55.5,-387 129.5,-387 129.5,-338 55.5,-338"/>
</a>
</g>
</g>
@@ -82,8 +86,8 @@
<g id="edge2_Node000002_Node000003" class="edge">
<title>Node3->Node2</title>
<g id="a_edge2_Node000002_Node000003"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M82,-297.85C82,-289.79 82,-281 82,-272.32"/>
-<polygon fill="none" stroke="#63b8ff" points="78.5,-297.96 82,-307.96 85.5,-297.96 78.5,-297.96"/>
+<path fill="none" stroke="#63b8ff" d="M92.5,-327.59C92.5,-319.71 92.5,-311.09 92.5,-302.47"/>
+<polygon fill="none" stroke="#63b8ff" points="89,-327.8 92.5,-337.8 96,-327.8 89,-327.8"/>
</a>
</g>
</g>
diff --git a/docs/reference/api/doxygen/classtvm_1_1Constant-members.html b/docs/reference/api/doxygen/classtvm_1_1Constant-members.html
index 3bab3c354e5..a0c715c2ae5 100644
--- a/docs/reference/api/doxygen/classtvm_1_1Constant-members.html
+++ b/docs/reference/api/doxygen/classtvm_1_1Constant-members.html
@@ -79,11 +79,13 @@ $(function() {
<p>This is the complete list of members for <a class="el" href="classtvm_1_1Constant.html">tvm::Constant</a>, including all inherited members.</p>
<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1Constant.html#a977fdc57b32ff9ac646aa8c325b10ac9">Constant</a>(ffi::ObjectPtr< ConstantNode > node)</td><td class="entry"><a class="el" href="classtvm_1_1Constant.html">tvm::Constant</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classtvm_1_1Expr.html#aad84c3380b07b63427dda3697a78b269">Expr</a>(ffi::ObjectPtr< ExprNode > node)</td><td class="entry"><a class="el" href="classtvm_1_1Expr.html">tvm::Expr</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classtvm_1_1Expr.html#a86bd9da75268e479e3bbe61729dce8ac">operator!=</a>(const Expr &other) const =delete</td><td class="entry"><a class="el" href="classtvm_1_1Expr.html">tvm::Expr</a></td><td class="entry"></td></tr>
<tr class="odd"><td class="entry"><a class="el" href="classtvm_1_1Expr.html#afb14020d9ae652a64a6f15dcba073c0e">operator<</a>(const Expr &other) const =delete</td><td class="entry"><a class="el" href="classtvm_1_1Expr.html">tvm::Expr</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classtvm_1_1Expr.html#a637231cfc91838b8f14745ac199b5fbf">operator==</a>(const Expr &other) const =delete</td><td class="entry"><a class="el" href="classtvm_1_1Expr.html">tvm::Expr</a></td><td class="entry"></td></tr>
- <tr class="odd"><td class="entry"><a class="el" href="classtvm_1_1Constant.html#a5a5ab2ad3307fc08180ae579214f5215">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE</a>(Constant, Expr, ConstantNode)</td><td class="entry"><a class="el" href="classtvm_1_1Constant.html">tvm::Constant</a></td><td class="entry"></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1Expr.html#a081d3512d899e352e81e8eda6385c444">tvm::Expr::TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE</a>(Expr, ffi::ObjectRef, ExprNode)</td><td class="entry"><a class="el" href="classtvm_1_1Expr.html">tvm::Expr</a></td><td class="entry"></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classtvm_1_1Constant.html#a024d132ab1c462a83b0f752fda6299dc">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NOTNULLABLE</a>(Constant, Expr, ConstantNode)</td><td class="entry"><a class="el" href="classtvm_1_1Constant.html">tvm::Constant</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1Expr.html#a26775d381ee6e7c7bb65b8a7320f5b87">tvm::Expr::TVM_FFI_DEFINE_OBJECT_REF_METHODS_NOTNULLABLE</a>(Expr, ffi::ObjectRef, ExprNode)</td><td class="entry"><a class="el" href="classtvm_1_1Expr.html">tvm::Expr</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/docs/reference/api/doxygen/classtvm_1_1Constant.html b/docs/reference/api/doxygen/classtvm_1_1Constant.html
index 23f4275278e..fd6b9de1c5e 100644
--- a/docs/reference/api/doxygen/classtvm_1_1Constant.html
+++ b/docs/reference/api/doxygen/classtvm_1_1Constant.html
@@ -87,18 +87,20 @@ $(function() {
<div class="dynheader">
Inheritance diagram for tvm::Constant:</div>
<div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1Constant__inherit__graph.svg" width="715" height="575"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
+<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1Constant__inherit__graph.svg" width="799" height="635"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
<div class="dynheader">
Collaboration diagram for tvm::Constant:</div>
<div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1Constant__coll__graph.svg" width="230" height="392"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
+<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1Constant__coll__graph.svg" width="258" height="432"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
-<tr class="memitem:a5a5ab2ad3307fc08180ae579214f5215" id="r_a5a5ab2ad3307fc08180ae579214f5215"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1Constant.html#a5a5ab2ad3307fc08180ae579214f5215">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE</a> (<a class="el" href="classtvm_1_1Constant.html">Constant</a>, <a class="el" href="classtvm_1_1Expr.html">Expr</a>, <a class="el" href="classtvm_1_1ConstantNode.html"> [...]
-<tr class="separator:a5a5ab2ad3307fc08180ae579214f5215"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a977fdc57b32ff9ac646aa8c325b10ac9" id="r_a977fdc57b32ff9ac646aa8c325b10ac9"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1Constant.html#a977fdc57b32ff9ac646aa8c325b10ac9">Constant</a> (ffi::ObjectPtr< <a class="el" href="classtvm_1_1ConstantNode.html">ConstantNode</a> > node)</td></tr>
+<tr class="separator:a977fdc57b32ff9ac646aa8c325b10ac9"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a024d132ab1c462a83b0f752fda6299dc" id="r_a024d132ab1c462a83b0f752fda6299dc"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1Constant.html#a024d132ab1c462a83b0f752fda6299dc">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NOTNULLABLE</a> (<a class="el" href="classtvm_1_1Constant.html">Constant</a>, <a class="el" href="classtvm_1_1Expr.html">Expr</a>, <a class="el" href="classtvm_1_1ConstantNode.htm [...]
+<tr class="separator:a024d132ab1c462a83b0f752fda6299dc"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="inherit_header pub_methods_classtvm_1_1Expr"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classtvm_1_1Expr')"><img src="closed.png" alt="-"/> Public Member Functions inherited from <a class="el" href="classtvm_1_1Expr.html">tvm::Expr</a></td></tr>
<tr class="memitem:a637231cfc91838b8f14745ac199b5fbf inherit pub_methods_classtvm_1_1Expr" id="r_a637231cfc91838b8f14745ac199b5fbf"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1Expr.html#a637231cfc91838b8f14745ac199b5fbf">operator==</a> (const <a class="el" href="classtvm_1_1Expr.html">Expr</a> &other) const =delete</td></tr>
<tr class="separator:a637231cfc91838b8f14745ac199b5fbf inherit pub_methods_classtvm_1_1Expr"><td class="memSeparator" colspan="2"> </td></tr>
@@ -106,20 +108,49 @@ Public Member Functions</h2></td></tr>
<tr class="separator:a86bd9da75268e479e3bbe61729dce8ac inherit pub_methods_classtvm_1_1Expr"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:afb14020d9ae652a64a6f15dcba073c0e inherit pub_methods_classtvm_1_1Expr" id="r_afb14020d9ae652a64a6f15dcba073c0e"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1Expr.html#afb14020d9ae652a64a6f15dcba073c0e">operator<</a> (const <a class="el" href="classtvm_1_1Expr.html">Expr</a> &other) const =delete</td></tr>
<tr class="separator:afb14020d9ae652a64a6f15dcba073c0e inherit pub_methods_classtvm_1_1Expr"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a081d3512d899e352e81e8eda6385c444 inherit pub_methods_classtvm_1_1Expr" id="r_a081d3512d899e352e81e8eda6385c444"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1Expr.html#a081d3512d899e352e81e8eda6385c444">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE</a> (<a class="el" href="classtvm_1_1Expr.html">Expr</a>, ffi::ObjectRef, <a class="el" href="classtvm_1_1ExprNode.html">ExprNode</a>)</td></tr>
-<tr class="separator:a081d3512d899e352e81e8eda6385c444 inherit pub_methods_classtvm_1_1Expr"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:aad84c3380b07b63427dda3697a78b269 inherit pub_methods_classtvm_1_1Expr" id="r_aad84c3380b07b63427dda3697a78b269"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1Expr.html#aad84c3380b07b63427dda3697a78b269">Expr</a> (ffi::ObjectPtr< <a class="el" href="classtvm_1_1ExprNode.html">ExprNode</a> > node)</td></tr>
+<tr class="separator:aad84c3380b07b63427dda3697a78b269 inherit pub_methods_classtvm_1_1Expr"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a26775d381ee6e7c7bb65b8a7320f5b87 inherit pub_methods_classtvm_1_1Expr" id="r_a26775d381ee6e7c7bb65b8a7320f5b87"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1Expr.html#a26775d381ee6e7c7bb65b8a7320f5b87">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NOTNULLABLE</a> (<a class="el" href="classtvm_1_1Expr.html">Expr</a>, ffi::ObjectRef, <a class="el" href="classtvm_1_1ExprNode.html">ExprNode</a>) [...]
+<tr class="separator:a26775d381ee6e7c7bb65b8a7320f5b87 inherit pub_methods_classtvm_1_1Expr"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Managed reference to a literal constant. </p>
-</div><h2 class="groupheader">Member Function Documentation</h2>
-<a id="a5a5ab2ad3307fc08180ae579214f5215" name="a5a5ab2ad3307fc08180ae579214f5215"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a5a5ab2ad3307fc08180ae579214f5215">◆ </a></span>TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE()</h2>
+</div><h2 class="groupheader">Constructor & Destructor Documentation</h2>
+<a id="a977fdc57b32ff9ac646aa8c325b10ac9" name="a977fdc57b32ff9ac646aa8c325b10ac9"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a977fdc57b32ff9ac646aa8c325b10ac9">◆ </a></span>Constant()</h2>
<div class="memitem">
<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
<table class="memname">
<tr>
- <td class="memname">tvm::Constant::TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE </td>
+ <td class="memname">tvm::Constant::Constant </td>
+ <td>(</td>
+ <td class="paramtype">ffi::ObjectPtr< <a class="el" href="classtvm_1_1ConstantNode.html">ConstantNode</a> > </td>
+ <td class="paramname"><em>node</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">explicit</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
+<a id="a024d132ab1c462a83b0f752fda6299dc" name="a024d132ab1c462a83b0f752fda6299dc"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a024d132ab1c462a83b0f752fda6299dc">◆ </a></span>TVM_FFI_DEFINE_OBJECT_REF_METHODS_NOTNULLABLE()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">tvm::Constant::TVM_FFI_DEFINE_OBJECT_REF_METHODS_NOTNULLABLE </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classtvm_1_1Constant.html">Constant</a> </td>
<td class="paramname">, </td>
diff --git a/docs/reference/api/doxygen/classtvm_1_1Constant__coll__graph.svg b/docs/reference/api/doxygen/classtvm_1_1Constant__coll__graph.svg
index eb5e95ce1ed..ccca02c7946 100644
--- a/docs/reference/api/doxygen/classtvm_1_1Constant__coll__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1Constant__coll__graph.svg
@@ -4,23 +4,25 @@
<!-- Generated by graphviz version 2.43.0 (0)
-->
<!-- Title: tvm::Constant Pages: 1 -->
-<svg width="172pt" height="294pt"
- viewBox="0.00 0.00 172.00 294.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 290)">
+<svg width="193pt" height="324pt"
+ viewBox="0.00 0.00 193.00 324.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 320)">
<title>tvm::Constant</title>
<!-- Node1 -->
<g id="Node000001" class="node">
<title>Node1</title>
<g id="a_Node000001"><a xlink:title="Managed reference to a literal constant.">
-<polygon fill="#999999" stroke="transparent" points="164,-60 0,-60 0,0 164,0 164,-60"/>
-<text text-anchor="start" x="47" y="-48" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::Constant</text>
-<text text-anchor="start" x="80" y="-33" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
-<text text-anchor="start" x="4" y="-18" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="17" y="-18" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
-<text text-anchor="start" x="17" y="-7" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NULLABLE()</text>
-<polygon fill="#666666" stroke="#666666" points="0,-43 0,-43 164,-43 164,-43 0,-43"/>
-<polygon fill="#666666" stroke="#666666" points="0,-28 0,-28 164,-28 164,-28 0,-28"/>
-<polygon fill="none" stroke="#666666" points="0,0 0,-60 164,-60 164,0 0,0"/>
+<polygon fill="#999999" stroke="transparent" points="185,-75 0,-75 0,0 185,0 185,-75"/>
+<text text-anchor="start" x="58" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::Constant</text>
+<text text-anchor="start" x="91" y="-47.5" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
+<text text-anchor="start" x="4.5" y="-32.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="17.5" y="-32.5" font-family="Helvetica,sans-Serif" font-size="10.00">Constant()</text>
+<text text-anchor="start" x="4.5" y="-17.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="17.5" y="-17.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
+<text text-anchor="start" x="17.5" y="-6.5" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NOTNULLABLE()</text>
+<polygon fill="#666666" stroke="#666666" points="0.5,-57.5 0.5,-57.5 185.5,-57.5 185.5,-57.5 0.5,-57.5"/>
+<polygon fill="#666666" stroke="#666666" points="0.5,-42.5 0.5,-42.5 185.5,-42.5 185.5,-42.5 0.5,-42.5"/>
+<polygon fill="none" stroke="#666666" points="0,0 0,-75 185,-75 185,0 0,0"/>
</a>
</g>
</g>
@@ -28,21 +30,23 @@
<g id="Node000002" class="node">
<title>Node2</title>
<g id="a_Node000002"><a xlink:href="classtvm_1_1Expr.html" target="_top" xlink:title="Managed reference to ExprNode.">
-<polygon fill="white" stroke="transparent" points="164,-201 0,-201 0,-96 164,-96 164,-201"/>
-<text text-anchor="start" x="58" y="-188.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::Expr</text>
-<text text-anchor="start" x="80" y="-173.5" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
-<text text-anchor="start" x="4" y="-158.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="17" y="-158.5" font-family="Helvetica,sans-Serif" font-size="10.00">operator==()</text>
-<text text-anchor="start" x="4" y="-143.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="17" y="-143.5" font-family="Helvetica,sans-Serif" font-size="10.00">operator!=()</text>
-<text text-anchor="start" x="4" y="-128.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="17" y="-128.5" font-family="Helvetica,sans-Serif" font-size="10.00">operator<()</text>
-<text text-anchor="start" x="4" y="-113.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="17" y="-113.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
-<text text-anchor="start" x="17" y="-102.5" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NULLABLE()</text>
-<polygon fill="#666666" stroke="#666666" points="0,-183.5 0,-183.5 164,-183.5 164,-183.5 0,-183.5"/>
-<polygon fill="#666666" stroke="#666666" points="0,-168.5 0,-168.5 164,-168.5 164,-168.5 0,-168.5"/>
-<polygon fill="none" stroke="#666666" points="0,-96 0,-201 164,-201 164,-96 0,-96"/>
+<polygon fill="white" stroke="transparent" points="185,-231 0,-231 0,-111 185,-111 185,-231"/>
+<text text-anchor="start" x="69" y="-219" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::Expr</text>
+<text text-anchor="start" x="91" y="-204" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
+<text text-anchor="start" x="4.5" y="-189" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="17.5" y="-189" font-family="Helvetica,sans-Serif" font-size="10.00">operator==()</text>
+<text text-anchor="start" x="4.5" y="-174" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="17.5" y="-174" font-family="Helvetica,sans-Serif" font-size="10.00">operator!=()</text>
+<text text-anchor="start" x="4.5" y="-159" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="17.5" y="-159" font-family="Helvetica,sans-Serif" font-size="10.00">operator<()</text>
+<text text-anchor="start" x="4.5" y="-144" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="17.5" y="-144" font-family="Helvetica,sans-Serif" font-size="10.00">Expr()</text>
+<text text-anchor="start" x="4.5" y="-129" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="17.5" y="-129" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
+<text text-anchor="start" x="17.5" y="-118" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NOTNULLABLE()</text>
+<polygon fill="#666666" stroke="#666666" points="0.5,-214 0.5,-214 185.5,-214 185.5,-214 0.5,-214"/>
+<polygon fill="#666666" stroke="#666666" points="0.5,-199 0.5,-199 185.5,-199 185.5,-199 0.5,-199"/>
+<polygon fill="none" stroke="#666666" points="0,-111 0,-231 185,-231 185,-111 0,-111"/>
</a>
</g>
</g>
@@ -50,8 +54,8 @@
<g id="edge1_Node000001_Node000002" class="edge">
<title>Node2->Node1</title>
<g id="a_edge1_Node000001_Node000002"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M82,-85.71C82,-76.85 82,-68.09 82,-60.27"/>
-<polygon fill="none" stroke="#63b8ff" points="78.5,-85.72 82,-95.72 85.5,-85.72 78.5,-85.72"/>
+<path fill="none" stroke="#63b8ff" d="M92.5,-100.52C92.5,-91.77 92.5,-83.11 92.5,-75.16"/>
+<polygon fill="none" stroke="#63b8ff" points="89,-100.79 92.5,-110.79 96,-100.79 89,-100.79"/>
</a>
</g>
</g>
@@ -59,13 +63,13 @@
<g id="Node000003" class="node">
<title>Node3</title>
<g id="a_Node000003"><a xlink:title=" ">
-<polygon fill="white" stroke="transparent" points="119,-286 45,-286 45,-237 119,-237 119,-286"/>
-<text text-anchor="start" x="50" y="-273.5" font-family="Helvetica,sans-Serif" font-size="10.00">ffi::ObjectRef</text>
-<text text-anchor="start" x="80" y="-258.5" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
-<text text-anchor="start" x="80" y="-243.5" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
-<polygon fill="#666666" stroke="#666666" points="45,-268.5 45,-268.5 119,-268.5 119,-268.5 45,-268.5"/>
-<polygon fill="#666666" stroke="#666666" points="45,-253.5 45,-253.5 119,-253.5 119,-253.5 45,-253.5"/>
-<polygon fill="none" stroke="#666666" points="45,-237 45,-286 119,-286 119,-237 45,-237"/>
+<polygon fill="white" stroke="transparent" points="129.5,-316 55.5,-316 55.5,-267 129.5,-267 129.5,-316"/>
+<text text-anchor="start" x="60.5" y="-303.5" font-family="Helvetica,sans-Serif" font-size="10.00">ffi::ObjectRef</text>
+<text text-anchor="start" x="90.5" y="-288.5" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
+<text text-anchor="start" x="90.5" y="-273.5" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
+<polygon fill="#666666" stroke="#666666" points="55.5,-298.5 55.5,-298.5 129.5,-298.5 129.5,-298.5 55.5,-298.5"/>
+<polygon fill="#666666" stroke="#666666" points="55.5,-283.5 55.5,-283.5 129.5,-283.5 129.5,-283.5 55.5,-283.5"/>
+<polygon fill="none" stroke="#666666" points="55.5,-267 55.5,-316 129.5,-316 129.5,-267 55.5,-267"/>
</a>
</g>
</g>
@@ -73,8 +77,8 @@
<g id="edge2_Node000002_Node000003" class="edge">
<title>Node3->Node2</title>
<g id="a_edge2_Node000002_Node000003"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M82,-226.85C82,-218.79 82,-210 82,-201.32"/>
-<polygon fill="none" stroke="#63b8ff" points="78.5,-226.96 82,-236.96 85.5,-226.96 78.5,-226.96"/>
+<path fill="none" stroke="#63b8ff" d="M92.5,-256.59C92.5,-248.71 92.5,-240.09 92.5,-231.47"/>
+<polygon fill="none" stroke="#63b8ff" points="89,-256.8 92.5,-266.8 96,-256.8 89,-256.8"/>
</a>
</g>
</g>
diff --git a/docs/reference/api/doxygen/classtvm_1_1Constant__inherit__graph.svg b/docs/reference/api/doxygen/classtvm_1_1Constant__inherit__graph.svg
index 1a3ed870c2b..bb290d71dc7 100644
--- a/docs/reference/api/doxygen/classtvm_1_1Constant__inherit__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1Constant__inherit__graph.svg
@@ -4,23 +4,25 @@
<!-- Generated by graphviz version 2.43.0 (0)
-->
<!-- Title: tvm::Constant Pages: 1 -->
-<svg width="536pt" height="431pt"
- viewBox="0.00 0.00 536.00 431.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 427)">
+<svg width="599pt" height="476pt"
+ viewBox="0.00 0.00 599.00 476.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 472)">
<title>tvm::Constant</title>
<!-- Node1 -->
<g id="Node000001" class="node">
<title>Node1</title>
<g id="a_Node000001"><a xlink:title="Managed reference to a literal constant.">
-<polygon fill="#999999" stroke="transparent" points="346,-197 182,-197 182,-137 346,-137 346,-197"/>
-<text text-anchor="start" x="229" y="-185" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::Constant</text>
-<text text-anchor="start" x="262" y="-170" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
-<text text-anchor="start" x="186" y="-155" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="199" y="-155" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
-<text text-anchor="start" x="199" y="-144" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NULLABLE()</text>
-<polygon fill="#666666" stroke="#666666" points="182,-180 182,-180 346,-180 346,-180 182,-180"/>
-<polygon fill="#666666" stroke="#666666" points="182,-165 182,-165 346,-165 346,-165 182,-165"/>
-<polygon fill="none" stroke="#666666" points="182,-137 182,-197 346,-197 346,-137 182,-137"/>
+<polygon fill="#999999" stroke="transparent" points="388,-227 203,-227 203,-152 388,-152 388,-227"/>
+<text text-anchor="start" x="261" y="-214.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::Constant</text>
+<text text-anchor="start" x="294" y="-199.5" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
+<text text-anchor="start" x="207.5" y="-184.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="220.5" y="-184.5" font-family="Helvetica,sans-Serif" font-size="10.00">Constant()</text>
+<text text-anchor="start" x="207.5" y="-169.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="220.5" y="-169.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
+<text text-anchor="start" x="220.5" y="-158.5" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NOTNULLABLE()</text>
+<polygon fill="#666666" stroke="#666666" points="203.5,-209.5 203.5,-209.5 388.5,-209.5 388.5,-209.5 203.5,-209.5"/>
+<polygon fill="#666666" stroke="#666666" points="203.5,-194.5 203.5,-194.5 388.5,-194.5 388.5,-194.5 203.5,-194.5"/>
+<polygon fill="none" stroke="#666666" points="203,-152 203,-227 388,-227 388,-152 203,-152"/>
</a>
</g>
</g>
@@ -28,20 +30,22 @@
<g id="Node000004" class="node">
<title>Node4</title>
<g id="a_Node000004"><a xlink:href="classtvm_1_1DataTypeImm.html" target="_top" xlink:title="Managed reference to a data type literal.">
-<polygon fill="white" stroke="transparent" points="164,-101 0,-101 0,0 164,0 164,-101"/>
-<text text-anchor="start" x="35" y="-88.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::DataTypeImm</text>
-<text text-anchor="start" x="80" y="-73.5" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
-<text text-anchor="start" x="4" y="-58.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="17" y="-58.5" font-family="Helvetica,sans-Serif" font-size="10.00">DataTypeImm()</text>
-<text text-anchor="start" x="4" y="-43.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="17" y="-43.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
-<text text-anchor="start" x="17" y="-32.5" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NULLABLE()</text>
-<text text-anchor="start" x="4" y="-17.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="17" y="-17.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="17" y="-6.5" font-family="Helvetica,sans-Serif" font-size="10.00">_COW_METHOD()</text>
-<polygon fill="#666666" stroke="#666666" points="0,-83.5 0,-83.5 164,-83.5 164,-83.5 0,-83.5"/>
-<polygon fill="#666666" stroke="#666666" points="0,-68.5 0,-68.5 164,-68.5 164,-68.5 0,-68.5"/>
-<polygon fill="none" stroke="#666666" points="0,0 0,-101 164,-101 164,0 0,0"/>
+<polygon fill="white" stroke="transparent" points="185,-116 0,-116 0,0 185,0 185,-116"/>
+<text text-anchor="start" x="46" y="-104" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::DataTypeImm</text>
+<text text-anchor="start" x="91" y="-89" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
+<text text-anchor="start" x="4.5" y="-74" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="17.5" y="-74" font-family="Helvetica,sans-Serif" font-size="10.00">DataTypeImm()</text>
+<text text-anchor="start" x="4.5" y="-59" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="17.5" y="-59" font-family="Helvetica,sans-Serif" font-size="10.00">DataTypeImm()</text>
+<text text-anchor="start" x="4.5" y="-44" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="17.5" y="-44" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
+<text text-anchor="start" x="17.5" y="-33" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NOTNULLABLE()</text>
+<text text-anchor="start" x="4.5" y="-18" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="17.5" y="-18" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="17.5" y="-7" font-family="Helvetica,sans-Serif" font-size="10.00">_COW_METHOD()</text>
+<polygon fill="#666666" stroke="#666666" points="0.5,-99 0.5,-99 185.5,-99 185.5,-99 0.5,-99"/>
+<polygon fill="#666666" stroke="#666666" points="0.5,-84 0.5,-84 185.5,-84 185.5,-84 0.5,-84"/>
+<polygon fill="none" stroke="#666666" points="0,0 0,-116 185,-116 185,0 0,0"/>
</a>
</g>
</g>
@@ -49,8 +53,8 @@
<g id="edge3_Node000001_Node000004" class="edge">
<title>Node1->Node4</title>
<g id="a_edge3_Node000001_Node000004"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M208.89,-131.33C193.75,-121.8 177.03,-111.29 160.84,-101.1"/>
-<polygon fill="none" stroke="#63b8ff" points="207.27,-134.45 217.6,-136.81 211,-128.52 207.27,-134.45"/>
+<path fill="none" stroke="#63b8ff" d="M229.38,-146.32C214.25,-136.67 197.91,-126.24 181.97,-116.08"/>
+<polygon fill="none" stroke="#63b8ff" points="227.83,-149.48 238.14,-151.91 231.59,-143.58 227.83,-149.48"/>
</a>
</g>
</g>
@@ -58,20 +62,22 @@
<g id="Node000005" class="node">
<title>Node5</title>
<g id="a_Node000005"><a xlink:href="classtvm_1_1GenericConst.html" target="_top" xlink:title="Managed reference to a generic constant.">
-<polygon fill="white" stroke="transparent" points="346,-101 182,-101 182,0 346,0 346,-101"/>
-<text text-anchor="start" x="218.5" y="-88.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::GenericConst</text>
-<text text-anchor="start" x="262" y="-73.5" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
-<text text-anchor="start" x="186" y="-58.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="199" y="-58.5" font-family="Helvetica,sans-Serif" font-size="10.00">GenericConst()</text>
-<text text-anchor="start" x="186" y="-43.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="199" y="-43.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
-<text text-anchor="start" x="199" y="-32.5" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NULLABLE()</text>
-<text text-anchor="start" x="186" y="-17.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="199" y="-17.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="199" y="-6.5" font-family="Helvetica,sans-Serif" font-size="10.00">_COW_METHOD()</text>
-<polygon fill="#666666" stroke="#666666" points="182,-83.5 182,-83.5 346,-83.5 346,-83.5 182,-83.5"/>
-<polygon fill="#666666" stroke="#666666" points="182,-68.5 182,-68.5 346,-68.5 346,-68.5 182,-68.5"/>
-<polygon fill="none" stroke="#666666" points="182,0 182,-101 346,-101 346,0 182,0"/>
+<polygon fill="white" stroke="transparent" points="388,-116 203,-116 203,0 388,0 388,-116"/>
+<text text-anchor="start" x="250.5" y="-104" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::GenericConst</text>
+<text text-anchor="start" x="294" y="-89" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
+<text text-anchor="start" x="207.5" y="-74" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="220.5" y="-74" font-family="Helvetica,sans-Serif" font-size="10.00">GenericConst()</text>
+<text text-anchor="start" x="207.5" y="-59" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="220.5" y="-59" font-family="Helvetica,sans-Serif" font-size="10.00">GenericConst()</text>
+<text text-anchor="start" x="207.5" y="-44" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="220.5" y="-44" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
+<text text-anchor="start" x="220.5" y="-33" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NOTNULLABLE()</text>
+<text text-anchor="start" x="207.5" y="-18" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="220.5" y="-18" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="220.5" y="-7" font-family="Helvetica,sans-Serif" font-size="10.00">_COW_METHOD()</text>
+<polygon fill="#666666" stroke="#666666" points="203.5,-99 203.5,-99 388.5,-99 388.5,-99 203.5,-99"/>
+<polygon fill="#666666" stroke="#666666" points="203.5,-84 203.5,-84 388.5,-84 388.5,-84 203.5,-84"/>
+<polygon fill="none" stroke="#666666" points="203,0 203,-116 388,-116 388,0 203,0"/>
</a>
</g>
</g>
@@ -79,8 +85,8 @@
<g id="edge4_Node000001_Node000005" class="edge">
<title>Node1->Node5</title>
<g id="a_edge4_Node000001_Node000005"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M264,-126.72C264,-118.47 264,-109.67 264,-101.1"/>
-<polygon fill="none" stroke="#63b8ff" points="260.5,-126.81 264,-136.81 267.5,-126.81 260.5,-126.81"/>
+<path fill="none" stroke="#63b8ff" d="M295.5,-141.57C295.5,-133.33 295.5,-124.67 295.5,-116.19"/>
+<polygon fill="none" stroke="#63b8ff" points="292,-141.74 295.5,-151.74 299,-141.74 292,-141.74"/>
</a>
</g>
</g>
@@ -88,20 +94,22 @@
<g id="Node000006" class="node">
<title>Node6</title>
<g id="a_Node000006"><a xlink:href="classtvm_1_1StringImm.html" target="_top" xlink:title="Managed reference to a string literal.">
-<polygon fill="white" stroke="transparent" points="528,-101 364,-101 364,0 528,0 528,-101"/>
-<text text-anchor="start" x="407.5" y="-88.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::StringImm</text>
-<text text-anchor="start" x="444" y="-73.5" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
-<text text-anchor="start" x="368" y="-58.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="381" y="-58.5" font-family="Helvetica,sans-Serif" font-size="10.00">StringImm()</text>
-<text text-anchor="start" x="368" y="-43.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="381" y="-43.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
-<text text-anchor="start" x="381" y="-32.5" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NULLABLE()</text>
-<text text-anchor="start" x="368" y="-17.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="381" y="-17.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="381" y="-6.5" font-family="Helvetica,sans-Serif" font-size="10.00">_COW_METHOD()</text>
-<polygon fill="#666666" stroke="#666666" points="364,-83.5 364,-83.5 528,-83.5 528,-83.5 364,-83.5"/>
-<polygon fill="#666666" stroke="#666666" points="364,-68.5 364,-68.5 528,-68.5 528,-68.5 364,-68.5"/>
-<polygon fill="none" stroke="#666666" points="364,0 364,-101 528,-101 528,0 364,0"/>
+<polygon fill="white" stroke="transparent" points="591,-116 406,-116 406,0 591,0 591,-116"/>
+<text text-anchor="start" x="460.5" y="-104" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::StringImm</text>
+<text text-anchor="start" x="497" y="-89" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
+<text text-anchor="start" x="410.5" y="-74" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="423.5" y="-74" font-family="Helvetica,sans-Serif" font-size="10.00">StringImm()</text>
+<text text-anchor="start" x="410.5" y="-59" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="423.5" y="-59" font-family="Helvetica,sans-Serif" font-size="10.00">StringImm()</text>
+<text text-anchor="start" x="410.5" y="-44" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="423.5" y="-44" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
+<text text-anchor="start" x="423.5" y="-33" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NOTNULLABLE()</text>
+<text text-anchor="start" x="410.5" y="-18" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="423.5" y="-18" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="423.5" y="-7" font-family="Helvetica,sans-Serif" font-size="10.00">_COW_METHOD()</text>
+<polygon fill="#666666" stroke="#666666" points="406.5,-99 406.5,-99 591.5,-99 591.5,-99 406.5,-99"/>
+<polygon fill="#666666" stroke="#666666" points="406.5,-84 406.5,-84 591.5,-84 591.5,-84 406.5,-84"/>
+<polygon fill="none" stroke="#666666" points="406,0 406,-116 591,-116 591,0 406,0"/>
</a>
</g>
</g>
@@ -109,8 +117,8 @@
<g id="edge5_Node000001_Node000006" class="edge">
<title>Node1->Node6</title>
<g id="a_edge5_Node000001_Node000006"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M319.11,-131.33C334.25,-121.8 350.97,-111.29 367.16,-101.1"/>
-<polygon fill="none" stroke="#63b8ff" points="317,-128.52 310.4,-136.81 320.73,-134.45 317,-128.52"/>
+<path fill="none" stroke="#63b8ff" d="M361.62,-146.32C376.75,-136.67 393.09,-126.24 409.03,-116.08"/>
+<polygon fill="none" stroke="#63b8ff" points="359.41,-143.58 352.86,-151.91 363.17,-149.48 359.41,-143.58"/>
</a>
</g>
</g>
@@ -118,21 +126,23 @@
<g id="Node000002" class="node">
<title>Node2</title>
<g id="a_Node000002"><a xlink:href="classtvm_1_1Expr.html" target="_top" xlink:title="Managed reference to ExprNode.">
-<polygon fill="white" stroke="transparent" points="346,-338 182,-338 182,-233 346,-233 346,-338"/>
-<text text-anchor="start" x="240" y="-325.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::Expr</text>
-<text text-anchor="start" x="262" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
-<text text-anchor="start" x="186" y="-295.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="199" y="-295.5" font-family="Helvetica,sans-Serif" font-size="10.00">operator==()</text>
-<text text-anchor="start" x="186" y="-280.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="199" y="-280.5" font-family="Helvetica,sans-Serif" font-size="10.00">operator!=()</text>
-<text text-anchor="start" x="186" y="-265.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="199" y="-265.5" font-family="Helvetica,sans-Serif" font-size="10.00">operator<()</text>
-<text text-anchor="start" x="186" y="-250.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="199" y="-250.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
-<text text-anchor="start" x="199" y="-239.5" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NULLABLE()</text>
-<polygon fill="#666666" stroke="#666666" points="182,-320.5 182,-320.5 346,-320.5 346,-320.5 182,-320.5"/>
-<polygon fill="#666666" stroke="#666666" points="182,-305.5 182,-305.5 346,-305.5 346,-305.5 182,-305.5"/>
-<polygon fill="none" stroke="#666666" points="182,-233 182,-338 346,-338 346,-233 182,-233"/>
+<polygon fill="white" stroke="transparent" points="388,-383 203,-383 203,-263 388,-263 388,-383"/>
+<text text-anchor="start" x="272" y="-371" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::Expr</text>
+<text text-anchor="start" x="294" y="-356" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
+<text text-anchor="start" x="207.5" y="-341" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="220.5" y="-341" font-family="Helvetica,sans-Serif" font-size="10.00">operator==()</text>
+<text text-anchor="start" x="207.5" y="-326" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="220.5" y="-326" font-family="Helvetica,sans-Serif" font-size="10.00">operator!=()</text>
+<text text-anchor="start" x="207.5" y="-311" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="220.5" y="-311" font-family="Helvetica,sans-Serif" font-size="10.00">operator<()</text>
+<text text-anchor="start" x="207.5" y="-296" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="220.5" y="-296" font-family="Helvetica,sans-Serif" font-size="10.00">Expr()</text>
+<text text-anchor="start" x="207.5" y="-281" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="220.5" y="-281" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
+<text text-anchor="start" x="220.5" y="-270" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NOTNULLABLE()</text>
+<polygon fill="#666666" stroke="#666666" points="203.5,-366 203.5,-366 388.5,-366 388.5,-366 203.5,-366"/>
+<polygon fill="#666666" stroke="#666666" points="203.5,-351 203.5,-351 388.5,-351 388.5,-351 203.5,-351"/>
+<polygon fill="none" stroke="#666666" points="203,-263 203,-383 388,-383 388,-263 203,-263"/>
</a>
</g>
</g>
@@ -140,8 +150,8 @@
<g id="edge1_Node000001_Node000002" class="edge">
<title>Node2->Node1</title>
<g id="a_edge1_Node000001_Node000002"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M264,-222.71C264,-213.85 264,-205.09 264,-197.27"/>
-<polygon fill="none" stroke="#63b8ff" points="260.5,-222.72 264,-232.72 267.5,-222.72 260.5,-222.72"/>
+<path fill="none" stroke="#63b8ff" d="M295.5,-252.52C295.5,-243.77 295.5,-235.11 295.5,-227.16"/>
+<polygon fill="none" stroke="#63b8ff" points="292,-252.79 295.5,-262.79 299,-252.79 292,-252.79"/>
</a>
</g>
</g>
@@ -149,13 +159,13 @@
<g id="Node000003" class="node">
<title>Node3</title>
<g id="a_Node000003"><a xlink:title=" ">
-<polygon fill="white" stroke="transparent" points="301,-423 227,-423 227,-374 301,-374 301,-423"/>
-<text text-anchor="start" x="232" y="-410.5" font-family="Helvetica,sans-Serif" font-size="10.00">ffi::ObjectRef</text>
-<text text-anchor="start" x="262" y="-395.5" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
-<text text-anchor="start" x="262" y="-380.5" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
-<polygon fill="#666666" stroke="#666666" points="227,-405.5 227,-405.5 301,-405.5 301,-405.5 227,-405.5"/>
-<polygon fill="#666666" stroke="#666666" points="227,-390.5 227,-390.5 301,-390.5 301,-390.5 227,-390.5"/>
-<polygon fill="none" stroke="#666666" points="227,-374 227,-423 301,-423 301,-374 227,-374"/>
+<polygon fill="white" stroke="transparent" points="332.5,-468 258.5,-468 258.5,-419 332.5,-419 332.5,-468"/>
+<text text-anchor="start" x="263.5" y="-455.5" font-family="Helvetica,sans-Serif" font-size="10.00">ffi::ObjectRef</text>
+<text text-anchor="start" x="293.5" y="-440.5" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
+<text text-anchor="start" x="293.5" y="-425.5" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
+<polygon fill="#666666" stroke="#666666" points="258.5,-450.5 258.5,-450.5 332.5,-450.5 332.5,-450.5 258.5,-450.5"/>
+<polygon fill="#666666" stroke="#666666" points="258.5,-435.5 258.5,-435.5 332.5,-435.5 332.5,-435.5 258.5,-435.5"/>
+<polygon fill="none" stroke="#666666" points="258.5,-419 258.5,-468 332.5,-468 332.5,-419 258.5,-419"/>
</a>
</g>
</g>
@@ -163,8 +173,8 @@
<g id="edge2_Node000002_Node000003" class="edge">
<title>Node3->Node2</title>
<g id="a_edge2_Node000002_Node000003"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M264,-363.85C264,-355.79 264,-347 264,-338.32"/>
-<polygon fill="none" stroke="#63b8ff" points="260.5,-363.96 264,-373.96 267.5,-363.96 260.5,-363.96"/>
+<path fill="none" stroke="#63b8ff" d="M295.5,-408.59C295.5,-400.71 295.5,-392.09 295.5,-383.47"/>
+<polygon fill="none" stroke="#63b8ff" points="292,-408.8 295.5,-418.8 299,-408.8 292,-408.8"/>
</a>
</g>
</g>
diff --git a/docs/reference/api/doxygen/classtvm_1_1DataTypeImm-members.html b/docs/reference/api/doxygen/classtvm_1_1DataTypeImm-members.html
index 8c5f49b4e29..723209d63ba 100644
--- a/docs/reference/api/doxygen/classtvm_1_1DataTypeImm-members.html
+++ b/docs/reference/api/doxygen/classtvm_1_1DataTypeImm-members.html
@@ -79,14 +79,17 @@ $(function() {
<p>This is the complete list of members for <a class="el" href="classtvm_1_1DataTypeImm.html">tvm::DataTypeImm</a>, including all inherited members.</p>
<table class="directory">
- <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1DataTypeImm.html#a3ba48b8afe677b2affb7386fdfbe6813">DataTypeImm</a>(DLDataType value, Span span=Span())</td><td class="entry"><a class="el" href="classtvm_1_1DataTypeImm.html">tvm::DataTypeImm</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr>
- <tr class="odd"><td class="entry"><a class="el" href="classtvm_1_1Expr.html#a86bd9da75268e479e3bbe61729dce8ac">operator!=</a>(const Expr &other) const =delete</td><td class="entry"><a class="el" href="classtvm_1_1Expr.html">tvm::Expr</a></td><td class="entry"></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1Expr.html#afb14020d9ae652a64a6f15dcba073c0e">operator<</a>(const Expr &other) const =delete</td><td class="entry"><a class="el" href="classtvm_1_1Expr.html">tvm::Expr</a></td><td class="entry"></td></tr>
- <tr class="odd"><td class="entry"><a class="el" href="classtvm_1_1Expr.html#a637231cfc91838b8f14745ac199b5fbf">operator==</a>(const Expr &other) const =delete</td><td class="entry"><a class="el" href="classtvm_1_1Expr.html">tvm::Expr</a></td><td class="entry"></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1DataTypeImm.html#a550c40d2c8220fbc07141cc071a38836">TVM_DEFINE_OBJECT_REF_COW_METHOD</a>(DataTypeImmNode)</td><td class="entry"><a class="el" href="classtvm_1_1DataTypeImm.html">tvm::DataTypeImm</a></td><td class="entry"></td></tr>
- <tr class="odd"><td class="entry"><a class="el" href="classtvm_1_1DataTypeImm.html#aa519c2e6237124f8db6414319cd20ba2">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE</a>(DataTypeImm, Constant, DataTypeImmNode)</td><td class="entry"><a class="el" href="classtvm_1_1DataTypeImm.html">tvm::DataTypeImm</a></td><td class="entry"></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1Constant.html#a5a5ab2ad3307fc08180ae579214f5215">tvm::Constant::TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE</a>(Constant, Expr, ConstantNode)</td><td class="entry"><a class="el" href="classtvm_1_1Constant.html">tvm::Constant</a></td><td class="entry"></td></tr>
- <tr class="odd"><td class="entry"><a class="el" href="classtvm_1_1Expr.html#a081d3512d899e352e81e8eda6385c444">tvm::Expr::TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE</a>(Expr, ffi::ObjectRef, ExprNode)</td><td class="entry"><a class="el" href="classtvm_1_1Expr.html">tvm::Expr</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1Constant.html#a977fdc57b32ff9ac646aa8c325b10ac9">Constant</a>(ffi::ObjectPtr< ConstantNode > node)</td><td class="entry"><a class="el" href="classtvm_1_1Constant.html">tvm::Constant</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classtvm_1_1DataTypeImm.html#a3ba48b8afe677b2affb7386fdfbe6813">DataTypeImm</a>(DLDataType value, Span span=Span())</td><td class="entry"><a class="el" href="classtvm_1_1DataTypeImm.html">tvm::DataTypeImm</a></td><td class="entry"><span class="mlabel">explicit</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1DataTypeImm.html#a3a764f3ea1ad801cc15c29c718caa796">DataTypeImm</a>(ffi::ObjectPtr< DataTypeImmNode > node)</td><td class="entry"><a class="el" href="classtvm_1_1DataTypeImm.html">tvm::DataTypeImm</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classtvm_1_1Expr.html#aad84c3380b07b63427dda3697a78b269">Expr</a>(ffi::ObjectPtr< ExprNode > node)</td><td class="entry"><a class="el" href="classtvm_1_1Expr.html">tvm::Expr</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1Expr.html#a86bd9da75268e479e3bbe61729dce8ac">operator!=</a>(const Expr &other) const =delete</td><td class="entry"><a class="el" href="classtvm_1_1Expr.html">tvm::Expr</a></td><td class="entry"></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classtvm_1_1Expr.html#afb14020d9ae652a64a6f15dcba073c0e">operator<</a>(const Expr &other) const =delete</td><td class="entry"><a class="el" href="classtvm_1_1Expr.html">tvm::Expr</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1Expr.html#a637231cfc91838b8f14745ac199b5fbf">operator==</a>(const Expr &other) const =delete</td><td class="entry"><a class="el" href="classtvm_1_1Expr.html">tvm::Expr</a></td><td class="entry"></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classtvm_1_1DataTypeImm.html#a550c40d2c8220fbc07141cc071a38836">TVM_DEFINE_OBJECT_REF_COW_METHOD</a>(DataTypeImmNode)</td><td class="entry"><a class="el" href="classtvm_1_1DataTypeImm.html">tvm::DataTypeImm</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1DataTypeImm.html#aa8f145627f42fc61e3fa0c5fef8a4b40">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NOTNULLABLE</a>(DataTypeImm, Constant, DataTypeImmNode)</td><td class="entry"><a class="el" href="classtvm_1_1DataTypeImm.html">tvm::DataTypeImm</a></td><td class="entry"></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classtvm_1_1Constant.html#a024d132ab1c462a83b0f752fda6299dc">tvm::Constant::TVM_FFI_DEFINE_OBJECT_REF_METHODS_NOTNULLABLE</a>(Constant, Expr, ConstantNode)</td><td class="entry"><a class="el" href="classtvm_1_1Constant.html">tvm::Constant</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1Expr.html#a26775d381ee6e7c7bb65b8a7320f5b87">tvm::Expr::TVM_FFI_DEFINE_OBJECT_REF_METHODS_NOTNULLABLE</a>(Expr, ffi::ObjectRef, ExprNode)</td><td class="entry"><a class="el" href="classtvm_1_1Expr.html">tvm::Expr</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/docs/reference/api/doxygen/classtvm_1_1DataTypeImm.html b/docs/reference/api/doxygen/classtvm_1_1DataTypeImm.html
index 474a2600a25..487a28308db 100644
--- a/docs/reference/api/doxygen/classtvm_1_1DataTypeImm.html
+++ b/docs/reference/api/doxygen/classtvm_1_1DataTypeImm.html
@@ -87,25 +87,29 @@ $(function() {
<div class="dynheader">
Inheritance diagram for tvm::DataTypeImm:</div>
<div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1DataTypeImm__inherit__graph.svg" width="230" height="575"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
+<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1DataTypeImm__inherit__graph.svg" width="258" height="635"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
<div class="dynheader">
Collaboration diagram for tvm::DataTypeImm:</div>
<div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1DataTypeImm__coll__graph.svg" width="230" height="575"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
+<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1DataTypeImm__coll__graph.svg" width="258" height="635"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a3ba48b8afe677b2affb7386fdfbe6813" id="r_a3ba48b8afe677b2affb7386fdfbe6813"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1DataTypeImm.html#a3ba48b8afe677b2affb7386fdfbe6813">DataTypeImm</a> (DLDataType value, <a class="el" href="classtvm_1_1Span.html">Span</a> span=<a class="el" href="classtvm_1_1Span.html">Span</a>())</td></tr>
<tr class="separator:a3ba48b8afe677b2affb7386fdfbe6813"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:aa519c2e6237124f8db6414319cd20ba2" id="r_aa519c2e6237124f8db6414319cd20ba2"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1DataTypeImm.html#aa519c2e6237124f8db6414319cd20ba2">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE</a> (<a class="el" href="classtvm_1_1DataTypeImm.html">DataTypeImm</a>, <a class="el" href="classtvm_1_1Constant.html">Constant</a>, <a class="el" href="classtvm_1_1Da [...]
-<tr class="separator:aa519c2e6237124f8db6414319cd20ba2"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a3a764f3ea1ad801cc15c29c718caa796" id="r_a3a764f3ea1ad801cc15c29c718caa796"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1DataTypeImm.html#a3a764f3ea1ad801cc15c29c718caa796">DataTypeImm</a> (ffi::ObjectPtr< <a class="el" href="classtvm_1_1DataTypeImmNode.html">DataTypeImmNode</a> > node)</td></tr>
+<tr class="separator:a3a764f3ea1ad801cc15c29c718caa796"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:aa8f145627f42fc61e3fa0c5fef8a4b40" id="r_aa8f145627f42fc61e3fa0c5fef8a4b40"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1DataTypeImm.html#aa8f145627f42fc61e3fa0c5fef8a4b40">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NOTNULLABLE</a> (<a class="el" href="classtvm_1_1DataTypeImm.html">DataTypeImm</a>, <a class="el" href="classtvm_1_1Constant.html">Constant</a>, <a class="el" href="classtvm_1_ [...]
+<tr class="separator:aa8f145627f42fc61e3fa0c5fef8a4b40"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a550c40d2c8220fbc07141cc071a38836" id="r_a550c40d2c8220fbc07141cc071a38836"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1DataTypeImm.html#a550c40d2c8220fbc07141cc071a38836">TVM_DEFINE_OBJECT_REF_COW_METHOD</a> (<a class="el" href="classtvm_1_1DataTypeImmNode.html">DataTypeImmNode</a>)</td></tr>
<tr class="separator:a550c40d2c8220fbc07141cc071a38836"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="inherit_header pub_methods_classtvm_1_1Constant"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classtvm_1_1Constant')"><img src="closed.png" alt="-"/> Public Member Functions inherited from <a class="el" href="classtvm_1_1Constant.html">tvm::Constant</a></td></tr>
-<tr class="memitem:a5a5ab2ad3307fc08180ae579214f5215 inherit pub_methods_classtvm_1_1Constant" id="r_a5a5ab2ad3307fc08180ae579214f5215"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1Constant.html#a5a5ab2ad3307fc08180ae579214f5215">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE</a> (<a class="el" href="classtvm_1_1Constant.html">Constant</a>, <a class="el" href="classtvm_1_1Expr.html">Expr</a>, <a class=" [...]
-<tr class="separator:a5a5ab2ad3307fc08180ae579214f5215 inherit pub_methods_classtvm_1_1Constant"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a977fdc57b32ff9ac646aa8c325b10ac9 inherit pub_methods_classtvm_1_1Constant" id="r_a977fdc57b32ff9ac646aa8c325b10ac9"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1Constant.html#a977fdc57b32ff9ac646aa8c325b10ac9">Constant</a> (ffi::ObjectPtr< <a class="el" href="classtvm_1_1ConstantNode.html">ConstantNode</a> > node)</td></tr>
+<tr class="separator:a977fdc57b32ff9ac646aa8c325b10ac9 inherit pub_methods_classtvm_1_1Constant"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a024d132ab1c462a83b0f752fda6299dc inherit pub_methods_classtvm_1_1Constant" id="r_a024d132ab1c462a83b0f752fda6299dc"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1Constant.html#a024d132ab1c462a83b0f752fda6299dc">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NOTNULLABLE</a> (<a class="el" href="classtvm_1_1Constant.html">Constant</a>, <a class="el" href="classtvm_1_1Expr.html">Expr</a>, <a clas [...]
+<tr class="separator:a024d132ab1c462a83b0f752fda6299dc inherit pub_methods_classtvm_1_1Constant"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="inherit_header pub_methods_classtvm_1_1Expr"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classtvm_1_1Expr')"><img src="closed.png" alt="-"/> Public Member Functions inherited from <a class="el" href="classtvm_1_1Expr.html">tvm::Expr</a></td></tr>
<tr class="memitem:a637231cfc91838b8f14745ac199b5fbf inherit pub_methods_classtvm_1_1Expr" id="r_a637231cfc91838b8f14745ac199b5fbf"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1Expr.html#a637231cfc91838b8f14745ac199b5fbf">operator==</a> (const <a class="el" href="classtvm_1_1Expr.html">Expr</a> &other) const =delete</td></tr>
<tr class="separator:a637231cfc91838b8f14745ac199b5fbf inherit pub_methods_classtvm_1_1Expr"><td class="memSeparator" colspan="2"> </td></tr>
@@ -113,14 +117,16 @@ Public Member Functions</h2></td></tr>
<tr class="separator:a86bd9da75268e479e3bbe61729dce8ac inherit pub_methods_classtvm_1_1Expr"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:afb14020d9ae652a64a6f15dcba073c0e inherit pub_methods_classtvm_1_1Expr" id="r_afb14020d9ae652a64a6f15dcba073c0e"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1Expr.html#afb14020d9ae652a64a6f15dcba073c0e">operator<</a> (const <a class="el" href="classtvm_1_1Expr.html">Expr</a> &other) const =delete</td></tr>
<tr class="separator:afb14020d9ae652a64a6f15dcba073c0e inherit pub_methods_classtvm_1_1Expr"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a081d3512d899e352e81e8eda6385c444 inherit pub_methods_classtvm_1_1Expr" id="r_a081d3512d899e352e81e8eda6385c444"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1Expr.html#a081d3512d899e352e81e8eda6385c444">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE</a> (<a class="el" href="classtvm_1_1Expr.html">Expr</a>, ffi::ObjectRef, <a class="el" href="classtvm_1_1ExprNode.html">ExprNode</a>)</td></tr>
-<tr class="separator:a081d3512d899e352e81e8eda6385c444 inherit pub_methods_classtvm_1_1Expr"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:aad84c3380b07b63427dda3697a78b269 inherit pub_methods_classtvm_1_1Expr" id="r_aad84c3380b07b63427dda3697a78b269"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1Expr.html#aad84c3380b07b63427dda3697a78b269">Expr</a> (ffi::ObjectPtr< <a class="el" href="classtvm_1_1ExprNode.html">ExprNode</a> > node)</td></tr>
+<tr class="separator:aad84c3380b07b63427dda3697a78b269 inherit pub_methods_classtvm_1_1Expr"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a26775d381ee6e7c7bb65b8a7320f5b87 inherit pub_methods_classtvm_1_1Expr" id="r_a26775d381ee6e7c7bb65b8a7320f5b87"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1Expr.html#a26775d381ee6e7c7bb65b8a7320f5b87">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NOTNULLABLE</a> (<a class="el" href="classtvm_1_1Expr.html">Expr</a>, ffi::ObjectRef, <a class="el" href="classtvm_1_1ExprNode.html">ExprNode</a>) [...]
+<tr class="separator:a26775d381ee6e7c7bb65b8a7320f5b87 inherit pub_methods_classtvm_1_1Expr"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Managed reference to a data type literal. </p>
</div><h2 class="groupheader">Constructor & Destructor Documentation</h2>
<a id="a3ba48b8afe677b2affb7386fdfbe6813" name="a3ba48b8afe677b2affb7386fdfbe6813"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a3ba48b8afe677b2affb7386fdfbe6813">◆ </a></span>DataTypeImm()</h2>
+<h2 class="memtitle"><span class="permalink"><a href="#a3ba48b8afe677b2affb7386fdfbe6813">◆ </a></span>DataTypeImm() <span class="overload">[1/2]</span></h2>
<div class="memitem">
<div class="memproto">
@@ -153,6 +159,32 @@ Public Member Functions</h2></td></tr>
</table>
</div><div class="memdoc">
+</div>
+</div>
+<a id="a3a764f3ea1ad801cc15c29c718caa796" name="a3a764f3ea1ad801cc15c29c718caa796"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a3a764f3ea1ad801cc15c29c718caa796">◆ </a></span>DataTypeImm() <span class="overload">[2/2]</span></h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">tvm::DataTypeImm::DataTypeImm </td>
+ <td>(</td>
+ <td class="paramtype">ffi::ObjectPtr< <a class="el" href="classtvm_1_1DataTypeImmNode.html">DataTypeImmNode</a> > </td>
+ <td class="paramname"><em>node</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">explicit</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
@@ -174,14 +206,14 @@ Public Member Functions</h2></td></tr>
</div>
</div>
-<a id="aa519c2e6237124f8db6414319cd20ba2" name="aa519c2e6237124f8db6414319cd20ba2"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#aa519c2e6237124f8db6414319cd20ba2">◆ </a></span>TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE()</h2>
+<a id="aa8f145627f42fc61e3fa0c5fef8a4b40" name="aa8f145627f42fc61e3fa0c5fef8a4b40"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aa8f145627f42fc61e3fa0c5fef8a4b40">◆ </a></span>TVM_FFI_DEFINE_OBJECT_REF_METHODS_NOTNULLABLE()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">tvm::DataTypeImm::TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE </td>
+ <td class="memname">tvm::DataTypeImm::TVM_FFI_DEFINE_OBJECT_REF_METHODS_NOTNULLABLE </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classtvm_1_1DataTypeImm.html">DataTypeImm</a> </td>
<td class="paramname">, </td>
diff --git a/docs/reference/api/doxygen/classtvm_1_1DataTypeImm__coll__graph.svg b/docs/reference/api/doxygen/classtvm_1_1DataTypeImm__coll__graph.svg
index 5200dc3db80..9dc9153fe7c 100644
--- a/docs/reference/api/doxygen/classtvm_1_1DataTypeImm__coll__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1DataTypeImm__coll__graph.svg
@@ -4,28 +4,30 @@
<!-- Generated by graphviz version 2.43.0 (0)
-->
<!-- Title: tvm::DataTypeImm Pages: 1 -->
-<svg width="172pt" height="431pt"
- viewBox="0.00 0.00 172.00 431.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 427)">
+<svg width="193pt" height="476pt"
+ viewBox="0.00 0.00 193.00 476.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 472)">
<title>tvm::DataTypeImm</title>
<!-- Node1 -->
<g id="Node000001" class="node">
<title>Node1</title>
<g id="a_Node000001"><a xlink:title="Managed reference to a data type literal.">
-<polygon fill="#999999" stroke="transparent" points="164,-101 0,-101 0,0 164,0 164,-101"/>
-<text text-anchor="start" x="35" y="-88.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::DataTypeImm</text>
-<text text-anchor="start" x="80" y="-73.5" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
-<text text-anchor="start" x="4" y="-58.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="17" y="-58.5" font-family="Helvetica,sans-Serif" font-size="10.00">DataTypeImm()</text>
-<text text-anchor="start" x="4" y="-43.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="17" y="-43.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
-<text text-anchor="start" x="17" y="-32.5" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NULLABLE()</text>
-<text text-anchor="start" x="4" y="-17.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="17" y="-17.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="17" y="-6.5" font-family="Helvetica,sans-Serif" font-size="10.00">_COW_METHOD()</text>
-<polygon fill="#666666" stroke="#666666" points="0,-83.5 0,-83.5 164,-83.5 164,-83.5 0,-83.5"/>
-<polygon fill="#666666" stroke="#666666" points="0,-68.5 0,-68.5 164,-68.5 164,-68.5 0,-68.5"/>
-<polygon fill="none" stroke="#666666" points="0,0 0,-101 164,-101 164,0 0,0"/>
+<polygon fill="#999999" stroke="transparent" points="185,-116 0,-116 0,0 185,0 185,-116"/>
+<text text-anchor="start" x="46" y="-104" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::DataTypeImm</text>
+<text text-anchor="start" x="91" y="-89" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
+<text text-anchor="start" x="4.5" y="-74" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="17.5" y="-74" font-family="Helvetica,sans-Serif" font-size="10.00">DataTypeImm()</text>
+<text text-anchor="start" x="4.5" y="-59" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="17.5" y="-59" font-family="Helvetica,sans-Serif" font-size="10.00">DataTypeImm()</text>
+<text text-anchor="start" x="4.5" y="-44" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="17.5" y="-44" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
+<text text-anchor="start" x="17.5" y="-33" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NOTNULLABLE()</text>
+<text text-anchor="start" x="4.5" y="-18" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="17.5" y="-18" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="17.5" y="-7" font-family="Helvetica,sans-Serif" font-size="10.00">_COW_METHOD()</text>
+<polygon fill="#666666" stroke="#666666" points="0.5,-99 0.5,-99 185.5,-99 185.5,-99 0.5,-99"/>
+<polygon fill="#666666" stroke="#666666" points="0.5,-84 0.5,-84 185.5,-84 185.5,-84 0.5,-84"/>
+<polygon fill="none" stroke="#666666" points="0,0 0,-116 185,-116 185,0 0,0"/>
</a>
</g>
</g>
@@ -33,15 +35,17 @@
<g id="Node000002" class="node">
<title>Node2</title>
<g id="a_Node000002"><a xlink:href="classtvm_1_1Constant.html" target="_top" xlink:title="Managed reference to a literal constant.">
-<polygon fill="white" stroke="transparent" points="164,-197 0,-197 0,-137 164,-137 164,-197"/>
-<text text-anchor="start" x="47" y="-185" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::Constant</text>
-<text text-anchor="start" x="80" y="-170" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
-<text text-anchor="start" x="4" y="-155" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="17" y="-155" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
-<text text-anchor="start" x="17" y="-144" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NULLABLE()</text>
-<polygon fill="#666666" stroke="#666666" points="0,-180 0,-180 164,-180 164,-180 0,-180"/>
-<polygon fill="#666666" stroke="#666666" points="0,-165 0,-165 164,-165 164,-165 0,-165"/>
-<polygon fill="none" stroke="#666666" points="0,-137 0,-197 164,-197 164,-137 0,-137"/>
+<polygon fill="white" stroke="transparent" points="185,-227 0,-227 0,-152 185,-152 185,-227"/>
+<text text-anchor="start" x="58" y="-214.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::Constant</text>
+<text text-anchor="start" x="91" y="-199.5" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
+<text text-anchor="start" x="4.5" y="-184.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="17.5" y="-184.5" font-family="Helvetica,sans-Serif" font-size="10.00">Constant()</text>
+<text text-anchor="start" x="4.5" y="-169.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="17.5" y="-169.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
+<text text-anchor="start" x="17.5" y="-158.5" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NOTNULLABLE()</text>
+<polygon fill="#666666" stroke="#666666" points="0.5,-209.5 0.5,-209.5 185.5,-209.5 185.5,-209.5 0.5,-209.5"/>
+<polygon fill="#666666" stroke="#666666" points="0.5,-194.5 0.5,-194.5 185.5,-194.5 185.5,-194.5 0.5,-194.5"/>
+<polygon fill="none" stroke="#666666" points="0,-152 0,-227 185,-227 185,-152 0,-152"/>
</a>
</g>
</g>
@@ -49,8 +53,8 @@
<g id="edge1_Node000001_Node000002" class="edge">
<title>Node2->Node1</title>
<g id="a_edge1_Node000001_Node000002"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M82,-126.72C82,-118.47 82,-109.67 82,-101.1"/>
-<polygon fill="none" stroke="#63b8ff" points="78.5,-126.81 82,-136.81 85.5,-126.81 78.5,-126.81"/>
+<path fill="none" stroke="#63b8ff" d="M92.5,-141.57C92.5,-133.33 92.5,-124.67 92.5,-116.19"/>
+<polygon fill="none" stroke="#63b8ff" points="89,-141.74 92.5,-151.74 96,-141.74 89,-141.74"/>
</a>
</g>
</g>
@@ -58,21 +62,23 @@
<g id="Node000003" class="node">
<title>Node3</title>
<g id="a_Node000003"><a xlink:href="classtvm_1_1Expr.html" target="_top" xlink:title="Managed reference to ExprNode.">
-<polygon fill="white" stroke="transparent" points="164,-338 0,-338 0,-233 164,-233 164,-338"/>
-<text text-anchor="start" x="58" y="-325.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::Expr</text>
-<text text-anchor="start" x="80" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
-<text text-anchor="start" x="4" y="-295.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="17" y="-295.5" font-family="Helvetica,sans-Serif" font-size="10.00">operator==()</text>
-<text text-anchor="start" x="4" y="-280.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="17" y="-280.5" font-family="Helvetica,sans-Serif" font-size="10.00">operator!=()</text>
-<text text-anchor="start" x="4" y="-265.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="17" y="-265.5" font-family="Helvetica,sans-Serif" font-size="10.00">operator<()</text>
-<text text-anchor="start" x="4" y="-250.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="17" y="-250.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
-<text text-anchor="start" x="17" y="-239.5" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NULLABLE()</text>
-<polygon fill="#666666" stroke="#666666" points="0,-320.5 0,-320.5 164,-320.5 164,-320.5 0,-320.5"/>
-<polygon fill="#666666" stroke="#666666" points="0,-305.5 0,-305.5 164,-305.5 164,-305.5 0,-305.5"/>
-<polygon fill="none" stroke="#666666" points="0,-233 0,-338 164,-338 164,-233 0,-233"/>
+<polygon fill="white" stroke="transparent" points="185,-383 0,-383 0,-263 185,-263 185,-383"/>
+<text text-anchor="start" x="69" y="-371" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::Expr</text>
+<text text-anchor="start" x="91" y="-356" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
+<text text-anchor="start" x="4.5" y="-341" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="17.5" y="-341" font-family="Helvetica,sans-Serif" font-size="10.00">operator==()</text>
+<text text-anchor="start" x="4.5" y="-326" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="17.5" y="-326" font-family="Helvetica,sans-Serif" font-size="10.00">operator!=()</text>
+<text text-anchor="start" x="4.5" y="-311" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="17.5" y="-311" font-family="Helvetica,sans-Serif" font-size="10.00">operator<()</text>
+<text text-anchor="start" x="4.5" y="-296" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="17.5" y="-296" font-family="Helvetica,sans-Serif" font-size="10.00">Expr()</text>
+<text text-anchor="start" x="4.5" y="-281" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="17.5" y="-281" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
+<text text-anchor="start" x="17.5" y="-270" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NOTNULLABLE()</text>
+<polygon fill="#666666" stroke="#666666" points="0.5,-366 0.5,-366 185.5,-366 185.5,-366 0.5,-366"/>
+<polygon fill="#666666" stroke="#666666" points="0.5,-351 0.5,-351 185.5,-351 185.5,-351 0.5,-351"/>
+<polygon fill="none" stroke="#666666" points="0,-263 0,-383 185,-383 185,-263 0,-263"/>
</a>
</g>
</g>
@@ -80,8 +86,8 @@
<g id="edge2_Node000002_Node000003" class="edge">
<title>Node3->Node2</title>
<g id="a_edge2_Node000002_Node000003"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M82,-222.71C82,-213.85 82,-205.09 82,-197.27"/>
-<polygon fill="none" stroke="#63b8ff" points="78.5,-222.72 82,-232.72 85.5,-222.72 78.5,-222.72"/>
+<path fill="none" stroke="#63b8ff" d="M92.5,-252.52C92.5,-243.77 92.5,-235.11 92.5,-227.16"/>
+<polygon fill="none" stroke="#63b8ff" points="89,-252.79 92.5,-262.79 96,-252.79 89,-252.79"/>
</a>
</g>
</g>
@@ -89,13 +95,13 @@
<g id="Node000004" class="node">
<title>Node4</title>
<g id="a_Node000004"><a xlink:title=" ">
-<polygon fill="white" stroke="transparent" points="119,-423 45,-423 45,-374 119,-374 119,-423"/>
-<text text-anchor="start" x="50" y="-410.5" font-family="Helvetica,sans-Serif" font-size="10.00">ffi::ObjectRef</text>
-<text text-anchor="start" x="80" y="-395.5" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
-<text text-anchor="start" x="80" y="-380.5" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
-<polygon fill="#666666" stroke="#666666" points="45,-405.5 45,-405.5 119,-405.5 119,-405.5 45,-405.5"/>
-<polygon fill="#666666" stroke="#666666" points="45,-390.5 45,-390.5 119,-390.5 119,-390.5 45,-390.5"/>
-<polygon fill="none" stroke="#666666" points="45,-374 45,-423 119,-423 119,-374 45,-374"/>
+<polygon fill="white" stroke="transparent" points="129.5,-468 55.5,-468 55.5,-419 129.5,-419 129.5,-468"/>
+<text text-anchor="start" x="60.5" y="-455.5" font-family="Helvetica,sans-Serif" font-size="10.00">ffi::ObjectRef</text>
+<text text-anchor="start" x="90.5" y="-440.5" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
+<text text-anchor="start" x="90.5" y="-425.5" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
+<polygon fill="#666666" stroke="#666666" points="55.5,-450.5 55.5,-450.5 129.5,-450.5 129.5,-450.5 55.5,-450.5"/>
+<polygon fill="#666666" stroke="#666666" points="55.5,-435.5 55.5,-435.5 129.5,-435.5 129.5,-435.5 55.5,-435.5"/>
+<polygon fill="none" stroke="#666666" points="55.5,-419 55.5,-468 129.5,-468 129.5,-419 55.5,-419"/>
</a>
</g>
</g>
@@ -103,8 +109,8 @@
<g id="edge3_Node000003_Node000004" class="edge">
<title>Node4->Node3</title>
<g id="a_edge3_Node000003_Node000004"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M82,-363.85C82,-355.79 82,-347 82,-338.32"/>
-<polygon fill="none" stroke="#63b8ff" points="78.5,-363.96 82,-373.96 85.5,-363.96 78.5,-363.96"/>
+<path fill="none" stroke="#63b8ff" d="M92.5,-408.59C92.5,-400.71 92.5,-392.09 92.5,-383.47"/>
+<polygon fill="none" stroke="#63b8ff" points="89,-408.8 92.5,-418.8 96,-408.8 89,-408.8"/>
</a>
</g>
</g>
diff --git a/docs/reference/api/doxygen/classtvm_1_1DataTypeImm__inherit__graph.svg b/docs/reference/api/doxygen/classtvm_1_1DataTypeImm__inherit__graph.svg
index 5200dc3db80..9dc9153fe7c 100644
--- a/docs/reference/api/doxygen/classtvm_1_1DataTypeImm__inherit__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1DataTypeImm__inherit__graph.svg
@@ -4,28 +4,30 @@
<!-- Generated by graphviz version 2.43.0 (0)
-->
<!-- Title: tvm::DataTypeImm Pages: 1 -->
-<svg width="172pt" height="431pt"
- viewBox="0.00 0.00 172.00 431.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 427)">
+<svg width="193pt" height="476pt"
+ viewBox="0.00 0.00 193.00 476.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 472)">
<title>tvm::DataTypeImm</title>
<!-- Node1 -->
<g id="Node000001" class="node">
<title>Node1</title>
<g id="a_Node000001"><a xlink:title="Managed reference to a data type literal.">
-<polygon fill="#999999" stroke="transparent" points="164,-101 0,-101 0,0 164,0 164,-101"/>
-<text text-anchor="start" x="35" y="-88.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::DataTypeImm</text>
-<text text-anchor="start" x="80" y="-73.5" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
-<text text-anchor="start" x="4" y="-58.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="17" y="-58.5" font-family="Helvetica,sans-Serif" font-size="10.00">DataTypeImm()</text>
-<text text-anchor="start" x="4" y="-43.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="17" y="-43.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
-<text text-anchor="start" x="17" y="-32.5" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NULLABLE()</text>
-<text text-anchor="start" x="4" y="-17.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="17" y="-17.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="17" y="-6.5" font-family="Helvetica,sans-Serif" font-size="10.00">_COW_METHOD()</text>
-<polygon fill="#666666" stroke="#666666" points="0,-83.5 0,-83.5 164,-83.5 164,-83.5 0,-83.5"/>
-<polygon fill="#666666" stroke="#666666" points="0,-68.5 0,-68.5 164,-68.5 164,-68.5 0,-68.5"/>
-<polygon fill="none" stroke="#666666" points="0,0 0,-101 164,-101 164,0 0,0"/>
+<polygon fill="#999999" stroke="transparent" points="185,-116 0,-116 0,0 185,0 185,-116"/>
+<text text-anchor="start" x="46" y="-104" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::DataTypeImm</text>
+<text text-anchor="start" x="91" y="-89" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
+<text text-anchor="start" x="4.5" y="-74" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="17.5" y="-74" font-family="Helvetica,sans-Serif" font-size="10.00">DataTypeImm()</text>
+<text text-anchor="start" x="4.5" y="-59" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="17.5" y="-59" font-family="Helvetica,sans-Serif" font-size="10.00">DataTypeImm()</text>
+<text text-anchor="start" x="4.5" y="-44" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="17.5" y="-44" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
+<text text-anchor="start" x="17.5" y="-33" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NOTNULLABLE()</text>
+<text text-anchor="start" x="4.5" y="-18" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="17.5" y="-18" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="17.5" y="-7" font-family="Helvetica,sans-Serif" font-size="10.00">_COW_METHOD()</text>
+<polygon fill="#666666" stroke="#666666" points="0.5,-99 0.5,-99 185.5,-99 185.5,-99 0.5,-99"/>
+<polygon fill="#666666" stroke="#666666" points="0.5,-84 0.5,-84 185.5,-84 185.5,-84 0.5,-84"/>
+<polygon fill="none" stroke="#666666" points="0,0 0,-116 185,-116 185,0 0,0"/>
</a>
</g>
</g>
@@ -33,15 +35,17 @@
<g id="Node000002" class="node">
<title>Node2</title>
<g id="a_Node000002"><a xlink:href="classtvm_1_1Constant.html" target="_top" xlink:title="Managed reference to a literal constant.">
-<polygon fill="white" stroke="transparent" points="164,-197 0,-197 0,-137 164,-137 164,-197"/>
-<text text-anchor="start" x="47" y="-185" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::Constant</text>
-<text text-anchor="start" x="80" y="-170" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
-<text text-anchor="start" x="4" y="-155" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="17" y="-155" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
-<text text-anchor="start" x="17" y="-144" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NULLABLE()</text>
-<polygon fill="#666666" stroke="#666666" points="0,-180 0,-180 164,-180 164,-180 0,-180"/>
-<polygon fill="#666666" stroke="#666666" points="0,-165 0,-165 164,-165 164,-165 0,-165"/>
-<polygon fill="none" stroke="#666666" points="0,-137 0,-197 164,-197 164,-137 0,-137"/>
+<polygon fill="white" stroke="transparent" points="185,-227 0,-227 0,-152 185,-152 185,-227"/>
+<text text-anchor="start" x="58" y="-214.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::Constant</text>
+<text text-anchor="start" x="91" y="-199.5" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
+<text text-anchor="start" x="4.5" y="-184.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="17.5" y="-184.5" font-family="Helvetica,sans-Serif" font-size="10.00">Constant()</text>
+<text text-anchor="start" x="4.5" y="-169.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="17.5" y="-169.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
+<text text-anchor="start" x="17.5" y="-158.5" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NOTNULLABLE()</text>
+<polygon fill="#666666" stroke="#666666" points="0.5,-209.5 0.5,-209.5 185.5,-209.5 185.5,-209.5 0.5,-209.5"/>
+<polygon fill="#666666" stroke="#666666" points="0.5,-194.5 0.5,-194.5 185.5,-194.5 185.5,-194.5 0.5,-194.5"/>
+<polygon fill="none" stroke="#666666" points="0,-152 0,-227 185,-227 185,-152 0,-152"/>
</a>
</g>
</g>
@@ -49,8 +53,8 @@
<g id="edge1_Node000001_Node000002" class="edge">
<title>Node2->Node1</title>
<g id="a_edge1_Node000001_Node000002"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M82,-126.72C82,-118.47 82,-109.67 82,-101.1"/>
-<polygon fill="none" stroke="#63b8ff" points="78.5,-126.81 82,-136.81 85.5,-126.81 78.5,-126.81"/>
+<path fill="none" stroke="#63b8ff" d="M92.5,-141.57C92.5,-133.33 92.5,-124.67 92.5,-116.19"/>
+<polygon fill="none" stroke="#63b8ff" points="89,-141.74 92.5,-151.74 96,-141.74 89,-141.74"/>
</a>
</g>
</g>
@@ -58,21 +62,23 @@
<g id="Node000003" class="node">
<title>Node3</title>
<g id="a_Node000003"><a xlink:href="classtvm_1_1Expr.html" target="_top" xlink:title="Managed reference to ExprNode.">
-<polygon fill="white" stroke="transparent" points="164,-338 0,-338 0,-233 164,-233 164,-338"/>
-<text text-anchor="start" x="58" y="-325.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::Expr</text>
-<text text-anchor="start" x="80" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
-<text text-anchor="start" x="4" y="-295.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="17" y="-295.5" font-family="Helvetica,sans-Serif" font-size="10.00">operator==()</text>
-<text text-anchor="start" x="4" y="-280.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="17" y="-280.5" font-family="Helvetica,sans-Serif" font-size="10.00">operator!=()</text>
-<text text-anchor="start" x="4" y="-265.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="17" y="-265.5" font-family="Helvetica,sans-Serif" font-size="10.00">operator<()</text>
-<text text-anchor="start" x="4" y="-250.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="17" y="-250.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
-<text text-anchor="start" x="17" y="-239.5" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NULLABLE()</text>
-<polygon fill="#666666" stroke="#666666" points="0,-320.5 0,-320.5 164,-320.5 164,-320.5 0,-320.5"/>
-<polygon fill="#666666" stroke="#666666" points="0,-305.5 0,-305.5 164,-305.5 164,-305.5 0,-305.5"/>
-<polygon fill="none" stroke="#666666" points="0,-233 0,-338 164,-338 164,-233 0,-233"/>
+<polygon fill="white" stroke="transparent" points="185,-383 0,-383 0,-263 185,-263 185,-383"/>
+<text text-anchor="start" x="69" y="-371" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::Expr</text>
+<text text-anchor="start" x="91" y="-356" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
+<text text-anchor="start" x="4.5" y="-341" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="17.5" y="-341" font-family="Helvetica,sans-Serif" font-size="10.00">operator==()</text>
+<text text-anchor="start" x="4.5" y="-326" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="17.5" y="-326" font-family="Helvetica,sans-Serif" font-size="10.00">operator!=()</text>
+<text text-anchor="start" x="4.5" y="-311" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="17.5" y="-311" font-family="Helvetica,sans-Serif" font-size="10.00">operator<()</text>
+<text text-anchor="start" x="4.5" y="-296" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="17.5" y="-296" font-family="Helvetica,sans-Serif" font-size="10.00">Expr()</text>
+<text text-anchor="start" x="4.5" y="-281" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="17.5" y="-281" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
+<text text-anchor="start" x="17.5" y="-270" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NOTNULLABLE()</text>
+<polygon fill="#666666" stroke="#666666" points="0.5,-366 0.5,-366 185.5,-366 185.5,-366 0.5,-366"/>
+<polygon fill="#666666" stroke="#666666" points="0.5,-351 0.5,-351 185.5,-351 185.5,-351 0.5,-351"/>
+<polygon fill="none" stroke="#666666" points="0,-263 0,-383 185,-383 185,-263 0,-263"/>
</a>
</g>
</g>
@@ -80,8 +86,8 @@
<g id="edge2_Node000002_Node000003" class="edge">
<title>Node3->Node2</title>
<g id="a_edge2_Node000002_Node000003"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M82,-222.71C82,-213.85 82,-205.09 82,-197.27"/>
-<polygon fill="none" stroke="#63b8ff" points="78.5,-222.72 82,-232.72 85.5,-222.72 78.5,-222.72"/>
+<path fill="none" stroke="#63b8ff" d="M92.5,-252.52C92.5,-243.77 92.5,-235.11 92.5,-227.16"/>
+<polygon fill="none" stroke="#63b8ff" points="89,-252.79 92.5,-262.79 96,-252.79 89,-252.79"/>
</a>
</g>
</g>
@@ -89,13 +95,13 @@
<g id="Node000004" class="node">
<title>Node4</title>
<g id="a_Node000004"><a xlink:title=" ">
-<polygon fill="white" stroke="transparent" points="119,-423 45,-423 45,-374 119,-374 119,-423"/>
-<text text-anchor="start" x="50" y="-410.5" font-family="Helvetica,sans-Serif" font-size="10.00">ffi::ObjectRef</text>
-<text text-anchor="start" x="80" y="-395.5" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
-<text text-anchor="start" x="80" y="-380.5" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
-<polygon fill="#666666" stroke="#666666" points="45,-405.5 45,-405.5 119,-405.5 119,-405.5 45,-405.5"/>
-<polygon fill="#666666" stroke="#666666" points="45,-390.5 45,-390.5 119,-390.5 119,-390.5 45,-390.5"/>
-<polygon fill="none" stroke="#666666" points="45,-374 45,-423 119,-423 119,-374 45,-374"/>
+<polygon fill="white" stroke="transparent" points="129.5,-468 55.5,-468 55.5,-419 129.5,-419 129.5,-468"/>
+<text text-anchor="start" x="60.5" y="-455.5" font-family="Helvetica,sans-Serif" font-size="10.00">ffi::ObjectRef</text>
+<text text-anchor="start" x="90.5" y="-440.5" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
+<text text-anchor="start" x="90.5" y="-425.5" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
+<polygon fill="#666666" stroke="#666666" points="55.5,-450.5 55.5,-450.5 129.5,-450.5 129.5,-450.5 55.5,-450.5"/>
+<polygon fill="#666666" stroke="#666666" points="55.5,-435.5 55.5,-435.5 129.5,-435.5 129.5,-435.5 55.5,-435.5"/>
+<polygon fill="none" stroke="#666666" points="55.5,-419 55.5,-468 129.5,-468 129.5,-419 55.5,-419"/>
</a>
</g>
</g>
@@ -103,8 +109,8 @@
<g id="edge3_Node000003_Node000004" class="edge">
<title>Node4->Node3</title>
<g id="a_edge3_Node000003_Node000004"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M82,-363.85C82,-355.79 82,-347 82,-338.32"/>
-<polygon fill="none" stroke="#63b8ff" points="78.5,-363.96 82,-373.96 85.5,-363.96 78.5,-363.96"/>
+<path fill="none" stroke="#63b8ff" d="M92.5,-408.59C92.5,-400.71 92.5,-392.09 92.5,-383.47"/>
+<polygon fill="none" stroke="#63b8ff" points="89,-408.8 92.5,-418.8 96,-408.8 89,-408.8"/>
</a>
</g>
</g>
diff --git a/docs/reference/api/doxygen/classtvm_1_1Expr-members.html b/docs/reference/api/doxygen/classtvm_1_1Expr-members.html
index 46240669d0d..1a379b72a71 100644
--- a/docs/reference/api/doxygen/classtvm_1_1Expr-members.html
+++ b/docs/reference/api/doxygen/classtvm_1_1Expr-members.html
@@ -79,10 +79,11 @@ $(function() {
<p>This is the complete list of members for <a class="el" href="classtvm_1_1Expr.html">tvm::Expr</a>, including all inherited members.</p>
<table class="directory">
- <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1Expr.html#a86bd9da75268e479e3bbe61729dce8ac">operator!=</a>(const Expr &other) const =delete</td><td class="entry"><a class="el" href="classtvm_1_1Expr.html">tvm::Expr</a></td><td class="entry"></td></tr>
- <tr class="odd"><td class="entry"><a class="el" href="classtvm_1_1Expr.html#afb14020d9ae652a64a6f15dcba073c0e">operator<</a>(const Expr &other) const =delete</td><td class="entry"><a class="el" href="classtvm_1_1Expr.html">tvm::Expr</a></td><td class="entry"></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1Expr.html#a637231cfc91838b8f14745ac199b5fbf">operator==</a>(const Expr &other) const =delete</td><td class="entry"><a class="el" href="classtvm_1_1Expr.html">tvm::Expr</a></td><td class="entry"></td></tr>
- <tr class="odd"><td class="entry"><a class="el" href="classtvm_1_1Expr.html#a081d3512d899e352e81e8eda6385c444">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE</a>(Expr, ffi::ObjectRef, ExprNode)</td><td class="entry"><a class="el" href="classtvm_1_1Expr.html">tvm::Expr</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1Expr.html#aad84c3380b07b63427dda3697a78b269">Expr</a>(ffi::ObjectPtr< ExprNode > node)</td><td class="entry"><a class="el" href="classtvm_1_1Expr.html">tvm::Expr</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">explicit</span></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classtvm_1_1Expr.html#a86bd9da75268e479e3bbe61729dce8ac">operator!=</a>(const Expr &other) const =delete</td><td class="entry"><a class="el" href="classtvm_1_1Expr.html">tvm::Expr</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1Expr.html#afb14020d9ae652a64a6f15dcba073c0e">operator<</a>(const Expr &other) const =delete</td><td class="entry"><a class="el" href="classtvm_1_1Expr.html">tvm::Expr</a></td><td class="entry"></td></tr>
+ <tr class="odd"><td class="entry"><a class="el" href="classtvm_1_1Expr.html#a637231cfc91838b8f14745ac199b5fbf">operator==</a>(const Expr &other) const =delete</td><td class="entry"><a class="el" href="classtvm_1_1Expr.html">tvm::Expr</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classtvm_1_1Expr.html#a26775d381ee6e7c7bb65b8a7320f5b87">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NOTNULLABLE</a>(Expr, ffi::ObjectRef, ExprNode)</td><td class="entry"><a class="el" href="classtvm_1_1Expr.html">tvm::Expr</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
<!-- start footer part -->
<hr class="footer"/><address class="footer"><small>
diff --git a/docs/reference/api/doxygen/classtvm_1_1Expr.html b/docs/reference/api/doxygen/classtvm_1_1Expr.html
index d28a668cfe0..41fbe2ad80e 100644
--- a/docs/reference/api/doxygen/classtvm_1_1Expr.html
+++ b/docs/reference/api/doxygen/classtvm_1_1Expr.html
@@ -87,12 +87,12 @@ $(function() {
<div class="dynheader">
Inheritance diagram for tvm::Expr:</div>
<div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1Expr__inherit__graph.svg" width="8966" height="1400"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
+<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1Expr__inherit__graph.svg" width="10002" height="1480"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
<div class="dynheader">
Collaboration diagram for tvm::Expr:</div>
<div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1Expr__coll__graph.svg" width="230" height="264"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
+<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1Expr__coll__graph.svg" width="258" height="284"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a id="pub-methods" name="pub-methods"></a>
@@ -103,13 +103,42 @@ Public Member Functions</h2></td></tr>
<tr class="separator:a86bd9da75268e479e3bbe61729dce8ac"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:afb14020d9ae652a64a6f15dcba073c0e" id="r_afb14020d9ae652a64a6f15dcba073c0e"><td class="memItemLeft" align="right" valign="top">bool </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1Expr.html#afb14020d9ae652a64a6f15dcba073c0e">operator<</a> (const <a class="el" href="classtvm_1_1Expr.html">Expr</a> &other) const =delete</td></tr>
<tr class="separator:afb14020d9ae652a64a6f15dcba073c0e"><td class="memSeparator" colspan="2"> </td></tr>
-<tr class="memitem:a081d3512d899e352e81e8eda6385c444" id="r_a081d3512d899e352e81e8eda6385c444"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1Expr.html#a081d3512d899e352e81e8eda6385c444">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE</a> (<a class="el" href="classtvm_1_1Expr.html">Expr</a>, ffi::ObjectRef, <a class="el" href="classtvm_1_1ExprNode.html">ExprNode</a>)</td></tr>
-<tr class="separator:a081d3512d899e352e81e8eda6385c444"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:aad84c3380b07b63427dda3697a78b269" id="r_aad84c3380b07b63427dda3697a78b269"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1Expr.html#aad84c3380b07b63427dda3697a78b269">Expr</a> (ffi::ObjectPtr< <a class="el" href="classtvm_1_1ExprNode.html">ExprNode</a> > node)</td></tr>
+<tr class="separator:aad84c3380b07b63427dda3697a78b269"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a26775d381ee6e7c7bb65b8a7320f5b87" id="r_a26775d381ee6e7c7bb65b8a7320f5b87"><td class="memItemLeft" align="right" valign="top"> </td><td class="memItemRight" valign="bottom"><a class="el" href="classtvm_1_1Expr.html#a26775d381ee6e7c7bb65b8a7320f5b87">TVM_FFI_DEFINE_OBJECT_REF_METHODS_NOTNULLABLE</a> (<a class="el" href="classtvm_1_1Expr.html">Expr</a>, ffi::ObjectRef, <a class="el" href="classtvm_1_1ExprNode.html">ExprNode</a>)</td></tr>
+<tr class="separator:a26775d381ee6e7c7bb65b8a7320f5b87"><td class="memSeparator" colspan="2"> </td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p>Managed reference to <a class="el" href="classtvm_1_1ExprNode.html" title="Base type of all the expressions.">ExprNode</a>. </p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classtvm_1_1ExprNode.html" title="Base type of all the expressions.">ExprNode</a> </dd></dl>
-</div><h2 class="groupheader">Member Function Documentation</h2>
+</div><h2 class="groupheader">Constructor & Destructor Documentation</h2>
+<a id="aad84c3380b07b63427dda3697a78b269" name="aad84c3380b07b63427dda3697a78b269"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#aad84c3380b07b63427dda3697a78b269">◆ </a></span>Expr()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">tvm::Expr::Expr </td>
+ <td>(</td>
+ <td class="paramtype">ffi::ObjectPtr< <a class="el" href="classtvm_1_1ExprNode.html">ExprNode</a> > </td>
+ <td class="paramname"><em>node</em></td><td>)</td>
+ <td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">explicit</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+</div>
+</div>
+<h2 class="groupheader">Member Function Documentation</h2>
<a id="a86bd9da75268e479e3bbe61729dce8ac" name="a86bd9da75268e479e3bbe61729dce8ac"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a86bd9da75268e479e3bbe61729dce8ac">◆ </a></span>operator!=()</h2>
@@ -188,14 +217,14 @@ Public Member Functions</h2></td></tr>
</div>
</div>
-<a id="a081d3512d899e352e81e8eda6385c444" name="a081d3512d899e352e81e8eda6385c444"></a>
-<h2 class="memtitle"><span class="permalink"><a href="#a081d3512d899e352e81e8eda6385c444">◆ </a></span>TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE()</h2>
+<a id="a26775d381ee6e7c7bb65b8a7320f5b87" name="a26775d381ee6e7c7bb65b8a7320f5b87"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a26775d381ee6e7c7bb65b8a7320f5b87">◆ </a></span>TVM_FFI_DEFINE_OBJECT_REF_METHODS_NOTNULLABLE()</h2>
<div class="memitem">
<div class="memproto">
<table class="memname">
<tr>
- <td class="memname">tvm::Expr::TVM_FFI_DEFINE_OBJECT_REF_METHODS_NULLABLE </td>
+ <td class="memname">tvm::Expr::TVM_FFI_DEFINE_OBJECT_REF_METHODS_NOTNULLABLE </td>
<td>(</td>
<td class="paramtype"><a class="el" href="classtvm_1_1Expr.html">Expr</a> </td>
<td class="paramname">, </td>
diff --git a/docs/reference/api/doxygen/classtvm_1_1ExprMutator.html b/docs/reference/api/doxygen/classtvm_1_1ExprMutator.html
index f39c84479d3..5ecdab484f0 100644
--- a/docs/reference/api/doxygen/classtvm_1_1ExprMutator.html
+++ b/docs/reference/api/doxygen/classtvm_1_1ExprMutator.html
@@ -89,7 +89,7 @@ $(function() {
<div class="dynheader">
Inheritance diagram for tvm::ExprMutator:</div>
<div class="dyncontent">
-<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1ExprMutator__inherit__graph.svg" width="214" height="1430"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
+<div class="center"><iframe scrolling="no" frameborder="0" src="classtvm_1_1ExprMutator__inherit__graph.svg" width="214" height="1350"><p><b>This browser is not able to show SVG: try Firefox, Chrome, Safari, or Opera instead.</b></p></iframe></div>
</div>
<div class="dynheader">
Collaboration diagram for tvm::ExprMutator:</div>
diff --git a/docs/reference/api/doxygen/classtvm_1_1ExprMutator__inherit__graph.svg b/docs/reference/api/doxygen/classtvm_1_1ExprMutator__inherit__graph.svg
index 7fe74c753f6..b16ca4ea3ec 100644
--- a/docs/reference/api/doxygen/classtvm_1_1ExprMutator__inherit__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1ExprMutator__inherit__graph.svg
@@ -4,29 +4,21 @@
<!-- Generated by graphviz version 2.43.0 (0)
-->
<!-- Title: tvm::ExprMutator Pages: 1 -->
-<svg width="160pt" height="1072pt"
- viewBox="0.00 0.00 160.00 1072.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 1068)">
+<svg width="160pt" height="1012pt"
+ viewBox="0.00 0.00 160.00 1012.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 1008)">
<title>tvm::ExprMutator</title>
<!-- Node1 -->
<g id="Node000001" class="node">
<title>Node1</title>
<g id="a_Node000001"><a xlink:title="Structural Expr mutator with native overrides for core expressions and structural fallback for other ...">
-<polygon fill="#999999" stroke="transparent" points="149,-729 3,-729 3,-485 149,-485 149,-729"/>
-<text text-anchor="start" x="33" y="-717" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::ExprMutator</text>
-<text text-anchor="start" x="74" y="-702" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
-<text text-anchor="start" x="7" y="-687" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="20" y="-687" font-family="Helvetica,sans-Serif" font-size="10.00">Mutate()</text>
-<text text-anchor="start" x="7" y="-672" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="20" y="-672" font-family="Helvetica,sans-Serif" font-size="10.00">Mutate()</text>
-<text text-anchor="start" x="7" y="-657" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="20" y="-657" font-family="Helvetica,sans-Serif" font-size="10.00">Mutate_()</text>
-<text text-anchor="start" x="7" y="-642" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="20" y="-642" font-family="Helvetica,sans-Serif" font-size="10.00">Mutate_()</text>
+<polygon fill="#999999" stroke="transparent" points="149,-669 3,-669 3,-425 149,-425 149,-669"/>
+<text text-anchor="start" x="33" y="-657" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::ExprMutator</text>
+<text text-anchor="start" x="74" y="-642" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
<text text-anchor="start" x="7" y="-627" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="20" y="-627" font-family="Helvetica,sans-Serif" font-size="10.00">Mutate_()</text>
+<text text-anchor="start" x="20" y="-627" font-family="Helvetica,sans-Serif" font-size="10.00">Mutate()</text>
<text text-anchor="start" x="7" y="-612" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="20" y="-612" font-family="Helvetica,sans-Serif" font-size="10.00">Mutate_()</text>
+<text text-anchor="start" x="20" y="-612" font-family="Helvetica,sans-Serif" font-size="10.00">Mutate()</text>
<text text-anchor="start" x="7" y="-597" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
<text text-anchor="start" x="20" y="-597" font-family="Helvetica,sans-Serif" font-size="10.00">Mutate_()</text>
<text text-anchor="start" x="7" y="-582" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
@@ -35,16 +27,24 @@
<text text-anchor="start" x="20" y="-567" font-family="Helvetica,sans-Serif" font-size="10.00">Mutate_()</text>
<text text-anchor="start" x="7" y="-552" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
<text text-anchor="start" x="20" y="-552" font-family="Helvetica,sans-Serif" font-size="10.00">Mutate_()</text>
-<text text-anchor="start" x="20" y="-537" font-family="Helvetica,sans-Serif" font-size="10.00">and 37 more...</text>
-<text text-anchor="start" x="7" y="-522" font-family="Helvetica,sans-Serif" font-size="10.00">#</text>
-<text text-anchor="start" x="20" y="-522" font-family="Helvetica,sans-Serif" font-size="10.00">ExprMutator()</text>
-<text text-anchor="start" x="7" y="-507" font-family="Helvetica,sans-Serif" font-size="10.00">#</text>
-<text text-anchor="start" x="20" y="-507" font-family="Helvetica,sans-Serif" font-size="10.00">ReinferMutatedCallType()</text>
-<text text-anchor="start" x="7" y="-492" font-family="Helvetica,sans-Serif" font-size="10.00">#</text>
-<text text-anchor="start" x="20" y="-492" font-family="Helvetica,sans-Serif" font-size="10.00">InitVTable()</text>
-<polygon fill="#666666" stroke="#666666" points="3,-712 3,-712 149,-712 149,-712 3,-712"/>
-<polygon fill="#666666" stroke="#666666" points="3,-697 3,-697 149,-697 149,-697 3,-697"/>
-<polygon fill="none" stroke="#666666" points="3,-485 3,-729 149,-729 149,-485 3,-485"/>
+<text text-anchor="start" x="7" y="-537" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="20" y="-537" font-family="Helvetica,sans-Serif" font-size="10.00">Mutate_()</text>
+<text text-anchor="start" x="7" y="-522" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="20" y="-522" font-family="Helvetica,sans-Serif" font-size="10.00">Mutate_()</text>
+<text text-anchor="start" x="7" y="-507" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="20" y="-507" font-family="Helvetica,sans-Serif" font-size="10.00">Mutate_()</text>
+<text text-anchor="start" x="7" y="-492" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="20" y="-492" font-family="Helvetica,sans-Serif" font-size="10.00">Mutate_()</text>
+<text text-anchor="start" x="20" y="-477" font-family="Helvetica,sans-Serif" font-size="10.00">and 37 more...</text>
+<text text-anchor="start" x="7" y="-462" font-family="Helvetica,sans-Serif" font-size="10.00">#</text>
+<text text-anchor="start" x="20" y="-462" font-family="Helvetica,sans-Serif" font-size="10.00">ExprMutator()</text>
+<text text-anchor="start" x="7" y="-447" font-family="Helvetica,sans-Serif" font-size="10.00">#</text>
+<text text-anchor="start" x="20" y="-447" font-family="Helvetica,sans-Serif" font-size="10.00">ReinferMutatedCallType()</text>
+<text text-anchor="start" x="7" y="-432" font-family="Helvetica,sans-Serif" font-size="10.00">#</text>
+<text text-anchor="start" x="20" y="-432" font-family="Helvetica,sans-Serif" font-size="10.00">InitVTable()</text>
+<polygon fill="#666666" stroke="#666666" points="3,-652 3,-652 149,-652 149,-652 3,-652"/>
+<polygon fill="#666666" stroke="#666666" points="3,-637 3,-637 149,-637 149,-637 3,-637"/>
+<polygon fill="none" stroke="#666666" points="3,-425 3,-669 149,-669 149,-425 3,-425"/>
</a>
</g>
</g>
@@ -52,21 +52,13 @@
<g id="Node000004" class="node">
<title>Node4</title>
<g id="a_Node000004"><a xlink:href="classtvm_1_1tirx_1_1StmtExprMutator.html" target="_top" xlink:title="Mutator that recursively mutates stmts and exprs on them.">
-<polygon fill="white" stroke="transparent" points="147,-449 5,-449 5,-160 147,-160 147,-449"/>
-<text text-anchor="start" x="10" y="-436.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::tirx::StmtExprMutator</text>
-<text text-anchor="start" x="74" y="-421.5" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
-<text text-anchor="start" x="16.5" y="-406.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="37" y="-406.5" font-family="Helvetica,sans-Serif" font-size="10.00">Mutate()</text>
-<text text-anchor="start" x="16.5" y="-391.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="37" y="-391.5" font-family="Helvetica,sans-Serif" font-size="10.00">Mutate_()</text>
-<text text-anchor="start" x="16.5" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="37" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00">Mutate_()</text>
-<text text-anchor="start" x="16.5" y="-361.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="37" y="-361.5" font-family="Helvetica,sans-Serif" font-size="10.00">Mutate_()</text>
+<polygon fill="white" stroke="transparent" points="147,-389 5,-389 5,-160 147,-160 147,-389"/>
+<text text-anchor="start" x="10" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::tirx::StmtExprMutator</text>
+<text text-anchor="start" x="74" y="-361.5" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
<text text-anchor="start" x="16.5" y="-346.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="37" y="-346.5" font-family="Helvetica,sans-Serif" font-size="10.00">Mutate_()</text>
+<text text-anchor="start" x="37" y="-346.5" font-family="Helvetica,sans-Serif" font-size="10.00">Mutate()</text>
<text text-anchor="start" x="16.5" y="-331.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="37" y="-331.5" font-family="Helvetica,sans-Serif" font-size="10.00">Mutate_()</text>
+<text text-anchor="start" x="37" y="-331.5" font-family="Helvetica,sans-Serif" font-size="10.00">Mutate()</text>
<text text-anchor="start" x="16.5" y="-316.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
<text text-anchor="start" x="37" y="-316.5" font-family="Helvetica,sans-Serif" font-size="10.00">Mutate_()</text>
<text text-anchor="start" x="16.5" y="-301.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
@@ -83,15 +75,14 @@
<text text-anchor="start" x="37" y="-226.5" font-family="Helvetica,sans-Serif" font-size="10.00">Mutate_()</text>
<text text-anchor="start" x="16.5" y="-211.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
<text text-anchor="start" x="37" y="-211.5" font-family="Helvetica,sans-Serif" font-size="10.00">Mutate_()</text>
-<text text-anchor="start" x="16.5" y="-196.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="37" y="-196.5" font-family="Helvetica,sans-Serif" font-size="10.00">Mutate_()</text>
+<text text-anchor="start" x="37" y="-196.5" font-family="Helvetica,sans-Serif" font-size="10.00">and 6 more...</text>
<text text-anchor="start" x="16.5" y="-181.5" font-family="Helvetica,sans-Serif" font-size="10.00">#</text>
<text text-anchor="start" x="37" y="-181.5" font-family="Helvetica,sans-Serif" font-size="10.00">StmtExprMutator()</text>
<text text-anchor="start" x="16.5" y="-166.5" font-family="Helvetica,sans-Serif" font-size="10.00">#</text>
<text text-anchor="start" x="37" y="-166.5" font-family="Helvetica,sans-Serif" font-size="10.00">InitVTable()</text>
-<polygon fill="#666666" stroke="#666666" points="5,-431.5 5,-431.5 147,-431.5 147,-431.5 5,-431.5"/>
-<polygon fill="#666666" stroke="#666666" points="5,-416.5 5,-416.5 147,-416.5 147,-416.5 5,-416.5"/>
-<polygon fill="none" stroke="#666666" points="5,-160 5,-449 147,-449 147,-160 5,-160"/>
+<polygon fill="#666666" stroke="#666666" points="5,-371.5 5,-371.5 147,-371.5 147,-371.5 5,-371.5"/>
+<polygon fill="#666666" stroke="#666666" points="5,-356.5 5,-356.5 147,-356.5 147,-356.5 5,-356.5"/>
+<polygon fill="none" stroke="#666666" points="5,-160 5,-389 147,-389 147,-160 5,-160"/>
</a>
</g>
</g>
@@ -99,8 +90,8 @@
<g id="edge3_Node000001_Node000004" class="edge">
<title>Node1->Node4</title>
<g id="a_edge3_Node000001_Node000004"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M76,-474.42C76,-466 76,-457.5 76,-449.03"/>
-<polygon fill="none" stroke="#63b8ff" points="72.5,-474.64 76,-484.64 79.5,-474.64 72.5,-474.64"/>
+<path fill="none" stroke="#63b8ff" d="M76,-414.88C76,-406.24 76,-397.59 76,-389.05"/>
+<polygon fill="none" stroke="#63b8ff" points="72.5,-414.99 76,-424.99 79.5,-414.99 72.5,-414.99"/>
</a>
</g>
</g>
@@ -108,36 +99,36 @@
<g id="Node000002" class="node">
<title>Node2</title>
<g id="a_Node000002"><a xlink:href="classtvm_1_1ObjectMutator.html" target="_top" xlink:title="Native mutation with exact dispatch and structural fallback.">
-<polygon fill="white" stroke="transparent" points="147,-979 5,-979 5,-765 147,-765 147,-979"/>
-<text text-anchor="start" x="28" y="-967" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::ObjectMutator</text>
-<text text-anchor="start" x="74" y="-952" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
-<text text-anchor="start" x="9" y="-937" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="22" y="-937" font-family="Helvetica,sans-Serif" font-size="10.00">ObjectMutator()</text>
-<text text-anchor="start" x="9" y="-922" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="22" y="-922" font-family="Helvetica,sans-Serif" font-size="10.00">ObjectMutator()</text>
-<text text-anchor="start" x="9" y="-907" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="22" y="-907" font-family="Helvetica,sans-Serif" font-size="10.00">operator=()</text>
-<text text-anchor="start" x="9" y="-892" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="22" y="-892" font-family="Helvetica,sans-Serif" font-size="10.00">Mutate()</text>
+<polygon fill="white" stroke="transparent" points="147,-919 5,-919 5,-705 147,-705 147,-919"/>
+<text text-anchor="start" x="28" y="-907" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::ObjectMutator</text>
+<text text-anchor="start" x="74" y="-892" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
<text text-anchor="start" x="9" y="-877" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="22" y="-877" font-family="Helvetica,sans-Serif" font-size="10.00">MutateExpected()</text>
+<text text-anchor="start" x="22" y="-877" font-family="Helvetica,sans-Serif" font-size="10.00">ObjectMutator()</text>
<text text-anchor="start" x="9" y="-862" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="22" y="-862" font-family="Helvetica,sans-Serif" font-size="10.00">VarRemapGet()</text>
+<text text-anchor="start" x="22" y="-862" font-family="Helvetica,sans-Serif" font-size="10.00">ObjectMutator()</text>
<text text-anchor="start" x="9" y="-847" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="22" y="-847" font-family="Helvetica,sans-Serif" font-size="10.00">VarRemapSet()</text>
+<text text-anchor="start" x="22" y="-847" font-family="Helvetica,sans-Serif" font-size="10.00">operator=()</text>
<text text-anchor="start" x="9" y="-832" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="22" y="-832" font-family="Helvetica,sans-Serif" font-size="10.00">VarRemapGetExpected()</text>
+<text text-anchor="start" x="22" y="-832" font-family="Helvetica,sans-Serif" font-size="10.00">Mutate()</text>
<text text-anchor="start" x="9" y="-817" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="22" y="-817" font-family="Helvetica,sans-Serif" font-size="10.00">VarRemapSetExpected()</text>
-<text text-anchor="start" x="9" y="-802" font-family="Helvetica,sans-Serif" font-size="10.00">#</text>
-<text text-anchor="start" x="22" y="-802" font-family="Helvetica,sans-Serif" font-size="10.00">ObjectMutator()</text>
-<text text-anchor="start" x="9" y="-787" font-family="Helvetica,sans-Serif" font-size="10.00">#</text>
-<text text-anchor="start" x="22" y="-787" font-family="Helvetica,sans-Serif" font-size="10.00">InitVTable()</text>
-<text text-anchor="start" x="9" y="-772" font-family="Helvetica,sans-Serif" font-size="10.00">#</text>
-<text text-anchor="start" x="22" y="-772" font-family="Helvetica,sans-Serif" font-size="10.00">SetDispatch()</text>
-<polygon fill="#666666" stroke="#666666" points="5,-962 5,-962 147,-962 147,-962 5,-962"/>
-<polygon fill="#666666" stroke="#666666" points="5,-947 5,-947 147,-947 147,-947 5,-947"/>
-<polygon fill="none" stroke="#666666" points="5,-765 5,-979 147,-979 147,-765 5,-765"/>
+<text text-anchor="start" x="22" y="-817" font-family="Helvetica,sans-Serif" font-size="10.00">MutateExpected()</text>
+<text text-anchor="start" x="9" y="-802" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="22" y="-802" font-family="Helvetica,sans-Serif" font-size="10.00">VarRemapGet()</text>
+<text text-anchor="start" x="9" y="-787" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="22" y="-787" font-family="Helvetica,sans-Serif" font-size="10.00">VarRemapSet()</text>
+<text text-anchor="start" x="9" y="-772" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="22" y="-772" font-family="Helvetica,sans-Serif" font-size="10.00">VarRemapGetExpected()</text>
+<text text-anchor="start" x="9" y="-757" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="22" y="-757" font-family="Helvetica,sans-Serif" font-size="10.00">VarRemapSetExpected()</text>
+<text text-anchor="start" x="9" y="-742" font-family="Helvetica,sans-Serif" font-size="10.00">#</text>
+<text text-anchor="start" x="22" y="-742" font-family="Helvetica,sans-Serif" font-size="10.00">ObjectMutator()</text>
+<text text-anchor="start" x="9" y="-727" font-family="Helvetica,sans-Serif" font-size="10.00">#</text>
+<text text-anchor="start" x="22" y="-727" font-family="Helvetica,sans-Serif" font-size="10.00">InitVTable()</text>
+<text text-anchor="start" x="9" y="-712" font-family="Helvetica,sans-Serif" font-size="10.00">#</text>
+<text text-anchor="start" x="22" y="-712" font-family="Helvetica,sans-Serif" font-size="10.00">SetDispatch()</text>
+<polygon fill="#666666" stroke="#666666" points="5,-902 5,-902 147,-902 147,-902 5,-902"/>
+<polygon fill="#666666" stroke="#666666" points="5,-887 5,-887 147,-887 147,-887 5,-887"/>
+<polygon fill="none" stroke="#666666" points="5,-705 5,-919 147,-919 147,-705 5,-705"/>
</a>
</g>
</g>
@@ -145,8 +136,8 @@
<g id="edge1_Node000001_Node000002" class="edge">
<title>Node2->Node1</title>
<g id="a_edge1_Node000001_Node000002"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M76,-754.59C76,-746.19 76,-737.7 76,-729.27"/>
-<polygon fill="none" stroke="#63b8ff" points="72.5,-754.79 76,-764.79 79.5,-754.79 72.5,-754.79"/>
+<path fill="none" stroke="#63b8ff" d="M76,-694.59C76,-686.19 76,-677.7 76,-669.27"/>
+<polygon fill="none" stroke="#63b8ff" points="72.5,-694.79 76,-704.79 79.5,-694.79 72.5,-694.79"/>
</a>
</g>
</g>
@@ -154,13 +145,13 @@
<g id="Node000003" class="node">
<title>Node3</title>
<g id="a_Node000003"><a xlink:title=" ">
-<polygon fill="white" stroke="transparent" points="152,-1064 0,-1064 0,-1015 152,-1015 152,-1064"/>
-<text text-anchor="start" x="5" y="-1051.5" font-family="Helvetica,sans-Serif" font-size="10.00">ffi::StructuralMapEngineBase</text>
-<text text-anchor="start" x="74" y="-1036.5" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
-<text text-anchor="start" x="74" y="-1021.5" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
-<polygon fill="#666666" stroke="#666666" points="0,-1046.5 0,-1046.5 152,-1046.5 152,-1046.5 0,-1046.5"/>
-<polygon fill="#666666" stroke="#666666" points="0,-1031.5 0,-1031.5 152,-1031.5 152,-1031.5 0,-1031.5"/>
-<polygon fill="none" stroke="#666666" points="0,-1015 0,-1064 152,-1064 152,-1015 0,-1015"/>
+<polygon fill="white" stroke="transparent" points="152,-1004 0,-1004 0,-955 152,-955 152,-1004"/>
+<text text-anchor="start" x="5" y="-991.5" font-family="Helvetica,sans-Serif" font-size="10.00">ffi::StructuralMapEngineBase</text>
+<text text-anchor="start" x="74" y="-976.5" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
+<text text-anchor="start" x="74" y="-961.5" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
+<polygon fill="#666666" stroke="#666666" points="0,-986.5 0,-986.5 152,-986.5 152,-986.5 0,-986.5"/>
+<polygon fill="#666666" stroke="#666666" points="0,-971.5 0,-971.5 152,-971.5 152,-971.5 0,-971.5"/>
+<polygon fill="none" stroke="#666666" points="0,-955 0,-1004 152,-1004 152,-955 0,-955"/>
</a>
</g>
</g>
@@ -168,8 +159,8 @@
<g id="edge2_Node000002_Node000003" class="edge">
<title>Node3->Node2</title>
<g id="a_edge2_Node000002_Node000003"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M76,-1004.75C76,-996.93 76,-988.21 76,-979.07"/>
-<polygon fill="none" stroke="#63b8ff" points="72.5,-1004.79 76,-1014.79 79.5,-1004.79 72.5,-1004.79"/>
+<path fill="none" stroke="#63b8ff" d="M76,-944.75C76,-936.93 76,-928.21 76,-919.07"/>
+<polygon fill="none" stroke="#63b8ff" points="72.5,-944.79 76,-954.79 79.5,-944.79 72.5,-944.79"/>
</a>
</g>
</g>
@@ -202,8 +193,8 @@
<g id="edge4_Node000004_Node000005" class="edge">
<title>Node4->Node5</title>
<g id="a_edge4_Node000004_Node000005"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M76,-149.67C76,-140.8 76,-132.19 76,-124.07"/>
-<polygon fill="none" stroke="#63b8ff" points="72.5,-149.78 76,-159.78 79.5,-149.78 72.5,-149.78"/>
+<path fill="none" stroke="#63b8ff" d="M76,-149.87C76,-141 76,-132.32 76,-124.08"/>
+<polygon fill="none" stroke="#63b8ff" points="72.5,-149.93 76,-159.93 79.5,-149.93 72.5,-149.93"/>
</a>
</g>
</g>
diff --git a/docs/reference/api/doxygen/classtvm_1_1ExprNode__inherit__graph.svg b/docs/reference/api/doxygen/classtvm_1_1ExprNode__inherit__graph.svg
index 7aa09f62ee9..74f714090f8 100644
--- a/docs/reference/api/doxygen/classtvm_1_1ExprNode__inherit__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1ExprNode__inherit__graph.svg
@@ -38,26 +38,30 @@
<g id="Node000003" class="node">
<title>Node3</title>
<g id="a_Node000003"><a xlink:href="classtvm_1_1prim_1_1BinaryOpNode.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="transparent" points="179,-394 0,-394 0,-263 179,-263 179,-394"/>
-<text text-anchor="start" x="27.5" y="-381.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::prim::BinaryOpNode</text>
-<text text-anchor="start" x="56.5" y="-370.5" font-family="Helvetica,sans-Serif" font-size="10.00">< AddNode ></text>
+<polygon fill="white" stroke="transparent" points="179,-409 0,-409 0,-248 179,-248 179,-409"/>
+<text text-anchor="start" x="27.5" y="-396.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::prim::BinaryOpNode</text>
+<text text-anchor="start" x="56.5" y="-385.5" font-family="Helvetica,sans-Serif" font-size="10.00">< AddNode ></text>
+<text text-anchor="start" x="4.5" y="-370.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="17.5" y="-370.5" font-family="Helvetica,sans-Serif" font-size="10.00">a</text>
<text text-anchor="start" x="4.5" y="-355.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="17.5" y="-355.5" font-family="Helvetica,sans-Serif" font-size="10.00">a</text>
+<text text-anchor="start" x="17.5" y="-355.5" font-family="Helvetica,sans-Serif" font-size="10.00">b</text>
<text text-anchor="start" x="4.5" y="-340.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="17.5" y="-340.5" font-family="Helvetica,sans-Serif" font-size="10.00">b</text>
+<text text-anchor="start" x="17.5" y="-340.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_child_slots</text>
<text text-anchor="start" x="4.5" y="-325.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="17.5" y="-325.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_child_slots</text>
+<text text-anchor="start" x="17.5" y="-325.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_final</text>
<text text-anchor="start" x="4.5" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="17.5" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_final</text>
+<text text-anchor="start" x="17.5" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">BinaryOpNode()</text>
<text text-anchor="start" x="4.5" y="-295.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="17.5" y="-295.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="17.5" y="-284.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_PREDEFINED_TYPE_KEY()</text>
-<text text-anchor="start" x="4.5" y="-269.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="17.5" y="-269.5" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
-<polygon fill="#666666" stroke="#666666" points="0.5,-365.5 0.5,-365.5 179.5,-365.5 179.5,-365.5 0.5,-365.5"/>
-<polygon fill="#666666" stroke="#666666" points="0.5,-305.5 0.5,-305.5 15.5,-305.5 15.5,-305.5 0.5,-305.5"/>
-<polygon fill="#666666" stroke="#666666" points="15.5,-305.5 15.5,-305.5 179.5,-305.5 179.5,-305.5 15.5,-305.5"/>
-<polygon fill="none" stroke="#666666" points="0,-263 0,-394 179,-394 179,-263 0,-263"/>
+<text text-anchor="start" x="17.5" y="-295.5" font-family="Helvetica,sans-Serif" font-size="10.00">BinaryOpNode()</text>
+<text text-anchor="start" x="4.5" y="-280.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="17.5" y="-280.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="17.5" y="-269.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_PREDEFINED_TYPE_KEY()</text>
+<text text-anchor="start" x="4.5" y="-254.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="17.5" y="-254.5" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
+<polygon fill="#666666" stroke="#666666" points="0.5,-380.5 0.5,-380.5 179.5,-380.5 179.5,-380.5 0.5,-380.5"/>
+<polygon fill="#666666" stroke="#666666" points="0.5,-320.5 0.5,-320.5 15.5,-320.5 15.5,-320.5 0.5,-320.5"/>
+<polygon fill="#666666" stroke="#666666" points="15.5,-320.5 15.5,-320.5 179.5,-320.5 179.5,-320.5 15.5,-320.5"/>
+<polygon fill="none" stroke="#666666" points="0,-248 0,-409 179,-409 179,-248 0,-248"/>
</a>
</g>
</g>
@@ -65,7 +69,7 @@
<g id="edge2_Node000001_Node000003" class="edge">
<title>Node1->Node3</title>
<g id="a_edge2_Node000001_Node000003"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M4452.08,-536.08C3851.43,-536.41 387.72,-534.23 187.5,-441 165.3,-430.67 146.09,-412.65 130.69,-394.07"/>
+<path fill="none" stroke="#63b8ff" d="M4452.08,-536.08C3851.43,-536.41 387.72,-534.23 187.5,-441 171.38,-433.49 156.83,-421.93 144.17,-409.05"/>
<polygon fill="none" stroke="#63b8ff" points="4452.41,-539.58 4462.41,-536.08 4452.4,-532.58 4452.41,-539.58"/>
</a>
</g>
@@ -74,26 +78,30 @@
<g id="Node000005" class="node">
<title>Node5</title>
<g id="a_Node000005"><a xlink:href="classtvm_1_1prim_1_1BinaryOpNode.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="transparent" points="376,-394 197,-394 197,-263 376,-263 376,-394"/>
-<text text-anchor="start" x="224.5" y="-381.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::prim::BinaryOpNode</text>
-<text text-anchor="start" x="235.5" y="-370.5" font-family="Helvetica,sans-Serif" font-size="10.00">< BitwiseAndNode ></text>
+<polygon fill="white" stroke="transparent" points="376,-409 197,-409 197,-248 376,-248 376,-409"/>
+<text text-anchor="start" x="224.5" y="-396.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::prim::BinaryOpNode</text>
+<text text-anchor="start" x="235.5" y="-385.5" font-family="Helvetica,sans-Serif" font-size="10.00">< BitwiseAndNode ></text>
+<text text-anchor="start" x="201.5" y="-370.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="214.5" y="-370.5" font-family="Helvetica,sans-Serif" font-size="10.00">a</text>
<text text-anchor="start" x="201.5" y="-355.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="214.5" y="-355.5" font-family="Helvetica,sans-Serif" font-size="10.00">a</text>
+<text text-anchor="start" x="214.5" y="-355.5" font-family="Helvetica,sans-Serif" font-size="10.00">b</text>
<text text-anchor="start" x="201.5" y="-340.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="214.5" y="-340.5" font-family="Helvetica,sans-Serif" font-size="10.00">b</text>
+<text text-anchor="start" x="214.5" y="-340.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_child_slots</text>
<text text-anchor="start" x="201.5" y="-325.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="214.5" y="-325.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_child_slots</text>
+<text text-anchor="start" x="214.5" y="-325.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_final</text>
<text text-anchor="start" x="201.5" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="214.5" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_final</text>
+<text text-anchor="start" x="214.5" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">BinaryOpNode()</text>
<text text-anchor="start" x="201.5" y="-295.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="214.5" y="-295.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="214.5" y="-284.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_PREDEFINED_TYPE_KEY()</text>
-<text text-anchor="start" x="201.5" y="-269.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="214.5" y="-269.5" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
-<polygon fill="#666666" stroke="#666666" points="197.5,-365.5 197.5,-365.5 376.5,-365.5 376.5,-365.5 197.5,-365.5"/>
-<polygon fill="#666666" stroke="#666666" points="197.5,-305.5 197.5,-305.5 212.5,-305.5 212.5,-305.5 197.5,-305.5"/>
-<polygon fill="#666666" stroke="#666666" points="212.5,-305.5 212.5,-305.5 376.5,-305.5 376.5,-305.5 212.5,-305.5"/>
-<polygon fill="none" stroke="#666666" points="197,-263 197,-394 376,-394 376,-263 197,-263"/>
+<text text-anchor="start" x="214.5" y="-295.5" font-family="Helvetica,sans-Serif" font-size="10.00">BinaryOpNode()</text>
+<text text-anchor="start" x="201.5" y="-280.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="214.5" y="-280.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="214.5" y="-269.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_PREDEFINED_TYPE_KEY()</text>
+<text text-anchor="start" x="201.5" y="-254.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="214.5" y="-254.5" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
+<polygon fill="#666666" stroke="#666666" points="197.5,-380.5 197.5,-380.5 376.5,-380.5 376.5,-380.5 197.5,-380.5"/>
+<polygon fill="#666666" stroke="#666666" points="197.5,-320.5 197.5,-320.5 212.5,-320.5 212.5,-320.5 197.5,-320.5"/>
+<polygon fill="#666666" stroke="#666666" points="212.5,-320.5 212.5,-320.5 376.5,-320.5 376.5,-320.5 212.5,-320.5"/>
+<polygon fill="none" stroke="#666666" points="197,-248 197,-409 376,-409 376,-248 197,-248"/>
</a>
</g>
</g>
@@ -101,7 +109,7 @@
<g id="edge4_Node000001_Node000005" class="edge">
<title>Node1->Node5</title>
<g id="a_edge4_Node000001_Node000005"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M4452.39,-535.99C3868.56,-535.67 575.21,-529.92 384.5,-441 362.31,-430.65 343.09,-412.63 327.7,-394.06"/>
+<path fill="none" stroke="#63b8ff" d="M4452.39,-535.99C3868.56,-535.67 575.21,-529.92 384.5,-441 368.38,-433.49 353.84,-421.92 341.18,-409.04"/>
<polygon fill="none" stroke="#63b8ff" points="4452.43,-539.49 4462.43,-535.99 4452.43,-532.49 4452.43,-539.49"/>
</a>
</g>
@@ -110,26 +118,30 @@
<g id="Node000007" class="node">
<title>Node7</title>
<g id="a_Node000007"><a xlink:href="classtvm_1_1prim_1_1BinaryOpNode.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="transparent" points="573,-394 394,-394 394,-263 573,-263 573,-394"/>
-<text text-anchor="start" x="421.5" y="-381.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::prim::BinaryOpNode</text>
-<text text-anchor="start" x="436" y="-370.5" font-family="Helvetica,sans-Serif" font-size="10.00">< BitwiseOrNode ></text>
+<polygon fill="white" stroke="transparent" points="573,-409 394,-409 394,-248 573,-248 573,-409"/>
+<text text-anchor="start" x="421.5" y="-396.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::prim::BinaryOpNode</text>
+<text text-anchor="start" x="436" y="-385.5" font-family="Helvetica,sans-Serif" font-size="10.00">< BitwiseOrNode ></text>
+<text text-anchor="start" x="398.5" y="-370.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="411.5" y="-370.5" font-family="Helvetica,sans-Serif" font-size="10.00">a</text>
<text text-anchor="start" x="398.5" y="-355.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="411.5" y="-355.5" font-family="Helvetica,sans-Serif" font-size="10.00">a</text>
+<text text-anchor="start" x="411.5" y="-355.5" font-family="Helvetica,sans-Serif" font-size="10.00">b</text>
<text text-anchor="start" x="398.5" y="-340.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="411.5" y="-340.5" font-family="Helvetica,sans-Serif" font-size="10.00">b</text>
+<text text-anchor="start" x="411.5" y="-340.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_child_slots</text>
<text text-anchor="start" x="398.5" y="-325.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="411.5" y="-325.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_child_slots</text>
+<text text-anchor="start" x="411.5" y="-325.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_final</text>
<text text-anchor="start" x="398.5" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="411.5" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_final</text>
+<text text-anchor="start" x="411.5" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">BinaryOpNode()</text>
<text text-anchor="start" x="398.5" y="-295.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="411.5" y="-295.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="411.5" y="-284.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_PREDEFINED_TYPE_KEY()</text>
-<text text-anchor="start" x="398.5" y="-269.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="411.5" y="-269.5" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
-<polygon fill="#666666" stroke="#666666" points="394.5,-365.5 394.5,-365.5 573.5,-365.5 573.5,-365.5 394.5,-365.5"/>
-<polygon fill="#666666" stroke="#666666" points="394.5,-305.5 394.5,-305.5 409.5,-305.5 409.5,-305.5 394.5,-305.5"/>
-<polygon fill="#666666" stroke="#666666" points="409.5,-305.5 409.5,-305.5 573.5,-305.5 573.5,-305.5 409.5,-305.5"/>
-<polygon fill="none" stroke="#666666" points="394,-263 394,-394 573,-394 573,-263 394,-263"/>
+<text text-anchor="start" x="411.5" y="-295.5" font-family="Helvetica,sans-Serif" font-size="10.00">BinaryOpNode()</text>
+<text text-anchor="start" x="398.5" y="-280.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="411.5" y="-280.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="411.5" y="-269.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_PREDEFINED_TYPE_KEY()</text>
+<text text-anchor="start" x="398.5" y="-254.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="411.5" y="-254.5" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
+<polygon fill="#666666" stroke="#666666" points="394.5,-380.5 394.5,-380.5 573.5,-380.5 573.5,-380.5 394.5,-380.5"/>
+<polygon fill="#666666" stroke="#666666" points="394.5,-320.5 394.5,-320.5 409.5,-320.5 409.5,-320.5 394.5,-320.5"/>
+<polygon fill="#666666" stroke="#666666" points="409.5,-320.5 409.5,-320.5 573.5,-320.5 573.5,-320.5 409.5,-320.5"/>
+<polygon fill="none" stroke="#666666" points="394,-248 394,-409 573,-409 573,-248 394,-248"/>
</a>
</g>
</g>
@@ -137,7 +149,7 @@
<g id="edge6_Node000001_Node000007" class="edge">
<title>Node1->Node7</title>
<g id="a_edge6_Node000001_Node000007"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M4452.1,-535.88C3883.84,-534.89 762.65,-525.59 581.5,-441 559.32,-430.64 540.1,-412.62 524.71,-394.04"/>
+<path fill="none" stroke="#63b8ff" d="M4452.1,-535.88C3883.84,-534.89 762.65,-525.59 581.5,-441 565.39,-433.48 550.84,-421.91 538.19,-409.02"/>
<polygon fill="none" stroke="#63b8ff" points="4452.27,-539.38 4462.28,-535.9 4452.29,-532.38 4452.27,-539.38"/>
</a>
</g>
@@ -146,26 +158,30 @@
<g id="Node000009" class="node">
<title>Node9</title>
<g id="a_Node000009"><a xlink:href="classtvm_1_1prim_1_1BinaryOpNode.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="transparent" points="770,-394 591,-394 591,-263 770,-263 770,-394"/>
-<text text-anchor="start" x="618.5" y="-381.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::prim::BinaryOpNode</text>
-<text text-anchor="start" x="630.5" y="-370.5" font-family="Helvetica,sans-Serif" font-size="10.00">< BitwiseXorNode ></text>
+<polygon fill="white" stroke="transparent" points="770,-409 591,-409 591,-248 770,-248 770,-409"/>
+<text text-anchor="start" x="618.5" y="-396.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::prim::BinaryOpNode</text>
+<text text-anchor="start" x="630.5" y="-385.5" font-family="Helvetica,sans-Serif" font-size="10.00">< BitwiseXorNode ></text>
+<text text-anchor="start" x="595.5" y="-370.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="608.5" y="-370.5" font-family="Helvetica,sans-Serif" font-size="10.00">a</text>
<text text-anchor="start" x="595.5" y="-355.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="608.5" y="-355.5" font-family="Helvetica,sans-Serif" font-size="10.00">a</text>
+<text text-anchor="start" x="608.5" y="-355.5" font-family="Helvetica,sans-Serif" font-size="10.00">b</text>
<text text-anchor="start" x="595.5" y="-340.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="608.5" y="-340.5" font-family="Helvetica,sans-Serif" font-size="10.00">b</text>
+<text text-anchor="start" x="608.5" y="-340.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_child_slots</text>
<text text-anchor="start" x="595.5" y="-325.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="608.5" y="-325.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_child_slots</text>
+<text text-anchor="start" x="608.5" y="-325.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_final</text>
<text text-anchor="start" x="595.5" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="608.5" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_final</text>
+<text text-anchor="start" x="608.5" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">BinaryOpNode()</text>
<text text-anchor="start" x="595.5" y="-295.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="608.5" y="-295.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="608.5" y="-284.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_PREDEFINED_TYPE_KEY()</text>
-<text text-anchor="start" x="595.5" y="-269.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="608.5" y="-269.5" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
-<polygon fill="#666666" stroke="#666666" points="591.5,-365.5 591.5,-365.5 770.5,-365.5 770.5,-365.5 591.5,-365.5"/>
-<polygon fill="#666666" stroke="#666666" points="591.5,-305.5 591.5,-305.5 606.5,-305.5 606.5,-305.5 591.5,-305.5"/>
-<polygon fill="#666666" stroke="#666666" points="606.5,-305.5 606.5,-305.5 770.5,-305.5 770.5,-305.5 606.5,-305.5"/>
-<polygon fill="none" stroke="#666666" points="591,-263 591,-394 770,-394 770,-263 591,-263"/>
+<text text-anchor="start" x="608.5" y="-295.5" font-family="Helvetica,sans-Serif" font-size="10.00">BinaryOpNode()</text>
+<text text-anchor="start" x="595.5" y="-280.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="608.5" y="-280.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="608.5" y="-269.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_PREDEFINED_TYPE_KEY()</text>
+<text text-anchor="start" x="595.5" y="-254.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="608.5" y="-254.5" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
+<polygon fill="#666666" stroke="#666666" points="591.5,-380.5 591.5,-380.5 770.5,-380.5 770.5,-380.5 591.5,-380.5"/>
+<polygon fill="#666666" stroke="#666666" points="591.5,-320.5 591.5,-320.5 606.5,-320.5 606.5,-320.5 591.5,-320.5"/>
+<polygon fill="#666666" stroke="#666666" points="606.5,-320.5 606.5,-320.5 770.5,-320.5 770.5,-320.5 606.5,-320.5"/>
+<polygon fill="none" stroke="#666666" points="591,-248 591,-409 770,-409 770,-248 591,-248"/>
</a>
</g>
</g>
@@ -173,7 +189,7 @@
<g id="edge8_Node000001_Node000009" class="edge">
<title>Node1->Node9</title>
<g id="a_edge8_Node000001_Node000009"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M4452.16,-535.77C3900.82,-534.08 950.13,-521.28 778.5,-441 756.32,-430.63 737.11,-412.6 721.71,-394.02"/>
+<path fill="none" stroke="#63b8ff" d="M4452.16,-535.77C3900.82,-534.08 950.13,-521.28 778.5,-441 762.39,-433.47 747.85,-421.89 735.2,-409.01"/>
<polygon fill="none" stroke="#63b8ff" points="4452.42,-539.27 4462.43,-535.8 4452.44,-532.27 4452.42,-539.27"/>
</a>
</g>
@@ -182,26 +198,30 @@
<g id="Node000011" class="node">
<title>Node11</title>
<g id="a_Node000011"><a xlink:href="classtvm_1_1prim_1_1BinaryOpNode.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="transparent" points="967,-394 788,-394 788,-263 967,-263 967,-394"/>
-<text text-anchor="start" x="815.5" y="-381.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::prim::BinaryOpNode</text>
-<text text-anchor="start" x="845.5" y="-370.5" font-family="Helvetica,sans-Serif" font-size="10.00">< DivNode ></text>
+<polygon fill="white" stroke="transparent" points="967,-409 788,-409 788,-248 967,-248 967,-409"/>
+<text text-anchor="start" x="815.5" y="-396.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::prim::BinaryOpNode</text>
+<text text-anchor="start" x="845.5" y="-385.5" font-family="Helvetica,sans-Serif" font-size="10.00">< DivNode ></text>
+<text text-anchor="start" x="792.5" y="-370.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="805.5" y="-370.5" font-family="Helvetica,sans-Serif" font-size="10.00">a</text>
<text text-anchor="start" x="792.5" y="-355.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="805.5" y="-355.5" font-family="Helvetica,sans-Serif" font-size="10.00">a</text>
+<text text-anchor="start" x="805.5" y="-355.5" font-family="Helvetica,sans-Serif" font-size="10.00">b</text>
<text text-anchor="start" x="792.5" y="-340.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="805.5" y="-340.5" font-family="Helvetica,sans-Serif" font-size="10.00">b</text>
+<text text-anchor="start" x="805.5" y="-340.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_child_slots</text>
<text text-anchor="start" x="792.5" y="-325.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="805.5" y="-325.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_child_slots</text>
+<text text-anchor="start" x="805.5" y="-325.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_final</text>
<text text-anchor="start" x="792.5" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="805.5" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_final</text>
+<text text-anchor="start" x="805.5" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">BinaryOpNode()</text>
<text text-anchor="start" x="792.5" y="-295.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="805.5" y="-295.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="805.5" y="-284.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_PREDEFINED_TYPE_KEY()</text>
-<text text-anchor="start" x="792.5" y="-269.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="805.5" y="-269.5" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
-<polygon fill="#666666" stroke="#666666" points="788.5,-365.5 788.5,-365.5 967.5,-365.5 967.5,-365.5 788.5,-365.5"/>
-<polygon fill="#666666" stroke="#666666" points="788.5,-305.5 788.5,-305.5 803.5,-305.5 803.5,-305.5 788.5,-305.5"/>
-<polygon fill="#666666" stroke="#666666" points="803.5,-305.5 803.5,-305.5 967.5,-305.5 967.5,-305.5 803.5,-305.5"/>
-<polygon fill="none" stroke="#666666" points="788,-263 788,-394 967,-394 967,-263 788,-263"/>
+<text text-anchor="start" x="805.5" y="-295.5" font-family="Helvetica,sans-Serif" font-size="10.00">BinaryOpNode()</text>
+<text text-anchor="start" x="792.5" y="-280.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="805.5" y="-280.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="805.5" y="-269.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_PREDEFINED_TYPE_KEY()</text>
+<text text-anchor="start" x="792.5" y="-254.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="805.5" y="-254.5" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
+<polygon fill="#666666" stroke="#666666" points="788.5,-380.5 788.5,-380.5 967.5,-380.5 967.5,-380.5 788.5,-380.5"/>
+<polygon fill="#666666" stroke="#666666" points="788.5,-320.5 788.5,-320.5 803.5,-320.5 803.5,-320.5 788.5,-320.5"/>
+<polygon fill="#666666" stroke="#666666" points="803.5,-320.5 803.5,-320.5 967.5,-320.5 967.5,-320.5 803.5,-320.5"/>
+<polygon fill="none" stroke="#666666" points="788,-248 788,-409 967,-409 967,-248 788,-248"/>
</a>
</g>
</g>
@@ -209,7 +229,7 @@
<g id="edge10_Node000001_Node000011" class="edge">
<title>Node1->Node11</title>
<g id="a_edge10_Node000001_Node000011"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M4452.15,-535.64C3917.99,-533.21 1137.62,-516.97 975.5,-441 953.33,-430.61 934.12,-412.58 918.72,-394.01"/>
+<path fill="none" stroke="#63b8ff" d="M4452.15,-535.64C3917.99,-533.21 1137.62,-516.97 975.5,-441 959.51,-433.51 945.07,-422.04 932.48,-409.27"/>
<polygon fill="none" stroke="#63b8ff" points="4452.47,-539.14 4462.48,-535.69 4452.5,-532.14 4452.47,-539.14"/>
</a>
</g>
@@ -218,26 +238,30 @@
<g id="Node000013" class="node">
<title>Node13</title>
<g id="a_Node000013"><a xlink:href="classtvm_1_1prim_1_1BinaryOpNode.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="transparent" points="1164,-394 985,-394 985,-263 1164,-263 1164,-394"/>
-<text text-anchor="start" x="1012.5" y="-381.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::prim::BinaryOpNode</text>
-<text text-anchor="start" x="1030" y="-370.5" font-family="Helvetica,sans-Serif" font-size="10.00">< FloorDivNode ></text>
+<polygon fill="white" stroke="transparent" points="1164,-409 985,-409 985,-248 1164,-248 1164,-409"/>
+<text text-anchor="start" x="1012.5" y="-396.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::prim::BinaryOpNode</text>
+<text text-anchor="start" x="1030" y="-385.5" font-family="Helvetica,sans-Serif" font-size="10.00">< FloorDivNode ></text>
+<text text-anchor="start" x="989.5" y="-370.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="1002.5" y="-370.5" font-family="Helvetica,sans-Serif" font-size="10.00">a</text>
<text text-anchor="start" x="989.5" y="-355.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="1002.5" y="-355.5" font-family="Helvetica,sans-Serif" font-size="10.00">a</text>
+<text text-anchor="start" x="1002.5" y="-355.5" font-family="Helvetica,sans-Serif" font-size="10.00">b</text>
<text text-anchor="start" x="989.5" y="-340.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="1002.5" y="-340.5" font-family="Helvetica,sans-Serif" font-size="10.00">b</text>
+<text text-anchor="start" x="1002.5" y="-340.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_child_slots</text>
<text text-anchor="start" x="989.5" y="-325.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="1002.5" y="-325.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_child_slots</text>
+<text text-anchor="start" x="1002.5" y="-325.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_final</text>
<text text-anchor="start" x="989.5" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="1002.5" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_final</text>
+<text text-anchor="start" x="1002.5" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">BinaryOpNode()</text>
<text text-anchor="start" x="989.5" y="-295.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="1002.5" y="-295.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="1002.5" y="-284.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_PREDEFINED_TYPE_KEY()</text>
-<text text-anchor="start" x="989.5" y="-269.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="1002.5" y="-269.5" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
-<polygon fill="#666666" stroke="#666666" points="985.5,-365.5 985.5,-365.5 1164.5,-365.5 1164.5,-365.5 985.5,-365.5"/>
-<polygon fill="#666666" stroke="#666666" points="985.5,-305.5 985.5,-305.5 1000.5,-305.5 1000.5,-305.5 985.5,-305.5"/>
-<polygon fill="#666666" stroke="#666666" points="1000.5,-305.5 1000.5,-305.5 1164.5,-305.5 1164.5,-305.5 1000.5,-305.5"/>
-<polygon fill="none" stroke="#666666" points="985,-263 985,-394 1164,-394 1164,-263 985,-263"/>
+<text text-anchor="start" x="1002.5" y="-295.5" font-family="Helvetica,sans-Serif" font-size="10.00">BinaryOpNode()</text>
+<text text-anchor="start" x="989.5" y="-280.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="1002.5" y="-280.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="1002.5" y="-269.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_PREDEFINED_TYPE_KEY()</text>
+<text text-anchor="start" x="989.5" y="-254.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="1002.5" y="-254.5" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
+<polygon fill="#666666" stroke="#666666" points="985.5,-380.5 985.5,-380.5 1164.5,-380.5 1164.5,-380.5 985.5,-380.5"/>
+<polygon fill="#666666" stroke="#666666" points="985.5,-320.5 985.5,-320.5 1000.5,-320.5 1000.5,-320.5 985.5,-320.5"/>
+<polygon fill="#666666" stroke="#666666" points="1000.5,-320.5 1000.5,-320.5 1164.5,-320.5 1164.5,-320.5 1000.5,-320.5"/>
+<polygon fill="none" stroke="#666666" points="985,-248 985,-409 1164,-409 1164,-248 985,-248"/>
</a>
</g>
</g>
@@ -245,7 +269,7 @@
<g id="edge12_Node000001_Node000013" class="edge">
<title>Node1->Node13</title>
<g id="a_edge12_Node000001_Node000013"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M4452.12,-535.5C3935.61,-532.3 1325.13,-512.66 1172.5,-441 1150.45,-430.65 1131.33,-412.75 1115.98,-394.28"/>
+<path fill="none" stroke="#63b8ff" d="M4452.12,-535.5C3935.61,-532.3 1325.13,-512.66 1172.5,-441 1156.52,-433.5 1142.08,-422.03 1129.49,-409.25"/>
<polygon fill="none" stroke="#63b8ff" points="4452.47,-539 4462.49,-535.56 4452.51,-532 4452.47,-539"/>
</a>
</g>
@@ -254,26 +278,30 @@
<g id="Node000015" class="node">
<title>Node15</title>
<g id="a_Node000015"><a xlink:href="classtvm_1_1prim_1_1BinaryOpNode.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="transparent" points="1361,-394 1182,-394 1182,-263 1361,-263 1361,-394"/>
-<text text-anchor="start" x="1209.5" y="-381.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::prim::BinaryOpNode</text>
-<text text-anchor="start" x="1225" y="-370.5" font-family="Helvetica,sans-Serif" font-size="10.00">< FloorModNode ></text>
+<polygon fill="white" stroke="transparent" points="1361,-409 1182,-409 1182,-248 1361,-248 1361,-409"/>
+<text text-anchor="start" x="1209.5" y="-396.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::prim::BinaryOpNode</text>
+<text text-anchor="start" x="1225" y="-385.5" font-family="Helvetica,sans-Serif" font-size="10.00">< FloorModNode ></text>
+<text text-anchor="start" x="1186.5" y="-370.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="1199.5" y="-370.5" font-family="Helvetica,sans-Serif" font-size="10.00">a</text>
<text text-anchor="start" x="1186.5" y="-355.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="1199.5" y="-355.5" font-family="Helvetica,sans-Serif" font-size="10.00">a</text>
+<text text-anchor="start" x="1199.5" y="-355.5" font-family="Helvetica,sans-Serif" font-size="10.00">b</text>
<text text-anchor="start" x="1186.5" y="-340.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="1199.5" y="-340.5" font-family="Helvetica,sans-Serif" font-size="10.00">b</text>
+<text text-anchor="start" x="1199.5" y="-340.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_child_slots</text>
<text text-anchor="start" x="1186.5" y="-325.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="1199.5" y="-325.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_child_slots</text>
+<text text-anchor="start" x="1199.5" y="-325.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_final</text>
<text text-anchor="start" x="1186.5" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="1199.5" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_final</text>
+<text text-anchor="start" x="1199.5" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">BinaryOpNode()</text>
<text text-anchor="start" x="1186.5" y="-295.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="1199.5" y="-295.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="1199.5" y="-284.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_PREDEFINED_TYPE_KEY()</text>
-<text text-anchor="start" x="1186.5" y="-269.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="1199.5" y="-269.5" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
-<polygon fill="#666666" stroke="#666666" points="1182.5,-365.5 1182.5,-365.5 1361.5,-365.5 1361.5,-365.5 1182.5,-365.5"/>
-<polygon fill="#666666" stroke="#666666" points="1182.5,-305.5 1182.5,-305.5 1197.5,-305.5 1197.5,-305.5 1182.5,-305.5"/>
-<polygon fill="#666666" stroke="#666666" points="1197.5,-305.5 1197.5,-305.5 1361.5,-305.5 1361.5,-305.5 1197.5,-305.5"/>
-<polygon fill="none" stroke="#666666" points="1182,-263 1182,-394 1361,-394 1361,-263 1182,-263"/>
+<text text-anchor="start" x="1199.5" y="-295.5" font-family="Helvetica,sans-Serif" font-size="10.00">BinaryOpNode()</text>
+<text text-anchor="start" x="1186.5" y="-280.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="1199.5" y="-280.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="1199.5" y="-269.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_PREDEFINED_TYPE_KEY()</text>
+<text text-anchor="start" x="1186.5" y="-254.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="1199.5" y="-254.5" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
+<polygon fill="#666666" stroke="#666666" points="1182.5,-380.5 1182.5,-380.5 1361.5,-380.5 1361.5,-380.5 1182.5,-380.5"/>
+<polygon fill="#666666" stroke="#666666" points="1182.5,-320.5 1182.5,-320.5 1197.5,-320.5 1197.5,-320.5 1182.5,-320.5"/>
+<polygon fill="#666666" stroke="#666666" points="1197.5,-320.5 1197.5,-320.5 1361.5,-320.5 1361.5,-320.5 1197.5,-320.5"/>
+<polygon fill="none" stroke="#666666" points="1182,-248 1182,-409 1361,-409 1361,-248 1182,-248"/>
</a>
</g>
</g>
@@ -281,7 +309,7 @@
<g id="edge14_Node000001_Node000015" class="edge">
<title>Node1->Node15</title>
<g id="a_edge14_Node000001_Node000015"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M4452.11,-535.33C3953.81,-531.34 1512.65,-508.36 1369.5,-441 1347.46,-430.63 1328.34,-412.72 1312.99,-394.26"/>
+<path fill="none" stroke="#63b8ff" d="M4452.11,-535.33C3953.81,-531.34 1512.65,-508.36 1369.5,-441 1353.53,-433.48 1339.08,-422.01 1326.5,-409.23"/>
<polygon fill="none" stroke="#63b8ff" points="4452.1,-538.83 4462.12,-535.41 4452.15,-531.84 4452.1,-538.83"/>
</a>
</g>
@@ -290,26 +318,30 @@
<g id="Node000017" class="node">
<title>Node17</title>
<g id="a_Node000017"><a xlink:href="classtvm_1_1prim_1_1BinaryOpNode.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="transparent" points="1558,-394 1379,-394 1379,-263 1558,-263 1558,-394"/>
-<text text-anchor="start" x="1406.5" y="-381.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::prim::BinaryOpNode</text>
-<text text-anchor="start" x="1431" y="-370.5" font-family="Helvetica,sans-Serif" font-size="10.00">< LShiftNode ></text>
+<polygon fill="white" stroke="transparent" points="1558,-409 1379,-409 1379,-248 1558,-248 1558,-409"/>
+<text text-anchor="start" x="1406.5" y="-396.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::prim::BinaryOpNode</text>
+<text text-anchor="start" x="1431" y="-385.5" font-family="Helvetica,sans-Serif" font-size="10.00">< LShiftNode ></text>
+<text text-anchor="start" x="1383.5" y="-370.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="1396.5" y="-370.5" font-family="Helvetica,sans-Serif" font-size="10.00">a</text>
<text text-anchor="start" x="1383.5" y="-355.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="1396.5" y="-355.5" font-family="Helvetica,sans-Serif" font-size="10.00">a</text>
+<text text-anchor="start" x="1396.5" y="-355.5" font-family="Helvetica,sans-Serif" font-size="10.00">b</text>
<text text-anchor="start" x="1383.5" y="-340.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="1396.5" y="-340.5" font-family="Helvetica,sans-Serif" font-size="10.00">b</text>
+<text text-anchor="start" x="1396.5" y="-340.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_child_slots</text>
<text text-anchor="start" x="1383.5" y="-325.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="1396.5" y="-325.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_child_slots</text>
+<text text-anchor="start" x="1396.5" y="-325.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_final</text>
<text text-anchor="start" x="1383.5" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="1396.5" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_final</text>
+<text text-anchor="start" x="1396.5" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">BinaryOpNode()</text>
<text text-anchor="start" x="1383.5" y="-295.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="1396.5" y="-295.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="1396.5" y="-284.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_PREDEFINED_TYPE_KEY()</text>
-<text text-anchor="start" x="1383.5" y="-269.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="1396.5" y="-269.5" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
-<polygon fill="#666666" stroke="#666666" points="1379.5,-365.5 1379.5,-365.5 1558.5,-365.5 1558.5,-365.5 1379.5,-365.5"/>
-<polygon fill="#666666" stroke="#666666" points="1379.5,-305.5 1379.5,-305.5 1394.5,-305.5 1394.5,-305.5 1379.5,-305.5"/>
-<polygon fill="#666666" stroke="#666666" points="1394.5,-305.5 1394.5,-305.5 1558.5,-305.5 1558.5,-305.5 1394.5,-305.5"/>
-<polygon fill="none" stroke="#666666" points="1379,-263 1379,-394 1558,-394 1558,-263 1379,-263"/>
+<text text-anchor="start" x="1396.5" y="-295.5" font-family="Helvetica,sans-Serif" font-size="10.00">BinaryOpNode()</text>
+<text text-anchor="start" x="1383.5" y="-280.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="1396.5" y="-280.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="1396.5" y="-269.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_PREDEFINED_TYPE_KEY()</text>
+<text text-anchor="start" x="1383.5" y="-254.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="1396.5" y="-254.5" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
+<polygon fill="#666666" stroke="#666666" points="1379.5,-380.5 1379.5,-380.5 1558.5,-380.5 1558.5,-380.5 1379.5,-380.5"/>
+<polygon fill="#666666" stroke="#666666" points="1379.5,-320.5 1379.5,-320.5 1394.5,-320.5 1394.5,-320.5 1379.5,-320.5"/>
+<polygon fill="#666666" stroke="#666666" points="1394.5,-320.5 1394.5,-320.5 1558.5,-320.5 1558.5,-320.5 1394.5,-320.5"/>
+<polygon fill="none" stroke="#666666" points="1379,-248 1379,-409 1558,-409 1558,-248 1379,-248"/>
</a>
</g>
</g>
@@ -317,7 +349,7 @@
<g id="edge16_Node000001_Node000017" class="edge">
<title>Node1->Node17</title>
<g id="a_edge16_Node000001_Node000017"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M4451.9,-535.15C3971.96,-530.3 1700.16,-504.06 1566.5,-441 1544.47,-430.61 1525.36,-412.69 1510,-394.23"/>
+<path fill="none" stroke="#63b8ff" d="M4451.9,-535.15C3971.96,-530.3 1700.16,-504.06 1566.5,-441 1550.53,-433.47 1536.1,-421.98 1523.51,-409.2"/>
<polygon fill="none" stroke="#63b8ff" points="4452.2,-538.65 4462.23,-535.25 4452.27,-531.65 4452.2,-538.65"/>
</a>
</g>
@@ -326,26 +358,30 @@
<g id="Node000019" class="node">
<title>Node19</title>
<g id="a_Node000019"><a xlink:href="classtvm_1_1prim_1_1BinaryOpNode.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="transparent" points="1755,-394 1576,-394 1576,-263 1755,-263 1755,-394"/>
-<text text-anchor="start" x="1603.5" y="-381.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::prim::BinaryOpNode</text>
-<text text-anchor="start" x="1631" y="-370.5" font-family="Helvetica,sans-Serif" font-size="10.00">< MaxNode ></text>
+<polygon fill="white" stroke="transparent" points="1755,-409 1576,-409 1576,-248 1755,-248 1755,-409"/>
+<text text-anchor="start" x="1603.5" y="-396.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::prim::BinaryOpNode</text>
+<text text-anchor="start" x="1631" y="-385.5" font-family="Helvetica,sans-Serif" font-size="10.00">< MaxNode ></text>
+<text text-anchor="start" x="1580.5" y="-370.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="1593.5" y="-370.5" font-family="Helvetica,sans-Serif" font-size="10.00">a</text>
<text text-anchor="start" x="1580.5" y="-355.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="1593.5" y="-355.5" font-family="Helvetica,sans-Serif" font-size="10.00">a</text>
+<text text-anchor="start" x="1593.5" y="-355.5" font-family="Helvetica,sans-Serif" font-size="10.00">b</text>
<text text-anchor="start" x="1580.5" y="-340.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="1593.5" y="-340.5" font-family="Helvetica,sans-Serif" font-size="10.00">b</text>
+<text text-anchor="start" x="1593.5" y="-340.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_child_slots</text>
<text text-anchor="start" x="1580.5" y="-325.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="1593.5" y="-325.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_child_slots</text>
+<text text-anchor="start" x="1593.5" y="-325.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_final</text>
<text text-anchor="start" x="1580.5" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="1593.5" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_final</text>
+<text text-anchor="start" x="1593.5" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">BinaryOpNode()</text>
<text text-anchor="start" x="1580.5" y="-295.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="1593.5" y="-295.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="1593.5" y="-284.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_PREDEFINED_TYPE_KEY()</text>
-<text text-anchor="start" x="1580.5" y="-269.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="1593.5" y="-269.5" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
-<polygon fill="#666666" stroke="#666666" points="1576.5,-365.5 1576.5,-365.5 1755.5,-365.5 1755.5,-365.5 1576.5,-365.5"/>
-<polygon fill="#666666" stroke="#666666" points="1576.5,-305.5 1576.5,-305.5 1591.5,-305.5 1591.5,-305.5 1576.5,-305.5"/>
-<polygon fill="#666666" stroke="#666666" points="1591.5,-305.5 1591.5,-305.5 1755.5,-305.5 1755.5,-305.5 1591.5,-305.5"/>
-<polygon fill="none" stroke="#666666" points="1576,-263 1576,-394 1755,-394 1755,-263 1576,-263"/>
+<text text-anchor="start" x="1593.5" y="-295.5" font-family="Helvetica,sans-Serif" font-size="10.00">BinaryOpNode()</text>
+<text text-anchor="start" x="1580.5" y="-280.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="1593.5" y="-280.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="1593.5" y="-269.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_PREDEFINED_TYPE_KEY()</text>
+<text text-anchor="start" x="1580.5" y="-254.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="1593.5" y="-254.5" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
+<polygon fill="#666666" stroke="#666666" points="1576.5,-380.5 1576.5,-380.5 1755.5,-380.5 1755.5,-380.5 1576.5,-380.5"/>
+<polygon fill="#666666" stroke="#666666" points="1576.5,-320.5 1576.5,-320.5 1591.5,-320.5 1591.5,-320.5 1576.5,-320.5"/>
+<polygon fill="#666666" stroke="#666666" points="1591.5,-320.5 1591.5,-320.5 1755.5,-320.5 1755.5,-320.5 1591.5,-320.5"/>
+<polygon fill="none" stroke="#666666" points="1576,-248 1576,-409 1755,-409 1755,-248 1576,-248"/>
</a>
</g>
</g>
@@ -353,7 +389,7 @@
<g id="edge18_Node000001_Node000019" class="edge">
<title>Node1->Node19</title>
<g id="a_edge18_Node000001_Node000019"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M4452.26,-534.95C3992.5,-529.21 1887.75,-499.79 1763.5,-441 1741.49,-430.58 1722.37,-412.66 1707.01,-394.2"/>
+<path fill="none" stroke="#63b8ff" d="M4452.26,-534.95C3992.5,-529.21 1887.75,-499.79 1763.5,-441 1747.54,-433.45 1733.11,-421.96 1720.52,-409.17"/>
<polygon fill="none" stroke="#63b8ff" points="4452.44,-538.45 4462.49,-535.07 4452.53,-531.45 4452.44,-538.45"/>
</a>
</g>
@@ -362,26 +398,30 @@
<g id="Node000021" class="node">
<title>Node21</title>
<g id="a_Node000021"><a xlink:href="classtvm_1_1prim_1_1BinaryOpNode.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="transparent" points="1952,-394 1773,-394 1773,-263 1952,-263 1952,-394"/>
-<text text-anchor="start" x="1800.5" y="-381.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::prim::BinaryOpNode</text>
-<text text-anchor="start" x="1829.5" y="-370.5" font-family="Helvetica,sans-Serif" font-size="10.00">< MinNode ></text>
+<polygon fill="white" stroke="transparent" points="1952,-409 1773,-409 1773,-248 1952,-248 1952,-409"/>
+<text text-anchor="start" x="1800.5" y="-396.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::prim::BinaryOpNode</text>
+<text text-anchor="start" x="1829.5" y="-385.5" font-family="Helvetica,sans-Serif" font-size="10.00">< MinNode ></text>
+<text text-anchor="start" x="1777.5" y="-370.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="1790.5" y="-370.5" font-family="Helvetica,sans-Serif" font-size="10.00">a</text>
<text text-anchor="start" x="1777.5" y="-355.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="1790.5" y="-355.5" font-family="Helvetica,sans-Serif" font-size="10.00">a</text>
+<text text-anchor="start" x="1790.5" y="-355.5" font-family="Helvetica,sans-Serif" font-size="10.00">b</text>
<text text-anchor="start" x="1777.5" y="-340.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="1790.5" y="-340.5" font-family="Helvetica,sans-Serif" font-size="10.00">b</text>
+<text text-anchor="start" x="1790.5" y="-340.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_child_slots</text>
<text text-anchor="start" x="1777.5" y="-325.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="1790.5" y="-325.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_child_slots</text>
+<text text-anchor="start" x="1790.5" y="-325.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_final</text>
<text text-anchor="start" x="1777.5" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="1790.5" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_final</text>
+<text text-anchor="start" x="1790.5" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">BinaryOpNode()</text>
<text text-anchor="start" x="1777.5" y="-295.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="1790.5" y="-295.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="1790.5" y="-284.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_PREDEFINED_TYPE_KEY()</text>
-<text text-anchor="start" x="1777.5" y="-269.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="1790.5" y="-269.5" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
-<polygon fill="#666666" stroke="#666666" points="1773.5,-365.5 1773.5,-365.5 1952.5,-365.5 1952.5,-365.5 1773.5,-365.5"/>
-<polygon fill="#666666" stroke="#666666" points="1773.5,-305.5 1773.5,-305.5 1788.5,-305.5 1788.5,-305.5 1773.5,-305.5"/>
-<polygon fill="#666666" stroke="#666666" points="1788.5,-305.5 1788.5,-305.5 1952.5,-305.5 1952.5,-305.5 1788.5,-305.5"/>
-<polygon fill="none" stroke="#666666" points="1773,-263 1773,-394 1952,-394 1952,-263 1773,-263"/>
+<text text-anchor="start" x="1790.5" y="-295.5" font-family="Helvetica,sans-Serif" font-size="10.00">BinaryOpNode()</text>
+<text text-anchor="start" x="1777.5" y="-280.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="1790.5" y="-280.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="1790.5" y="-269.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_PREDEFINED_TYPE_KEY()</text>
+<text text-anchor="start" x="1777.5" y="-254.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="1790.5" y="-254.5" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
+<polygon fill="#666666" stroke="#666666" points="1773.5,-380.5 1773.5,-380.5 1952.5,-380.5 1952.5,-380.5 1773.5,-380.5"/>
+<polygon fill="#666666" stroke="#666666" points="1773.5,-320.5 1773.5,-320.5 1788.5,-320.5 1788.5,-320.5 1773.5,-320.5"/>
+<polygon fill="#666666" stroke="#666666" points="1788.5,-320.5 1788.5,-320.5 1952.5,-320.5 1952.5,-320.5 1788.5,-320.5"/>
+<polygon fill="none" stroke="#666666" points="1773,-248 1773,-409 1952,-409 1952,-248 1773,-248"/>
</a>
</g>
</g>
@@ -389,7 +429,7 @@
<g id="edge20_Node000001_Node000021" class="edge">
<title>Node1->Node21</title>
<g id="a_edge20_Node000001_Node000021"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M4452.16,-534.7C4012.35,-528.01 2075.31,-495.51 1960.5,-441 1938.5,-430.55 1919.39,-412.63 1904.03,-394.16"/>
+<path fill="none" stroke="#63b8ff" d="M4452.16,-534.7C4012.35,-528.01 2075.31,-495.51 1960.5,-441 1944.55,-433.43 1930.12,-421.93 1917.54,-409.14"/>
<polygon fill="none" stroke="#63b8ff" points="4452.22,-538.21 4462.27,-534.86 4452.33,-531.21 4452.22,-538.21"/>
</a>
</g>
@@ -398,26 +438,30 @@
<g id="Node000023" class="node">
<title>Node23</title>
<g id="a_Node000023"><a xlink:href="classtvm_1_1prim_1_1BinaryOpNode.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="transparent" points="2149,-394 1970,-394 1970,-263 2149,-263 2149,-394"/>
-<text text-anchor="start" x="1997.5" y="-381.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::prim::BinaryOpNode</text>
-<text text-anchor="start" x="2025" y="-370.5" font-family="Helvetica,sans-Serif" font-size="10.00">< ModNode ></text>
+<polygon fill="white" stroke="transparent" points="2149,-409 1970,-409 1970,-248 2149,-248 2149,-409"/>
+<text text-anchor="start" x="1997.5" y="-396.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::prim::BinaryOpNode</text>
+<text text-anchor="start" x="2025" y="-385.5" font-family="Helvetica,sans-Serif" font-size="10.00">< ModNode ></text>
+<text text-anchor="start" x="1974.5" y="-370.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="1987.5" y="-370.5" font-family="Helvetica,sans-Serif" font-size="10.00">a</text>
<text text-anchor="start" x="1974.5" y="-355.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="1987.5" y="-355.5" font-family="Helvetica,sans-Serif" font-size="10.00">a</text>
+<text text-anchor="start" x="1987.5" y="-355.5" font-family="Helvetica,sans-Serif" font-size="10.00">b</text>
<text text-anchor="start" x="1974.5" y="-340.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="1987.5" y="-340.5" font-family="Helvetica,sans-Serif" font-size="10.00">b</text>
+<text text-anchor="start" x="1987.5" y="-340.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_child_slots</text>
<text text-anchor="start" x="1974.5" y="-325.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="1987.5" y="-325.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_child_slots</text>
+<text text-anchor="start" x="1987.5" y="-325.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_final</text>
<text text-anchor="start" x="1974.5" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="1987.5" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_final</text>
+<text text-anchor="start" x="1987.5" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">BinaryOpNode()</text>
<text text-anchor="start" x="1974.5" y="-295.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="1987.5" y="-295.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="1987.5" y="-284.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_PREDEFINED_TYPE_KEY()</text>
-<text text-anchor="start" x="1974.5" y="-269.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="1987.5" y="-269.5" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
-<polygon fill="#666666" stroke="#666666" points="1970.5,-365.5 1970.5,-365.5 2149.5,-365.5 2149.5,-365.5 1970.5,-365.5"/>
-<polygon fill="#666666" stroke="#666666" points="1970.5,-305.5 1970.5,-305.5 1985.5,-305.5 1985.5,-305.5 1970.5,-305.5"/>
-<polygon fill="#666666" stroke="#666666" points="1985.5,-305.5 1985.5,-305.5 2149.5,-305.5 2149.5,-305.5 1985.5,-305.5"/>
-<polygon fill="none" stroke="#666666" points="1970,-263 1970,-394 2149,-394 2149,-263 1970,-263"/>
+<text text-anchor="start" x="1987.5" y="-295.5" font-family="Helvetica,sans-Serif" font-size="10.00">BinaryOpNode()</text>
+<text text-anchor="start" x="1974.5" y="-280.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="1987.5" y="-280.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="1987.5" y="-269.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_PREDEFINED_TYPE_KEY()</text>
+<text text-anchor="start" x="1974.5" y="-254.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="1987.5" y="-254.5" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
+<polygon fill="#666666" stroke="#666666" points="1970.5,-380.5 1970.5,-380.5 2149.5,-380.5 2149.5,-380.5 1970.5,-380.5"/>
+<polygon fill="#666666" stroke="#666666" points="1970.5,-320.5 1970.5,-320.5 1985.5,-320.5 1985.5,-320.5 1970.5,-320.5"/>
+<polygon fill="#666666" stroke="#666666" points="1985.5,-320.5 1985.5,-320.5 2149.5,-320.5 2149.5,-320.5 1985.5,-320.5"/>
+<polygon fill="none" stroke="#666666" points="1970,-248 1970,-409 2149,-409 2149,-248 1970,-248"/>
</a>
</g>
</g>
@@ -425,7 +469,7 @@
<g id="edge22_Node000001_Node000023" class="edge">
<title>Node1->Node23</title>
<g id="a_edge22_Node000001_Node000023"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M4452.19,-534.43C4033.36,-526.71 2262.9,-491.24 2157.5,-441 2135.52,-430.52 2116.41,-412.58 2101.05,-394.13"/>
+<path fill="none" stroke="#63b8ff" d="M4452.19,-534.43C4033.36,-526.71 2262.9,-491.24 2157.5,-441 2141.56,-433.4 2127.14,-421.89 2114.56,-409.1"/>
<polygon fill="none" stroke="#63b8ff" points="4452.36,-537.93 4462.42,-534.61 4452.49,-530.93 4452.36,-537.93"/>
</a>
</g>
@@ -434,26 +478,30 @@
<g id="Node000025" class="node">
<title>Node25</title>
<g id="a_Node000025"><a xlink:href="classtvm_1_1prim_1_1BinaryOpNode.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="transparent" points="2346,-394 2167,-394 2167,-263 2346,-263 2346,-394"/>
-<text text-anchor="start" x="2194.5" y="-381.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::prim::BinaryOpNode</text>
-<text text-anchor="start" x="2223.5" y="-370.5" font-family="Helvetica,sans-Serif" font-size="10.00">< MulNode ></text>
+<polygon fill="white" stroke="transparent" points="2346,-409 2167,-409 2167,-248 2346,-248 2346,-409"/>
+<text text-anchor="start" x="2194.5" y="-396.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::prim::BinaryOpNode</text>
+<text text-anchor="start" x="2223.5" y="-385.5" font-family="Helvetica,sans-Serif" font-size="10.00">< MulNode ></text>
+<text text-anchor="start" x="2171.5" y="-370.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="2184.5" y="-370.5" font-family="Helvetica,sans-Serif" font-size="10.00">a</text>
<text text-anchor="start" x="2171.5" y="-355.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="2184.5" y="-355.5" font-family="Helvetica,sans-Serif" font-size="10.00">a</text>
+<text text-anchor="start" x="2184.5" y="-355.5" font-family="Helvetica,sans-Serif" font-size="10.00">b</text>
<text text-anchor="start" x="2171.5" y="-340.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="2184.5" y="-340.5" font-family="Helvetica,sans-Serif" font-size="10.00">b</text>
+<text text-anchor="start" x="2184.5" y="-340.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_child_slots</text>
<text text-anchor="start" x="2171.5" y="-325.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="2184.5" y="-325.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_child_slots</text>
+<text text-anchor="start" x="2184.5" y="-325.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_final</text>
<text text-anchor="start" x="2171.5" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="2184.5" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_final</text>
+<text text-anchor="start" x="2184.5" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">BinaryOpNode()</text>
<text text-anchor="start" x="2171.5" y="-295.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="2184.5" y="-295.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="2184.5" y="-284.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_PREDEFINED_TYPE_KEY()</text>
-<text text-anchor="start" x="2171.5" y="-269.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="2184.5" y="-269.5" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
-<polygon fill="#666666" stroke="#666666" points="2167.5,-365.5 2167.5,-365.5 2346.5,-365.5 2346.5,-365.5 2167.5,-365.5"/>
-<polygon fill="#666666" stroke="#666666" points="2167.5,-305.5 2167.5,-305.5 2182.5,-305.5 2182.5,-305.5 2167.5,-305.5"/>
-<polygon fill="#666666" stroke="#666666" points="2182.5,-305.5 2182.5,-305.5 2346.5,-305.5 2346.5,-305.5 2182.5,-305.5"/>
-<polygon fill="none" stroke="#666666" points="2167,-263 2167,-394 2346,-394 2346,-263 2167,-263"/>
+<text text-anchor="start" x="2184.5" y="-295.5" font-family="Helvetica,sans-Serif" font-size="10.00">BinaryOpNode()</text>
+<text text-anchor="start" x="2171.5" y="-280.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="2184.5" y="-280.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="2184.5" y="-269.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_PREDEFINED_TYPE_KEY()</text>
+<text text-anchor="start" x="2171.5" y="-254.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="2184.5" y="-254.5" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
+<polygon fill="#666666" stroke="#666666" points="2167.5,-380.5 2167.5,-380.5 2346.5,-380.5 2346.5,-380.5 2167.5,-380.5"/>
+<polygon fill="#666666" stroke="#666666" points="2167.5,-320.5 2167.5,-320.5 2182.5,-320.5 2182.5,-320.5 2167.5,-320.5"/>
+<polygon fill="#666666" stroke="#666666" points="2182.5,-320.5 2182.5,-320.5 2346.5,-320.5 2346.5,-320.5 2182.5,-320.5"/>
+<polygon fill="none" stroke="#666666" points="2167,-248 2167,-409 2346,-409 2346,-248 2167,-248"/>
</a>
</g>
</g>
@@ -461,7 +509,7 @@
<g id="edge24_Node000001_Node000025" class="edge">
<title>Node1->Node25</title>
<g id="a_edge24_Node000001_Node000025"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M4452.18,-536.23C4067.11,-536.68 2545.8,-532.6 2354.5,-441 2332.53,-430.48 2313.43,-412.54 2298.07,-394.08"/>
+<path fill="none" stroke="#63b8ff" d="M4452.18,-536.23C4067.11,-536.68 2545.8,-532.6 2354.5,-441 2338.58,-433.38 2324.16,-421.85 2311.58,-409.05"/>
<polygon fill="none" stroke="#63b8ff" points="4452.43,-539.73 4462.42,-536.22 4452.42,-532.73 4452.43,-539.73"/>
</a>
</g>
@@ -470,26 +518,30 @@
<g id="Node000027" class="node">
<title>Node27</title>
<g id="a_Node000027"><a xlink:href="classtvm_1_1prim_1_1BinaryOpNode.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="transparent" points="2543,-394 2364,-394 2364,-263 2543,-263 2543,-394"/>
-<text text-anchor="start" x="2391.5" y="-381.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::prim::BinaryOpNode</text>
-<text text-anchor="start" x="2415.5" y="-370.5" font-family="Helvetica,sans-Serif" font-size="10.00">< RShiftNode ></text>
+<polygon fill="white" stroke="transparent" points="2543,-409 2364,-409 2364,-248 2543,-248 2543,-409"/>
+<text text-anchor="start" x="2391.5" y="-396.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::prim::BinaryOpNode</text>
+<text text-anchor="start" x="2415.5" y="-385.5" font-family="Helvetica,sans-Serif" font-size="10.00">< RShiftNode ></text>
+<text text-anchor="start" x="2368.5" y="-370.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="2381.5" y="-370.5" font-family="Helvetica,sans-Serif" font-size="10.00">a</text>
<text text-anchor="start" x="2368.5" y="-355.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="2381.5" y="-355.5" font-family="Helvetica,sans-Serif" font-size="10.00">a</text>
+<text text-anchor="start" x="2381.5" y="-355.5" font-family="Helvetica,sans-Serif" font-size="10.00">b</text>
<text text-anchor="start" x="2368.5" y="-340.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="2381.5" y="-340.5" font-family="Helvetica,sans-Serif" font-size="10.00">b</text>
+<text text-anchor="start" x="2381.5" y="-340.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_child_slots</text>
<text text-anchor="start" x="2368.5" y="-325.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="2381.5" y="-325.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_child_slots</text>
+<text text-anchor="start" x="2381.5" y="-325.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_final</text>
<text text-anchor="start" x="2368.5" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="2381.5" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_final</text>
+<text text-anchor="start" x="2381.5" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">BinaryOpNode()</text>
<text text-anchor="start" x="2368.5" y="-295.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="2381.5" y="-295.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="2381.5" y="-284.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_PREDEFINED_TYPE_KEY()</text>
-<text text-anchor="start" x="2368.5" y="-269.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="2381.5" y="-269.5" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
-<polygon fill="#666666" stroke="#666666" points="2364.5,-365.5 2364.5,-365.5 2543.5,-365.5 2543.5,-365.5 2364.5,-365.5"/>
-<polygon fill="#666666" stroke="#666666" points="2364.5,-305.5 2364.5,-305.5 2379.5,-305.5 2379.5,-305.5 2364.5,-305.5"/>
-<polygon fill="#666666" stroke="#666666" points="2379.5,-305.5 2379.5,-305.5 2543.5,-305.5 2543.5,-305.5 2379.5,-305.5"/>
-<polygon fill="none" stroke="#666666" points="2364,-263 2364,-394 2543,-394 2543,-263 2364,-263"/>
+<text text-anchor="start" x="2381.5" y="-295.5" font-family="Helvetica,sans-Serif" font-size="10.00">BinaryOpNode()</text>
+<text text-anchor="start" x="2368.5" y="-280.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="2381.5" y="-280.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="2381.5" y="-269.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_PREDEFINED_TYPE_KEY()</text>
+<text text-anchor="start" x="2368.5" y="-254.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="2381.5" y="-254.5" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
+<polygon fill="#666666" stroke="#666666" points="2364.5,-380.5 2364.5,-380.5 2543.5,-380.5 2543.5,-380.5 2364.5,-380.5"/>
+<polygon fill="#666666" stroke="#666666" points="2364.5,-320.5 2364.5,-320.5 2379.5,-320.5 2379.5,-320.5 2364.5,-320.5"/>
+<polygon fill="#666666" stroke="#666666" points="2379.5,-320.5 2379.5,-320.5 2543.5,-320.5 2543.5,-320.5 2379.5,-320.5"/>
+<polygon fill="none" stroke="#666666" points="2364,-248 2364,-409 2543,-409 2543,-248 2364,-248"/>
</a>
</g>
</g>
@@ -497,7 +549,7 @@
<g id="edge26_Node000001_Node000027" class="edge">
<title>Node1->Node27</title>
<g id="a_edge26_Node000001_Node000027"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M4452.16,-535.82C4089.25,-534.52 2724.12,-524.12 2551.5,-441 2529.56,-430.43 2510.46,-412.48 2495.1,-394.02"/>
+<path fill="none" stroke="#63b8ff" d="M4452.16,-535.82C4089.25,-534.52 2724.12,-524.12 2551.5,-441 2535.71,-433.4 2521.39,-421.97 2508.88,-409.28"/>
<polygon fill="none" stroke="#63b8ff" points="4452.33,-539.32 4462.34,-535.85 4452.35,-532.32 4452.33,-539.32"/>
</a>
</g>
@@ -506,26 +558,30 @@
<g id="Node000029" class="node">
<title>Node29</title>
<g id="a_Node000029"><a xlink:href="classtvm_1_1prim_1_1BinaryOpNode.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="transparent" points="2740,-394 2561,-394 2561,-263 2740,-263 2740,-394"/>
-<text text-anchor="start" x="2588.5" y="-381.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::prim::BinaryOpNode</text>
-<text text-anchor="start" x="2617.5" y="-370.5" font-family="Helvetica,sans-Serif" font-size="10.00">< SubNode ></text>
+<polygon fill="white" stroke="transparent" points="2740,-409 2561,-409 2561,-248 2740,-248 2740,-409"/>
+<text text-anchor="start" x="2588.5" y="-396.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::prim::BinaryOpNode</text>
+<text text-anchor="start" x="2617.5" y="-385.5" font-family="Helvetica,sans-Serif" font-size="10.00">< SubNode ></text>
+<text text-anchor="start" x="2565.5" y="-370.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="2578.5" y="-370.5" font-family="Helvetica,sans-Serif" font-size="10.00">a</text>
<text text-anchor="start" x="2565.5" y="-355.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="2578.5" y="-355.5" font-family="Helvetica,sans-Serif" font-size="10.00">a</text>
+<text text-anchor="start" x="2578.5" y="-355.5" font-family="Helvetica,sans-Serif" font-size="10.00">b</text>
<text text-anchor="start" x="2565.5" y="-340.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="2578.5" y="-340.5" font-family="Helvetica,sans-Serif" font-size="10.00">b</text>
+<text text-anchor="start" x="2578.5" y="-340.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_child_slots</text>
<text text-anchor="start" x="2565.5" y="-325.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="2578.5" y="-325.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_child_slots</text>
+<text text-anchor="start" x="2578.5" y="-325.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_final</text>
<text text-anchor="start" x="2565.5" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="2578.5" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_final</text>
+<text text-anchor="start" x="2578.5" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">BinaryOpNode()</text>
<text text-anchor="start" x="2565.5" y="-295.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="2578.5" y="-295.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="2578.5" y="-284.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_PREDEFINED_TYPE_KEY()</text>
-<text text-anchor="start" x="2565.5" y="-269.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="2578.5" y="-269.5" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
-<polygon fill="#666666" stroke="#666666" points="2561.5,-365.5 2561.5,-365.5 2740.5,-365.5 2740.5,-365.5 2561.5,-365.5"/>
-<polygon fill="#666666" stroke="#666666" points="2561.5,-305.5 2561.5,-305.5 2576.5,-305.5 2576.5,-305.5 2561.5,-305.5"/>
-<polygon fill="#666666" stroke="#666666" points="2576.5,-305.5 2576.5,-305.5 2740.5,-305.5 2740.5,-305.5 2576.5,-305.5"/>
-<polygon fill="none" stroke="#666666" points="2561,-263 2561,-394 2740,-394 2740,-263 2561,-263"/>
+<text text-anchor="start" x="2578.5" y="-295.5" font-family="Helvetica,sans-Serif" font-size="10.00">BinaryOpNode()</text>
+<text text-anchor="start" x="2565.5" y="-280.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="2578.5" y="-280.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="2578.5" y="-269.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_PREDEFINED_TYPE_KEY()</text>
+<text text-anchor="start" x="2565.5" y="-254.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="2578.5" y="-254.5" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
+<polygon fill="#666666" stroke="#666666" points="2561.5,-380.5 2561.5,-380.5 2740.5,-380.5 2740.5,-380.5 2561.5,-380.5"/>
+<polygon fill="#666666" stroke="#666666" points="2561.5,-320.5 2561.5,-320.5 2576.5,-320.5 2576.5,-320.5 2561.5,-320.5"/>
+<polygon fill="#666666" stroke="#666666" points="2576.5,-320.5 2576.5,-320.5 2740.5,-320.5 2740.5,-320.5 2576.5,-320.5"/>
+<polygon fill="none" stroke="#666666" points="2561,-248 2561,-409 2740,-409 2740,-248 2561,-248"/>
</a>
</g>
</g>
@@ -533,7 +589,7 @@
<g id="edge28_Node000001_Node000029" class="edge">
<title>Node1->Node29</title>
<g id="a_edge28_Node000001_Node000029"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M4452.28,-535.32C4112.86,-532.15 2902.54,-515.67 2748.5,-441 2726.7,-430.43 2707.7,-412.59 2692.38,-394.25"/>
+<path fill="none" stroke="#63b8ff" d="M4452.28,-535.32C4112.86,-532.15 2902.54,-515.67 2748.5,-441 2732.73,-433.36 2718.42,-421.91 2705.92,-409.21"/>
<polygon fill="none" stroke="#63b8ff" points="4452.27,-538.82 4462.3,-535.41 4452.33,-531.82 4452.27,-538.82"/>
</a>
</g>
@@ -542,26 +598,30 @@
<g id="Node000031" class="node">
<title>Node31</title>
<g id="a_Node000031"><a xlink:href="classtvm_1_1prim_1_1CmpOpNode.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="transparent" points="2937,-394 2758,-394 2758,-263 2937,-263 2937,-394"/>
-<text text-anchor="start" x="2790" y="-381.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::prim::CmpOpNode</text>
-<text text-anchor="start" x="2817" y="-370.5" font-family="Helvetica,sans-Serif" font-size="10.00">< EQNode ></text>
+<polygon fill="white" stroke="transparent" points="2937,-409 2758,-409 2758,-248 2937,-248 2937,-409"/>
+<text text-anchor="start" x="2790" y="-396.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::prim::CmpOpNode</text>
+<text text-anchor="start" x="2817" y="-385.5" font-family="Helvetica,sans-Serif" font-size="10.00">< EQNode ></text>
+<text text-anchor="start" x="2762.5" y="-370.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="2775.5" y="-370.5" font-family="Helvetica,sans-Serif" font-size="10.00">a</text>
<text text-anchor="start" x="2762.5" y="-355.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="2775.5" y="-355.5" font-family="Helvetica,sans-Serif" font-size="10.00">a</text>
+<text text-anchor="start" x="2775.5" y="-355.5" font-family="Helvetica,sans-Serif" font-size="10.00">b</text>
<text text-anchor="start" x="2762.5" y="-340.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="2775.5" y="-340.5" font-family="Helvetica,sans-Serif" font-size="10.00">b</text>
+<text text-anchor="start" x="2775.5" y="-340.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_child_slots</text>
<text text-anchor="start" x="2762.5" y="-325.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="2775.5" y="-325.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_child_slots</text>
+<text text-anchor="start" x="2775.5" y="-325.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_final</text>
<text text-anchor="start" x="2762.5" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="2775.5" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_final</text>
+<text text-anchor="start" x="2775.5" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">CmpOpNode()</text>
<text text-anchor="start" x="2762.5" y="-295.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="2775.5" y="-295.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="2775.5" y="-284.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_PREDEFINED_TYPE_KEY()</text>
-<text text-anchor="start" x="2762.5" y="-269.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="2775.5" y="-269.5" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
-<polygon fill="#666666" stroke="#666666" points="2758.5,-365.5 2758.5,-365.5 2937.5,-365.5 2937.5,-365.5 2758.5,-365.5"/>
-<polygon fill="#666666" stroke="#666666" points="2758.5,-305.5 2758.5,-305.5 2773.5,-305.5 2773.5,-305.5 2758.5,-305.5"/>
-<polygon fill="#666666" stroke="#666666" points="2773.5,-305.5 2773.5,-305.5 2937.5,-305.5 2937.5,-305.5 2773.5,-305.5"/>
-<polygon fill="none" stroke="#666666" points="2758,-263 2758,-394 2937,-394 2937,-263 2758,-263"/>
+<text text-anchor="start" x="2775.5" y="-295.5" font-family="Helvetica,sans-Serif" font-size="10.00">CmpOpNode()</text>
+<text text-anchor="start" x="2762.5" y="-280.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="2775.5" y="-280.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="2775.5" y="-269.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_PREDEFINED_TYPE_KEY()</text>
+<text text-anchor="start" x="2762.5" y="-254.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="2775.5" y="-254.5" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
+<polygon fill="#666666" stroke="#666666" points="2758.5,-380.5 2758.5,-380.5 2937.5,-380.5 2937.5,-380.5 2758.5,-380.5"/>
+<polygon fill="#666666" stroke="#666666" points="2758.5,-320.5 2758.5,-320.5 2773.5,-320.5 2773.5,-320.5 2758.5,-320.5"/>
+<polygon fill="#666666" stroke="#666666" points="2773.5,-320.5 2773.5,-320.5 2937.5,-320.5 2937.5,-320.5 2773.5,-320.5"/>
+<polygon fill="none" stroke="#666666" points="2758,-248 2758,-409 2937,-409 2937,-248 2758,-248"/>
</a>
</g>
</g>
@@ -569,7 +629,7 @@
<g id="edge30_Node000001_Node000031" class="edge">
<title>Node1->Node31</title>
<g id="a_edge30_Node000001_Node000031"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M4451.91,-534.69C4136.67,-529.48 3080.96,-507.21 2945.5,-441 2923.74,-430.36 2904.74,-412.5 2889.42,-394.16"/>
+<path fill="none" stroke="#63b8ff" d="M4451.91,-534.69C4136.67,-529.48 3080.96,-507.21 2945.5,-441 2929.76,-433.3 2915.46,-421.83 2902.96,-409.13"/>
<polygon fill="none" stroke="#63b8ff" points="4452.31,-538.19 4462.36,-534.86 4452.42,-531.2 4452.31,-538.19"/>
</a>
</g>
@@ -578,26 +638,30 @@
<g id="Node000033" class="node">
<title>Node33</title>
<g id="a_Node000033"><a xlink:href="classtvm_1_1prim_1_1CmpOpNode.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="transparent" points="3134,-394 2955,-394 2955,-263 3134,-263 3134,-394"/>
-<text text-anchor="start" x="2987" y="-381.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::prim::CmpOpNode</text>
-<text text-anchor="start" x="3014" y="-370.5" font-family="Helvetica,sans-Serif" font-size="10.00">< GENode ></text>
+<polygon fill="white" stroke="transparent" points="3134,-409 2955,-409 2955,-248 3134,-248 3134,-409"/>
+<text text-anchor="start" x="2987" y="-396.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::prim::CmpOpNode</text>
+<text text-anchor="start" x="3014" y="-385.5" font-family="Helvetica,sans-Serif" font-size="10.00">< GENode ></text>
+<text text-anchor="start" x="2959.5" y="-370.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="2972.5" y="-370.5" font-family="Helvetica,sans-Serif" font-size="10.00">a</text>
<text text-anchor="start" x="2959.5" y="-355.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="2972.5" y="-355.5" font-family="Helvetica,sans-Serif" font-size="10.00">a</text>
+<text text-anchor="start" x="2972.5" y="-355.5" font-family="Helvetica,sans-Serif" font-size="10.00">b</text>
<text text-anchor="start" x="2959.5" y="-340.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="2972.5" y="-340.5" font-family="Helvetica,sans-Serif" font-size="10.00">b</text>
+<text text-anchor="start" x="2972.5" y="-340.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_child_slots</text>
<text text-anchor="start" x="2959.5" y="-325.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="2972.5" y="-325.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_child_slots</text>
+<text text-anchor="start" x="2972.5" y="-325.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_final</text>
<text text-anchor="start" x="2959.5" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="2972.5" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_final</text>
+<text text-anchor="start" x="2972.5" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">CmpOpNode()</text>
<text text-anchor="start" x="2959.5" y="-295.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="2972.5" y="-295.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="2972.5" y="-284.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_PREDEFINED_TYPE_KEY()</text>
-<text text-anchor="start" x="2959.5" y="-269.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="2972.5" y="-269.5" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
-<polygon fill="#666666" stroke="#666666" points="2955.5,-365.5 2955.5,-365.5 3134.5,-365.5 3134.5,-365.5 2955.5,-365.5"/>
-<polygon fill="#666666" stroke="#666666" points="2955.5,-305.5 2955.5,-305.5 2970.5,-305.5 2970.5,-305.5 2955.5,-305.5"/>
-<polygon fill="#666666" stroke="#666666" points="2970.5,-305.5 2970.5,-305.5 3134.5,-305.5 3134.5,-305.5 2970.5,-305.5"/>
-<polygon fill="none" stroke="#666666" points="2955,-263 2955,-394 3134,-394 3134,-263 2955,-263"/>
+<text text-anchor="start" x="2972.5" y="-295.5" font-family="Helvetica,sans-Serif" font-size="10.00">CmpOpNode()</text>
+<text text-anchor="start" x="2959.5" y="-280.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="2972.5" y="-280.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="2972.5" y="-269.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_PREDEFINED_TYPE_KEY()</text>
+<text text-anchor="start" x="2959.5" y="-254.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="2972.5" y="-254.5" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
+<polygon fill="#666666" stroke="#666666" points="2955.5,-380.5 2955.5,-380.5 3134.5,-380.5 3134.5,-380.5 2955.5,-380.5"/>
+<polygon fill="#666666" stroke="#666666" points="2955.5,-320.5 2955.5,-320.5 2970.5,-320.5 2970.5,-320.5 2955.5,-320.5"/>
+<polygon fill="#666666" stroke="#666666" points="2970.5,-320.5 2970.5,-320.5 3134.5,-320.5 3134.5,-320.5 2970.5,-320.5"/>
+<polygon fill="none" stroke="#666666" points="2955,-248 2955,-409 3134,-409 3134,-248 2955,-248"/>
</a>
</g>
</g>
@@ -605,7 +669,7 @@
<g id="edge32_Node000001_Node000033" class="edge">
<title>Node1->Node33</title>
<g id="a_edge32_Node000001_Node000033"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M4452.24,-533.9C4163.62,-526.48 3259.57,-498.83 3142.5,-441 3120.78,-430.27 3101.8,-412.39 3086.47,-394.05"/>
+<path fill="none" stroke="#63b8ff" d="M4452.24,-533.9C4163.62,-526.48 3259.57,-498.83 3142.5,-441 3126.79,-433.24 3112.51,-421.73 3100.01,-409.02"/>
<polygon fill="none" stroke="#63b8ff" points="4452.16,-537.39 4462.25,-534.15 4452.34,-530.4 4452.16,-537.39"/>
</a>
</g>
@@ -614,26 +678,30 @@
<g id="Node000035" class="node">
<title>Node35</title>
<g id="a_Node000035"><a xlink:href="classtvm_1_1prim_1_1CmpOpNode.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="transparent" points="3331,-394 3152,-394 3152,-263 3331,-263 3331,-394"/>
-<text text-anchor="start" x="3184" y="-381.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::prim::CmpOpNode</text>
-<text text-anchor="start" x="3211" y="-370.5" font-family="Helvetica,sans-Serif" font-size="10.00">< GTNode ></text>
+<polygon fill="white" stroke="transparent" points="3331,-409 3152,-409 3152,-248 3331,-248 3331,-409"/>
+<text text-anchor="start" x="3184" y="-396.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::prim::CmpOpNode</text>
+<text text-anchor="start" x="3211" y="-385.5" font-family="Helvetica,sans-Serif" font-size="10.00">< GTNode ></text>
+<text text-anchor="start" x="3156.5" y="-370.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="3169.5" y="-370.5" font-family="Helvetica,sans-Serif" font-size="10.00">a</text>
<text text-anchor="start" x="3156.5" y="-355.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="3169.5" y="-355.5" font-family="Helvetica,sans-Serif" font-size="10.00">a</text>
+<text text-anchor="start" x="3169.5" y="-355.5" font-family="Helvetica,sans-Serif" font-size="10.00">b</text>
<text text-anchor="start" x="3156.5" y="-340.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="3169.5" y="-340.5" font-family="Helvetica,sans-Serif" font-size="10.00">b</text>
+<text text-anchor="start" x="3169.5" y="-340.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_child_slots</text>
<text text-anchor="start" x="3156.5" y="-325.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="3169.5" y="-325.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_child_slots</text>
+<text text-anchor="start" x="3169.5" y="-325.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_final</text>
<text text-anchor="start" x="3156.5" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="3169.5" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_final</text>
+<text text-anchor="start" x="3169.5" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">CmpOpNode()</text>
<text text-anchor="start" x="3156.5" y="-295.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="3169.5" y="-295.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="3169.5" y="-284.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_PREDEFINED_TYPE_KEY()</text>
-<text text-anchor="start" x="3156.5" y="-269.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="3169.5" y="-269.5" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
-<polygon fill="#666666" stroke="#666666" points="3152.5,-365.5 3152.5,-365.5 3331.5,-365.5 3331.5,-365.5 3152.5,-365.5"/>
-<polygon fill="#666666" stroke="#666666" points="3152.5,-305.5 3152.5,-305.5 3167.5,-305.5 3167.5,-305.5 3152.5,-305.5"/>
-<polygon fill="#666666" stroke="#666666" points="3167.5,-305.5 3167.5,-305.5 3331.5,-305.5 3331.5,-305.5 3167.5,-305.5"/>
-<polygon fill="none" stroke="#666666" points="3152,-263 3152,-394 3331,-394 3331,-263 3152,-263"/>
+<text text-anchor="start" x="3169.5" y="-295.5" font-family="Helvetica,sans-Serif" font-size="10.00">CmpOpNode()</text>
+<text text-anchor="start" x="3156.5" y="-280.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="3169.5" y="-280.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="3169.5" y="-269.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_PREDEFINED_TYPE_KEY()</text>
+<text text-anchor="start" x="3156.5" y="-254.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="3169.5" y="-254.5" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
+<polygon fill="#666666" stroke="#666666" points="3152.5,-380.5 3152.5,-380.5 3331.5,-380.5 3331.5,-380.5 3152.5,-380.5"/>
+<polygon fill="#666666" stroke="#666666" points="3152.5,-320.5 3152.5,-320.5 3167.5,-320.5 3167.5,-320.5 3152.5,-320.5"/>
+<polygon fill="#666666" stroke="#666666" points="3167.5,-320.5 3167.5,-320.5 3331.5,-320.5 3331.5,-320.5 3167.5,-320.5"/>
+<polygon fill="none" stroke="#666666" points="3152,-248 3152,-409 3331,-409 3331,-248 3152,-248"/>
</a>
</g>
</g>
@@ -641,7 +709,7 @@
<g id="edge34_Node000001_Node000035" class="edge">
<title>Node1->Node35</title>
<g id="a_edge34_Node000001_Node000035"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M4452.02,-532.83C4191.34,-522.96 3438.23,-490.45 3339.5,-441 3317.95,-430.21 3299.07,-412.43 3283.79,-394.2"/>
+<path fill="none" stroke="#63b8ff" d="M4452.02,-532.83C4191.34,-522.96 3438.23,-490.45 3339.5,-441 3323.95,-433.21 3309.78,-421.78 3297.35,-409.16"/>
<polygon fill="none" stroke="#63b8ff" points="4452.08,-536.34 4462.21,-533.21 4452.34,-529.34 4452.08,-536.34"/>
</a>
</g>
@@ -650,26 +718,30 @@
<g id="Node000037" class="node">
<title>Node37</title>
<g id="a_Node000037"><a xlink:href="classtvm_1_1prim_1_1CmpOpNode.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="transparent" points="3528,-394 3349,-394 3349,-263 3528,-263 3528,-394"/>
-<text text-anchor="start" x="3381" y="-381.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::prim::CmpOpNode</text>
-<text text-anchor="start" x="3409" y="-370.5" font-family="Helvetica,sans-Serif" font-size="10.00">< LENode ></text>
+<polygon fill="white" stroke="transparent" points="3528,-409 3349,-409 3349,-248 3528,-248 3528,-409"/>
+<text text-anchor="start" x="3381" y="-396.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::prim::CmpOpNode</text>
+<text text-anchor="start" x="3409" y="-385.5" font-family="Helvetica,sans-Serif" font-size="10.00">< LENode ></text>
+<text text-anchor="start" x="3353.5" y="-370.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="3366.5" y="-370.5" font-family="Helvetica,sans-Serif" font-size="10.00">a</text>
<text text-anchor="start" x="3353.5" y="-355.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="3366.5" y="-355.5" font-family="Helvetica,sans-Serif" font-size="10.00">a</text>
+<text text-anchor="start" x="3366.5" y="-355.5" font-family="Helvetica,sans-Serif" font-size="10.00">b</text>
<text text-anchor="start" x="3353.5" y="-340.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="3366.5" y="-340.5" font-family="Helvetica,sans-Serif" font-size="10.00">b</text>
+<text text-anchor="start" x="3366.5" y="-340.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_child_slots</text>
<text text-anchor="start" x="3353.5" y="-325.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="3366.5" y="-325.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_child_slots</text>
+<text text-anchor="start" x="3366.5" y="-325.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_final</text>
<text text-anchor="start" x="3353.5" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="3366.5" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_final</text>
+<text text-anchor="start" x="3366.5" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">CmpOpNode()</text>
<text text-anchor="start" x="3353.5" y="-295.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="3366.5" y="-295.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="3366.5" y="-284.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_PREDEFINED_TYPE_KEY()</text>
-<text text-anchor="start" x="3353.5" y="-269.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="3366.5" y="-269.5" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
-<polygon fill="#666666" stroke="#666666" points="3349.5,-365.5 3349.5,-365.5 3528.5,-365.5 3528.5,-365.5 3349.5,-365.5"/>
-<polygon fill="#666666" stroke="#666666" points="3349.5,-305.5 3349.5,-305.5 3364.5,-305.5 3364.5,-305.5 3349.5,-305.5"/>
-<polygon fill="#666666" stroke="#666666" points="3364.5,-305.5 3364.5,-305.5 3528.5,-305.5 3528.5,-305.5 3364.5,-305.5"/>
-<polygon fill="none" stroke="#666666" points="3349,-263 3349,-394 3528,-394 3528,-263 3349,-263"/>
+<text text-anchor="start" x="3366.5" y="-295.5" font-family="Helvetica,sans-Serif" font-size="10.00">CmpOpNode()</text>
+<text text-anchor="start" x="3353.5" y="-280.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="3366.5" y="-280.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="3366.5" y="-269.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_PREDEFINED_TYPE_KEY()</text>
+<text text-anchor="start" x="3353.5" y="-254.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="3366.5" y="-254.5" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
+<polygon fill="#666666" stroke="#666666" points="3349.5,-380.5 3349.5,-380.5 3528.5,-380.5 3528.5,-380.5 3349.5,-380.5"/>
+<polygon fill="#666666" stroke="#666666" points="3349.5,-320.5 3349.5,-320.5 3364.5,-320.5 3364.5,-320.5 3349.5,-320.5"/>
+<polygon fill="#666666" stroke="#666666" points="3364.5,-320.5 3364.5,-320.5 3528.5,-320.5 3528.5,-320.5 3364.5,-320.5"/>
+<polygon fill="none" stroke="#666666" points="3349,-248 3349,-409 3528,-409 3528,-248 3349,-248"/>
</a>
</g>
</g>
@@ -677,7 +749,7 @@
<g id="edge36_Node000001_Node000037" class="edge">
<title>Node1->Node37</title>
<g id="a_edge36_Node000001_Node000037"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M4452.07,-535.88C4237.54,-534.29 3695.39,-522.12 3536.5,-441 3515.15,-430.1 3496.38,-412.41 3481.13,-394.29"/>
+<path fill="none" stroke="#63b8ff" d="M4452.07,-535.88C4237.54,-534.29 3695.39,-522.12 3536.5,-441 3521.12,-433.15 3507.08,-421.77 3494.73,-409.25"/>
<polygon fill="none" stroke="#63b8ff" points="4452.32,-539.38 4462.35,-535.95 4452.37,-532.38 4452.32,-539.38"/>
</a>
</g>
@@ -686,26 +758,30 @@
<g id="Node000039" class="node">
<title>Node39</title>
<g id="a_Node000039"><a xlink:href="classtvm_1_1prim_1_1CmpOpNode.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="transparent" points="3725,-394 3546,-394 3546,-263 3725,-263 3725,-394"/>
-<text text-anchor="start" x="3578" y="-381.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::prim::CmpOpNode</text>
-<text text-anchor="start" x="3606.5" y="-370.5" font-family="Helvetica,sans-Serif" font-size="10.00">< LTNode ></text>
+<polygon fill="white" stroke="transparent" points="3725,-409 3546,-409 3546,-248 3725,-248 3725,-409"/>
+<text text-anchor="start" x="3578" y="-396.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::prim::CmpOpNode</text>
+<text text-anchor="start" x="3606.5" y="-385.5" font-family="Helvetica,sans-Serif" font-size="10.00">< LTNode ></text>
+<text text-anchor="start" x="3550.5" y="-370.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="3563.5" y="-370.5" font-family="Helvetica,sans-Serif" font-size="10.00">a</text>
<text text-anchor="start" x="3550.5" y="-355.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="3563.5" y="-355.5" font-family="Helvetica,sans-Serif" font-size="10.00">a</text>
+<text text-anchor="start" x="3563.5" y="-355.5" font-family="Helvetica,sans-Serif" font-size="10.00">b</text>
<text text-anchor="start" x="3550.5" y="-340.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="3563.5" y="-340.5" font-family="Helvetica,sans-Serif" font-size="10.00">b</text>
+<text text-anchor="start" x="3563.5" y="-340.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_child_slots</text>
<text text-anchor="start" x="3550.5" y="-325.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="3563.5" y="-325.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_child_slots</text>
+<text text-anchor="start" x="3563.5" y="-325.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_final</text>
<text text-anchor="start" x="3550.5" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="3563.5" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_final</text>
+<text text-anchor="start" x="3563.5" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">CmpOpNode()</text>
<text text-anchor="start" x="3550.5" y="-295.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="3563.5" y="-295.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="3563.5" y="-284.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_PREDEFINED_TYPE_KEY()</text>
-<text text-anchor="start" x="3550.5" y="-269.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="3563.5" y="-269.5" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
-<polygon fill="#666666" stroke="#666666" points="3546.5,-365.5 3546.5,-365.5 3725.5,-365.5 3725.5,-365.5 3546.5,-365.5"/>
-<polygon fill="#666666" stroke="#666666" points="3546.5,-305.5 3546.5,-305.5 3561.5,-305.5 3561.5,-305.5 3546.5,-305.5"/>
-<polygon fill="#666666" stroke="#666666" points="3561.5,-305.5 3561.5,-305.5 3725.5,-305.5 3725.5,-305.5 3561.5,-305.5"/>
-<polygon fill="none" stroke="#666666" points="3546,-263 3546,-394 3725,-394 3725,-263 3546,-263"/>
+<text text-anchor="start" x="3563.5" y="-295.5" font-family="Helvetica,sans-Serif" font-size="10.00">CmpOpNode()</text>
+<text text-anchor="start" x="3550.5" y="-280.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="3563.5" y="-280.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="3563.5" y="-269.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_PREDEFINED_TYPE_KEY()</text>
+<text text-anchor="start" x="3550.5" y="-254.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="3563.5" y="-254.5" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
+<polygon fill="#666666" stroke="#666666" points="3546.5,-380.5 3546.5,-380.5 3725.5,-380.5 3725.5,-380.5 3546.5,-380.5"/>
+<polygon fill="#666666" stroke="#666666" points="3546.5,-320.5 3546.5,-320.5 3561.5,-320.5 3561.5,-320.5 3546.5,-320.5"/>
+<polygon fill="#666666" stroke="#666666" points="3561.5,-320.5 3561.5,-320.5 3725.5,-320.5 3725.5,-320.5 3561.5,-320.5"/>
+<polygon fill="none" stroke="#666666" points="3546,-248 3546,-409 3725,-409 3725,-248 3546,-248"/>
</a>
</g>
</g>
@@ -713,7 +789,7 @@
<g id="edge38_Node000001_Node000039" class="edge">
<title>Node1->Node39</title>
<g id="a_edge38_Node000001_Node000039"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M4452.36,-533.52C4269.74,-527.12 3856.78,-505.72 3733.5,-441 3712.39,-429.92 3693.74,-412.29 3678.53,-394.29"/>
+<path fill="none" stroke="#63b8ff" d="M4452.36,-533.52C4269.74,-527.12 3856.78,-505.72 3733.5,-441 3718.33,-433.03 3704.42,-421.68 3692.15,-409.24"/>
<polygon fill="none" stroke="#63b8ff" points="4452.36,-537.02 4462.47,-533.87 4452.6,-530.02 4452.36,-537.02"/>
</a>
</g>
@@ -722,26 +798,30 @@
<g id="Node000041" class="node">
<title>Node41</title>
<g id="a_Node000041"><a xlink:href="classtvm_1_1prim_1_1CmpOpNode.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="transparent" points="3922,-394 3743,-394 3743,-263 3922,-263 3922,-394"/>
-<text text-anchor="start" x="3775" y="-381.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::prim::CmpOpNode</text>
-<text text-anchor="start" x="3802" y="-370.5" font-family="Helvetica,sans-Serif" font-size="10.00">< NENode ></text>
+<polygon fill="white" stroke="transparent" points="3922,-409 3743,-409 3743,-248 3922,-248 3922,-409"/>
+<text text-anchor="start" x="3775" y="-396.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::prim::CmpOpNode</text>
+<text text-anchor="start" x="3802" y="-385.5" font-family="Helvetica,sans-Serif" font-size="10.00">< NENode ></text>
+<text text-anchor="start" x="3747.5" y="-370.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="3760.5" y="-370.5" font-family="Helvetica,sans-Serif" font-size="10.00">a</text>
<text text-anchor="start" x="3747.5" y="-355.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="3760.5" y="-355.5" font-family="Helvetica,sans-Serif" font-size="10.00">a</text>
+<text text-anchor="start" x="3760.5" y="-355.5" font-family="Helvetica,sans-Serif" font-size="10.00">b</text>
<text text-anchor="start" x="3747.5" y="-340.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="3760.5" y="-340.5" font-family="Helvetica,sans-Serif" font-size="10.00">b</text>
+<text text-anchor="start" x="3760.5" y="-340.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_child_slots</text>
<text text-anchor="start" x="3747.5" y="-325.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="3760.5" y="-325.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_child_slots</text>
+<text text-anchor="start" x="3760.5" y="-325.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_final</text>
<text text-anchor="start" x="3747.5" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="3760.5" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_final</text>
+<text text-anchor="start" x="3760.5" y="-310.5" font-family="Helvetica,sans-Serif" font-size="10.00">CmpOpNode()</text>
<text text-anchor="start" x="3747.5" y="-295.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="3760.5" y="-295.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="3760.5" y="-284.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_PREDEFINED_TYPE_KEY()</text>
-<text text-anchor="start" x="3747.5" y="-269.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="3760.5" y="-269.5" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
-<polygon fill="#666666" stroke="#666666" points="3743.5,-365.5 3743.5,-365.5 3922.5,-365.5 3922.5,-365.5 3743.5,-365.5"/>
-<polygon fill="#666666" stroke="#666666" points="3743.5,-305.5 3743.5,-305.5 3758.5,-305.5 3758.5,-305.5 3743.5,-305.5"/>
-<polygon fill="#666666" stroke="#666666" points="3758.5,-305.5 3758.5,-305.5 3922.5,-305.5 3922.5,-305.5 3758.5,-305.5"/>
-<polygon fill="none" stroke="#666666" points="3743,-263 3743,-394 3922,-394 3922,-263 3743,-263"/>
+<text text-anchor="start" x="3760.5" y="-295.5" font-family="Helvetica,sans-Serif" font-size="10.00">CmpOpNode()</text>
+<text text-anchor="start" x="3747.5" y="-280.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="3760.5" y="-280.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="3760.5" y="-269.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_PREDEFINED_TYPE_KEY()</text>
+<text text-anchor="start" x="3747.5" y="-254.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="3760.5" y="-254.5" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
+<polygon fill="#666666" stroke="#666666" points="3743.5,-380.5 3743.5,-380.5 3922.5,-380.5 3922.5,-380.5 3743.5,-380.5"/>
+<polygon fill="#666666" stroke="#666666" points="3743.5,-320.5 3743.5,-320.5 3758.5,-320.5 3758.5,-320.5 3743.5,-320.5"/>
+<polygon fill="#666666" stroke="#666666" points="3758.5,-320.5 3758.5,-320.5 3922.5,-320.5 3922.5,-320.5 3758.5,-320.5"/>
+<polygon fill="none" stroke="#666666" points="3743,-248 3743,-409 3922,-409 3922,-248 3743,-248"/>
</a>
</g>
</g>
@@ -749,7 +829,7 @@
<g id="edge40_Node000001_Node000041" class="edge">
<title>Node1->Node41</title>
<g id="a_edge40_Node000001_Node000041"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M4451.94,-529.56C4305.31,-517.69 4019.55,-489.07 3931.5,-441 3910.6,-429.59 3891.93,-411.98 3876.6,-394.1"/>
+<path fill="none" stroke="#63b8ff" d="M4451.94,-529.56C4305.31,-517.69 4019.55,-489.07 3931.5,-441 3916.5,-432.81 3902.66,-421.44 3890.37,-409.06"/>
<polygon fill="none" stroke="#63b8ff" points="4452,-533.08 4462.25,-530.39 4452.56,-526.1 4452,-533.08"/>
</a>
</g>
@@ -797,25 +877,29 @@
<g id="Node000047" class="node">
<title>Node47</title>
<g id="a_Node000047"><a xlink:href="classtvm_1_1CallNode.html" target="_top" xlink:title="Call corresponds to callable invocation.">
-<polygon fill="white" stroke="transparent" points="4270.5,-388.5 4114.5,-388.5 4114.5,-268.5 4270.5,-268.5 4270.5,-388.5"/>
-<text text-anchor="start" x="4157.5" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::CallNode</text>
+<polygon fill="white" stroke="transparent" points="4270.5,-403.5 4114.5,-403.5 4114.5,-253.5 4270.5,-253.5 4270.5,-403.5"/>
+<text text-anchor="start" x="4157.5" y="-391.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::CallNode</text>
+<text text-anchor="start" x="4118.5" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="4131.5" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00">op</text>
<text text-anchor="start" x="4118.5" y="-361.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="4131.5" y="-361.5" font-family="Helvetica,sans-Serif" font-size="10.00">op</text>
+<text text-anchor="start" x="4131.5" y="-361.5" font-family="Helvetica,sans-Serif" font-size="10.00">args</text>
<text text-anchor="start" x="4118.5" y="-346.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="4131.5" y="-346.5" font-family="Helvetica,sans-Serif" font-size="10.00">args</text>
+<text text-anchor="start" x="4131.5" y="-346.5" font-family="Helvetica,sans-Serif" font-size="10.00">attrs</text>
<text text-anchor="start" x="4118.5" y="-331.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="4131.5" y="-331.5" font-family="Helvetica,sans-Serif" font-size="10.00">attrs</text>
+<text text-anchor="start" x="4131.5" y="-331.5" font-family="Helvetica,sans-Serif" font-size="10.00">ty_args</text>
<text text-anchor="start" x="4118.5" y="-316.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="4131.5" y="-316.5" font-family="Helvetica,sans-Serif" font-size="10.00">ty_args</text>
+<text text-anchor="start" x="4131.5" y="-316.5" font-family="Helvetica,sans-Serif" font-size="10.00">CallNode()</text>
<text text-anchor="start" x="4118.5" y="-301.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="4131.5" y="-301.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="4131.5" y="-290.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
-<text text-anchor="start" x="4118.5" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="4131.5" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
-<polygon fill="#666666" stroke="#666666" points="4114.5,-371.5 4114.5,-371.5 4270.5,-371.5 4270.5,-371.5 4114.5,-371.5"/>
-<polygon fill="#666666" stroke="#666666" points="4114.5,-311.5 4114.5,-311.5 4129.5,-311.5 4129.5,-311.5 4114.5,-311.5"/>
-<polygon fill="#666666" stroke="#666666" points="4129.5,-311.5 4129.5,-311.5 4270.5,-311.5 4270.5,-311.5 4129.5,-311.5"/>
-<polygon fill="none" stroke="#666666" points="4114.5,-268.5 4114.5,-388.5 4270.5,-388.5 4270.5,-268.5 4114.5,-268.5"/>
+<text text-anchor="start" x="4131.5" y="-301.5" font-family="Helvetica,sans-Serif" font-size="10.00">CallNode()</text>
+<text text-anchor="start" x="4118.5" y="-286.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="4131.5" y="-286.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="4131.5" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
+<text text-anchor="start" x="4118.5" y="-260.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="4131.5" y="-260.5" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
+<polygon fill="#666666" stroke="#666666" points="4114.5,-386.5 4114.5,-386.5 4270.5,-386.5 4270.5,-386.5 4114.5,-386.5"/>
+<polygon fill="#666666" stroke="#666666" points="4114.5,-326.5 4114.5,-326.5 4129.5,-326.5 4129.5,-326.5 4114.5,-326.5"/>
+<polygon fill="#666666" stroke="#666666" points="4129.5,-326.5 4129.5,-326.5 4270.5,-326.5 4270.5,-326.5 4129.5,-326.5"/>
+<polygon fill="none" stroke="#666666" points="4114.5,-253.5 4114.5,-403.5 4270.5,-403.5 4270.5,-253.5 4114.5,-253.5"/>
</a>
</g>
</g>
@@ -823,7 +907,7 @@
<g id="edge46_Node000001_Node000047" class="edge">
<title>Node1->Node47</title>
<g id="a_edge46_Node000001_Node000047"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M4452.39,-517.08C4398.8,-502.53 4331,-478.44 4279.5,-441 4260.14,-426.92 4242.9,-407.39 4228.99,-388.61"/>
+<path fill="none" stroke="#63b8ff" d="M4452.39,-517.08C4398.8,-502.53 4331,-478.44 4279.5,-441 4265.3,-430.68 4252.25,-417.42 4240.81,-403.68"/>
<polygon fill="none" stroke="#63b8ff" points="4451.66,-520.51 4462.23,-519.69 4453.46,-513.74 4451.66,-520.51"/>
</a>
</g>
@@ -974,21 +1058,25 @@
<g id="Node000059" class="node">
<title>Node59</title>
<g id="a_Node000059"><a xlink:href="classtvm_1_1TensorLoadNode.html" target="_top" xlink:title="Load a value from an indexed expression source.">
-<polygon fill="white" stroke="transparent" points="5140.5,-373.5 4984.5,-373.5 4984.5,-283.5 5140.5,-283.5 5140.5,-373.5"/>
-<text text-anchor="start" x="5009.5" y="-361.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::TensorLoadNode</text>
+<polygon fill="white" stroke="transparent" points="5140.5,-388.5 4984.5,-388.5 4984.5,-268.5 5140.5,-268.5 5140.5,-388.5"/>
+<text text-anchor="start" x="5009.5" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::TensorLoadNode</text>
+<text text-anchor="start" x="4988.5" y="-361.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="5001.5" y="-361.5" font-family="Helvetica,sans-Serif" font-size="10.00">source</text>
<text text-anchor="start" x="4988.5" y="-346.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="5001.5" y="-346.5" font-family="Helvetica,sans-Serif" font-size="10.00">source</text>
+<text text-anchor="start" x="5001.5" y="-346.5" font-family="Helvetica,sans-Serif" font-size="10.00">indices</text>
<text text-anchor="start" x="4988.5" y="-331.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="5001.5" y="-331.5" font-family="Helvetica,sans-Serif" font-size="10.00">indices</text>
+<text text-anchor="start" x="5001.5" y="-331.5" font-family="Helvetica,sans-Serif" font-size="10.00">TensorLoadNode()</text>
<text text-anchor="start" x="4988.5" y="-316.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="5001.5" y="-316.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="5001.5" y="-305.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
-<text text-anchor="start" x="4988.5" y="-290.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="5001.5" y="-290.5" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
-<polygon fill="#666666" stroke="#666666" points="4984.5,-356.5 4984.5,-356.5 5140.5,-356.5 5140.5,-356.5 4984.5,-356.5"/>
-<polygon fill="#666666" stroke="#666666" points="4984.5,-326.5 4984.5,-326.5 4999.5,-326.5 4999.5,-326.5 4984.5,-326.5"/>
-<polygon fill="#666666" stroke="#666666" points="4999.5,-326.5 4999.5,-326.5 5140.5,-326.5 5140.5,-326.5 4999.5,-326.5"/>
-<polygon fill="none" stroke="#666666" points="4984.5,-283.5 4984.5,-373.5 5140.5,-373.5 5140.5,-283.5 4984.5,-283.5"/>
+<text text-anchor="start" x="5001.5" y="-316.5" font-family="Helvetica,sans-Serif" font-size="10.00">TensorLoadNode()</text>
+<text text-anchor="start" x="4988.5" y="-301.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="5001.5" y="-301.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="5001.5" y="-290.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
+<text text-anchor="start" x="4988.5" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="5001.5" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
+<polygon fill="#666666" stroke="#666666" points="4984.5,-371.5 4984.5,-371.5 5140.5,-371.5 5140.5,-371.5 4984.5,-371.5"/>
+<polygon fill="#666666" stroke="#666666" points="4984.5,-341.5 4984.5,-341.5 4999.5,-341.5 4999.5,-341.5 4984.5,-341.5"/>
+<polygon fill="#666666" stroke="#666666" points="4999.5,-341.5 4999.5,-341.5 5140.5,-341.5 5140.5,-341.5 4999.5,-341.5"/>
+<polygon fill="none" stroke="#666666" points="4984.5,-268.5 4984.5,-388.5 5140.5,-388.5 5140.5,-268.5 4984.5,-268.5"/>
</a>
</g>
</g>
@@ -996,7 +1084,7 @@
<g id="edge58_Node000001_Node000059" class="edge">
<title>Node1->Node59</title>
<g id="a_edge58_Node000001_Node000059"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M4628.97,-534.05C4721.85,-528.24 4868.92,-508.06 4975.5,-441 5001.79,-424.46 5023.34,-397.04 5038.42,-373.53"/>
+<path fill="none" stroke="#63b8ff" d="M4628.97,-534.05C4721.85,-528.24 4868.92,-508.06 4975.5,-441 4996.28,-427.92 5014.1,-408.05 5028.11,-388.68"/>
<polygon fill="none" stroke="#63b8ff" points="4628.54,-530.57 4618.76,-534.65 4628.95,-537.56 4628.54,-530.57"/>
</a>
</g>
@@ -1005,23 +1093,27 @@
<g id="Node000060" class="node">
<title>Node60</title>
<g id="a_Node000060"><a xlink:href="classtvm_1_1TensorRegionNode.html" target="_top" xlink:title="A region of an indexed expression source.">
-<polygon fill="white" stroke="transparent" points="5314.5,-381 5158.5,-381 5158.5,-276 5314.5,-276 5314.5,-381"/>
-<text text-anchor="start" x="5178" y="-368.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::TensorRegionNode</text>
+<polygon fill="white" stroke="transparent" points="5314.5,-396 5158.5,-396 5158.5,-261 5314.5,-261 5314.5,-396"/>
+<text text-anchor="start" x="5178" y="-383.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::TensorRegionNode</text>
+<text text-anchor="start" x="5162.5" y="-368.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="5175.5" y="-368.5" font-family="Helvetica,sans-Serif" font-size="10.00">source</text>
<text text-anchor="start" x="5162.5" y="-353.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="5175.5" y="-353.5" font-family="Helvetica,sans-Serif" font-size="10.00">source</text>
+<text text-anchor="start" x="5175.5" y="-353.5" font-family="Helvetica,sans-Serif" font-size="10.00">region</text>
<text text-anchor="start" x="5162.5" y="-338.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="5175.5" y="-338.5" font-family="Helvetica,sans-Serif" font-size="10.00">region</text>
+<text text-anchor="start" x="5175.5" y="-338.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_s_eq_hash_kind</text>
<text text-anchor="start" x="5162.5" y="-323.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="5175.5" y="-323.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_s_eq_hash_kind</text>
+<text text-anchor="start" x="5175.5" y="-323.5" font-family="Helvetica,sans-Serif" font-size="10.00">TensorRegionNode()</text>
<text text-anchor="start" x="5162.5" y="-308.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="5175.5" y="-308.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="5175.5" y="-297.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
-<text text-anchor="start" x="5162.5" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="5175.5" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
-<polygon fill="#666666" stroke="#666666" points="5158.5,-363.5 5158.5,-363.5 5314.5,-363.5 5314.5,-363.5 5158.5,-363.5"/>
-<polygon fill="#666666" stroke="#666666" points="5158.5,-318.5 5158.5,-318.5 5173.5,-318.5 5173.5,-318.5 5158.5,-318.5"/>
-<polygon fill="#666666" stroke="#666666" points="5173.5,-318.5 5173.5,-318.5 5314.5,-318.5 5314.5,-318.5 5173.5,-318.5"/>
-<polygon fill="none" stroke="#666666" points="5158.5,-276 5158.5,-381 5314.5,-381 5314.5,-276 5158.5,-276"/>
+<text text-anchor="start" x="5175.5" y="-308.5" font-family="Helvetica,sans-Serif" font-size="10.00">TensorRegionNode()</text>
+<text text-anchor="start" x="5162.5" y="-293.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="5175.5" y="-293.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="5175.5" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
+<text text-anchor="start" x="5162.5" y="-267.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="5175.5" y="-267.5" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
+<polygon fill="#666666" stroke="#666666" points="5158.5,-378.5 5158.5,-378.5 5314.5,-378.5 5314.5,-378.5 5158.5,-378.5"/>
+<polygon fill="#666666" stroke="#666666" points="5158.5,-333.5 5158.5,-333.5 5173.5,-333.5 5173.5,-333.5 5158.5,-333.5"/>
+<polygon fill="#666666" stroke="#666666" points="5173.5,-333.5 5173.5,-333.5 5314.5,-333.5 5314.5,-333.5 5173.5,-333.5"/>
+<polygon fill="none" stroke="#666666" points="5158.5,-261 5158.5,-396 5314.5,-396 5314.5,-261 5158.5,-261"/>
</a>
</g>
</g>
@@ -1029,7 +1121,7 @@
<g id="edge59_Node000001_Node000060" class="edge">
<title>Node1->Node60</title>
<g id="a_edge59_Node000001_Node000060"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M4629.11,-530.18C4776.15,-519.21 5062.96,-491.88 5149.5,-441 5173.63,-426.81 5193.52,-403.15 5208.16,-381.27"/>
+<path fill="none" stroke="#63b8ff" d="M4629.11,-530.18C4776.15,-519.21 5062.96,-491.88 5149.5,-441 5168.23,-429.99 5184.41,-413.26 5197.56,-396.09"/>
<polygon fill="none" stroke="#63b8ff" points="4628.49,-526.71 4618.77,-530.94 4629,-533.69 4628.49,-526.71"/>
</a>
</g>
@@ -1038,21 +1130,25 @@
<g id="Node000061" class="node">
<title>Node61</title>
<g id="a_Node000061"><a xlink:href="classtvm_1_1TupleGetItemNode.html" target="_top" xlink:title="Get the index-th field out of a tuple.">
-<polygon fill="white" stroke="transparent" points="5488.5,-373.5 5332.5,-373.5 5332.5,-283.5 5488.5,-283.5 5488.5,-373.5"/>
-<text text-anchor="start" x="5352" y="-361.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::TupleGetItemNode</text>
+<polygon fill="white" stroke="transparent" points="5488.5,-388.5 5332.5,-388.5 5332.5,-268.5 5488.5,-268.5 5488.5,-388.5"/>
+<text text-anchor="start" x="5352" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::TupleGetItemNode</text>
+<text text-anchor="start" x="5336.5" y="-361.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="5349.5" y="-361.5" font-family="Helvetica,sans-Serif" font-size="10.00">tuple</text>
<text text-anchor="start" x="5336.5" y="-346.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="5349.5" y="-346.5" font-family="Helvetica,sans-Serif" font-size="10.00">tuple</text>
+<text text-anchor="start" x="5349.5" y="-346.5" font-family="Helvetica,sans-Serif" font-size="10.00">index</text>
<text text-anchor="start" x="5336.5" y="-331.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="5349.5" y="-331.5" font-family="Helvetica,sans-Serif" font-size="10.00">index</text>
+<text text-anchor="start" x="5349.5" y="-331.5" font-family="Helvetica,sans-Serif" font-size="10.00">TupleGetItemNode()</text>
<text text-anchor="start" x="5336.5" y="-316.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="5349.5" y="-316.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="5349.5" y="-305.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
-<text text-anchor="start" x="5336.5" y="-290.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="5349.5" y="-290.5" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
-<polygon fill="#666666" stroke="#666666" points="5332.5,-356.5 5332.5,-356.5 5488.5,-356.5 5488.5,-356.5 5332.5,-356.5"/>
-<polygon fill="#666666" stroke="#666666" points="5332.5,-326.5 5332.5,-326.5 5347.5,-326.5 5347.5,-326.5 5332.5,-326.5"/>
-<polygon fill="#666666" stroke="#666666" points="5347.5,-326.5 5347.5,-326.5 5488.5,-326.5 5488.5,-326.5 5347.5,-326.5"/>
-<polygon fill="none" stroke="#666666" points="5332.5,-283.5 5332.5,-373.5 5488.5,-373.5 5488.5,-283.5 5332.5,-283.5"/>
+<text text-anchor="start" x="5349.5" y="-316.5" font-family="Helvetica,sans-Serif" font-size="10.00">TupleGetItemNode()</text>
+<text text-anchor="start" x="5336.5" y="-301.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="5349.5" y="-301.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="5349.5" y="-290.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
+<text text-anchor="start" x="5336.5" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="5349.5" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
+<polygon fill="#666666" stroke="#666666" points="5332.5,-371.5 5332.5,-371.5 5488.5,-371.5 5488.5,-371.5 5332.5,-371.5"/>
+<polygon fill="#666666" stroke="#666666" points="5332.5,-341.5 5332.5,-341.5 5347.5,-341.5 5347.5,-341.5 5332.5,-341.5"/>
+<polygon fill="#666666" stroke="#666666" points="5347.5,-341.5 5347.5,-341.5 5488.5,-341.5 5488.5,-341.5 5347.5,-341.5"/>
+<polygon fill="none" stroke="#666666" points="5332.5,-268.5 5332.5,-388.5 5488.5,-388.5 5488.5,-268.5 5332.5,-268.5"/>
</a>
</g>
</g>
@@ -1060,7 +1156,7 @@
<g id="edge60_Node000001_Node000061" class="edge">
<title>Node1->Node61</title>
<g id="a_edge60_Node000001_Node000061"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M4628.92,-533.71C4807.99,-527.73 5206.42,-507.18 5323.5,-441 5350.86,-425.54 5372.61,-397.66 5387.52,-373.65"/>
+<path fill="none" stroke="#63b8ff" d="M4628.92,-533.71C4807.99,-527.73 5206.42,-507.18 5323.5,-441 5345.3,-428.68 5363.54,-408.47 5377.6,-388.62"/>
<polygon fill="none" stroke="#63b8ff" points="4628.63,-530.22 4618.75,-534.04 4628.86,-537.22 4628.63,-530.22"/>
</a>
</g>
@@ -1134,21 +1230,25 @@
<g id="Node000065" class="node">
<title>Node65</title>
<g id="a_Node000065"><a xlink:href="classtvm_1_1prim_1_1AndNode.html" target="_top" xlink:title="a && b">
-<polygon fill="white" stroke="transparent" points="6010.5,-373.5 5854.5,-373.5 5854.5,-283.5 6010.5,-283.5 6010.5,-373.5"/>
-<text text-anchor="start" x="5883" y="-361.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::prim::AndNode</text>
+<polygon fill="white" stroke="transparent" points="6010.5,-388.5 5854.5,-388.5 5854.5,-268.5 6010.5,-268.5 6010.5,-388.5"/>
+<text text-anchor="start" x="5883" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::prim::AndNode</text>
+<text text-anchor="start" x="5858.5" y="-361.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="5871.5" y="-361.5" font-family="Helvetica,sans-Serif" font-size="10.00">a</text>
<text text-anchor="start" x="5858.5" y="-346.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="5871.5" y="-346.5" font-family="Helvetica,sans-Serif" font-size="10.00">a</text>
+<text text-anchor="start" x="5871.5" y="-346.5" font-family="Helvetica,sans-Serif" font-size="10.00">b</text>
<text text-anchor="start" x="5858.5" y="-331.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="5871.5" y="-331.5" font-family="Helvetica,sans-Serif" font-size="10.00">b</text>
+<text text-anchor="start" x="5871.5" y="-331.5" font-family="Helvetica,sans-Serif" font-size="10.00">AndNode()</text>
<text text-anchor="start" x="5858.5" y="-316.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="5871.5" y="-316.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="5871.5" y="-305.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
-<text text-anchor="start" x="5858.5" y="-290.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="5871.5" y="-290.5" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
-<polygon fill="#666666" stroke="#666666" points="5854.5,-356.5 5854.5,-356.5 6010.5,-356.5 6010.5,-356.5 5854.5,-356.5"/>
-<polygon fill="#666666" stroke="#666666" points="5854.5,-326.5 5854.5,-326.5 5869.5,-326.5 5869.5,-326.5 5854.5,-326.5"/>
-<polygon fill="#666666" stroke="#666666" points="5869.5,-326.5 5869.5,-326.5 6010.5,-326.5 6010.5,-326.5 5869.5,-326.5"/>
-<polygon fill="none" stroke="#666666" points="5854.5,-283.5 5854.5,-373.5 6010.5,-373.5 6010.5,-283.5 5854.5,-283.5"/>
+<text text-anchor="start" x="5871.5" y="-316.5" font-family="Helvetica,sans-Serif" font-size="10.00">AndNode()</text>
+<text text-anchor="start" x="5858.5" y="-301.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="5871.5" y="-301.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="5871.5" y="-290.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
+<text text-anchor="start" x="5858.5" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="5871.5" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
+<polygon fill="#666666" stroke="#666666" points="5854.5,-371.5 5854.5,-371.5 6010.5,-371.5 6010.5,-371.5 5854.5,-371.5"/>
+<polygon fill="#666666" stroke="#666666" points="5854.5,-341.5 5854.5,-341.5 5869.5,-341.5 5869.5,-341.5 5854.5,-341.5"/>
+<polygon fill="#666666" stroke="#666666" points="5869.5,-341.5 5869.5,-341.5 6010.5,-341.5 6010.5,-341.5 5869.5,-341.5"/>
+<polygon fill="none" stroke="#666666" points="5854.5,-268.5 5854.5,-388.5 6010.5,-388.5 6010.5,-268.5 5854.5,-268.5"/>
</a>
</g>
</g>
@@ -1156,7 +1256,7 @@
<g id="edge64_Node000001_Node000065" class="edge">
<title>Node1->Node65</title>
<g id="a_edge64_Node000001_Node000065"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M4629.03,-533.7C4905.18,-525.94 5738.73,-498.01 5845.5,-441 5873.44,-426.08 5895.31,-397.89 5910.14,-373.58"/>
+<path fill="none" stroke="#63b8ff" d="M4629.03,-533.7C4905.18,-525.94 5738.73,-498.01 5845.5,-441 5867.81,-429.09 5886.25,-408.71 5900.32,-388.61"/>
<polygon fill="none" stroke="#63b8ff" points="4628.56,-530.21 4618.66,-533.99 4628.75,-537.21 4628.56,-530.21"/>
</a>
</g>
@@ -1165,25 +1265,29 @@
<g id="Node000066" class="node">
<title>Node66</title>
<g id="a_Node000066"><a xlink:href="classtvm_1_1prim_1_1BinaryOpNode.html" target="_top" xlink:title="Base template to implement binary ops.">
-<polygon fill="white" stroke="transparent" points="6208,-388.5 6029,-388.5 6029,-268.5 6208,-268.5 6208,-388.5"/>
-<text text-anchor="start" x="6042" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::prim::BinaryOpNode< T ></text>
+<polygon fill="white" stroke="transparent" points="6208,-403.5 6029,-403.5 6029,-253.5 6208,-253.5 6208,-403.5"/>
+<text text-anchor="start" x="6042" y="-391.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::prim::BinaryOpNode< T ></text>
+<text text-anchor="start" x="6033.5" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="6046.5" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00">a</text>
<text text-anchor="start" x="6033.5" y="-361.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="6046.5" y="-361.5" font-family="Helvetica,sans-Serif" font-size="10.00">a</text>
+<text text-anchor="start" x="6046.5" y="-361.5" font-family="Helvetica,sans-Serif" font-size="10.00">b</text>
<text text-anchor="start" x="6033.5" y="-346.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="6046.5" y="-346.5" font-family="Helvetica,sans-Serif" font-size="10.00">b</text>
+<text text-anchor="start" x="6046.5" y="-346.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_child_slots</text>
<text text-anchor="start" x="6033.5" y="-331.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="6046.5" y="-331.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_child_slots</text>
+<text text-anchor="start" x="6046.5" y="-331.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_final</text>
<text text-anchor="start" x="6033.5" y="-316.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="6046.5" y="-316.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_final</text>
+<text text-anchor="start" x="6046.5" y="-316.5" font-family="Helvetica,sans-Serif" font-size="10.00">BinaryOpNode()</text>
<text text-anchor="start" x="6033.5" y="-301.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="6046.5" y="-301.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="6046.5" y="-290.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_PREDEFINED_TYPE_KEY()</text>
-<text text-anchor="start" x="6033.5" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="6046.5" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
-<polygon fill="#666666" stroke="#666666" points="6029.5,-371.5 6029.5,-371.5 6208.5,-371.5 6208.5,-371.5 6029.5,-371.5"/>
-<polygon fill="#666666" stroke="#666666" points="6029.5,-311.5 6029.5,-311.5 6044.5,-311.5 6044.5,-311.5 6029.5,-311.5"/>
-<polygon fill="#666666" stroke="#666666" points="6044.5,-311.5 6044.5,-311.5 6208.5,-311.5 6208.5,-311.5 6044.5,-311.5"/>
-<polygon fill="none" stroke="#666666" points="6029,-268.5 6029,-388.5 6208,-388.5 6208,-268.5 6029,-268.5"/>
+<text text-anchor="start" x="6046.5" y="-301.5" font-family="Helvetica,sans-Serif" font-size="10.00">BinaryOpNode()</text>
+<text text-anchor="start" x="6033.5" y="-286.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="6046.5" y="-286.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="6046.5" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_PREDEFINED_TYPE_KEY()</text>
+<text text-anchor="start" x="6033.5" y="-260.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="6046.5" y="-260.5" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
+<polygon fill="#666666" stroke="#666666" points="6029.5,-386.5 6029.5,-386.5 6208.5,-386.5 6208.5,-386.5 6029.5,-386.5"/>
+<polygon fill="#666666" stroke="#666666" points="6029.5,-326.5 6029.5,-326.5 6044.5,-326.5 6044.5,-326.5 6029.5,-326.5"/>
+<polygon fill="#666666" stroke="#666666" points="6044.5,-326.5 6044.5,-326.5 6208.5,-326.5 6208.5,-326.5 6044.5,-326.5"/>
+<polygon fill="none" stroke="#666666" points="6029,-253.5 6029,-403.5 6208,-403.5 6208,-253.5 6029,-253.5"/>
</a>
</g>
</g>
@@ -1191,7 +1295,7 @@
<g id="edge65_Node000001_Node000066" class="edge">
<title>Node1->Node66</title>
<g id="a_edge65_Node000001_Node000066"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M4629.16,-534.22C4929.21,-527.65 5894.77,-501.94 6019.5,-441 6043.57,-429.24 6064.36,-408.76 6080.59,-388.54"/>
+<path fill="none" stroke="#63b8ff" d="M4629.16,-534.22C4929.21,-527.65 5894.77,-501.94 6019.5,-441 6037.53,-432.19 6053.71,-418.5 6067.52,-403.69"/>
<polygon fill="none" stroke="#63b8ff" points="4628.7,-530.73 4618.77,-534.44 4628.85,-537.72 4628.7,-530.73"/>
</a>
</g>
@@ -1200,19 +1304,23 @@
<g id="Node000067" class="node">
<title>Node67</title>
<g id="a_Node000067"><a xlink:href="classtvm_1_1prim_1_1BitwiseNotNode.html" target="_top" xlink:title="~a">
-<polygon fill="white" stroke="transparent" points="6382.5,-366 6226.5,-366 6226.5,-291 6382.5,-291 6382.5,-366"/>
-<text text-anchor="start" x="6238" y="-353.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::prim::BitwiseNotNode</text>
+<polygon fill="white" stroke="transparent" points="6382.5,-381 6226.5,-381 6226.5,-276 6382.5,-276 6382.5,-381"/>
+<text text-anchor="start" x="6238" y="-368.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::prim::BitwiseNotNode</text>
+<text text-anchor="start" x="6230.5" y="-353.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="6243.5" y="-353.5" font-family="Helvetica,sans-Serif" font-size="10.00">a</text>
<text text-anchor="start" x="6230.5" y="-338.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="6243.5" y="-338.5" font-family="Helvetica,sans-Serif" font-size="10.00">a</text>
+<text text-anchor="start" x="6243.5" y="-338.5" font-family="Helvetica,sans-Serif" font-size="10.00">BitwiseNotNode()</text>
<text text-anchor="start" x="6230.5" y="-323.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="6243.5" y="-323.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="6243.5" y="-312.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
-<text text-anchor="start" x="6230.5" y="-297.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="6243.5" y="-297.5" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
-<polygon fill="#666666" stroke="#666666" points="6226.5,-348.5 6226.5,-348.5 6382.5,-348.5 6382.5,-348.5 6226.5,-348.5"/>
-<polygon fill="#666666" stroke="#666666" points="6226.5,-333.5 6226.5,-333.5 6241.5,-333.5 6241.5,-333.5 6226.5,-333.5"/>
-<polygon fill="#666666" stroke="#666666" points="6241.5,-333.5 6241.5,-333.5 6382.5,-333.5 6382.5,-333.5 6241.5,-333.5"/>
-<polygon fill="none" stroke="#666666" points="6226.5,-291 6226.5,-366 6382.5,-366 6382.5,-291 6226.5,-291"/>
+<text text-anchor="start" x="6243.5" y="-323.5" font-family="Helvetica,sans-Serif" font-size="10.00">BitwiseNotNode()</text>
+<text text-anchor="start" x="6230.5" y="-308.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="6243.5" y="-308.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="6243.5" y="-297.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
+<text text-anchor="start" x="6230.5" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="6243.5" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
+<polygon fill="#666666" stroke="#666666" points="6226.5,-363.5 6226.5,-363.5 6382.5,-363.5 6382.5,-363.5 6226.5,-363.5"/>
+<polygon fill="#666666" stroke="#666666" points="6226.5,-348.5 6226.5,-348.5 6241.5,-348.5 6241.5,-348.5 6226.5,-348.5"/>
+<polygon fill="#666666" stroke="#666666" points="6241.5,-348.5 6241.5,-348.5 6382.5,-348.5 6382.5,-348.5 6241.5,-348.5"/>
+<polygon fill="none" stroke="#666666" points="6226.5,-276 6226.5,-381 6382.5,-381 6382.5,-276 6226.5,-276"/>
</a>
</g>
</g>
@@ -1220,7 +1328,7 @@
<g id="edge66_Node000001_Node000067" class="edge">
<title>Node1->Node67</title>
<g id="a_edge66_Node000001_Node000067"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M4629.03,-535.21C4954.79,-531.72 6075.3,-514.44 6216.5,-441 6247.68,-424.78 6271.41,-392.07 6286.33,-366.25"/>
+<path fill="none" stroke="#63b8ff" d="M4629.03,-535.21C4954.79,-531.72 6075.3,-514.44 6216.5,-441 6241.88,-427.8 6262.33,-403.67 6277.1,-381.22"/>
<polygon fill="none" stroke="#63b8ff" points="4628.66,-531.71 4618.7,-535.32 4628.74,-538.71 4628.66,-531.71"/>
</a>
</g>
@@ -1229,21 +1337,25 @@
<g id="Node000068" class="node">
<title>Node68</title>
<g id="a_Node000068"><a xlink:href="classtvm_1_1prim_1_1BroadcastNode.html" target="_top" xlink:title="Create a vector where all the elements are value.">
-<polygon fill="white" stroke="transparent" points="6556.5,-373.5 6400.5,-373.5 6400.5,-283.5 6556.5,-283.5 6556.5,-373.5"/>
-<text text-anchor="start" x="6414" y="-361.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::prim::BroadcastNode</text>
+<polygon fill="white" stroke="transparent" points="6556.5,-388.5 6400.5,-388.5 6400.5,-268.5 6556.5,-268.5 6556.5,-388.5"/>
+<text text-anchor="start" x="6414" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::prim::BroadcastNode</text>
+<text text-anchor="start" x="6404.5" y="-361.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="6417.5" y="-361.5" font-family="Helvetica,sans-Serif" font-size="10.00">value</text>
<text text-anchor="start" x="6404.5" y="-346.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="6417.5" y="-346.5" font-family="Helvetica,sans-Serif" font-size="10.00">value</text>
+<text text-anchor="start" x="6417.5" y="-346.5" font-family="Helvetica,sans-Serif" font-size="10.00">lanes</text>
<text text-anchor="start" x="6404.5" y="-331.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="6417.5" y="-331.5" font-family="Helvetica,sans-Serif" font-size="10.00">lanes</text>
+<text text-anchor="start" x="6417.5" y="-331.5" font-family="Helvetica,sans-Serif" font-size="10.00">BroadcastNode()</text>
<text text-anchor="start" x="6404.5" y="-316.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="6417.5" y="-316.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="6417.5" y="-305.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
-<text text-anchor="start" x="6404.5" y="-290.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="6417.5" y="-290.5" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
-<polygon fill="#666666" stroke="#666666" points="6400.5,-356.5 6400.5,-356.5 6556.5,-356.5 6556.5,-356.5 6400.5,-356.5"/>
-<polygon fill="#666666" stroke="#666666" points="6400.5,-326.5 6400.5,-326.5 6415.5,-326.5 6415.5,-326.5 6400.5,-326.5"/>
-<polygon fill="#666666" stroke="#666666" points="6415.5,-326.5 6415.5,-326.5 6556.5,-326.5 6556.5,-326.5 6415.5,-326.5"/>
-<polygon fill="none" stroke="#666666" points="6400.5,-283.5 6400.5,-373.5 6556.5,-373.5 6556.5,-283.5 6400.5,-283.5"/>
+<text text-anchor="start" x="6417.5" y="-316.5" font-family="Helvetica,sans-Serif" font-size="10.00">BroadcastNode()</text>
+<text text-anchor="start" x="6404.5" y="-301.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="6417.5" y="-301.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="6417.5" y="-290.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
+<text text-anchor="start" x="6404.5" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="6417.5" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
+<polygon fill="#666666" stroke="#666666" points="6400.5,-371.5 6400.5,-371.5 6556.5,-371.5 6556.5,-371.5 6400.5,-371.5"/>
+<polygon fill="#666666" stroke="#666666" points="6400.5,-341.5 6400.5,-341.5 6415.5,-341.5 6415.5,-341.5 6400.5,-341.5"/>
+<polygon fill="#666666" stroke="#666666" points="6415.5,-341.5 6415.5,-341.5 6556.5,-341.5 6556.5,-341.5 6415.5,-341.5"/>
+<polygon fill="none" stroke="#666666" points="6400.5,-268.5 6400.5,-388.5 6556.5,-388.5 6556.5,-268.5 6400.5,-268.5"/>
</a>
</g>
</g>
@@ -1251,7 +1363,7 @@
<g id="edge67_Node000001_Node000068" class="edge">
<title>Node1->Node68</title>
<g id="a_edge67_Node000001_Node000068"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M4628.82,-535.75C4975.81,-534.17 6234.22,-522.83 6391.5,-441 6419.71,-426.32 6441.64,-397.96 6456.43,-373.52"/>
+<path fill="none" stroke="#63b8ff" d="M4628.82,-535.75C4975.81,-534.17 6234.22,-522.83 6391.5,-441 6414.04,-429.27 6432.58,-408.8 6446.66,-388.57"/>
<polygon fill="none" stroke="#63b8ff" points="4628.56,-532.25 4618.58,-535.79 4628.59,-539.25 4628.56,-532.25"/>
</a>
</g>
@@ -1260,19 +1372,23 @@
<g id="Node000069" class="node">
<title>Node69</title>
<g id="a_Node000069"><a xlink:href="classtvm_1_1prim_1_1CastNode.html" target="_top" xlink:title="Cast value from one data type to another.">
-<polygon fill="white" stroke="transparent" points="6730.5,-366 6574.5,-366 6574.5,-291 6730.5,-291 6730.5,-366"/>
-<text text-anchor="start" x="6601.5" y="-353.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::prim::CastNode</text>
+<polygon fill="white" stroke="transparent" points="6730.5,-381 6574.5,-381 6574.5,-276 6730.5,-276 6730.5,-381"/>
+<text text-anchor="start" x="6601.5" y="-368.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::prim::CastNode</text>
+<text text-anchor="start" x="6578.5" y="-353.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="6591.5" y="-353.5" font-family="Helvetica,sans-Serif" font-size="10.00">value</text>
<text text-anchor="start" x="6578.5" y="-338.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="6591.5" y="-338.5" font-family="Helvetica,sans-Serif" font-size="10.00">value</text>
+<text text-anchor="start" x="6591.5" y="-338.5" font-family="Helvetica,sans-Serif" font-size="10.00">CastNode()</text>
<text text-anchor="start" x="6578.5" y="-323.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="6591.5" y="-323.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="6591.5" y="-312.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
-<text text-anchor="start" x="6578.5" y="-297.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="6591.5" y="-297.5" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
-<polygon fill="#666666" stroke="#666666" points="6574.5,-348.5 6574.5,-348.5 6730.5,-348.5 6730.5,-348.5 6574.5,-348.5"/>
-<polygon fill="#666666" stroke="#666666" points="6574.5,-333.5 6574.5,-333.5 6589.5,-333.5 6589.5,-333.5 6574.5,-333.5"/>
-<polygon fill="#666666" stroke="#666666" points="6589.5,-333.5 6589.5,-333.5 6730.5,-333.5 6730.5,-333.5 6589.5,-333.5"/>
-<polygon fill="none" stroke="#666666" points="6574.5,-291 6574.5,-366 6730.5,-366 6730.5,-291 6574.5,-291"/>
+<text text-anchor="start" x="6591.5" y="-323.5" font-family="Helvetica,sans-Serif" font-size="10.00">CastNode()</text>
+<text text-anchor="start" x="6578.5" y="-308.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="6591.5" y="-308.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="6591.5" y="-297.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
+<text text-anchor="start" x="6578.5" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="6591.5" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
+<polygon fill="#666666" stroke="#666666" points="6574.5,-363.5 6574.5,-363.5 6730.5,-363.5 6730.5,-363.5 6574.5,-363.5"/>
+<polygon fill="#666666" stroke="#666666" points="6574.5,-348.5 6574.5,-348.5 6589.5,-348.5 6589.5,-348.5 6574.5,-348.5"/>
+<polygon fill="#666666" stroke="#666666" points="6589.5,-348.5 6589.5,-348.5 6730.5,-348.5 6730.5,-348.5 6589.5,-348.5"/>
+<polygon fill="none" stroke="#666666" points="6574.5,-276 6574.5,-381 6730.5,-381 6730.5,-276 6574.5,-276"/>
</a>
</g>
</g>
@@ -1280,7 +1396,7 @@
<g id="edge68_Node000001_Node000069" class="edge">
<title>Node1->Node69</title>
<g id="a_edge68_Node000001_Node000069"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M4628.76,-536.17C4996.02,-536.29 6391.98,-530.79 6565.5,-441 6596.68,-424.86 6620.18,-391.96 6634.84,-366.06"/>
+<path fill="none" stroke="#63b8ff" d="M4628.76,-536.17C4996.02,-536.29 6391.98,-530.79 6565.5,-441 6590.9,-427.85 6611.2,-403.58 6625.78,-381.03"/>
<polygon fill="none" stroke="#63b8ff" points="4628.72,-532.67 4618.72,-536.16 4628.72,-539.67 4628.72,-532.67"/>
</a>
</g>
@@ -1289,25 +1405,29 @@
<g id="Node000070" class="node">
<title>Node70</title>
<g id="a_Node000070"><a xlink:href="classtvm_1_1prim_1_1CmpOpNode.html" target="_top" xlink:title="Base template to implement comparison ops.">
-<polygon fill="white" stroke="transparent" points="6928,-388.5 6749,-388.5 6749,-268.5 6928,-268.5 6928,-388.5"/>
-<text text-anchor="start" x="6766.5" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::prim::CmpOpNode< T ></text>
+<polygon fill="white" stroke="transparent" points="6928,-403.5 6749,-403.5 6749,-253.5 6928,-253.5 6928,-403.5"/>
+<text text-anchor="start" x="6766.5" y="-391.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::prim::CmpOpNode< T ></text>
+<text text-anchor="start" x="6753.5" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="6766.5" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00">a</text>
<text text-anchor="start" x="6753.5" y="-361.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="6766.5" y="-361.5" font-family="Helvetica,sans-Serif" font-size="10.00">a</text>
+<text text-anchor="start" x="6766.5" y="-361.5" font-family="Helvetica,sans-Serif" font-size="10.00">b</text>
<text text-anchor="start" x="6753.5" y="-346.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="6766.5" y="-346.5" font-family="Helvetica,sans-Serif" font-size="10.00">b</text>
+<text text-anchor="start" x="6766.5" y="-346.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_child_slots</text>
<text text-anchor="start" x="6753.5" y="-331.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="6766.5" y="-331.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_child_slots</text>
+<text text-anchor="start" x="6766.5" y="-331.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_final</text>
<text text-anchor="start" x="6753.5" y="-316.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="6766.5" y="-316.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_final</text>
+<text text-anchor="start" x="6766.5" y="-316.5" font-family="Helvetica,sans-Serif" font-size="10.00">CmpOpNode()</text>
<text text-anchor="start" x="6753.5" y="-301.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="6766.5" y="-301.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="6766.5" y="-290.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_PREDEFINED_TYPE_KEY()</text>
-<text text-anchor="start" x="6753.5" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="6766.5" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
-<polygon fill="#666666" stroke="#666666" points="6749.5,-371.5 6749.5,-371.5 6928.5,-371.5 6928.5,-371.5 6749.5,-371.5"/>
-<polygon fill="#666666" stroke="#666666" points="6749.5,-311.5 6749.5,-311.5 6764.5,-311.5 6764.5,-311.5 6749.5,-311.5"/>
-<polygon fill="#666666" stroke="#666666" points="6764.5,-311.5 6764.5,-311.5 6928.5,-311.5 6928.5,-311.5 6764.5,-311.5"/>
-<polygon fill="none" stroke="#666666" points="6749,-268.5 6749,-388.5 6928,-388.5 6928,-268.5 6749,-268.5"/>
+<text text-anchor="start" x="6766.5" y="-301.5" font-family="Helvetica,sans-Serif" font-size="10.00">CmpOpNode()</text>
+<text text-anchor="start" x="6753.5" y="-286.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="6766.5" y="-286.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="6766.5" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_PREDEFINED_TYPE_KEY()</text>
+<text text-anchor="start" x="6753.5" y="-260.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="6766.5" y="-260.5" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
+<polygon fill="#666666" stroke="#666666" points="6749.5,-386.5 6749.5,-386.5 6928.5,-386.5 6928.5,-386.5 6749.5,-386.5"/>
+<polygon fill="#666666" stroke="#666666" points="6749.5,-326.5 6749.5,-326.5 6764.5,-326.5 6764.5,-326.5 6749.5,-326.5"/>
+<polygon fill="#666666" stroke="#666666" points="6764.5,-326.5 6764.5,-326.5 6928.5,-326.5 6928.5,-326.5 6764.5,-326.5"/>
+<polygon fill="none" stroke="#666666" points="6749,-253.5 6749,-403.5 6928,-403.5 6928,-253.5 6749,-253.5"/>
</a>
</g>
</g>
@@ -1315,7 +1435,7 @@
<g id="edge69_Node000001_Node000070" class="edge">
<title>Node1->Node70</title>
<g id="a_edge69_Node000001_Node000070"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M4628.73,-536.23C5015.04,-536.69 6546.72,-532.69 6739.5,-441 6763.81,-429.44 6784.71,-408.87 6800.95,-388.52"/>
+<path fill="none" stroke="#63b8ff" d="M4628.73,-536.23C5015.04,-536.69 6546.72,-532.69 6739.5,-441 6757.73,-432.33 6774.05,-418.59 6787.92,-403.68"/>
<polygon fill="none" stroke="#63b8ff" points="4628.73,-532.73 4618.73,-536.22 4628.72,-539.73 4628.73,-532.73"/>
</a>
</g>
@@ -1324,23 +1444,27 @@
<g id="Node000071" class="node">
<title>Node71</title>
<g id="a_Node000071"><a xlink:href="classtvm_1_1prim_1_1LetNode.html" target="_top" xlink:title="Let binding. Bind var to value then evaluate body.">
-<polygon fill="white" stroke="transparent" points="7102.5,-381 6946.5,-381 6946.5,-276 7102.5,-276 7102.5,-381"/>
-<text text-anchor="start" x="6977" y="-368.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::prim::LetNode</text>
+<polygon fill="white" stroke="transparent" points="7102.5,-396 6946.5,-396 6946.5,-261 7102.5,-261 7102.5,-396"/>
+<text text-anchor="start" x="6977" y="-383.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::prim::LetNode</text>
+<text text-anchor="start" x="6950.5" y="-368.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="6963.5" y="-368.5" font-family="Helvetica,sans-Serif" font-size="10.00">var</text>
<text text-anchor="start" x="6950.5" y="-353.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="6963.5" y="-353.5" font-family="Helvetica,sans-Serif" font-size="10.00">var</text>
+<text text-anchor="start" x="6963.5" y="-353.5" font-family="Helvetica,sans-Serif" font-size="10.00">value</text>
<text text-anchor="start" x="6950.5" y="-338.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="6963.5" y="-338.5" font-family="Helvetica,sans-Serif" font-size="10.00">value</text>
+<text text-anchor="start" x="6963.5" y="-338.5" font-family="Helvetica,sans-Serif" font-size="10.00">body</text>
<text text-anchor="start" x="6950.5" y="-323.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="6963.5" y="-323.5" font-family="Helvetica,sans-Serif" font-size="10.00">body</text>
+<text text-anchor="start" x="6963.5" y="-323.5" font-family="Helvetica,sans-Serif" font-size="10.00">LetNode()</text>
<text text-anchor="start" x="6950.5" y="-308.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="6963.5" y="-308.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="6963.5" y="-297.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
-<text text-anchor="start" x="6950.5" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="6963.5" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
-<polygon fill="#666666" stroke="#666666" points="6946.5,-363.5 6946.5,-363.5 7102.5,-363.5 7102.5,-363.5 6946.5,-363.5"/>
-<polygon fill="#666666" stroke="#666666" points="6946.5,-318.5 6946.5,-318.5 6961.5,-318.5 6961.5,-318.5 6946.5,-318.5"/>
-<polygon fill="#666666" stroke="#666666" points="6961.5,-318.5 6961.5,-318.5 7102.5,-318.5 7102.5,-318.5 6961.5,-318.5"/>
-<polygon fill="none" stroke="#666666" points="6946.5,-276 6946.5,-381 7102.5,-381 7102.5,-276 6946.5,-276"/>
+<text text-anchor="start" x="6963.5" y="-308.5" font-family="Helvetica,sans-Serif" font-size="10.00">LetNode()</text>
+<text text-anchor="start" x="6950.5" y="-293.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="6963.5" y="-293.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="6963.5" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
+<text text-anchor="start" x="6950.5" y="-267.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="6963.5" y="-267.5" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
+<polygon fill="#666666" stroke="#666666" points="6946.5,-378.5 6946.5,-378.5 7102.5,-378.5 7102.5,-378.5 6946.5,-378.5"/>
+<polygon fill="#666666" stroke="#666666" points="6946.5,-333.5 6946.5,-333.5 6961.5,-333.5 6961.5,-333.5 6946.5,-333.5"/>
+<polygon fill="#666666" stroke="#666666" points="6961.5,-333.5 6961.5,-333.5 7102.5,-333.5 7102.5,-333.5 6961.5,-333.5"/>
+<polygon fill="none" stroke="#666666" points="6946.5,-261 6946.5,-396 7102.5,-396 7102.5,-261 6946.5,-261"/>
</a>
</g>
</g>
@@ -1348,7 +1472,7 @@
<g id="edge70_Node000001_Node000071" class="edge">
<title>Node1->Node71</title>
<g id="a_edge70_Node000001_Node000071"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M4629,-534.56C5049.76,-527.45 6831.86,-494.3 6936.5,-441 6962.1,-427.96 6982.62,-403.7 6997.39,-381.13"/>
+<path fill="none" stroke="#63b8ff" d="M4629,-534.56C5049.76,-527.45 6831.86,-494.3 6936.5,-441 6956.5,-430.81 6973.4,-413.78 6986.87,-396.06"/>
<polygon fill="none" stroke="#63b8ff" points="4628.66,-531.07 4618.72,-534.73 4628.78,-538.06 4628.66,-531.07"/>
</a>
</g>
@@ -1357,19 +1481,23 @@
<g id="Node000072" class="node">
<title>Node72</title>
<g id="a_Node000072"><a xlink:href="classtvm_1_1prim_1_1NotNode.html" target="_top" xlink:title="!a">
-<polygon fill="white" stroke="transparent" points="7276.5,-366 7120.5,-366 7120.5,-291 7276.5,-291 7276.5,-366"/>
-<text text-anchor="start" x="7150" y="-353.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::prim::NotNode</text>
+<polygon fill="white" stroke="transparent" points="7276.5,-381 7120.5,-381 7120.5,-276 7276.5,-276 7276.5,-381"/>
+<text text-anchor="start" x="7150" y="-368.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::prim::NotNode</text>
+<text text-anchor="start" x="7124.5" y="-353.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="7137.5" y="-353.5" font-family="Helvetica,sans-Serif" font-size="10.00">a</text>
<text text-anchor="start" x="7124.5" y="-338.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="7137.5" y="-338.5" font-family="Helvetica,sans-Serif" font-size="10.00">a</text>
+<text text-anchor="start" x="7137.5" y="-338.5" font-family="Helvetica,sans-Serif" font-size="10.00">NotNode()</text>
<text text-anchor="start" x="7124.5" y="-323.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="7137.5" y="-323.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="7137.5" y="-312.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
-<text text-anchor="start" x="7124.5" y="-297.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="7137.5" y="-297.5" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
-<polygon fill="#666666" stroke="#666666" points="7120.5,-348.5 7120.5,-348.5 7276.5,-348.5 7276.5,-348.5 7120.5,-348.5"/>
-<polygon fill="#666666" stroke="#666666" points="7120.5,-333.5 7120.5,-333.5 7135.5,-333.5 7135.5,-333.5 7120.5,-333.5"/>
-<polygon fill="#666666" stroke="#666666" points="7135.5,-333.5 7135.5,-333.5 7276.5,-333.5 7276.5,-333.5 7135.5,-333.5"/>
-<polygon fill="none" stroke="#666666" points="7120.5,-291 7120.5,-366 7276.5,-366 7276.5,-291 7120.5,-291"/>
+<text text-anchor="start" x="7137.5" y="-323.5" font-family="Helvetica,sans-Serif" font-size="10.00">NotNode()</text>
+<text text-anchor="start" x="7124.5" y="-308.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="7137.5" y="-308.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="7137.5" y="-297.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
+<text text-anchor="start" x="7124.5" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="7137.5" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
+<polygon fill="#666666" stroke="#666666" points="7120.5,-363.5 7120.5,-363.5 7276.5,-363.5 7276.5,-363.5 7120.5,-363.5"/>
+<polygon fill="#666666" stroke="#666666" points="7120.5,-348.5 7120.5,-348.5 7135.5,-348.5 7135.5,-348.5 7120.5,-348.5"/>
+<polygon fill="#666666" stroke="#666666" points="7135.5,-348.5 7135.5,-348.5 7276.5,-348.5 7276.5,-348.5 7135.5,-348.5"/>
+<polygon fill="none" stroke="#666666" points="7120.5,-276 7120.5,-381 7276.5,-381 7276.5,-276 7120.5,-276"/>
</a>
</g>
</g>
@@ -1377,7 +1505,7 @@
<g id="edge71_Node000001_Node000072" class="edge">
<title>Node1->Node72</title>
<g id="a_edge71_Node000001_Node000072"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M4628.59,-534.83C5067.18,-528.72 6998.73,-498.65 7111.5,-441 7142.76,-425.02 7166.25,-392.1 7180.89,-366.15"/>
+<path fill="none" stroke="#63b8ff" d="M4628.59,-534.83C5067.18,-528.72 6998.73,-498.65 7111.5,-441 7136.97,-427.98 7157.27,-403.72 7171.84,-381.14"/>
<polygon fill="none" stroke="#63b8ff" points="4628.46,-531.33 4618.51,-534.97 4628.56,-538.33 4628.46,-531.33"/>
</a>
</g>
@@ -1386,21 +1514,25 @@
<g id="Node000073" class="node">
<title>Node73</title>
<g id="a_Node000073"><a xlink:href="classtvm_1_1prim_1_1OrNode.html" target="_top" xlink:title="a || b">
-<polygon fill="white" stroke="transparent" points="7450.5,-373.5 7294.5,-373.5 7294.5,-283.5 7450.5,-283.5 7450.5,-373.5"/>
-<text text-anchor="start" x="7327" y="-361.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::prim::OrNode</text>
+<polygon fill="white" stroke="transparent" points="7450.5,-388.5 7294.5,-388.5 7294.5,-268.5 7450.5,-268.5 7450.5,-388.5"/>
+<text text-anchor="start" x="7327" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::prim::OrNode</text>
+<text text-anchor="start" x="7298.5" y="-361.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="7311.5" y="-361.5" font-family="Helvetica,sans-Serif" font-size="10.00">a</text>
<text text-anchor="start" x="7298.5" y="-346.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="7311.5" y="-346.5" font-family="Helvetica,sans-Serif" font-size="10.00">a</text>
+<text text-anchor="start" x="7311.5" y="-346.5" font-family="Helvetica,sans-Serif" font-size="10.00">b</text>
<text text-anchor="start" x="7298.5" y="-331.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="7311.5" y="-331.5" font-family="Helvetica,sans-Serif" font-size="10.00">b</text>
+<text text-anchor="start" x="7311.5" y="-331.5" font-family="Helvetica,sans-Serif" font-size="10.00">OrNode()</text>
<text text-anchor="start" x="7298.5" y="-316.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="7311.5" y="-316.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="7311.5" y="-305.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
-<text text-anchor="start" x="7298.5" y="-290.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="7311.5" y="-290.5" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
-<polygon fill="#666666" stroke="#666666" points="7294.5,-356.5 7294.5,-356.5 7450.5,-356.5 7450.5,-356.5 7294.5,-356.5"/>
-<polygon fill="#666666" stroke="#666666" points="7294.5,-326.5 7294.5,-326.5 7309.5,-326.5 7309.5,-326.5 7294.5,-326.5"/>
-<polygon fill="#666666" stroke="#666666" points="7309.5,-326.5 7309.5,-326.5 7450.5,-326.5 7450.5,-326.5 7309.5,-326.5"/>
-<polygon fill="none" stroke="#666666" points="7294.5,-283.5 7294.5,-373.5 7450.5,-373.5 7450.5,-283.5 7294.5,-283.5"/>
+<text text-anchor="start" x="7311.5" y="-316.5" font-family="Helvetica,sans-Serif" font-size="10.00">OrNode()</text>
+<text text-anchor="start" x="7298.5" y="-301.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="7311.5" y="-301.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="7311.5" y="-290.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
+<text text-anchor="start" x="7298.5" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="7311.5" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
+<polygon fill="#666666" stroke="#666666" points="7294.5,-371.5 7294.5,-371.5 7450.5,-371.5 7450.5,-371.5 7294.5,-371.5"/>
+<polygon fill="#666666" stroke="#666666" points="7294.5,-341.5 7294.5,-341.5 7309.5,-341.5 7309.5,-341.5 7294.5,-341.5"/>
+<polygon fill="#666666" stroke="#666666" points="7309.5,-341.5 7309.5,-341.5 7450.5,-341.5 7450.5,-341.5 7309.5,-341.5"/>
+<polygon fill="none" stroke="#666666" points="7294.5,-268.5 7294.5,-388.5 7450.5,-388.5 7450.5,-268.5 7294.5,-268.5"/>
</a>
</g>
</g>
@@ -1408,7 +1540,7 @@
<g id="edge72_Node000001_Node000073" class="edge">
<title>Node1->Node73</title>
<g id="a_edge72_Node000001_Node000073"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M4628.91,-535.04C5085.97,-529.8 7164.55,-502.65 7285.5,-441 7313.83,-426.56 7335.76,-398.2 7350.52,-373.69"/>
+<path fill="none" stroke="#63b8ff" d="M4628.91,-535.04C5085.97,-529.8 7164.55,-502.65 7285.5,-441 7308.14,-429.46 7326.7,-409.03 7340.77,-388.77"/>
<polygon fill="none" stroke="#63b8ff" points="4628.69,-531.54 4618.73,-535.15 4628.77,-538.54 4628.69,-531.54"/>
</a>
</g>
@@ -1417,23 +1549,27 @@
<g id="Node000074" class="node">
<title>Node74</title>
<g id="a_Node000074"><a xlink:href="classtvm_1_1prim_1_1RampNode.html" target="_top" xlink:title="Construct a vector with lanes elements where its i-th element equals base + i * stride....">
-<polygon fill="white" stroke="transparent" points="7624.5,-381 7468.5,-381 7468.5,-276 7624.5,-276 7624.5,-381"/>
-<text text-anchor="start" x="7492" y="-368.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::prim::RampNode</text>
+<polygon fill="white" stroke="transparent" points="7624.5,-396 7468.5,-396 7468.5,-261 7624.5,-261 7624.5,-396"/>
+<text text-anchor="start" x="7492" y="-383.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::prim::RampNode</text>
+<text text-anchor="start" x="7472.5" y="-368.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="7485.5" y="-368.5" font-family="Helvetica,sans-Serif" font-size="10.00">base</text>
<text text-anchor="start" x="7472.5" y="-353.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="7485.5" y="-353.5" font-family="Helvetica,sans-Serif" font-size="10.00">base</text>
+<text text-anchor="start" x="7485.5" y="-353.5" font-family="Helvetica,sans-Serif" font-size="10.00">stride</text>
<text text-anchor="start" x="7472.5" y="-338.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="7485.5" y="-338.5" font-family="Helvetica,sans-Serif" font-size="10.00">stride</text>
+<text text-anchor="start" x="7485.5" y="-338.5" font-family="Helvetica,sans-Serif" font-size="10.00">lanes</text>
<text text-anchor="start" x="7472.5" y="-323.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="7485.5" y="-323.5" font-family="Helvetica,sans-Serif" font-size="10.00">lanes</text>
+<text text-anchor="start" x="7485.5" y="-323.5" font-family="Helvetica,sans-Serif" font-size="10.00">RampNode()</text>
<text text-anchor="start" x="7472.5" y="-308.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="7485.5" y="-308.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="7485.5" y="-297.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
-<text text-anchor="start" x="7472.5" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="7485.5" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
-<polygon fill="#666666" stroke="#666666" points="7468.5,-363.5 7468.5,-363.5 7624.5,-363.5 7624.5,-363.5 7468.5,-363.5"/>
-<polygon fill="#666666" stroke="#666666" points="7468.5,-318.5 7468.5,-318.5 7483.5,-318.5 7483.5,-318.5 7468.5,-318.5"/>
-<polygon fill="#666666" stroke="#666666" points="7483.5,-318.5 7483.5,-318.5 7624.5,-318.5 7624.5,-318.5 7483.5,-318.5"/>
-<polygon fill="none" stroke="#666666" points="7468.5,-276 7468.5,-381 7624.5,-381 7624.5,-276 7468.5,-276"/>
+<text text-anchor="start" x="7485.5" y="-308.5" font-family="Helvetica,sans-Serif" font-size="10.00">RampNode()</text>
+<text text-anchor="start" x="7472.5" y="-293.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="7485.5" y="-293.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="7485.5" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
+<text text-anchor="start" x="7472.5" y="-267.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="7485.5" y="-267.5" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
+<polygon fill="#666666" stroke="#666666" points="7468.5,-378.5 7468.5,-378.5 7624.5,-378.5 7624.5,-378.5 7468.5,-378.5"/>
+<polygon fill="#666666" stroke="#666666" points="7468.5,-333.5 7468.5,-333.5 7483.5,-333.5 7483.5,-333.5 7468.5,-333.5"/>
+<polygon fill="#666666" stroke="#666666" points="7483.5,-333.5 7483.5,-333.5 7624.5,-333.5 7624.5,-333.5 7483.5,-333.5"/>
+<polygon fill="none" stroke="#666666" points="7468.5,-261 7468.5,-396 7624.5,-396 7624.5,-261 7468.5,-261"/>
</a>
</g>
</g>
@@ -1441,7 +1577,7 @@
<g id="edge73_Node000001_Node000074" class="edge">
<title>Node1->Node74</title>
<g id="a_edge73_Node000001_Node000074"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M4629.06,-535.23C5103.76,-530.81 7330.33,-506.67 7459.5,-441 7485,-428.04 7505.31,-403.78 7519.87,-381.19"/>
+<path fill="none" stroke="#63b8ff" d="M4629.06,-535.23C5103.76,-530.81 7330.33,-506.67 7459.5,-441 7479.42,-430.87 7496.17,-413.86 7509.49,-396.13"/>
<polygon fill="none" stroke="#63b8ff" points="4628.81,-531.73 4618.84,-535.32 4628.87,-538.73 4628.81,-531.73"/>
</a>
</g>
@@ -1450,23 +1586,27 @@
<g id="Node000075" class="node">
<title>Node75</title>
<g id="a_Node000075"><a xlink:href="classtvm_1_1prim_1_1SelectNode.html" target="_top" xlink:title="return true_value if condition is true, otherwise return false_value.">
-<polygon fill="white" stroke="transparent" points="7798.5,-381 7642.5,-381 7642.5,-276 7798.5,-276 7798.5,-381"/>
-<text text-anchor="start" x="7665.5" y="-368.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::prim::SelectNode</text>
+<polygon fill="white" stroke="transparent" points="7798.5,-396 7642.5,-396 7642.5,-261 7798.5,-261 7798.5,-396"/>
+<text text-anchor="start" x="7665.5" y="-383.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::prim::SelectNode</text>
+<text text-anchor="start" x="7646.5" y="-368.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="7659.5" y="-368.5" font-family="Helvetica,sans-Serif" font-size="10.00">condition</text>
<text text-anchor="start" x="7646.5" y="-353.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="7659.5" y="-353.5" font-family="Helvetica,sans-Serif" font-size="10.00">condition</text>
+<text text-anchor="start" x="7659.5" y="-353.5" font-family="Helvetica,sans-Serif" font-size="10.00">true_value</text>
<text text-anchor="start" x="7646.5" y="-338.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="7659.5" y="-338.5" font-family="Helvetica,sans-Serif" font-size="10.00">true_value</text>
+<text text-anchor="start" x="7659.5" y="-338.5" font-family="Helvetica,sans-Serif" font-size="10.00">false_value</text>
<text text-anchor="start" x="7646.5" y="-323.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="7659.5" y="-323.5" font-family="Helvetica,sans-Serif" font-size="10.00">false_value</text>
+<text text-anchor="start" x="7659.5" y="-323.5" font-family="Helvetica,sans-Serif" font-size="10.00">SelectNode()</text>
<text text-anchor="start" x="7646.5" y="-308.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="7659.5" y="-308.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="7659.5" y="-297.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
-<text text-anchor="start" x="7646.5" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="7659.5" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
-<polygon fill="#666666" stroke="#666666" points="7642.5,-363.5 7642.5,-363.5 7798.5,-363.5 7798.5,-363.5 7642.5,-363.5"/>
-<polygon fill="#666666" stroke="#666666" points="7642.5,-318.5 7642.5,-318.5 7657.5,-318.5 7657.5,-318.5 7642.5,-318.5"/>
-<polygon fill="#666666" stroke="#666666" points="7657.5,-318.5 7657.5,-318.5 7798.5,-318.5 7798.5,-318.5 7657.5,-318.5"/>
-<polygon fill="none" stroke="#666666" points="7642.5,-276 7642.5,-381 7798.5,-381 7798.5,-276 7642.5,-276"/>
+<text text-anchor="start" x="7659.5" y="-308.5" font-family="Helvetica,sans-Serif" font-size="10.00">SelectNode()</text>
+<text text-anchor="start" x="7646.5" y="-293.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="7659.5" y="-293.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="7659.5" y="-282.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
+<text text-anchor="start" x="7646.5" y="-267.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="7659.5" y="-267.5" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
+<polygon fill="#666666" stroke="#666666" points="7642.5,-378.5 7642.5,-378.5 7798.5,-378.5 7798.5,-378.5 7642.5,-378.5"/>
+<polygon fill="#666666" stroke="#666666" points="7642.5,-333.5 7642.5,-333.5 7657.5,-333.5 7657.5,-333.5 7642.5,-333.5"/>
+<polygon fill="#666666" stroke="#666666" points="7657.5,-333.5 7657.5,-333.5 7798.5,-333.5 7798.5,-333.5 7657.5,-333.5"/>
+<polygon fill="none" stroke="#666666" points="7642.5,-261 7642.5,-396 7798.5,-396 7798.5,-261 7642.5,-261"/>
</a>
</g>
</g>
@@ -1474,7 +1614,7 @@
<g id="edge74_Node000001_Node000075" class="edge">
<title>Node1->Node75</title>
<g id="a_edge74_Node000001_Node000075"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M4628.72,-535.4C5119.48,-531.78 7496.06,-510.72 7633.5,-441 7659.01,-428.06 7679.32,-403.81 7693.88,-381.22"/>
+<path fill="none" stroke="#63b8ff" d="M4628.72,-535.4C5119.48,-531.78 7496.06,-510.72 7633.5,-441 7653.43,-430.89 7670.18,-413.88 7683.5,-396.15"/>
<polygon fill="none" stroke="#63b8ff" points="4628.49,-531.9 4618.51,-535.47 4628.54,-538.9 4628.49,-531.9"/>
</a>
</g>
@@ -1514,25 +1654,29 @@
<g id="Node000077" class="node">
<title>Node77</title>
<g id="a_Node000077"><a xlink:href="classtvm_1_1relax_1_1IfNode.html" target="_top" xlink:title="Condition expression.">
-<polygon fill="white" stroke="transparent" points="8146.5,-388.5 7990.5,-388.5 7990.5,-268.5 8146.5,-268.5 8146.5,-388.5"/>
-<text text-anchor="start" x="8024" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::IfNode</text>
+<polygon fill="white" stroke="transparent" points="8146.5,-403.5 7990.5,-403.5 7990.5,-253.5 8146.5,-253.5 8146.5,-403.5"/>
+<text text-anchor="start" x="8024" y="-391.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::IfNode</text>
+<text text-anchor="start" x="7994.5" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="8007.5" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00">cond</text>
<text text-anchor="start" x="7994.5" y="-361.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="8007.5" y="-361.5" font-family="Helvetica,sans-Serif" font-size="10.00">cond</text>
+<text text-anchor="start" x="8007.5" y="-361.5" font-family="Helvetica,sans-Serif" font-size="10.00">true_branch</text>
<text text-anchor="start" x="7994.5" y="-346.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="8007.5" y="-346.5" font-family="Helvetica,sans-Serif" font-size="10.00">true_branch</text>
+<text text-anchor="start" x="8007.5" y="-346.5" font-family="Helvetica,sans-Serif" font-size="10.00">false_branch</text>
<text text-anchor="start" x="7994.5" y="-331.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="8007.5" y="-331.5" font-family="Helvetica,sans-Serif" font-size="10.00">false_branch</text>
+<text text-anchor="start" x="8007.5" y="-331.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_s_eq_hash_kind</text>
<text text-anchor="start" x="7994.5" y="-316.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="8007.5" y="-316.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_s_eq_hash_kind</text>
+<text text-anchor="start" x="8007.5" y="-316.5" font-family="Helvetica,sans-Serif" font-size="10.00">IfNode()</text>
<text text-anchor="start" x="7994.5" y="-301.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="8007.5" y="-301.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="8007.5" y="-290.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
-<text text-anchor="start" x="7994.5" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="8007.5" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
-<polygon fill="#666666" stroke="#666666" points="7990.5,-371.5 7990.5,-371.5 8146.5,-371.5 8146.5,-371.5 7990.5,-371.5"/>
-<polygon fill="#666666" stroke="#666666" points="7990.5,-311.5 7990.5,-311.5 8005.5,-311.5 8005.5,-311.5 7990.5,-311.5"/>
-<polygon fill="#666666" stroke="#666666" points="8005.5,-311.5 8005.5,-311.5 8146.5,-311.5 8146.5,-311.5 8005.5,-311.5"/>
-<polygon fill="none" stroke="#666666" points="7990.5,-268.5 7990.5,-388.5 8146.5,-388.5 8146.5,-268.5 7990.5,-268.5"/>
+<text text-anchor="start" x="8007.5" y="-301.5" font-family="Helvetica,sans-Serif" font-size="10.00">IfNode()</text>
+<text text-anchor="start" x="7994.5" y="-286.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="8007.5" y="-286.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="8007.5" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
+<text text-anchor="start" x="7994.5" y="-260.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="8007.5" y="-260.5" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
+<polygon fill="#666666" stroke="#666666" points="7990.5,-386.5 7990.5,-386.5 8146.5,-386.5 8146.5,-386.5 7990.5,-386.5"/>
+<polygon fill="#666666" stroke="#666666" points="7990.5,-326.5 7990.5,-326.5 8005.5,-326.5 8005.5,-326.5 7990.5,-326.5"/>
+<polygon fill="#666666" stroke="#666666" points="8005.5,-326.5 8005.5,-326.5 8146.5,-326.5 8146.5,-326.5 8005.5,-326.5"/>
+<polygon fill="none" stroke="#666666" points="7990.5,-253.5 7990.5,-403.5 8146.5,-403.5 8146.5,-253.5 7990.5,-253.5"/>
</a>
</g>
</g>
@@ -1540,7 +1684,7 @@
<g id="edge76_Node000001_Node000077" class="edge">
<title>Node1->Node77</title>
<g id="a_edge76_Node000001_Node000077"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M4628.77,-535.68C5151.87,-533.54 7827.55,-518.8 7981.5,-441 8004.29,-429.48 8022.92,-408.92 8037.01,-388.57"/>
+<path fill="none" stroke="#63b8ff" d="M4628.77,-535.68C5151.87,-533.54 7827.55,-518.8 7981.5,-441 7998.59,-432.36 8013.35,-418.64 8025.6,-403.73"/>
<polygon fill="none" stroke="#63b8ff" points="4628.63,-532.18 4618.65,-535.72 4628.66,-539.18 4628.63,-532.18"/>
</a>
</g>
@@ -1549,25 +1693,29 @@
<g id="Node000078" class="node">
<title>Node78</title>
<g id="a_Node000078"><a xlink:href="classtvm_1_1relax_1_1SeqExprNode.html" target="_top" xlink:title="A sequence of blocks followed by an expression.">
-<polygon fill="white" stroke="transparent" points="8320.5,-388.5 8164.5,-388.5 8164.5,-268.5 8320.5,-268.5 8320.5,-388.5"/>
-<text text-anchor="start" x="8181.5" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::SeqExprNode</text>
+<polygon fill="white" stroke="transparent" points="8320.5,-403.5 8164.5,-403.5 8164.5,-253.5 8320.5,-253.5 8320.5,-403.5"/>
+<text text-anchor="start" x="8181.5" y="-391.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::SeqExprNode</text>
+<text text-anchor="start" x="8168.5" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="8181.5" y="-376.5" font-family="Helvetica,sans-Serif" font-size="10.00">blocks</text>
<text text-anchor="start" x="8168.5" y="-361.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="8181.5" y="-361.5" font-family="Helvetica,sans-Serif" font-size="10.00">blocks</text>
+<text text-anchor="start" x="8181.5" y="-361.5" font-family="Helvetica,sans-Serif" font-size="10.00">body</text>
<text text-anchor="start" x="8168.5" y="-346.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="8181.5" y="-346.5" font-family="Helvetica,sans-Serif" font-size="10.00">body</text>
+<text text-anchor="start" x="8181.5" y="-346.5" font-family="Helvetica,sans-Serif" font-size="10.00">SeqExprNode()</text>
<text text-anchor="start" x="8168.5" y="-331.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="8181.5" y="-331.5" font-family="Helvetica,sans-Serif" font-size="10.00">SEqual()</text>
+<text text-anchor="start" x="8181.5" y="-331.5" font-family="Helvetica,sans-Serif" font-size="10.00">SeqExprNode()</text>
<text text-anchor="start" x="8168.5" y="-316.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="8181.5" y="-316.5" font-family="Helvetica,sans-Serif" font-size="10.00">SHash()</text>
+<text text-anchor="start" x="8181.5" y="-316.5" font-family="Helvetica,sans-Serif" font-size="10.00">SEqual()</text>
<text text-anchor="start" x="8168.5" y="-301.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="8181.5" y="-301.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="8181.5" y="-290.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
-<text text-anchor="start" x="8168.5" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="8181.5" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
-<polygon fill="#666666" stroke="#666666" points="8164.5,-371.5 8164.5,-371.5 8320.5,-371.5 8320.5,-371.5 8164.5,-371.5"/>
-<polygon fill="#666666" stroke="#666666" points="8164.5,-341.5 8164.5,-341.5 8179.5,-341.5 8179.5,-341.5 8164.5,-341.5"/>
-<polygon fill="#666666" stroke="#666666" points="8179.5,-341.5 8179.5,-341.5 8320.5,-341.5 8320.5,-341.5 8179.5,-341.5"/>
-<polygon fill="none" stroke="#666666" points="8164.5,-268.5 8164.5,-388.5 8320.5,-388.5 8320.5,-268.5 8164.5,-268.5"/>
+<text text-anchor="start" x="8181.5" y="-301.5" font-family="Helvetica,sans-Serif" font-size="10.00">SHash()</text>
+<text text-anchor="start" x="8168.5" y="-286.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="8181.5" y="-286.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="8181.5" y="-275.5" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
+<text text-anchor="start" x="8168.5" y="-260.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="8181.5" y="-260.5" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
+<polygon fill="#666666" stroke="#666666" points="8164.5,-386.5 8164.5,-386.5 8320.5,-386.5 8320.5,-386.5 8164.5,-386.5"/>
+<polygon fill="#666666" stroke="#666666" points="8164.5,-356.5 8164.5,-356.5 8179.5,-356.5 8179.5,-356.5 8164.5,-356.5"/>
+<polygon fill="#666666" stroke="#666666" points="8179.5,-356.5 8179.5,-356.5 8320.5,-356.5 8320.5,-356.5 8179.5,-356.5"/>
+<polygon fill="none" stroke="#666666" points="8164.5,-253.5 8164.5,-403.5 8320.5,-403.5 8320.5,-253.5 8164.5,-253.5"/>
</a>
</g>
</g>
@@ -1575,7 +1723,7 @@
<g id="edge77_Node000001_Node000078" class="edge">
<title>Node1->Node78</title>
<g id="a_edge77_Node000001_Node000078"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M4628.89,-535.81C5167.76,-534.35 7993.28,-522.84 8155.5,-441 8178.3,-429.5 8196.93,-408.94 8211.02,-388.58"/>
+<path fill="none" stroke="#63b8ff" d="M4628.89,-535.81C5167.76,-534.35 7993.28,-522.84 8155.5,-441 8172.6,-432.37 8187.35,-418.65 8199.61,-403.74"/>
<polygon fill="none" stroke="#63b8ff" points="4628.83,-532.31 4618.84,-535.83 4628.85,-539.31 4628.83,-532.31"/>
</a>
</g>
@@ -1679,8 +1827,8 @@
<g id="edge3_Node000003_Node000004" class="edge">
<title>Node3->Node4</title>
<g id="a_edge3_Node000003_Node000004"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M89.5,-252.6C89.5,-205.07 89.5,-146.68 89.5,-114.72"/>
-<polygon fill="none" stroke="#63b8ff" points="86,-252.88 89.5,-262.88 93,-252.88 86,-252.88"/>
+<path fill="none" stroke="#63b8ff" d="M89.5,-237.52C89.5,-193.18 89.5,-143.22 89.5,-114.58"/>
+<polygon fill="none" stroke="#63b8ff" points="86,-237.76 89.5,-247.76 93,-237.76 86,-237.76"/>
</a>
</g>
</g>
@@ -1704,8 +1852,8 @@
<g id="edge5_Node000005_Node000006" class="edge">
<title>Node5->Node6</title>
<g id="a_edge5_Node000005_Node000006"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M286.5,-252.6C286.5,-205.07 286.5,-146.68 286.5,-114.72"/>
-<polygon fill="none" stroke="#63b8ff" points="283,-252.88 286.5,-262.88 290,-252.88 283,-252.88"/>
+<path fill="none" stroke="#63b8ff" d="M286.5,-237.52C286.5,-193.18 286.5,-143.22 286.5,-114.58"/>
+<polygon fill="none" stroke="#63b8ff" points="283,-237.76 286.5,-247.76 290,-237.76 283,-237.76"/>
</a>
</g>
</g>
@@ -1729,8 +1877,8 @@
<g id="edge7_Node000007_Node000008" class="edge">
<title>Node7->Node8</title>
<g id="a_edge7_Node000007_Node000008"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M483.5,-252.6C483.5,-205.07 483.5,-146.68 483.5,-114.72"/>
-<polygon fill="none" stroke="#63b8ff" points="480,-252.88 483.5,-262.88 487,-252.88 480,-252.88"/>
+<path fill="none" stroke="#63b8ff" d="M483.5,-237.52C483.5,-193.18 483.5,-143.22 483.5,-114.58"/>
+<polygon fill="none" stroke="#63b8ff" points="480,-237.76 483.5,-247.76 487,-237.76 480,-237.76"/>
</a>
</g>
</g>
@@ -1754,8 +1902,8 @@
<g id="edge9_Node000009_Node000010" class="edge">
<title>Node9->Node10</title>
<g id="a_edge9_Node000009_Node000010"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M680.5,-252.6C680.5,-205.07 680.5,-146.68 680.5,-114.72"/>
-<polygon fill="none" stroke="#63b8ff" points="677,-252.88 680.5,-262.88 684,-252.88 677,-252.88"/>
+<path fill="none" stroke="#63b8ff" d="M680.5,-237.52C680.5,-193.18 680.5,-143.22 680.5,-114.58"/>
+<polygon fill="none" stroke="#63b8ff" points="677,-237.76 680.5,-247.76 684,-237.76 677,-237.76"/>
</a>
</g>
</g>
@@ -1779,8 +1927,8 @@
<g id="edge11_Node000011_Node000012" class="edge">
<title>Node11->Node12</title>
<g id="a_edge11_Node000011_Node000012"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M877.5,-252.6C877.5,-205.07 877.5,-146.68 877.5,-114.72"/>
-<polygon fill="none" stroke="#63b8ff" points="874,-252.88 877.5,-262.88 881,-252.88 874,-252.88"/>
+<path fill="none" stroke="#63b8ff" d="M877.5,-237.52C877.5,-193.18 877.5,-143.22 877.5,-114.58"/>
+<polygon fill="none" stroke="#63b8ff" points="874,-237.76 877.5,-247.76 881,-237.76 874,-237.76"/>
</a>
</g>
</g>
@@ -1804,8 +1952,8 @@
<g id="edge13_Node000013_Node000014" class="edge">
<title>Node13->Node14</title>
<g id="a_edge13_Node000013_Node000014"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M1074.5,-252.6C1074.5,-205.07 1074.5,-146.68 1074.5,-114.72"/>
-<polygon fill="none" stroke="#63b8ff" points="1071,-252.88 1074.5,-262.88 1078,-252.88 1071,-252.88"/>
+<path fill="none" stroke="#63b8ff" d="M1074.5,-237.52C1074.5,-193.18 1074.5,-143.22 1074.5,-114.58"/>
+<polygon fill="none" stroke="#63b8ff" points="1071,-237.76 1074.5,-247.76 1078,-237.76 1071,-237.76"/>
</a>
</g>
</g>
@@ -1829,8 +1977,8 @@
<g id="edge15_Node000015_Node000016" class="edge">
<title>Node15->Node16</title>
<g id="a_edge15_Node000015_Node000016"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M1271.5,-252.6C1271.5,-205.07 1271.5,-146.68 1271.5,-114.72"/>
-<polygon fill="none" stroke="#63b8ff" points="1268,-252.88 1271.5,-262.88 1275,-252.88 1268,-252.88"/>
+<path fill="none" stroke="#63b8ff" d="M1271.5,-237.52C1271.5,-193.18 1271.5,-143.22 1271.5,-114.58"/>
+<polygon fill="none" stroke="#63b8ff" points="1268,-237.76 1271.5,-247.76 1275,-237.76 1268,-237.76"/>
</a>
</g>
</g>
@@ -1854,8 +2002,8 @@
<g id="edge17_Node000017_Node000018" class="edge">
<title>Node17->Node18</title>
<g id="a_edge17_Node000017_Node000018"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M1468.5,-252.6C1468.5,-205.07 1468.5,-146.68 1468.5,-114.72"/>
-<polygon fill="none" stroke="#63b8ff" points="1465,-252.88 1468.5,-262.88 1472,-252.88 1465,-252.88"/>
+<path fill="none" stroke="#63b8ff" d="M1468.5,-237.52C1468.5,-193.18 1468.5,-143.22 1468.5,-114.58"/>
+<polygon fill="none" stroke="#63b8ff" points="1465,-237.76 1468.5,-247.76 1472,-237.76 1465,-237.76"/>
</a>
</g>
</g>
@@ -1879,8 +2027,8 @@
<g id="edge19_Node000019_Node000020" class="edge">
<title>Node19->Node20</title>
<g id="a_edge19_Node000019_Node000020"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M1665.5,-252.6C1665.5,-205.07 1665.5,-146.68 1665.5,-114.72"/>
-<polygon fill="none" stroke="#63b8ff" points="1662,-252.88 1665.5,-262.88 1669,-252.88 1662,-252.88"/>
+<path fill="none" stroke="#63b8ff" d="M1665.5,-237.52C1665.5,-193.18 1665.5,-143.22 1665.5,-114.58"/>
+<polygon fill="none" stroke="#63b8ff" points="1662,-237.76 1665.5,-247.76 1669,-237.76 1662,-237.76"/>
</a>
</g>
</g>
@@ -1904,8 +2052,8 @@
<g id="edge21_Node000021_Node000022" class="edge">
<title>Node21->Node22</title>
<g id="a_edge21_Node000021_Node000022"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M1862.5,-252.6C1862.5,-205.07 1862.5,-146.68 1862.5,-114.72"/>
-<polygon fill="none" stroke="#63b8ff" points="1859,-252.88 1862.5,-262.88 1866,-252.88 1859,-252.88"/>
+<path fill="none" stroke="#63b8ff" d="M1862.5,-237.52C1862.5,-193.18 1862.5,-143.22 1862.5,-114.58"/>
+<polygon fill="none" stroke="#63b8ff" points="1859,-237.76 1862.5,-247.76 1866,-237.76 1859,-237.76"/>
</a>
</g>
</g>
@@ -1929,8 +2077,8 @@
<g id="edge23_Node000023_Node000024" class="edge">
<title>Node23->Node24</title>
<g id="a_edge23_Node000023_Node000024"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M2059.5,-252.6C2059.5,-205.07 2059.5,-146.68 2059.5,-114.72"/>
-<polygon fill="none" stroke="#63b8ff" points="2056,-252.88 2059.5,-262.88 2063,-252.88 2056,-252.88"/>
+<path fill="none" stroke="#63b8ff" d="M2059.5,-237.52C2059.5,-193.18 2059.5,-143.22 2059.5,-114.58"/>
+<polygon fill="none" stroke="#63b8ff" points="2056,-237.76 2059.5,-247.76 2063,-237.76 2056,-237.76"/>
</a>
</g>
</g>
@@ -1954,8 +2102,8 @@
<g id="edge25_Node000025_Node000026" class="edge">
<title>Node25->Node26</title>
<g id="a_edge25_Node000025_Node000026"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M2256.5,-252.6C2256.5,-205.07 2256.5,-146.68 2256.5,-114.72"/>
-<polygon fill="none" stroke="#63b8ff" points="2253,-252.88 2256.5,-262.88 2260,-252.88 2253,-252.88"/>
+<path fill="none" stroke="#63b8ff" d="M2256.5,-237.52C2256.5,-193.18 2256.5,-143.22 2256.5,-114.58"/>
+<polygon fill="none" stroke="#63b8ff" points="2253,-237.76 2256.5,-247.76 2260,-237.76 2253,-237.76"/>
</a>
</g>
</g>
@@ -1979,8 +2127,8 @@
<g id="edge27_Node000027_Node000028" class="edge">
<title>Node27->Node28</title>
<g id="a_edge27_Node000027_Node000028"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M2453.5,-252.6C2453.5,-205.07 2453.5,-146.68 2453.5,-114.72"/>
-<polygon fill="none" stroke="#63b8ff" points="2450,-252.88 2453.5,-262.88 2457,-252.88 2450,-252.88"/>
+<path fill="none" stroke="#63b8ff" d="M2453.5,-237.52C2453.5,-193.18 2453.5,-143.22 2453.5,-114.58"/>
+<polygon fill="none" stroke="#63b8ff" points="2450,-237.76 2453.5,-247.76 2457,-237.76 2450,-237.76"/>
</a>
</g>
</g>
@@ -2004,8 +2152,8 @@
<g id="edge29_Node000029_Node000030" class="edge">
<title>Node29->Node30</title>
<g id="a_edge29_Node000029_Node000030"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M2650.5,-252.6C2650.5,-205.07 2650.5,-146.68 2650.5,-114.72"/>
-<polygon fill="none" stroke="#63b8ff" points="2647,-252.88 2650.5,-262.88 2654,-252.88 2647,-252.88"/>
+<path fill="none" stroke="#63b8ff" d="M2650.5,-237.52C2650.5,-193.18 2650.5,-143.22 2650.5,-114.58"/>
+<polygon fill="none" stroke="#63b8ff" points="2647,-237.76 2650.5,-247.76 2654,-237.76 2647,-237.76"/>
</a>
</g>
</g>
@@ -2029,8 +2177,8 @@
<g id="edge31_Node000031_Node000032" class="edge">
<title>Node31->Node32</title>
<g id="a_edge31_Node000031_Node000032"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M2847.5,-252.6C2847.5,-205.07 2847.5,-146.68 2847.5,-114.72"/>
-<polygon fill="none" stroke="#63b8ff" points="2844,-252.88 2847.5,-262.88 2851,-252.88 2844,-252.88"/>
+<path fill="none" stroke="#63b8ff" d="M2847.5,-237.52C2847.5,-193.18 2847.5,-143.22 2847.5,-114.58"/>
+<polygon fill="none" stroke="#63b8ff" points="2844,-237.76 2847.5,-247.76 2851,-237.76 2844,-237.76"/>
</a>
</g>
</g>
@@ -2054,8 +2202,8 @@
<g id="edge33_Node000033_Node000034" class="edge">
<title>Node33->Node34</title>
<g id="a_edge33_Node000033_Node000034"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M3044.5,-252.6C3044.5,-205.07 3044.5,-146.68 3044.5,-114.72"/>
-<polygon fill="none" stroke="#63b8ff" points="3041,-252.88 3044.5,-262.88 3048,-252.88 3041,-252.88"/>
+<path fill="none" stroke="#63b8ff" d="M3044.5,-237.52C3044.5,-193.18 3044.5,-143.22 3044.5,-114.58"/>
+<polygon fill="none" stroke="#63b8ff" points="3041,-237.76 3044.5,-247.76 3048,-237.76 3041,-237.76"/>
</a>
</g>
</g>
@@ -2079,8 +2227,8 @@
<g id="edge35_Node000035_Node000036" class="edge">
<title>Node35->Node36</title>
<g id="a_edge35_Node000035_Node000036"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M3229.51,-252.9C3221.87,-205.31 3212.46,-146.75 3207.31,-114.72"/>
-<polygon fill="none" stroke="#63b8ff" points="3226.07,-253.56 3231.12,-262.88 3232.99,-252.45 3226.07,-253.56"/>
+<path fill="none" stroke="#63b8ff" d="M3227.09,-237.8C3219.95,-193.39 3211.9,-143.28 3207.29,-114.58"/>
+<polygon fill="none" stroke="#63b8ff" points="3223.65,-238.44 3228.69,-247.76 3230.56,-237.33 3223.65,-238.44"/>
</a>
</g>
</g>
@@ -2104,8 +2252,8 @@
<g id="edge37_Node000037_Node000038" class="edge">
<title>Node37->Node38</title>
<g id="a_edge37_Node000037_Node000038"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M3402.97,-253.8C3379.96,-206.05 3351.47,-146.95 3335.93,-114.72"/>
-<polygon fill="none" stroke="#63b8ff" points="3399.85,-255.39 3407.35,-262.88 3406.16,-252.35 3399.85,-255.39"/>
+<path fill="none" stroke="#63b8ff" d="M3395.66,-238.64C3374.16,-194.02 3349.79,-143.46 3335.87,-114.58"/>
+<polygon fill="none" stroke="#63b8ff" points="3392.57,-240.27 3400.06,-247.76 3398.87,-237.23 3392.57,-240.27"/>
</a>
</g>
</g>
@@ -2129,8 +2277,8 @@
<g id="edge39_Node000039_Node000040" class="edge">
<title>Node39->Node40</title>
<g id="a_edge39_Node000039_Node000040"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M3571.56,-255.15C3559.93,-242.09 3547.88,-228.61 3536.5,-216 3521.96,-199.88 3516.94,-197.05 3503.5,-180 3486.77,-158.78 3469.75,-133.05 3458.12,-114.72"/>
-<polygon fill="none" stroke="#63b8ff" points="3569.09,-257.64 3578.35,-262.78 3574.32,-252.99 3569.09,-257.64"/>
+<path fill="none" stroke="#63b8ff" d="M3558.33,-240.32C3550.97,-232.08 3543.6,-223.87 3536.5,-216 3521.96,-199.88 3516.94,-197.05 3503.5,-180 3486.77,-158.78 3469.75,-133.05 3458.12,-114.72"/>
+<polygon fill="none" stroke="#63b8ff" points="3555.81,-242.75 3565.08,-247.88 3561.03,-238.09 3555.81,-242.75"/>
</a>
</g>
</g>
@@ -2154,8 +2302,8 @@
<g id="edge41_Node000041_Node000042" class="edge">
<title>Node41->Node42</title>
<g id="a_edge41_Node000041_Node000042"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M3778.51,-255.35C3765.06,-240.83 3749.78,-226.74 3733.5,-216 3691.27,-188.14 3665.91,-210.45 3625.5,-180 3602.76,-162.86 3585.52,-134.7 3575.26,-114.65"/>
-<polygon fill="none" stroke="#63b8ff" points="3776.08,-257.88 3785.37,-262.97 3781.28,-253.19 3776.08,-257.88"/>
+<path fill="none" stroke="#63b8ff" d="M3764.23,-240.84C3754.58,-231.66 3744.26,-223.1 3733.5,-216 3691.27,-188.14 3665.91,-210.45 3625.5,-180 3602.76,-162.86 3585.52,-134.7 3575.26,-114.65"/>
+<polygon fill="none" stroke="#63b8ff" points="3761.89,-243.44 3771.47,-247.96 3766.8,-238.46 3761.89,-243.44"/>
</a>
</g>
</g>
@@ -2192,27 +2340,31 @@
<g id="Node000045" class="node">
<title>Node45</title>
<g id="a_Node000045"><a xlink:href="classtvm_1_1relax_1_1FunctionNode.html" target="_top" xlink:title="A Relax function.">
-<polygon fill="white" stroke="transparent" points="3964.5,-157.5 3808.5,-157.5 3808.5,-22.5 3964.5,-22.5 3964.5,-157.5"/>
-<text text-anchor="start" x="3824.5" y="-145" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::FunctionNode</text>
+<polygon fill="white" stroke="transparent" points="3964.5,-172.5 3808.5,-172.5 3808.5,-7.5 3964.5,-7.5 3964.5,-172.5"/>
+<text text-anchor="start" x="3824.5" y="-160" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::FunctionNode</text>
+<text text-anchor="start" x="3812.5" y="-145" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="3825.5" y="-145" font-family="Helvetica,sans-Serif" font-size="10.00">params</text>
<text text-anchor="start" x="3812.5" y="-130" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="3825.5" y="-130" font-family="Helvetica,sans-Serif" font-size="10.00">params</text>
+<text text-anchor="start" x="3825.5" y="-130" font-family="Helvetica,sans-Serif" font-size="10.00">body</text>
<text text-anchor="start" x="3812.5" y="-115" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="3825.5" y="-115" font-family="Helvetica,sans-Serif" font-size="10.00">body</text>
+<text text-anchor="start" x="3825.5" y="-115" font-family="Helvetica,sans-Serif" font-size="10.00">ret_ty</text>
<text text-anchor="start" x="3812.5" y="-100" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="3825.5" y="-100" font-family="Helvetica,sans-Serif" font-size="10.00">ret_ty</text>
+<text text-anchor="start" x="3825.5" y="-100" font-family="Helvetica,sans-Serif" font-size="10.00">is_pure</text>
<text text-anchor="start" x="3812.5" y="-85" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="3825.5" y="-85" font-family="Helvetica,sans-Serif" font-size="10.00">is_pure</text>
+<text text-anchor="start" x="3825.5" y="-85" font-family="Helvetica,sans-Serif" font-size="10.00">_type_s_eq_hash_kind</text>
<text text-anchor="start" x="3812.5" y="-70" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="3825.5" y="-70" font-family="Helvetica,sans-Serif" font-size="10.00">_type_s_eq_hash_kind</text>
+<text text-anchor="start" x="3825.5" y="-70" font-family="Helvetica,sans-Serif" font-size="10.00">FunctionNode()</text>
<text text-anchor="start" x="3812.5" y="-55" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="3825.5" y="-55" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="3825.5" y="-44" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
-<text text-anchor="start" x="3812.5" y="-29" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="3825.5" y="-29" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
-<polygon fill="#666666" stroke="#666666" points="3808.5,-140 3808.5,-140 3964.5,-140 3964.5,-140 3808.5,-140"/>
-<polygon fill="#666666" stroke="#666666" points="3808.5,-65 3808.5,-65 3823.5,-65 3823.5,-65 3808.5,-65"/>
-<polygon fill="#666666" stroke="#666666" points="3823.5,-65 3823.5,-65 3964.5,-65 3964.5,-65 3823.5,-65"/>
-<polygon fill="none" stroke="#666666" points="3808.5,-22.5 3808.5,-157.5 3964.5,-157.5 3964.5,-22.5 3808.5,-22.5"/>
+<text text-anchor="start" x="3825.5" y="-55" font-family="Helvetica,sans-Serif" font-size="10.00">FunctionNode()</text>
+<text text-anchor="start" x="3812.5" y="-40" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="3825.5" y="-40" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="3825.5" y="-29" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
+<text text-anchor="start" x="3812.5" y="-14" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="3825.5" y="-14" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
+<polygon fill="#666666" stroke="#666666" points="3808.5,-155 3808.5,-155 3964.5,-155 3964.5,-155 3808.5,-155"/>
+<polygon fill="#666666" stroke="#666666" points="3808.5,-80 3808.5,-80 3823.5,-80 3823.5,-80 3808.5,-80"/>
+<polygon fill="#666666" stroke="#666666" points="3823.5,-80 3823.5,-80 3964.5,-80 3964.5,-80 3823.5,-80"/>
+<polygon fill="none" stroke="#666666" points="3808.5,-7.5 3808.5,-172.5 3964.5,-172.5 3964.5,-7.5 3808.5,-7.5"/>
</a>
</g>
</g>
@@ -2220,7 +2372,7 @@
<g id="edge44_Node000043_Node000045" class="edge">
<title>Node43->Node45</title>
<g id="a_edge44_Node000043_Node000045"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M3972.02,-244.23C3956.2,-215.88 3938.73,-184.58 3923.73,-157.7"/>
+<path fill="none" stroke="#63b8ff" d="M3972.18,-244.5C3959.18,-221.22 3945.07,-195.93 3932.11,-172.72"/>
<polygon fill="none" stroke="#63b8ff" points="3969.17,-246.29 3977.1,-253.32 3975.28,-242.88 3969.17,-246.29"/>
</a>
</g>
@@ -2413,29 +2565,33 @@
<g id="Node000057" class="node">
<title>Node57</title>
<g id="a_Node000057"><a xlink:href="classtvm_1_1te_1_1ReduceNode.html" target="_top" xlink:title="Reduction operator.">
-<polygon fill="white" stroke="transparent" points="5182.5,-165 5026.5,-165 5026.5,-15 5182.5,-15 5182.5,-165"/>
-<text text-anchor="start" x="5053" y="-153" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::te::ReduceNode</text>
+<polygon fill="white" stroke="transparent" points="5182.5,-180 5026.5,-180 5026.5,0 5182.5,0 5182.5,-180"/>
+<text text-anchor="start" x="5053" y="-168" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::te::ReduceNode</text>
+<text text-anchor="start" x="5030.5" y="-153" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="5043.5" y="-153" font-family="Helvetica,sans-Serif" font-size="10.00">combiner</text>
<text text-anchor="start" x="5030.5" y="-138" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="5043.5" y="-138" font-family="Helvetica,sans-Serif" font-size="10.00">combiner</text>
+<text text-anchor="start" x="5043.5" y="-138" font-family="Helvetica,sans-Serif" font-size="10.00">source</text>
<text text-anchor="start" x="5030.5" y="-123" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="5043.5" y="-123" font-family="Helvetica,sans-Serif" font-size="10.00">source</text>
+<text text-anchor="start" x="5043.5" y="-123" font-family="Helvetica,sans-Serif" font-size="10.00">init</text>
<text text-anchor="start" x="5030.5" y="-108" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="5043.5" y="-108" font-family="Helvetica,sans-Serif" font-size="10.00">init</text>
+<text text-anchor="start" x="5043.5" y="-108" font-family="Helvetica,sans-Serif" font-size="10.00">axis</text>
<text text-anchor="start" x="5030.5" y="-93" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="5043.5" y="-93" font-family="Helvetica,sans-Serif" font-size="10.00">axis</text>
+<text text-anchor="start" x="5043.5" y="-93" font-family="Helvetica,sans-Serif" font-size="10.00">condition</text>
<text text-anchor="start" x="5030.5" y="-78" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="5043.5" y="-78" font-family="Helvetica,sans-Serif" font-size="10.00">condition</text>
+<text text-anchor="start" x="5043.5" y="-78" font-family="Helvetica,sans-Serif" font-size="10.00">value_index</text>
<text text-anchor="start" x="5030.5" y="-63" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="5043.5" y="-63" font-family="Helvetica,sans-Serif" font-size="10.00">value_index</text>
+<text text-anchor="start" x="5043.5" y="-63" font-family="Helvetica,sans-Serif" font-size="10.00">ReduceNode()</text>
<text text-anchor="start" x="5030.5" y="-48" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="5043.5" y="-48" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="5043.5" y="-37" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
-<text text-anchor="start" x="5030.5" y="-22" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="5043.5" y="-22" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
-<polygon fill="#666666" stroke="#666666" points="5026.5,-148 5026.5,-148 5182.5,-148 5182.5,-148 5026.5,-148"/>
-<polygon fill="#666666" stroke="#666666" points="5026.5,-58 5026.5,-58 5041.5,-58 5041.5,-58 5026.5,-58"/>
-<polygon fill="#666666" stroke="#666666" points="5041.5,-58 5041.5,-58 5182.5,-58 5182.5,-58 5041.5,-58"/>
-<polygon fill="none" stroke="#666666" points="5026.5,-15 5026.5,-165 5182.5,-165 5182.5,-15 5026.5,-15"/>
+<text text-anchor="start" x="5043.5" y="-48" font-family="Helvetica,sans-Serif" font-size="10.00">ReduceNode()</text>
+<text text-anchor="start" x="5030.5" y="-33" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="5043.5" y="-33" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="5043.5" y="-22" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
+<text text-anchor="start" x="5030.5" y="-7" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="5043.5" y="-7" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
+<polygon fill="#666666" stroke="#666666" points="5026.5,-163 5026.5,-163 5182.5,-163 5182.5,-163 5026.5,-163"/>
+<polygon fill="#666666" stroke="#666666" points="5026.5,-73 5026.5,-73 5041.5,-73 5041.5,-73 5026.5,-73"/>
+<polygon fill="#666666" stroke="#666666" points="5041.5,-73 5041.5,-73 5182.5,-73 5182.5,-73 5041.5,-73"/>
+<polygon fill="none" stroke="#666666" points="5026.5,0 5026.5,-180 5182.5,-180 5182.5,0 5026.5,0"/>
</a>
</g>
</g>
@@ -2443,7 +2599,7 @@
<g id="edge56_Node000056_Node000057" class="edge">
<title>Node56->Node57</title>
<g id="a_edge56_Node000056_Node000057"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M4920.24,-282.7C4935.94,-261.65 4955.74,-236.69 4975.5,-216 4992.48,-198.22 4999.56,-196.81 5017.5,-180 5022.55,-175.27 5027.69,-170.34 5032.83,-165.32"/>
+<path fill="none" stroke="#63b8ff" d="M4920.24,-282.7C4935.94,-261.65 4955.74,-236.69 4975.5,-216 4992.48,-198.22 4999.56,-196.81 5017.5,-180 5020.34,-177.34 5023.21,-174.62 5026.09,-171.85"/>
<polygon fill="none" stroke="#63b8ff" points="4917.33,-280.74 4914.21,-290.86 4922.96,-284.9 4917.33,-280.74"/>
</a>
</g>
@@ -2524,27 +2680,31 @@
<g id="Node000081" class="node">
<title>Node81</title>
<g id="a_Node000081"><a xlink:href="classtvm_1_1sym_1_1IterSplitExprNode.html" target="_top" xlink:title="Split of an iterator.">
-<polygon fill="white" stroke="transparent" points="8581.5,-157.5 8425.5,-157.5 8425.5,-22.5 8581.5,-22.5 8581.5,-157.5"/>
-<text text-anchor="start" x="8434" y="-145" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::sym::IterSplitExprNode</text>
+<polygon fill="white" stroke="transparent" points="8581.5,-172.5 8425.5,-172.5 8425.5,-7.5 8581.5,-7.5 8581.5,-172.5"/>
+<text text-anchor="start" x="8434" y="-160" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::sym::IterSplitExprNode</text>
+<text text-anchor="start" x="8429.5" y="-145" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="8442.5" y="-145" font-family="Helvetica,sans-Serif" font-size="10.00">source</text>
<text text-anchor="start" x="8429.5" y="-130" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="8442.5" y="-130" font-family="Helvetica,sans-Serif" font-size="10.00">source</text>
+<text text-anchor="start" x="8442.5" y="-130" font-family="Helvetica,sans-Serif" font-size="10.00">lower_factor</text>
<text text-anchor="start" x="8429.5" y="-115" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="8442.5" y="-115" font-family="Helvetica,sans-Serif" font-size="10.00">lower_factor</text>
+<text text-anchor="start" x="8442.5" y="-115" font-family="Helvetica,sans-Serif" font-size="10.00">extent</text>
<text text-anchor="start" x="8429.5" y="-100" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="8442.5" y="-100" font-family="Helvetica,sans-Serif" font-size="10.00">extent</text>
+<text text-anchor="start" x="8442.5" y="-100" font-family="Helvetica,sans-Serif" font-size="10.00">scale</text>
<text text-anchor="start" x="8429.5" y="-85" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="8442.5" y="-85" font-family="Helvetica,sans-Serif" font-size="10.00">scale</text>
+<text text-anchor="start" x="8442.5" y="-85" font-family="Helvetica,sans-Serif" font-size="10.00">_type_s_eq_hash_kind</text>
<text text-anchor="start" x="8429.5" y="-70" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="8442.5" y="-70" font-family="Helvetica,sans-Serif" font-size="10.00">_type_s_eq_hash_kind</text>
+<text text-anchor="start" x="8442.5" y="-70" font-family="Helvetica,sans-Serif" font-size="10.00">IterSplitExprNode()</text>
<text text-anchor="start" x="8429.5" y="-55" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="8442.5" y="-55" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="8442.5" y="-44" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
-<text text-anchor="start" x="8429.5" y="-29" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="8442.5" y="-29" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
-<polygon fill="#666666" stroke="#666666" points="8425.5,-140 8425.5,-140 8581.5,-140 8581.5,-140 8425.5,-140"/>
-<polygon fill="#666666" stroke="#666666" points="8425.5,-65 8425.5,-65 8440.5,-65 8440.5,-65 8425.5,-65"/>
-<polygon fill="#666666" stroke="#666666" points="8440.5,-65 8440.5,-65 8581.5,-65 8581.5,-65 8440.5,-65"/>
-<polygon fill="none" stroke="#666666" points="8425.5,-22.5 8425.5,-157.5 8581.5,-157.5 8581.5,-22.5 8425.5,-22.5"/>
+<text text-anchor="start" x="8442.5" y="-55" font-family="Helvetica,sans-Serif" font-size="10.00">IterSplitExprNode()</text>
+<text text-anchor="start" x="8429.5" y="-40" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="8442.5" y="-40" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="8442.5" y="-29" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
+<text text-anchor="start" x="8429.5" y="-14" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="8442.5" y="-14" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
+<polygon fill="#666666" stroke="#666666" points="8425.5,-155 8425.5,-155 8581.5,-155 8581.5,-155 8425.5,-155"/>
+<polygon fill="#666666" stroke="#666666" points="8425.5,-80 8425.5,-80 8440.5,-80 8440.5,-80 8425.5,-80"/>
+<polygon fill="#666666" stroke="#666666" points="8440.5,-80 8440.5,-80 8581.5,-80 8581.5,-80 8440.5,-80"/>
+<polygon fill="none" stroke="#666666" points="8425.5,-7.5 8425.5,-172.5 8581.5,-172.5 8581.5,-7.5 8425.5,-7.5"/>
</a>
</g>
</g>
@@ -2552,7 +2712,7 @@
<g id="edge80_Node000080_Node000081" class="edge">
<title>Node80->Node81</title>
<g id="a_edge80_Node000080_Node000081"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M8576.16,-288.51C8563.1,-253.02 8543.55,-199.88 8528.02,-157.66"/>
+<path fill="none" stroke="#63b8ff" d="M8576.09,-288.33C8564.53,-256.91 8547.92,-211.74 8533.5,-172.54"/>
<polygon fill="none" stroke="#63b8ff" points="8572.92,-289.85 8579.66,-298.03 8579.49,-287.43 8572.92,-289.85"/>
</a>
</g>
@@ -2561,23 +2721,27 @@
<g id="Node000082" class="node">
<title>Node82</title>
<g id="a_Node000082"><a xlink:href="classtvm_1_1sym_1_1IterSumExprNode.html" target="_top" xlink:title="Fuse multiple iterators by summing them with scaling.">
-<polygon fill="white" stroke="transparent" points="8755.5,-142.5 8599.5,-142.5 8599.5,-37.5 8755.5,-37.5 8755.5,-142.5"/>
-<text text-anchor="start" x="8608" y="-130" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::sym::IterSumExprNode</text>
+<polygon fill="white" stroke="transparent" points="8755.5,-157.5 8599.5,-157.5 8599.5,-22.5 8755.5,-22.5 8755.5,-157.5"/>
+<text text-anchor="start" x="8608" y="-145" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::sym::IterSumExprNode</text>
+<text text-anchor="start" x="8603.5" y="-130" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="8616.5" y="-130" font-family="Helvetica,sans-Serif" font-size="10.00">args</text>
<text text-anchor="start" x="8603.5" y="-115" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="8616.5" y="-115" font-family="Helvetica,sans-Serif" font-size="10.00">args</text>
+<text text-anchor="start" x="8616.5" y="-115" font-family="Helvetica,sans-Serif" font-size="10.00">base</text>
<text text-anchor="start" x="8603.5" y="-100" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="8616.5" y="-100" font-family="Helvetica,sans-Serif" font-size="10.00">base</text>
+<text text-anchor="start" x="8616.5" y="-100" font-family="Helvetica,sans-Serif" font-size="10.00">_type_s_eq_hash_kind</text>
<text text-anchor="start" x="8603.5" y="-85" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="8616.5" y="-85" font-family="Helvetica,sans-Serif" font-size="10.00">_type_s_eq_hash_kind</text>
+<text text-anchor="start" x="8616.5" y="-85" font-family="Helvetica,sans-Serif" font-size="10.00">IterSumExprNode()</text>
<text text-anchor="start" x="8603.5" y="-70" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="8616.5" y="-70" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
-<text text-anchor="start" x="8616.5" y="-59" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
-<text text-anchor="start" x="8603.5" y="-44" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="8616.5" y="-44" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
-<polygon fill="#666666" stroke="#666666" points="8599.5,-125 8599.5,-125 8755.5,-125 8755.5,-125 8599.5,-125"/>
-<polygon fill="#666666" stroke="#666666" points="8599.5,-80 8599.5,-80 8614.5,-80 8614.5,-80 8599.5,-80"/>
-<polygon fill="#666666" stroke="#666666" points="8614.5,-80 8614.5,-80 8755.5,-80 8755.5,-80 8614.5,-80"/>
-<polygon fill="none" stroke="#666666" points="8599.5,-37.5 8599.5,-142.5 8755.5,-142.5 8755.5,-37.5 8599.5,-37.5"/>
+<text text-anchor="start" x="8616.5" y="-70" font-family="Helvetica,sans-Serif" font-size="10.00">IterSumExprNode()</text>
+<text text-anchor="start" x="8603.5" y="-55" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="8616.5" y="-55" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DECLARE_OBJECT</text>
+<text text-anchor="start" x="8616.5" y="-44" font-family="Helvetica,sans-Serif" font-size="10.00">_INFO_FINAL()</text>
+<text text-anchor="start" x="8603.5" y="-29" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="8616.5" y="-29" font-family="Helvetica,sans-Serif" font-size="10.00">RegisterReflection()</text>
+<polygon fill="#666666" stroke="#666666" points="8599.5,-140 8599.5,-140 8755.5,-140 8755.5,-140 8599.5,-140"/>
+<polygon fill="#666666" stroke="#666666" points="8599.5,-95 8599.5,-95 8614.5,-95 8614.5,-95 8599.5,-95"/>
+<polygon fill="#666666" stroke="#666666" points="8614.5,-95 8614.5,-95 8755.5,-95 8755.5,-95 8614.5,-95"/>
+<polygon fill="none" stroke="#666666" points="8599.5,-22.5 8599.5,-157.5 8755.5,-157.5 8755.5,-22.5 8599.5,-22.5"/>
</a>
</g>
</g>
@@ -2585,7 +2749,7 @@
<g id="edge81_Node000080_Node000082" class="edge">
<title>Node80->Node82</title>
<g id="a_edge81_Node000080_Node000082"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M8604.88,-288.42C8619.5,-248.66 8642.25,-186.81 8658.39,-142.95"/>
+<path fill="none" stroke="#63b8ff" d="M8604.84,-288.51C8617.9,-253.02 8637.45,-199.88 8652.98,-157.66"/>
<polygon fill="none" stroke="#63b8ff" points="8601.51,-287.43 8601.34,-298.03 8608.08,-289.85 8601.51,-287.43"/>
</a>
</g>
diff --git a/docs/reference/api/doxygen/classtvm_1_1Expr__coll__graph.svg b/docs/reference/api/doxygen/classtvm_1_1Expr__coll__graph.svg
index d6ca29bf303..3f077dd1aca 100644
--- a/docs/reference/api/doxygen/classtvm_1_1Expr__coll__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1Expr__coll__graph.svg
@@ -4,29 +4,31 @@
<!-- Generated by graphviz version 2.43.0 (0)
-->
<!-- Title: tvm::Expr Pages: 1 -->
-<svg width="172pt" height="198pt"
- viewBox="0.00 0.00 172.00 198.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 194)">
+<svg width="193pt" height="213pt"
+ viewBox="0.00 0.00 193.00 213.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 209)">
<title>tvm::Expr</title>
<!-- Node1 -->
<g id="Node000001" class="node">
<title>Node1</title>
<g id="a_Node000001"><a xlink:title="Managed reference to ExprNode.">
-<polygon fill="#999999" stroke="transparent" points="164,-105 0,-105 0,0 164,0 164,-105"/>
-<text text-anchor="start" x="58" y="-92.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::Expr</text>
-<text text-anchor="start" x="80" y="-77.5" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
-<text text-anchor="start" x="4" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="17" y="-62.5" font-family="Helvetica,sans-Serif" font-size="10.00">operator==()</text>
-<text text-anchor="start" x="4" y="-47.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="17" y="-47.5" font-family="Helvetica,sans-Serif" font-size="10.00">operator!=()</text>
-<text text-anchor="start" x="4" y="-32.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="17" y="-32.5" font-family="Helvetica,sans-Serif" font-size="10.00">operator<()</text>
-<text text-anchor="start" x="4" y="-17.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="17" y="-17.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
-<text text-anchor="start" x="17" y="-6.5" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NULLABLE()</text>
-<polygon fill="#666666" stroke="#666666" points="0,-87.5 0,-87.5 164,-87.5 164,-87.5 0,-87.5"/>
-<polygon fill="#666666" stroke="#666666" points="0,-72.5 0,-72.5 164,-72.5 164,-72.5 0,-72.5"/>
-<polygon fill="none" stroke="#666666" points="0,0 0,-105 164,-105 164,0 0,0"/>
+<polygon fill="#999999" stroke="transparent" points="185,-120 0,-120 0,0 185,0 185,-120"/>
+<text text-anchor="start" x="69" y="-108" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::Expr</text>
+<text text-anchor="start" x="91" y="-93" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
+<text text-anchor="start" x="4.5" y="-78" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="17.5" y="-78" font-family="Helvetica,sans-Serif" font-size="10.00">operator==()</text>
+<text text-anchor="start" x="4.5" y="-63" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="17.5" y="-63" font-family="Helvetica,sans-Serif" font-size="10.00">operator!=()</text>
+<text text-anchor="start" x="4.5" y="-48" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="17.5" y="-48" font-family="Helvetica,sans-Serif" font-size="10.00">operator<()</text>
+<text text-anchor="start" x="4.5" y="-33" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="17.5" y="-33" font-family="Helvetica,sans-Serif" font-size="10.00">Expr()</text>
+<text text-anchor="start" x="4.5" y="-18" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="17.5" y="-18" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
+<text text-anchor="start" x="17.5" y="-7" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NOTNULLABLE()</text>
+<polygon fill="#666666" stroke="#666666" points="0.5,-103 0.5,-103 185.5,-103 185.5,-103 0.5,-103"/>
+<polygon fill="#666666" stroke="#666666" points="0.5,-88 0.5,-88 185.5,-88 185.5,-88 0.5,-88"/>
+<polygon fill="none" stroke="#666666" points="0,0 0,-120 185,-120 185,0 0,0"/>
</a>
</g>
</g>
@@ -34,13 +36,13 @@
<g id="Node000002" class="node">
<title>Node2</title>
<g id="a_Node000002"><a xlink:title=" ">
-<polygon fill="white" stroke="transparent" points="119,-190 45,-190 45,-141 119,-141 119,-190"/>
-<text text-anchor="start" x="50" y="-177.5" font-family="Helvetica,sans-Serif" font-size="10.00">ffi::ObjectRef</text>
-<text text-anchor="start" x="80" y="-162.5" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
-<text text-anchor="start" x="80" y="-147.5" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
-<polygon fill="#666666" stroke="#666666" points="45,-172.5 45,-172.5 119,-172.5 119,-172.5 45,-172.5"/>
-<polygon fill="#666666" stroke="#666666" points="45,-157.5 45,-157.5 119,-157.5 119,-157.5 45,-157.5"/>
-<polygon fill="none" stroke="#666666" points="45,-141 45,-190 119,-190 119,-141 45,-141"/>
+<polygon fill="white" stroke="transparent" points="129.5,-205 55.5,-205 55.5,-156 129.5,-156 129.5,-205"/>
+<text text-anchor="start" x="60.5" y="-192.5" font-family="Helvetica,sans-Serif" font-size="10.00">ffi::ObjectRef</text>
+<text text-anchor="start" x="90.5" y="-177.5" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
+<text text-anchor="start" x="90.5" y="-162.5" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
+<polygon fill="#666666" stroke="#666666" points="55.5,-187.5 55.5,-187.5 129.5,-187.5 129.5,-187.5 55.5,-187.5"/>
+<polygon fill="#666666" stroke="#666666" points="55.5,-172.5 55.5,-172.5 129.5,-172.5 129.5,-172.5 55.5,-172.5"/>
+<polygon fill="none" stroke="#666666" points="55.5,-156 55.5,-205 129.5,-205 129.5,-156 55.5,-156"/>
</a>
</g>
</g>
@@ -48,8 +50,8 @@
<g id="edge1_Node000001_Node000002" class="edge">
<title>Node2->Node1</title>
<g id="a_edge1_Node000001_Node000002"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M82,-130.85C82,-122.79 82,-114 82,-105.32"/>
-<polygon fill="none" stroke="#63b8ff" points="78.5,-130.96 82,-140.96 85.5,-130.96 78.5,-130.96"/>
+<path fill="none" stroke="#63b8ff" d="M92.5,-145.59C92.5,-137.71 92.5,-129.09 92.5,-120.47"/>
+<polygon fill="none" stroke="#63b8ff" points="89,-145.8 92.5,-155.8 96,-145.8 89,-145.8"/>
</a>
</g>
</g>
diff --git a/docs/reference/api/doxygen/classtvm_1_1Expr__inherit__graph.svg b/docs/reference/api/doxygen/classtvm_1_1Expr__inherit__graph.svg
index ac1039eff55..17bb14a5710 100644
--- a/docs/reference/api/doxygen/classtvm_1_1Expr__inherit__graph.svg
+++ b/docs/reference/api/doxygen/classtvm_1_1Expr__inherit__graph.svg
@@ -4,29 +4,31 @@
<!-- Generated by graphviz version 2.43.0 (0)
-->
<!-- Title: tvm::Expr Pages: 1 -->
-<svg width="6724pt" height="1050pt"
- viewBox="0.00 0.00 6724.00 1050.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 1046)">
+<svg width="7501pt" height="1110pt"
+ viewBox="0.00 0.00 7501.00 1110.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 1106)">
<title>tvm::Expr</title>
<!-- Node1 -->
<g id="Node000001" class="node">
<title>Node1</title>
<g id="a_Node000001"><a xlink:title="Managed reference to ExprNode.">
-<polygon fill="#999999" stroke="transparent" points="4918,-957 4754,-957 4754,-852 4918,-852 4918,-957"/>
-<text text-anchor="start" x="4812" y="-944.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::Expr</text>
-<text text-anchor="start" x="4834" y="-929.5" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
-<text text-anchor="start" x="4758" y="-914.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="4771" y="-914.5" font-family="Helvetica,sans-Serif" font-size="10.00">operator==()</text>
-<text text-anchor="start" x="4758" y="-899.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="4771" y="-899.5" font-family="Helvetica,sans-Serif" font-size="10.00">operator!=()</text>
-<text text-anchor="start" x="4758" y="-884.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="4771" y="-884.5" font-family="Helvetica,sans-Serif" font-size="10.00">operator<()</text>
-<text text-anchor="start" x="4758" y="-869.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="4771" y="-869.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
-<text text-anchor="start" x="4771" y="-858.5" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NULLABLE()</text>
-<polygon fill="#666666" stroke="#666666" points="4754,-939.5 4754,-939.5 4918,-939.5 4918,-939.5 4754,-939.5"/>
-<polygon fill="#666666" stroke="#666666" points="4754,-924.5 4754,-924.5 4918,-924.5 4918,-924.5 4754,-924.5"/>
-<polygon fill="none" stroke="#666666" points="4754,-852 4754,-957 4918,-957 4918,-852 4754,-852"/>
+<polygon fill="#999999" stroke="transparent" points="5463,-1017 5278,-1017 5278,-897 5463,-897 5463,-1017"/>
+<text text-anchor="start" x="5347" y="-1005" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::Expr</text>
+<text text-anchor="start" x="5369" y="-990" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
+<text text-anchor="start" x="5282.5" y="-975" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="5295.5" y="-975" font-family="Helvetica,sans-Serif" font-size="10.00">operator==()</text>
+<text text-anchor="start" x="5282.5" y="-960" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="5295.5" y="-960" font-family="Helvetica,sans-Serif" font-size="10.00">operator!=()</text>
+<text text-anchor="start" x="5282.5" y="-945" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="5295.5" y="-945" font-family="Helvetica,sans-Serif" font-size="10.00">operator<()</text>
+<text text-anchor="start" x="5282.5" y="-930" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="5295.5" y="-930" font-family="Helvetica,sans-Serif" font-size="10.00">Expr()</text>
+<text text-anchor="start" x="5282.5" y="-915" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="5295.5" y="-915" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
+<text text-anchor="start" x="5295.5" y="-904" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NOTNULLABLE()</text>
+<polygon fill="#666666" stroke="#666666" points="5278.5,-1000 5278.5,-1000 5463.5,-1000 5463.5,-1000 5278.5,-1000"/>
+<polygon fill="#666666" stroke="#666666" points="5278.5,-985 5278.5,-985 5463.5,-985 5463.5,-985 5278.5,-985"/>
+<polygon fill="none" stroke="#666666" points="5278,-897 5278,-1017 5463,-1017 5463,-897 5278,-897"/>
</a>
</g>
</g>
@@ -34,20 +36,22 @@
<g id="Node000003" class="node">
<title>Node3</title>
<g id="a_Node000003"><a xlink:href="classtvm_1_1TypedExpr.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="transparent" points="3531,-784 3367,-784 3367,-698 3531,-698 3531,-784"/>
-<text text-anchor="start" x="3377" y="-772" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::TypedExpr< PrimType ></text>
-<text text-anchor="start" x="3371" y="-757" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="3384" y="-757" font-family="Helvetica,sans-Serif" font-size="10.00">_type_container_is</text>
-<text text-anchor="start" x="3384" y="-746" font-family="Helvetica,sans-Serif" font-size="10.00">_exact</text>
-<text text-anchor="start" x="3371" y="-731" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="3384" y="-731" font-family="Helvetica,sans-Serif" font-size="10.00">ty()</text>
-<text text-anchor="start" x="3371" y="-716" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="3384" y="-716" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
-<text text-anchor="start" x="3384" y="-705" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NULLABLE()</text>
-<polygon fill="#666666" stroke="#666666" points="3367,-767 3367,-767 3531,-767 3531,-767 3367,-767"/>
-<polygon fill="#666666" stroke="#666666" points="3367,-741 3367,-741 3382,-741 3382,-741 3367,-741"/>
-<polygon fill="#666666" stroke="#666666" points="3382,-741 3382,-741 3531,-741 3531,-741 3382,-741"/>
-<polygon fill="none" stroke="#666666" points="3367,-698 3367,-784 3531,-784 3531,-698 3367,-698"/>
+<polygon fill="white" stroke="transparent" points="3941,-836.5 3756,-836.5 3756,-735.5 3941,-735.5 3941,-836.5"/>
+<text text-anchor="start" x="3777" y="-824" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::TypedExpr< PrimType ></text>
+<text text-anchor="start" x="3760.5" y="-809" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="3773.5" y="-809" font-family="Helvetica,sans-Serif" font-size="10.00">_type_container_is</text>
+<text text-anchor="start" x="3773.5" y="-798" font-family="Helvetica,sans-Serif" font-size="10.00">_exact</text>
+<text text-anchor="start" x="3760.5" y="-783" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="3773.5" y="-783" font-family="Helvetica,sans-Serif" font-size="10.00">ty()</text>
+<text text-anchor="start" x="3760.5" y="-768" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="3773.5" y="-768" font-family="Helvetica,sans-Serif" font-size="10.00">TypedExpr()</text>
+<text text-anchor="start" x="3760.5" y="-753" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="3773.5" y="-753" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
+<text text-anchor="start" x="3773.5" y="-742" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NOTNULLABLE()</text>
+<polygon fill="#666666" stroke="#666666" points="3756.5,-819 3756.5,-819 3941.5,-819 3941.5,-819 3756.5,-819"/>
+<polygon fill="#666666" stroke="#666666" points="3756.5,-793 3756.5,-793 3771.5,-793 3771.5,-793 3756.5,-793"/>
+<polygon fill="#666666" stroke="#666666" points="3771.5,-793 3771.5,-793 3941.5,-793 3941.5,-793 3771.5,-793"/>
+<polygon fill="none" stroke="#666666" points="3756,-735.5 3756,-836.5 3941,-836.5 3941,-735.5 3756,-735.5"/>
</a>
</g>
</g>
@@ -55,8 +59,8 @@
<g id="edge2_Node000001_Node000003" class="edge">
<title>Node1->Node3</title>
<g id="a_edge2_Node000001_Node000003"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M4743.35,-900.52C4499.17,-892.08 3842.31,-865.33 3631,-816 3597.29,-808.13 3561.7,-794.87 3531.02,-781.73"/>
-<polygon fill="none" stroke="#63b8ff" points="4743.5,-904.03 4753.62,-900.88 4743.74,-897.03 4743.5,-904.03"/>
+<path fill="none" stroke="#63b8ff" d="M5267.43,-952.3C4998.87,-942.06 4282.41,-910.79 4050.5,-861 4013.89,-853.14 3974.98,-840.09 3941.18,-827.12"/>
+<polygon fill="none" stroke="#63b8ff" points="5267.44,-955.8 5277.56,-952.68 5267.7,-948.81 5267.44,-955.8"/>
</a>
</g>
</g>
@@ -64,15 +68,17 @@
<g id="Node000044" class="node">
<title>Node44</title>
<g id="a_Node000044"><a xlink:href="classtvm_1_1BaseFunc.html" target="_top" xlink:title="Managed reference to BaseFuncNode.">
-<polygon fill="white" stroke="transparent" points="3804,-771 3640,-771 3640,-711 3804,-711 3804,-771"/>
-<text text-anchor="start" x="3685.5" y="-759" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::BaseFunc</text>
-<text text-anchor="start" x="3720" y="-744" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
-<text text-anchor="start" x="3644" y="-729" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="3657" y="-729" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
-<text text-anchor="start" x="3657" y="-718" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NULLABLE()</text>
-<polygon fill="#666666" stroke="#666666" points="3640,-754 3640,-754 3804,-754 3804,-754 3640,-754"/>
-<polygon fill="#666666" stroke="#666666" points="3640,-739 3640,-739 3804,-739 3804,-739 3640,-739"/>
-<polygon fill="none" stroke="#666666" points="3640,-711 3640,-771 3804,-771 3804,-711 3640,-711"/>
+<polygon fill="white" stroke="transparent" points="4245,-823.5 4060,-823.5 4060,-748.5 4245,-748.5 4245,-823.5"/>
+<text text-anchor="start" x="4116.5" y="-811" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::BaseFunc</text>
+<text text-anchor="start" x="4151" y="-796" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
+<text text-anchor="start" x="4064.5" y="-781" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="4077.5" y="-781" font-family="Helvetica,sans-Serif" font-size="10.00">BaseFunc()</text>
+<text text-anchor="start" x="4064.5" y="-766" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="4077.5" y="-766" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
+<text text-anchor="start" x="4077.5" y="-755" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NOTNULLABLE()</text>
+<polygon fill="#666666" stroke="#666666" points="4060.5,-806 4060.5,-806 4245.5,-806 4245.5,-806 4060.5,-806"/>
+<polygon fill="#666666" stroke="#666666" points="4060.5,-791 4060.5,-791 4245.5,-791 4245.5,-791 4060.5,-791"/>
+<polygon fill="none" stroke="#666666" points="4060,-748.5 4060,-823.5 4245,-823.5 4245,-748.5 4060,-748.5"/>
</a>
</g>
</g>
@@ -80,8 +86,8 @@
<g id="edge43_Node000001_Node000044" class="edge">
<title>Node1->Node44</title>
<g id="a_edge43_Node000001_Node000044"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M4743.48,-902.51C4524.55,-899.05 3980.57,-883.71 3813,-816 3788.65,-806.16 3765.73,-787.45 3748.98,-771.3"/>
-<polygon fill="none" stroke="#63b8ff" points="4743.6,-906.01 4753.65,-902.66 4743.71,-899.01 4743.6,-906.01"/>
+<path fill="none" stroke="#63b8ff" d="M5267.72,-954.33C5027.91,-949.29 4437.77,-930.06 4253.5,-861 4231.11,-852.61 4209.31,-837.77 4191.73,-823.57"/>
+<polygon fill="none" stroke="#63b8ff" points="5267.77,-957.83 5277.84,-954.54 5267.91,-950.83 5267.77,-957.83"/>
</a>
</g>
</g>
@@ -89,24 +95,26 @@
<g id="Node000048" class="node">
<title>Node48</title>
<g id="a_Node000048"><a xlink:href="classtvm_1_1Call.html" target="_top" xlink:title="Managed reference to CallNode.">
-<polygon fill="white" stroke="transparent" points="3986,-806.5 3822,-806.5 3822,-675.5 3986,-675.5 3986,-806.5"/>
-<text text-anchor="start" x="3881.5" y="-794" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::Call</text>
-<text text-anchor="start" x="3902" y="-779" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
-<text text-anchor="start" x="3826" y="-764" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="3839" y="-764" font-family="Helvetica,sans-Serif" font-size="10.00">Call()</text>
-<text text-anchor="start" x="3826" y="-749" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="3839" y="-749" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
-<text text-anchor="start" x="3839" y="-738" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NULLABLE()</text>
-<text text-anchor="start" x="3826" y="-723" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="3839" y="-723" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="3839" y="-712" font-family="Helvetica,sans-Serif" font-size="10.00">_COW_METHOD()</text>
-<text text-anchor="start" x="3826" y="-697" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="3839" y="-697" font-family="Helvetica,sans-Serif" font-size="10.00">Unchecked()</text>
-<text text-anchor="start" x="3826" y="-682" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="3839" y="-682" font-family="Helvetica,sans-Serif" font-size="10.00">ReinferType()</text>
-<polygon fill="#666666" stroke="#666666" points="3822,-789 3822,-789 3986,-789 3986,-789 3822,-789"/>
-<polygon fill="#666666" stroke="#666666" points="3822,-774 3822,-774 3986,-774 3986,-774 3822,-774"/>
-<polygon fill="none" stroke="#666666" points="3822,-675.5 3822,-806.5 3986,-806.5 3986,-675.5 3822,-675.5"/>
+<polygon fill="white" stroke="transparent" points="4448,-859 4263,-859 4263,-713 4448,-713 4448,-859"/>
+<text text-anchor="start" x="4333.5" y="-847" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::Call</text>
+<text text-anchor="start" x="4354" y="-832" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
+<text text-anchor="start" x="4267.5" y="-817" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="4280.5" y="-817" font-family="Helvetica,sans-Serif" font-size="10.00">Call()</text>
+<text text-anchor="start" x="4267.5" y="-802" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="4280.5" y="-802" font-family="Helvetica,sans-Serif" font-size="10.00">Call()</text>
+<text text-anchor="start" x="4267.5" y="-787" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="4280.5" y="-787" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
+<text text-anchor="start" x="4280.5" y="-776" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NOTNULLABLE()</text>
+<text text-anchor="start" x="4267.5" y="-761" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="4280.5" y="-761" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="4280.5" y="-750" font-family="Helvetica,sans-Serif" font-size="10.00">_COW_METHOD()</text>
+<text text-anchor="start" x="4267.5" y="-735" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="4280.5" y="-735" font-family="Helvetica,sans-Serif" font-size="10.00">Unchecked()</text>
+<text text-anchor="start" x="4267.5" y="-720" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="4280.5" y="-720" font-family="Helvetica,sans-Serif" font-size="10.00">ReinferType()</text>
+<polygon fill="#666666" stroke="#666666" points="4263.5,-842 4263.5,-842 4448.5,-842 4448.5,-842 4263.5,-842"/>
+<polygon fill="#666666" stroke="#666666" points="4263.5,-827 4263.5,-827 4448.5,-827 4448.5,-827 4263.5,-827"/>
+<polygon fill="none" stroke="#666666" points="4263,-713 4263,-859 4448,-859 4448,-713 4263,-713"/>
</a>
</g>
</g>
@@ -114,8 +122,8 @@
<g id="edge47_Node000001_Node000048" class="edge">
<title>Node1->Node48</title>
<g id="a_edge47_Node000001_Node000048"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M4743.51,-900.51C4554.06,-893.32 4128.48,-871.37 3995,-816 3988.7,-813.39 3982.49,-810.19 3976.45,-806.61"/>
-<polygon fill="none" stroke="#63b8ff" points="4743.6,-904.02 4753.72,-900.9 4743.86,-897.02 4743.6,-904.02"/>
+<path fill="none" stroke="#63b8ff" d="M5267.66,-952.07C5060.96,-943.07 4602.43,-917.26 4456.5,-861 4453.66,-859.91 4450.83,-858.71 4448.01,-857.43"/>
+<polygon fill="none" stroke="#63b8ff" points="5267.77,-955.58 5277.91,-952.51 5268.07,-948.58 5267.77,-955.58"/>
</a>
</g>
</g>
@@ -123,15 +131,17 @@
<g id="Node000049" class="node">
<title>Node49</title>
<g id="a_Node000049"><a xlink:href="classtvm_1_1Constant.html" target="_top" xlink:title="Managed reference to a literal constant.">
-<polygon fill="white" stroke="transparent" points="4168,-771 4004,-771 4004,-711 4168,-711 4168,-771"/>
-<text text-anchor="start" x="4051" y="-759" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::Constant</text>
-<text text-anchor="start" x="4084" y="-744" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
-<text text-anchor="start" x="4008" y="-729" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="4021" y="-729" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
-<text text-anchor="start" x="4021" y="-718" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NULLABLE()</text>
-<polygon fill="#666666" stroke="#666666" points="4004,-754 4004,-754 4168,-754 4168,-754 4004,-754"/>
-<polygon fill="#666666" stroke="#666666" points="4004,-739 4004,-739 4168,-739 4168,-739 4004,-739"/>
-<polygon fill="none" stroke="#666666" points="4004,-711 4004,-771 4168,-771 4168,-711 4004,-711"/>
+<polygon fill="white" stroke="transparent" points="4651,-823.5 4466,-823.5 4466,-748.5 4651,-748.5 4651,-823.5"/>
+<text text-anchor="start" x="4524" y="-811" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::Constant</text>
+<text text-anchor="start" x="4557" y="-796" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
+<text text-anchor="start" x="4470.5" y="-781" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="4483.5" y="-781" font-family="Helvetica,sans-Serif" font-size="10.00">Constant()</text>
+<text text-anchor="start" x="4470.5" y="-766" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="4483.5" y="-766" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
+<text text-anchor="start" x="4483.5" y="-755" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NOTNULLABLE()</text>
+<polygon fill="#666666" stroke="#666666" points="4466.5,-806 4466.5,-806 4651.5,-806 4651.5,-806 4466.5,-806"/>
+<polygon fill="#666666" stroke="#666666" points="4466.5,-791 4466.5,-791 4651.5,-791 4651.5,-791 4466.5,-791"/>
+<polygon fill="none" stroke="#666666" points="4466,-748.5 4466,-823.5 4651,-823.5 4651,-748.5 4466,-748.5"/>
</a>
</g>
</g>
@@ -139,8 +149,8 @@
<g id="edge48_Node000001_Node000049" class="edge">
<title>Node1->Node49</title>
<g id="a_edge48_Node000001_Node000049"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M4743.82,-897.47C4587.32,-886.2 4276.93,-859.12 4177,-816 4153.07,-805.67 4130.32,-787.17 4113.55,-771.26"/>
-<polygon fill="none" stroke="#63b8ff" points="4743.67,-900.97 4753.9,-898.19 4744.17,-893.98 4743.67,-900.97"/>
+<path fill="none" stroke="#63b8ff" d="M5267.74,-948.55C5098.16,-935.22 4767.69,-904.54 4659.5,-861 4637.72,-852.24 4616.34,-837.7 4598.9,-823.81"/>
+<polygon fill="none" stroke="#63b8ff" points="5267.69,-952.06 5277.93,-949.35 5268.23,-945.08 5267.69,-952.06"/>
</a>
</g>
</g>
@@ -148,20 +158,22 @@
<g id="Node000053" class="node">
<title>Node53</title>
<g id="a_Node000053"><a xlink:href="classtvm_1_1GlobalVar.html" target="_top" xlink:title="Managed reference to GlobalVarNode.">
-<polygon fill="white" stroke="transparent" points="4350,-791.5 4186,-791.5 4186,-690.5 4350,-690.5 4350,-791.5"/>
-<text text-anchor="start" x="4231.5" y="-779" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::GlobalVar</text>
-<text text-anchor="start" x="4266" y="-764" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
-<text text-anchor="start" x="4190" y="-749" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="4203" y="-749" font-family="Helvetica,sans-Serif" font-size="10.00">GlobalVar()</text>
-<text text-anchor="start" x="4190" y="-734" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="4203" y="-734" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
-<text text-anchor="start" x="4203" y="-723" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NULLABLE()</text>
-<text text-anchor="start" x="4190" y="-708" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="4203" y="-708" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="4203" y="-697" font-family="Helvetica,sans-Serif" font-size="10.00">_COW_METHOD()</text>
-<polygon fill="#666666" stroke="#666666" points="4186,-774 4186,-774 4350,-774 4350,-774 4186,-774"/>
-<polygon fill="#666666" stroke="#666666" points="4186,-759 4186,-759 4350,-759 4350,-759 4186,-759"/>
-<polygon fill="none" stroke="#666666" points="4186,-690.5 4186,-791.5 4350,-791.5 4350,-690.5 4186,-690.5"/>
+<polygon fill="white" stroke="transparent" points="4854,-844 4669,-844 4669,-728 4854,-728 4854,-844"/>
+<text text-anchor="start" x="4725.5" y="-832" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::GlobalVar</text>
+<text text-anchor="start" x="4760" y="-817" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
+<text text-anchor="start" x="4673.5" y="-802" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="4686.5" y="-802" font-family="Helvetica,sans-Serif" font-size="10.00">GlobalVar()</text>
+<text text-anchor="start" x="4673.5" y="-787" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="4686.5" y="-787" font-family="Helvetica,sans-Serif" font-size="10.00">GlobalVar()</text>
+<text text-anchor="start" x="4673.5" y="-772" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="4686.5" y="-772" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
+<text text-anchor="start" x="4686.5" y="-761" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NOTNULLABLE()</text>
+<text text-anchor="start" x="4673.5" y="-746" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="4686.5" y="-746" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="4686.5" y="-735" font-family="Helvetica,sans-Serif" font-size="10.00">_COW_METHOD()</text>
+<polygon fill="#666666" stroke="#666666" points="4669.5,-827 4669.5,-827 4854.5,-827 4854.5,-827 4669.5,-827"/>
+<polygon fill="#666666" stroke="#666666" points="4669.5,-812 4669.5,-812 4854.5,-812 4854.5,-812 4669.5,-812"/>
+<polygon fill="none" stroke="#666666" points="4669,-728 4669,-844 4854,-844 4854,-728 4669,-728"/>
</a>
</g>
</g>
@@ -169,8 +181,8 @@
<g id="edge52_Node000001_Node000053" class="edge">
<title>Node1->Node53</title>
<g id="a_edge52_Node000001_Node000053"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M4743.81,-900.11C4644.63,-893.44 4484.29,-873.78 4359,-816 4345.5,-809.78 4332.3,-801.08 4320.33,-791.84"/>
-<polygon fill="none" stroke="#63b8ff" points="4743.61,-903.6 4753.81,-900.75 4744.06,-896.62 4743.61,-903.6"/>
+<path fill="none" stroke="#63b8ff" d="M5267.9,-950.22C5162.43,-941.26 4995.31,-918.5 4862.5,-861 4851.93,-856.42 4841.4,-850.57 4831.36,-844.16"/>
+<polygon fill="none" stroke="#63b8ff" points="5267.66,-953.72 5277.91,-951.05 5268.23,-946.74 5267.66,-953.72"/>
</a>
</g>
</g>
@@ -178,27 +190,27 @@
<g id="Node000054" class="node">
<title>Node54</title>
<g id="a_Node000054"><a xlink:href="classtvm_1_1Op.html" target="_top" xlink:title="Reference-counted handle to a canonical named operator.">
-<polygon fill="white" stroke="transparent" points="4553.5,-816 4368.5,-816 4368.5,-666 4553.5,-666 4553.5,-816"/>
-<text text-anchor="start" x="4441.5" y="-804" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::Op</text>
-<text text-anchor="start" x="4459.5" y="-789" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
-<text text-anchor="start" x="4373" y="-774" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="4386" y="-774" font-family="Helvetica,sans-Serif" font-size="10.00">Op()</text>
-<text text-anchor="start" x="4373" y="-759" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="4386" y="-759" font-family="Helvetica,sans-Serif" font-size="10.00">Validate()</text>
-<text text-anchor="start" x="4373" y="-744" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="4386" y="-744" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
-<text text-anchor="start" x="4386" y="-733" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NOTNULLABLE()</text>
-<text text-anchor="start" x="4373" y="-718" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="4386" y="-718" font-family="Helvetica,sans-Serif" font-size="10.00">GetAttrMap()</text>
-<text text-anchor="start" x="4373" y="-703" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="4386" y="-703" font-family="Helvetica,sans-Serif" font-size="10.00">HasAttrMap()</text>
-<text text-anchor="start" x="4373" y="-688" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="4386" y="-688" font-family="Helvetica,sans-Serif" font-size="10.00">Get()</text>
-<text text-anchor="start" x="4373" y="-673" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="4386" y="-673" font-family="Helvetica,sans-Serif" font-size="10.00">ListNames()</text>
-<polygon fill="#666666" stroke="#666666" points="4369,-799 4369,-799 4554,-799 4554,-799 4369,-799"/>
-<polygon fill="#666666" stroke="#666666" points="4369,-784 4369,-784 4554,-784 4554,-784 4369,-784"/>
-<polygon fill="none" stroke="#666666" points="4368.5,-666 4368.5,-816 4553.5,-816 4553.5,-666 4368.5,-666"/>
+<polygon fill="white" stroke="transparent" points="5057,-861 4872,-861 4872,-711 5057,-711 5057,-861"/>
+<text text-anchor="start" x="4945" y="-849" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::Op</text>
+<text text-anchor="start" x="4963" y="-834" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
+<text text-anchor="start" x="4876.5" y="-819" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="4889.5" y="-819" font-family="Helvetica,sans-Serif" font-size="10.00">Op()</text>
+<text text-anchor="start" x="4876.5" y="-804" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="4889.5" y="-804" font-family="Helvetica,sans-Serif" font-size="10.00">Validate()</text>
+<text text-anchor="start" x="4876.5" y="-789" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="4889.5" y="-789" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
+<text text-anchor="start" x="4889.5" y="-778" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NOTNULLABLE()</text>
+<text text-anchor="start" x="4876.5" y="-763" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="4889.5" y="-763" font-family="Helvetica,sans-Serif" font-size="10.00">GetAttrMap()</text>
+<text text-anchor="start" x="4876.5" y="-748" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="4889.5" y="-748" font-family="Helvetica,sans-Serif" font-size="10.00">HasAttrMap()</text>
+<text text-anchor="start" x="4876.5" y="-733" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="4889.5" y="-733" font-family="Helvetica,sans-Serif" font-size="10.00">Get()</text>
+<text text-anchor="start" x="4876.5" y="-718" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="4889.5" y="-718" font-family="Helvetica,sans-Serif" font-size="10.00">ListNames()</text>
+<polygon fill="#666666" stroke="#666666" points="4872.5,-844 4872.5,-844 5057.5,-844 5057.5,-844 4872.5,-844"/>
+<polygon fill="#666666" stroke="#666666" points="4872.5,-829 4872.5,-829 5057.5,-829 5057.5,-829 4872.5,-829"/>
+<polygon fill="none" stroke="#666666" points="4872,-711 4872,-861 5057,-861 5057,-711 4872,-711"/>
</a>
</g>
</g>
@@ -206,8 +218,8 @@
<g id="edge53_Node000001_Node000054" class="edge">
<title>Node1->Node54</title>
<g id="a_edge53_Node000001_Node000054"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M4743.95,-881.84C4689.62,-867.16 4620.47,-845.11 4563,-816 4559.88,-814.42 4556.75,-812.74 4553.62,-811"/>
-<polygon fill="none" stroke="#63b8ff" points="4743.35,-885.3 4753.91,-884.49 4745.15,-878.53 4743.35,-885.3"/>
+<path fill="none" stroke="#63b8ff" d="M5267.71,-933.04C5206.97,-917.29 5129.65,-893.35 5065.5,-861 5062.69,-859.58 5059.87,-858.08 5057.05,-856.53"/>
+<polygon fill="none" stroke="#63b8ff" points="5267.14,-936.51 5277.69,-935.6 5268.87,-929.73 5267.14,-936.51"/>
</a>
</g>
</g>
@@ -215,15 +227,17 @@
<g id="Node000055" class="node">
<title>Node55</title>
<g id="a_Node000055"><a xlink:href="classtvm_1_1OpaqueExpr.html" target="_top" xlink:title="Managed reference to OpaqueExprNode.">
-<polygon fill="white" stroke="transparent" points="4736,-771 4572,-771 4572,-711 4736,-711 4736,-771"/>
-<text text-anchor="start" x="4611.5" y="-759" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::OpaqueExpr</text>
-<text text-anchor="start" x="4652" y="-744" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
-<text text-anchor="start" x="4576" y="-729" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="4589" y="-729" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
-<text text-anchor="start" x="4589" y="-718" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NULLABLE()</text>
-<polygon fill="#666666" stroke="#666666" points="4572,-754 4572,-754 4736,-754 4736,-754 4572,-754"/>
-<polygon fill="#666666" stroke="#666666" points="4572,-739 4572,-739 4736,-739 4736,-739 4572,-739"/>
-<polygon fill="none" stroke="#666666" points="4572,-711 4572,-771 4736,-771 4736,-711 4572,-711"/>
+<polygon fill="white" stroke="transparent" points="5260,-823.5 5075,-823.5 5075,-748.5 5260,-748.5 5260,-823.5"/>
+<text text-anchor="start" x="5125.5" y="-811" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::OpaqueExpr</text>
+<text text-anchor="start" x="5166" y="-796" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
+<text text-anchor="start" x="5079.5" y="-781" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="5092.5" y="-781" font-family="Helvetica,sans-Serif" font-size="10.00">OpaqueExpr()</text>
+<text text-anchor="start" x="5079.5" y="-766" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="5092.5" y="-766" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
+<text text-anchor="start" x="5092.5" y="-755" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NOTNULLABLE()</text>
+<polygon fill="#666666" stroke="#666666" points="5075.5,-806 5075.5,-806 5260.5,-806 5260.5,-806 5075.5,-806"/>
+<polygon fill="#666666" stroke="#666666" points="5075.5,-791 5075.5,-791 5260.5,-791 5260.5,-791 5075.5,-791"/>
+<polygon fill="none" stroke="#666666" points="5075,-748.5 5075,-823.5 5260,-823.5 5260,-748.5 5075,-748.5"/>
</a>
</g>
</g>
@@ -231,8 +245,8 @@
<g id="edge54_Node000001_Node000055" class="edge">
<title>Node1->Node55</title>
<g id="a_edge54_Node000001_Node000055"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M4770.41,-845.3C4742.08,-820.16 4710.17,-791.84 4686.93,-771.22"/>
-<polygon fill="none" stroke="#63b8ff" points="4768.11,-847.94 4777.91,-851.96 4772.76,-842.7 4768.11,-847.94"/>
+<path fill="none" stroke="#63b8ff" d="M5291.53,-890.26C5264.36,-867.64 5234.92,-843.13 5211.55,-823.67"/>
+<polygon fill="none" stroke="#63b8ff" points="5289.58,-893.18 5299.5,-896.89 5294.05,-887.8 5289.58,-893.18"/>
</a>
</g>
</g>
@@ -240,20 +254,22 @@
<g id="Node000057" class="node">
<title>Node57</title>
<g id="a_Node000057"><a xlink:href="classtvm_1_1TensorRegion.html" target="_top" xlink:title="Managed reference to TensorRegionNode.">
-<polygon fill="white" stroke="transparent" points="4918,-791.5 4754,-791.5 4754,-690.5 4918,-690.5 4918,-791.5"/>
-<text text-anchor="start" x="4790.5" y="-779" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::TensorRegion</text>
-<text text-anchor="start" x="4834" y="-764" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
-<text text-anchor="start" x="4758" y="-749" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="4771" y="-749" font-family="Helvetica,sans-Serif" font-size="10.00">TensorRegion()</text>
-<text text-anchor="start" x="4758" y="-734" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="4771" y="-734" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
-<text text-anchor="start" x="4771" y="-723" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NULLABLE()</text>
-<text text-anchor="start" x="4758" y="-708" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="4771" y="-708" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="4771" y="-697" font-family="Helvetica,sans-Serif" font-size="10.00">_COW_METHOD()</text>
-<polygon fill="#666666" stroke="#666666" points="4754,-774 4754,-774 4918,-774 4918,-774 4754,-774"/>
-<polygon fill="#666666" stroke="#666666" points="4754,-759 4754,-759 4918,-759 4918,-759 4754,-759"/>
-<polygon fill="none" stroke="#666666" points="4754,-690.5 4754,-791.5 4918,-791.5 4918,-690.5 4754,-690.5"/>
+<polygon fill="white" stroke="transparent" points="5463,-844 5278,-844 5278,-728 5463,-728 5463,-844"/>
+<text text-anchor="start" x="5325.5" y="-832" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::TensorRegion</text>
+<text text-anchor="start" x="5369" y="-817" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
+<text text-anchor="start" x="5282.5" y="-802" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="5295.5" y="-802" font-family="Helvetica,sans-Serif" font-size="10.00">TensorRegion()</text>
+<text text-anchor="start" x="5282.5" y="-787" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="5295.5" y="-787" font-family="Helvetica,sans-Serif" font-size="10.00">TensorRegion()</text>
+<text text-anchor="start" x="5282.5" y="-772" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="5295.5" y="-772" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
+<text text-anchor="start" x="5295.5" y="-761" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NOTNULLABLE()</text>
+<text text-anchor="start" x="5282.5" y="-746" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="5295.5" y="-746" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="5295.5" y="-735" font-family="Helvetica,sans-Serif" font-size="10.00">_COW_METHOD()</text>
+<polygon fill="#666666" stroke="#666666" points="5278.5,-827 5278.5,-827 5463.5,-827 5463.5,-827 5278.5,-827"/>
+<polygon fill="#666666" stroke="#666666" points="5278.5,-812 5278.5,-812 5463.5,-812 5463.5,-812 5278.5,-812"/>
+<polygon fill="none" stroke="#666666" points="5278,-728 5278,-844 5463,-844 5463,-728 5278,-728"/>
</a>
</g>
</g>
@@ -261,8 +277,8 @@
<g id="edge56_Node000001_Node000057" class="edge">
<title>Node1->Node57</title>
<g id="a_edge56_Node000001_Node000057"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M4836,-841.81C4836,-825.23 4836,-807.51 4836,-791.68"/>
-<polygon fill="none" stroke="#63b8ff" points="4832.5,-841.96 4836,-851.96 4839.5,-841.96 4832.5,-841.96"/>
+<path fill="none" stroke="#63b8ff" d="M5370.5,-886.7C5370.5,-872.53 5370.5,-857.77 5370.5,-844.08"/>
+<polygon fill="none" stroke="#63b8ff" points="5367,-886.89 5370.5,-896.89 5374,-886.89 5367,-886.89"/>
</a>
</g>
</g>
@@ -270,20 +286,22 @@
<g id="Node000058" class="node">
<title>Node58</title>
<g id="a_Node000058"><a xlink:href="classtvm_1_1Tuple.html" target="_top" xlink:title="Managed reference to TupleNode.">
-<polygon fill="white" stroke="transparent" points="5100,-791.5 4936,-791.5 4936,-690.5 5100,-690.5 5100,-791.5"/>
-<text text-anchor="start" x="4992" y="-779" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::Tuple</text>
-<text text-anchor="start" x="5016" y="-764" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
-<text text-anchor="start" x="4940" y="-749" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="4953" y="-749" font-family="Helvetica,sans-Serif" font-size="10.00">Tuple()</text>
-<text text-anchor="start" x="4940" y="-734" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="4953" y="-734" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
-<text text-anchor="start" x="4953" y="-723" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NULLABLE()</text>
-<text text-anchor="start" x="4940" y="-708" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="4953" y="-708" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="4953" y="-697" font-family="Helvetica,sans-Serif" font-size="10.00">_COW_METHOD()</text>
-<polygon fill="#666666" stroke="#666666" points="4936,-774 4936,-774 5100,-774 5100,-774 4936,-774"/>
-<polygon fill="#666666" stroke="#666666" points="4936,-759 4936,-759 5100,-759 5100,-759 4936,-759"/>
-<polygon fill="none" stroke="#666666" points="4936,-690.5 4936,-791.5 5100,-791.5 5100,-690.5 4936,-690.5"/>
+<polygon fill="white" stroke="transparent" points="5666,-844 5481,-844 5481,-728 5666,-728 5666,-844"/>
+<text text-anchor="start" x="5548" y="-832" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::Tuple</text>
+<text text-anchor="start" x="5572" y="-817" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
+<text text-anchor="start" x="5485.5" y="-802" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="5498.5" y="-802" font-family="Helvetica,sans-Serif" font-size="10.00">Tuple()</text>
+<text text-anchor="start" x="5485.5" y="-787" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="5498.5" y="-787" font-family="Helvetica,sans-Serif" font-size="10.00">Tuple()</text>
+<text text-anchor="start" x="5485.5" y="-772" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="5498.5" y="-772" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
+<text text-anchor="start" x="5498.5" y="-761" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NOTNULLABLE()</text>
+<text text-anchor="start" x="5485.5" y="-746" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="5498.5" y="-746" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="5498.5" y="-735" font-family="Helvetica,sans-Serif" font-size="10.00">_COW_METHOD()</text>
+<polygon fill="#666666" stroke="#666666" points="5481.5,-827 5481.5,-827 5666.5,-827 5666.5,-827 5481.5,-827"/>
+<polygon fill="#666666" stroke="#666666" points="5481.5,-812 5481.5,-812 5666.5,-812 5666.5,-812 5481.5,-812"/>
+<polygon fill="none" stroke="#666666" points="5481,-728 5481,-844 5666,-844 5666,-728 5481,-728"/>
</a>
</g>
</g>
@@ -291,8 +309,8 @@
<g id="edge57_Node000001_Node000058" class="edge">
<title>Node1->Node58</title>
<g id="a_edge57_Node000001_Node000058"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M4901.58,-845.31C4921.37,-827.74 4942.91,-808.63 4962.02,-791.68"/>
-<polygon fill="none" stroke="#63b8ff" points="4899.24,-842.7 4894.09,-851.96 4903.89,-847.94 4899.24,-842.7"/>
+<path fill="none" stroke="#63b8ff" d="M5449.3,-890.4C5467.65,-875.12 5487.06,-858.96 5504.93,-844.08"/>
+<polygon fill="none" stroke="#63b8ff" points="5446.95,-887.8 5441.5,-896.89 5451.42,-893.18 5446.95,-887.8"/>
</a>
</g>
</g>
@@ -300,20 +318,22 @@
<g id="Node000059" class="node">
<title>Node59</title>
<g id="a_Node000059"><a xlink:href="classtvm_1_1TupleGetItem.html" target="_top" xlink:title="Managed reference to TupleGetItemNode.">
-<polygon fill="white" stroke="transparent" points="5282,-791.5 5118,-791.5 5118,-690.5 5282,-690.5 5282,-791.5"/>
-<text text-anchor="start" x="5154.5" y="-779" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::TupleGetItem</text>
-<text text-anchor="start" x="5198" y="-764" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
-<text text-anchor="start" x="5122" y="-749" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="5135" y="-749" font-family="Helvetica,sans-Serif" font-size="10.00">TupleGetItem()</text>
-<text text-anchor="start" x="5122" y="-734" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="5135" y="-734" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
-<text text-anchor="start" x="5135" y="-723" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NULLABLE()</text>
-<text text-anchor="start" x="5122" y="-708" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="5135" y="-708" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="5135" y="-697" font-family="Helvetica,sans-Serif" font-size="10.00">_COW_METHOD()</text>
-<polygon fill="#666666" stroke="#666666" points="5118,-774 5118,-774 5282,-774 5282,-774 5118,-774"/>
-<polygon fill="#666666" stroke="#666666" points="5118,-759 5118,-759 5282,-759 5282,-759 5118,-759"/>
-<polygon fill="none" stroke="#666666" points="5118,-690.5 5118,-791.5 5282,-791.5 5282,-690.5 5118,-690.5"/>
+<polygon fill="white" stroke="transparent" points="5869,-844 5684,-844 5684,-728 5869,-728 5869,-844"/>
+<text text-anchor="start" x="5731.5" y="-832" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::TupleGetItem</text>
+<text text-anchor="start" x="5775" y="-817" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
+<text text-anchor="start" x="5688.5" y="-802" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="5701.5" y="-802" font-family="Helvetica,sans-Serif" font-size="10.00">TupleGetItem()</text>
+<text text-anchor="start" x="5688.5" y="-787" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="5701.5" y="-787" font-family="Helvetica,sans-Serif" font-size="10.00">TupleGetItem()</text>
+<text text-anchor="start" x="5688.5" y="-772" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="5701.5" y="-772" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
+<text text-anchor="start" x="5701.5" y="-761" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NOTNULLABLE()</text>
+<text text-anchor="start" x="5688.5" y="-746" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="5701.5" y="-746" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="5701.5" y="-735" font-family="Helvetica,sans-Serif" font-size="10.00">_COW_METHOD()</text>
+<polygon fill="#666666" stroke="#666666" points="5684.5,-827 5684.5,-827 5869.5,-827 5869.5,-827 5684.5,-827"/>
+<polygon fill="#666666" stroke="#666666" points="5684.5,-812 5684.5,-812 5869.5,-812 5869.5,-812 5684.5,-812"/>
+<polygon fill="none" stroke="#666666" points="5684,-728 5684,-844 5869,-844 5869,-728 5684,-728"/>
</a>
</g>
</g>
@@ -321,8 +341,8 @@
<g id="edge58_Node000001_Node000059" class="edge">
<title>Node1->Node59</title>
<g id="a_edge58_Node000001_Node000059"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M4928.06,-883.14C4982.69,-868.87 5052.15,-846.8 5109,-816 5121.53,-809.21 5134.02,-800.6 5145.54,-791.68"/>
-<polygon fill="none" stroke="#63b8ff" points="4926.86,-879.84 4918.04,-885.72 4928.6,-886.62 4926.86,-879.84"/>
+<path fill="none" stroke="#63b8ff" d="M5473.23,-932.8C5533.7,-916.99 5610.6,-893.08 5674.5,-861 5684.28,-856.09 5694.12,-850.28 5703.64,-844.1"/>
+<polygon fill="none" stroke="#63b8ff" points="5472.1,-929.47 5463.29,-935.36 5473.84,-936.25 5472.1,-929.47"/>
</a>
</g>
</g>
@@ -330,21 +350,23 @@
<g id="Node000060" class="node">
<title>Node60</title>
<g id="a_Node000060"><a xlink:href="classtvm_1_1TypedExpr.html" target="_top" xlink:title="Typed reference/view over an expression whose result type is a specific Type subtype.">
-<polygon fill="white" stroke="transparent" points="5464,-789.5 5300,-789.5 5300,-692.5 5464,-692.5 5464,-789.5"/>
-<text text-anchor="start" x="5315.5" y="-777" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::TypedExpr< Expected</text>
-<text text-anchor="start" x="5365" y="-766" font-family="Helvetica,sans-Serif" font-size="10.00">Type ></text>
-<text text-anchor="start" x="5304" y="-751" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="5317" y="-751" font-family="Helvetica,sans-Serif" font-size="10.00">_type_container_is</text>
-<text text-anchor="start" x="5317" y="-740" font-family="Helvetica,sans-Serif" font-size="10.00">_exact</text>
-<text text-anchor="start" x="5304" y="-725" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="5317" y="-725" font-family="Helvetica,sans-Serif" font-size="10.00">ty()</text>
-<text text-anchor="start" x="5304" y="-710" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="5317" y="-710" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
-<text text-anchor="start" x="5317" y="-699" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NULLABLE()</text>
-<polygon fill="#666666" stroke="#666666" points="5300,-761 5300,-761 5464,-761 5464,-761 5300,-761"/>
-<polygon fill="#666666" stroke="#666666" points="5300,-735 5300,-735 5315,-735 5315,-735 5300,-735"/>
-<polygon fill="#666666" stroke="#666666" points="5315,-735 5315,-735 5464,-735 5464,-735 5315,-735"/>
-<polygon fill="none" stroke="#666666" points="5300,-692.5 5300,-789.5 5464,-789.5 5464,-692.5 5300,-692.5"/>
+<polygon fill="white" stroke="transparent" points="6072,-842 5887,-842 5887,-730 6072,-730 6072,-842"/>
+<text text-anchor="start" x="5913.5" y="-830" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::TypedExpr< Expected</text>
+<text text-anchor="start" x="5963" y="-819" font-family="Helvetica,sans-Serif" font-size="10.00">Type ></text>
+<text text-anchor="start" x="5891.5" y="-804" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="5904.5" y="-804" font-family="Helvetica,sans-Serif" font-size="10.00">_type_container_is</text>
+<text text-anchor="start" x="5904.5" y="-793" font-family="Helvetica,sans-Serif" font-size="10.00">_exact</text>
+<text text-anchor="start" x="5891.5" y="-778" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="5904.5" y="-778" font-family="Helvetica,sans-Serif" font-size="10.00">ty()</text>
+<text text-anchor="start" x="5891.5" y="-763" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="5904.5" y="-763" font-family="Helvetica,sans-Serif" font-size="10.00">TypedExpr()</text>
+<text text-anchor="start" x="5891.5" y="-748" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="5904.5" y="-748" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
+<text text-anchor="start" x="5904.5" y="-737" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NOTNULLABLE()</text>
+<polygon fill="#666666" stroke="#666666" points="5887.5,-814 5887.5,-814 6072.5,-814 6072.5,-814 5887.5,-814"/>
+<polygon fill="#666666" stroke="#666666" points="5887.5,-788 5887.5,-788 5902.5,-788 5902.5,-788 5887.5,-788"/>
+<polygon fill="#666666" stroke="#666666" points="5902.5,-788 5902.5,-788 6072.5,-788 6072.5,-788 5902.5,-788"/>
+<polygon fill="none" stroke="#666666" points="5887,-730 5887,-842 6072,-842 6072,-730 5887,-730"/>
</a>
</g>
</g>
@@ -352,8 +374,8 @@
<g id="edge59_Node000001_Node000060" class="edge">
<title>Node1->Node60</title>
<g id="a_edge59_Node000001_Node000060"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M4928.33,-898.96C5023.24,-891.33 5173.36,-870.86 5291,-816 5305.39,-809.29 5319.47,-799.8 5332.07,-789.84"/>
-<polygon fill="none" stroke="#63b8ff" points="4927.88,-895.48 4918.18,-899.74 4928.42,-902.46 4927.88,-895.48"/>
+<path fill="none" stroke="#63b8ff" d="M5473.32,-950.02C5578.57,-940.89 5745.02,-918.02 5877.5,-861 5889.26,-855.94 5900.97,-849.33 5912.04,-842.14"/>
+<polygon fill="none" stroke="#63b8ff" points="5473,-946.53 5463.33,-950.86 5473.59,-953.51 5473,-946.53"/>
</a>
</g>
</g>
@@ -361,25 +383,27 @@
<g id="Node000061" class="node">
<title>Node61</title>
<g id="a_Node000061"><a xlink:href="classtvm_1_1Var.html" target="_top" xlink:title="Managed reference to VarNode.">
-<polygon fill="white" stroke="transparent" points="5646,-808.5 5482,-808.5 5482,-673.5 5646,-673.5 5646,-808.5"/>
-<text text-anchor="start" x="5543" y="-796" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::Var</text>
-<text text-anchor="start" x="5562" y="-781" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
-<text text-anchor="start" x="5486" y="-766" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="5499" y="-766" font-family="Helvetica,sans-Serif" font-size="10.00">Var()</text>
-<text text-anchor="start" x="5486" y="-751" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="5499" y="-751" font-family="Helvetica,sans-Serif" font-size="10.00">CopyWithName()</text>
-<text text-anchor="start" x="5486" y="-736" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="5499" y="-736" font-family="Helvetica,sans-Serif" font-size="10.00">CopyWithSuffix()</text>
-<text text-anchor="start" x="5486" y="-721" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="5499" y="-721" font-family="Helvetica,sans-Serif" font-size="10.00">CopyWithDType()</text>
-<text text-anchor="start" x="5486" y="-706" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="5499" y="-706" font-family="Helvetica,sans-Serif" font-size="10.00">CopyWithType()</text>
-<text text-anchor="start" x="5486" y="-691" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="5499" y="-691" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
-<text text-anchor="start" x="5499" y="-680" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NULLABLE()</text>
-<polygon fill="#666666" stroke="#666666" points="5482,-791 5482,-791 5646,-791 5646,-791 5482,-791"/>
-<polygon fill="#666666" stroke="#666666" points="5482,-776 5482,-776 5646,-776 5646,-776 5482,-776"/>
-<polygon fill="none" stroke="#666666" points="5482,-673.5 5482,-808.5 5646,-808.5 5646,-673.5 5482,-673.5"/>
+<polygon fill="white" stroke="transparent" points="6275,-861 6090,-861 6090,-711 6275,-711 6275,-861"/>
+<text text-anchor="start" x="6162" y="-849" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::Var</text>
+<text text-anchor="start" x="6181" y="-834" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
+<text text-anchor="start" x="6094.5" y="-819" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="6107.5" y="-819" font-family="Helvetica,sans-Serif" font-size="10.00">Var()</text>
+<text text-anchor="start" x="6094.5" y="-804" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="6107.5" y="-804" font-family="Helvetica,sans-Serif" font-size="10.00">CopyWithName()</text>
+<text text-anchor="start" x="6094.5" y="-789" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="6107.5" y="-789" font-family="Helvetica,sans-Serif" font-size="10.00">CopyWithSuffix()</text>
+<text text-anchor="start" x="6094.5" y="-774" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="6107.5" y="-774" font-family="Helvetica,sans-Serif" font-size="10.00">CopyWithDType()</text>
+<text text-anchor="start" x="6094.5" y="-759" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="6107.5" y="-759" font-family="Helvetica,sans-Serif" font-size="10.00">CopyWithType()</text>
+<text text-anchor="start" x="6094.5" y="-744" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="6107.5" y="-744" font-family="Helvetica,sans-Serif" font-size="10.00">Var()</text>
+<text text-anchor="start" x="6094.5" y="-729" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="6107.5" y="-729" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
+<text text-anchor="start" x="6107.5" y="-718" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NOTNULLABLE()</text>
+<polygon fill="#666666" stroke="#666666" points="6090.5,-844 6090.5,-844 6275.5,-844 6275.5,-844 6090.5,-844"/>
+<polygon fill="#666666" stroke="#666666" points="6090.5,-829 6090.5,-829 6275.5,-829 6275.5,-829 6090.5,-829"/>
+<polygon fill="none" stroke="#666666" points="6090,-711 6090,-861 6275,-861 6275,-711 6090,-711"/>
</a>
</g>
</g>
@@ -387,8 +411,8 @@
<g id="edge60_Node000001_Node000061" class="edge">
<title>Node1->Node61</title>
<g id="a_edge60_Node000001_Node000061"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M4928.53,-896.95C5080.87,-885.15 5377.16,-857.61 5473,-816 5477.95,-813.85 5482.85,-811.35 5487.66,-808.6"/>
-<polygon fill="none" stroke="#63b8ff" points="4927.97,-893.49 4918.26,-897.74 4928.5,-900.47 4927.97,-893.49"/>
+<path fill="none" stroke="#63b8ff" d="M5473.42,-948.46C5642.83,-935.02 5972.43,-904.21 6080.5,-861 6083.65,-859.74 6086.79,-858.36 6089.91,-856.89"/>
+<polygon fill="none" stroke="#63b8ff" points="5472.94,-944.99 5463.25,-949.26 5473.49,-951.97 5472.94,-944.99"/>
</a>
</g>
</g>
@@ -396,20 +420,22 @@
<g id="Node000064" class="node">
<title>Node64</title>
<g id="a_Node000064"><a xlink:href="classtvm_1_1relax_1_1If.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="transparent" points="5828,-791.5 5664,-791.5 5664,-690.5 5828,-690.5 5828,-791.5"/>
-<text text-anchor="start" x="5714" y="-779" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::If</text>
-<text text-anchor="start" x="5744" y="-764" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
-<text text-anchor="start" x="5668" y="-749" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="5681" y="-749" font-family="Helvetica,sans-Serif" font-size="10.00">If()</text>
-<text text-anchor="start" x="5668" y="-734" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="5681" y="-734" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
-<text text-anchor="start" x="5681" y="-723" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NULLABLE()</text>
-<text text-anchor="start" x="5668" y="-708" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="5681" y="-708" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="5681" y="-697" font-family="Helvetica,sans-Serif" font-size="10.00">_COW_METHOD()</text>
-<polygon fill="#666666" stroke="#666666" points="5664,-774 5664,-774 5828,-774 5828,-774 5664,-774"/>
-<polygon fill="#666666" stroke="#666666" points="5664,-759 5664,-759 5828,-759 5828,-759 5664,-759"/>
-<polygon fill="none" stroke="#666666" points="5664,-690.5 5664,-791.5 5828,-791.5 5828,-690.5 5664,-690.5"/>
+<polygon fill="white" stroke="transparent" points="6478,-844 6293,-844 6293,-728 6478,-728 6478,-844"/>
+<text text-anchor="start" x="6354" y="-832" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::If</text>
+<text text-anchor="start" x="6384" y="-817" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
+<text text-anchor="start" x="6297.5" y="-802" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="6310.5" y="-802" font-family="Helvetica,sans-Serif" font-size="10.00">If()</text>
+<text text-anchor="start" x="6297.5" y="-787" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="6310.5" y="-787" font-family="Helvetica,sans-Serif" font-size="10.00">If()</text>
+<text text-anchor="start" x="6297.5" y="-772" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="6310.5" y="-772" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
+<text text-anchor="start" x="6310.5" y="-761" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NOTNULLABLE()</text>
+<text text-anchor="start" x="6297.5" y="-746" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="6310.5" y="-746" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="6310.5" y="-735" font-family="Helvetica,sans-Serif" font-size="10.00">_COW_METHOD()</text>
+<polygon fill="#666666" stroke="#666666" points="6293.5,-827 6293.5,-827 6478.5,-827 6478.5,-827 6293.5,-827"/>
+<polygon fill="#666666" stroke="#666666" points="6293.5,-812 6293.5,-812 6478.5,-812 6478.5,-812 6293.5,-812"/>
+<polygon fill="none" stroke="#666666" points="6293,-728 6293,-844 6478,-844 6478,-728 6293,-728"/>
</a>
</g>
</g>
@@ -417,8 +443,8 @@
<g id="edge63_Node000001_Node000064" class="edge">
<title>Node1->Node64</title>
<g id="a_edge63_Node000001_Node000064"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M4928.16,-900.23C5113.68,-892.58 5525.54,-869.91 5655,-816 5669.1,-810.13 5682.75,-801.35 5695,-791.86"/>
-<polygon fill="none" stroke="#63b8ff" points="4928,-896.73 4918.15,-900.64 4928.28,-903.73 4928,-896.73"/>
+<path fill="none" stroke="#63b8ff" d="M5473.6,-951.99C5680.22,-942.85 6137.69,-916.83 6283.5,-861 6294.84,-856.66 6306.06,-850.72 6316.67,-844.08"/>
+<polygon fill="none" stroke="#63b8ff" points="5473.19,-948.5 5463.35,-952.43 5473.49,-955.49 5473.19,-948.5"/>
</a>
</g>
</g>
@@ -426,22 +452,24 @@
<g id="Node000065" class="node">
<title>Node65</title>
<g id="a_Node000065"><a xlink:href="classtvm_1_1relax_1_1SeqExpr.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="transparent" points="6010,-799 5846,-799 5846,-683 6010,-683 6010,-799"/>
-<text text-anchor="start" x="5879.5" y="-787" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::SeqExpr</text>
-<text text-anchor="start" x="5926" y="-772" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
-<text text-anchor="start" x="5850" y="-757" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="5863" y="-757" font-family="Helvetica,sans-Serif" font-size="10.00">SeqExpr()</text>
-<text text-anchor="start" x="5850" y="-742" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="5863" y="-742" font-family="Helvetica,sans-Serif" font-size="10.00">SeqExpr()</text>
-<text text-anchor="start" x="5850" y="-727" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="5863" y="-727" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
-<text text-anchor="start" x="5863" y="-716" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NULLABLE()</text>
-<text text-anchor="start" x="5850" y="-701" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="5863" y="-701" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="5863" y="-690" font-family="Helvetica,sans-Serif" font-size="10.00">_COW_METHOD()</text>
-<polygon fill="#666666" stroke="#666666" points="5846,-782 5846,-782 6010,-782 6010,-782 5846,-782"/>
-<polygon fill="#666666" stroke="#666666" points="5846,-767 5846,-767 6010,-767 6010,-767 5846,-767"/>
-<polygon fill="none" stroke="#666666" points="5846,-683 5846,-799 6010,-799 6010,-683 5846,-683"/>
+<polygon fill="white" stroke="transparent" points="6681,-851.5 6496,-851.5 6496,-720.5 6681,-720.5 6681,-851.5"/>
+<text text-anchor="start" x="6540.5" y="-839" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::SeqExpr</text>
+<text text-anchor="start" x="6587" y="-824" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
+<text text-anchor="start" x="6500.5" y="-809" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="6513.5" y="-809" font-family="Helvetica,sans-Serif" font-size="10.00">SeqExpr()</text>
+<text text-anchor="start" x="6500.5" y="-794" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="6513.5" y="-794" font-family="Helvetica,sans-Serif" font-size="10.00">SeqExpr()</text>
+<text text-anchor="start" x="6500.5" y="-779" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="6513.5" y="-779" font-family="Helvetica,sans-Serif" font-size="10.00">SeqExpr()</text>
+<text text-anchor="start" x="6500.5" y="-764" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="6513.5" y="-764" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
+<text text-anchor="start" x="6513.5" y="-753" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NOTNULLABLE()</text>
+<text text-anchor="start" x="6500.5" y="-738" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="6513.5" y="-738" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="6513.5" y="-727" font-family="Helvetica,sans-Serif" font-size="10.00">_COW_METHOD()</text>
+<polygon fill="#666666" stroke="#666666" points="6496.5,-834 6496.5,-834 6681.5,-834 6681.5,-834 6496.5,-834"/>
+<polygon fill="#666666" stroke="#666666" points="6496.5,-819 6496.5,-819 6681.5,-819 6681.5,-819 6496.5,-819"/>
+<polygon fill="none" stroke="#666666" points="6496,-720.5 6496,-851.5 6681,-851.5 6681,-720.5 6496,-720.5"/>
</a>
</g>
</g>
@@ -449,8 +477,8 @@
<g id="edge64_Node000001_Node000065" class="edge">
<title>Node1->Node65</title>
<g id="a_edge64_Node000001_Node000065"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M4928.11,-902.31C5143.35,-898.44 5673.47,-882.26 5837,-816 5847.57,-811.72 5857.87,-805.77 5867.51,-799.09"/>
-<polygon fill="none" stroke="#63b8ff" points="4928.03,-898.81 4918.1,-902.49 4928.16,-905.81 4928.03,-898.81"/>
+<path fill="none" stroke="#63b8ff" d="M5473.17,-954.26C5712.72,-949.09 6302.24,-929.57 6486.5,-861 6493.47,-858.41 6500.39,-855.2 6507.15,-851.58"/>
+<polygon fill="none" stroke="#63b8ff" points="5472.99,-950.77 5463.06,-954.48 5473.13,-957.76 5472.99,-950.77"/>
</a>
</g>
</g>
@@ -458,20 +486,22 @@
<g id="Node000066" class="node">
<title>Node66</title>
<g id="a_Node000066"><a xlink:href="classtvm_1_1relax_1_1ShapeExpr.html" target="_top" xlink:title=" ">
-<polygon fill="white" stroke="transparent" points="6192,-791.5 6028,-791.5 6028,-690.5 6192,-690.5 6192,-791.5"/>
-<text text-anchor="start" x="6055.5" y="-779" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::ShapeExpr</text>
-<text text-anchor="start" x="6108" y="-764" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
-<text text-anchor="start" x="6032" y="-749" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="6045" y="-749" font-family="Helvetica,sans-Serif" font-size="10.00">ShapeExpr()</text>
-<text text-anchor="start" x="6032" y="-734" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="6045" y="-734" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
-<text text-anchor="start" x="6045" y="-723" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NULLABLE()</text>
-<text text-anchor="start" x="6032" y="-708" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="6045" y="-708" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="6045" y="-697" font-family="Helvetica,sans-Serif" font-size="10.00">_COW_METHOD()</text>
-<polygon fill="#666666" stroke="#666666" points="6028,-774 6028,-774 6192,-774 6192,-774 6028,-774"/>
-<polygon fill="#666666" stroke="#666666" points="6028,-759 6028,-759 6192,-759 6192,-759 6028,-759"/>
-<polygon fill="none" stroke="#666666" points="6028,-690.5 6028,-791.5 6192,-791.5 6192,-690.5 6028,-690.5"/>
+<polygon fill="white" stroke="transparent" points="6884,-844 6699,-844 6699,-728 6884,-728 6884,-844"/>
+<text text-anchor="start" x="6737.5" y="-832" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::relax::ShapeExpr</text>
+<text text-anchor="start" x="6790" y="-817" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
+<text text-anchor="start" x="6703.5" y="-802" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="6716.5" y="-802" font-family="Helvetica,sans-Serif" font-size="10.00">ShapeExpr()</text>
+<text text-anchor="start" x="6703.5" y="-787" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="6716.5" y="-787" font-family="Helvetica,sans-Serif" font-size="10.00">ShapeExpr()</text>
+<text text-anchor="start" x="6703.5" y="-772" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="6716.5" y="-772" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
+<text text-anchor="start" x="6716.5" y="-761" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NOTNULLABLE()</text>
+<text text-anchor="start" x="6703.5" y="-746" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="6716.5" y="-746" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="6716.5" y="-735" font-family="Helvetica,sans-Serif" font-size="10.00">_COW_METHOD()</text>
+<polygon fill="#666666" stroke="#666666" points="6699.5,-827 6699.5,-827 6884.5,-827 6884.5,-827 6699.5,-827"/>
+<polygon fill="#666666" stroke="#666666" points="6699.5,-812 6699.5,-812 6884.5,-812 6884.5,-812 6699.5,-812"/>
+<polygon fill="none" stroke="#666666" points="6699,-728 6699,-844 6884,-844 6884,-728 6699,-728"/>
</a>
</g>
</g>
@@ -479,8 +509,8 @@
<g id="edge65_Node000001_Node000066" class="edge">
<title>Node1->Node66</title>
<g id="a_edge65_Node000001_Node000066"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M4928.43,-903.76C5171.08,-903.33 5821.13,-894.64 6019,-816 6033.38,-810.28 6047.24,-801.44 6059.63,-791.83"/>
-<polygon fill="none" stroke="#63b8ff" points="4928.23,-900.26 4918.23,-903.77 4928.24,-907.26 4928.23,-900.26"/>
+<path fill="none" stroke="#63b8ff" d="M5473.54,-955.83C5743.63,-954.25 6466.57,-942.32 6689.5,-861 6701.11,-856.76 6712.57,-850.79 6723.37,-844.06"/>
+<polygon fill="none" stroke="#63b8ff" points="5473.33,-952.34 5463.35,-955.89 5473.37,-959.34 5473.33,-952.34"/>
</a>
</g>
</g>
@@ -488,13 +518,13 @@
<g id="Node000002" class="node">
<title>Node2</title>
<g id="a_Node000002"><a xlink:title=" ">
-<polygon fill="white" stroke="transparent" points="4873,-1042 4799,-1042 4799,-993 4873,-993 4873,-1042"/>
-<text text-anchor="start" x="4804" y="-1029.5" font-family="Helvetica,sans-Serif" font-size="10.00">ffi::ObjectRef</text>
-<text text-anchor="start" x="4834" y="-1014.5" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
-<text text-anchor="start" x="4834" y="-999.5" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
-<polygon fill="#666666" stroke="#666666" points="4799,-1024.5 4799,-1024.5 4873,-1024.5 4873,-1024.5 4799,-1024.5"/>
-<polygon fill="#666666" stroke="#666666" points="4799,-1009.5 4799,-1009.5 4873,-1009.5 4873,-1009.5 4799,-1009.5"/>
-<polygon fill="none" stroke="#666666" points="4799,-993 4799,-1042 4873,-1042 4873,-993 4799,-993"/>
+<polygon fill="white" stroke="transparent" points="5407.5,-1102 5333.5,-1102 5333.5,-1053 5407.5,-1053 5407.5,-1102"/>
+<text text-anchor="start" x="5338.5" y="-1089.5" font-family="Helvetica,sans-Serif" font-size="10.00">ffi::ObjectRef</text>
+<text text-anchor="start" x="5368.5" y="-1074.5" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
+<text text-anchor="start" x="5368.5" y="-1059.5" font-family="Helvetica,sans-Serif" font-size="10.00">Â </text>
+<polygon fill="#666666" stroke="#666666" points="5333.5,-1084.5 5333.5,-1084.5 5407.5,-1084.5 5407.5,-1084.5 5333.5,-1084.5"/>
+<polygon fill="#666666" stroke="#666666" points="5333.5,-1069.5 5333.5,-1069.5 5407.5,-1069.5 5407.5,-1069.5 5333.5,-1069.5"/>
+<polygon fill="none" stroke="#666666" points="5333.5,-1053 5333.5,-1102 5407.5,-1102 5407.5,-1053 5333.5,-1053"/>
</a>
</g>
</g>
@@ -502,8 +532,8 @@
<g id="edge1_Node000001_Node000002" class="edge">
<title>Node2->Node1</title>
<g id="a_edge1_Node000001_Node000002"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M4836,-982.85C4836,-974.79 4836,-966 4836,-957.32"/>
-<polygon fill="none" stroke="#63b8ff" points="4832.5,-982.96 4836,-992.96 4839.5,-982.96 4832.5,-982.96"/>
+<path fill="none" stroke="#63b8ff" d="M5370.5,-1042.59C5370.5,-1034.71 5370.5,-1026.09 5370.5,-1017.47"/>
+<polygon fill="none" stroke="#63b8ff" points="5367,-1042.8 5370.5,-1052.8 5374,-1042.8 5367,-1042.8"/>
</a>
</g>
</g>
@@ -511,24 +541,26 @@
<g id="Node000004" class="node">
<title>Node4</title>
<g id="a_Node000004"><a xlink:href="classtvm_1_1PrimExpr.html" target="_top" xlink:title="Typed reference/view over any Expr whose ExprNode::ty is PrimType.">
-<polygon fill="white" stroke="transparent" points="3440,-575.5 3276,-575.5 3276,-459.5 3440,-459.5 3440,-575.5"/>
-<text text-anchor="start" x="3323" y="-563.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::PrimExpr</text>
-<text text-anchor="start" x="3280" y="-548.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="3293" y="-548.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_container_is</text>
-<text text-anchor="start" x="3293" y="-537.5" font-family="Helvetica,sans-Serif" font-size="10.00">_exact</text>
-<text text-anchor="start" x="3280" y="-522.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="3293" y="-522.5" font-family="Helvetica,sans-Serif" font-size="10.00">PrimExpr()</text>
-<text text-anchor="start" x="3280" y="-507.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="3293" y="-507.5" font-family="Helvetica,sans-Serif" font-size="10.00">PrimExpr()</text>
-<text text-anchor="start" x="3280" y="-492.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="3293" y="-492.5" font-family="Helvetica,sans-Serif" font-size="10.00">PrimExpr()</text>
-<text text-anchor="start" x="3280" y="-477.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="3293" y="-477.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
-<text text-anchor="start" x="3293" y="-466.5" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NULLABLE()</text>
-<polygon fill="#666666" stroke="#666666" points="3276,-558.5 3276,-558.5 3440,-558.5 3440,-558.5 3276,-558.5"/>
-<polygon fill="#666666" stroke="#666666" points="3276,-532.5 3276,-532.5 3291,-532.5 3291,-532.5 3276,-532.5"/>
-<polygon fill="#666666" stroke="#666666" points="3291,-532.5 3291,-532.5 3440,-532.5 3440,-532.5 3291,-532.5"/>
-<polygon fill="none" stroke="#666666" points="3276,-459.5 3276,-575.5 3440,-575.5 3440,-459.5 3276,-459.5"/>
+<polygon fill="white" stroke="transparent" points="3839,-620.5 3654,-620.5 3654,-489.5 3839,-489.5 3839,-620.5"/>
+<text text-anchor="start" x="3712" y="-608" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::PrimExpr</text>
+<text text-anchor="start" x="3658.5" y="-593" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="3671.5" y="-593" font-family="Helvetica,sans-Serif" font-size="10.00">_type_container_is</text>
+<text text-anchor="start" x="3671.5" y="-582" font-family="Helvetica,sans-Serif" font-size="10.00">_exact</text>
+<text text-anchor="start" x="3658.5" y="-567" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="3671.5" y="-567" font-family="Helvetica,sans-Serif" font-size="10.00">PrimExpr()</text>
+<text text-anchor="start" x="3658.5" y="-552" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="3671.5" y="-552" font-family="Helvetica,sans-Serif" font-size="10.00">PrimExpr()</text>
+<text text-anchor="start" x="3658.5" y="-537" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="3671.5" y="-537" font-family="Helvetica,sans-Serif" font-size="10.00">PrimExpr()</text>
+<text text-anchor="start" x="3658.5" y="-522" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="3671.5" y="-522" font-family="Helvetica,sans-Serif" font-size="10.00">PrimExpr()</text>
+<text text-anchor="start" x="3658.5" y="-507" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="3671.5" y="-507" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
+<text text-anchor="start" x="3671.5" y="-496" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NOTNULLABLE()</text>
+<polygon fill="#666666" stroke="#666666" points="3654.5,-603 3654.5,-603 3839.5,-603 3839.5,-603 3654.5,-603"/>
+<polygon fill="#666666" stroke="#666666" points="3654.5,-577 3654.5,-577 3669.5,-577 3669.5,-577 3654.5,-577"/>
+<polygon fill="#666666" stroke="#666666" points="3669.5,-577 3669.5,-577 3839.5,-577 3839.5,-577 3669.5,-577"/>
+<polygon fill="none" stroke="#666666" points="3654,-489.5 3654,-620.5 3839,-620.5 3839,-489.5 3654,-489.5"/>
</a>
</g>
</g>
@@ -536,8 +568,8 @@
<g id="edge3_Node000003_Node000004" class="edge">
<title>Node3->Node4</title>
<g id="a_edge3_Node000003_Node000004"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M3427.69,-688.14C3413.83,-654.39 3395.73,-610.34 3381.46,-575.59"/>
-<polygon fill="none" stroke="#63b8ff" points="3424.63,-689.9 3431.67,-697.82 3431.11,-687.24 3424.63,-689.9"/>
+<path fill="none" stroke="#63b8ff" d="M3822.23,-726.02C3807.89,-693.82 3790.1,-653.89 3775.37,-620.83"/>
+<polygon fill="none" stroke="#63b8ff" points="3819.1,-727.6 3826.37,-735.31 3825.5,-724.75 3819.1,-727.6"/>
</a>
</g>
</g>
@@ -545,23 +577,25 @@
<g id="Node000005" class="node">
<title>Node5</title>
<g id="a_Node000005"><a xlink:href="classtvm_1_1FloatImm.html" target="_top" xlink:title="Managed reference class to FloatImmNode.">
-<polygon fill="white" stroke="transparent" points="164,-324 0,-324 0,-212 164,-212 164,-324"/>
-<text text-anchor="start" x="45.5" y="-312" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::FloatImm</text>
-<text text-anchor="start" x="4" y="-297" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="17" y="-297" font-family="Helvetica,sans-Serif" font-size="10.00">_type_container_is</text>
-<text text-anchor="start" x="17" y="-286" font-family="Helvetica,sans-Serif" font-size="10.00">_exact</text>
-<text text-anchor="start" x="4" y="-271" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="17" y="-271" font-family="Helvetica,sans-Serif" font-size="10.00">FloatImm()</text>
-<text text-anchor="start" x="4" y="-256" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="17" y="-256" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
-<text text-anchor="start" x="17" y="-245" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NULLABLE()</text>
-<text text-anchor="start" x="4" y="-230" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="17" y="-230" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="17" y="-219" font-family="Helvetica,sans-Serif" font-size="10.00">_COW_METHOD()</text>
-<polygon fill="#666666" stroke="#666666" points="0,-307 0,-307 164,-307 164,-307 0,-307"/>
-<polygon fill="#666666" stroke="#666666" points="0,-281 0,-281 15,-281 15,-281 0,-281"/>
-<polygon fill="#666666" stroke="#666666" points="15,-281 15,-281 164,-281 164,-281 15,-281"/>
-<polygon fill="none" stroke="#666666" points="0,-212 0,-324 164,-324 164,-212 0,-212"/>
+<polygon fill="white" stroke="transparent" points="185,-354 0,-354 0,-227 185,-227 185,-354"/>
+<text text-anchor="start" x="56.5" y="-341.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::FloatImm</text>
+<text text-anchor="start" x="4.5" y="-326.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="17.5" y="-326.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_container_is</text>
+<text text-anchor="start" x="17.5" y="-315.5" font-family="Helvetica,sans-Serif" font-size="10.00">_exact</text>
+<text text-anchor="start" x="4.5" y="-300.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="17.5" y="-300.5" font-family="Helvetica,sans-Serif" font-size="10.00">FloatImm()</text>
+<text text-anchor="start" x="4.5" y="-285.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="17.5" y="-285.5" font-family="Helvetica,sans-Serif" font-size="10.00">FloatImm()</text>
+<text text-anchor="start" x="4.5" y="-270.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="17.5" y="-270.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
+<text text-anchor="start" x="17.5" y="-259.5" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NOTNULLABLE()</text>
+<text text-anchor="start" x="4.5" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="17.5" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="17.5" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">_COW_METHOD()</text>
+<polygon fill="#666666" stroke="#666666" points="0.5,-336.5 0.5,-336.5 185.5,-336.5 185.5,-336.5 0.5,-336.5"/>
+<polygon fill="#666666" stroke="#666666" points="0.5,-310.5 0.5,-310.5 15.5,-310.5 15.5,-310.5 0.5,-310.5"/>
+<polygon fill="#666666" stroke="#666666" points="15.5,-310.5 15.5,-310.5 185.5,-310.5 185.5,-310.5 15.5,-310.5"/>
+<polygon fill="none" stroke="#666666" points="0,-227 0,-354 185,-354 185,-227 0,-227"/>
</a>
</g>
</g>
@@ -569,8 +603,8 @@
<g id="edge4_Node000004_Node000005" class="edge">
<title>Node4->Node5</title>
<g id="a_edge4_Node000004_Node000005"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M3265.52,-516.42C2771.87,-515.41 459.17,-503.51 173,-369 151.76,-359.01 133.22,-341.57 118.53,-324.02"/>
-<polygon fill="none" stroke="#63b8ff" points="3265.79,-519.92 3275.8,-516.44 3265.8,-512.92 3265.79,-519.92"/>
+<path fill="none" stroke="#63b8ff" d="M3643.7,-554.11C3093.94,-554.09 514.14,-546.08 193.5,-399 171.62,-388.96 152.19,-371.8 136.36,-354.1"/>
+<polygon fill="none" stroke="#63b8ff" points="3643.98,-557.61 3653.98,-554.11 3643.98,-550.61 3643.98,-557.61"/>
</a>
</g>
</g>
@@ -578,18 +612,18 @@
<g id="Node000006" class="node">
<title>Node6</title>
<g id="a_Node000006"><a xlink:href="classtvm_1_1IntExpr.html" target="_top" xlink:title="View over a scalar signed or unsigned integer expression of any bit width.">
-<polygon fill="white" stroke="transparent" points="346,-303.5 182,-303.5 182,-232.5 346,-232.5 346,-303.5"/>
-<text text-anchor="start" x="233.5" y="-291" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::IntExpr</text>
-<text text-anchor="start" x="186" y="-276" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="199" y="-276" font-family="Helvetica,sans-Serif" font-size="10.00">_type_container_is</text>
-<text text-anchor="start" x="199" y="-265" font-family="Helvetica,sans-Serif" font-size="10.00">_exact</text>
-<text text-anchor="start" x="186" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="199" y="-250" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
-<text text-anchor="start" x="199" y="-239" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NULLABLE()</text>
-<polygon fill="#666666" stroke="#666666" points="182,-286 182,-286 346,-286 346,-286 182,-286"/>
-<polygon fill="#666666" stroke="#666666" points="182,-260 182,-260 197,-260 197,-260 182,-260"/>
-<polygon fill="#666666" stroke="#666666" points="197,-260 197,-260 346,-260 346,-260 197,-260"/>
-<polygon fill="none" stroke="#666666" points="182,-232.5 182,-303.5 346,-303.5 346,-232.5 182,-232.5"/>
+<polygon fill="white" stroke="transparent" points="388,-326 203,-326 203,-255 388,-255 388,-326"/>
+<text text-anchor="start" x="265.5" y="-313.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::IntExpr</text>
+<text text-anchor="start" x="207.5" y="-298.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="220.5" y="-298.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_container_is</text>
+<text text-anchor="start" x="220.5" y="-287.5" font-family="Helvetica,sans-Serif" font-size="10.00">_exact</text>
+<text text-anchor="start" x="207.5" y="-272.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="220.5" y="-272.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
+<text text-anchor="start" x="220.5" y="-261.5" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NOTNULLABLE()</text>
+<polygon fill="#666666" stroke="#666666" points="203.5,-308.5 203.5,-308.5 388.5,-308.5 388.5,-308.5 203.5,-308.5"/>
+<polygon fill="#666666" stroke="#666666" points="203.5,-282.5 203.5,-282.5 218.5,-282.5 218.5,-282.5 203.5,-282.5"/>
+<polygon fill="#666666" stroke="#666666" points="218.5,-282.5 218.5,-282.5 388.5,-282.5 388.5,-282.5 218.5,-282.5"/>
+<polygon fill="none" stroke="#666666" points="203,-255 203,-326 388,-326 388,-255 203,-255"/>
</a>
</g>
</g>
@@ -597,8 +631,8 @@
<g id="edge5_Node000004_Node000006" class="edge">
<title>Node4->Node6</title>
<g id="a_edge5_Node000004_Node000006"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M3265.45,-516.14C2788.89,-513.71 623.66,-495.74 355,-369 325.49,-355.08 301.2,-326.79 285.16,-303.85"/>
-<polygon fill="none" stroke="#63b8ff" points="3265.7,-519.64 3275.72,-516.19 3265.74,-512.64 3265.7,-519.64"/>
+<path fill="none" stroke="#63b8ff" d="M3643.61,-553.82C3112.84,-552.26 697.53,-537.57 396.5,-399 362.89,-383.53 335.04,-351.27 317.16,-326.11"/>
+<polygon fill="none" stroke="#63b8ff" points="3643.91,-557.32 3653.92,-553.85 3643.93,-550.32 3643.91,-557.32"/>
</a>
</g>
</g>
@@ -606,35 +640,37 @@
<g id="Node000007" class="node">
<title>Node7</title>
<g id="a_Node000007"><a xlink:href="classtvm_1_1IntImm.html" target="_top" xlink:title="Managed reference class to IntImmNode.">
-<polygon fill="white" stroke="transparent" points="528,-369 364,-369 364,-167 528,-167 528,-369"/>
-<text text-anchor="start" x="415.5" y="-357" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::IntImm</text>
-<text text-anchor="start" x="368" y="-342" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="381" y="-342" font-family="Helvetica,sans-Serif" font-size="10.00">_type_container_is</text>
-<text text-anchor="start" x="381" y="-331" font-family="Helvetica,sans-Serif" font-size="10.00">_exact</text>
-<text text-anchor="start" x="368" y="-316" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="381" y="-316" font-family="Helvetica,sans-Serif" font-size="10.00">IntImm()</text>
-<text text-anchor="start" x="368" y="-301" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="381" y="-301" font-family="Helvetica,sans-Serif" font-size="10.00">IntImm()</text>
-<text text-anchor="start" x="368" y="-286" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="381" y="-286" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
-<text text-anchor="start" x="381" y="-275" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NULLABLE()</text>
-<text text-anchor="start" x="368" y="-260" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="381" y="-260" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="381" y="-249" font-family="Helvetica,sans-Serif" font-size="10.00">_COW_METHOD()</text>
-<text text-anchor="start" x="368" y="-234" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="381" y="-234" font-family="Helvetica,sans-Serif" font-size="10.00">Bool()</text>
-<text text-anchor="start" x="368" y="-219" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="381" y="-219" font-family="Helvetica,sans-Serif" font-size="10.00">Int32()</text>
-<text text-anchor="start" x="368" y="-204" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="381" y="-204" font-family="Helvetica,sans-Serif" font-size="10.00">Int32()</text>
-<text text-anchor="start" x="368" y="-189" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="381" y="-189" font-family="Helvetica,sans-Serif" font-size="10.00">Int64()</text>
-<text text-anchor="start" x="368" y="-174" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="381" y="-174" font-family="Helvetica,sans-Serif" font-size="10.00">Int64()</text>
-<polygon fill="#666666" stroke="#666666" points="364,-352 364,-352 528,-352 528,-352 364,-352"/>
-<polygon fill="#666666" stroke="#666666" points="364,-326 364,-326 379,-326 379,-326 364,-326"/>
-<polygon fill="#666666" stroke="#666666" points="379,-326 379,-326 528,-326 528,-326 379,-326"/>
-<polygon fill="none" stroke="#666666" points="364,-167 364,-369 528,-369 528,-167 364,-167"/>
+<polygon fill="white" stroke="transparent" points="591,-399 406,-399 406,-182 591,-182 591,-399"/>
+<text text-anchor="start" x="468.5" y="-386.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::IntImm</text>
+<text text-anchor="start" x="410.5" y="-371.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="423.5" y="-371.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_container_is</text>
+<text text-anchor="start" x="423.5" y="-360.5" font-family="Helvetica,sans-Serif" font-size="10.00">_exact</text>
+<text text-anchor="start" x="410.5" y="-345.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="423.5" y="-345.5" font-family="Helvetica,sans-Serif" font-size="10.00">IntImm()</text>
+<text text-anchor="start" x="410.5" y="-330.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="423.5" y="-330.5" font-family="Helvetica,sans-Serif" font-size="10.00">IntImm()</text>
+<text text-anchor="start" x="410.5" y="-315.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="423.5" y="-315.5" font-family="Helvetica,sans-Serif" font-size="10.00">IntImm()</text>
+<text text-anchor="start" x="410.5" y="-300.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="423.5" y="-300.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
+<text text-anchor="start" x="423.5" y="-289.5" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NOTNULLABLE()</text>
+<text text-anchor="start" x="410.5" y="-274.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="423.5" y="-274.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="423.5" y="-263.5" font-family="Helvetica,sans-Serif" font-size="10.00">_COW_METHOD()</text>
+<text text-anchor="start" x="410.5" y="-248.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="423.5" y="-248.5" font-family="Helvetica,sans-Serif" font-size="10.00">Bool()</text>
+<text text-anchor="start" x="410.5" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="423.5" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">Int32()</text>
+<text text-anchor="start" x="410.5" y="-218.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="423.5" y="-218.5" font-family="Helvetica,sans-Serif" font-size="10.00">Int32()</text>
+<text text-anchor="start" x="410.5" y="-203.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="423.5" y="-203.5" font-family="Helvetica,sans-Serif" font-size="10.00">Int64()</text>
+<text text-anchor="start" x="410.5" y="-188.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="423.5" y="-188.5" font-family="Helvetica,sans-Serif" font-size="10.00">Int64()</text>
+<polygon fill="#666666" stroke="#666666" points="406.5,-381.5 406.5,-381.5 591.5,-381.5 591.5,-381.5 406.5,-381.5"/>
+<polygon fill="#666666" stroke="#666666" points="406.5,-355.5 406.5,-355.5 421.5,-355.5 421.5,-355.5 406.5,-355.5"/>
+<polygon fill="#666666" stroke="#666666" points="421.5,-355.5 421.5,-355.5 591.5,-355.5 591.5,-355.5 421.5,-355.5"/>
+<polygon fill="none" stroke="#666666" points="406,-182 406,-399 591,-399 591,-182 406,-182"/>
</a>
</g>
</g>
@@ -642,8 +678,8 @@
<g id="edge6_Node000004_Node000007" class="edge">
<title>Node4->Node7</title>
<g id="a_edge6_Node000004_Node000007"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M3265.52,-515.82C2806.86,-511.91 788.2,-487.99 537,-369 534.03,-367.59 531.11,-366.04 528.25,-364.36"/>
-<polygon fill="none" stroke="#63b8ff" points="3265.71,-519.32 3275.74,-515.91 3265.77,-512.32 3265.71,-519.32"/>
+<path fill="none" stroke="#63b8ff" d="M3643.67,-553.49C3132.8,-550.33 880.99,-529.08 599.5,-399 596.71,-397.71 593.96,-396.31 591.25,-394.8"/>
+<polygon fill="none" stroke="#63b8ff" points="3643.95,-556.99 3653.97,-553.55 3644,-549.99 3643.95,-556.99"/>
</a>
</g>
</g>
@@ -651,28 +687,30 @@
<g id="Node000008" class="node">
<title>Node8</title>
<g id="a_Node000008"><a xlink:href="classtvm_1_1PrimVar.html" target="_top" xlink:title="Checked scalar view over a VarNode.">
-<polygon fill="white" stroke="transparent" points="710,-341 546,-341 546,-195 710,-195 710,-341"/>
-<text text-anchor="start" x="596" y="-329" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::PrimVar</text>
-<text text-anchor="start" x="550" y="-314" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="563" y="-314" font-family="Helvetica,sans-Serif" font-size="10.00">_type_container_is</text>
-<text text-anchor="start" x="563" y="-303" font-family="Helvetica,sans-Serif" font-size="10.00">_exact</text>
-<text text-anchor="start" x="550" y="-288" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="563" y="-288" font-family="Helvetica,sans-Serif" font-size="10.00">PrimVar()</text>
-<text text-anchor="start" x="550" y="-273" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="563" y="-273" font-family="Helvetica,sans-Serif" font-size="10.00">PrimVar()</text>
-<text text-anchor="start" x="550" y="-258" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="563" y="-258" font-family="Helvetica,sans-Serif" font-size="10.00">operator Var()</text>
-<text text-anchor="start" x="550" y="-243" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="563" y="-243" font-family="Helvetica,sans-Serif" font-size="10.00">CopyWithSuffix()</text>
-<text text-anchor="start" x="550" y="-228" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="563" y="-228" font-family="Helvetica,sans-Serif" font-size="10.00">CopyWithDType()</text>
-<text text-anchor="start" x="550" y="-213" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="563" y="-213" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
-<text text-anchor="start" x="563" y="-202" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NULLABLE()</text>
-<polygon fill="#666666" stroke="#666666" points="546,-324 546,-324 710,-324 710,-324 546,-324"/>
-<polygon fill="#666666" stroke="#666666" points="546,-298 546,-298 561,-298 561,-298 546,-298"/>
-<polygon fill="#666666" stroke="#666666" points="561,-298 561,-298 710,-298 710,-298 561,-298"/>
-<polygon fill="none" stroke="#666666" points="546,-195 546,-341 710,-341 710,-195 546,-195"/>
+<polygon fill="white" stroke="transparent" points="794,-371 609,-371 609,-210 794,-210 794,-371"/>
+<text text-anchor="start" x="670" y="-358.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::PrimVar</text>
+<text text-anchor="start" x="613.5" y="-343.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="626.5" y="-343.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_container_is</text>
+<text text-anchor="start" x="626.5" y="-332.5" font-family="Helvetica,sans-Serif" font-size="10.00">_exact</text>
+<text text-anchor="start" x="613.5" y="-317.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="626.5" y="-317.5" font-family="Helvetica,sans-Serif" font-size="10.00">PrimVar()</text>
+<text text-anchor="start" x="613.5" y="-302.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="626.5" y="-302.5" font-family="Helvetica,sans-Serif" font-size="10.00">PrimVar()</text>
+<text text-anchor="start" x="613.5" y="-287.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="626.5" y="-287.5" font-family="Helvetica,sans-Serif" font-size="10.00">operator Var()</text>
+<text text-anchor="start" x="613.5" y="-272.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="626.5" y="-272.5" font-family="Helvetica,sans-Serif" font-size="10.00">CopyWithSuffix()</text>
+<text text-anchor="start" x="613.5" y="-257.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="626.5" y="-257.5" font-family="Helvetica,sans-Serif" font-size="10.00">CopyWithDType()</text>
+<text text-anchor="start" x="613.5" y="-242.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="626.5" y="-242.5" font-family="Helvetica,sans-Serif" font-size="10.00">PrimVar()</text>
+<text text-anchor="start" x="613.5" y="-227.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="626.5" y="-227.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
+<text text-anchor="start" x="626.5" y="-216.5" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NOTNULLABLE()</text>
+<polygon fill="#666666" stroke="#666666" points="609.5,-353.5 609.5,-353.5 794.5,-353.5 794.5,-353.5 609.5,-353.5"/>
+<polygon fill="#666666" stroke="#666666" points="609.5,-327.5 609.5,-327.5 624.5,-327.5 624.5,-327.5 609.5,-327.5"/>
+<polygon fill="#666666" stroke="#666666" points="624.5,-327.5 624.5,-327.5 794.5,-327.5 794.5,-327.5 624.5,-327.5"/>
+<polygon fill="none" stroke="#666666" points="609,-210 609,-371 794,-371 794,-210 609,-210"/>
</a>
</g>
</g>
@@ -680,8 +718,8 @@
<g id="edge7_Node000004_Node000008" class="edge">
<title>Node4->Node8</title>
<g id="a_edge7_Node000004_Node000008"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M3265.8,-515.47C2825.99,-509.99 952.82,-480.27 719,-369 704.9,-362.29 691.99,-352.32 680.6,-341.24"/>
-<polygon fill="none" stroke="#63b8ff" points="3265.88,-518.97 3275.92,-515.59 3265.97,-511.97 3265.88,-518.97"/>
+<path fill="none" stroke="#63b8ff" d="M3643.57,-553.11C3152.91,-548.26 1064.45,-520.59 802.5,-399 787.87,-392.21 774.32,-382.25 762.21,-371.09"/>
+<polygon fill="none" stroke="#63b8ff" points="3643.78,-556.61 3653.82,-553.21 3643.85,-549.61 3643.78,-556.61"/>
</a>
</g>
</g>
@@ -689,21 +727,23 @@
<g id="Node000009" class="node">
<title>Node9</title>
<g id="a_Node000009"><a xlink:href="classtvm_1_1TensorLoad.html" target="_top" xlink:title="Managed reference to TensorLoadNode.">
-<polygon fill="white" stroke="transparent" points="892,-316.5 728,-316.5 728,-219.5 892,-219.5 892,-316.5"/>
-<text text-anchor="start" x="769.5" y="-304" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::TensorLoad</text>
-<text text-anchor="start" x="732" y="-289" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="745" y="-289" font-family="Helvetica,sans-Serif" font-size="10.00">_type_container_is</text>
-<text text-anchor="start" x="745" y="-278" font-family="Helvetica,sans-Serif" font-size="10.00">_exact</text>
-<text text-anchor="start" x="732" y="-263" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="745" y="-263" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
-<text text-anchor="start" x="745" y="-252" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NULLABLE()</text>
-<text text-anchor="start" x="732" y="-237" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="745" y="-237" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="745" y="-226" font-family="Helvetica,sans-Serif" font-size="10.00">_COW_METHOD()</text>
-<polygon fill="#666666" stroke="#666666" points="728,-299 728,-299 892,-299 892,-299 728,-299"/>
-<polygon fill="#666666" stroke="#666666" points="728,-273 728,-273 743,-273 743,-273 728,-273"/>
-<polygon fill="#666666" stroke="#666666" points="743,-273 743,-273 892,-273 892,-273 743,-273"/>
-<polygon fill="none" stroke="#666666" points="728,-219.5 728,-316.5 892,-316.5 892,-219.5 728,-219.5"/>
+<polygon fill="white" stroke="transparent" points="997,-346.5 812,-346.5 812,-234.5 997,-234.5 997,-346.5"/>
+<text text-anchor="start" x="864.5" y="-334.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::TensorLoad</text>
+<text text-anchor="start" x="816.5" y="-319.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="829.5" y="-319.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_container_is</text>
+<text text-anchor="start" x="829.5" y="-308.5" font-family="Helvetica,sans-Serif" font-size="10.00">_exact</text>
+<text text-anchor="start" x="816.5" y="-293.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="829.5" y="-293.5" font-family="Helvetica,sans-Serif" font-size="10.00">TensorLoad()</text>
+<text text-anchor="start" x="816.5" y="-278.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="829.5" y="-278.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
+<text text-anchor="start" x="829.5" y="-267.5" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NOTNULLABLE()</text>
+<text text-anchor="start" x="816.5" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="829.5" y="-252.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="829.5" y="-241.5" font-family="Helvetica,sans-Serif" font-size="10.00">_COW_METHOD()</text>
+<polygon fill="#666666" stroke="#666666" points="812.5,-329.5 812.5,-329.5 997.5,-329.5 997.5,-329.5 812.5,-329.5"/>
+<polygon fill="#666666" stroke="#666666" points="812.5,-303.5 812.5,-303.5 827.5,-303.5 827.5,-303.5 812.5,-303.5"/>
+<polygon fill="#666666" stroke="#666666" points="827.5,-303.5 827.5,-303.5 997.5,-303.5 997.5,-303.5 827.5,-303.5"/>
+<polygon fill="none" stroke="#666666" points="812,-234.5 812,-346.5 997,-346.5 997,-234.5 812,-234.5"/>
</a>
</g>
</g>
@@ -711,8 +751,8 @@
<g id="edge8_Node000004_Node000009" class="edge">
<title>Node4->Node9</title>
<g id="a_edge8_Node000004_Node000009"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M3265.67,-515.06C2844.58,-507.92 1117.4,-472.53 901,-369 876.86,-357.45 856.17,-336.36 840.65,-316.51"/>
-<polygon fill="none" stroke="#63b8ff" points="3265.61,-518.56 3275.67,-515.22 3265.73,-511.56 3265.61,-518.56"/>
+<path fill="none" stroke="#63b8ff" d="M3643.81,-552.68C3174.71,-546.06 1248.02,-512.15 1005.5,-399 980.67,-387.42 958.95,-366.73 942.08,-346.59"/>
+<polygon fill="none" stroke="#63b8ff" points="3643.9,-556.18 3653.95,-552.82 3644,-549.18 3643.9,-556.18"/>
</a>
</g>
</g>
@@ -720,23 +760,25 @@
<g id="Node000010" class="node">
<title>Node10</title>
<g id="a_Node000010"><a xlink:href="classtvm_1_1prim_1_1Add.html" target="_top" xlink:title="Managed reference to AddNode.">
-<polygon fill="white" stroke="transparent" points="1074,-324 910,-324 910,-212 1074,-212 1074,-324"/>
-<text text-anchor="start" x="955.5" y="-312" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::prim::Add</text>
-<text text-anchor="start" x="914" y="-297" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="927" y="-297" font-family="Helvetica,sans-Serif" font-size="10.00">_type_container_is</text>
-<text text-anchor="start" x="927" y="-286" font-family="Helvetica,sans-Serif" font-size="10.00">_exact</text>
-<text text-anchor="start" x="914" y="-271" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="927" y="-271" font-family="Helvetica,sans-Serif" font-size="10.00">Add()</text>
-<text text-anchor="start" x="914" y="-256" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="927" y="-256" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
-<text text-anchor="start" x="927" y="-245" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NULLABLE()</text>
-<text text-anchor="start" x="914" y="-230" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="927" y="-230" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="927" y="-219" font-family="Helvetica,sans-Serif" font-size="10.00">_COW_METHOD()</text>
-<polygon fill="#666666" stroke="#666666" points="910,-307 910,-307 1074,-307 1074,-307 910,-307"/>
-<polygon fill="#666666" stroke="#666666" points="910,-281 910,-281 925,-281 925,-281 910,-281"/>
-<polygon fill="#666666" stroke="#666666" points="925,-281 925,-281 1074,-281 1074,-281 925,-281"/>
-<polygon fill="none" stroke="#666666" points="910,-212 910,-324 1074,-324 1074,-212 910,-212"/>
+<polygon fill="white" stroke="transparent" points="1200,-354 1015,-354 1015,-227 1200,-227 1200,-354"/>
+<text text-anchor="start" x="1071.5" y="-341.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::prim::Add</text>
+<text text-anchor="start" x="1019.5" y="-326.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="1032.5" y="-326.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_container_is</text>
+<text text-anchor="start" x="1032.5" y="-315.5" font-family="Helvetica,sans-Serif" font-size="10.00">_exact</text>
+<text text-anchor="start" x="1019.5" y="-300.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="1032.5" y="-300.5" font-family="Helvetica,sans-Serif" font-size="10.00">Add()</text>
+<text text-anchor="start" x="1019.5" y="-285.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="1032.5" y="-285.5" font-family="Helvetica,sans-Serif" font-size="10.00">Add()</text>
+<text text-anchor="start" x="1019.5" y="-270.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="1032.5" y="-270.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
+<text text-anchor="start" x="1032.5" y="-259.5" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NOTNULLABLE()</text>
+<text text-anchor="start" x="1019.5" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="1032.5" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="1032.5" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">_COW_METHOD()</text>
+<polygon fill="#666666" stroke="#666666" points="1015.5,-336.5 1015.5,-336.5 1200.5,-336.5 1200.5,-336.5 1015.5,-336.5"/>
+<polygon fill="#666666" stroke="#666666" points="1015.5,-310.5 1015.5,-310.5 1030.5,-310.5 1030.5,-310.5 1015.5,-310.5"/>
+<polygon fill="#666666" stroke="#666666" points="1030.5,-310.5 1030.5,-310.5 1200.5,-310.5 1200.5,-310.5 1030.5,-310.5"/>
+<polygon fill="none" stroke="#666666" points="1015,-227 1015,-354 1200,-354 1200,-227 1015,-227"/>
</a>
</g>
</g>
@@ -744,8 +786,8 @@
<g id="edge9_Node000004_Node000010" class="edge">
<title>Node4->Node10</title>
<g id="a_edge9_Node000004_Node000010"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M3265.67,-514.58C2864.27,-505.69 1282.06,-464.82 1083,-369 1061.95,-358.87 1043.52,-341.51 1028.85,-324.07"/>
-<polygon fill="none" stroke="#63b8ff" points="3265.71,-518.08 3275.79,-514.8 3265.87,-511.08 3265.71,-518.08"/>
+<path fill="none" stroke="#63b8ff" d="M3643.75,-552.18C3196.48,-543.68 1431.59,-503.69 1208.5,-399 1186.82,-388.83 1167.51,-371.75 1151.72,-354.16"/>
+<polygon fill="none" stroke="#63b8ff" points="3643.69,-555.68 3653.75,-552.37 3643.82,-548.68 3643.69,-555.68"/>
</a>
</g>
</g>
@@ -753,23 +795,25 @@
<g id="Node000011" class="node">
<title>Node11</title>
<g id="a_Node000011"><a xlink:href="classtvm_1_1prim_1_1And.html" target="_top" xlink:title="Managed reference to AndNode.">
-<polygon fill="white" stroke="transparent" points="1256,-324 1092,-324 1092,-212 1256,-212 1256,-324"/>
-<text text-anchor="start" x="1137.5" y="-312" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::prim::And</text>
-<text text-anchor="start" x="1096" y="-297" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="1109" y="-297" font-family="Helvetica,sans-Serif" font-size="10.00">_type_container_is</text>
-<text text-anchor="start" x="1109" y="-286" font-family="Helvetica,sans-Serif" font-size="10.00">_exact</text>
-<text text-anchor="start" x="1096" y="-271" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="1109" y="-271" font-family="Helvetica,sans-Serif" font-size="10.00">And()</text>
-<text text-anchor="start" x="1096" y="-256" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="1109" y="-256" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
-<text text-anchor="start" x="1109" y="-245" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NULLABLE()</text>
-<text text-anchor="start" x="1096" y="-230" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="1109" y="-230" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="1109" y="-219" font-family="Helvetica,sans-Serif" font-size="10.00">_COW_METHOD()</text>
-<polygon fill="#666666" stroke="#666666" points="1092,-307 1092,-307 1256,-307 1256,-307 1092,-307"/>
-<polygon fill="#666666" stroke="#666666" points="1092,-281 1092,-281 1107,-281 1107,-281 1092,-281"/>
-<polygon fill="#666666" stroke="#666666" points="1107,-281 1107,-281 1256,-281 1256,-281 1107,-281"/>
-<polygon fill="none" stroke="#666666" points="1092,-212 1092,-324 1256,-324 1256,-212 1092,-212"/>
+<polygon fill="white" stroke="transparent" points="1403,-354 1218,-354 1218,-227 1403,-227 1403,-354"/>
+<text text-anchor="start" x="1274.5" y="-341.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::prim::And</text>
+<text text-anchor="start" x="1222.5" y="-326.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="1235.5" y="-326.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_container_is</text>
+<text text-anchor="start" x="1235.5" y="-315.5" font-family="Helvetica,sans-Serif" font-size="10.00">_exact</text>
+<text text-anchor="start" x="1222.5" y="-300.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="1235.5" y="-300.5" font-family="Helvetica,sans-Serif" font-size="10.00">And()</text>
+<text text-anchor="start" x="1222.5" y="-285.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="1235.5" y="-285.5" font-family="Helvetica,sans-Serif" font-size="10.00">And()</text>
+<text text-anchor="start" x="1222.5" y="-270.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="1235.5" y="-270.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
+<text text-anchor="start" x="1235.5" y="-259.5" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NOTNULLABLE()</text>
+<text text-anchor="start" x="1222.5" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="1235.5" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="1235.5" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">_COW_METHOD()</text>
+<polygon fill="#666666" stroke="#666666" points="1218.5,-336.5 1218.5,-336.5 1403.5,-336.5 1403.5,-336.5 1218.5,-336.5"/>
+<polygon fill="#666666" stroke="#666666" points="1218.5,-310.5 1218.5,-310.5 1233.5,-310.5 1233.5,-310.5 1218.5,-310.5"/>
+<polygon fill="#666666" stroke="#666666" points="1233.5,-310.5 1233.5,-310.5 1403.5,-310.5 1403.5,-310.5 1233.5,-310.5"/>
+<polygon fill="none" stroke="#666666" points="1218,-227 1218,-354 1403,-354 1403,-227 1218,-227"/>
</a>
</g>
</g>
@@ -777,8 +821,8 @@
<g id="edge10_Node000004_Node000011" class="edge">
<title>Node4->Node11</title>
<g id="a_edge10_Node000004_Node000011"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M3265.6,-514.02C2884.57,-503.26 1446.75,-457.11 1265,-369 1244.09,-358.86 1225.74,-341.61 1211.1,-324.26"/>
-<polygon fill="none" stroke="#63b8ff" points="3265.66,-517.53 3275.76,-514.31 3265.86,-510.53 3265.66,-517.53"/>
+<path fill="none" stroke="#63b8ff" d="M3643.65,-551.6C3219.05,-541.08 1615.21,-495.26 1411.5,-399 1389.85,-388.77 1370.54,-371.67 1354.75,-354.09"/>
+<polygon fill="none" stroke="#63b8ff" points="3643.68,-555.1 3653.77,-551.85 3643.85,-548.1 3643.68,-555.1"/>
</a>
</g>
</g>
@@ -786,23 +830,25 @@
<g id="Node000012" class="node">
<title>Node12</title>
<g id="a_Node000012"><a xlink:href="classtvm_1_1prim_1_1BitwiseAnd.html" target="_top" xlink:title="Managed reference to BitwiseAndNode.">
-<polygon fill="white" stroke="transparent" points="1438,-324 1274,-324 1274,-212 1438,-212 1438,-324"/>
-<text text-anchor="start" x="1301.5" y="-312" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::prim::BitwiseAnd</text>
-<text text-anchor="start" x="1278" y="-297" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="1291" y="-297" font-family="Helvetica,sans-Serif" font-size="10.00">_type_container_is</text>
-<text text-anchor="start" x="1291" y="-286" font-family="Helvetica,sans-Serif" font-size="10.00">_exact</text>
-<text text-anchor="start" x="1278" y="-271" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="1291" y="-271" font-family="Helvetica,sans-Serif" font-size="10.00">BitwiseAnd()</text>
-<text text-anchor="start" x="1278" y="-256" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="1291" y="-256" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
-<text text-anchor="start" x="1291" y="-245" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NULLABLE()</text>
-<text text-anchor="start" x="1278" y="-230" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="1291" y="-230" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="1291" y="-219" font-family="Helvetica,sans-Serif" font-size="10.00">_COW_METHOD()</text>
-<polygon fill="#666666" stroke="#666666" points="1274,-307 1274,-307 1438,-307 1438,-307 1274,-307"/>
-<polygon fill="#666666" stroke="#666666" points="1274,-281 1274,-281 1289,-281 1289,-281 1274,-281"/>
-<polygon fill="#666666" stroke="#666666" points="1289,-281 1289,-281 1438,-281 1438,-281 1289,-281"/>
-<polygon fill="none" stroke="#666666" points="1274,-212 1274,-324 1438,-324 1438,-212 1274,-212"/>
+<polygon fill="white" stroke="transparent" points="1606,-354 1421,-354 1421,-227 1606,-227 1606,-354"/>
+<text text-anchor="start" x="1459.5" y="-341.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::prim::BitwiseAnd</text>
+<text text-anchor="start" x="1425.5" y="-326.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="1438.5" y="-326.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_container_is</text>
+<text text-anchor="start" x="1438.5" y="-315.5" font-family="Helvetica,sans-Serif" font-size="10.00">_exact</text>
+<text text-anchor="start" x="1425.5" y="-300.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="1438.5" y="-300.5" font-family="Helvetica,sans-Serif" font-size="10.00">BitwiseAnd()</text>
+<text text-anchor="start" x="1425.5" y="-285.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="1438.5" y="-285.5" font-family="Helvetica,sans-Serif" font-size="10.00">BitwiseAnd()</text>
+<text text-anchor="start" x="1425.5" y="-270.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="1438.5" y="-270.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
+<text text-anchor="start" x="1438.5" y="-259.5" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NOTNULLABLE()</text>
+<text text-anchor="start" x="1425.5" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="1438.5" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="1438.5" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">_COW_METHOD()</text>
+<polygon fill="#666666" stroke="#666666" points="1421.5,-336.5 1421.5,-336.5 1606.5,-336.5 1606.5,-336.5 1421.5,-336.5"/>
+<polygon fill="#666666" stroke="#666666" points="1421.5,-310.5 1421.5,-310.5 1436.5,-310.5 1436.5,-310.5 1421.5,-310.5"/>
+<polygon fill="#666666" stroke="#666666" points="1436.5,-310.5 1436.5,-310.5 1606.5,-310.5 1606.5,-310.5 1436.5,-310.5"/>
+<polygon fill="none" stroke="#666666" points="1421,-227 1421,-354 1606,-354 1606,-227 1421,-227"/>
</a>
</g>
</g>
@@ -810,8 +856,8 @@
<g id="edge11_Node000004_Node000012" class="edge">
<title>Node4->Node12</title>
<g id="a_edge11_Node000004_Node000012"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M3265.67,-513.36C2906.14,-500.6 1611.52,-449.44 1447,-369 1426.12,-358.79 1407.78,-341.52 1393.14,-324.18"/>
-<polygon fill="none" stroke="#63b8ff" points="3265.66,-516.86 3275.77,-513.72 3265.9,-509.87 3265.66,-516.86"/>
+<path fill="none" stroke="#63b8ff" d="M3643.71,-550.9C3243.03,-538.24 1798.91,-486.85 1614.5,-399 1592.88,-388.7 1573.58,-371.59 1557.79,-354.01"/>
+<polygon fill="none" stroke="#63b8ff" points="3643.73,-554.41 3653.84,-551.22 3643.95,-547.41 3643.73,-554.41"/>
</a>
</g>
</g>
@@ -819,23 +865,25 @@
<g id="Node000013" class="node">
<title>Node13</title>
<g id="a_Node000013"><a xlink:href="classtvm_1_1prim_1_1BitwiseNot.html" target="_top" xlink:title="Managed reference to BitwiseNotNode.">
-<polygon fill="white" stroke="transparent" points="1620,-324 1456,-324 1456,-212 1620,-212 1620,-324"/>
-<text text-anchor="start" x="1484" y="-312" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::prim::BitwiseNot</text>
-<text text-anchor="start" x="1460" y="-297" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="1473" y="-297" font-family="Helvetica,sans-Serif" font-size="10.00">_type_container_is</text>
-<text text-anchor="start" x="1473" y="-286" font-family="Helvetica,sans-Serif" font-size="10.00">_exact</text>
-<text text-anchor="start" x="1460" y="-271" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="1473" y="-271" font-family="Helvetica,sans-Serif" font-size="10.00">BitwiseNot()</text>
-<text text-anchor="start" x="1460" y="-256" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="1473" y="-256" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
-<text text-anchor="start" x="1473" y="-245" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NULLABLE()</text>
-<text text-anchor="start" x="1460" y="-230" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="1473" y="-230" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="1473" y="-219" font-family="Helvetica,sans-Serif" font-size="10.00">_COW_METHOD()</text>
-<polygon fill="#666666" stroke="#666666" points="1456,-307 1456,-307 1620,-307 1620,-307 1456,-307"/>
-<polygon fill="#666666" stroke="#666666" points="1456,-281 1456,-281 1471,-281 1471,-281 1456,-281"/>
-<polygon fill="#666666" stroke="#666666" points="1471,-281 1471,-281 1620,-281 1620,-281 1471,-281"/>
-<polygon fill="none" stroke="#666666" points="1456,-212 1456,-324 1620,-324 1620,-212 1456,-212"/>
+<polygon fill="white" stroke="transparent" points="1809,-354 1624,-354 1624,-227 1809,-227 1809,-354"/>
+<text text-anchor="start" x="1663" y="-341.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::prim::BitwiseNot</text>
+<text text-anchor="start" x="1628.5" y="-326.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="1641.5" y="-326.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_container_is</text>
+<text text-anchor="start" x="1641.5" y="-315.5" font-family="Helvetica,sans-Serif" font-size="10.00">_exact</text>
+<text text-anchor="start" x="1628.5" y="-300.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="1641.5" y="-300.5" font-family="Helvetica,sans-Serif" font-size="10.00">BitwiseNot()</text>
+<text text-anchor="start" x="1628.5" y="-285.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="1641.5" y="-285.5" font-family="Helvetica,sans-Serif" font-size="10.00">BitwiseNot()</text>
+<text text-anchor="start" x="1628.5" y="-270.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="1641.5" y="-270.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
+<text text-anchor="start" x="1641.5" y="-259.5" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NOTNULLABLE()</text>
+<text text-anchor="start" x="1628.5" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="1641.5" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="1641.5" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">_COW_METHOD()</text>
+<polygon fill="#666666" stroke="#666666" points="1624.5,-336.5 1624.5,-336.5 1809.5,-336.5 1809.5,-336.5 1624.5,-336.5"/>
+<polygon fill="#666666" stroke="#666666" points="1624.5,-310.5 1624.5,-310.5 1639.5,-310.5 1639.5,-310.5 1624.5,-310.5"/>
+<polygon fill="#666666" stroke="#666666" points="1639.5,-310.5 1639.5,-310.5 1809.5,-310.5 1809.5,-310.5 1639.5,-310.5"/>
+<polygon fill="none" stroke="#666666" points="1624,-227 1624,-354 1809,-354 1809,-227 1624,-227"/>
</a>
</g>
</g>
@@ -843,8 +891,8 @@
<g id="edge12_Node000004_Node000013" class="edge">
<title>Node4->Node13</title>
<g id="a_edge12_Node000004_Node000013"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M3265.57,-512.56C2928.37,-497.64 1776.33,-441.77 1629,-369 1608.16,-358.71 1589.83,-341.42 1575.19,-324.09"/>
-<polygon fill="none" stroke="#63b8ff" points="3265.65,-516.06 3275.79,-513.01 3265.95,-509.07 3265.65,-516.06"/>
+<path fill="none" stroke="#63b8ff" d="M3643.86,-550.07C3268.38,-535.1 1982.7,-478.47 1817.5,-399 1796.04,-388.68 1776.84,-371.67 1761.09,-354.19"/>
+<polygon fill="none" stroke="#63b8ff" points="3643.77,-553.57 3653.9,-550.47 3644.05,-546.57 3643.77,-553.57"/>
</a>
</g>
</g>
@@ -852,23 +900,25 @@
<g id="Node000014" class="node">
<title>Node14</title>
<g id="a_Node000014"><a xlink:href="classtvm_1_1prim_1_1BitwiseOr.html" target="_top" xlink:title="Managed reference to BitwiseOrNode.">
-<polygon fill="white" stroke="transparent" points="1802,-324 1638,-324 1638,-212 1802,-212 1802,-324"/>
-<text text-anchor="start" x="1669" y="-312" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::prim::BitwiseOr</text>
-<text text-anchor="start" x="1642" y="-297" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="1655" y="-297" font-family="Helvetica,sans-Serif" font-size="10.00">_type_container_is</text>
-<text text-anchor="start" x="1655" y="-286" font-family="Helvetica,sans-Serif" font-size="10.00">_exact</text>
-<text text-anchor="start" x="1642" y="-271" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="1655" y="-271" font-family="Helvetica,sans-Serif" font-size="10.00">BitwiseOr()</text>
-<text text-anchor="start" x="1642" y="-256" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="1655" y="-256" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
-<text text-anchor="start" x="1655" y="-245" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NULLABLE()</text>
-<text text-anchor="start" x="1642" y="-230" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="1655" y="-230" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="1655" y="-219" font-family="Helvetica,sans-Serif" font-size="10.00">_COW_METHOD()</text>
-<polygon fill="#666666" stroke="#666666" points="1638,-307 1638,-307 1802,-307 1802,-307 1638,-307"/>
-<polygon fill="#666666" stroke="#666666" points="1638,-281 1638,-281 1653,-281 1653,-281 1638,-281"/>
-<polygon fill="#666666" stroke="#666666" points="1653,-281 1653,-281 1802,-281 1802,-281 1653,-281"/>
-<polygon fill="none" stroke="#666666" points="1638,-212 1638,-324 1802,-324 1802,-212 1638,-212"/>
+<polygon fill="white" stroke="transparent" points="2012,-354 1827,-354 1827,-227 2012,-227 2012,-354"/>
+<text text-anchor="start" x="1869" y="-341.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::prim::BitwiseOr</text>
+<text text-anchor="start" x="1831.5" y="-326.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="1844.5" y="-326.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_container_is</text>
+<text text-anchor="start" x="1844.5" y="-315.5" font-family="Helvetica,sans-Serif" font-size="10.00">_exact</text>
+<text text-anchor="start" x="1831.5" y="-300.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="1844.5" y="-300.5" font-family="Helvetica,sans-Serif" font-size="10.00">BitwiseOr()</text>
+<text text-anchor="start" x="1831.5" y="-285.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="1844.5" y="-285.5" font-family="Helvetica,sans-Serif" font-size="10.00">BitwiseOr()</text>
+<text text-anchor="start" x="1831.5" y="-270.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="1844.5" y="-270.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
+<text text-anchor="start" x="1844.5" y="-259.5" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NOTNULLABLE()</text>
+<text text-anchor="start" x="1831.5" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="1844.5" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="1844.5" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">_COW_METHOD()</text>
+<polygon fill="#666666" stroke="#666666" points="1827.5,-336.5 1827.5,-336.5 2012.5,-336.5 2012.5,-336.5 1827.5,-336.5"/>
+<polygon fill="#666666" stroke="#666666" points="1827.5,-310.5 1827.5,-310.5 1842.5,-310.5 1842.5,-310.5 1827.5,-310.5"/>
+<polygon fill="#666666" stroke="#666666" points="1842.5,-310.5 1842.5,-310.5 2012.5,-310.5 2012.5,-310.5 1842.5,-310.5"/>
+<polygon fill="none" stroke="#666666" points="1827,-227 1827,-354 2012,-354 2012,-227 1827,-227"/>
</a>
</g>
</g>
@@ -876,8 +926,8 @@
<g id="edge13_Node000004_Node000014" class="edge">
<title>Node4->Node14</title>
<g id="a_edge13_Node000004_Node000014"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M3265.41,-516.31C2972.25,-514.36 2068.55,-497.81 1811,-369 1790.32,-358.66 1772.08,-341.47 1757.47,-324.23"/>
-<polygon fill="none" stroke="#63b8ff" points="3265.56,-519.81 3275.58,-516.37 3265.61,-512.81 3265.56,-519.81"/>
+<path fill="none" stroke="#63b8ff" d="M3643.43,-554.23C3316.81,-553.48 2309.26,-539.58 2020.5,-399 1999.09,-388.58 1979.9,-371.54 1964.15,-354.07"/>
+<polygon fill="none" stroke="#63b8ff" points="3643.82,-557.73 3653.83,-554.25 3643.84,-550.73 3643.82,-557.73"/>
</a>
</g>
</g>
@@ -885,23 +935,25 @@
<g id="Node000015" class="node">
<title>Node15</title>
<g id="a_Node000015"><a xlink:href="classtvm_1_1prim_1_1BitwiseXor.html" target="_top" xlink:title="Managed reference to BitwiseXorNode.">
-<polygon fill="white" stroke="transparent" points="1984,-324 1820,-324 1820,-212 1984,-212 1984,-324"/>
-<text text-anchor="start" x="1848.5" y="-312" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::prim::BitwiseXor</text>
-<text text-anchor="start" x="1824" y="-297" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="1837" y="-297" font-family="Helvetica,sans-Serif" font-size="10.00">_type_container_is</text>
-<text text-anchor="start" x="1837" y="-286" font-family="Helvetica,sans-Serif" font-size="10.00">_exact</text>
-<text text-anchor="start" x="1824" y="-271" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="1837" y="-271" font-family="Helvetica,sans-Serif" font-size="10.00">BitwiseXor()</text>
-<text text-anchor="start" x="1824" y="-256" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="1837" y="-256" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
-<text text-anchor="start" x="1837" y="-245" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NULLABLE()</text>
-<text text-anchor="start" x="1824" y="-230" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="1837" y="-230" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="1837" y="-219" font-family="Helvetica,sans-Serif" font-size="10.00">_COW_METHOD()</text>
-<polygon fill="#666666" stroke="#666666" points="1820,-307 1820,-307 1984,-307 1984,-307 1820,-307"/>
-<polygon fill="#666666" stroke="#666666" points="1820,-281 1820,-281 1835,-281 1835,-281 1820,-281"/>
-<polygon fill="#666666" stroke="#666666" points="1835,-281 1835,-281 1984,-281 1984,-281 1835,-281"/>
-<polygon fill="none" stroke="#666666" points="1820,-212 1820,-324 1984,-324 1984,-212 1820,-212"/>
+<polygon fill="white" stroke="transparent" points="2215,-354 2030,-354 2030,-227 2215,-227 2215,-354"/>
+<text text-anchor="start" x="2069.5" y="-341.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::prim::BitwiseXor</text>
+<text text-anchor="start" x="2034.5" y="-326.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="2047.5" y="-326.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_container_is</text>
+<text text-anchor="start" x="2047.5" y="-315.5" font-family="Helvetica,sans-Serif" font-size="10.00">_exact</text>
+<text text-anchor="start" x="2034.5" y="-300.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="2047.5" y="-300.5" font-family="Helvetica,sans-Serif" font-size="10.00">BitwiseXor()</text>
+<text text-anchor="start" x="2034.5" y="-285.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="2047.5" y="-285.5" font-family="Helvetica,sans-Serif" font-size="10.00">BitwiseXor()</text>
+<text text-anchor="start" x="2034.5" y="-270.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="2047.5" y="-270.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
+<text text-anchor="start" x="2047.5" y="-259.5" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NOTNULLABLE()</text>
+<text text-anchor="start" x="2034.5" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="2047.5" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="2047.5" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">_COW_METHOD()</text>
+<polygon fill="#666666" stroke="#666666" points="2030.5,-336.5 2030.5,-336.5 2215.5,-336.5 2215.5,-336.5 2030.5,-336.5"/>
+<polygon fill="#666666" stroke="#666666" points="2030.5,-310.5 2030.5,-310.5 2045.5,-310.5 2045.5,-310.5 2030.5,-310.5"/>
+<polygon fill="#666666" stroke="#666666" points="2045.5,-310.5 2045.5,-310.5 2215.5,-310.5 2215.5,-310.5 2045.5,-310.5"/>
+<polygon fill="none" stroke="#666666" points="2030,-227 2030,-354 2215,-354 2215,-227 2030,-227"/>
</a>
</g>
</g>
@@ -909,8 +961,8 @@
<g id="edge14_Node000004_Node000015" class="edge">
<title>Node4->Node15</title>
<g id="a_edge14_Node000004_Node000015"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M3265.8,-514.96C2996.64,-509.16 2216.84,-482.72 1993,-369 1972.39,-358.53 1954.16,-341.31 1939.54,-324.09"/>
-<polygon fill="none" stroke="#63b8ff" points="3265.86,-518.46 3275.93,-515.17 3266.01,-511.46 3265.86,-518.46"/>
+<path fill="none" stroke="#63b8ff" d="M3643.76,-552.81C3343.78,-547.89 2474.48,-523.03 2223.5,-399 2202.26,-388.51 2183.19,-371.56 2167.48,-354.2"/>
+<polygon fill="none" stroke="#63b8ff" points="3643.71,-556.31 3653.76,-552.97 3643.82,-549.31 3643.71,-556.31"/>
</a>
</g>
</g>
@@ -918,23 +970,25 @@
<g id="Node000016" class="node">
<title>Node16</title>
<g id="a_Node000016"><a xlink:href="classtvm_1_1prim_1_1Broadcast.html" target="_top" xlink:title="Managed reference to BroadcastNode.">
-<polygon fill="white" stroke="transparent" points="2166,-324 2002,-324 2002,-212 2166,-212 2166,-324"/>
-<text text-anchor="start" x="2032.5" y="-312" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::prim::Broadcast</text>
-<text text-anchor="start" x="2006" y="-297" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="2019" y="-297" font-family="Helvetica,sans-Serif" font-size="10.00">_type_container_is</text>
-<text text-anchor="start" x="2019" y="-286" font-family="Helvetica,sans-Serif" font-size="10.00">_exact</text>
-<text text-anchor="start" x="2006" y="-271" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="2019" y="-271" font-family="Helvetica,sans-Serif" font-size="10.00">Broadcast()</text>
-<text text-anchor="start" x="2006" y="-256" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="2019" y="-256" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
-<text text-anchor="start" x="2019" y="-245" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NULLABLE()</text>
-<text text-anchor="start" x="2006" y="-230" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="2019" y="-230" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="2019" y="-219" font-family="Helvetica,sans-Serif" font-size="10.00">_COW_METHOD()</text>
-<polygon fill="#666666" stroke="#666666" points="2002,-307 2002,-307 2166,-307 2166,-307 2002,-307"/>
-<polygon fill="#666666" stroke="#666666" points="2002,-281 2002,-281 2017,-281 2017,-281 2002,-281"/>
-<polygon fill="#666666" stroke="#666666" points="2017,-281 2017,-281 2166,-281 2166,-281 2017,-281"/>
-<polygon fill="none" stroke="#666666" points="2002,-212 2002,-324 2166,-324 2166,-212 2002,-212"/>
+<polygon fill="white" stroke="transparent" points="2418,-354 2233,-354 2233,-227 2418,-227 2418,-354"/>
+<text text-anchor="start" x="2274.5" y="-341.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::prim::Broadcast</text>
+<text text-anchor="start" x="2237.5" y="-326.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="2250.5" y="-326.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_container_is</text>
+<text text-anchor="start" x="2250.5" y="-315.5" font-family="Helvetica,sans-Serif" font-size="10.00">_exact</text>
+<text text-anchor="start" x="2237.5" y="-300.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="2250.5" y="-300.5" font-family="Helvetica,sans-Serif" font-size="10.00">Broadcast()</text>
+<text text-anchor="start" x="2237.5" y="-285.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="2250.5" y="-285.5" font-family="Helvetica,sans-Serif" font-size="10.00">Broadcast()</text>
+<text text-anchor="start" x="2237.5" y="-270.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="2250.5" y="-270.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
+<text text-anchor="start" x="2250.5" y="-259.5" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NOTNULLABLE()</text>
+<text text-anchor="start" x="2237.5" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="2250.5" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="2250.5" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">_COW_METHOD()</text>
+<polygon fill="#666666" stroke="#666666" points="2233.5,-336.5 2233.5,-336.5 2418.5,-336.5 2418.5,-336.5 2233.5,-336.5"/>
+<polygon fill="#666666" stroke="#666666" points="2233.5,-310.5 2233.5,-310.5 2248.5,-310.5 2248.5,-310.5 2233.5,-310.5"/>
+<polygon fill="#666666" stroke="#666666" points="2248.5,-310.5 2248.5,-310.5 2418.5,-310.5 2418.5,-310.5 2248.5,-310.5"/>
+<polygon fill="none" stroke="#666666" points="2233,-227 2233,-354 2418,-354 2418,-227 2233,-227"/>
</a>
</g>
</g>
@@ -942,8 +996,8 @@
<g id="edge15_Node000004_Node000016" class="edge">
<title>Node4->Node16</title>
<g id="a_edge15_Node000004_Node000016"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M3265.56,-513.2C3021.44,-503.19 2365.2,-467.6 2175,-369 2154.58,-358.41 2136.45,-341.28 2121.86,-324.16"/>
-<polygon fill="none" stroke="#63b8ff" points="3265.69,-516.7 3275.83,-513.61 3265.98,-509.71 3265.69,-516.7"/>
+<path fill="none" stroke="#63b8ff" d="M3643.72,-550.96C3371.81,-541.51 2639.86,-506.5 2426.5,-399 2405.46,-388.4 2386.5,-371.53 2370.84,-354.28"/>
+<polygon fill="none" stroke="#63b8ff" points="3643.86,-554.47 3653.98,-551.31 3644.1,-547.47 3643.86,-554.47"/>
</a>
</g>
</g>
@@ -951,23 +1005,25 @@
<g id="Node000017" class="node">
<title>Node17</title>
<g id="a_Node000017"><a xlink:href="classtvm_1_1prim_1_1Cast.html" target="_top" xlink:title="Managed reference to CastNode.">
-<polygon fill="white" stroke="transparent" points="2348,-324 2184,-324 2184,-212 2348,-212 2348,-324"/>
-<text text-anchor="start" x="2228" y="-312" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::prim::Cast</text>
-<text text-anchor="start" x="2188" y="-297" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="2201" y="-297" font-family="Helvetica,sans-Serif" font-size="10.00">_type_container_is</text>
-<text text-anchor="start" x="2201" y="-286" font-family="Helvetica,sans-Serif" font-size="10.00">_exact</text>
-<text text-anchor="start" x="2188" y="-271" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="2201" y="-271" font-family="Helvetica,sans-Serif" font-size="10.00">Cast()</text>
-<text text-anchor="start" x="2188" y="-256" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="2201" y="-256" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
-<text text-anchor="start" x="2201" y="-245" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NULLABLE()</text>
-<text text-anchor="start" x="2188" y="-230" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="2201" y="-230" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="2201" y="-219" font-family="Helvetica,sans-Serif" font-size="10.00">_COW_METHOD()</text>
-<polygon fill="#666666" stroke="#666666" points="2184,-307 2184,-307 2348,-307 2348,-307 2184,-307"/>
-<polygon fill="#666666" stroke="#666666" points="2184,-281 2184,-281 2199,-281 2199,-281 2184,-281"/>
-<polygon fill="#666666" stroke="#666666" points="2199,-281 2199,-281 2348,-281 2348,-281 2199,-281"/>
-<polygon fill="none" stroke="#666666" points="2184,-212 2184,-324 2348,-324 2348,-212 2184,-212"/>
+<polygon fill="white" stroke="transparent" points="2621,-354 2436,-354 2436,-227 2621,-227 2621,-354"/>
+<text text-anchor="start" x="2491" y="-341.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::prim::Cast</text>
+<text text-anchor="start" x="2440.5" y="-326.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="2453.5" y="-326.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_container_is</text>
+<text text-anchor="start" x="2453.5" y="-315.5" font-family="Helvetica,sans-Serif" font-size="10.00">_exact</text>
+<text text-anchor="start" x="2440.5" y="-300.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="2453.5" y="-300.5" font-family="Helvetica,sans-Serif" font-size="10.00">Cast()</text>
+<text text-anchor="start" x="2440.5" y="-285.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="2453.5" y="-285.5" font-family="Helvetica,sans-Serif" font-size="10.00">Cast()</text>
+<text text-anchor="start" x="2440.5" y="-270.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="2453.5" y="-270.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
+<text text-anchor="start" x="2453.5" y="-259.5" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NOTNULLABLE()</text>
+<text text-anchor="start" x="2440.5" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="2453.5" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="2453.5" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">_COW_METHOD()</text>
+<polygon fill="#666666" stroke="#666666" points="2436.5,-336.5 2436.5,-336.5 2621.5,-336.5 2621.5,-336.5 2436.5,-336.5"/>
+<polygon fill="#666666" stroke="#666666" points="2436.5,-310.5 2436.5,-310.5 2451.5,-310.5 2451.5,-310.5 2436.5,-310.5"/>
+<polygon fill="#666666" stroke="#666666" points="2451.5,-310.5 2451.5,-310.5 2621.5,-310.5 2621.5,-310.5 2451.5,-310.5"/>
+<polygon fill="none" stroke="#666666" points="2436,-227 2436,-354 2621,-354 2621,-227 2436,-227"/>
</a>
</g>
</g>
@@ -975,8 +1031,8 @@
<g id="edge16_Node000004_Node000017" class="edge">
<title>Node4->Node17</title>
<g id="a_edge16_Node000004_Node000017"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M3265.8,-510.83C3049.13,-496.25 2514.01,-452.62 2357,-369 2336.8,-358.24 2318.79,-341.17 2304.22,-324.16"/>
-<polygon fill="none" stroke="#63b8ff" points="3265.66,-514.33 3275.87,-511.5 3266.13,-507.34 3265.66,-514.33"/>
+<path fill="none" stroke="#63b8ff" d="M3643.49,-548.44C3401.81,-534.03 2805.55,-490.03 2629.5,-399 2608.57,-388.18 2589.64,-371.25 2573.98,-354"/>
+<polygon fill="none" stroke="#63b8ff" points="3643.49,-551.95 3653.68,-549.05 3643.91,-544.96 3643.49,-551.95"/>
</a>
</g>
</g>
@@ -984,23 +1040,25 @@
<g id="Node000018" class="node">
<title>Node18</title>
<g id="a_Node000018"><a xlink:href="classtvm_1_1prim_1_1Div.html" target="_top" xlink:title="Managed reference to DivNode.">
-<polygon fill="white" stroke="transparent" points="2530,-324 2366,-324 2366,-212 2530,-212 2530,-324"/>
-<text text-anchor="start" x="2412.5" y="-312" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::prim::Div</text>
-<text text-anchor="start" x="2370" y="-297" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="2383" y="-297" font-family="Helvetica,sans-Serif" font-size="10.00">_type_container_is</text>
-<text text-anchor="start" x="2383" y="-286" font-family="Helvetica,sans-Serif" font-size="10.00">_exact</text>
-<text text-anchor="start" x="2370" y="-271" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="2383" y="-271" font-family="Helvetica,sans-Serif" font-size="10.00">Div()</text>
-<text text-anchor="start" x="2370" y="-256" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="2383" y="-256" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
-<text text-anchor="start" x="2383" y="-245" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NULLABLE()</text>
-<text text-anchor="start" x="2370" y="-230" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="2383" y="-230" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="2383" y="-219" font-family="Helvetica,sans-Serif" font-size="10.00">_COW_METHOD()</text>
-<polygon fill="#666666" stroke="#666666" points="2366,-307 2366,-307 2530,-307 2530,-307 2366,-307"/>
-<polygon fill="#666666" stroke="#666666" points="2366,-281 2366,-281 2381,-281 2381,-281 2366,-281"/>
-<polygon fill="#666666" stroke="#666666" points="2381,-281 2381,-281 2530,-281 2530,-281 2381,-281"/>
-<polygon fill="none" stroke="#666666" points="2366,-212 2366,-324 2530,-324 2530,-212 2366,-212"/>
+<polygon fill="white" stroke="transparent" points="2824,-354 2639,-354 2639,-227 2824,-227 2824,-354"/>
+<text text-anchor="start" x="2696.5" y="-341.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::prim::Div</text>
+<text text-anchor="start" x="2643.5" y="-326.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="2656.5" y="-326.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_container_is</text>
+<text text-anchor="start" x="2656.5" y="-315.5" font-family="Helvetica,sans-Serif" font-size="10.00">_exact</text>
+<text text-anchor="start" x="2643.5" y="-300.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="2656.5" y="-300.5" font-family="Helvetica,sans-Serif" font-size="10.00">Div()</text>
+<text text-anchor="start" x="2643.5" y="-285.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="2656.5" y="-285.5" font-family="Helvetica,sans-Serif" font-size="10.00">Div()</text>
+<text text-anchor="start" x="2643.5" y="-270.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="2656.5" y="-270.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
+<text text-anchor="start" x="2656.5" y="-259.5" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NOTNULLABLE()</text>
+<text text-anchor="start" x="2643.5" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="2656.5" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="2656.5" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">_COW_METHOD()</text>
+<polygon fill="#666666" stroke="#666666" points="2639.5,-336.5 2639.5,-336.5 2824.5,-336.5 2824.5,-336.5 2639.5,-336.5"/>
+<polygon fill="#666666" stroke="#666666" points="2639.5,-310.5 2639.5,-310.5 2654.5,-310.5 2654.5,-310.5 2639.5,-310.5"/>
+<polygon fill="#666666" stroke="#666666" points="2654.5,-310.5 2654.5,-310.5 2824.5,-310.5 2824.5,-310.5 2654.5,-310.5"/>
+<polygon fill="none" stroke="#666666" points="2639,-227 2639,-354 2824,-354 2824,-227 2639,-227"/>
</a>
</g>
</g>
@@ -1008,8 +1066,8 @@
<g id="edge17_Node000004_Node000018" class="edge">
<title>Node4->Node18</title>
<g id="a_edge17_Node000004_Node000018"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M3265.64,-507.4C3078.79,-487.79 2663.13,-437.68 2539,-369 2519.08,-357.98 2501.19,-340.95 2486.65,-324.05"/>
-<polygon fill="none" stroke="#63b8ff" points="3265.41,-510.9 3275.72,-508.45 3266.14,-503.93 3265.41,-510.9"/>
+<path fill="none" stroke="#63b8ff" d="M3643.62,-544.86C3435.35,-525.02 2971.79,-473.7 2832.5,-399 2811.96,-387.99 2793.27,-371.22 2777.69,-354.18"/>
+<polygon fill="none" stroke="#63b8ff" points="3643.36,-548.35 3653.65,-545.81 3644.02,-541.38 3643.36,-548.35"/>
</a>
</g>
</g>
@@ -1017,23 +1075,25 @@
<g id="Node000019" class="node">
<title>Node19</title>
<g id="a_Node000019"><a xlink:href="classtvm_1_1prim_1_1EQ.html" target="_top" xlink:title="Managed reference to EQNode.">
-<polygon fill="white" stroke="transparent" points="2712,-324 2548,-324 2548,-212 2712,-212 2712,-324"/>
-<text text-anchor="start" x="2596" y="-312" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::prim::EQ</text>
-<text text-anchor="start" x="2552" y="-297" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="2565" y="-297" font-family="Helvetica,sans-Serif" font-size="10.00">_type_container_is</text>
-<text text-anchor="start" x="2565" y="-286" font-family="Helvetica,sans-Serif" font-size="10.00">_exact</text>
-<text text-anchor="start" x="2552" y="-271" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="2565" y="-271" font-family="Helvetica,sans-Serif" font-size="10.00">EQ()</text>
-<text text-anchor="start" x="2552" y="-256" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="2565" y="-256" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
-<text text-anchor="start" x="2565" y="-245" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NULLABLE()</text>
-<text text-anchor="start" x="2552" y="-230" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="2565" y="-230" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="2565" y="-219" font-family="Helvetica,sans-Serif" font-size="10.00">_COW_METHOD()</text>
-<polygon fill="#666666" stroke="#666666" points="2548,-307 2548,-307 2712,-307 2712,-307 2548,-307"/>
-<polygon fill="#666666" stroke="#666666" points="2548,-281 2548,-281 2563,-281 2563,-281 2548,-281"/>
-<polygon fill="#666666" stroke="#666666" points="2563,-281 2563,-281 2712,-281 2712,-281 2563,-281"/>
-<polygon fill="none" stroke="#666666" points="2548,-212 2548,-324 2712,-324 2712,-212 2548,-212"/>
+<polygon fill="white" stroke="transparent" points="3027,-354 2842,-354 2842,-227 3027,-227 3027,-354"/>
+<text text-anchor="start" x="2901" y="-341.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::prim::EQ</text>
+<text text-anchor="start" x="2846.5" y="-326.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="2859.5" y="-326.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_container_is</text>
+<text text-anchor="start" x="2859.5" y="-315.5" font-family="Helvetica,sans-Serif" font-size="10.00">_exact</text>
+<text text-anchor="start" x="2846.5" y="-300.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="2859.5" y="-300.5" font-family="Helvetica,sans-Serif" font-size="10.00">EQ()</text>
+<text text-anchor="start" x="2846.5" y="-285.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="2859.5" y="-285.5" font-family="Helvetica,sans-Serif" font-size="10.00">EQ()</text>
+<text text-anchor="start" x="2846.5" y="-270.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="2859.5" y="-270.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
+<text text-anchor="start" x="2859.5" y="-259.5" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NOTNULLABLE()</text>
+<text text-anchor="start" x="2846.5" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="2859.5" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="2859.5" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">_COW_METHOD()</text>
+<polygon fill="#666666" stroke="#666666" points="2842.5,-336.5 2842.5,-336.5 3027.5,-336.5 3027.5,-336.5 2842.5,-336.5"/>
+<polygon fill="#666666" stroke="#666666" points="2842.5,-310.5 2842.5,-310.5 2857.5,-310.5 2857.5,-310.5 2842.5,-310.5"/>
+<polygon fill="#666666" stroke="#666666" points="2857.5,-310.5 2857.5,-310.5 3027.5,-310.5 3027.5,-310.5 2857.5,-310.5"/>
+<polygon fill="none" stroke="#666666" points="2842,-227 2842,-354 3027,-354 3027,-227 2842,-227"/>
</a>
</g>
</g>
@@ -1041,8 +1101,8 @@
<g id="edge18_Node000004_Node000019" class="edge">
<title>Node4->Node19</title>
<g id="a_edge18_Node000004_Node000019"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M3265.57,-512.24C3135.67,-502.62 2895.51,-471.25 2721,-369 2701.56,-357.61 2683.9,-340.7 2669.42,-324.01"/>
-<polygon fill="none" stroke="#63b8ff" points="3265.65,-515.76 3275.87,-512.98 3266.15,-508.77 3265.65,-515.76"/>
+<path fill="none" stroke="#63b8ff" d="M3643.74,-550.51C3499.13,-541.58 3231.39,-510.02 3035.5,-399 3015.45,-387.64 2997.01,-370.98 2981.53,-354.15"/>
+<polygon fill="none" stroke="#63b8ff" points="3643.74,-554.02 3653.93,-551.12 3644.16,-547.03 3643.74,-554.02"/>
</a>
</g>
</g>
@@ -1050,23 +1110,25 @@
<g id="Node000020" class="node">
<title>Node20</title>
<g id="a_Node000020"><a xlink:href="classtvm_1_1prim_1_1FloorDiv.html" target="_top" xlink:title="Managed reference to FloorDivNode.">
-<polygon fill="white" stroke="transparent" points="2894,-324 2730,-324 2730,-212 2894,-212 2894,-324"/>
-<text text-anchor="start" x="2764" y="-312" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::prim::FloorDiv</text>
-<text text-anchor="start" x="2734" y="-297" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="2747" y="-297" font-family="Helvetica,sans-Serif" font-size="10.00">_type_container_is</text>
-<text text-anchor="start" x="2747" y="-286" font-family="Helvetica,sans-Serif" font-size="10.00">_exact</text>
-<text text-anchor="start" x="2734" y="-271" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="2747" y="-271" font-family="Helvetica,sans-Serif" font-size="10.00">FloorDiv()</text>
-<text text-anchor="start" x="2734" y="-256" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="2747" y="-256" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
-<text text-anchor="start" x="2747" y="-245" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NULLABLE()</text>
-<text text-anchor="start" x="2734" y="-230" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="2747" y="-230" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="2747" y="-219" font-family="Helvetica,sans-Serif" font-size="10.00">_COW_METHOD()</text>
-<polygon fill="#666666" stroke="#666666" points="2730,-307 2730,-307 2894,-307 2894,-307 2730,-307"/>
-<polygon fill="#666666" stroke="#666666" points="2730,-281 2730,-281 2745,-281 2745,-281 2730,-281"/>
-<polygon fill="#666666" stroke="#666666" points="2745,-281 2745,-281 2894,-281 2894,-281 2745,-281"/>
-<polygon fill="none" stroke="#666666" points="2730,-212 2730,-324 2894,-324 2894,-212 2730,-212"/>
+<polygon fill="white" stroke="transparent" points="3230,-354 3045,-354 3045,-227 3230,-227 3230,-354"/>
+<text text-anchor="start" x="3090" y="-341.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::prim::FloorDiv</text>
+<text text-anchor="start" x="3049.5" y="-326.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="3062.5" y="-326.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_container_is</text>
+<text text-anchor="start" x="3062.5" y="-315.5" font-family="Helvetica,sans-Serif" font-size="10.00">_exact</text>
+<text text-anchor="start" x="3049.5" y="-300.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="3062.5" y="-300.5" font-family="Helvetica,sans-Serif" font-size="10.00">FloorDiv()</text>
+<text text-anchor="start" x="3049.5" y="-285.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="3062.5" y="-285.5" font-family="Helvetica,sans-Serif" font-size="10.00">FloorDiv()</text>
+<text text-anchor="start" x="3049.5" y="-270.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="3062.5" y="-270.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
+<text text-anchor="start" x="3062.5" y="-259.5" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NOTNULLABLE()</text>
+<text text-anchor="start" x="3049.5" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="3062.5" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="3062.5" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">_COW_METHOD()</text>
+<polygon fill="#666666" stroke="#666666" points="3045.5,-336.5 3045.5,-336.5 3230.5,-336.5 3230.5,-336.5 3045.5,-336.5"/>
+<polygon fill="#666666" stroke="#666666" points="3045.5,-310.5 3045.5,-310.5 3060.5,-310.5 3060.5,-310.5 3045.5,-310.5"/>
+<polygon fill="#666666" stroke="#666666" points="3060.5,-310.5 3060.5,-310.5 3230.5,-310.5 3230.5,-310.5 3060.5,-310.5"/>
+<polygon fill="none" stroke="#666666" points="3045,-227 3045,-354 3230,-354 3230,-227 3045,-227"/>
</a>
</g>
</g>
@@ -1074,8 +1136,8 @@
<g id="edge19_Node000004_Node000020" class="edge">
<title>Node4->Node20</title>
<g id="a_edge19_Node000004_Node000020"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M3265.63,-501.12C3169.16,-481.87 3016.39,-442.16 2903,-369 2884.46,-357.04 2867.26,-340.38 2852.93,-324.08"/>
-<polygon fill="none" stroke="#63b8ff" points="3265.16,-504.6 3275.65,-503.09 3266.51,-497.73 3265.16,-504.6"/>
+<path fill="none" stroke="#63b8ff" d="M3643.97,-538.8C3536.49,-519.34 3365.88,-478.21 3238.5,-399 3219.36,-387.1 3201.45,-370.68 3186.18,-354.25"/>
+<polygon fill="none" stroke="#63b8ff" points="3643.38,-542.25 3653.84,-540.56 3644.61,-535.36 3643.38,-542.25"/>
</a>
</g>
</g>
@@ -1083,23 +1145,25 @@
<g id="Node000021" class="node">
<title>Node21</title>
<g id="a_Node000021"><a xlink:href="classtvm_1_1prim_1_1FloorMod.html" target="_top" xlink:title="Managed reference to FloorModNode.">
-<polygon fill="white" stroke="transparent" points="3076,-324 2912,-324 2912,-212 3076,-212 3076,-324"/>
-<text text-anchor="start" x="2944" y="-312" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::prim::FloorMod</text>
-<text text-anchor="start" x="2916" y="-297" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="2929" y="-297" font-family="Helvetica,sans-Serif" font-size="10.00">_type_container_is</text>
-<text text-anchor="start" x="2929" y="-286" font-family="Helvetica,sans-Serif" font-size="10.00">_exact</text>
-<text text-anchor="start" x="2916" y="-271" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="2929" y="-271" font-family="Helvetica,sans-Serif" font-size="10.00">FloorMod()</text>
-<text text-anchor="start" x="2916" y="-256" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="2929" y="-256" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
-<text text-anchor="start" x="2929" y="-245" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NULLABLE()</text>
-<text text-anchor="start" x="2916" y="-230" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="2929" y="-230" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="2929" y="-219" font-family="Helvetica,sans-Serif" font-size="10.00">_COW_METHOD()</text>
-<polygon fill="#666666" stroke="#666666" points="2912,-307 2912,-307 3076,-307 3076,-307 2912,-307"/>
-<polygon fill="#666666" stroke="#666666" points="2912,-281 2912,-281 2927,-281 2927,-281 2912,-281"/>
-<polygon fill="#666666" stroke="#666666" points="2927,-281 2927,-281 3076,-281 3076,-281 2927,-281"/>
-<polygon fill="none" stroke="#666666" points="2912,-212 2912,-324 3076,-324 3076,-212 2912,-212"/>
+<polygon fill="white" stroke="transparent" points="3433,-354 3248,-354 3248,-227 3433,-227 3433,-354"/>
+<text text-anchor="start" x="3291" y="-341.5" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::prim::FloorMod</text>
+<text text-anchor="start" x="3252.5" y="-326.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="3265.5" y="-326.5" font-family="Helvetica,sans-Serif" font-size="10.00">_type_container_is</text>
+<text text-anchor="start" x="3265.5" y="-315.5" font-family="Helvetica,sans-Serif" font-size="10.00">_exact</text>
+<text text-anchor="start" x="3252.5" y="-300.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="3265.5" y="-300.5" font-family="Helvetica,sans-Serif" font-size="10.00">FloorMod()</text>
+<text text-anchor="start" x="3252.5" y="-285.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="3265.5" y="-285.5" font-family="Helvetica,sans-Serif" font-size="10.00">FloorMod()</text>
+<text text-anchor="start" x="3252.5" y="-270.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="3265.5" y="-270.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
+<text text-anchor="start" x="3265.5" y="-259.5" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NOTNULLABLE()</text>
+<text text-anchor="start" x="3252.5" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
+<text text-anchor="start" x="3265.5" y="-244.5" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_DEFINE_OBJECT_REF</text>
+<text text-anchor="start" x="3265.5" y="-233.5" font-family="Helvetica,sans-Serif" font-size="10.00">_COW_METHOD()</text>
+<polygon fill="#666666" stroke="#666666" points="3248.5,-336.5 3248.5,-336.5 3433.5,-336.5 3433.5,-336.5 3248.5,-336.5"/>
+<polygon fill="#666666" stroke="#666666" points="3248.5,-310.5 3248.5,-310.5 3263.5,-310.5 3263.5,-310.5 3248.5,-310.5"/>
+<polygon fill="#666666" stroke="#666666" points="3263.5,-310.5 3263.5,-310.5 3433.5,-310.5 3433.5,-310.5 3263.5,-310.5"/>
+<polygon fill="none" stroke="#666666" points="3248,-227 3248,-354 3433,-354 3433,-227 3248,-227"/>
</a>
</g>
</g>
@@ -1107,8 +1171,8 @@
<g id="edge20_Node000004_Node000021" class="edge">
<title>Node4->Node21</title>
<g id="a_edge20_Node000004_Node000021"><a xlink:title=" ">
-<path fill="none" stroke="#63b8ff" d="M3266.6,-476.71C3211.23,-450.34 3140.76,-412.63 3085,-369 3068.36,-355.98 3052.17,-339.76 3038.18,-324.19"/>
-<polygon fill="none" stroke="#63b8ff" points="3265.17,-479.9 3275.7,-481 3268.15,-473.57 3265.17,-479.9"/>
+<path fill="none" stroke="#63b8ff" d="M3644.59,-512.92C3582.76,-485.47 3503.99,-445.86 3441.5,-399 3424.19,-386.02 3407.3,-369.89 3392.44,-354.12"/>
+<polygon fill="none" stroke="#63b8ff" points="3643.41,-516.23 3653.98,-517.05 3646.24,-509.82 3643.41,-516.23"/>
</a>
</g>
</g>
@@ -1116,23 +1180,25 @@
<g id="Node000022" class="node">
<title>Node22</title>
<g id="a_Node000022"><a xlink:href="classtvm_1_1prim_1_1GE.html" target="_top" xlink:title="Managed reference to GENode.">
-<polygon fill="white" stroke="transparent" points="3258,-324 3094,-324 3094,-212 3258,-212 3258,-324"/>
-<text text-anchor="start" x="3142" y="-312" font-family="Helvetica,sans-Serif" font-size="10.00">tvm::prim::GE</text>
-<text text-anchor="start" x="3098" y="-297" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="3111" y="-297" font-family="Helvetica,sans-Serif" font-size="10.00">_type_container_is</text>
-<text text-anchor="start" x="3111" y="-286" font-family="Helvetica,sans-Serif" font-size="10.00">_exact</text>
-<text text-anchor="start" x="3098" y="-271" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="3111" y="-271" font-family="Helvetica,sans-Serif" font-size="10.00">GE()</text>
-<text text-anchor="start" x="3098" y="-256" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="3111" y="-256" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_FFI_DEFINE_OBJECT</text>
-<text text-anchor="start" x="3111" y="-245" font-family="Helvetica,sans-Serif" font-size="10.00">_REF_METHODS_NULLABLE()</text>
-<text text-anchor="start" x="3098" y="-230" font-family="Helvetica,sans-Serif" font-size="10.00">+</text>
-<text text-anchor="start" x="3111" y="-230" font-family="Helvetica,sans-Serif" font-size="10.00">TVM_DEFINE_OBJECT_REF</text>
-<text text-anchor="start" x="3111" y="-219" font-family="Helvetica,sans-Serif" font-size="10.00">_COW_METHOD()</text>
-<polygon fill="#666666" stroke="#666666" points="3094,-307 3094,-307 3258,-307 3258,-307 3094,-307"/>
-<polygon fill="#666666" stroke="#666666" points="3094,-281 3094,-281 3109,-281 3109,-281 3094,-281"/>
-<polygon fill="#666666" stroke="#666666" points="3109,-281 3109,-281 3258,-281 3258,-281 3109,-281"/>
-<polygon fill="none" stroke="#666666" points="3094,-212 3094,-324 3258,-324 3258,-212 3094,-212"/>
+<polygon fill="white" stroke="transparent" points="3636,-354 3451,-354 3451,-227 3636,-227 3636,-354"/>
... 137152 lines suppressed ...